diff --git a/.next/dev/logs/next-development.log b/.next/dev/logs/next-development.log index 3b6ae046..0398384b 100644 --- a/.next/dev/logs/next-development.log +++ b/.next/dev/logs/next-development.log @@ -4059,3 +4059,36 @@ It can also happen if the client has a browser extension installed which messes [04:47:36.999] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} [04:47:37.119] Server LOG 🌳 GET /api/trees 返回数据: {} [04:47:37.156] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:48:09.723] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:48:27.273] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:48:27.845] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/relationship color: rgb(120, 120, 120) color: inherit {"dp":"/relationship","o":"http://localhost:3000/relationship","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885549688} +[04:48:27.865] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:48:27.892] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:48:27.908] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:48:29.804] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:48:29.920] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:48:29.923] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885552225} +[04:48:47.301] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:49:33.528] Server LOG ✓ Compiled in 79ms +[04:49:37.389] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:49:41.562] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:50:19.107] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:50:33.969] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:50:59.923] Server LOG ✓ Compiled in 142ms +[04:51:06.360] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:51:07.697] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[04:51:07.956] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[04:51:07.956] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[04:51:07.956] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885710257} +[04:51:07.974] Server LOG 🌳 GET /api/trees/[treeId] 返回数据: {} +[04:51:08.060] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:51:08.165] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:51:08.200] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:51:18.015] Browser INFO %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold +[04:51:18.147] Server LOG 🌳 GET /api/trees/[treeId] 返回数据: {} +[04:51:18.157] Browser LOG %c[Vercel Web Analytics]%c Debug mode is enabled by default in development. No requests will be sent to the server. color: rgb(120, 120, 120) color: inherit +[04:51:18.157] Browser LOG %c[Vercel Web Analytics]%c Running queued event color: rgb(120, 120, 120) color: inherit pageview {"path":"/","route":"/"} +[04:51:18.157] Browser LOG %c[Vercel Web Analytics]%c [pageview] http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh color: rgb(120, 120, 120) color: inherit {"dp":"/","o":"http://localhost:3000/?treeId=cmib8zhrq0003hhxlvnsi96nh","sdkn":"@vercel/analytics/next","sdkv":"1.5.0","sv":"0.1.3","ts":1763885720465} +[04:51:18.219] Server LOG 👥 GET /api/trees/[treeId]/members 返回数据: {} +[04:51:18.357] Server LOG 🌳 GET /api/trees 返回数据: {} +[04:51:18.392] Server LOG 🌳 GET /api/trees 返回数据: {} diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js index 46c8b6e3..882d93a3 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js @@ -2892,7 +2892,6 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/users.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$right$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__ArrowRight$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/arrow-right.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/clock.js [app-ssr] (ecmascript) "); -var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$calculator$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Calculator$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/calculator.js [app-ssr] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$dashboard$2f$statistics$2d$charts$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/dashboard/statistics-charts.tsx [app-ssr] (ecmascript)"); @@ -3090,31 +3089,6 @@ function DashboardPage() { lineNumber: 192, columnNumber: 15 }, this), - /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { - href: "/relationship", - children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { - variant: "outline", - className: "gap-2 bg-transparent", - children: [ - /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$calculator$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Calculator$3e$__["Calculator"], { - className: "h-4 w-4" - }, void 0, false, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 196, - columnNumber: 17 - }, this), - "计算器" - ] - }, void 0, true, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 195, - columnNumber: 15 - }, this) - }, void 0, false, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 194, - columnNumber: 13 - }, this), (currentTree?.currentUserRole === "OWNER" || currentTree?.currentUserRole === "EDITOR") && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { href: "/members/new", children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Button"], { @@ -3124,19 +3098,19 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 203, + lineNumber: 197, columnNumber: 19 }, this), "添加成员" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 202, + lineNumber: 196, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 201, + lineNumber: 195, columnNumber: 15 }, this) ] @@ -3160,6 +3134,22 @@ function DashboardPage() { subtitle: `男 ${stats.maleCount} · 女 ${stats.femaleCount}`, icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__["Users"], { className: "h-4 w-4" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 210, + columnNumber: 19 + }, void 0) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 206, + columnNumber: 11 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { + title: "记录年代", + value: `${stats.yearsSpan} 年`, + subtitle: `始于 ${stats.earliestYear} 年`, + icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__["Clock"], { + className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", lineNumber: 216, @@ -3171,10 +3161,10 @@ function DashboardPage() { columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { - title: "记录年代", - value: `${stats.yearsSpan} 年`, - subtitle: `始于 ${stats.earliestYear} 年`, - icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__["Clock"], { + title: "繁衍代数", + value: `${stats.maxGeneration} 代`, + subtitle: `当前最高世代`, + icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$network$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Network$3e$__["Network"], { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", @@ -3187,10 +3177,10 @@ function DashboardPage() { columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { - title: "繁衍代数", - value: `${stats.maxGeneration} 代`, - subtitle: `当前最高世代`, - icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$network$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Network$3e$__["Network"], { + title: "在世 / 已故", + value: `${stats.livingMembers} / ${stats.deceasedMembers}`, + subtitle: `在世率 ${stats.totalMembers > 0 ? Math.round(stats.livingMembers / stats.totalMembers * 100) : 0}%`, + icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__["Users"], { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", @@ -3203,10 +3193,10 @@ function DashboardPage() { columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { - title: "在世 / 已故", - value: `${stats.livingMembers} / ${stats.deceasedMembers}`, - subtitle: `在世率 ${stats.totalMembers > 0 ? Math.round(stats.livingMembers / stats.totalMembers * 100) : 0}%`, - icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__["Users"], { + title: "平均寿命", + value: stats.averageLifespan > 0 ? `${stats.averageLifespan} 岁` : '暂无数据', + subtitle: `已统计 ${stats.deceasedMembers} 人`, + icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__["Clock"], { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", @@ -3218,22 +3208,6 @@ function DashboardPage() { lineNumber: 230, columnNumber: 11 }, this), - /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { - title: "平均寿命", - value: stats.averageLifespan > 0 ? `${stats.averageLifespan} 岁` : '暂无数据', - subtitle: `已统计 ${stats.deceasedMembers} 人`, - icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__["Clock"], { - className: "h-4 w-4" - }, void 0, false, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 240, - columnNumber: 19 - }, void 0) - }, void 0, false, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 236, - columnNumber: 11 - }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Card"], { className: "relative overflow-hidden border border-border/50 shadow-sm bg-gradient-to-br from-card to-card/50 backdrop-blur transition-all hover:shadow-lg hover:border-primary/30 group", children: [ @@ -3248,7 +3222,7 @@ function DashboardPage() { children: "性别比例" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 245, + lineNumber: 239, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3257,18 +3231,18 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 247, + lineNumber: 241, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 246, + lineNumber: 240, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 244, + lineNumber: 238, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3278,11 +3252,11 @@ function DashboardPage() { className: "flex items-center justify-center gap-3 py-2", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-5xl font-serif font-bold text-blue-600 dark:text-blue-400 tracking-wider", + className: "text-5xl font-serif font-bold text-primary tracking-wider", children: "1" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 252, + lineNumber: 246, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3290,21 +3264,21 @@ function DashboardPage() { children: ":" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 255, + lineNumber: 249, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-5xl font-serif font-bold text-pink-600 dark:text-pink-400 tracking-wider", + className: "text-5xl font-serif font-bold text-primary tracking-wider", children: stats.maleCount > 0 ? (stats.femaleCount / stats.maleCount).toFixed(2) : '0' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 256, + lineNumber: 250, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 251, + lineNumber: 245, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3312,7 +3286,7 @@ function DashboardPage() { children: "男性 : 女性" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 260, + lineNumber: 254, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3322,13 +3296,13 @@ function DashboardPage() { className: "flex items-center justify-between text-xs", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-blue-600 dark:text-blue-400 font-medium flex items-center gap-1", + className: "text-primary/80 font-medium flex items-center gap-1", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "w-2 h-2 rounded-full bg-blue-500" + className: "w-2 h-2 rounded-full bg-primary/60" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 268, + lineNumber: 262, columnNumber: 23 }, this), "男性 ", @@ -3336,119 +3310,119 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 267, + lineNumber: 261, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-pink-600 dark:text-pink-400 font-medium flex items-center gap-1", + className: "text-primary/80 font-medium flex items-center gap-1", children: [ "女性 ", stats.femaleCount, /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "w-2 h-2 rounded-full bg-pink-500" + className: "w-2 h-2 rounded-full bg-primary/60" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 273, + lineNumber: 267, columnNumber: 23 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 271, + lineNumber: 265, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 266, + lineNumber: 260, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "h-3 bg-muted rounded-full overflow-hidden flex", + className: "h-3 bg-background/60 border border-border/50 rounded-full overflow-hidden flex", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "h-full bg-gradient-to-r from-blue-600 to-blue-500 transition-all duration-500 flex items-center justify-center", + className: "h-full bg-primary/70 transition-all duration-500 flex items-center justify-center", style: { width: `${stats.totalMembers > 0 ? stats.maleCount / stats.totalMembers * 100 : 0}%` }, children: stats.totalMembers > 0 && stats.maleCount > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-[10px] text-white font-bold px-1", + className: "text-[10px] text-primary-foreground font-bold px-1", children: [ Math.round(stats.maleCount / stats.totalMembers * 100), "%" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 282, + lineNumber: 276, columnNumber: 25 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 277, + lineNumber: 271, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "h-full bg-gradient-to-r from-pink-500 to-pink-600 transition-all duration-500 flex items-center justify-center", + className: "h-full bg-primary/40 transition-all duration-500 flex items-center justify-center", style: { width: `${stats.totalMembers > 0 ? stats.femaleCount / stats.totalMembers * 100 : 0}%` }, children: stats.totalMembers > 0 && stats.femaleCount > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-[10px] text-white font-bold px-1", + className: "text-[10px] text-primary-foreground font-bold px-1", children: [ Math.round(stats.femaleCount / stats.totalMembers * 100), "%" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 292, + lineNumber: 286, columnNumber: 25 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 287, + lineNumber: 281, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 276, + lineNumber: 270, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 265, + lineNumber: 259, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 250, + lineNumber: 244, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 243, + lineNumber: 237, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "absolute bottom-0 left-0 right-0 h-1 bg-gradient-to-r from-blue-500 via-purple-500 to-pink-500 opacity-0 group-hover:opacity-100 transition-opacity" + className: "absolute bottom-0 left-0 right-0 h-1 bg-gradient-to-r from-primary/50 via-primary to-primary/50 opacity-0 group-hover:opacity-100 transition-opacity" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 301, + lineNumber: 295, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 242, + lineNumber: 236, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 211, + lineNumber: 205, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Tabs"], { @@ -3466,7 +3440,7 @@ function DashboardPage() { children: "最近更新" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 308, + lineNumber: 302, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsTrigger"], { @@ -3474,7 +3448,7 @@ function DashboardPage() { children: "近期纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 309, + lineNumber: 303, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsTrigger"], { @@ -3482,7 +3456,7 @@ function DashboardPage() { children: "统计图表" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 310, + lineNumber: 304, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsTrigger"], { @@ -3490,13 +3464,13 @@ function DashboardPage() { children: "迁徙记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 311, + lineNumber: 305, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 307, + lineNumber: 301, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], { @@ -3511,24 +3485,24 @@ function DashboardPage() { className: "h-3 w-3" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 315, + lineNumber: 309, columnNumber: 22 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 314, + lineNumber: 308, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 313, + lineNumber: 307, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 306, + lineNumber: 300, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -3547,20 +3521,20 @@ function DashboardPage() { children: "近期修谱动态" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 324, + lineNumber: 318, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardDescription"], { children: "记录家族成员的最新变动与修订" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 325, + lineNumber: 319, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 323, + lineNumber: 317, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { @@ -3578,20 +3552,20 @@ function DashboardPage() { className: "h-full w-px bg-border group-last:hidden" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 334, + lineNumber: 328, columnNumber: 31 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: `absolute top-2 h-2 w-2 rounded-full ring-4 ring-background ${activity.action === 'create' ? 'bg-green-500' : activity.action === 'update' ? 'bg-blue-500' : activity.action === 'delete' ? 'bg-red-500' : 'bg-purple-500'}` }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 335, + lineNumber: 329, columnNumber: 31 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 333, + lineNumber: 327, columnNumber: 29 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3605,7 +3579,7 @@ function DashboardPage() { children: activity.action === 'create' ? '创建' : activity.action === 'update' ? '更新' : activity.action === 'delete' ? '删除' : '导入' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 344, + lineNumber: 338, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3613,7 +3587,7 @@ function DashboardPage() { children: activity.entityName || '未知' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 354, + lineNumber: 348, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3621,13 +3595,13 @@ function DashboardPage() { children: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$date$2d$fns$40$4$2e$1$2e$0$2f$node_modules$2f$date$2d$fns$2f$format$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$locals$3e$__["format"])(new Date(activity.timestamp), 'MM-dd HH:mm') }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 355, + lineNumber: 349, columnNumber: 33 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 343, + lineNumber: 337, columnNumber: 31 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -3640,47 +3614,47 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 359, + lineNumber: 353, columnNumber: 31 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 342, + lineNumber: 336, columnNumber: 29 }, this) ] }, activity.id, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 332, + lineNumber: 326, columnNumber: 27 }, this)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "text-center text-muted-foreground py-8", children: "暂无修谱记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 369, + lineNumber: 363, columnNumber: 25 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 329, + lineNumber: 323, columnNumber: 21 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 328, + lineNumber: 322, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 327, + lineNumber: 321, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 322, + lineNumber: 316, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3696,19 +3670,19 @@ function DashboardPage() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 382, + lineNumber: 376, columnNumber: 23 }, this), "本月祭祖/纪念" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 381, + lineNumber: 375, columnNumber: 21 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 380, + lineNumber: 374, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { @@ -3731,7 +3705,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 394, + lineNumber: 388, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3739,13 +3713,13 @@ function DashboardPage() { children: anniversary.day }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 397, + lineNumber: 391, columnNumber: 33 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 393, + lineNumber: 387, columnNumber: 31 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3760,7 +3734,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 400, + lineNumber: 394, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -3775,24 +3749,24 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 403, + lineNumber: 397, columnNumber: 33 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 399, + lineNumber: 393, columnNumber: 31 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 392, + lineNumber: 386, columnNumber: 29 }, this) }, `${anniversary.member.id}-${anniversary.type}`, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 391, + lineNumber: 385, columnNumber: 27 }, this); }) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3800,34 +3774,34 @@ function DashboardPage() { children: "本月暂无纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 413, + lineNumber: 407, columnNumber: 23 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 386, + lineNumber: 380, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 379, + lineNumber: 373, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 378, + lineNumber: 372, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 321, + lineNumber: 315, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 320, + lineNumber: 314, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -3843,20 +3817,20 @@ function DashboardPage() { children: "近期纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 427, + lineNumber: 421, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardDescription"], { children: "未来三个月内的生日和忌日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 428, + lineNumber: 422, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 426, + lineNumber: 420, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { @@ -3918,7 +3892,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 484, + lineNumber: 478, columnNumber: 37 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3926,13 +3900,13 @@ function DashboardPage() { children: event.date.getDate() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 485, + lineNumber: 479, columnNumber: 37 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 483, + lineNumber: 477, columnNumber: 35 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3947,7 +3921,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 488, + lineNumber: 482, columnNumber: 37 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -3962,34 +3936,34 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 491, + lineNumber: 485, columnNumber: 37 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 487, + lineNumber: 481, columnNumber: 35 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 482, + lineNumber: 476, columnNumber: 33 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 481, + lineNumber: 475, columnNumber: 31 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 480, + lineNumber: 474, columnNumber: 29 }, this) }, `${event.member.id}-${event.type}-${index}`, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 479, + lineNumber: 473, columnNumber: 27 }, this); }) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3997,29 +3971,29 @@ function DashboardPage() { children: "未来三个月暂无纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 503, + lineNumber: 497, columnNumber: 23 }, this); })() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 431, + lineNumber: 425, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 430, + lineNumber: 424, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 425, + lineNumber: 419, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 424, + lineNumber: 418, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -4029,12 +4003,12 @@ function DashboardPage() { members: Object.values(treeData.members) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 515, + lineNumber: 509, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 514, + lineNumber: 508, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -4050,20 +4024,20 @@ function DashboardPage() { children: "家族迁徙记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 522, + lineNumber: 516, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardDescription"], { children: "记录家族成员的籍贯分布" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 523, + lineNumber: 517, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 521, + lineNumber: 515, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["CardContent"], { @@ -4092,7 +4066,7 @@ function DashboardPage() { children: location }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 547, + lineNumber: 541, columnNumber: 29 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -4103,13 +4077,13 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 548, + lineNumber: 542, columnNumber: 29 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 546, + lineNumber: 540, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4124,7 +4098,7 @@ function DashboardPage() { children: member.fullName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 556, + lineNumber: 550, columnNumber: 35 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -4136,36 +4110,36 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 557, + lineNumber: 551, columnNumber: 35 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 555, + lineNumber: 549, columnNumber: 33 }, this) }, member.id, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 554, + lineNumber: 548, columnNumber: 31 }, this)) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 552, + lineNumber: 546, columnNumber: 27 }, this) ] }, location, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 545, + lineNumber: 539, columnNumber: 25 }, this)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "text-center py-12 text-muted-foreground", children: "暂无迁徙记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 565, + lineNumber: 559, columnNumber: 23 }, this); }, [ @@ -4173,29 +4147,29 @@ function DashboardPage() { ]) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 526, + lineNumber: 520, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 525, + lineNumber: 519, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 520, + lineNumber: 514, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 519, + lineNumber: 513, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 305, + lineNumber: 299, columnNumber: 9 }, this) ] @@ -4226,7 +4200,7 @@ function StatCard({ title, value, subtitle, icon }) { children: title }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 590, + lineNumber: 584, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4234,13 +4208,13 @@ function StatCard({ title, value, subtitle, icon }) { children: icon }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 591, + lineNumber: 585, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 589, + lineNumber: 583, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4251,7 +4225,7 @@ function StatCard({ title, value, subtitle, icon }) { children: value }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 596, + lineNumber: 590, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -4259,32 +4233,32 @@ function StatCard({ title, value, subtitle, icon }) { children: subtitle }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 597, + lineNumber: 591, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 595, + lineNumber: 589, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 588, + lineNumber: 582, columnNumber: 7 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "absolute bottom-0 left-0 right-0 h-1 bg-gradient-to-r from-primary/50 via-primary to-primary/50 opacity-0 group-hover:opacity-100 transition-opacity" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 600, + lineNumber: 594, columnNumber: 7 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 587, + lineNumber: 581, columnNumber: 5 }, this); } diff --git a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js.map b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js.map index 21ade185..62054243 100644 --- a/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js.map +++ b/.next/dev/server/chunks/ssr/Documents_go-new_chinese-family-tree_ae245aad._.js.map @@ -11,5 +11,5 @@ {"offset": {"line": 1898, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/dialog.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { XIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Dialog({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps & {\n showCloseButton?: boolean\n}) {\n return (\n \n \n \n {children}\n {showCloseButton && (\n \n \n Close\n \n )}\n \n \n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AAEA;AANA;;;;;AAQA,SAAS,OAAO,EACd,GAAG,OAC+C;IAClD,qBAAO,oaAAC,qbAAoB;QAAC,aAAU;QAAU,GAAG,KAAK;;;;;;AAC3D;AAEA,SAAS,cAAc,EACrB,GAAG,OACkD;IACrD,qBAAO,oaAAC,wbAAuB;QAAC,aAAU;QAAkB,GAAG,KAAK;;;;;;AACtE;AAEA,SAAS,aAAa,EACpB,GAAG,OACiD;IACpD,qBAAO,oaAAC,ubAAsB;QAAC,aAAU;QAAiB,GAAG,KAAK;;;;;;AACpE;AAEA,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,oaAAC,sbAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;AAEA,SAAS,cAAc,EACrB,SAAS,EACT,GAAG,OACkD;IACrD,qBACE,oaAAC,wbAAuB;QACtB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,0JACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,cAAc,EACrB,SAAS,EACT,QAAQ,EACR,kBAAkB,IAAI,EACtB,GAAG,OAGJ;IACC,qBACE,oaAAC;QAAa,aAAU;;0BACtB,oaAAC;;;;;0BACD,oaAAC,wbAAuB;gBACtB,aAAU;gBACV,WAAW,IAAA,yKAAE,EACX,+WACA;gBAED,GAAG,KAAK;;oBAER;oBACA,iCACC,oaAAC,sbAAqB;wBACpB,aAAU;wBACV,WAAU;;0CAEV,oaAAC,oVAAK;;;;;0CACN,oaAAC;gCAAK,WAAU;0CAAU;;;;;;;;;;;;;;;;;;;;;;;;AAMtC;AAEA,SAAS,aAAa,EAAE,SAAS,EAAE,GAAG,OAAoC;IACxE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,gDAAgD;QAC7D,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,aAAa,EAAE,SAAS,EAAE,GAAG,OAAoC;IACxE,qBACE,oaAAC;QACC,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,0DACA;QAED,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,sCAAsC;QACnD,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,kBAAkB,EACzB,SAAS,EACT,GAAG,OACsD;IACzD,qBACE,oaAAC,4bAA2B;QAC1B,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,iCAAiC;QAC9C,GAAG,KAAK;;;;;;AAGf"}}, {"offset": {"line": 2080, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/select.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Select({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps & {\n size?: 'sm' | 'default'\n}) {\n return (\n \n {children}\n \n \n \n \n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n {children}\n \n \n \n \n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AAAA;AAAA;AAEA;AANA;;;;;AAQA,SAAS,OAAO,EACd,GAAG,OAC+C;IAClD,qBAAO,oaAAC,qbAAoB;QAAC,aAAU;QAAU,GAAG,KAAK;;;;;;AAC3D;AAEA,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,oaAAC,sbAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;AAEA,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,oaAAC,sbAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;AAEA,SAAS,cAAc,EACrB,SAAS,EACT,OAAO,SAAS,EAChB,QAAQ,EACR,GAAG,OAGJ;IACC,qBACE,oaAAC,wbAAuB;QACtB,aAAU;QACV,aAAW;QACX,WAAW,IAAA,yKAAE,EACX,gzBACA;QAED,GAAG,KAAK;;YAER;0BACD,oaAAC,qbAAoB;gBAAC,OAAO;0BAC3B,cAAA,oaAAC,sXAAe;oBAAC,WAAU;;;;;;;;;;;;;;;;;AAInC;AAEA,SAAS,cAAc,EACrB,SAAS,EACT,QAAQ,EACR,WAAW,QAAQ,EACnB,GAAG,OACkD;IACrD,qBACE,oaAAC,ubAAsB;kBACrB,cAAA,oaAAC,wbAAuB;YACtB,aAAU;YACV,WAAW,IAAA,yKAAE,EACX,ijBACA,aAAa,YACX,mIACF;YAEF,UAAU;YACT,GAAG,KAAK;;8BAET,oaAAC;;;;;8BACD,oaAAC,ybAAwB;oBACvB,WAAW,IAAA,yKAAE,EACX,OACA,aAAa,YACX;8BAGH;;;;;;8BAEH,oaAAC;;;;;;;;;;;;;;;;AAIT;AAEA,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,oaAAC,sbAAqB;QACpB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,6CAA6C;QAC1D,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,WAAW,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,OAC+C;IAClD,qBACE,oaAAC,qbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,6aACA;QAED,GAAG,KAAK;;0BAET,oaAAC;gBAAK,WAAU;0BACd,cAAA,oaAAC,8bAA6B;8BAC5B,cAAA,oaAAC,gWAAS;wBAAC,WAAU;;;;;;;;;;;;;;;;0BAGzB,oaAAC,ybAAwB;0BAAE;;;;;;;;;;;;AAGjC;AAEA,SAAS,gBAAgB,EACvB,SAAS,EACT,GAAG,OACoD;IACvD,qBACE,oaAAC,0bAAyB;QACxB,aAAU;QACV,WAAW,IAAA,yKAAE,EAAC,iDAAiD;QAC9D,GAAG,KAAK;;;;;;AAGf;AAEA,SAAS,qBAAqB,EAC5B,SAAS,EACT,GAAG,OACyD;IAC5D,qBACE,oaAAC,+bAA8B;QAC7B,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,wDACA;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,gXAAa;YAAC,WAAU;;;;;;;;;;;AAG/B;AAEA,SAAS,uBAAuB,EAC9B,SAAS,EACT,GAAG,OAC2D;IAC9D,qBACE,oaAAC,icAAgC;QAC/B,aAAU;QACV,WAAW,IAAA,yKAAE,EACX,wDACA;QAED,GAAG,KAAK;kBAET,cAAA,oaAAC,sXAAe;YAAC,WAAU;;;;;;;;;;;AAGjC"}}, {"offset": {"line": 2313, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/tree/collaborator-dialog.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { useSession } from \"next-auth/react\"\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger } from \"@/components/ui/dialog\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\"\nimport { Avatar, AvatarFallback } from \"@/components/ui/avatar\"\nimport { Users, Mail, Trash2, Plus, Shield, Eye, Edit } from \"lucide-react\"\nimport { Alert, AlertDescription, AlertTitle } from \"@/components/ui/alert\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useDialog } from \"@/components/ui/alert-dialog-custom\"\n\ninterface Collaborator {\n id: string\n userId: string\n role: \"EDITOR\" | \"VIEWER\"\n invitedAt: string\n user: {\n id: string\n name: string | null\n email: string\n avatar: string | null\n }\n}\n\nexport function CollaboratorDialog() {\n const { data: session } = useSession()\n const { currentTree } = useFamily()\n const { showConfirm, showAlert } = useDialog()\n const [open, setOpen] = useState(false)\n const [collaborators, setCollaborators] = useState([])\n const [isInviting, setIsInviting] = useState(false)\n const [email, setEmail] = useState(\"\")\n const [role, setRole] = useState<\"EDITOR\" | \"VIEWER\">(\"VIEWER\")\n const [password, setPassword] = useState(\"\")\n const [error, setError] = useState(\"\")\n const [success, setSuccess] = useState(\"\")\n\n // 加载协作者\n useEffect(() => {\n if (open && currentTree?.id) {\n loadCollaborators()\n }\n }, [open, currentTree?.id])\n\n const loadCollaborators = async () => {\n if (!currentTree?.id) return\n \n try {\n const res = await fetch(`/api/trees/${currentTree.id}/collaborators`)\n if (res.ok) {\n const data = await res.json()\n setCollaborators(data.collaborators)\n }\n } catch (err) {\n console.error(\"加载协作者失败:\", err)\n }\n }\n\n const handleInvite = async (e: React.FormEvent) => {\n e.preventDefault()\n if (!currentTree?.id) return\n\n setIsInviting(true)\n setError(\"\")\n setSuccess(\"\")\n\n try {\n const res = await fetch(`/api/trees/${currentTree.id}/invite`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n email,\n role,\n password: password || undefined,\n }),\n })\n\n const data = await res.json()\n\n if (!res.ok) {\n throw new Error(data.error || \"邀请失败\")\n }\n\n setSuccess(data.message)\n setEmail(\"\")\n setPassword(\"\")\n loadCollaborators()\n } catch (err: any) {\n setError(err.message)\n } finally {\n setIsInviting(false)\n }\n }\n\n const handleRemove = async (userId: string) => {\n if (!currentTree?.id) return\n \n const confirmed = await showConfirm(\"确定要移除此协作者吗?\", \"移除协作者\")\n if (!confirmed) return\n\n try {\n const res = await fetch(`/api/trees/${currentTree.id}/collaborators?userId=${userId}`, {\n method: 'DELETE',\n })\n\n if (!res.ok) throw new Error('移除失败')\n\n loadCollaborators()\n } catch (err) {\n console.error(err)\n await showAlert(\"移除失败\", \"错误\")\n }\n }\n\n if (!currentTree) return null\n if (currentTree.ownerId !== session?.user?.id) return null\n\n return (\n \n \n \n \n \n \n 协作管理 - {currentTree.name}\n \n 邀请其他用户协作编辑或查看您的家族树。\n \n \n \n
\n {/* 邀请表单 */}\n
\n
\n
\n \n setEmail(e.target.value)}\n required\n />\n
\n
\n \n \n
\n
\n \n
\n setPassword(e.target.value)}\n minLength={6}\n className=\"flex-1\"\n />\n \n
\n

如果是现有用户,此密码将被忽略。

\n
\n
\n\n {error && (\n \n 错误\n {error}\n \n )}\n\n {success && (\n \n 成功\n {success}\n \n )}\n
\n\n {/* 协作者列表 */}\n
\n

现有协作者

\n {collaborators.length === 0 ? (\n
\n 暂无协作者\n
\n ) : (\n
\n {collaborators.map((collab) => (\n \n
\n \n \n {collab.user.name?.charAt(0).toUpperCase() || collab.user.email.charAt(0).toUpperCase()}\n \n \n
\n
{collab.user.name || \"用户\"}
\n
{collab.user.email}
\n
\n
\n
\n \n {collab.role === 'EDITOR' ? '编辑者' : '查看者'}\n \n handleRemove(collab.userId)}\n >\n \n \n
\n
\n ))}\n
\n )}\n
\n \n
\n
\n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 2877, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/page.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\nimport Link from \"next/link\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\nimport { UserPlus, Network, Map, Calendar, Users, ArrowRight, Clock, Search, BookOpen, BarChart3, Calculator } from \"lucide-react\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useMemo, useState, useEffect, useRef } from \"react\"\nimport { StatisticsCharts } from \"@/components/dashboard/statistics-charts\"\nimport { format } from \"date-fns\"\nimport { useSession } from \"next-auth/react\"\nimport { useSearchParams } from \"next/navigation\"\nimport { CollaboratorDialog } from \"@/components/tree/collaborator-dialog\"\n\ninterface ActivityLog {\n id: string\n action: string\n entityType: string\n entityId?: string | null\n entityName?: string | null\n timestamp: string\n user?: {\n name?: string | null\n email?: string | null\n }\n}\n\nexport default function DashboardPage() {\n const { treeData, isLoading, currentTree } = useFamily()\n const { data: session } = useSession()\n const [recentActivities, setRecentActivities] = useState([])\n \n // 加载最近的操作日志\n useEffect(() => {\n if (currentTree?.id && session?.user?.id) {\n fetch(`/api/trees/${currentTree.id}/activity-logs?limit=10`)\n .then(res => {\n if (!res.ok) {\n throw new Error('获取活动日志失败')\n }\n return res.json()\n })\n .then(data => {\n if (data.logs) {\n setRecentActivities(data.logs)\n }\n })\n .catch(err => {\n console.error('获取活动日志失败:', err)\n setRecentActivities([])\n })\n } else {\n setRecentActivities([])\n }\n }, [currentTree?.id, session?.user?.id])\n \n // 计算统计数据\n const stats = useMemo(() => {\n const members = Object.values(treeData.members)\n const totalMembers = members.length\n \n // 在世和已故人数\n const livingMembers = members.filter(m => !m.deathDate).length\n const deceasedMembers = members.filter(m => m.deathDate).length\n \n // 性别统计\n const maleCount = members.filter(m => m.gender === 'MALE').length\n const femaleCount = members.filter(m => m.gender === 'FEMALE').length\n \n // 计算最大代数(处理空数组的情况)\n const generations = members.map(m => m.generation || 0)\n const maxGeneration = generations.length > 0 ? Math.max(...generations) : 0\n \n // 计算最早出生年份\n const birthYears = members\n .map(m => m.birthDate ? new Date(m.birthDate).getFullYear() : null)\n .filter(y => y !== null) as number[]\n const earliestYear = birthYears.length > 0 ? Math.min(...birthYears) : new Date().getFullYear()\n const yearsSpan = birthYears.length > 0 ? new Date().getFullYear() - earliestYear : 0\n \n // 计算平均寿命(只统计已故成员)\n const deceasedWithAge = members.filter(m => m.birthDate && m.deathDate)\n const totalAge = deceasedWithAge.reduce((sum, m) => {\n const birthYear = new Date(m.birthDate!).getFullYear()\n const deathYear = new Date(m.deathDate!).getFullYear()\n return sum + (deathYear - birthYear)\n }, 0)\n const averageLifespan = deceasedWithAge.length > 0 \n ? Math.round(totalAge / deceasedWithAge.length) \n : 0\n \n return {\n totalMembers,\n livingMembers,\n deceasedMembers,\n maleCount,\n femaleCount,\n maxGeneration,\n yearsSpan,\n earliestYear,\n averageLifespan\n }\n }, [treeData])\n \n // 获取最近的成员(按ID排序,取最新的5个)\n const recentMembers = useMemo(() => {\n return Object.values(treeData.members)\n .sort((a, b) => parseInt(b.id) - parseInt(a.id))\n .slice(0, 5)\n }, [treeData])\n \n // 获取本月纪念日(生日和忌日)\n const monthlyAnniversaries = useMemo(() => {\n const currentMonth = new Date().getMonth() + 1\n const members = Object.values(treeData.members)\n \n const anniversaries: Array<{\n member: any\n type: 'birth' | 'death'\n date: string\n day: number\n }> = []\n \n members.forEach(member => {\n // 检查生日\n if (member.birthDate) {\n const birthMonth = new Date(member.birthDate).getMonth() + 1\n const birthDay = new Date(member.birthDate).getDate()\n if (birthMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'birth',\n date: member.birthDate,\n day: birthDay\n })\n }\n }\n \n // 检查忌日\n if (member.deathDate) {\n const deathMonth = new Date(member.deathDate).getMonth() + 1\n const deathDay = new Date(member.deathDate).getDate()\n if (deathMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'death',\n date: member.deathDate,\n day: deathDay\n })\n }\n }\n })\n \n // 按日期排序\n return anniversaries.sort((a, b) => a.day - b.day).slice(0, 5)\n }, [treeData])\n return (\n
\n \n\n
\n
\n
\n
\n

\n {currentTree?.name || '家族族谱'}\n

\n {currentTree?.currentUserRole && (\n \n {currentTree.currentUserRole === 'OWNER' ? '所有者' : \n currentTree.currentUserRole === 'EDITOR' ? '编辑者' : '查看者'}\n \n )}\n
\n

\n {currentTree?.description || '记录家族历史,传承家族文化'}\n {stats.maxGeneration > 0 && ` · 第 ${stats.maxGeneration} 代传人`}\n

\n
\n
\n {session && currentTree?.ownerId === session.user?.id && (\n \n )}\n \n \n \n {(currentTree?.currentUserRole === \"OWNER\" || currentTree?.currentUserRole === \"EDITOR\") && (\n \n \n \n )}\n
\n
\n\n
\n } \n />\n } \n />\n } \n />\n 0 ? Math.round(stats.livingMembers / stats.totalMembers * 100) : 0}%`} \n icon={} \n />\n 0 ? `${stats.averageLifespan} 岁` : '暂无数据'} \n subtitle={`已统计 ${stats.deceasedMembers} 人`} \n icon={} \n />\n \n \n
\n

性别比例

\n
\n \n
\n
\n
\n
\n \n 1\n \n :\n \n {stats.maleCount > 0 ? (stats.femaleCount / stats.maleCount).toFixed(2) : '0'}\n \n
\n
\n 男性 : 女性\n
\n \n {/* 双色进度条 */}\n
\n
\n \n \n 男性 {stats.maleCount}\n \n \n 女性 {stats.femaleCount}\n \n \n
\n
\n
0 ? (stats.maleCount / stats.totalMembers * 100) : 0}%` }}\n >\n {stats.totalMembers > 0 && stats.maleCount > 0 && (\n \n {Math.round(stats.maleCount / stats.totalMembers * 100)}%\n \n )}\n
\n
0 ? (stats.femaleCount / stats.totalMembers * 100) : 0}%` }}\n >\n {stats.totalMembers > 0 && stats.femaleCount > 0 && (\n \n {Math.round(stats.femaleCount / stats.totalMembers * 100)}%\n \n )}\n
\n
\n
\n
\n
\n
\n \n
\n\n \n
\n \n 最近更新\n 近期纪念日\n 统计图表\n 迁徙记录\n \n \n \n \n
\n\n \n
\n \n \n 近期修谱动态\n 记录家族成员的最新变动与修订\n \n \n \n
\n {recentActivities.length > 0 ? (\n recentActivities.map((activity, i) => (\n
\n
\n
\n
\n
\n
\n
\n \n {activity.action === 'create' ? '创建' :\n activity.action === 'update' ? '更新' :\n activity.action === 'delete' ? '删除' : '导入'}\n \n {activity.entityName || '未知'}\n \n {format(new Date(activity.timestamp), 'MM-dd HH:mm')}\n \n
\n

\n {activity.action === 'create' && '新增了家族成员'}\n {activity.action === 'update' && '更新了成员信息'}\n {activity.action === 'delete' && '删除了成员'}\n {activity.action === 'import' && '导入了家族数据'}\n

\n
\n
\n ))\n ) : (\n
\n 暂无修谱记录\n
\n )}\n
\n
\n
\n
\n\n
\n \n \n \n \n 本月祭祖/纪念\n \n \n \n {monthlyAnniversaries.length > 0 ? (\n monthlyAnniversaries.map((anniversary, index) => {\n const yearsAgo = new Date().getFullYear() - new Date(anniversary.date).getFullYear()\n return (\n \n
\n
\n \n {new Date(anniversary.date).getMonth() + 1}月\n \n {anniversary.day}\n
\n
\n

\n {anniversary.member.fullName} {anniversary.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {anniversary.member.generation} 世 · 距今 {yearsAgo} 年\n {anniversary.type === 'death' && ' · 已故'}\n

\n
\n
\n \n )\n })\n ) : (\n
\n 本月暂无纪念日\n
\n )}\n
\n
\n
\n
\n
\n\n {/* 近期纪念日标签页 */}\n \n \n \n 近期纪念日\n 未来三个月内的生日和忌日\n \n \n
\n {(() => {\n const now = new Date()\n const threeMonthsLater = new Date(now.getFullYear(), now.getMonth() + 3, now.getDate())\n const members = Object.values(treeData.members)\n const upcomingEvents: Array<{\n member: any\n type: 'birth' | 'death'\n date: Date\n originalDate: string\n }> = []\n\n members.forEach(member => {\n // 生日\n if (member.birthDate) {\n const birthDate = new Date(member.birthDate)\n const thisYearBirth = new Date(now.getFullYear(), birthDate.getMonth(), birthDate.getDate())\n if (thisYearBirth >= now && thisYearBirth <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'birth',\n date: thisYearBirth,\n originalDate: member.birthDate\n })\n }\n }\n\n // 忌日\n if (member.deathDate) {\n const deathDate = new Date(member.deathDate)\n const thisYearDeath = new Date(now.getFullYear(), deathDate.getMonth(), deathDate.getDate())\n if (thisYearDeath >= now && thisYearDeath <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'death',\n date: thisYearDeath,\n originalDate: member.deathDate\n })\n }\n }\n })\n\n upcomingEvents.sort((a, b) => a.date.getTime() - b.date.getTime())\n\n return upcomingEvents.length > 0 ? (\n upcomingEvents.map((event, index) => {\n const yearsAgo = now.getFullYear() - new Date(event.originalDate).getFullYear()\n return (\n \n \n \n
\n
\n {event.date.getMonth() + 1}月\n {event.date.getDate()}\n
\n
\n

\n {event.member.fullName} {event.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {event.member.generation} 世 · {yearsAgo} 年\n {event.type === 'death' && ' · 已故'}\n

\n
\n
\n
\n
\n \n )\n })\n ) : (\n
\n 未来三个月暂无纪念日\n
\n )\n })()}\n
\n
\n
\n
\n\n {/* 统计图表标签页 */}\n \n \n \n\n {/* 迁徙记录标签页 */}\n \n \n \n 家族迁徙记录\n 记录家族成员的籍贯分布\n \n \n
\n {useMemo(() => {\n const members = Object.values(treeData.members)\n const locationGroups: Record = {}\n\n members.forEach(member => {\n if (member.ancestralHome) {\n if (!locationGroups[member.ancestralHome]) {\n locationGroups[member.ancestralHome] = []\n }\n locationGroups[member.ancestralHome].push(member)\n }\n })\n\n const sortedLocations = Object.entries(locationGroups)\n .sort((a, b) => b[1].length - a[1].length)\n\n return sortedLocations.length > 0 ? (\n sortedLocations.map(([location, locationMembers]) => (\n
\n
\n

{location}

\n \n {locationMembers.length} 人\n \n
\n
\n {locationMembers.map((member: any) => (\n \n
\n

{member.fullName}

\n

第 {member.generation} 世

\n
\n \n ))}\n
\n
\n ))\n ) : (\n
\n 暂无迁徙记录\n
\n )\n }, [treeData])}\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction StatCard({\n title,\n value,\n subtitle,\n icon,\n}: { title: string; value: string; subtitle: string; icon: React.ReactNode }) {\n return (\n \n \n
\n

{title}

\n
\n {icon}\n
\n
\n
\n {value}\n

{subtitle}

\n
\n
\n
\n \n )\n}\n"],"names":[],"mappings":"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"}}] + {"offset": {"line": 2877, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/page.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\nimport Link from \"next/link\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\nimport { UserPlus, Network, Map, Calendar, Users, ArrowRight, Clock, Search, BookOpen, BarChart3, Calculator } from \"lucide-react\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useMemo, useState, useEffect, useRef } from \"react\"\nimport { StatisticsCharts } from \"@/components/dashboard/statistics-charts\"\nimport { format } from \"date-fns\"\nimport { useSession } from \"next-auth/react\"\nimport { useSearchParams } from \"next/navigation\"\nimport { CollaboratorDialog } from \"@/components/tree/collaborator-dialog\"\n\ninterface ActivityLog {\n id: string\n action: string\n entityType: string\n entityId?: string | null\n entityName?: string | null\n timestamp: string\n user?: {\n name?: string | null\n email?: string | null\n }\n}\n\nexport default function DashboardPage() {\n const { treeData, isLoading, currentTree } = useFamily()\n const { data: session } = useSession()\n const [recentActivities, setRecentActivities] = useState([])\n \n // 加载最近的操作日志\n useEffect(() => {\n if (currentTree?.id && session?.user?.id) {\n fetch(`/api/trees/${currentTree.id}/activity-logs?limit=10`)\n .then(res => {\n if (!res.ok) {\n throw new Error('获取活动日志失败')\n }\n return res.json()\n })\n .then(data => {\n if (data.logs) {\n setRecentActivities(data.logs)\n }\n })\n .catch(err => {\n console.error('获取活动日志失败:', err)\n setRecentActivities([])\n })\n } else {\n setRecentActivities([])\n }\n }, [currentTree?.id, session?.user?.id])\n \n // 计算统计数据\n const stats = useMemo(() => {\n const members = Object.values(treeData.members)\n const totalMembers = members.length\n \n // 在世和已故人数\n const livingMembers = members.filter(m => !m.deathDate).length\n const deceasedMembers = members.filter(m => m.deathDate).length\n \n // 性别统计\n const maleCount = members.filter(m => m.gender === 'MALE').length\n const femaleCount = members.filter(m => m.gender === 'FEMALE').length\n \n // 计算最大代数(处理空数组的情况)\n const generations = members.map(m => m.generation || 0)\n const maxGeneration = generations.length > 0 ? Math.max(...generations) : 0\n \n // 计算最早出生年份\n const birthYears = members\n .map(m => m.birthDate ? new Date(m.birthDate).getFullYear() : null)\n .filter(y => y !== null) as number[]\n const earliestYear = birthYears.length > 0 ? Math.min(...birthYears) : new Date().getFullYear()\n const yearsSpan = birthYears.length > 0 ? new Date().getFullYear() - earliestYear : 0\n \n // 计算平均寿命(只统计已故成员)\n const deceasedWithAge = members.filter(m => m.birthDate && m.deathDate)\n const totalAge = deceasedWithAge.reduce((sum, m) => {\n const birthYear = new Date(m.birthDate!).getFullYear()\n const deathYear = new Date(m.deathDate!).getFullYear()\n return sum + (deathYear - birthYear)\n }, 0)\n const averageLifespan = deceasedWithAge.length > 0 \n ? Math.round(totalAge / deceasedWithAge.length) \n : 0\n \n return {\n totalMembers,\n livingMembers,\n deceasedMembers,\n maleCount,\n femaleCount,\n maxGeneration,\n yearsSpan,\n earliestYear,\n averageLifespan\n }\n }, [treeData])\n \n // 获取最近的成员(按ID排序,取最新的5个)\n const recentMembers = useMemo(() => {\n return Object.values(treeData.members)\n .sort((a, b) => parseInt(b.id) - parseInt(a.id))\n .slice(0, 5)\n }, [treeData])\n \n // 获取本月纪念日(生日和忌日)\n const monthlyAnniversaries = useMemo(() => {\n const currentMonth = new Date().getMonth() + 1\n const members = Object.values(treeData.members)\n \n const anniversaries: Array<{\n member: any\n type: 'birth' | 'death'\n date: string\n day: number\n }> = []\n \n members.forEach(member => {\n // 检查生日\n if (member.birthDate) {\n const birthMonth = new Date(member.birthDate).getMonth() + 1\n const birthDay = new Date(member.birthDate).getDate()\n if (birthMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'birth',\n date: member.birthDate,\n day: birthDay\n })\n }\n }\n \n // 检查忌日\n if (member.deathDate) {\n const deathMonth = new Date(member.deathDate).getMonth() + 1\n const deathDay = new Date(member.deathDate).getDate()\n if (deathMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'death',\n date: member.deathDate,\n day: deathDay\n })\n }\n }\n })\n \n // 按日期排序\n return anniversaries.sort((a, b) => a.day - b.day).slice(0, 5)\n }, [treeData])\n return (\n
\n \n\n
\n
\n
\n
\n

\n {currentTree?.name || '家族族谱'}\n

\n {currentTree?.currentUserRole && (\n \n {currentTree.currentUserRole === 'OWNER' ? '所有者' : \n currentTree.currentUserRole === 'EDITOR' ? '编辑者' : '查看者'}\n \n )}\n
\n

\n {currentTree?.description || '记录家族历史,传承家族文化'}\n {stats.maxGeneration > 0 && ` · 第 ${stats.maxGeneration} 代传人`}\n

\n
\n
\n {session && currentTree?.ownerId === session.user?.id && (\n \n )}\n {(currentTree?.currentUserRole === \"OWNER\" || currentTree?.currentUserRole === \"EDITOR\") && (\n \n \n \n )}\n
\n
\n\n
\n } \n />\n } \n />\n } \n />\n 0 ? Math.round(stats.livingMembers / stats.totalMembers * 100) : 0}%`} \n icon={} \n />\n 0 ? `${stats.averageLifespan} 岁` : '暂无数据'} \n subtitle={`已统计 ${stats.deceasedMembers} 人`} \n icon={} \n />\n \n \n
\n

性别比例

\n
\n \n
\n
\n
\n
\n \n 1\n \n :\n \n {stats.maleCount > 0 ? (stats.femaleCount / stats.maleCount).toFixed(2) : '0'}\n \n
\n
\n 男性 : 女性\n
\n \n {/* 双色进度条 */}\n
\n
\n \n \n 男性 {stats.maleCount}\n \n \n 女性 {stats.femaleCount}\n \n \n
\n
\n
0 ? (stats.maleCount / stats.totalMembers * 100) : 0}%` }}\n >\n {stats.totalMembers > 0 && stats.maleCount > 0 && (\n \n {Math.round(stats.maleCount / stats.totalMembers * 100)}%\n \n )}\n
\n
0 ? (stats.femaleCount / stats.totalMembers * 100) : 0}%` }}\n >\n {stats.totalMembers > 0 && stats.femaleCount > 0 && (\n \n {Math.round(stats.femaleCount / stats.totalMembers * 100)}%\n \n )}\n
\n
\n
\n
\n
\n
\n \n
\n\n \n
\n \n 最近更新\n 近期纪念日\n 统计图表\n 迁徙记录\n \n \n \n \n
\n\n \n
\n \n \n 近期修谱动态\n 记录家族成员的最新变动与修订\n \n \n \n
\n {recentActivities.length > 0 ? (\n recentActivities.map((activity, i) => (\n
\n
\n
\n
\n
\n
\n
\n \n {activity.action === 'create' ? '创建' :\n activity.action === 'update' ? '更新' :\n activity.action === 'delete' ? '删除' : '导入'}\n \n {activity.entityName || '未知'}\n \n {format(new Date(activity.timestamp), 'MM-dd HH:mm')}\n \n
\n

\n {activity.action === 'create' && '新增了家族成员'}\n {activity.action === 'update' && '更新了成员信息'}\n {activity.action === 'delete' && '删除了成员'}\n {activity.action === 'import' && '导入了家族数据'}\n

\n
\n
\n ))\n ) : (\n
\n 暂无修谱记录\n
\n )}\n
\n
\n
\n
\n\n
\n \n \n \n \n 本月祭祖/纪念\n \n \n \n {monthlyAnniversaries.length > 0 ? (\n monthlyAnniversaries.map((anniversary, index) => {\n const yearsAgo = new Date().getFullYear() - new Date(anniversary.date).getFullYear()\n return (\n \n
\n
\n \n {new Date(anniversary.date).getMonth() + 1}月\n \n {anniversary.day}\n
\n
\n

\n {anniversary.member.fullName} {anniversary.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {anniversary.member.generation} 世 · 距今 {yearsAgo} 年\n {anniversary.type === 'death' && ' · 已故'}\n

\n
\n
\n \n )\n })\n ) : (\n
\n 本月暂无纪念日\n
\n )}\n
\n
\n
\n
\n
\n\n {/* 近期纪念日标签页 */}\n \n \n \n 近期纪念日\n 未来三个月内的生日和忌日\n \n \n
\n {(() => {\n const now = new Date()\n const threeMonthsLater = new Date(now.getFullYear(), now.getMonth() + 3, now.getDate())\n const members = Object.values(treeData.members)\n const upcomingEvents: Array<{\n member: any\n type: 'birth' | 'death'\n date: Date\n originalDate: string\n }> = []\n\n members.forEach(member => {\n // 生日\n if (member.birthDate) {\n const birthDate = new Date(member.birthDate)\n const thisYearBirth = new Date(now.getFullYear(), birthDate.getMonth(), birthDate.getDate())\n if (thisYearBirth >= now && thisYearBirth <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'birth',\n date: thisYearBirth,\n originalDate: member.birthDate\n })\n }\n }\n\n // 忌日\n if (member.deathDate) {\n const deathDate = new Date(member.deathDate)\n const thisYearDeath = new Date(now.getFullYear(), deathDate.getMonth(), deathDate.getDate())\n if (thisYearDeath >= now && thisYearDeath <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'death',\n date: thisYearDeath,\n originalDate: member.deathDate\n })\n }\n }\n })\n\n upcomingEvents.sort((a, b) => a.date.getTime() - b.date.getTime())\n\n return upcomingEvents.length > 0 ? (\n upcomingEvents.map((event, index) => {\n const yearsAgo = now.getFullYear() - new Date(event.originalDate).getFullYear()\n return (\n \n \n \n
\n
\n {event.date.getMonth() + 1}月\n {event.date.getDate()}\n
\n
\n

\n {event.member.fullName} {event.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {event.member.generation} 世 · {yearsAgo} 年\n {event.type === 'death' && ' · 已故'}\n

\n
\n
\n
\n
\n \n )\n })\n ) : (\n
\n 未来三个月暂无纪念日\n
\n )\n })()}\n
\n
\n
\n
\n\n {/* 统计图表标签页 */}\n \n \n \n\n {/* 迁徙记录标签页 */}\n \n \n \n 家族迁徙记录\n 记录家族成员的籍贯分布\n \n \n
\n {useMemo(() => {\n const members = Object.values(treeData.members)\n const locationGroups: Record = {}\n\n members.forEach(member => {\n if (member.ancestralHome) {\n if (!locationGroups[member.ancestralHome]) {\n locationGroups[member.ancestralHome] = []\n }\n locationGroups[member.ancestralHome].push(member)\n }\n })\n\n const sortedLocations = Object.entries(locationGroups)\n .sort((a, b) => b[1].length - a[1].length)\n\n return sortedLocations.length > 0 ? (\n sortedLocations.map(([location, locationMembers]) => (\n
\n
\n

{location}

\n \n {locationMembers.length} 人\n \n
\n
\n {locationMembers.map((member: any) => (\n \n
\n

{member.fullName}

\n

第 {member.generation} 世

\n
\n \n ))}\n
\n
\n ))\n ) : (\n
\n 暂无迁徙记录\n
\n )\n }, [treeData])}\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction StatCard({\n title,\n value,\n subtitle,\n icon,\n}: { title: string; value: string; subtitle: string; icon: React.ReactNode }) {\n return (\n \n \n
\n

{title}

\n
\n {icon}\n
\n
\n
\n {value}\n

{subtitle}

\n
\n
\n
\n \n )\n}\n"],"names":[],"mappings":"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"}}] } \ No newline at end of file diff --git a/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_app_globals_css_bad6b30c._.single.css b/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_app_globals_css_bad6b30c._.single.css index 137e7c9b..92f9ebcb 100644 --- a/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_app_globals_css_bad6b30c._.single.css +++ b/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_app_globals_css_bad6b30c._.single.css @@ -2450,6 +2450,36 @@ } } + .bg-primary\/40 { + background-color: var(--primary); + } + + @supports (color: color-mix(in lab, red, red)) { + .bg-primary\/40 { + background-color: color-mix(in oklab, var(--primary) 40%, transparent); + } + } + + .bg-primary\/60 { + background-color: var(--primary); + } + + @supports (color: color-mix(in lab, red, red)) { + .bg-primary\/60 { + background-color: color-mix(in oklab, var(--primary) 60%, transparent); + } + } + + .bg-primary\/70 { + background-color: var(--primary); + } + + @supports (color: color-mix(in lab, red, red)) { + .bg-primary\/70 { + background-color: color-mix(in oklab, var(--primary) 70%, transparent); + } + } + .bg-purple-50 { background-color: var(--color-purple-50); } @@ -3202,6 +3232,16 @@ } } + .text-primary\/80 { + color: var(--primary); + } + + @supports (color: color-mix(in lab, red, red)) { + .text-primary\/80 { + color: color-mix(in oklab, var(--primary) 80%, transparent); + } + } + .text-purple-700 { color: var(--color-purple-700); } diff --git a/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_app_globals_css_bad6b30c._.single.css.map b/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_app_globals_css_bad6b30c._.single.css.map index 6fd3dd37..a48c52fb 100644 --- a/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_app_globals_css_bad6b30c._.single.css.map +++ b/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_app_globals_css_bad6b30c._.single.css.map @@ -2,5 +2,5 @@ "version": 3, "sources": [], "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/Documents/go-new/chinese-family-tree/app/globals.css"],"sourcesContent":["/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-orange-50: oklch(98% 0.016 73.684);\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-orange-700: oklch(55.3% 0.195 38.402);\n --color-amber-700: oklch(55.5% 0.163 48.998);\n --color-yellow-50: oklch(98.7% 0.026 102.212);\n --color-yellow-200: oklch(94.5% 0.129 101.54);\n --color-yellow-400: oklch(85.2% 0.199 91.936);\n --color-yellow-800: oklch(47.6% 0.114 61.907);\n --color-yellow-900: oklch(42.1% 0.095 57.708);\n --color-yellow-950: oklch(28.6% 0.066 53.813);\n --color-green-50: oklch(98.2% 0.018 155.826);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-200: oklch(92.5% 0.084 155.995);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-green-600: oklch(62.7% 0.194 149.214);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-100: oklch(93.2% 0.032 255.585);\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-blue-900: oklch(37.9% 0.146 265.522);\n --color-blue-950: oklch(28.2% 0.091 267.935);\n --color-purple-50: oklch(97.7% 0.014 308.299);\n --color-purple-100: oklch(94.6% 0.033 307.174);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-500: oklch(62.7% 0.265 303.9);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-pink-100: oklch(94.8% 0.028 342.258);\n --color-pink-400: oklch(71.8% 0.202 349.761);\n --color-pink-500: oklch(65.6% 0.241 354.308);\n --color-pink-600: oklch(59.2% 0.249 0.584);\n --color-pink-700: oklch(52.5% 0.223 3.958);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-neutral-100: oklch(97% 0 0);\n --color-neutral-200: oklch(92.2% 0 0);\n --color-neutral-400: oklch(70.8% 0 0);\n --color-neutral-500: oklch(55.6% 0 0);\n --color-neutral-600: oklch(43.9% 0 0);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-sm: 24rem;\n --container-md: 28rem;\n --container-lg: 32rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n --container-6xl: 72rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-tight: -0.025em;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --tracking-widest: 0.1em;\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-normal: 1.5;\n --leading-relaxed: 1.625;\n --radius-xs: 0.125rem;\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --aspect-video: 16 / 9;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: \"Geist\", \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\n --default-mono-font-family: \"Geist Mono\", monospace;\n --color-border: var(--border);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .\\@container\\/card-header {\n container-type: inline-size;\n container-name: card-header;\n }\n .\\@container\\/field-group {\n container-type: inline-size;\n container-name: field-group;\n }\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .invisible {\n visibility: hidden;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .inset-x-0 {\n inset-inline: calc(var(--spacing) * 0);\n }\n .inset-y-0 {\n inset-block: calc(var(--spacing) * 0);\n }\n .-top-1 {\n top: calc(var(--spacing) * -1);\n }\n .-top-3 {\n top: calc(var(--spacing) * -3);\n }\n .-top-12 {\n top: calc(var(--spacing) * -12);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1 {\n top: calc(var(--spacing) * 1);\n }\n .top-1\\.5 {\n top: calc(var(--spacing) * 1.5);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .top-2 {\n top: calc(var(--spacing) * 2);\n }\n .top-2\\.5 {\n top: calc(var(--spacing) * 2.5);\n }\n .top-3\\.5 {\n top: calc(var(--spacing) * 3.5);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .top-20 {\n top: calc(var(--spacing) * 20);\n }\n .top-\\[1px\\] {\n top: 1px;\n }\n .top-\\[50\\%\\] {\n top: 50%;\n }\n .top-\\[60\\%\\] {\n top: 60%;\n }\n .top-full {\n top: 100%;\n }\n .-right-0\\.5 {\n right: calc(var(--spacing) * -0.5);\n }\n .-right-1 {\n right: calc(var(--spacing) * -1);\n }\n .-right-12 {\n right: calc(var(--spacing) * -12);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-1 {\n right: calc(var(--spacing) * 1);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-3 {\n right: calc(var(--spacing) * 3);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .-bottom-0\\.5 {\n bottom: calc(var(--spacing) * -0.5);\n }\n .-bottom-1 {\n bottom: calc(var(--spacing) * -1);\n }\n .-bottom-12 {\n bottom: calc(var(--spacing) * -12);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-2 {\n bottom: calc(var(--spacing) * 2);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .-left-12 {\n left: calc(var(--spacing) * -12);\n }\n .-left-16 {\n left: calc(var(--spacing) * -16);\n }\n .-left-\\[9px\\] {\n left: calc(9px * -1);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-2 {\n left: calc(var(--spacing) * 2);\n }\n .left-2\\.5 {\n left: calc(var(--spacing) * 2.5);\n }\n .left-4 {\n left: calc(var(--spacing) * 4);\n }\n .left-\\[50\\%\\] {\n left: 50%;\n }\n .isolate {\n isolation: isolate;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-30 {\n z-index: 30;\n }\n .z-50 {\n z-index: 50;\n }\n .z-\\[1\\] {\n z-index: 1;\n }\n .z-\\[100\\] {\n z-index: 100;\n }\n .order-first {\n order: -9999;\n }\n .order-last {\n order: 9999;\n }\n .col-span-full {\n grid-column: 1 / -1;\n }\n .col-start-2 {\n grid-column-start: 2;\n }\n .row-span-2 {\n grid-row: span 2 / span 2;\n }\n .row-start-1 {\n grid-row-start: 1;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .\\!m-0 {\n margin: calc(var(--spacing) * 0) !important;\n }\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n }\n .mx-2 {\n margin-inline: calc(var(--spacing) * 2);\n }\n .mx-3\\.5 {\n margin-inline: calc(var(--spacing) * 3.5);\n }\n .mx-4 {\n margin-inline: calc(var(--spacing) * 4);\n }\n .mx-auto {\n margin-inline: auto;\n }\n .-my-2 {\n margin-block: calc(var(--spacing) * -2);\n }\n .my-0 {\n margin-block: calc(var(--spacing) * 0);\n }\n .my-0\\.5 {\n margin-block: calc(var(--spacing) * 0.5);\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .-mt-2 {\n margin-top: calc(var(--spacing) * -2);\n }\n .-mt-4 {\n margin-top: calc(var(--spacing) * -4);\n }\n .mt-0 {\n margin-top: calc(var(--spacing) * 0);\n }\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * 0.5);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-1\\.5 {\n margin-top: calc(var(--spacing) * 1.5);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-auto {\n margin-top: auto;\n }\n .mr-1 {\n margin-right: calc(var(--spacing) * 1);\n }\n .mr-2 {\n margin-right: calc(var(--spacing) * 2);\n }\n .mr-8 {\n margin-right: calc(var(--spacing) * 8);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .mb-8 {\n margin-bottom: calc(var(--spacing) * 8);\n }\n .-ml-4 {\n margin-left: calc(var(--spacing) * -4);\n }\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n .ml-2 {\n margin-left: calc(var(--spacing) * 2);\n }\n .ml-4 {\n margin-left: calc(var(--spacing) * 4);\n }\n .ml-6 {\n margin-left: calc(var(--spacing) * 6);\n }\n .ml-auto {\n margin-left: auto;\n }\n .line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n .line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline-flex {\n display: inline-flex;\n }\n .table {\n display: table;\n }\n .table-caption {\n display: table-caption;\n }\n .table-cell {\n display: table-cell;\n }\n .table-row {\n display: table-row;\n }\n .field-sizing-content {\n field-sizing: content;\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .aspect-video {\n aspect-ratio: var(--aspect-video);\n }\n .size-\\(--cell-size\\) {\n width: var(--cell-size);\n height: var(--cell-size);\n }\n .size-2 {\n width: calc(var(--spacing) * 2);\n height: calc(var(--spacing) * 2);\n }\n .size-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n .size-3 {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n .size-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n .size-4 {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n .size-6 {\n width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6);\n }\n .size-7 {\n width: calc(var(--spacing) * 7);\n height: calc(var(--spacing) * 7);\n }\n .size-8 {\n width: calc(var(--spacing) * 8);\n height: calc(var(--spacing) * 8);\n }\n .size-9 {\n width: calc(var(--spacing) * 9);\n height: calc(var(--spacing) * 9);\n }\n .size-10 {\n width: calc(var(--spacing) * 10);\n height: calc(var(--spacing) * 10);\n }\n .size-auto {\n width: auto;\n height: auto;\n }\n .size-full {\n width: 100%;\n height: 100%;\n }\n .h-\\(--cell-size\\) {\n height: var(--cell-size);\n }\n .h-1 {\n height: calc(var(--spacing) * 1);\n }\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-2\\.5 {\n height: calc(var(--spacing) * 2.5);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-7 {\n height: calc(var(--spacing) * 7);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-14 {\n height: calc(var(--spacing) * 14);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-20 {\n height: calc(var(--spacing) * 20);\n }\n .h-32 {\n height: calc(var(--spacing) * 32);\n }\n .h-\\[1\\.15rem\\] {\n height: 1.15rem;\n }\n .h-\\[300px\\] {\n height: 300px;\n }\n .h-\\[400px\\] {\n height: 400px;\n }\n .h-\\[600px\\] {\n height: 600px;\n }\n .h-\\[calc\\(100\\%-1px\\)\\] {\n height: calc(100% - 1px);\n }\n .h-\\[var\\(--radix-navigation-menu-viewport-height\\)\\] {\n height: var(--radix-navigation-menu-viewport-height);\n }\n .h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n }\n .h-auto {\n height: auto;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .h-screen {\n height: 100vh;\n }\n .h-svh {\n height: 100svh;\n }\n .max-h-\\(--radix-context-menu-content-available-height\\) {\n max-height: var(--radix-context-menu-content-available-height);\n }\n .max-h-\\(--radix-dropdown-menu-content-available-height\\) {\n max-height: var(--radix-dropdown-menu-content-available-height);\n }\n .max-h-\\(--radix-select-content-available-height\\) {\n max-height: var(--radix-select-content-available-height);\n }\n .max-h-96 {\n max-height: calc(var(--spacing) * 96);\n }\n .max-h-\\[60vh\\] {\n max-height: 60vh;\n }\n .max-h-\\[70vh\\] {\n max-height: 70vh;\n }\n .max-h-\\[300px\\] {\n max-height: 300px;\n }\n .max-h-screen {\n max-height: 100vh;\n }\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n .min-h-4 {\n min-height: calc(var(--spacing) * 4);\n }\n .min-h-16 {\n min-height: calc(var(--spacing) * 16);\n }\n .min-h-\\[200px\\] {\n min-height: 200px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .min-h-svh {\n min-height: 100svh;\n }\n .w-\\(--cell-size\\) {\n width: var(--cell-size);\n }\n .w-\\(--sidebar-width\\) {\n width: var(--sidebar-width);\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-1 {\n width: calc(var(--spacing) * 1);\n }\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n .w-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n }\n .w-3 {\n width: calc(var(--spacing) * 3);\n }\n .w-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n }\n .w-3\\/4 {\n width: calc(3/4 * 100%);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-7 {\n width: calc(var(--spacing) * 7);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-9 {\n width: calc(var(--spacing) * 9);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-14 {\n width: calc(var(--spacing) * 14);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-32 {\n width: calc(var(--spacing) * 32);\n }\n .w-48 {\n width: calc(var(--spacing) * 48);\n }\n .w-56 {\n width: calc(var(--spacing) * 56);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n .w-\\[100px\\] {\n width: 100px;\n }\n .w-\\[200px\\] {\n width: 200px;\n }\n .w-\\[var\\(--radix-dropdown-menu-trigger-width\\)\\] {\n width: var(--radix-dropdown-menu-trigger-width);\n }\n .w-auto {\n width: auto;\n }\n .w-fit {\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .w-max {\n width: max-content;\n }\n .w-px {\n width: 1px;\n }\n .max-w-\\(--skeleton-width\\) {\n max-width: var(--skeleton-width);\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-3xl {\n max-width: var(--container-3xl);\n }\n .max-w-4xl {\n max-width: var(--container-4xl);\n }\n .max-w-6xl {\n max-width: var(--container-6xl);\n }\n .max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n }\n .max-w-full {\n max-width: 100%;\n }\n .max-w-max {\n max-width: max-content;\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .max-w-none {\n max-width: none;\n }\n .max-w-sm {\n max-width: var(--container-sm);\n }\n .min-w-\\(--cell-size\\) {\n min-width: var(--cell-size);\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n .min-w-5 {\n min-width: calc(var(--spacing) * 5);\n }\n .min-w-8 {\n min-width: calc(var(--spacing) * 8);\n }\n .min-w-9 {\n min-width: calc(var(--spacing) * 9);\n }\n .min-w-10 {\n min-width: calc(var(--spacing) * 10);\n }\n .min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n .min-w-\\[12rem\\] {\n min-width: 12rem;\n }\n .min-w-\\[200px\\] {\n min-width: 200px;\n }\n .min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n }\n .min-w-fit {\n min-width: fit-content;\n }\n .min-w-full {\n min-width: 100%;\n }\n .flex-1 {\n flex: 1;\n }\n .flex-shrink {\n flex-shrink: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .grow {\n flex-grow: 1;\n }\n .grow-0 {\n flex-grow: 0;\n }\n .basis-full {\n flex-basis: 100%;\n }\n .caption-bottom {\n caption-side: bottom;\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .origin-\\(--radix-context-menu-content-transform-origin\\) {\n transform-origin: var(--radix-context-menu-content-transform-origin);\n }\n .origin-\\(--radix-dropdown-menu-content-transform-origin\\) {\n transform-origin: var(--radix-dropdown-menu-content-transform-origin);\n }\n .origin-\\(--radix-hover-card-content-transform-origin\\) {\n transform-origin: var(--radix-hover-card-content-transform-origin);\n }\n .origin-\\(--radix-menubar-content-transform-origin\\) {\n transform-origin: var(--radix-menubar-content-transform-origin);\n }\n .origin-\\(--radix-popover-content-transform-origin\\) {\n transform-origin: var(--radix-popover-content-transform-origin);\n }\n .origin-\\(--radix-select-content-transform-origin\\) {\n transform-origin: var(--radix-select-content-transform-origin);\n }\n .origin-\\(--radix-tooltip-content-transform-origin\\) {\n transform-origin: var(--radix-tooltip-content-transform-origin);\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-px {\n --tw-translate-x: -1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-px {\n --tw-translate-x: 1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0\\.5 {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[2px\\] {\n --tw-translate-y: 2px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[calc\\(-50\\%_-_2px\\)\\] {\n --tw-translate-y: calc(-50% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .rotate-45 {\n rotate: 45deg;\n }\n .rotate-90 {\n rotate: 90deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-caret-blink {\n animation: caret-blink 1.25s ease-out infinite;\n }\n .animate-in {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-move {\n cursor: move;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .cursor-text {\n cursor: text;\n }\n .touch-none {\n touch-action: none;\n }\n .resize {\n resize: both;\n }\n .resize-none {\n resize: none;\n }\n .scroll-my-1 {\n scroll-margin-block: calc(var(--spacing) * 1);\n }\n .scroll-py-1 {\n scroll-padding-block: calc(var(--spacing) * 1);\n }\n .list-inside {\n list-style-position: inside;\n }\n .list-disc {\n list-style-type: disc;\n }\n .list-none {\n list-style-type: none;\n }\n .auto-rows-min {\n grid-auto-rows: min-content;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-\\[0_1fr\\] {\n grid-template-columns: 0 1fr;\n }\n .grid-rows-\\[auto_auto\\] {\n grid-template-rows: auto auto;\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-col-reverse {\n flex-direction: column-reverse;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-baseline {\n align-items: baseline;\n }\n .items-center {\n align-items: center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .justify-items-start {\n justify-items: start;\n }\n .gap-0\\.5 {\n gap: calc(var(--spacing) * 0.5);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-2\\.5 {\n gap: calc(var(--spacing) * 2.5);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-7 {\n gap: calc(var(--spacing) * 7);\n }\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n .space-y-0 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-0\\.5 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-1 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-8 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-x-4 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .gap-y-0\\.5 {\n row-gap: calc(var(--spacing) * 0.5);\n }\n .self-start {\n align-self: flex-start;\n }\n .self-stretch {\n align-self: stretch;\n }\n .justify-self-end {\n justify-self: flex-end;\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-\\[2px\\] {\n border-radius: 2px;\n }\n .rounded-\\[4px\\] {\n border-radius: 4px;\n }\n .rounded-\\[calc\\(var\\(--radius\\)-5px\\)\\] {\n border-radius: calc(var(--radius) - 5px);\n }\n .rounded-\\[inherit\\] {\n border-radius: inherit;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius);\n }\n .rounded-md {\n border-radius: calc(var(--radius) - 2px);\n }\n .rounded-none {\n border-radius: 0;\n }\n .rounded-sm {\n border-radius: calc(var(--radius) - 4px);\n }\n .rounded-xl {\n border-radius: calc(var(--radius) + 4px);\n }\n .rounded-xs {\n border-radius: var(--radius-xs);\n }\n .rounded-l-md {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n .rounded-tl-sm {\n border-top-left-radius: calc(var(--radius) - 4px);\n }\n .rounded-r-md {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-4 {\n border-style: var(--tw-border-style);\n border-width: 4px;\n }\n .border-\\[1\\.5px\\] {\n border-style: var(--tw-border-style);\n border-width: 1.5px;\n }\n .border-y {\n border-block-style: var(--tw-border-style);\n border-block-width: 1px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-l-2 {\n border-left-style: var(--tw-border-style);\n border-left-width: 2px;\n }\n .border-l-4 {\n border-left-style: var(--tw-border-style);\n border-left-width: 4px;\n }\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .border-\\(--color-border\\) {\n border-color: var(--color-border);\n }\n .border-background {\n border-color: var(--background);\n }\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n .border-blue-500 {\n border-color: var(--color-blue-500);\n }\n .border-border {\n border-color: var(--border);\n }\n .border-border\\/40 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 40%, transparent);\n }\n }\n .border-border\\/50 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 50%, transparent);\n }\n }\n .border-border\\/60 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 60%, transparent);\n }\n }\n .border-destructive {\n border-color: var(--destructive);\n }\n .border-destructive\\/20 {\n border-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-green-200 {\n border-color: var(--color-green-200);\n }\n .border-input {\n border-color: var(--input);\n }\n .border-muted-foreground\\/50 {\n border-color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--muted-foreground) 50%, transparent);\n }\n }\n .border-neutral-200 {\n border-color: var(--color-neutral-200);\n }\n .border-orange-200 {\n border-color: var(--color-orange-200);\n }\n .border-primary {\n border-color: var(--primary);\n }\n .border-primary\\/20 {\n border-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--primary) 20%, transparent);\n }\n }\n .border-purple-200 {\n border-color: var(--color-purple-200);\n }\n .border-red-500 {\n border-color: var(--color-red-500);\n }\n .border-sidebar-border {\n border-color: var(--sidebar-border);\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-white {\n border-color: var(--color-white);\n }\n .border-yellow-400 {\n border-color: var(--color-yellow-400);\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .border-l-transparent {\n border-left-color: transparent;\n }\n .bg-\\(--color-bg\\) {\n background-color: var(--color-bg);\n }\n .bg-accent {\n background-color: var(--accent);\n }\n .bg-background {\n background-color: var(--background);\n }\n .bg-background\\/50 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 50%, transparent);\n }\n }\n .bg-background\\/60 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 60%, transparent);\n }\n }\n .bg-background\\/80 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 80%, transparent);\n }\n }\n .bg-background\\/90 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 90%, transparent);\n }\n }\n .bg-background\\/95 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 95%, transparent);\n }\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n .bg-blue-500 {\n background-color: var(--color-blue-500);\n }\n .bg-border {\n background-color: var(--border);\n }\n .bg-card {\n background-color: var(--card);\n }\n .bg-card\\/50 {\n background-color: var(--card);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--card) 50%, transparent);\n }\n }\n .bg-destructive {\n background-color: var(--destructive);\n }\n .bg-destructive\\/10 {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 10%, transparent);\n }\n }\n .bg-destructive\\/15 {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 15%, transparent);\n }\n }\n .bg-foreground {\n background-color: var(--foreground);\n }\n .bg-foreground\\/25 {\n background-color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--foreground) 25%, transparent);\n }\n }\n .bg-foreground\\/50 {\n background-color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--foreground) 50%, transparent);\n }\n }\n .bg-foreground\\/60 {\n background-color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--foreground) 60%, transparent);\n }\n }\n .bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-gray-500 {\n background-color: var(--color-gray-500);\n }\n .bg-green-50 {\n background-color: var(--color-green-50);\n }\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n .bg-input {\n background-color: var(--input);\n }\n .bg-muted {\n background-color: var(--muted);\n }\n .bg-muted\\/30 {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 30%, transparent);\n }\n }\n .bg-muted\\/50 {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 50%, transparent);\n }\n }\n .bg-neutral-100 {\n background-color: var(--color-neutral-100);\n }\n .bg-neutral-400 {\n background-color: var(--color-neutral-400);\n }\n .bg-orange-50 {\n background-color: var(--color-orange-50);\n }\n .bg-orange-500 {\n background-color: var(--color-orange-500);\n }\n .bg-pink-100 {\n background-color: var(--color-pink-100);\n }\n .bg-pink-500 {\n background-color: var(--color-pink-500);\n }\n .bg-popover {\n background-color: var(--popover);\n }\n .bg-primary {\n background-color: var(--primary);\n }\n .bg-primary\\/5 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 5%, transparent);\n }\n }\n .bg-primary\\/10 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 10%, transparent);\n }\n }\n .bg-primary\\/20 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 20%, transparent);\n }\n }\n .bg-purple-50 {\n background-color: var(--color-purple-50);\n }\n .bg-purple-100 {\n background-color: var(--color-purple-100);\n }\n .bg-purple-500 {\n background-color: var(--color-purple-500);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-red-500 {\n background-color: var(--color-red-500);\n }\n .bg-secondary {\n background-color: var(--secondary);\n }\n .bg-sidebar {\n background-color: var(--sidebar);\n }\n .bg-sidebar-border {\n background-color: var(--sidebar-border);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-yellow-50 {\n background-color: var(--color-yellow-50);\n }\n .bg-gradient-to-br {\n --tw-gradient-position: to bottom right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-r {\n --tw-gradient-position: to right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-\\[url\\(\\'https\\:\\/\\/www\\.transparenttextures\\.com\\/patterns\\/rice-paper\\.png\\'\\)\\] {\n background-image: url('https://www.transparenttextures.com/patterns/rice-paper.png');\n }\n .from-blue-500 {\n --tw-gradient-from: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-blue-600 {\n --tw-gradient-from: var(--color-blue-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-card {\n --tw-gradient-from: var(--card);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-pink-500 {\n --tw-gradient-from: var(--color-pink-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-primary\\/5 {\n --tw-gradient-from: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--primary) 5%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-primary\\/50 {\n --tw-gradient-from: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--primary) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .via-background {\n --tw-gradient-via: var(--background);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-primary {\n --tw-gradient-via: var(--primary);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-purple-500 {\n --tw-gradient-via: var(--color-purple-500);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .to-blue-400 {\n --tw-gradient-to: var(--color-blue-400);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-blue-500 {\n --tw-gradient-to: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-card\\/50 {\n --tw-gradient-to: var(--card);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--card) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-pink-400 {\n --tw-gradient-to: var(--color-pink-400);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-pink-500 {\n --tw-gradient-to: var(--color-pink-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-pink-600 {\n --tw-gradient-to: var(--color-pink-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-primary\\/50 {\n --tw-gradient-to: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--primary) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-secondary\\/5 {\n --tw-gradient-to: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--secondary) 5%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .bg-repeat {\n background-repeat: repeat;\n }\n .fill-current {\n fill: currentcolor;\n }\n .fill-foreground {\n fill: var(--foreground);\n }\n .fill-primary {\n fill: var(--primary);\n }\n .object-contain {\n object-fit: contain;\n }\n .object-cover {\n object-fit: cover;\n }\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .p-12 {\n padding: calc(var(--spacing) * 12);\n }\n .p-\\[3px\\] {\n padding: 3px;\n }\n .p-px {\n padding: 1px;\n }\n .px-\\(--cell-size\\) {\n padding-inline: var(--cell-size);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6);\n }\n .py-8 {\n padding-block: calc(var(--spacing) * 8);\n }\n .py-10 {\n padding-block: calc(var(--spacing) * 10);\n }\n .py-12 {\n padding-block: calc(var(--spacing) * 12);\n }\n .pt-0 {\n padding-top: calc(var(--spacing) * 0);\n }\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-20 {\n padding-top: calc(var(--spacing) * 20);\n }\n .pr-1 {\n padding-right: calc(var(--spacing) * 1);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pr-2\\.5 {\n padding-right: calc(var(--spacing) * 2.5);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pr-8 {\n padding-right: calc(var(--spacing) * 8);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pb-6 {\n padding-bottom: calc(var(--spacing) * 6);\n }\n .pb-8 {\n padding-bottom: calc(var(--spacing) * 8);\n }\n .pb-20 {\n padding-bottom: calc(var(--spacing) * 20);\n }\n .pl-1 {\n padding-left: calc(var(--spacing) * 1);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-8 {\n padding-left: calc(var(--spacing) * 8);\n }\n .pl-9 {\n padding-left: calc(var(--spacing) * 9);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .align-middle {\n vertical-align: middle;\n }\n .font-mono {\n font-family: \"Geist Mono\", monospace;\n }\n .font-sans {\n font-family: \"Geist\", \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\n }\n .font-serif {\n font-family: \"Songti SC\", \"STSong\", \"SimSun\", \"Times New Roman\", serif;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-3xl {\n font-size: var(--text-3xl);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n .text-5xl {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-sm\\/relaxed {\n font-size: var(--text-sm);\n line-height: var(--leading-relaxed);\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n }\n .text-\\[9px\\] {\n font-size: 9px;\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .text-\\[11px\\] {\n font-size: 11px;\n }\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .leading-normal {\n --tw-leading: var(--leading-normal);\n line-height: var(--leading-normal);\n }\n .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n .leading-snug {\n --tw-leading: var(--leading-snug);\n line-height: var(--leading-snug);\n }\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .text-balance {\n text-wrap: balance;\n }\n .break-words {\n overflow-wrap: break-word;\n }\n .break-all {\n word-break: break-all;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .whitespace-pre-line {\n white-space: pre-line;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-accent-foreground {\n color: var(--accent-foreground);\n }\n .text-amber-700 {\n color: var(--color-amber-700);\n }\n .text-background {\n color: var(--background);\n }\n .text-blue-400 {\n color: var(--color-blue-400);\n }\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n .text-card-foreground {\n color: var(--card-foreground);\n }\n .text-current {\n color: currentcolor;\n }\n .text-destructive {\n color: var(--destructive);\n }\n .text-destructive-foreground {\n color: var(--destructive-foreground);\n }\n .text-foreground {\n color: var(--foreground);\n }\n .text-foreground\\/50 {\n color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--foreground) 50%, transparent);\n }\n }\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n .text-green-600 {\n color: var(--color-green-600);\n }\n .text-green-700 {\n color: var(--color-green-700);\n }\n .text-green-800 {\n color: var(--color-green-800);\n }\n .text-muted-foreground {\n color: var(--muted-foreground);\n }\n .text-muted-foreground\\/60 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 60%, transparent);\n }\n }\n .text-muted-foreground\\/70 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 70%, transparent);\n }\n }\n .text-muted-foreground\\/80 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 80%, transparent);\n }\n }\n .text-neutral-500 {\n color: var(--color-neutral-500);\n }\n .text-neutral-600 {\n color: var(--color-neutral-600);\n }\n .text-orange-700 {\n color: var(--color-orange-700);\n }\n .text-pink-400 {\n color: var(--color-pink-400);\n }\n .text-pink-600 {\n color: var(--color-pink-600);\n }\n .text-pink-700 {\n color: var(--color-pink-700);\n }\n .text-popover-foreground {\n color: var(--popover-foreground);\n }\n .text-primary {\n color: var(--primary);\n }\n .text-primary-foreground {\n color: var(--primary-foreground);\n }\n .text-primary\\/70 {\n color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--primary) 70%, transparent);\n }\n }\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n .text-red-400 {\n color: var(--color-red-400);\n }\n .text-red-600 {\n color: var(--color-red-600);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-secondary-foreground {\n color: var(--secondary-foreground);\n }\n .text-sidebar-foreground {\n color: var(--sidebar-foreground);\n }\n .text-sidebar-foreground\\/70 {\n color: var(--sidebar-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--sidebar-foreground) 70%, transparent);\n }\n }\n .text-white {\n color: var(--color-white);\n }\n .text-yellow-800 {\n color: var(--color-yellow-800);\n }\n .uppercase {\n text-transform: uppercase;\n }\n .italic {\n font-style: italic;\n }\n .tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .underline {\n text-decoration-line: underline;\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-20 {\n opacity: 20%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-70 {\n opacity: 70%;\n }\n .opacity-90 {\n opacity: 90%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-border\\)\\)\\] {\n --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-border)));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-none {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-0 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-4 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-background {\n --tw-ring-color: var(--background);\n }\n .ring-blue-200 {\n --tw-ring-color: var(--color-blue-200);\n }\n .ring-ring\\/50 {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n .ring-sidebar-ring {\n --tw-ring-color: var(--sidebar-ring);\n }\n .ring-yellow-200 {\n --tw-ring-color: var(--color-yellow-200);\n }\n .ring-offset-background {\n --tw-ring-offset-color: var(--background);\n }\n .outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .backdrop-blur {\n --tw-backdrop-blur: blur(8px);\n -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,);\n 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,);\n }\n .transition {\n 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;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[color\\,box-shadow\\] {\n transition-property: color,box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[left\\,right\\,width\\] {\n transition-property: left,right,width;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[margin\\,opacity\\] {\n transition-property: margin,opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[width\\,height\\,padding\\] {\n transition-property: width,height,padding;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[width\\] {\n transition-property: width;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-none {\n transition-property: none;\n }\n .duration-100 {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .duration-500 {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n .duration-1000 {\n --tw-duration: 1000ms;\n transition-duration: 1000ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .ease-linear {\n --tw-ease: linear;\n transition-timing-function: linear;\n }\n .ease-out {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n .fade-in-0 {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .slide-in-from-bottom-5 {\n --tw-enter-translate-y: calc(5*var(--spacing));\n --tw-enter-translate-y: calc(.05*100%);\n }\n .zoom-in-95 {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n .\\[--cell-size\\:--spacing\\(8\\)\\] {\n --cell-size: calc(var(--spacing) * 8);\n }\n .slide-in-from-top-2 {\n --tw-enter-translate-y: calc(2*var(--spacing)*-1);\n }\n .group-last\\:hidden {\n &:is(:where(.group):last-child *) {\n display: none;\n }\n }\n .group-focus-within\\/menu-item\\:opacity-100 {\n &:is(:where(.group\\/menu-item):focus-within *) {\n opacity: 100%;\n }\n }\n .group-hover\\:scale-110 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n --tw-scale-x: 110%;\n --tw-scale-y: 110%;\n --tw-scale-z: 110%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .group-hover\\:bg-primary\\/20 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 20%, transparent);\n }\n }\n }\n }\n .group-hover\\:opacity-100 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-hover\\/menu-item\\:opacity-100 {\n &:is(:where(.group\\/menu-item):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-has-data-\\[sidebar\\=menu-action\\]\\/menu-item\\:pr-8 {\n &:is(:where(.group\\/menu-item):has(*[data-sidebar=\"menu-action\"]) *) {\n padding-right: calc(var(--spacing) * 8);\n }\n }\n .group-has-\\[\\[data-orientation\\=horizontal\\]\\]\\/field\\:text-balance {\n &:is(:where(.group\\/field):has(*:is([data-orientation=horizontal])) *) {\n text-wrap: balance;\n }\n }\n .group-has-\\[\\[data-slot\\=item-description\\]\\]\\/item\\:translate-y-0\\.5 {\n &:is(:where(.group\\/item):has(*:is([data-slot=item-description])) *) {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-has-\\[\\[data-slot\\=item-description\\]\\]\\/item\\:self-start {\n &:is(:where(.group\\/item):has(*:is([data-slot=item-description])) *) {\n align-self: flex-start;\n }\n }\n .group-has-\\[\\>input\\]\\/input-group\\:pt-2\\.5 {\n &:is(:where(.group\\/input-group):has(>input) *) {\n padding-top: calc(var(--spacing) * 2.5);\n }\n }\n .group-has-\\[\\>input\\]\\/input-group\\:pb-2\\.5 {\n &:is(:where(.group\\/input-group):has(>input) *) {\n padding-bottom: calc(var(--spacing) * 2.5);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:-mt-8 {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n margin-top: calc(var(--spacing) * -8);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:hidden {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n display: none;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:size-8\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--spacing) * 8) !important;\n height: calc(var(--spacing) * 8) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\(--sidebar-width-icon\\) {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: var(--sidebar-width-icon);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\)\\] {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)));\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\+2px\\)\\] {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)) + 2px);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:overflow-hidden {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n overflow: hidden;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:p-0\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n padding: calc(var(--spacing) * 0) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:p-2\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n padding: calc(var(--spacing) * 2) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:opacity-0 {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n opacity: 0%;\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:right-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n right: calc(var(--sidebar-width) * -1);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:left-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n left: calc(var(--sidebar-width) * -1);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:w-0 {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n width: calc(var(--spacing) * 0);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:translate-x-0 {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-data-\\[disabled\\=true\\]\\:pointer-events-none {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n pointer-events: none;\n }\n }\n .group-data-\\[disabled\\=true\\]\\:opacity-50 {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .group-data-\\[disabled\\=true\\]\\/field\\:opacity-50 {\n &:is(:where(.group\\/field)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .group-data-\\[disabled\\=true\\]\\/input-group\\:opacity-50 {\n &:is(:where(.group\\/input-group)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:relative {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n position: relative;\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:z-10 {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n z-index: 10;\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:border-ring {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n border-color: var(--ring);\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:ring-\\[3px\\] {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:ring-ring\\/50 {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .group-data-\\[side\\=left\\]\\:-right-4 {\n &:is(:where(.group)[data-side=\"left\"] *) {\n right: calc(var(--spacing) * -4);\n }\n }\n .group-data-\\[side\\=left\\]\\:border-r {\n &:is(:where(.group)[data-side=\"left\"] *) {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n }\n .group-data-\\[side\\=right\\]\\:left-0 {\n &:is(:where(.group)[data-side=\"right\"] *) {\n left: calc(var(--spacing) * 0);\n }\n }\n .group-data-\\[side\\=right\\]\\:rotate-180 {\n &:is(:where(.group)[data-side=\"right\"] *) {\n rotate: 180deg;\n }\n }\n .group-data-\\[side\\=right\\]\\:border-l {\n &:is(:where(.group)[data-side=\"right\"] *) {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .group-data-\\[state\\=open\\]\\:rotate-180 {\n &:is(:where(.group)[data-state=\"open\"] *) {\n rotate: 180deg;\n }\n }\n .group-data-\\[variant\\=floating\\]\\:rounded-lg {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-radius: var(--radius);\n }\n }\n .group-data-\\[variant\\=floating\\]\\:border {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .group-data-\\[variant\\=floating\\]\\:border-sidebar-border {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-color: var(--sidebar-border);\n }\n }\n .group-data-\\[variant\\=floating\\]\\:shadow-sm {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .group-data-\\[variant\\=outline\\]\\/field-group\\:-mb-2 {\n &:is(:where(.group\\/field-group)[data-variant=\"outline\"] *) {\n margin-bottom: calc(var(--spacing) * -2);\n }\n }\n .group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:block {\n &:is(:where(.group\\/drawer-content)[data-vaul-drawer-direction=\"bottom\"] *) {\n display: block;\n }\n }\n .group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:text-center {\n &:is(:where(.group\\/drawer-content)[data-vaul-drawer-direction=\"bottom\"] *) {\n text-align: center;\n }\n }\n .group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:text-center {\n &:is(:where(.group\\/drawer-content)[data-vaul-drawer-direction=\"top\"] *) {\n text-align: center;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:top-full {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n top: 100%;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:mt-1\\.5 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n margin-top: calc(var(--spacing) * 1.5);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:overflow-hidden {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n overflow: hidden;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:rounded-md {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:border {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:bg-popover {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n background-color: var(--popover);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:text-popover-foreground {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n color: var(--popover-foreground);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:shadow {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:duration-200 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n }\n .group-\\[\\.destructive\\]\\:border-muted\\/40 {\n &:is(:where(.group):is(.destructive) *) {\n border-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--muted) 40%, transparent);\n }\n }\n }\n .group-\\[\\.destructive\\]\\:text-red-300 {\n &:is(:where(.group):is(.destructive) *) {\n color: var(--color-red-300);\n }\n }\n .peer-hover\\/menu-button\\:text-sidebar-accent-foreground {\n &:is(:where(.peer\\/menu-button):hover ~ *) {\n @media (hover: hover) {\n color: var(--sidebar-accent-foreground);\n }\n }\n }\n .peer-disabled\\:cursor-not-allowed {\n &:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed;\n }\n }\n .peer-disabled\\:opacity-50 {\n &:is(:where(.peer):disabled ~ *) {\n opacity: 50%;\n }\n }\n .peer-data-\\[active\\=true\\]\\/menu-button\\:text-sidebar-accent-foreground {\n &:is(:where(.peer\\/menu-button)[data-active=\"true\"] ~ *) {\n color: var(--sidebar-accent-foreground);\n }\n }\n .peer-data-\\[size\\=default\\]\\/menu-button\\:top-1\\.5 {\n &:is(:where(.peer\\/menu-button)[data-size=\"default\"] ~ *) {\n top: calc(var(--spacing) * 1.5);\n }\n }\n .peer-data-\\[size\\=lg\\]\\/menu-button\\:top-2\\.5 {\n &:is(:where(.peer\\/menu-button)[data-size=\"lg\"] ~ *) {\n top: calc(var(--spacing) * 2.5);\n }\n }\n .peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1 {\n &:is(:where(.peer\\/menu-button)[data-size=\"sm\"] ~ *) {\n top: calc(var(--spacing) * 1);\n }\n }\n .selection\\:bg-primary {\n & *::selection {\n background-color: var(--primary);\n }\n &::selection {\n background-color: var(--primary);\n }\n }\n .selection\\:text-primary-foreground {\n & *::selection {\n color: var(--primary-foreground);\n }\n &::selection {\n color: var(--primary-foreground);\n }\n }\n .file\\:inline-flex {\n &::file-selector-button {\n display: inline-flex;\n }\n }\n .file\\:h-7 {\n &::file-selector-button {\n height: calc(var(--spacing) * 7);\n }\n }\n .file\\:border-0 {\n &::file-selector-button {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .file\\:bg-transparent {\n &::file-selector-button {\n background-color: transparent;\n }\n }\n .file\\:text-sm {\n &::file-selector-button {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .file\\:font-medium {\n &::file-selector-button {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .file\\:text-foreground {\n &::file-selector-button {\n color: var(--foreground);\n }\n }\n .placeholder\\:text-muted-foreground {\n &::placeholder {\n color: var(--muted-foreground);\n }\n }\n .after\\:absolute {\n &::after {\n content: var(--tw-content);\n position: absolute;\n }\n }\n .after\\:-inset-2 {\n &::after {\n content: var(--tw-content);\n inset: calc(var(--spacing) * -2);\n }\n }\n .after\\:inset-y-0 {\n &::after {\n content: var(--tw-content);\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .after\\:left-1\\/2 {\n &::after {\n content: var(--tw-content);\n left: calc(1/2 * 100%);\n }\n }\n .after\\:w-1 {\n &::after {\n content: var(--tw-content);\n width: calc(var(--spacing) * 1);\n }\n }\n .after\\:w-\\[2px\\] {\n &::after {\n content: var(--tw-content);\n width: 2px;\n }\n }\n .after\\:-translate-x-1\\/2 {\n &::after {\n content: var(--tw-content);\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:after\\:left-full {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n &::after {\n content: var(--tw-content);\n left: 100%;\n }\n }\n }\n .first\\:rounded-l-md {\n &:first-child {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n }\n .first\\:border-l {\n &:first-child {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .last\\:mt-0 {\n &:last-child {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .last\\:rounded-r-md {\n &:last-child {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n .last\\:border-0 {\n &:last-child {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .last\\:border-b-0 {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n .hover\\:scale-105 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:border-blue-400 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-blue-400);\n }\n }\n }\n .hover\\:border-primary {\n &:hover {\n @media (hover: hover) {\n border-color: var(--primary);\n }\n }\n }\n .hover\\:border-primary\\/30 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--primary) 30%, transparent);\n }\n }\n }\n }\n .hover\\:bg-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n .hover\\:bg-accent\\/5 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 5%, transparent);\n }\n }\n }\n }\n .hover\\:bg-accent\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-background {\n &:hover {\n @media (hover: hover) {\n background-color: var(--background);\n }\n }\n }\n .hover\\:bg-card {\n &:hover {\n @media (hover: hover) {\n background-color: var(--card);\n }\n }\n }\n .hover\\:bg-destructive {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n }\n }\n }\n .hover\\:bg-destructive\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n }\n }\n }\n .hover\\:bg-muted\\/30 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 30%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-primary\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-secondary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-sidebar-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--sidebar-accent);\n }\n }\n }\n .hover\\:text-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n .hover\\:text-destructive {\n &:hover {\n @media (hover: hover) {\n color: var(--destructive);\n }\n }\n }\n .hover\\:text-destructive-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--destructive-foreground);\n }\n }\n }\n .hover\\:text-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--foreground);\n }\n }\n }\n .hover\\:text-muted-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--muted-foreground);\n }\n }\n }\n .hover\\:text-primary {\n &:hover {\n @media (hover: hover) {\n color: var(--primary);\n }\n }\n }\n .hover\\:text-sidebar-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--sidebar-accent-foreground);\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .hover\\:opacity-90 {\n &:hover {\n @media (hover: hover) {\n opacity: 90%;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .hover\\:shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-accent\\)\\)\\] {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-accent)));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-lg {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-md {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:ring-4 {\n &:hover {\n @media (hover: hover) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:group-data-\\[collapsible\\=offcanvas\\]\\:bg-sidebar {\n &:hover {\n @media (hover: hover) {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n background-color: var(--sidebar);\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:border-destructive\\/30 {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n border-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--destructive) 30%, transparent);\n }\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:bg-destructive {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:text-destructive-foreground {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n color: var(--destructive-foreground);\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:text-red-50 {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-50);\n }\n }\n }\n }\n .hover\\:after\\:bg-sidebar-border {\n &:hover {\n @media (hover: hover) {\n &::after {\n content: var(--tw-content);\n background-color: var(--sidebar-border);\n }\n }\n }\n }\n .focus\\:z-10 {\n &:focus {\n z-index: 10;\n }\n }\n .focus\\:bg-accent {\n &:focus {\n background-color: var(--accent);\n }\n }\n .focus\\:text-accent-foreground {\n &:focus {\n color: var(--accent-foreground);\n }\n }\n .focus\\:opacity-100 {\n &:focus {\n opacity: 100%;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-ring {\n &:focus {\n --tw-ring-color: var(--ring);\n }\n }\n .focus\\:ring-offset-2 {\n &:focus {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-hidden {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .group-\\[\\.destructive\\]\\:focus\\:ring-destructive {\n &:is(:where(.group):is(.destructive) *) {\n &:focus {\n --tw-ring-color: var(--destructive);\n }\n }\n }\n .group-\\[\\.destructive\\]\\:focus\\:ring-red-400 {\n &:is(:where(.group):is(.destructive) *) {\n &:focus {\n --tw-ring-color: var(--color-red-400);\n }\n }\n }\n .group-\\[\\.destructive\\]\\:focus\\:ring-offset-red-600 {\n &:is(:where(.group):is(.destructive) *) {\n &:focus {\n --tw-ring-offset-color: var(--color-red-600);\n }\n }\n }\n .focus-visible\\:z-10 {\n &:focus-visible {\n z-index: 10;\n }\n }\n .focus-visible\\:border-ring {\n &:focus-visible {\n border-color: var(--ring);\n }\n }\n .focus-visible\\:ring-0 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-1 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-2 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-4 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-\\[3px\\] {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-destructive\\/20 {\n &:focus-visible {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .focus-visible\\:ring-primary {\n &:focus-visible {\n --tw-ring-color: var(--primary);\n }\n }\n .focus-visible\\:ring-ring {\n &:focus-visible {\n --tw-ring-color: var(--ring);\n }\n }\n .focus-visible\\:ring-ring\\/50 {\n &:focus-visible {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .focus-visible\\:ring-offset-1 {\n &:focus-visible {\n --tw-ring-offset-width: 1px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus-visible\\:outline-hidden {\n &:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .focus-visible\\:outline-1 {\n &:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n }\n .focus-visible\\:outline-ring {\n &:focus-visible {\n outline-color: var(--ring);\n }\n }\n .active\\:bg-sidebar-accent {\n &:active {\n background-color: var(--sidebar-accent);\n }\n }\n .active\\:text-sidebar-accent-foreground {\n &:active {\n color: var(--sidebar-accent-foreground);\n }\n }\n .disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none;\n }\n }\n .disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .in-data-\\[side\\=left\\]\\:cursor-w-resize {\n :where(*[data-side=\"left\"]) & {\n cursor: w-resize;\n }\n }\n .in-data-\\[side\\=right\\]\\:cursor-e-resize {\n :where(*[data-side=\"right\"]) & {\n cursor: e-resize;\n }\n }\n .has-focus\\:border-ring {\n &:has(*:focus) {\n border-color: var(--ring);\n }\n }\n .has-focus\\:ring-\\[3px\\] {\n &:has(*:focus) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .has-focus\\:ring-ring\\/50 {\n &:has(*:focus) {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .has-disabled\\:opacity-50 {\n &:has(*:disabled) {\n opacity: 50%;\n }\n }\n .has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\] {\n &:has(*[data-slot=\"card-action\"]) {\n grid-template-columns: 1fr auto;\n }\n }\n .has-data-\\[state\\=checked\\]\\:border-primary {\n &:has(*[data-state=\"checked\"]) {\n border-color: var(--primary);\n }\n }\n .has-data-\\[state\\=checked\\]\\:bg-primary\\/5 {\n &:has(*[data-state=\"checked\"]) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 5%, transparent);\n }\n }\n }\n .has-data-\\[variant\\=inset\\]\\:bg-sidebar {\n &:has(*[data-variant=\"inset\"]) {\n background-color: var(--sidebar);\n }\n }\n .has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:border-ring {\n &:has(*:is([data-slot=input-group-control]:focus-visible)) {\n border-color: var(--ring);\n }\n }\n .has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-\\[3px\\] {\n &:has(*:is([data-slot=input-group-control]:focus-visible)) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-ring\\/50 {\n &:has(*:is([data-slot=input-group-control]:focus-visible)) {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:border-destructive {\n &:has(*:is([data-slot][aria-invalid=true])) {\n border-color: var(--destructive);\n }\n }\n .has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/20 {\n &:has(*:is([data-slot][aria-invalid=true])) {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=block-end\\]\\]\\:h-auto {\n &:has(>[data-align=block-end]) {\n height: auto;\n }\n }\n .has-\\[\\>\\[data-align\\=block-end\\]\\]\\:flex-col {\n &:has(>[data-align=block-end]) {\n flex-direction: column;\n }\n }\n .has-\\[\\>\\[data-align\\=block-start\\]\\]\\:h-auto {\n &:has(>[data-align=block-start]) {\n height: auto;\n }\n }\n .has-\\[\\>\\[data-align\\=block-start\\]\\]\\:flex-col {\n &:has(>[data-align=block-start]) {\n flex-direction: column;\n }\n }\n .has-\\[\\>\\[data-slot\\=button-group\\]\\]\\:gap-2 {\n &:has(>[data-slot=button-group]) {\n gap: calc(var(--spacing) * 2);\n }\n }\n .has-\\[\\>\\[data-slot\\=checkbox-group\\]\\]\\:gap-3 {\n &:has(>[data-slot=checkbox-group]) {\n gap: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:items-start {\n &:has(>[data-slot=field-content]) {\n align-items: flex-start;\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:w-full {\n &:has(>[data-slot=field]) {\n width: 100%;\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:flex-col {\n &:has(>[data-slot=field]) {\n flex-direction: column;\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:rounded-md {\n &:has(>[data-slot=field]) {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:border {\n &:has(>[data-slot=field]) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .has-\\[\\>\\[data-slot\\=radio-group\\]\\]\\:gap-3 {\n &:has(>[data-slot=radio-group]) {\n gap: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>button\\]\\:mr-\\[-0\\.4rem\\] {\n &:has(>button) {\n margin-right: -0.4rem;\n }\n }\n .has-\\[\\>button\\]\\:ml-\\[-0\\.45rem\\] {\n &:has(>button) {\n margin-left: -0.45rem;\n }\n }\n .has-\\[\\>kbd\\]\\:mr-\\[-0\\.35rem\\] {\n &:has(>kbd) {\n margin-right: -0.35rem;\n }\n }\n .has-\\[\\>kbd\\]\\:ml-\\[-0\\.35rem\\] {\n &:has(>kbd) {\n margin-left: -0.35rem;\n }\n }\n .has-\\[\\>svg\\]\\:grid-cols-\\[calc\\(var\\(--spacing\\)\\*4\\)_1fr\\] {\n &:has(>svg) {\n grid-template-columns: calc(var(--spacing) * 4) 1fr;\n }\n }\n .has-\\[\\>svg\\]\\:gap-x-3 {\n &:has(>svg) {\n column-gap: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>svg\\]\\:p-0 {\n &:has(>svg) {\n padding: calc(var(--spacing) * 0);\n }\n }\n .has-\\[\\>svg\\]\\:px-2 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .has-\\[\\>svg\\]\\:px-2\\.5 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n }\n .has-\\[\\>svg\\]\\:px-3 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>svg\\]\\:px-4 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 4);\n }\n }\n .has-\\[\\>textarea\\]\\:h-auto {\n &:has(>textarea) {\n height: auto;\n }\n }\n .aria-disabled\\:pointer-events-none {\n &[aria-disabled=\"true\"] {\n pointer-events: none;\n }\n }\n .aria-disabled\\:opacity-50 {\n &[aria-disabled=\"true\"] {\n opacity: 50%;\n }\n }\n .aria-invalid\\:border-destructive {\n &[aria-invalid=\"true\"] {\n border-color: var(--destructive);\n }\n }\n .aria-invalid\\:ring-destructive\\/20 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .aria-selected\\:text-muted-foreground {\n &[aria-selected=\"true\"] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[active\\=true\\]\\:z-10 {\n &[data-active=\"true\"] {\n z-index: 10;\n }\n }\n .data-\\[active\\=true\\]\\:border-ring {\n &[data-active=\"true\"] {\n border-color: var(--ring);\n }\n }\n .data-\\[active\\=true\\]\\:bg-accent\\/50 {\n &[data-active=\"true\"] {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:bg-sidebar-accent {\n &[data-active=\"true\"] {\n background-color: var(--sidebar-accent);\n }\n }\n .data-\\[active\\=true\\]\\:font-medium {\n &[data-active=\"true\"] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .data-\\[active\\=true\\]\\:font-semibold {\n &[data-active=\"true\"] {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n }\n .data-\\[active\\=true\\]\\:text-accent-foreground {\n &[data-active=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[active\\=true\\]\\:text-foreground {\n &[data-active=\"true\"] {\n color: var(--foreground);\n }\n }\n .data-\\[active\\=true\\]\\:text-sidebar-accent-foreground {\n &[data-active=\"true\"] {\n color: var(--sidebar-accent-foreground);\n }\n }\n .data-\\[active\\=true\\]\\:ring-\\[3px\\] {\n &[data-active=\"true\"] {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[active\\=true\\]\\:ring-ring\\/50 {\n &[data-active=\"true\"] {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:hover\\:bg-accent {\n &[data-active=\"true\"] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n }\n .data-\\[active\\=true\\]\\:focus\\:bg-accent {\n &[data-active=\"true\"] {\n &:focus {\n background-color: var(--accent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:aria-invalid\\:border-destructive {\n &[data-active=\"true\"] {\n &[aria-invalid=\"true\"] {\n border-color: var(--destructive);\n }\n }\n }\n .data-\\[active\\=true\\]\\:aria-invalid\\:ring-destructive\\/20 {\n &[data-active=\"true\"] {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n }\n .data-\\[disabled\\]\\:pointer-events-none {\n &[data-disabled] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\]\\:opacity-50 {\n &[data-disabled] {\n opacity: 50%;\n }\n }\n .data-\\[disabled\\=true\\]\\:pointer-events-none {\n &[data-disabled=\"true\"] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\=true\\]\\:opacity-50 {\n &[data-disabled=\"true\"] {\n opacity: 50%;\n }\n }\n .data-\\[error\\=true\\]\\:text-destructive {\n &[data-error=\"true\"] {\n color: var(--destructive);\n }\n }\n .data-\\[inset\\]\\:pl-8 {\n &[data-inset] {\n padding-left: calc(var(--spacing) * 8);\n }\n }\n .data-\\[invalid\\=true\\]\\:text-destructive {\n &[data-invalid=\"true\"] {\n color: var(--destructive);\n }\n }\n .data-\\[motion\\=from-end\\]\\:slide-in-from-right-52 {\n &[data-motion=\"from-end\"] {\n --tw-enter-translate-x: calc(52*var(--spacing));\n }\n }\n .data-\\[motion\\=from-start\\]\\:slide-in-from-left-52 {\n &[data-motion=\"from-start\"] {\n --tw-enter-translate-x: calc(52*var(--spacing)*-1);\n }\n }\n .data-\\[motion\\=to-end\\]\\:slide-out-to-right-52 {\n &[data-motion=\"to-end\"] {\n --tw-exit-translate-x: calc(52*var(--spacing));\n }\n }\n .data-\\[motion\\=to-start\\]\\:slide-out-to-left-52 {\n &[data-motion=\"to-start\"] {\n --tw-exit-translate-x: calc(52*var(--spacing)*-1);\n }\n }\n .data-\\[motion\\^\\=from-\\]\\:animate-in {\n &[data-motion^=\"from-\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[motion\\^\\=from-\\]\\:fade-in {\n &[data-motion^=\"from-\"] {\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[motion\\^\\=to-\\]\\:animate-out {\n &[data-motion^=\"to-\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[motion\\^\\=to-\\]\\:fade-out {\n &[data-motion^=\"to-\"] {\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-1\\.5 {\n &[data-orientation=\"horizontal\"] {\n height: calc(var(--spacing) * 1.5);\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-full {\n &[data-orientation=\"horizontal\"] {\n height: 100%;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-px {\n &[data-orientation=\"horizontal\"] {\n height: 1px;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:w-full {\n &[data-orientation=\"horizontal\"] {\n width: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:h-auto {\n &[data-orientation=\"vertical\"] {\n height: auto;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:h-full {\n &[data-orientation=\"vertical\"] {\n height: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:min-h-44 {\n &[data-orientation=\"vertical\"] {\n min-height: calc(var(--spacing) * 44);\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-1\\.5 {\n &[data-orientation=\"vertical\"] {\n width: calc(var(--spacing) * 1.5);\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-auto {\n &[data-orientation=\"vertical\"] {\n width: auto;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-full {\n &[data-orientation=\"vertical\"] {\n width: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-px {\n &[data-orientation=\"vertical\"] {\n width: 1px;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:flex-col {\n &[data-orientation=\"vertical\"] {\n flex-direction: column;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:h-px {\n &[data-panel-group-direction=\"vertical\"] {\n height: 1px;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:w-full {\n &[data-panel-group-direction=\"vertical\"] {\n width: 100%;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:flex-col {\n &[data-panel-group-direction=\"vertical\"] {\n flex-direction: column;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:left-0 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n left: calc(var(--spacing) * 0);\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:h-1 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n height: calc(var(--spacing) * 1);\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:w-full {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n width: 100%;\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:translate-x-0 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:-translate-y-1\\/2 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .data-\\[placeholder\\]\\:text-muted-foreground {\n &[data-placeholder] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[range-end\\=true\\]\\:rounded-md {\n &[data-range-end=\"true\"] {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-end\\=true\\]\\:rounded-r-md {\n &[data-range-end=\"true\"] {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-end\\=true\\]\\:bg-primary {\n &[data-range-end=\"true\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[range-end\\=true\\]\\:text-primary-foreground {\n &[data-range-end=\"true\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[range-middle\\=true\\]\\:rounded-none {\n &[data-range-middle=\"true\"] {\n border-radius: 0;\n }\n }\n .data-\\[range-middle\\=true\\]\\:bg-accent {\n &[data-range-middle=\"true\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[range-middle\\=true\\]\\:text-accent-foreground {\n &[data-range-middle=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[range-start\\=true\\]\\:rounded-md {\n &[data-range-start=\"true\"] {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-start\\=true\\]\\:rounded-l-md {\n &[data-range-start=\"true\"] {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-start\\=true\\]\\:bg-primary {\n &[data-range-start=\"true\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[range-start\\=true\\]\\:text-primary-foreground {\n &[data-range-start=\"true\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[selected-single\\=true\\]\\:bg-primary {\n &[data-selected-single=\"true\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[selected-single\\=true\\]\\:text-primary-foreground {\n &[data-selected-single=\"true\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[selected\\=true\\]\\:rounded-none {\n &[data-selected=\"true\"] {\n border-radius: 0;\n }\n }\n .data-\\[selected\\=true\\]\\:bg-accent {\n &[data-selected=\"true\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[selected\\=true\\]\\:text-accent-foreground {\n &[data-selected=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[side\\=bottom\\]\\:translate-y-1 {\n &[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=bottom\\]\\:slide-in-from-top-2 {\n &[data-side=\"bottom\"] {\n --tw-enter-translate-y: calc(2*var(--spacing)*-1);\n }\n }\n .data-\\[side\\=left\\]\\:-translate-x-1 {\n &[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=left\\]\\:slide-in-from-right-2 {\n &[data-side=\"left\"] {\n --tw-enter-translate-x: calc(2*var(--spacing));\n }\n }\n .data-\\[side\\=right\\]\\:translate-x-1 {\n &[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=right\\]\\:slide-in-from-left-2 {\n &[data-side=\"right\"] {\n --tw-enter-translate-x: calc(2*var(--spacing)*-1);\n }\n }\n .data-\\[side\\=top\\]\\:-translate-y-1 {\n &[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=top\\]\\:slide-in-from-bottom-2 {\n &[data-side=\"top\"] {\n --tw-enter-translate-y: calc(2*var(--spacing));\n }\n }\n .data-\\[size\\=default\\]\\:h-9 {\n &[data-size=\"default\"] {\n height: calc(var(--spacing) * 9);\n }\n }\n .data-\\[size\\=sm\\]\\:h-8 {\n &[data-size=\"sm\"] {\n height: calc(var(--spacing) * 8);\n }\n }\n .\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90 {\n :is(& > *) {\n &[data-slot=\"alert-description\"] {\n color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n .data-\\[slot\\=checkbox-group\\]\\:gap-3 {\n &[data-slot=\"checkbox-group\"] {\n gap: calc(var(--spacing) * 3);\n }\n }\n .\\*\\*\\:data-\\[slot\\=command-input-wrapper\\]\\:h-12 {\n :is(& *) {\n &[data-slot=\"command-input-wrapper\"] {\n height: calc(var(--spacing) * 12);\n }\n }\n }\n .\\*\\*\\:data-\\[slot\\=navigation-menu-link\\]\\:focus\\:ring-0 {\n :is(& *) {\n &[data-slot=\"navigation-menu-link\"] {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n }\n .\\*\\*\\:data-\\[slot\\=navigation-menu-link\\]\\:focus\\:outline-none {\n :is(& *) {\n &[data-slot=\"navigation-menu-link\"] {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:flex {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n display: flex;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:items-center {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n align-items: center;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:gap-2 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n gap: calc(var(--spacing) * 2);\n }\n }\n }\n .data-\\[state\\=active\\]\\:bg-background {\n &[data-state=\"active\"] {\n background-color: var(--background);\n }\n }\n .data-\\[state\\=active\\]\\:shadow-sm {\n &[data-state=\"active\"] {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[state\\=checked\\]\\:translate-x-\\[calc\\(100\\%-2px\\)\\] {\n &[data-state=\"checked\"] {\n --tw-translate-x: calc(100% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=checked\\]\\:border-primary {\n &[data-state=\"checked\"] {\n border-color: var(--primary);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[state\\=checked\\]\\:text-primary-foreground {\n &[data-state=\"checked\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[state\\=closed\\]\\:animate-accordion-up {\n &[data-state=\"closed\"] {\n animation: accordion-up 0.2s ease-out;\n }\n }\n .data-\\[state\\=closed\\]\\:animate-out {\n &[data-state=\"closed\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=closed\\]\\:duration-300 {\n &[data-state=\"closed\"] {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-0 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: calc(0/100);\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-80 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: calc(80/100);\n --tw-exit-opacity: .8;\n }\n }\n .data-\\[state\\=closed\\]\\:zoom-out-95 {\n &[data-state=\"closed\"] {\n --tw-exit-scale: calc(95*1%);\n --tw-exit-scale: .95;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-bottom {\n &[data-state=\"closed\"] {\n --tw-exit-translate-y: 100%;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-left {\n &[data-state=\"closed\"] {\n --tw-exit-translate-x: -100%;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-right {\n &[data-state=\"closed\"] {\n --tw-exit-translate-x: 100%;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-right-full {\n &[data-state=\"closed\"] {\n --tw-exit-translate-x: calc(1*100%);\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-top {\n &[data-state=\"closed\"] {\n --tw-exit-translate-y: -100%;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=closed\\]\\:animate-out {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"closed\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=closed\\]\\:fade-out-0 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: calc(0/100);\n --tw-exit-opacity: 0;\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=closed\\]\\:zoom-out-95 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"closed\"] {\n --tw-exit-scale: calc(95*1%);\n --tw-exit-scale: .95;\n }\n }\n }\n .data-\\[state\\=hidden\\]\\:animate-out {\n &[data-state=\"hidden\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=hidden\\]\\:fade-out {\n &[data-state=\"hidden\"] {\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[state\\=on\\]\\:bg-accent {\n &[data-state=\"on\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[state\\=on\\]\\:text-accent-foreground {\n &[data-state=\"on\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:animate-accordion-down {\n &[data-state=\"open\"] {\n animation: accordion-down 0.2s ease-out;\n }\n }\n .data-\\[state\\=open\\]\\:animate-in {\n &[data-state=\"open\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent {\n &[data-state=\"open\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent\\/50 {\n &[data-state=\"open\"] {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n .data-\\[state\\=open\\]\\:bg-secondary {\n &[data-state=\"open\"] {\n background-color: var(--secondary);\n }\n }\n .data-\\[state\\=open\\]\\:text-accent-foreground {\n &[data-state=\"open\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:text-muted-foreground {\n &[data-state=\"open\"] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:opacity-100 {\n &[data-state=\"open\"] {\n opacity: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:duration-500 {\n &[data-state=\"open\"] {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n }\n .data-\\[state\\=open\\]\\:fade-in-0 {\n &[data-state=\"open\"] {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-90 {\n &[data-state=\"open\"] {\n --tw-enter-scale: calc(90*1%);\n --tw-enter-scale: .9;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-95 {\n &[data-state=\"open\"] {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-bottom {\n &[data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-left {\n &[data-state=\"open\"] {\n --tw-enter-translate-x: -100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-right {\n &[data-state=\"open\"] {\n --tw-enter-translate-x: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-top {\n &[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-top-full {\n &[data-state=\"open\"] {\n --tw-enter-translate-y: calc(1*-100%);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=open\\]\\:animate-in {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"open\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=open\\]\\:fade-in-0 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"open\"] {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=open\\]\\:zoom-in-95 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"open\"] {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n }\n }\n .data-\\[state\\=open\\]\\:hover\\:bg-accent {\n &[data-state=\"open\"] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n }\n .data-\\[state\\=open\\]\\:hover\\:bg-sidebar-accent {\n &[data-state=\"open\"] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--sidebar-accent);\n }\n }\n }\n }\n .data-\\[state\\=open\\]\\:hover\\:text-sidebar-accent-foreground {\n &[data-state=\"open\"] {\n &:hover {\n @media (hover: hover) {\n color: var(--sidebar-accent-foreground);\n }\n }\n }\n }\n .data-\\[state\\=open\\]\\:focus\\:bg-accent {\n &[data-state=\"open\"] {\n &:focus {\n background-color: var(--accent);\n }\n }\n }\n .data-\\[state\\=selected\\]\\:bg-muted {\n &[data-state=\"selected\"] {\n background-color: var(--muted);\n }\n }\n .data-\\[state\\=unchecked\\]\\:translate-x-0 {\n &[data-state=\"unchecked\"] {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=unchecked\\]\\:bg-input {\n &[data-state=\"unchecked\"] {\n background-color: var(--input);\n }\n }\n .data-\\[state\\=visible\\]\\:animate-in {\n &[data-state=\"visible\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=visible\\]\\:fade-in {\n &[data-state=\"visible\"] {\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[swipe\\=cancel\\]\\:translate-x-0 {\n &[data-swipe=\"cancel\"] {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\] {\n &[data-swipe=\"end\"] {\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[swipe\\=end\\]\\:animate-out {\n &[data-swipe=\"end\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\] {\n &[data-swipe=\"move\"] {\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[swipe\\=move\\]\\:transition-none {\n &[data-swipe=\"move\"] {\n transition-property: none;\n }\n }\n .data-\\[variant\\=destructive\\]\\:text-destructive {\n &[data-variant=\"destructive\"] {\n color: var(--destructive);\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10 {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 10%, transparent);\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:text-destructive {\n &[data-variant=\"destructive\"] {\n &:focus {\n color: var(--destructive);\n }\n }\n }\n .data-\\[variant\\=label\\]\\:text-sm {\n &[data-variant=\"label\"] {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .data-\\[variant\\=legend\\]\\:text-base {\n &[data-variant=\"legend\"] {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n }\n .data-\\[variant\\=outline\\]\\:border-l-0 {\n &[data-variant=\"outline\"] {\n border-left-style: var(--tw-border-style);\n border-left-width: 0px;\n }\n }\n .data-\\[variant\\=outline\\]\\:shadow-xs {\n &[data-variant=\"outline\"] {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[variant\\=outline\\]\\:first\\:border-l {\n &[data-variant=\"outline\"] {\n &:first-child {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:inset-x-0 {\n &[data-vaul-drawer-direction=\"bottom\"] {\n inset-inline: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:bottom-0 {\n &[data-vaul-drawer-direction=\"bottom\"] {\n bottom: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:mt-24 {\n &[data-vaul-drawer-direction=\"bottom\"] {\n margin-top: calc(var(--spacing) * 24);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:max-h-\\[80vh\\] {\n &[data-vaul-drawer-direction=\"bottom\"] {\n max-height: 80vh;\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:rounded-t-lg {\n &[data-vaul-drawer-direction=\"bottom\"] {\n border-top-left-radius: var(--radius);\n border-top-right-radius: var(--radius);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:border-t {\n &[data-vaul-drawer-direction=\"bottom\"] {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:inset-y-0 {\n &[data-vaul-drawer-direction=\"left\"] {\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:left-0 {\n &[data-vaul-drawer-direction=\"left\"] {\n left: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:w-3\\/4 {\n &[data-vaul-drawer-direction=\"left\"] {\n width: calc(3/4 * 100%);\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:border-r {\n &[data-vaul-drawer-direction=\"left\"] {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:inset-y-0 {\n &[data-vaul-drawer-direction=\"right\"] {\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:right-0 {\n &[data-vaul-drawer-direction=\"right\"] {\n right: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:w-3\\/4 {\n &[data-vaul-drawer-direction=\"right\"] {\n width: calc(3/4 * 100%);\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:border-l {\n &[data-vaul-drawer-direction=\"right\"] {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:inset-x-0 {\n &[data-vaul-drawer-direction=\"top\"] {\n inset-inline: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:top-0 {\n &[data-vaul-drawer-direction=\"top\"] {\n top: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:mb-24 {\n &[data-vaul-drawer-direction=\"top\"] {\n margin-bottom: calc(var(--spacing) * 24);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:max-h-\\[80vh\\] {\n &[data-vaul-drawer-direction=\"top\"] {\n max-height: 80vh;\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:rounded-b-lg {\n &[data-vaul-drawer-direction=\"top\"] {\n border-bottom-right-radius: var(--radius);\n border-bottom-left-radius: var(--radius);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:border-b {\n &[data-vaul-drawer-direction=\"top\"] {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .nth-last-2\\:-mt-1 {\n &:nth-last-child(2) {\n margin-top: calc(var(--spacing) * -1);\n }\n }\n .supports-\\[backdrop-filter\\]\\:bg-background\\/60 {\n @supports (backdrop-filter: var(--tw)) {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 60%, transparent);\n }\n }\n }\n .sm\\:top-auto {\n @media (width >= 40rem) {\n top: auto;\n }\n }\n .sm\\:right-0 {\n @media (width >= 40rem) {\n right: calc(var(--spacing) * 0);\n }\n }\n .sm\\:bottom-0 {\n @media (width >= 40rem) {\n bottom: calc(var(--spacing) * 0);\n }\n }\n .sm\\:col-span-2 {\n @media (width >= 40rem) {\n grid-column: span 2 / span 2;\n }\n }\n .sm\\:block {\n @media (width >= 40rem) {\n display: block;\n }\n }\n .sm\\:flex {\n @media (width >= 40rem) {\n display: flex;\n }\n }\n .sm\\:max-w-\\[600px\\] {\n @media (width >= 40rem) {\n max-width: 600px;\n }\n }\n .sm\\:max-w-lg {\n @media (width >= 40rem) {\n max-width: var(--container-lg);\n }\n }\n .sm\\:max-w-sm {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n .sm\\:grid-cols-2 {\n @media (width >= 40rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .sm\\:flex-col {\n @media (width >= 40rem) {\n flex-direction: column;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:justify-end {\n @media (width >= 40rem) {\n justify-content: flex-end;\n }\n }\n .sm\\:gap-2\\.5 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:pr-2\\.5 {\n @media (width >= 40rem) {\n padding-right: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:pl-2\\.5 {\n @media (width >= 40rem) {\n padding-left: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:text-left {\n @media (width >= 40rem) {\n text-align: left;\n }\n }\n .data-\\[state\\=open\\]\\:sm\\:slide-in-from-bottom-full {\n &[data-state=\"open\"] {\n @media (width >= 40rem) {\n --tw-enter-translate-y: calc(1*100%);\n }\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:sm\\:max-w-sm {\n &[data-vaul-drawer-direction=\"left\"] {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:sm\\:max-w-sm {\n &[data-vaul-drawer-direction=\"right\"] {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n }\n .md\\:absolute {\n @media (width >= 48rem) {\n position: absolute;\n }\n }\n .md\\:-left-24 {\n @media (width >= 48rem) {\n left: calc(var(--spacing) * -24);\n }\n }\n .md\\:col-span-2 {\n @media (width >= 48rem) {\n grid-column: span 2 / span 2;\n }\n }\n .md\\:ml-12 {\n @media (width >= 48rem) {\n margin-left: calc(var(--spacing) * 12);\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .md\\:w-20 {\n @media (width >= 48rem) {\n width: calc(var(--spacing) * 20);\n }\n }\n .md\\:w-80 {\n @media (width >= 48rem) {\n width: calc(var(--spacing) * 80);\n }\n }\n .md\\:w-\\[var\\(--radix-navigation-menu-viewport-width\\)\\] {\n @media (width >= 48rem) {\n width: var(--radix-navigation-menu-viewport-width);\n }\n }\n .md\\:w-auto {\n @media (width >= 48rem) {\n width: auto;\n }\n }\n .md\\:max-w-\\[420px\\] {\n @media (width >= 48rem) {\n max-width: 420px;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-3 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .md\\:flex-row {\n @media (width >= 48rem) {\n flex-direction: row;\n }\n }\n .md\\:items-center {\n @media (width >= 48rem) {\n align-items: center;\n }\n }\n .md\\:gap-1\\.5 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 1.5);\n }\n }\n .md\\:p-12 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 12);\n }\n }\n .md\\:px-6 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 6);\n }\n }\n .md\\:pl-12 {\n @media (width >= 48rem) {\n padding-left: calc(var(--spacing) * 12);\n }\n }\n .md\\:text-left {\n @media (width >= 48rem) {\n text-align: left;\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:opacity-0 {\n @media (width >= 48rem) {\n opacity: 0%;\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:m-2 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n margin: calc(var(--spacing) * 2);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:ml-0 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n margin-left: calc(var(--spacing) * 0);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:rounded-xl {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n border-radius: calc(var(--radius) + 4px);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:shadow-sm {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:peer-data-\\[state\\=collapsed\\]\\:ml-2 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n &:is(:where(.peer)[data-state=\"collapsed\"] ~ *) {\n margin-left: calc(var(--spacing) * 2);\n }\n }\n }\n }\n .md\\:after\\:hidden {\n @media (width >= 48rem) {\n &::after {\n content: var(--tw-content);\n display: none;\n }\n }\n }\n .lg\\:col-span-2 {\n @media (width >= 64rem) {\n grid-column: span 2 / span 2;\n }\n }\n .lg\\:grid-cols-2 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .lg\\:grid-cols-3 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .lg\\:grid-cols-4 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .xl\\:grid-cols-4 {\n @media (width >= 80rem) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .\\@md\\/field-group\\:flex-row {\n @container field-group (width >= 28rem) {\n flex-direction: row;\n }\n }\n .\\@md\\/field-group\\:items-center {\n @container field-group (width >= 28rem) {\n align-items: center;\n }\n }\n .\\@md\\/field-group\\:has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:items-start {\n @container field-group (width >= 28rem) {\n &:has(>[data-slot=field-content]) {\n align-items: flex-start;\n }\n }\n }\n .dark\\:border-blue-800 {\n &:is(.dark *) {\n border-color: var(--color-blue-800);\n }\n }\n .dark\\:border-input {\n &:is(.dark *) {\n border-color: var(--input);\n }\n }\n .dark\\:bg-blue-900\\/20 {\n &:is(.dark *) {\n background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-900) 20%, transparent);\n }\n }\n }\n .dark\\:bg-blue-950 {\n &:is(.dark *) {\n background-color: var(--color-blue-950);\n }\n }\n .dark\\:bg-destructive\\/60 {\n &:is(.dark *) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 60%, transparent);\n }\n }\n }\n .dark\\:bg-input\\/30 {\n &:is(.dark *) {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 30%, transparent);\n }\n }\n }\n .dark\\:bg-transparent {\n &:is(.dark *) {\n background-color: transparent;\n }\n }\n .dark\\:bg-yellow-900\\/20 {\n &:is(.dark *) {\n background-color: color-mix(in srgb, oklch(42.1% 0.095 57.708) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-yellow-900) 20%, transparent);\n }\n }\n }\n .dark\\:bg-yellow-950 {\n &:is(.dark *) {\n background-color: var(--color-yellow-950);\n }\n }\n .dark\\:text-blue-200 {\n &:is(.dark *) {\n color: var(--color-blue-200);\n }\n }\n .dark\\:text-blue-400 {\n &:is(.dark *) {\n color: var(--color-blue-400);\n }\n }\n .dark\\:text-muted-foreground {\n &:is(.dark *) {\n color: var(--muted-foreground);\n }\n }\n .dark\\:text-pink-400 {\n &:is(.dark *) {\n color: var(--color-pink-400);\n }\n }\n .dark\\:text-yellow-200 {\n &:is(.dark *) {\n color: var(--color-yellow-200);\n }\n }\n .dark\\:ring-blue-800 {\n &:is(.dark *) {\n --tw-ring-color: var(--color-blue-800);\n }\n }\n .dark\\:ring-yellow-800 {\n &:is(.dark *) {\n --tw-ring-color: var(--color-yellow-800);\n }\n }\n .dark\\:hover\\:bg-accent\\/50 {\n &:is(.dark *) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n }\n }\n .dark\\:hover\\:bg-input\\/50 {\n &:is(.dark *) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 50%, transparent);\n }\n }\n }\n }\n }\n .dark\\:hover\\:text-accent-foreground {\n &:is(.dark *) {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n }\n .dark\\:focus-visible\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &:focus-visible {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:has-data-\\[state\\=checked\\]\\:bg-primary\\/10 {\n &:is(.dark *) {\n &:has(*[data-state=\"checked\"]) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 10%, transparent);\n }\n }\n }\n }\n .dark\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &:has(*:is([data-slot][aria-invalid=true])) {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:aria-invalid\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[active\\=true\\]\\:aria-invalid\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &[data-active=\"true\"] {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n }\n .dark\\:data-\\[state\\=active\\]\\:border-input {\n &:is(.dark *) {\n &[data-state=\"active\"] {\n border-color: var(--input);\n }\n }\n }\n .dark\\:data-\\[state\\=active\\]\\:bg-input\\/30 {\n &:is(.dark *) {\n &[data-state=\"active\"] {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 30%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[state\\=active\\]\\:text-foreground {\n &:is(.dark *) {\n &[data-state=\"active\"] {\n color: var(--foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-primary {\n &:is(.dark *) {\n &[data-state=\"checked\"] {\n background-color: var(--primary);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-primary-foreground {\n &:is(.dark *) {\n &[data-state=\"checked\"] {\n background-color: var(--primary-foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=unchecked\\]\\:bg-foreground {\n &:is(.dark *) {\n &[data-state=\"unchecked\"] {\n background-color: var(--foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=unchecked\\]\\:bg-input\\/80 {\n &:is(.dark *) {\n &[data-state=\"unchecked\"] {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 80%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20 {\n &:is(.dark *) {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n }\n }\n .\\[\\&_\\.recharts-cartesian-axis-tick_text\\]\\:fill-muted-foreground {\n & .recharts-cartesian-axis-tick text {\n fill: var(--muted-foreground);\n }\n }\n .\\[\\&_\\.recharts-cartesian-grid_line\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border\\/50 {\n & .recharts-cartesian-grid line[stroke='#ccc'] {\n stroke: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n stroke: color-mix(in oklab, var(--border) 50%, transparent);\n }\n }\n }\n .\\[\\&_\\.recharts-curve\\.recharts-tooltip-cursor\\]\\:stroke-border {\n & .recharts-curve.recharts-tooltip-cursor {\n stroke: var(--border);\n }\n }\n .\\[\\&_\\.recharts-dot\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent {\n & .recharts-dot[stroke='#fff'] {\n stroke: transparent;\n }\n }\n .\\[\\&_\\.recharts-layer\\]\\:outline-hidden {\n & .recharts-layer {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .\\[\\&_\\.recharts-polar-grid_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border {\n & .recharts-polar-grid [stroke='#ccc'] {\n stroke: var(--border);\n }\n }\n .\\[\\&_\\.recharts-radial-bar-background-sector\\]\\:fill-muted {\n & .recharts-radial-bar-background-sector {\n fill: var(--muted);\n }\n }\n .\\[\\&_\\.recharts-rectangle\\.recharts-tooltip-cursor\\]\\:fill-muted {\n & .recharts-rectangle.recharts-tooltip-cursor {\n fill: var(--muted);\n }\n }\n .\\[\\&_\\.recharts-reference-line_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border {\n & .recharts-reference-line [stroke='#ccc'] {\n stroke: var(--border);\n }\n }\n .\\[\\&_\\.recharts-sector\\]\\:outline-hidden {\n & .recharts-sector {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .\\[\\&_\\.recharts-sector\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent {\n & .recharts-sector[stroke='#fff'] {\n stroke: transparent;\n }\n }\n .\\[\\&_\\.recharts-surface\\]\\:outline-hidden {\n & .recharts-surface {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 {\n & [cmdk-group-heading] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 {\n & [cmdk-group-heading] {\n padding-block: calc(var(--spacing) * 1.5);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs {\n & [cmdk-group-heading] {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium {\n & [cmdk-group-heading] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground {\n & [cmdk-group-heading] {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\]\\:px-2 {\n & [cmdk-group] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:pt-0 {\n & [cmdk-group]:not([hidden]) ~[cmdk-group] {\n padding-top: calc(var(--spacing) * 0);\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:h-5 {\n & [cmdk-input-wrapper] svg {\n height: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:w-5 {\n & [cmdk-input-wrapper] svg {\n width: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-input\\]\\]\\:h-12 {\n & [cmdk-input] {\n height: calc(var(--spacing) * 12);\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:px-2 {\n & [cmdk-item] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:py-3 {\n & [cmdk-item] {\n padding-block: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:h-5 {\n & [cmdk-item] svg {\n height: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:w-5 {\n & [cmdk-item] svg {\n width: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_img\\]\\:size-full {\n & img {\n width: 100%;\n height: 100%;\n }\n }\n .\\[\\&_img\\]\\:object-cover {\n & img {\n object-fit: cover;\n }\n }\n .\\[\\&_p\\]\\:leading-relaxed {\n & p {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n }\n .\\[\\&_svg\\]\\:pointer-events-none {\n & svg {\n pointer-events: none;\n }\n }\n .\\[\\&_svg\\]\\:shrink-0 {\n & svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-3 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-6 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'text-\\'\\]\\)\\]\\:text-muted-foreground {\n & svg:not([class*='text-']) {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&_tr\\]\\:border-b {\n & tr {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .\\[\\&_tr\\:last-child\\]\\:border-0 {\n & tr:last-child {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .\\[\\&\\+\\[data-slot\\=item-content\\]\\]\\:flex-none {\n &+[data-slot=item-content] {\n flex: none;\n }\n }\n .\\[\\&\\:first-child\\[data-selected\\=true\\]_button\\]\\:rounded-l-md {\n &:first-child[data-selected=true] button {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n }\n .\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0 {\n &:has([role=checkbox]) {\n padding-right: calc(var(--spacing) * 0);\n }\n }\n .\\[\\.border-b\\]\\:pb-3 {\n &:is(.border-b) {\n padding-bottom: calc(var(--spacing) * 3);\n }\n }\n .\\[\\.border-b\\]\\:pb-6 {\n &:is(.border-b) {\n padding-bottom: calc(var(--spacing) * 6);\n }\n }\n .\\[\\.border-t\\]\\:pt-3 {\n &:is(.border-t) {\n padding-top: calc(var(--spacing) * 3);\n }\n }\n .\\[\\.border-t\\]\\:pt-6 {\n &:is(.border-t) {\n padding-top: calc(var(--spacing) * 6);\n }\n }\n .rtl\\:\\*\\*\\:\\[\\.rdp-button\\\\_next\\>svg\\]\\:rotate-180 {\n &:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n :is(& *) {\n &:is(.rdp-button_next>svg) {\n rotate: 180deg;\n }\n }\n }\n }\n .rtl\\:\\*\\*\\:\\[\\.rdp-button\\\\_previous\\>svg\\]\\:rotate-180 {\n &:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n :is(& *) {\n &:is(.rdp-button_previous>svg) {\n rotate: 180deg;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:flex {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n display: flex;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:items-center {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n align-items: center;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:gap-2 {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n gap: calc(var(--spacing) * 2);\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive {\n &[data-variant=\"destructive\"] {\n :is(& > *) {\n &:is(svg) {\n color: var(--destructive) !important;\n }\n }\n }\n }\n .\\[\\&\\:last-child\\[data-selected\\=true\\]_button\\]\\:rounded-r-md {\n &:last-child[data-selected=true] button {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n .\\[\\&\\>\\*\\]\\:w-full {\n &>* {\n width: 100%;\n }\n }\n .\\[\\&\\>\\*\\]\\:focus-visible\\:relative {\n &>* {\n &:focus-visible {\n position: relative;\n }\n }\n }\n .\\[\\&\\>\\*\\]\\:focus-visible\\:z-10 {\n &>* {\n &:focus-visible {\n z-index: 10;\n }\n }\n }\n .\\[\\&\\>\\*\\]\\:data-\\[slot\\=field\\]\\:p-4 {\n &>* {\n &[data-slot=\"field\"] {\n padding: calc(var(--spacing) * 4);\n }\n }\n }\n .\\@md\\/field-group\\:\\[\\&\\>\\*\\]\\:w-auto {\n @container field-group (width >= 28rem) {\n &>* {\n width: auto;\n }\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-t-none {\n &>*:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-l-none {\n &>*:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-t-0 {\n &>*:not(:first-child) {\n border-top-style: var(--tw-border-style);\n border-top-width: 0px;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-l-0 {\n &>*:not(:first-child) {\n border-left-style: var(--tw-border-style);\n border-left-width: 0px;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-r-none {\n &>*:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-b-none {\n &>*:not(:last-child) {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n .\\[\\&\\>\\.sr-only\\]\\:w-auto {\n &>.sr-only {\n width: auto;\n }\n }\n .\\[\\&\\>\\[data-slot\\=field-group\\]\\]\\:gap-4 {\n &>[data-slot=field-group] {\n gap: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>\\[data-slot\\=field-label\\]\\]\\:flex-auto {\n &>[data-slot=field-label] {\n flex: auto;\n }\n }\n .\\@md\\/field-group\\:\\[\\&\\>\\[data-slot\\=field-label\\]\\]\\:flex-auto {\n @container field-group (width >= 28rem) {\n &>[data-slot=field-label] {\n flex: auto;\n }\n }\n }\n .has-\\[select\\[aria-hidden\\=true\\]\\:last-child\\]\\:\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:last-of-type\\]\\:rounded-r-md {\n &:has(*:is(select[aria-hidden=true]:last-child)) {\n &>[data-slot=select-trigger]:last-of-type {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n }\n .\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:not\\(\\[class\\*\\=\\'w-\\'\\]\\)\\]\\:w-fit {\n &>[data-slot=select-trigger]:not([class*='w-']) {\n width: fit-content;\n }\n }\n .\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\] {\n &>[role=checkbox] {\n --tw-translate-y: 2px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:\\[\\&\\>\\[role\\=checkbox\\]\\,\\[role\\=radio\\]\\]\\:mt-px {\n &:has(>[data-slot=field-content]) {\n &>[role=checkbox],[role=radio] {\n margin-top: 1px;\n }\n }\n }\n .\\@md\\/field-group\\:has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:\\[\\&\\>\\[role\\=checkbox\\]\\,\\[role\\=radio\\]\\]\\:mt-px {\n @container field-group (width >= 28rem) {\n &:has(>[data-slot=field-content]) {\n &>[role=checkbox],[role=radio] {\n margin-top: 1px;\n }\n }\n }\n }\n .\\[\\&\\>a\\]\\:underline {\n &>a {\n text-decoration-line: underline;\n }\n }\n .\\[\\&\\>a\\]\\:underline-offset-4 {\n &>a {\n text-underline-offset: 4px;\n }\n }\n .\\[\\&\\>a\\:hover\\]\\:text-primary {\n &>a:hover {\n color: var(--primary);\n }\n }\n .\\[\\&\\>button\\]\\:hidden {\n &>button {\n display: none;\n }\n }\n .\\[\\&\\>input\\]\\:flex-1 {\n &>input {\n flex: 1;\n }\n }\n .has-\\[\\>\\[data-align\\=block-end\\]\\]\\:\\[\\&\\>input\\]\\:pt-3 {\n &:has(>[data-align=block-end]) {\n &>input {\n padding-top: calc(var(--spacing) * 3);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=block-start\\]\\]\\:\\[\\&\\>input\\]\\:pb-3 {\n &:has(>[data-align=block-start]) {\n &>input {\n padding-bottom: calc(var(--spacing) * 3);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=inline-end\\]\\]\\:\\[\\&\\>input\\]\\:pr-2 {\n &:has(>[data-align=inline-end]) {\n &>input {\n padding-right: calc(var(--spacing) * 2);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=inline-start\\]\\]\\:\\[\\&\\>input\\]\\:pl-2 {\n &:has(>[data-align=inline-start]) {\n &>input {\n padding-left: calc(var(--spacing) * 2);\n }\n }\n }\n .\\[\\&\\>kbd\\]\\:rounded-\\[calc\\(var\\(--radius\\)-5px\\)\\] {\n &>kbd {\n border-radius: calc(var(--radius) - 5px);\n }\n }\n .\\[\\&\\>span\\]\\:text-xs {\n &>span {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n }\n .\\[\\&\\>span\\]\\:opacity-70 {\n &>span {\n opacity: 70%;\n }\n }\n .\\[\\&\\>span\\:last-child\\]\\:truncate {\n &>span:last-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n .\\[\\&\\>svg\\]\\:pointer-events-none {\n &>svg {\n pointer-events: none;\n }\n }\n .\\[\\&\\>svg\\]\\:size-3 {\n &>svg {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:size-3\\.5 {\n &>svg {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n }\n .\\[\\&\\>svg\\]\\:size-4 {\n &>svg {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>svg\\]\\:h-2\\.5 {\n &>svg {\n height: calc(var(--spacing) * 2.5);\n }\n }\n .\\[\\&\\>svg\\]\\:h-3 {\n &>svg {\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:w-2\\.5 {\n &>svg {\n width: calc(var(--spacing) * 2.5);\n }\n }\n .\\[\\&\\>svg\\]\\:w-3 {\n &>svg {\n width: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:shrink-0 {\n &>svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&\\>svg\\]\\:translate-y-0\\.5 {\n &>svg {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .\\[\\&\\>svg\\]\\:text-current {\n &>svg {\n color: currentcolor;\n }\n }\n .\\[\\&\\>svg\\]\\:text-muted-foreground {\n &>svg {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&\\>svg\\]\\:text-sidebar-accent-foreground {\n &>svg {\n color: var(--sidebar-accent-foreground);\n }\n }\n .\\[\\&\\>svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-3\\.5 {\n &>svg:not([class*='size-']) {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n }\n .\\[\\&\\>svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n &>svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>tr\\]\\:last\\:border-b-0 {\n &>tr {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n }\n .\\[\\&\\[data-panel-group-direction\\=vertical\\]\\>div\\]\\:rotate-90 {\n &[data-panel-group-direction=vertical]>div {\n rotate: 90deg;\n }\n }\n .\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-180 {\n &[data-state=open]>svg {\n rotate: 180deg;\n }\n }\n .\\[\\[data-side\\=left\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-right-2 {\n [data-side=left][data-collapsible=offcanvas] & {\n right: calc(var(--spacing) * -2);\n }\n }\n .\\[\\[data-side\\=left\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize {\n [data-side=left][data-state=collapsed] & {\n cursor: e-resize;\n }\n }\n .\\[\\[data-side\\=right\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-left-2 {\n [data-side=right][data-collapsible=offcanvas] & {\n left: calc(var(--spacing) * -2);\n }\n }\n .\\[\\[data-side\\=right\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize {\n [data-side=right][data-state=collapsed] & {\n cursor: w-resize;\n }\n }\n .\\[\\[data-slot\\=card-content\\]_\\&\\]\\:bg-transparent {\n [data-slot=card-content] & {\n background-color: transparent;\n }\n }\n .\\[\\[data-slot\\=popover-content\\]_\\&\\]\\:bg-transparent {\n [data-slot=popover-content] & {\n background-color: transparent;\n }\n }\n .\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-background\\/20 {\n [data-slot=tooltip-content] & {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 20%, transparent);\n }\n }\n }\n .\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:text-background {\n [data-slot=tooltip-content] & {\n color: var(--background);\n }\n }\n .dark\\:\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-background\\/10 {\n &:is(.dark *) {\n [data-slot=tooltip-content] & {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 10%, transparent);\n }\n }\n }\n }\n .\\[\\[data-variant\\=legend\\]\\+\\&\\]\\:-mt-1\\.5 {\n [data-variant=legend]+& {\n margin-top: calc(var(--spacing) * -1.5);\n }\n }\n .\\[a\\&\\]\\:transition-colors {\n a& {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-accent {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-accent\\/50 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-destructive\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-primary\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-secondary\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--secondary) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:text-accent-foreground {\n a& {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n }\n}\n@property --tw-animation-delay {\n syntax: \"*\";\n inherits: false;\n initial-value: 0s;\n}\n@property --tw-animation-direction {\n syntax: \"*\";\n inherits: false;\n initial-value: normal;\n}\n@property --tw-animation-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-animation-fill-mode {\n syntax: \"*\";\n inherits: false;\n initial-value: forwards;\n}\n@property --tw-animation-iteration-count {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-opacity {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-rotate {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-scale {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-opacity {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-exit-rotate {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-scale {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-exit-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n:root {\n --background: oklch(0.97 0.01 90);\n --foreground: oklch(0.2 0.02 265);\n --card: oklch(0.98 0.005 90);\n --card-foreground: oklch(0.2 0.02 265);\n --popover: oklch(0.98 0.005 90);\n --popover-foreground: oklch(0.2 0.02 265);\n --primary: oklch(0.45 0.15 25);\n --primary-foreground: oklch(0.98 0.01 90);\n --secondary: oklch(0.85 0.05 85);\n --secondary-foreground: oklch(0.3 0.05 50);\n --muted: oklch(0.92 0.01 90);\n --muted-foreground: oklch(0.45 0.02 265);\n --accent: oklch(0.94 0.02 85);\n --accent-foreground: oklch(0.3 0.05 50);\n --destructive: oklch(0.577 0.245 27.325);\n --destructive-foreground: oklch(0.98 0 0);\n --border: oklch(0.88 0.01 90);\n --input: oklch(0.88 0.01 90);\n --ring: oklch(0.45 0.15 25);\n --radius: 0.5rem;\n --sidebar: oklch(0.96 0.01 90);\n --sidebar-foreground: oklch(0.25 0.02 265);\n --sidebar-primary: oklch(0.45 0.15 25);\n --sidebar-primary-foreground: oklch(0.98 0.01 90);\n --sidebar-accent: oklch(0.93 0.01 90);\n --sidebar-accent-foreground: oklch(0.25 0.02 265);\n --sidebar-border: oklch(0.88 0.01 90);\n --sidebar-ring: oklch(0.45 0.15 25);\n --chart-1: oklch(0.45 0.15 25);\n --chart-2: oklch(0.65 0.12 50);\n --chart-3: oklch(0.35 0.08 200);\n --chart-4: oklch(0.55 0.05 265);\n --chart-5: oklch(0.75 0.1 85);\n}\n.dark {\n --background: oklch(0.12 0.01 265);\n --foreground: oklch(0.95 0.01 90);\n --card: oklch(0.15 0.01 265);\n --card-foreground: oklch(0.95 0.01 90);\n --popover: oklch(0.15 0.01 265);\n --popover-foreground: oklch(0.95 0.01 90);\n --primary: oklch(0.6 0.15 25);\n --primary-foreground: oklch(0.98 0.01 90);\n --secondary: oklch(0.3 0.05 50);\n --secondary-foreground: oklch(0.9 0.05 85);\n --muted: oklch(0.2 0.01 265);\n --muted-foreground: oklch(0.65 0.01 265);\n --accent: oklch(0.2 0.02 265);\n --accent-foreground: oklch(0.95 0.01 90);\n --destructive: oklch(0.396 0.141 25.723);\n --destructive-foreground: oklch(0.98 0 0);\n --border: oklch(0.25 0.01 265);\n --input: oklch(0.25 0.01 265);\n --ring: oklch(0.6 0.15 25);\n --sidebar: oklch(0.14 0.01 265);\n --sidebar-foreground: oklch(0.95 0.01 90);\n --sidebar-primary: oklch(0.6 0.15 25);\n --sidebar-primary-foreground: oklch(0.98 0.01 90);\n --sidebar-accent: oklch(0.2 0.01 265);\n --sidebar-accent-foreground: oklch(0.95 0.01 90);\n --sidebar-border: oklch(0.25 0.01 265);\n --sidebar-ring: oklch(0.6 0.15 25);\n}\n@layer base {\n * {\n border-color: var(--border);\n outline-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n outline-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n body {\n background-color: var(--background);\n color: var(--foreground);\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: \"Songti SC\", \"STSong\", \"SimSun\", \"Times New Roman\", serif;\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-gradient-position {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: \"\";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: \"\";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-content {\n syntax: \"*\";\n initial-value: \"\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity,1);\n transform: translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));\n }\n}\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity,1);\n transform: translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));\n }\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))));\n }\n}\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))));\n }\n to {\n height: 0;\n }\n}\n@keyframes caret-blink {\n 0%,70%,100% {\n opacity: 1;\n }\n 20%,50% {\n opacity: 0;\n }\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n to {\n height: 0;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-content: \"\";\n --tw-animation-delay: 0s;\n --tw-animation-direction: normal;\n --tw-animation-duration: initial;\n --tw-animation-fill-mode: forwards;\n --tw-animation-iteration-count: 1;\n --tw-enter-opacity: 1;\n --tw-enter-rotate: 0;\n --tw-enter-scale: 1;\n --tw-enter-translate-x: 0;\n --tw-enter-translate-y: 0;\n --tw-exit-opacity: 1;\n --tw-exit-rotate: 0;\n --tw-exit-scale: 1;\n --tw-exit-translate-x: 0;\n --tw-exit-translate-y: 0;\n }\n }\n}\n"],"names":[],"mappings":"AACA;EA66ME;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA76MJ;EAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAFF;EAgHE;;;;;;;EAAA;;;;;;;EAMA;;;;;;;;;;EASA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;;;EAKA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;;;;;;;EAAA;;;;;;;;;;;EAUA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;IACE;;;;IAEE;MAAgD;;;;;;EAKpD;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAGA;;;;EAAA;;;;EAGA;;;;EAs1LA;;;;;EAGE;IAAgD;;;;;EAIlD;;;;;EAIA;;;;;;;AAhmMF;;AAAA;EAoQE;;;;EAIA;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;;;;;;;EAWA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAI3B;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;;EAMA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAIE;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAMF;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAI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"}}] + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/Documents/go-new/chinese-family-tree/app/globals.css"],"sourcesContent":["/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-orange-50: oklch(98% 0.016 73.684);\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-orange-700: oklch(55.3% 0.195 38.402);\n --color-amber-700: oklch(55.5% 0.163 48.998);\n --color-yellow-50: oklch(98.7% 0.026 102.212);\n --color-yellow-200: oklch(94.5% 0.129 101.54);\n --color-yellow-400: oklch(85.2% 0.199 91.936);\n --color-yellow-800: oklch(47.6% 0.114 61.907);\n --color-yellow-900: oklch(42.1% 0.095 57.708);\n --color-yellow-950: oklch(28.6% 0.066 53.813);\n --color-green-50: oklch(98.2% 0.018 155.826);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-200: oklch(92.5% 0.084 155.995);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-green-600: oklch(62.7% 0.194 149.214);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-100: oklch(93.2% 0.032 255.585);\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-blue-900: oklch(37.9% 0.146 265.522);\n --color-blue-950: oklch(28.2% 0.091 267.935);\n --color-purple-50: oklch(97.7% 0.014 308.299);\n --color-purple-100: oklch(94.6% 0.033 307.174);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-500: oklch(62.7% 0.265 303.9);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-pink-100: oklch(94.8% 0.028 342.258);\n --color-pink-400: oklch(71.8% 0.202 349.761);\n --color-pink-500: oklch(65.6% 0.241 354.308);\n --color-pink-600: oklch(59.2% 0.249 0.584);\n --color-pink-700: oklch(52.5% 0.223 3.958);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-neutral-100: oklch(97% 0 0);\n --color-neutral-200: oklch(92.2% 0 0);\n --color-neutral-400: oklch(70.8% 0 0);\n --color-neutral-500: oklch(55.6% 0 0);\n --color-neutral-600: oklch(43.9% 0 0);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-sm: 24rem;\n --container-md: 28rem;\n --container-lg: 32rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n --container-6xl: 72rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-tight: -0.025em;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --tracking-widest: 0.1em;\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-normal: 1.5;\n --leading-relaxed: 1.625;\n --radius-xs: 0.125rem;\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --aspect-video: 16 / 9;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: \"Geist\", \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\n --default-mono-font-family: \"Geist Mono\", monospace;\n --color-border: var(--border);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .\\@container\\/card-header {\n container-type: inline-size;\n container-name: card-header;\n }\n .\\@container\\/field-group {\n container-type: inline-size;\n container-name: field-group;\n }\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .invisible {\n visibility: hidden;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .inset-x-0 {\n inset-inline: calc(var(--spacing) * 0);\n }\n .inset-y-0 {\n inset-block: calc(var(--spacing) * 0);\n }\n .-top-1 {\n top: calc(var(--spacing) * -1);\n }\n .-top-3 {\n top: calc(var(--spacing) * -3);\n }\n .-top-12 {\n top: calc(var(--spacing) * -12);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1 {\n top: calc(var(--spacing) * 1);\n }\n .top-1\\.5 {\n top: calc(var(--spacing) * 1.5);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .top-2 {\n top: calc(var(--spacing) * 2);\n }\n .top-2\\.5 {\n top: calc(var(--spacing) * 2.5);\n }\n .top-3\\.5 {\n top: calc(var(--spacing) * 3.5);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .top-20 {\n top: calc(var(--spacing) * 20);\n }\n .top-\\[1px\\] {\n top: 1px;\n }\n .top-\\[50\\%\\] {\n top: 50%;\n }\n .top-\\[60\\%\\] {\n top: 60%;\n }\n .top-full {\n top: 100%;\n }\n .-right-0\\.5 {\n right: calc(var(--spacing) * -0.5);\n }\n .-right-1 {\n right: calc(var(--spacing) * -1);\n }\n .-right-12 {\n right: calc(var(--spacing) * -12);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-1 {\n right: calc(var(--spacing) * 1);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-3 {\n right: calc(var(--spacing) * 3);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .-bottom-0\\.5 {\n bottom: calc(var(--spacing) * -0.5);\n }\n .-bottom-1 {\n bottom: calc(var(--spacing) * -1);\n }\n .-bottom-12 {\n bottom: calc(var(--spacing) * -12);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-2 {\n bottom: calc(var(--spacing) * 2);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .-left-12 {\n left: calc(var(--spacing) * -12);\n }\n .-left-16 {\n left: calc(var(--spacing) * -16);\n }\n .-left-\\[9px\\] {\n left: calc(9px * -1);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-2 {\n left: calc(var(--spacing) * 2);\n }\n .left-2\\.5 {\n left: calc(var(--spacing) * 2.5);\n }\n .left-4 {\n left: calc(var(--spacing) * 4);\n }\n .left-\\[50\\%\\] {\n left: 50%;\n }\n .isolate {\n isolation: isolate;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-30 {\n z-index: 30;\n }\n .z-50 {\n z-index: 50;\n }\n .z-\\[1\\] {\n z-index: 1;\n }\n .z-\\[100\\] {\n z-index: 100;\n }\n .order-first {\n order: -9999;\n }\n .order-last {\n order: 9999;\n }\n .col-span-full {\n grid-column: 1 / -1;\n }\n .col-start-2 {\n grid-column-start: 2;\n }\n .row-span-2 {\n grid-row: span 2 / span 2;\n }\n .row-start-1 {\n grid-row-start: 1;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .\\!m-0 {\n margin: calc(var(--spacing) * 0) !important;\n }\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n }\n .mx-2 {\n margin-inline: calc(var(--spacing) * 2);\n }\n .mx-3\\.5 {\n margin-inline: calc(var(--spacing) * 3.5);\n }\n .mx-4 {\n margin-inline: calc(var(--spacing) * 4);\n }\n .mx-auto {\n margin-inline: auto;\n }\n .-my-2 {\n margin-block: calc(var(--spacing) * -2);\n }\n .my-0 {\n margin-block: calc(var(--spacing) * 0);\n }\n .my-0\\.5 {\n margin-block: calc(var(--spacing) * 0.5);\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .-mt-2 {\n margin-top: calc(var(--spacing) * -2);\n }\n .-mt-4 {\n margin-top: calc(var(--spacing) * -4);\n }\n .mt-0 {\n margin-top: calc(var(--spacing) * 0);\n }\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * 0.5);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-1\\.5 {\n margin-top: calc(var(--spacing) * 1.5);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-auto {\n margin-top: auto;\n }\n .mr-1 {\n margin-right: calc(var(--spacing) * 1);\n }\n .mr-2 {\n margin-right: calc(var(--spacing) * 2);\n }\n .mr-8 {\n margin-right: calc(var(--spacing) * 8);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .mb-8 {\n margin-bottom: calc(var(--spacing) * 8);\n }\n .-ml-4 {\n margin-left: calc(var(--spacing) * -4);\n }\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n .ml-2 {\n margin-left: calc(var(--spacing) * 2);\n }\n .ml-4 {\n margin-left: calc(var(--spacing) * 4);\n }\n .ml-6 {\n margin-left: calc(var(--spacing) * 6);\n }\n .ml-auto {\n margin-left: auto;\n }\n .line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n .line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline-flex {\n display: inline-flex;\n }\n .table {\n display: table;\n }\n .table-caption {\n display: table-caption;\n }\n .table-cell {\n display: table-cell;\n }\n .table-row {\n display: table-row;\n }\n .field-sizing-content {\n field-sizing: content;\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .aspect-video {\n aspect-ratio: var(--aspect-video);\n }\n .size-\\(--cell-size\\) {\n width: var(--cell-size);\n height: var(--cell-size);\n }\n .size-2 {\n width: calc(var(--spacing) * 2);\n height: calc(var(--spacing) * 2);\n }\n .size-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n .size-3 {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n .size-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n .size-4 {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n .size-6 {\n width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6);\n }\n .size-7 {\n width: calc(var(--spacing) * 7);\n height: calc(var(--spacing) * 7);\n }\n .size-8 {\n width: calc(var(--spacing) * 8);\n height: calc(var(--spacing) * 8);\n }\n .size-9 {\n width: calc(var(--spacing) * 9);\n height: calc(var(--spacing) * 9);\n }\n .size-10 {\n width: calc(var(--spacing) * 10);\n height: calc(var(--spacing) * 10);\n }\n .size-auto {\n width: auto;\n height: auto;\n }\n .size-full {\n width: 100%;\n height: 100%;\n }\n .h-\\(--cell-size\\) {\n height: var(--cell-size);\n }\n .h-1 {\n height: calc(var(--spacing) * 1);\n }\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-2\\.5 {\n height: calc(var(--spacing) * 2.5);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-7 {\n height: calc(var(--spacing) * 7);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-14 {\n height: calc(var(--spacing) * 14);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-20 {\n height: calc(var(--spacing) * 20);\n }\n .h-32 {\n height: calc(var(--spacing) * 32);\n }\n .h-\\[1\\.15rem\\] {\n height: 1.15rem;\n }\n .h-\\[300px\\] {\n height: 300px;\n }\n .h-\\[400px\\] {\n height: 400px;\n }\n .h-\\[600px\\] {\n height: 600px;\n }\n .h-\\[calc\\(100\\%-1px\\)\\] {\n height: calc(100% - 1px);\n }\n .h-\\[var\\(--radix-navigation-menu-viewport-height\\)\\] {\n height: var(--radix-navigation-menu-viewport-height);\n }\n .h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n }\n .h-auto {\n height: auto;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .h-screen {\n height: 100vh;\n }\n .h-svh {\n height: 100svh;\n }\n .max-h-\\(--radix-context-menu-content-available-height\\) {\n max-height: var(--radix-context-menu-content-available-height);\n }\n .max-h-\\(--radix-dropdown-menu-content-available-height\\) {\n max-height: var(--radix-dropdown-menu-content-available-height);\n }\n .max-h-\\(--radix-select-content-available-height\\) {\n max-height: var(--radix-select-content-available-height);\n }\n .max-h-96 {\n max-height: calc(var(--spacing) * 96);\n }\n .max-h-\\[60vh\\] {\n max-height: 60vh;\n }\n .max-h-\\[70vh\\] {\n max-height: 70vh;\n }\n .max-h-\\[300px\\] {\n max-height: 300px;\n }\n .max-h-screen {\n max-height: 100vh;\n }\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n .min-h-4 {\n min-height: calc(var(--spacing) * 4);\n }\n .min-h-16 {\n min-height: calc(var(--spacing) * 16);\n }\n .min-h-\\[200px\\] {\n min-height: 200px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .min-h-svh {\n min-height: 100svh;\n }\n .w-\\(--cell-size\\) {\n width: var(--cell-size);\n }\n .w-\\(--sidebar-width\\) {\n width: var(--sidebar-width);\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-1 {\n width: calc(var(--spacing) * 1);\n }\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n .w-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n }\n .w-3 {\n width: calc(var(--spacing) * 3);\n }\n .w-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n }\n .w-3\\/4 {\n width: calc(3/4 * 100%);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-7 {\n width: calc(var(--spacing) * 7);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-9 {\n width: calc(var(--spacing) * 9);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-14 {\n width: calc(var(--spacing) * 14);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-32 {\n width: calc(var(--spacing) * 32);\n }\n .w-48 {\n width: calc(var(--spacing) * 48);\n }\n .w-56 {\n width: calc(var(--spacing) * 56);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n .w-\\[100px\\] {\n width: 100px;\n }\n .w-\\[200px\\] {\n width: 200px;\n }\n .w-\\[var\\(--radix-dropdown-menu-trigger-width\\)\\] {\n width: var(--radix-dropdown-menu-trigger-width);\n }\n .w-auto {\n width: auto;\n }\n .w-fit {\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .w-max {\n width: max-content;\n }\n .w-px {\n width: 1px;\n }\n .max-w-\\(--skeleton-width\\) {\n max-width: var(--skeleton-width);\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-3xl {\n max-width: var(--container-3xl);\n }\n .max-w-4xl {\n max-width: var(--container-4xl);\n }\n .max-w-6xl {\n max-width: var(--container-6xl);\n }\n .max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n }\n .max-w-full {\n max-width: 100%;\n }\n .max-w-max {\n max-width: max-content;\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .max-w-none {\n max-width: none;\n }\n .max-w-sm {\n max-width: var(--container-sm);\n }\n .min-w-\\(--cell-size\\) {\n min-width: var(--cell-size);\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n .min-w-5 {\n min-width: calc(var(--spacing) * 5);\n }\n .min-w-8 {\n min-width: calc(var(--spacing) * 8);\n }\n .min-w-9 {\n min-width: calc(var(--spacing) * 9);\n }\n .min-w-10 {\n min-width: calc(var(--spacing) * 10);\n }\n .min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n .min-w-\\[12rem\\] {\n min-width: 12rem;\n }\n .min-w-\\[200px\\] {\n min-width: 200px;\n }\n .min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n }\n .min-w-fit {\n min-width: fit-content;\n }\n .min-w-full {\n min-width: 100%;\n }\n .flex-1 {\n flex: 1;\n }\n .flex-shrink {\n flex-shrink: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .grow {\n flex-grow: 1;\n }\n .grow-0 {\n flex-grow: 0;\n }\n .basis-full {\n flex-basis: 100%;\n }\n .caption-bottom {\n caption-side: bottom;\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .origin-\\(--radix-context-menu-content-transform-origin\\) {\n transform-origin: var(--radix-context-menu-content-transform-origin);\n }\n .origin-\\(--radix-dropdown-menu-content-transform-origin\\) {\n transform-origin: var(--radix-dropdown-menu-content-transform-origin);\n }\n .origin-\\(--radix-hover-card-content-transform-origin\\) {\n transform-origin: var(--radix-hover-card-content-transform-origin);\n }\n .origin-\\(--radix-menubar-content-transform-origin\\) {\n transform-origin: var(--radix-menubar-content-transform-origin);\n }\n .origin-\\(--radix-popover-content-transform-origin\\) {\n transform-origin: var(--radix-popover-content-transform-origin);\n }\n .origin-\\(--radix-select-content-transform-origin\\) {\n transform-origin: var(--radix-select-content-transform-origin);\n }\n .origin-\\(--radix-tooltip-content-transform-origin\\) {\n transform-origin: var(--radix-tooltip-content-transform-origin);\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-px {\n --tw-translate-x: -1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-px {\n --tw-translate-x: 1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0\\.5 {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[2px\\] {\n --tw-translate-y: 2px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[calc\\(-50\\%_-_2px\\)\\] {\n --tw-translate-y: calc(-50% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .rotate-45 {\n rotate: 45deg;\n }\n .rotate-90 {\n rotate: 90deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-caret-blink {\n animation: caret-blink 1.25s ease-out infinite;\n }\n .animate-in {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-move {\n cursor: move;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .cursor-text {\n cursor: text;\n }\n .touch-none {\n touch-action: none;\n }\n .resize {\n resize: both;\n }\n .resize-none {\n resize: none;\n }\n .scroll-my-1 {\n scroll-margin-block: calc(var(--spacing) * 1);\n }\n .scroll-py-1 {\n scroll-padding-block: calc(var(--spacing) * 1);\n }\n .list-inside {\n list-style-position: inside;\n }\n .list-disc {\n list-style-type: disc;\n }\n .list-none {\n list-style-type: none;\n }\n .auto-rows-min {\n grid-auto-rows: min-content;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-\\[0_1fr\\] {\n grid-template-columns: 0 1fr;\n }\n .grid-rows-\\[auto_auto\\] {\n grid-template-rows: auto auto;\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-col-reverse {\n flex-direction: column-reverse;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-baseline {\n align-items: baseline;\n }\n .items-center {\n align-items: center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .justify-items-start {\n justify-items: start;\n }\n .gap-0\\.5 {\n gap: calc(var(--spacing) * 0.5);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-2\\.5 {\n gap: calc(var(--spacing) * 2.5);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-7 {\n gap: calc(var(--spacing) * 7);\n }\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n .space-y-0 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-0\\.5 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-1 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-8 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-x-4 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .gap-y-0\\.5 {\n row-gap: calc(var(--spacing) * 0.5);\n }\n .self-start {\n align-self: flex-start;\n }\n .self-stretch {\n align-self: stretch;\n }\n .justify-self-end {\n justify-self: flex-end;\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-\\[2px\\] {\n border-radius: 2px;\n }\n .rounded-\\[4px\\] {\n border-radius: 4px;\n }\n .rounded-\\[calc\\(var\\(--radius\\)-5px\\)\\] {\n border-radius: calc(var(--radius) - 5px);\n }\n .rounded-\\[inherit\\] {\n border-radius: inherit;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius);\n }\n .rounded-md {\n border-radius: calc(var(--radius) - 2px);\n }\n .rounded-none {\n border-radius: 0;\n }\n .rounded-sm {\n border-radius: calc(var(--radius) - 4px);\n }\n .rounded-xl {\n border-radius: calc(var(--radius) + 4px);\n }\n .rounded-xs {\n border-radius: var(--radius-xs);\n }\n .rounded-l-md {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n .rounded-tl-sm {\n border-top-left-radius: calc(var(--radius) - 4px);\n }\n .rounded-r-md {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-4 {\n border-style: var(--tw-border-style);\n border-width: 4px;\n }\n .border-\\[1\\.5px\\] {\n border-style: var(--tw-border-style);\n border-width: 1.5px;\n }\n .border-y {\n border-block-style: var(--tw-border-style);\n border-block-width: 1px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-l-2 {\n border-left-style: var(--tw-border-style);\n border-left-width: 2px;\n }\n .border-l-4 {\n border-left-style: var(--tw-border-style);\n border-left-width: 4px;\n }\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .border-\\(--color-border\\) {\n border-color: var(--color-border);\n }\n .border-background {\n border-color: var(--background);\n }\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n .border-blue-500 {\n border-color: var(--color-blue-500);\n }\n .border-border {\n border-color: var(--border);\n }\n .border-border\\/40 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 40%, transparent);\n }\n }\n .border-border\\/50 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 50%, transparent);\n }\n }\n .border-border\\/60 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 60%, transparent);\n }\n }\n .border-destructive {\n border-color: var(--destructive);\n }\n .border-destructive\\/20 {\n border-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-green-200 {\n border-color: var(--color-green-200);\n }\n .border-input {\n border-color: var(--input);\n }\n .border-muted-foreground\\/50 {\n border-color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--muted-foreground) 50%, transparent);\n }\n }\n .border-neutral-200 {\n border-color: var(--color-neutral-200);\n }\n .border-orange-200 {\n border-color: var(--color-orange-200);\n }\n .border-primary {\n border-color: var(--primary);\n }\n .border-primary\\/20 {\n border-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--primary) 20%, transparent);\n }\n }\n .border-purple-200 {\n border-color: var(--color-purple-200);\n }\n .border-red-500 {\n border-color: var(--color-red-500);\n }\n .border-sidebar-border {\n border-color: var(--sidebar-border);\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-white {\n border-color: var(--color-white);\n }\n .border-yellow-400 {\n border-color: var(--color-yellow-400);\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .border-l-transparent {\n border-left-color: transparent;\n }\n .bg-\\(--color-bg\\) {\n background-color: var(--color-bg);\n }\n .bg-accent {\n background-color: var(--accent);\n }\n .bg-background {\n background-color: var(--background);\n }\n .bg-background\\/50 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 50%, transparent);\n }\n }\n .bg-background\\/60 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 60%, transparent);\n }\n }\n .bg-background\\/80 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 80%, transparent);\n }\n }\n .bg-background\\/90 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 90%, transparent);\n }\n }\n .bg-background\\/95 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 95%, transparent);\n }\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n .bg-blue-500 {\n background-color: var(--color-blue-500);\n }\n .bg-border {\n background-color: var(--border);\n }\n .bg-card {\n background-color: var(--card);\n }\n .bg-card\\/50 {\n background-color: var(--card);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--card) 50%, transparent);\n }\n }\n .bg-destructive {\n background-color: var(--destructive);\n }\n .bg-destructive\\/10 {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 10%, transparent);\n }\n }\n .bg-destructive\\/15 {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 15%, transparent);\n }\n }\n .bg-foreground {\n background-color: var(--foreground);\n }\n .bg-foreground\\/25 {\n background-color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--foreground) 25%, transparent);\n }\n }\n .bg-foreground\\/50 {\n background-color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--foreground) 50%, transparent);\n }\n }\n .bg-foreground\\/60 {\n background-color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--foreground) 60%, transparent);\n }\n }\n .bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-gray-500 {\n background-color: var(--color-gray-500);\n }\n .bg-green-50 {\n background-color: var(--color-green-50);\n }\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n .bg-input {\n background-color: var(--input);\n }\n .bg-muted {\n background-color: var(--muted);\n }\n .bg-muted\\/30 {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 30%, transparent);\n }\n }\n .bg-muted\\/50 {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 50%, transparent);\n }\n }\n .bg-neutral-100 {\n background-color: var(--color-neutral-100);\n }\n .bg-neutral-400 {\n background-color: var(--color-neutral-400);\n }\n .bg-orange-50 {\n background-color: var(--color-orange-50);\n }\n .bg-orange-500 {\n background-color: var(--color-orange-500);\n }\n .bg-pink-100 {\n background-color: var(--color-pink-100);\n }\n .bg-pink-500 {\n background-color: var(--color-pink-500);\n }\n .bg-popover {\n background-color: var(--popover);\n }\n .bg-primary {\n background-color: var(--primary);\n }\n .bg-primary\\/5 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 5%, transparent);\n }\n }\n .bg-primary\\/10 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 10%, transparent);\n }\n }\n .bg-primary\\/20 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 20%, transparent);\n }\n }\n .bg-primary\\/40 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 40%, transparent);\n }\n }\n .bg-primary\\/60 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 60%, transparent);\n }\n }\n .bg-primary\\/70 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 70%, transparent);\n }\n }\n .bg-purple-50 {\n background-color: var(--color-purple-50);\n }\n .bg-purple-100 {\n background-color: var(--color-purple-100);\n }\n .bg-purple-500 {\n background-color: var(--color-purple-500);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-red-500 {\n background-color: var(--color-red-500);\n }\n .bg-secondary {\n background-color: var(--secondary);\n }\n .bg-sidebar {\n background-color: var(--sidebar);\n }\n .bg-sidebar-border {\n background-color: var(--sidebar-border);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-yellow-50 {\n background-color: var(--color-yellow-50);\n }\n .bg-gradient-to-br {\n --tw-gradient-position: to bottom right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-r {\n --tw-gradient-position: to right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-\\[url\\(\\'https\\:\\/\\/www\\.transparenttextures\\.com\\/patterns\\/rice-paper\\.png\\'\\)\\] {\n background-image: url('https://www.transparenttextures.com/patterns/rice-paper.png');\n }\n .from-blue-500 {\n --tw-gradient-from: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-blue-600 {\n --tw-gradient-from: var(--color-blue-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-card {\n --tw-gradient-from: var(--card);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-pink-500 {\n --tw-gradient-from: var(--color-pink-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-primary\\/5 {\n --tw-gradient-from: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--primary) 5%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-primary\\/50 {\n --tw-gradient-from: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--primary) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .via-background {\n --tw-gradient-via: var(--background);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-primary {\n --tw-gradient-via: var(--primary);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-purple-500 {\n --tw-gradient-via: var(--color-purple-500);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .to-blue-400 {\n --tw-gradient-to: var(--color-blue-400);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-blue-500 {\n --tw-gradient-to: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-card\\/50 {\n --tw-gradient-to: var(--card);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--card) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-pink-400 {\n --tw-gradient-to: var(--color-pink-400);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-pink-500 {\n --tw-gradient-to: var(--color-pink-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-pink-600 {\n --tw-gradient-to: var(--color-pink-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-primary\\/50 {\n --tw-gradient-to: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--primary) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-secondary\\/5 {\n --tw-gradient-to: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--secondary) 5%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .bg-repeat {\n background-repeat: repeat;\n }\n .fill-current {\n fill: currentcolor;\n }\n .fill-foreground {\n fill: var(--foreground);\n }\n .fill-primary {\n fill: var(--primary);\n }\n .object-contain {\n object-fit: contain;\n }\n .object-cover {\n object-fit: cover;\n }\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .p-12 {\n padding: calc(var(--spacing) * 12);\n }\n .p-\\[3px\\] {\n padding: 3px;\n }\n .p-px {\n padding: 1px;\n }\n .px-\\(--cell-size\\) {\n padding-inline: var(--cell-size);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6);\n }\n .py-8 {\n padding-block: calc(var(--spacing) * 8);\n }\n .py-10 {\n padding-block: calc(var(--spacing) * 10);\n }\n .py-12 {\n padding-block: calc(var(--spacing) * 12);\n }\n .pt-0 {\n padding-top: calc(var(--spacing) * 0);\n }\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-20 {\n padding-top: calc(var(--spacing) * 20);\n }\n .pr-1 {\n padding-right: calc(var(--spacing) * 1);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pr-2\\.5 {\n padding-right: calc(var(--spacing) * 2.5);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pr-8 {\n padding-right: calc(var(--spacing) * 8);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pb-6 {\n padding-bottom: calc(var(--spacing) * 6);\n }\n .pb-8 {\n padding-bottom: calc(var(--spacing) * 8);\n }\n .pb-20 {\n padding-bottom: calc(var(--spacing) * 20);\n }\n .pl-1 {\n padding-left: calc(var(--spacing) * 1);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-8 {\n padding-left: calc(var(--spacing) * 8);\n }\n .pl-9 {\n padding-left: calc(var(--spacing) * 9);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .align-middle {\n vertical-align: middle;\n }\n .font-mono {\n font-family: \"Geist Mono\", monospace;\n }\n .font-sans {\n font-family: \"Geist\", \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\n }\n .font-serif {\n font-family: \"Songti SC\", \"STSong\", \"SimSun\", \"Times New Roman\", serif;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-3xl {\n font-size: var(--text-3xl);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n .text-5xl {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-sm\\/relaxed {\n font-size: var(--text-sm);\n line-height: var(--leading-relaxed);\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n }\n .text-\\[9px\\] {\n font-size: 9px;\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .text-\\[11px\\] {\n font-size: 11px;\n }\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .leading-normal {\n --tw-leading: var(--leading-normal);\n line-height: var(--leading-normal);\n }\n .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n .leading-snug {\n --tw-leading: var(--leading-snug);\n line-height: var(--leading-snug);\n }\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .text-balance {\n text-wrap: balance;\n }\n .break-words {\n overflow-wrap: break-word;\n }\n .break-all {\n word-break: break-all;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .whitespace-pre-line {\n white-space: pre-line;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-accent-foreground {\n color: var(--accent-foreground);\n }\n .text-amber-700 {\n color: var(--color-amber-700);\n }\n .text-background {\n color: var(--background);\n }\n .text-blue-400 {\n color: var(--color-blue-400);\n }\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n .text-card-foreground {\n color: var(--card-foreground);\n }\n .text-current {\n color: currentcolor;\n }\n .text-destructive {\n color: var(--destructive);\n }\n .text-destructive-foreground {\n color: var(--destructive-foreground);\n }\n .text-foreground {\n color: var(--foreground);\n }\n .text-foreground\\/50 {\n color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--foreground) 50%, transparent);\n }\n }\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n .text-green-600 {\n color: var(--color-green-600);\n }\n .text-green-700 {\n color: var(--color-green-700);\n }\n .text-green-800 {\n color: var(--color-green-800);\n }\n .text-muted-foreground {\n color: var(--muted-foreground);\n }\n .text-muted-foreground\\/60 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 60%, transparent);\n }\n }\n .text-muted-foreground\\/70 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 70%, transparent);\n }\n }\n .text-muted-foreground\\/80 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 80%, transparent);\n }\n }\n .text-neutral-500 {\n color: var(--color-neutral-500);\n }\n .text-neutral-600 {\n color: var(--color-neutral-600);\n }\n .text-orange-700 {\n color: var(--color-orange-700);\n }\n .text-pink-400 {\n color: var(--color-pink-400);\n }\n .text-pink-600 {\n color: var(--color-pink-600);\n }\n .text-pink-700 {\n color: var(--color-pink-700);\n }\n .text-popover-foreground {\n color: var(--popover-foreground);\n }\n .text-primary {\n color: var(--primary);\n }\n .text-primary-foreground {\n color: var(--primary-foreground);\n }\n .text-primary\\/70 {\n color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--primary) 70%, transparent);\n }\n }\n .text-primary\\/80 {\n color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--primary) 80%, transparent);\n }\n }\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n .text-red-400 {\n color: var(--color-red-400);\n }\n .text-red-600 {\n color: var(--color-red-600);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-secondary-foreground {\n color: var(--secondary-foreground);\n }\n .text-sidebar-foreground {\n color: var(--sidebar-foreground);\n }\n .text-sidebar-foreground\\/70 {\n color: var(--sidebar-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--sidebar-foreground) 70%, transparent);\n }\n }\n .text-white {\n color: var(--color-white);\n }\n .text-yellow-800 {\n color: var(--color-yellow-800);\n }\n .uppercase {\n text-transform: uppercase;\n }\n .italic {\n font-style: italic;\n }\n .tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .underline {\n text-decoration-line: underline;\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-20 {\n opacity: 20%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-70 {\n opacity: 70%;\n }\n .opacity-90 {\n opacity: 90%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-border\\)\\)\\] {\n --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-border)));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-none {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-0 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-4 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-background {\n --tw-ring-color: var(--background);\n }\n .ring-blue-200 {\n --tw-ring-color: var(--color-blue-200);\n }\n .ring-ring\\/50 {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n .ring-sidebar-ring {\n --tw-ring-color: var(--sidebar-ring);\n }\n .ring-yellow-200 {\n --tw-ring-color: var(--color-yellow-200);\n }\n .ring-offset-background {\n --tw-ring-offset-color: var(--background);\n }\n .outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .backdrop-blur {\n --tw-backdrop-blur: blur(8px);\n -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,);\n 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,);\n }\n .transition {\n 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;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[color\\,box-shadow\\] {\n transition-property: color,box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[left\\,right\\,width\\] {\n transition-property: left,right,width;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[margin\\,opacity\\] {\n transition-property: margin,opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[width\\,height\\,padding\\] {\n transition-property: width,height,padding;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[width\\] {\n transition-property: width;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-none {\n transition-property: none;\n }\n .duration-100 {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .duration-500 {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n .duration-1000 {\n --tw-duration: 1000ms;\n transition-duration: 1000ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .ease-linear {\n --tw-ease: linear;\n transition-timing-function: linear;\n }\n .ease-out {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n .fade-in-0 {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .slide-in-from-bottom-5 {\n --tw-enter-translate-y: calc(5*var(--spacing));\n --tw-enter-translate-y: calc(.05*100%);\n }\n .zoom-in-95 {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n .\\[--cell-size\\:--spacing\\(8\\)\\] {\n --cell-size: calc(var(--spacing) * 8);\n }\n .slide-in-from-top-2 {\n --tw-enter-translate-y: calc(2*var(--spacing)*-1);\n }\n .group-last\\:hidden {\n &:is(:where(.group):last-child *) {\n display: none;\n }\n }\n .group-focus-within\\/menu-item\\:opacity-100 {\n &:is(:where(.group\\/menu-item):focus-within *) {\n opacity: 100%;\n }\n }\n .group-hover\\:scale-110 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n --tw-scale-x: 110%;\n --tw-scale-y: 110%;\n --tw-scale-z: 110%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .group-hover\\:bg-primary\\/20 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 20%, transparent);\n }\n }\n }\n }\n .group-hover\\:opacity-100 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-hover\\/menu-item\\:opacity-100 {\n &:is(:where(.group\\/menu-item):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-has-data-\\[sidebar\\=menu-action\\]\\/menu-item\\:pr-8 {\n &:is(:where(.group\\/menu-item):has(*[data-sidebar=\"menu-action\"]) *) {\n padding-right: calc(var(--spacing) * 8);\n }\n }\n .group-has-\\[\\[data-orientation\\=horizontal\\]\\]\\/field\\:text-balance {\n &:is(:where(.group\\/field):has(*:is([data-orientation=horizontal])) *) {\n text-wrap: balance;\n }\n }\n .group-has-\\[\\[data-slot\\=item-description\\]\\]\\/item\\:translate-y-0\\.5 {\n &:is(:where(.group\\/item):has(*:is([data-slot=item-description])) *) {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-has-\\[\\[data-slot\\=item-description\\]\\]\\/item\\:self-start {\n &:is(:where(.group\\/item):has(*:is([data-slot=item-description])) *) {\n align-self: flex-start;\n }\n }\n .group-has-\\[\\>input\\]\\/input-group\\:pt-2\\.5 {\n &:is(:where(.group\\/input-group):has(>input) *) {\n padding-top: calc(var(--spacing) * 2.5);\n }\n }\n .group-has-\\[\\>input\\]\\/input-group\\:pb-2\\.5 {\n &:is(:where(.group\\/input-group):has(>input) *) {\n padding-bottom: calc(var(--spacing) * 2.5);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:-mt-8 {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n margin-top: calc(var(--spacing) * -8);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:hidden {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n display: none;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:size-8\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--spacing) * 8) !important;\n height: calc(var(--spacing) * 8) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\(--sidebar-width-icon\\) {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: var(--sidebar-width-icon);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\)\\] {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)));\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\+2px\\)\\] {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)) + 2px);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:overflow-hidden {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n overflow: hidden;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:p-0\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n padding: calc(var(--spacing) * 0) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:p-2\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n padding: calc(var(--spacing) * 2) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:opacity-0 {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n opacity: 0%;\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:right-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n right: calc(var(--sidebar-width) * -1);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:left-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n left: calc(var(--sidebar-width) * -1);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:w-0 {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n width: calc(var(--spacing) * 0);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:translate-x-0 {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-data-\\[disabled\\=true\\]\\:pointer-events-none {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n pointer-events: none;\n }\n }\n .group-data-\\[disabled\\=true\\]\\:opacity-50 {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .group-data-\\[disabled\\=true\\]\\/field\\:opacity-50 {\n &:is(:where(.group\\/field)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .group-data-\\[disabled\\=true\\]\\/input-group\\:opacity-50 {\n &:is(:where(.group\\/input-group)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:relative {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n position: relative;\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:z-10 {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n z-index: 10;\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:border-ring {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n border-color: var(--ring);\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:ring-\\[3px\\] {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:ring-ring\\/50 {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .group-data-\\[side\\=left\\]\\:-right-4 {\n &:is(:where(.group)[data-side=\"left\"] *) {\n right: calc(var(--spacing) * -4);\n }\n }\n .group-data-\\[side\\=left\\]\\:border-r {\n &:is(:where(.group)[data-side=\"left\"] *) {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n }\n .group-data-\\[side\\=right\\]\\:left-0 {\n &:is(:where(.group)[data-side=\"right\"] *) {\n left: calc(var(--spacing) * 0);\n }\n }\n .group-data-\\[side\\=right\\]\\:rotate-180 {\n &:is(:where(.group)[data-side=\"right\"] *) {\n rotate: 180deg;\n }\n }\n .group-data-\\[side\\=right\\]\\:border-l {\n &:is(:where(.group)[data-side=\"right\"] *) {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .group-data-\\[state\\=open\\]\\:rotate-180 {\n &:is(:where(.group)[data-state=\"open\"] *) {\n rotate: 180deg;\n }\n }\n .group-data-\\[variant\\=floating\\]\\:rounded-lg {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-radius: var(--radius);\n }\n }\n .group-data-\\[variant\\=floating\\]\\:border {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .group-data-\\[variant\\=floating\\]\\:border-sidebar-border {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-color: var(--sidebar-border);\n }\n }\n .group-data-\\[variant\\=floating\\]\\:shadow-sm {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .group-data-\\[variant\\=outline\\]\\/field-group\\:-mb-2 {\n &:is(:where(.group\\/field-group)[data-variant=\"outline\"] *) {\n margin-bottom: calc(var(--spacing) * -2);\n }\n }\n .group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:block {\n &:is(:where(.group\\/drawer-content)[data-vaul-drawer-direction=\"bottom\"] *) {\n display: block;\n }\n }\n .group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:text-center {\n &:is(:where(.group\\/drawer-content)[data-vaul-drawer-direction=\"bottom\"] *) {\n text-align: center;\n }\n }\n .group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:text-center {\n &:is(:where(.group\\/drawer-content)[data-vaul-drawer-direction=\"top\"] *) {\n text-align: center;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:top-full {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n top: 100%;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:mt-1\\.5 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n margin-top: calc(var(--spacing) * 1.5);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:overflow-hidden {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n overflow: hidden;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:rounded-md {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:border {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:bg-popover {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n background-color: var(--popover);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:text-popover-foreground {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n color: var(--popover-foreground);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:shadow {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:duration-200 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n }\n .group-\\[\\.destructive\\]\\:border-muted\\/40 {\n &:is(:where(.group):is(.destructive) *) {\n border-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--muted) 40%, transparent);\n }\n }\n }\n .group-\\[\\.destructive\\]\\:text-red-300 {\n &:is(:where(.group):is(.destructive) *) {\n color: var(--color-red-300);\n }\n }\n .peer-hover\\/menu-button\\:text-sidebar-accent-foreground {\n &:is(:where(.peer\\/menu-button):hover ~ *) {\n @media (hover: hover) {\n color: var(--sidebar-accent-foreground);\n }\n }\n }\n .peer-disabled\\:cursor-not-allowed {\n &:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed;\n }\n }\n .peer-disabled\\:opacity-50 {\n &:is(:where(.peer):disabled ~ *) {\n opacity: 50%;\n }\n }\n .peer-data-\\[active\\=true\\]\\/menu-button\\:text-sidebar-accent-foreground {\n &:is(:where(.peer\\/menu-button)[data-active=\"true\"] ~ *) {\n color: var(--sidebar-accent-foreground);\n }\n }\n .peer-data-\\[size\\=default\\]\\/menu-button\\:top-1\\.5 {\n &:is(:where(.peer\\/menu-button)[data-size=\"default\"] ~ *) {\n top: calc(var(--spacing) * 1.5);\n }\n }\n .peer-data-\\[size\\=lg\\]\\/menu-button\\:top-2\\.5 {\n &:is(:where(.peer\\/menu-button)[data-size=\"lg\"] ~ *) {\n top: calc(var(--spacing) * 2.5);\n }\n }\n .peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1 {\n &:is(:where(.peer\\/menu-button)[data-size=\"sm\"] ~ *) {\n top: calc(var(--spacing) * 1);\n }\n }\n .selection\\:bg-primary {\n & *::selection {\n background-color: var(--primary);\n }\n &::selection {\n background-color: var(--primary);\n }\n }\n .selection\\:text-primary-foreground {\n & *::selection {\n color: var(--primary-foreground);\n }\n &::selection {\n color: var(--primary-foreground);\n }\n }\n .file\\:inline-flex {\n &::file-selector-button {\n display: inline-flex;\n }\n }\n .file\\:h-7 {\n &::file-selector-button {\n height: calc(var(--spacing) * 7);\n }\n }\n .file\\:border-0 {\n &::file-selector-button {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .file\\:bg-transparent {\n &::file-selector-button {\n background-color: transparent;\n }\n }\n .file\\:text-sm {\n &::file-selector-button {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .file\\:font-medium {\n &::file-selector-button {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .file\\:text-foreground {\n &::file-selector-button {\n color: var(--foreground);\n }\n }\n .placeholder\\:text-muted-foreground {\n &::placeholder {\n color: var(--muted-foreground);\n }\n }\n .after\\:absolute {\n &::after {\n content: var(--tw-content);\n position: absolute;\n }\n }\n .after\\:-inset-2 {\n &::after {\n content: var(--tw-content);\n inset: calc(var(--spacing) * -2);\n }\n }\n .after\\:inset-y-0 {\n &::after {\n content: var(--tw-content);\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .after\\:left-1\\/2 {\n &::after {\n content: var(--tw-content);\n left: calc(1/2 * 100%);\n }\n }\n .after\\:w-1 {\n &::after {\n content: var(--tw-content);\n width: calc(var(--spacing) * 1);\n }\n }\n .after\\:w-\\[2px\\] {\n &::after {\n content: var(--tw-content);\n width: 2px;\n }\n }\n .after\\:-translate-x-1\\/2 {\n &::after {\n content: var(--tw-content);\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:after\\:left-full {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n &::after {\n content: var(--tw-content);\n left: 100%;\n }\n }\n }\n .first\\:rounded-l-md {\n &:first-child {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n }\n .first\\:border-l {\n &:first-child {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .last\\:mt-0 {\n &:last-child {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .last\\:rounded-r-md {\n &:last-child {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n .last\\:border-0 {\n &:last-child {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .last\\:border-b-0 {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n .hover\\:scale-105 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:border-blue-400 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-blue-400);\n }\n }\n }\n .hover\\:border-primary {\n &:hover {\n @media (hover: hover) {\n border-color: var(--primary);\n }\n }\n }\n .hover\\:border-primary\\/30 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--primary) 30%, transparent);\n }\n }\n }\n }\n .hover\\:bg-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n .hover\\:bg-accent\\/5 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 5%, transparent);\n }\n }\n }\n }\n .hover\\:bg-accent\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-background {\n &:hover {\n @media (hover: hover) {\n background-color: var(--background);\n }\n }\n }\n .hover\\:bg-card {\n &:hover {\n @media (hover: hover) {\n background-color: var(--card);\n }\n }\n }\n .hover\\:bg-destructive {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n }\n }\n }\n .hover\\:bg-destructive\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n }\n }\n }\n .hover\\:bg-muted\\/30 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 30%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-primary\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-secondary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-sidebar-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--sidebar-accent);\n }\n }\n }\n .hover\\:text-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n .hover\\:text-destructive {\n &:hover {\n @media (hover: hover) {\n color: var(--destructive);\n }\n }\n }\n .hover\\:text-destructive-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--destructive-foreground);\n }\n }\n }\n .hover\\:text-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--foreground);\n }\n }\n }\n .hover\\:text-muted-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--muted-foreground);\n }\n }\n }\n .hover\\:text-primary {\n &:hover {\n @media (hover: hover) {\n color: var(--primary);\n }\n }\n }\n .hover\\:text-sidebar-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--sidebar-accent-foreground);\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .hover\\:opacity-90 {\n &:hover {\n @media (hover: hover) {\n opacity: 90%;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .hover\\:shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-accent\\)\\)\\] {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-accent)));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-lg {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-md {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:ring-4 {\n &:hover {\n @media (hover: hover) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:group-data-\\[collapsible\\=offcanvas\\]\\:bg-sidebar {\n &:hover {\n @media (hover: hover) {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n background-color: var(--sidebar);\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:border-destructive\\/30 {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n border-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--destructive) 30%, transparent);\n }\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:bg-destructive {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:text-destructive-foreground {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n color: var(--destructive-foreground);\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:text-red-50 {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-50);\n }\n }\n }\n }\n .hover\\:after\\:bg-sidebar-border {\n &:hover {\n @media (hover: hover) {\n &::after {\n content: var(--tw-content);\n background-color: var(--sidebar-border);\n }\n }\n }\n }\n .focus\\:z-10 {\n &:focus {\n z-index: 10;\n }\n }\n .focus\\:bg-accent {\n &:focus {\n background-color: var(--accent);\n }\n }\n .focus\\:text-accent-foreground {\n &:focus {\n color: var(--accent-foreground);\n }\n }\n .focus\\:opacity-100 {\n &:focus {\n opacity: 100%;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-ring {\n &:focus {\n --tw-ring-color: var(--ring);\n }\n }\n .focus\\:ring-offset-2 {\n &:focus {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-hidden {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .group-\\[\\.destructive\\]\\:focus\\:ring-destructive {\n &:is(:where(.group):is(.destructive) *) {\n &:focus {\n --tw-ring-color: var(--destructive);\n }\n }\n }\n .group-\\[\\.destructive\\]\\:focus\\:ring-red-400 {\n &:is(:where(.group):is(.destructive) *) {\n &:focus {\n --tw-ring-color: var(--color-red-400);\n }\n }\n }\n .group-\\[\\.destructive\\]\\:focus\\:ring-offset-red-600 {\n &:is(:where(.group):is(.destructive) *) {\n &:focus {\n --tw-ring-offset-color: var(--color-red-600);\n }\n }\n }\n .focus-visible\\:z-10 {\n &:focus-visible {\n z-index: 10;\n }\n }\n .focus-visible\\:border-ring {\n &:focus-visible {\n border-color: var(--ring);\n }\n }\n .focus-visible\\:ring-0 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-1 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-2 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-4 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-\\[3px\\] {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-destructive\\/20 {\n &:focus-visible {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .focus-visible\\:ring-primary {\n &:focus-visible {\n --tw-ring-color: var(--primary);\n }\n }\n .focus-visible\\:ring-ring {\n &:focus-visible {\n --tw-ring-color: var(--ring);\n }\n }\n .focus-visible\\:ring-ring\\/50 {\n &:focus-visible {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .focus-visible\\:ring-offset-1 {\n &:focus-visible {\n --tw-ring-offset-width: 1px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus-visible\\:outline-hidden {\n &:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .focus-visible\\:outline-1 {\n &:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n }\n .focus-visible\\:outline-ring {\n &:focus-visible {\n outline-color: var(--ring);\n }\n }\n .active\\:bg-sidebar-accent {\n &:active {\n background-color: var(--sidebar-accent);\n }\n }\n .active\\:text-sidebar-accent-foreground {\n &:active {\n color: var(--sidebar-accent-foreground);\n }\n }\n .disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none;\n }\n }\n .disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .in-data-\\[side\\=left\\]\\:cursor-w-resize {\n :where(*[data-side=\"left\"]) & {\n cursor: w-resize;\n }\n }\n .in-data-\\[side\\=right\\]\\:cursor-e-resize {\n :where(*[data-side=\"right\"]) & {\n cursor: e-resize;\n }\n }\n .has-focus\\:border-ring {\n &:has(*:focus) {\n border-color: var(--ring);\n }\n }\n .has-focus\\:ring-\\[3px\\] {\n &:has(*:focus) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .has-focus\\:ring-ring\\/50 {\n &:has(*:focus) {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .has-disabled\\:opacity-50 {\n &:has(*:disabled) {\n opacity: 50%;\n }\n }\n .has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\] {\n &:has(*[data-slot=\"card-action\"]) {\n grid-template-columns: 1fr auto;\n }\n }\n .has-data-\\[state\\=checked\\]\\:border-primary {\n &:has(*[data-state=\"checked\"]) {\n border-color: var(--primary);\n }\n }\n .has-data-\\[state\\=checked\\]\\:bg-primary\\/5 {\n &:has(*[data-state=\"checked\"]) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 5%, transparent);\n }\n }\n }\n .has-data-\\[variant\\=inset\\]\\:bg-sidebar {\n &:has(*[data-variant=\"inset\"]) {\n background-color: var(--sidebar);\n }\n }\n .has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:border-ring {\n &:has(*:is([data-slot=input-group-control]:focus-visible)) {\n border-color: var(--ring);\n }\n }\n .has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-\\[3px\\] {\n &:has(*:is([data-slot=input-group-control]:focus-visible)) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-ring\\/50 {\n &:has(*:is([data-slot=input-group-control]:focus-visible)) {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:border-destructive {\n &:has(*:is([data-slot][aria-invalid=true])) {\n border-color: var(--destructive);\n }\n }\n .has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/20 {\n &:has(*:is([data-slot][aria-invalid=true])) {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=block-end\\]\\]\\:h-auto {\n &:has(>[data-align=block-end]) {\n height: auto;\n }\n }\n .has-\\[\\>\\[data-align\\=block-end\\]\\]\\:flex-col {\n &:has(>[data-align=block-end]) {\n flex-direction: column;\n }\n }\n .has-\\[\\>\\[data-align\\=block-start\\]\\]\\:h-auto {\n &:has(>[data-align=block-start]) {\n height: auto;\n }\n }\n .has-\\[\\>\\[data-align\\=block-start\\]\\]\\:flex-col {\n &:has(>[data-align=block-start]) {\n flex-direction: column;\n }\n }\n .has-\\[\\>\\[data-slot\\=button-group\\]\\]\\:gap-2 {\n &:has(>[data-slot=button-group]) {\n gap: calc(var(--spacing) * 2);\n }\n }\n .has-\\[\\>\\[data-slot\\=checkbox-group\\]\\]\\:gap-3 {\n &:has(>[data-slot=checkbox-group]) {\n gap: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:items-start {\n &:has(>[data-slot=field-content]) {\n align-items: flex-start;\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:w-full {\n &:has(>[data-slot=field]) {\n width: 100%;\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:flex-col {\n &:has(>[data-slot=field]) {\n flex-direction: column;\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:rounded-md {\n &:has(>[data-slot=field]) {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:border {\n &:has(>[data-slot=field]) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .has-\\[\\>\\[data-slot\\=radio-group\\]\\]\\:gap-3 {\n &:has(>[data-slot=radio-group]) {\n gap: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>button\\]\\:mr-\\[-0\\.4rem\\] {\n &:has(>button) {\n margin-right: -0.4rem;\n }\n }\n .has-\\[\\>button\\]\\:ml-\\[-0\\.45rem\\] {\n &:has(>button) {\n margin-left: -0.45rem;\n }\n }\n .has-\\[\\>kbd\\]\\:mr-\\[-0\\.35rem\\] {\n &:has(>kbd) {\n margin-right: -0.35rem;\n }\n }\n .has-\\[\\>kbd\\]\\:ml-\\[-0\\.35rem\\] {\n &:has(>kbd) {\n margin-left: -0.35rem;\n }\n }\n .has-\\[\\>svg\\]\\:grid-cols-\\[calc\\(var\\(--spacing\\)\\*4\\)_1fr\\] {\n &:has(>svg) {\n grid-template-columns: calc(var(--spacing) * 4) 1fr;\n }\n }\n .has-\\[\\>svg\\]\\:gap-x-3 {\n &:has(>svg) {\n column-gap: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>svg\\]\\:p-0 {\n &:has(>svg) {\n padding: calc(var(--spacing) * 0);\n }\n }\n .has-\\[\\>svg\\]\\:px-2 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .has-\\[\\>svg\\]\\:px-2\\.5 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n }\n .has-\\[\\>svg\\]\\:px-3 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>svg\\]\\:px-4 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 4);\n }\n }\n .has-\\[\\>textarea\\]\\:h-auto {\n &:has(>textarea) {\n height: auto;\n }\n }\n .aria-disabled\\:pointer-events-none {\n &[aria-disabled=\"true\"] {\n pointer-events: none;\n }\n }\n .aria-disabled\\:opacity-50 {\n &[aria-disabled=\"true\"] {\n opacity: 50%;\n }\n }\n .aria-invalid\\:border-destructive {\n &[aria-invalid=\"true\"] {\n border-color: var(--destructive);\n }\n }\n .aria-invalid\\:ring-destructive\\/20 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .aria-selected\\:text-muted-foreground {\n &[aria-selected=\"true\"] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[active\\=true\\]\\:z-10 {\n &[data-active=\"true\"] {\n z-index: 10;\n }\n }\n .data-\\[active\\=true\\]\\:border-ring {\n &[data-active=\"true\"] {\n border-color: var(--ring);\n }\n }\n .data-\\[active\\=true\\]\\:bg-accent\\/50 {\n &[data-active=\"true\"] {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:bg-sidebar-accent {\n &[data-active=\"true\"] {\n background-color: var(--sidebar-accent);\n }\n }\n .data-\\[active\\=true\\]\\:font-medium {\n &[data-active=\"true\"] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .data-\\[active\\=true\\]\\:font-semibold {\n &[data-active=\"true\"] {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n }\n .data-\\[active\\=true\\]\\:text-accent-foreground {\n &[data-active=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[active\\=true\\]\\:text-foreground {\n &[data-active=\"true\"] {\n color: var(--foreground);\n }\n }\n .data-\\[active\\=true\\]\\:text-sidebar-accent-foreground {\n &[data-active=\"true\"] {\n color: var(--sidebar-accent-foreground);\n }\n }\n .data-\\[active\\=true\\]\\:ring-\\[3px\\] {\n &[data-active=\"true\"] {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[active\\=true\\]\\:ring-ring\\/50 {\n &[data-active=\"true\"] {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:hover\\:bg-accent {\n &[data-active=\"true\"] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n }\n .data-\\[active\\=true\\]\\:focus\\:bg-accent {\n &[data-active=\"true\"] {\n &:focus {\n background-color: var(--accent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:aria-invalid\\:border-destructive {\n &[data-active=\"true\"] {\n &[aria-invalid=\"true\"] {\n border-color: var(--destructive);\n }\n }\n }\n .data-\\[active\\=true\\]\\:aria-invalid\\:ring-destructive\\/20 {\n &[data-active=\"true\"] {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n }\n .data-\\[disabled\\]\\:pointer-events-none {\n &[data-disabled] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\]\\:opacity-50 {\n &[data-disabled] {\n opacity: 50%;\n }\n }\n .data-\\[disabled\\=true\\]\\:pointer-events-none {\n &[data-disabled=\"true\"] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\=true\\]\\:opacity-50 {\n &[data-disabled=\"true\"] {\n opacity: 50%;\n }\n }\n .data-\\[error\\=true\\]\\:text-destructive {\n &[data-error=\"true\"] {\n color: var(--destructive);\n }\n }\n .data-\\[inset\\]\\:pl-8 {\n &[data-inset] {\n padding-left: calc(var(--spacing) * 8);\n }\n }\n .data-\\[invalid\\=true\\]\\:text-destructive {\n &[data-invalid=\"true\"] {\n color: var(--destructive);\n }\n }\n .data-\\[motion\\=from-end\\]\\:slide-in-from-right-52 {\n &[data-motion=\"from-end\"] {\n --tw-enter-translate-x: calc(52*var(--spacing));\n }\n }\n .data-\\[motion\\=from-start\\]\\:slide-in-from-left-52 {\n &[data-motion=\"from-start\"] {\n --tw-enter-translate-x: calc(52*var(--spacing)*-1);\n }\n }\n .data-\\[motion\\=to-end\\]\\:slide-out-to-right-52 {\n &[data-motion=\"to-end\"] {\n --tw-exit-translate-x: calc(52*var(--spacing));\n }\n }\n .data-\\[motion\\=to-start\\]\\:slide-out-to-left-52 {\n &[data-motion=\"to-start\"] {\n --tw-exit-translate-x: calc(52*var(--spacing)*-1);\n }\n }\n .data-\\[motion\\^\\=from-\\]\\:animate-in {\n &[data-motion^=\"from-\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[motion\\^\\=from-\\]\\:fade-in {\n &[data-motion^=\"from-\"] {\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[motion\\^\\=to-\\]\\:animate-out {\n &[data-motion^=\"to-\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[motion\\^\\=to-\\]\\:fade-out {\n &[data-motion^=\"to-\"] {\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-1\\.5 {\n &[data-orientation=\"horizontal\"] {\n height: calc(var(--spacing) * 1.5);\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-full {\n &[data-orientation=\"horizontal\"] {\n height: 100%;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-px {\n &[data-orientation=\"horizontal\"] {\n height: 1px;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:w-full {\n &[data-orientation=\"horizontal\"] {\n width: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:h-auto {\n &[data-orientation=\"vertical\"] {\n height: auto;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:h-full {\n &[data-orientation=\"vertical\"] {\n height: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:min-h-44 {\n &[data-orientation=\"vertical\"] {\n min-height: calc(var(--spacing) * 44);\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-1\\.5 {\n &[data-orientation=\"vertical\"] {\n width: calc(var(--spacing) * 1.5);\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-auto {\n &[data-orientation=\"vertical\"] {\n width: auto;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-full {\n &[data-orientation=\"vertical\"] {\n width: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-px {\n &[data-orientation=\"vertical\"] {\n width: 1px;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:flex-col {\n &[data-orientation=\"vertical\"] {\n flex-direction: column;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:h-px {\n &[data-panel-group-direction=\"vertical\"] {\n height: 1px;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:w-full {\n &[data-panel-group-direction=\"vertical\"] {\n width: 100%;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:flex-col {\n &[data-panel-group-direction=\"vertical\"] {\n flex-direction: column;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:left-0 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n left: calc(var(--spacing) * 0);\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:h-1 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n height: calc(var(--spacing) * 1);\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:w-full {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n width: 100%;\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:translate-x-0 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:-translate-y-1\\/2 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .data-\\[placeholder\\]\\:text-muted-foreground {\n &[data-placeholder] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[range-end\\=true\\]\\:rounded-md {\n &[data-range-end=\"true\"] {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-end\\=true\\]\\:rounded-r-md {\n &[data-range-end=\"true\"] {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-end\\=true\\]\\:bg-primary {\n &[data-range-end=\"true\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[range-end\\=true\\]\\:text-primary-foreground {\n &[data-range-end=\"true\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[range-middle\\=true\\]\\:rounded-none {\n &[data-range-middle=\"true\"] {\n border-radius: 0;\n }\n }\n .data-\\[range-middle\\=true\\]\\:bg-accent {\n &[data-range-middle=\"true\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[range-middle\\=true\\]\\:text-accent-foreground {\n &[data-range-middle=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[range-start\\=true\\]\\:rounded-md {\n &[data-range-start=\"true\"] {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-start\\=true\\]\\:rounded-l-md {\n &[data-range-start=\"true\"] {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-start\\=true\\]\\:bg-primary {\n &[data-range-start=\"true\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[range-start\\=true\\]\\:text-primary-foreground {\n &[data-range-start=\"true\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[selected-single\\=true\\]\\:bg-primary {\n &[data-selected-single=\"true\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[selected-single\\=true\\]\\:text-primary-foreground {\n &[data-selected-single=\"true\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[selected\\=true\\]\\:rounded-none {\n &[data-selected=\"true\"] {\n border-radius: 0;\n }\n }\n .data-\\[selected\\=true\\]\\:bg-accent {\n &[data-selected=\"true\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[selected\\=true\\]\\:text-accent-foreground {\n &[data-selected=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[side\\=bottom\\]\\:translate-y-1 {\n &[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=bottom\\]\\:slide-in-from-top-2 {\n &[data-side=\"bottom\"] {\n --tw-enter-translate-y: calc(2*var(--spacing)*-1);\n }\n }\n .data-\\[side\\=left\\]\\:-translate-x-1 {\n &[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=left\\]\\:slide-in-from-right-2 {\n &[data-side=\"left\"] {\n --tw-enter-translate-x: calc(2*var(--spacing));\n }\n }\n .data-\\[side\\=right\\]\\:translate-x-1 {\n &[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=right\\]\\:slide-in-from-left-2 {\n &[data-side=\"right\"] {\n --tw-enter-translate-x: calc(2*var(--spacing)*-1);\n }\n }\n .data-\\[side\\=top\\]\\:-translate-y-1 {\n &[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=top\\]\\:slide-in-from-bottom-2 {\n &[data-side=\"top\"] {\n --tw-enter-translate-y: calc(2*var(--spacing));\n }\n }\n .data-\\[size\\=default\\]\\:h-9 {\n &[data-size=\"default\"] {\n height: calc(var(--spacing) * 9);\n }\n }\n .data-\\[size\\=sm\\]\\:h-8 {\n &[data-size=\"sm\"] {\n height: calc(var(--spacing) * 8);\n }\n }\n .\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90 {\n :is(& > *) {\n &[data-slot=\"alert-description\"] {\n color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n .data-\\[slot\\=checkbox-group\\]\\:gap-3 {\n &[data-slot=\"checkbox-group\"] {\n gap: calc(var(--spacing) * 3);\n }\n }\n .\\*\\*\\:data-\\[slot\\=command-input-wrapper\\]\\:h-12 {\n :is(& *) {\n &[data-slot=\"command-input-wrapper\"] {\n height: calc(var(--spacing) * 12);\n }\n }\n }\n .\\*\\*\\:data-\\[slot\\=navigation-menu-link\\]\\:focus\\:ring-0 {\n :is(& *) {\n &[data-slot=\"navigation-menu-link\"] {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n }\n .\\*\\*\\:data-\\[slot\\=navigation-menu-link\\]\\:focus\\:outline-none {\n :is(& *) {\n &[data-slot=\"navigation-menu-link\"] {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:flex {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n display: flex;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:items-center {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n align-items: center;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:gap-2 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n gap: calc(var(--spacing) * 2);\n }\n }\n }\n .data-\\[state\\=active\\]\\:bg-background {\n &[data-state=\"active\"] {\n background-color: var(--background);\n }\n }\n .data-\\[state\\=active\\]\\:shadow-sm {\n &[data-state=\"active\"] {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[state\\=checked\\]\\:translate-x-\\[calc\\(100\\%-2px\\)\\] {\n &[data-state=\"checked\"] {\n --tw-translate-x: calc(100% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=checked\\]\\:border-primary {\n &[data-state=\"checked\"] {\n border-color: var(--primary);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[state\\=checked\\]\\:text-primary-foreground {\n &[data-state=\"checked\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[state\\=closed\\]\\:animate-accordion-up {\n &[data-state=\"closed\"] {\n animation: accordion-up 0.2s ease-out;\n }\n }\n .data-\\[state\\=closed\\]\\:animate-out {\n &[data-state=\"closed\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=closed\\]\\:duration-300 {\n &[data-state=\"closed\"] {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-0 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: calc(0/100);\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-80 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: calc(80/100);\n --tw-exit-opacity: .8;\n }\n }\n .data-\\[state\\=closed\\]\\:zoom-out-95 {\n &[data-state=\"closed\"] {\n --tw-exit-scale: calc(95*1%);\n --tw-exit-scale: .95;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-bottom {\n &[data-state=\"closed\"] {\n --tw-exit-translate-y: 100%;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-left {\n &[data-state=\"closed\"] {\n --tw-exit-translate-x: -100%;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-right {\n &[data-state=\"closed\"] {\n --tw-exit-translate-x: 100%;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-right-full {\n &[data-state=\"closed\"] {\n --tw-exit-translate-x: calc(1*100%);\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-top {\n &[data-state=\"closed\"] {\n --tw-exit-translate-y: -100%;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=closed\\]\\:animate-out {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"closed\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=closed\\]\\:fade-out-0 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: calc(0/100);\n --tw-exit-opacity: 0;\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=closed\\]\\:zoom-out-95 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"closed\"] {\n --tw-exit-scale: calc(95*1%);\n --tw-exit-scale: .95;\n }\n }\n }\n .data-\\[state\\=hidden\\]\\:animate-out {\n &[data-state=\"hidden\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=hidden\\]\\:fade-out {\n &[data-state=\"hidden\"] {\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[state\\=on\\]\\:bg-accent {\n &[data-state=\"on\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[state\\=on\\]\\:text-accent-foreground {\n &[data-state=\"on\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:animate-accordion-down {\n &[data-state=\"open\"] {\n animation: accordion-down 0.2s ease-out;\n }\n }\n .data-\\[state\\=open\\]\\:animate-in {\n &[data-state=\"open\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent {\n &[data-state=\"open\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent\\/50 {\n &[data-state=\"open\"] {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n .data-\\[state\\=open\\]\\:bg-secondary {\n &[data-state=\"open\"] {\n background-color: var(--secondary);\n }\n }\n .data-\\[state\\=open\\]\\:text-accent-foreground {\n &[data-state=\"open\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:text-muted-foreground {\n &[data-state=\"open\"] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:opacity-100 {\n &[data-state=\"open\"] {\n opacity: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:duration-500 {\n &[data-state=\"open\"] {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n }\n .data-\\[state\\=open\\]\\:fade-in-0 {\n &[data-state=\"open\"] {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-90 {\n &[data-state=\"open\"] {\n --tw-enter-scale: calc(90*1%);\n --tw-enter-scale: .9;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-95 {\n &[data-state=\"open\"] {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-bottom {\n &[data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-left {\n &[data-state=\"open\"] {\n --tw-enter-translate-x: -100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-right {\n &[data-state=\"open\"] {\n --tw-enter-translate-x: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-top {\n &[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-top-full {\n &[data-state=\"open\"] {\n --tw-enter-translate-y: calc(1*-100%);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=open\\]\\:animate-in {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"open\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=open\\]\\:fade-in-0 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"open\"] {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=open\\]\\:zoom-in-95 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"open\"] {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n }\n }\n .data-\\[state\\=open\\]\\:hover\\:bg-accent {\n &[data-state=\"open\"] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n }\n .data-\\[state\\=open\\]\\:hover\\:bg-sidebar-accent {\n &[data-state=\"open\"] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--sidebar-accent);\n }\n }\n }\n }\n .data-\\[state\\=open\\]\\:hover\\:text-sidebar-accent-foreground {\n &[data-state=\"open\"] {\n &:hover {\n @media (hover: hover) {\n color: var(--sidebar-accent-foreground);\n }\n }\n }\n }\n .data-\\[state\\=open\\]\\:focus\\:bg-accent {\n &[data-state=\"open\"] {\n &:focus {\n background-color: var(--accent);\n }\n }\n }\n .data-\\[state\\=selected\\]\\:bg-muted {\n &[data-state=\"selected\"] {\n background-color: var(--muted);\n }\n }\n .data-\\[state\\=unchecked\\]\\:translate-x-0 {\n &[data-state=\"unchecked\"] {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=unchecked\\]\\:bg-input {\n &[data-state=\"unchecked\"] {\n background-color: var(--input);\n }\n }\n .data-\\[state\\=visible\\]\\:animate-in {\n &[data-state=\"visible\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=visible\\]\\:fade-in {\n &[data-state=\"visible\"] {\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[swipe\\=cancel\\]\\:translate-x-0 {\n &[data-swipe=\"cancel\"] {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\] {\n &[data-swipe=\"end\"] {\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[swipe\\=end\\]\\:animate-out {\n &[data-swipe=\"end\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\] {\n &[data-swipe=\"move\"] {\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[swipe\\=move\\]\\:transition-none {\n &[data-swipe=\"move\"] {\n transition-property: none;\n }\n }\n .data-\\[variant\\=destructive\\]\\:text-destructive {\n &[data-variant=\"destructive\"] {\n color: var(--destructive);\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10 {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 10%, transparent);\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:text-destructive {\n &[data-variant=\"destructive\"] {\n &:focus {\n color: var(--destructive);\n }\n }\n }\n .data-\\[variant\\=label\\]\\:text-sm {\n &[data-variant=\"label\"] {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .data-\\[variant\\=legend\\]\\:text-base {\n &[data-variant=\"legend\"] {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n }\n .data-\\[variant\\=outline\\]\\:border-l-0 {\n &[data-variant=\"outline\"] {\n border-left-style: var(--tw-border-style);\n border-left-width: 0px;\n }\n }\n .data-\\[variant\\=outline\\]\\:shadow-xs {\n &[data-variant=\"outline\"] {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[variant\\=outline\\]\\:first\\:border-l {\n &[data-variant=\"outline\"] {\n &:first-child {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:inset-x-0 {\n &[data-vaul-drawer-direction=\"bottom\"] {\n inset-inline: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:bottom-0 {\n &[data-vaul-drawer-direction=\"bottom\"] {\n bottom: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:mt-24 {\n &[data-vaul-drawer-direction=\"bottom\"] {\n margin-top: calc(var(--spacing) * 24);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:max-h-\\[80vh\\] {\n &[data-vaul-drawer-direction=\"bottom\"] {\n max-height: 80vh;\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:rounded-t-lg {\n &[data-vaul-drawer-direction=\"bottom\"] {\n border-top-left-radius: var(--radius);\n border-top-right-radius: var(--radius);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:border-t {\n &[data-vaul-drawer-direction=\"bottom\"] {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:inset-y-0 {\n &[data-vaul-drawer-direction=\"left\"] {\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:left-0 {\n &[data-vaul-drawer-direction=\"left\"] {\n left: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:w-3\\/4 {\n &[data-vaul-drawer-direction=\"left\"] {\n width: calc(3/4 * 100%);\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:border-r {\n &[data-vaul-drawer-direction=\"left\"] {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:inset-y-0 {\n &[data-vaul-drawer-direction=\"right\"] {\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:right-0 {\n &[data-vaul-drawer-direction=\"right\"] {\n right: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:w-3\\/4 {\n &[data-vaul-drawer-direction=\"right\"] {\n width: calc(3/4 * 100%);\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:border-l {\n &[data-vaul-drawer-direction=\"right\"] {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:inset-x-0 {\n &[data-vaul-drawer-direction=\"top\"] {\n inset-inline: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:top-0 {\n &[data-vaul-drawer-direction=\"top\"] {\n top: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:mb-24 {\n &[data-vaul-drawer-direction=\"top\"] {\n margin-bottom: calc(var(--spacing) * 24);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:max-h-\\[80vh\\] {\n &[data-vaul-drawer-direction=\"top\"] {\n max-height: 80vh;\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:rounded-b-lg {\n &[data-vaul-drawer-direction=\"top\"] {\n border-bottom-right-radius: var(--radius);\n border-bottom-left-radius: var(--radius);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:border-b {\n &[data-vaul-drawer-direction=\"top\"] {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .nth-last-2\\:-mt-1 {\n &:nth-last-child(2) {\n margin-top: calc(var(--spacing) * -1);\n }\n }\n .supports-\\[backdrop-filter\\]\\:bg-background\\/60 {\n @supports (backdrop-filter: var(--tw)) {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 60%, transparent);\n }\n }\n }\n .sm\\:top-auto {\n @media (width >= 40rem) {\n top: auto;\n }\n }\n .sm\\:right-0 {\n @media (width >= 40rem) {\n right: calc(var(--spacing) * 0);\n }\n }\n .sm\\:bottom-0 {\n @media (width >= 40rem) {\n bottom: calc(var(--spacing) * 0);\n }\n }\n .sm\\:col-span-2 {\n @media (width >= 40rem) {\n grid-column: span 2 / span 2;\n }\n }\n .sm\\:block {\n @media (width >= 40rem) {\n display: block;\n }\n }\n .sm\\:flex {\n @media (width >= 40rem) {\n display: flex;\n }\n }\n .sm\\:max-w-\\[600px\\] {\n @media (width >= 40rem) {\n max-width: 600px;\n }\n }\n .sm\\:max-w-lg {\n @media (width >= 40rem) {\n max-width: var(--container-lg);\n }\n }\n .sm\\:max-w-sm {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n .sm\\:grid-cols-2 {\n @media (width >= 40rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .sm\\:flex-col {\n @media (width >= 40rem) {\n flex-direction: column;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:justify-end {\n @media (width >= 40rem) {\n justify-content: flex-end;\n }\n }\n .sm\\:gap-2\\.5 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:pr-2\\.5 {\n @media (width >= 40rem) {\n padding-right: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:pl-2\\.5 {\n @media (width >= 40rem) {\n padding-left: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:text-left {\n @media (width >= 40rem) {\n text-align: left;\n }\n }\n .data-\\[state\\=open\\]\\:sm\\:slide-in-from-bottom-full {\n &[data-state=\"open\"] {\n @media (width >= 40rem) {\n --tw-enter-translate-y: calc(1*100%);\n }\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:sm\\:max-w-sm {\n &[data-vaul-drawer-direction=\"left\"] {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:sm\\:max-w-sm {\n &[data-vaul-drawer-direction=\"right\"] {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n }\n .md\\:absolute {\n @media (width >= 48rem) {\n position: absolute;\n }\n }\n .md\\:-left-24 {\n @media (width >= 48rem) {\n left: calc(var(--spacing) * -24);\n }\n }\n .md\\:col-span-2 {\n @media (width >= 48rem) {\n grid-column: span 2 / span 2;\n }\n }\n .md\\:ml-12 {\n @media (width >= 48rem) {\n margin-left: calc(var(--spacing) * 12);\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .md\\:w-20 {\n @media (width >= 48rem) {\n width: calc(var(--spacing) * 20);\n }\n }\n .md\\:w-80 {\n @media (width >= 48rem) {\n width: calc(var(--spacing) * 80);\n }\n }\n .md\\:w-\\[var\\(--radix-navigation-menu-viewport-width\\)\\] {\n @media (width >= 48rem) {\n width: var(--radix-navigation-menu-viewport-width);\n }\n }\n .md\\:w-auto {\n @media (width >= 48rem) {\n width: auto;\n }\n }\n .md\\:max-w-\\[420px\\] {\n @media (width >= 48rem) {\n max-width: 420px;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-3 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .md\\:flex-row {\n @media (width >= 48rem) {\n flex-direction: row;\n }\n }\n .md\\:items-center {\n @media (width >= 48rem) {\n align-items: center;\n }\n }\n .md\\:gap-1\\.5 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 1.5);\n }\n }\n .md\\:p-12 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 12);\n }\n }\n .md\\:px-6 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 6);\n }\n }\n .md\\:pl-12 {\n @media (width >= 48rem) {\n padding-left: calc(var(--spacing) * 12);\n }\n }\n .md\\:text-left {\n @media (width >= 48rem) {\n text-align: left;\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:opacity-0 {\n @media (width >= 48rem) {\n opacity: 0%;\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:m-2 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n margin: calc(var(--spacing) * 2);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:ml-0 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n margin-left: calc(var(--spacing) * 0);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:rounded-xl {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n border-radius: calc(var(--radius) + 4px);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:shadow-sm {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:peer-data-\\[state\\=collapsed\\]\\:ml-2 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n &:is(:where(.peer)[data-state=\"collapsed\"] ~ *) {\n margin-left: calc(var(--spacing) * 2);\n }\n }\n }\n }\n .md\\:after\\:hidden {\n @media (width >= 48rem) {\n &::after {\n content: var(--tw-content);\n display: none;\n }\n }\n }\n .lg\\:col-span-2 {\n @media (width >= 64rem) {\n grid-column: span 2 / span 2;\n }\n }\n .lg\\:grid-cols-2 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .lg\\:grid-cols-3 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .lg\\:grid-cols-4 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .xl\\:grid-cols-4 {\n @media (width >= 80rem) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .\\@md\\/field-group\\:flex-row {\n @container field-group (width >= 28rem) {\n flex-direction: row;\n }\n }\n .\\@md\\/field-group\\:items-center {\n @container field-group (width >= 28rem) {\n align-items: center;\n }\n }\n .\\@md\\/field-group\\:has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:items-start {\n @container field-group (width >= 28rem) {\n &:has(>[data-slot=field-content]) {\n align-items: flex-start;\n }\n }\n }\n .dark\\:border-blue-800 {\n &:is(.dark *) {\n border-color: var(--color-blue-800);\n }\n }\n .dark\\:border-input {\n &:is(.dark *) {\n border-color: var(--input);\n }\n }\n .dark\\:bg-blue-900\\/20 {\n &:is(.dark *) {\n background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-900) 20%, transparent);\n }\n }\n }\n .dark\\:bg-blue-950 {\n &:is(.dark *) {\n background-color: var(--color-blue-950);\n }\n }\n .dark\\:bg-destructive\\/60 {\n &:is(.dark *) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 60%, transparent);\n }\n }\n }\n .dark\\:bg-input\\/30 {\n &:is(.dark *) {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 30%, transparent);\n }\n }\n }\n .dark\\:bg-transparent {\n &:is(.dark *) {\n background-color: transparent;\n }\n }\n .dark\\:bg-yellow-900\\/20 {\n &:is(.dark *) {\n background-color: color-mix(in srgb, oklch(42.1% 0.095 57.708) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-yellow-900) 20%, transparent);\n }\n }\n }\n .dark\\:bg-yellow-950 {\n &:is(.dark *) {\n background-color: var(--color-yellow-950);\n }\n }\n .dark\\:text-blue-200 {\n &:is(.dark *) {\n color: var(--color-blue-200);\n }\n }\n .dark\\:text-blue-400 {\n &:is(.dark *) {\n color: var(--color-blue-400);\n }\n }\n .dark\\:text-muted-foreground {\n &:is(.dark *) {\n color: var(--muted-foreground);\n }\n }\n .dark\\:text-pink-400 {\n &:is(.dark *) {\n color: var(--color-pink-400);\n }\n }\n .dark\\:text-yellow-200 {\n &:is(.dark *) {\n color: var(--color-yellow-200);\n }\n }\n .dark\\:ring-blue-800 {\n &:is(.dark *) {\n --tw-ring-color: var(--color-blue-800);\n }\n }\n .dark\\:ring-yellow-800 {\n &:is(.dark *) {\n --tw-ring-color: var(--color-yellow-800);\n }\n }\n .dark\\:hover\\:bg-accent\\/50 {\n &:is(.dark *) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n }\n }\n .dark\\:hover\\:bg-input\\/50 {\n &:is(.dark *) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 50%, transparent);\n }\n }\n }\n }\n }\n .dark\\:hover\\:text-accent-foreground {\n &:is(.dark *) {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n }\n .dark\\:focus-visible\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &:focus-visible {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:has-data-\\[state\\=checked\\]\\:bg-primary\\/10 {\n &:is(.dark *) {\n &:has(*[data-state=\"checked\"]) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 10%, transparent);\n }\n }\n }\n }\n .dark\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &:has(*:is([data-slot][aria-invalid=true])) {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:aria-invalid\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[active\\=true\\]\\:aria-invalid\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &[data-active=\"true\"] {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n }\n .dark\\:data-\\[state\\=active\\]\\:border-input {\n &:is(.dark *) {\n &[data-state=\"active\"] {\n border-color: var(--input);\n }\n }\n }\n .dark\\:data-\\[state\\=active\\]\\:bg-input\\/30 {\n &:is(.dark *) {\n &[data-state=\"active\"] {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 30%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[state\\=active\\]\\:text-foreground {\n &:is(.dark *) {\n &[data-state=\"active\"] {\n color: var(--foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-primary {\n &:is(.dark *) {\n &[data-state=\"checked\"] {\n background-color: var(--primary);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-primary-foreground {\n &:is(.dark *) {\n &[data-state=\"checked\"] {\n background-color: var(--primary-foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=unchecked\\]\\:bg-foreground {\n &:is(.dark *) {\n &[data-state=\"unchecked\"] {\n background-color: var(--foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=unchecked\\]\\:bg-input\\/80 {\n &:is(.dark *) {\n &[data-state=\"unchecked\"] {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 80%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20 {\n &:is(.dark *) {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n }\n }\n .\\[\\&_\\.recharts-cartesian-axis-tick_text\\]\\:fill-muted-foreground {\n & .recharts-cartesian-axis-tick text {\n fill: var(--muted-foreground);\n }\n }\n .\\[\\&_\\.recharts-cartesian-grid_line\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border\\/50 {\n & .recharts-cartesian-grid line[stroke='#ccc'] {\n stroke: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n stroke: color-mix(in oklab, var(--border) 50%, transparent);\n }\n }\n }\n .\\[\\&_\\.recharts-curve\\.recharts-tooltip-cursor\\]\\:stroke-border {\n & .recharts-curve.recharts-tooltip-cursor {\n stroke: var(--border);\n }\n }\n .\\[\\&_\\.recharts-dot\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent {\n & .recharts-dot[stroke='#fff'] {\n stroke: transparent;\n }\n }\n .\\[\\&_\\.recharts-layer\\]\\:outline-hidden {\n & .recharts-layer {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .\\[\\&_\\.recharts-polar-grid_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border {\n & .recharts-polar-grid [stroke='#ccc'] {\n stroke: var(--border);\n }\n }\n .\\[\\&_\\.recharts-radial-bar-background-sector\\]\\:fill-muted {\n & .recharts-radial-bar-background-sector {\n fill: var(--muted);\n }\n }\n .\\[\\&_\\.recharts-rectangle\\.recharts-tooltip-cursor\\]\\:fill-muted {\n & .recharts-rectangle.recharts-tooltip-cursor {\n fill: var(--muted);\n }\n }\n .\\[\\&_\\.recharts-reference-line_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border {\n & .recharts-reference-line [stroke='#ccc'] {\n stroke: var(--border);\n }\n }\n .\\[\\&_\\.recharts-sector\\]\\:outline-hidden {\n & .recharts-sector {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .\\[\\&_\\.recharts-sector\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent {\n & .recharts-sector[stroke='#fff'] {\n stroke: transparent;\n }\n }\n .\\[\\&_\\.recharts-surface\\]\\:outline-hidden {\n & .recharts-surface {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 {\n & [cmdk-group-heading] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 {\n & [cmdk-group-heading] {\n padding-block: calc(var(--spacing) * 1.5);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs {\n & [cmdk-group-heading] {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium {\n & [cmdk-group-heading] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground {\n & [cmdk-group-heading] {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\]\\:px-2 {\n & [cmdk-group] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:pt-0 {\n & [cmdk-group]:not([hidden]) ~[cmdk-group] {\n padding-top: calc(var(--spacing) * 0);\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:h-5 {\n & [cmdk-input-wrapper] svg {\n height: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:w-5 {\n & [cmdk-input-wrapper] svg {\n width: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-input\\]\\]\\:h-12 {\n & [cmdk-input] {\n height: calc(var(--spacing) * 12);\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:px-2 {\n & [cmdk-item] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:py-3 {\n & [cmdk-item] {\n padding-block: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:h-5 {\n & [cmdk-item] svg {\n height: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:w-5 {\n & [cmdk-item] svg {\n width: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_img\\]\\:size-full {\n & img {\n width: 100%;\n height: 100%;\n }\n }\n .\\[\\&_img\\]\\:object-cover {\n & img {\n object-fit: cover;\n }\n }\n .\\[\\&_p\\]\\:leading-relaxed {\n & p {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n }\n .\\[\\&_svg\\]\\:pointer-events-none {\n & svg {\n pointer-events: none;\n }\n }\n .\\[\\&_svg\\]\\:shrink-0 {\n & svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-3 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-6 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'text-\\'\\]\\)\\]\\:text-muted-foreground {\n & svg:not([class*='text-']) {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&_tr\\]\\:border-b {\n & tr {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .\\[\\&_tr\\:last-child\\]\\:border-0 {\n & tr:last-child {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .\\[\\&\\+\\[data-slot\\=item-content\\]\\]\\:flex-none {\n &+[data-slot=item-content] {\n flex: none;\n }\n }\n .\\[\\&\\:first-child\\[data-selected\\=true\\]_button\\]\\:rounded-l-md {\n &:first-child[data-selected=true] button {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n }\n .\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0 {\n &:has([role=checkbox]) {\n padding-right: calc(var(--spacing) * 0);\n }\n }\n .\\[\\.border-b\\]\\:pb-3 {\n &:is(.border-b) {\n padding-bottom: calc(var(--spacing) * 3);\n }\n }\n .\\[\\.border-b\\]\\:pb-6 {\n &:is(.border-b) {\n padding-bottom: calc(var(--spacing) * 6);\n }\n }\n .\\[\\.border-t\\]\\:pt-3 {\n &:is(.border-t) {\n padding-top: calc(var(--spacing) * 3);\n }\n }\n .\\[\\.border-t\\]\\:pt-6 {\n &:is(.border-t) {\n padding-top: calc(var(--spacing) * 6);\n }\n }\n .rtl\\:\\*\\*\\:\\[\\.rdp-button\\\\_next\\>svg\\]\\:rotate-180 {\n &:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n :is(& *) {\n &:is(.rdp-button_next>svg) {\n rotate: 180deg;\n }\n }\n }\n }\n .rtl\\:\\*\\*\\:\\[\\.rdp-button\\\\_previous\\>svg\\]\\:rotate-180 {\n &:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n :is(& *) {\n &:is(.rdp-button_previous>svg) {\n rotate: 180deg;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:flex {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n display: flex;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:items-center {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n align-items: center;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:gap-2 {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n gap: calc(var(--spacing) * 2);\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive {\n &[data-variant=\"destructive\"] {\n :is(& > *) {\n &:is(svg) {\n color: var(--destructive) !important;\n }\n }\n }\n }\n .\\[\\&\\:last-child\\[data-selected\\=true\\]_button\\]\\:rounded-r-md {\n &:last-child[data-selected=true] button {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n .\\[\\&\\>\\*\\]\\:w-full {\n &>* {\n width: 100%;\n }\n }\n .\\[\\&\\>\\*\\]\\:focus-visible\\:relative {\n &>* {\n &:focus-visible {\n position: relative;\n }\n }\n }\n .\\[\\&\\>\\*\\]\\:focus-visible\\:z-10 {\n &>* {\n &:focus-visible {\n z-index: 10;\n }\n }\n }\n .\\[\\&\\>\\*\\]\\:data-\\[slot\\=field\\]\\:p-4 {\n &>* {\n &[data-slot=\"field\"] {\n padding: calc(var(--spacing) * 4);\n }\n }\n }\n .\\@md\\/field-group\\:\\[\\&\\>\\*\\]\\:w-auto {\n @container field-group (width >= 28rem) {\n &>* {\n width: auto;\n }\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-t-none {\n &>*:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-l-none {\n &>*:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-t-0 {\n &>*:not(:first-child) {\n border-top-style: var(--tw-border-style);\n border-top-width: 0px;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-l-0 {\n &>*:not(:first-child) {\n border-left-style: var(--tw-border-style);\n border-left-width: 0px;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-r-none {\n &>*:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-b-none {\n &>*:not(:last-child) {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n .\\[\\&\\>\\.sr-only\\]\\:w-auto {\n &>.sr-only {\n width: auto;\n }\n }\n .\\[\\&\\>\\[data-slot\\=field-group\\]\\]\\:gap-4 {\n &>[data-slot=field-group] {\n gap: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>\\[data-slot\\=field-label\\]\\]\\:flex-auto {\n &>[data-slot=field-label] {\n flex: auto;\n }\n }\n .\\@md\\/field-group\\:\\[\\&\\>\\[data-slot\\=field-label\\]\\]\\:flex-auto {\n @container field-group (width >= 28rem) {\n &>[data-slot=field-label] {\n flex: auto;\n }\n }\n }\n .has-\\[select\\[aria-hidden\\=true\\]\\:last-child\\]\\:\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:last-of-type\\]\\:rounded-r-md {\n &:has(*:is(select[aria-hidden=true]:last-child)) {\n &>[data-slot=select-trigger]:last-of-type {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n }\n .\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:not\\(\\[class\\*\\=\\'w-\\'\\]\\)\\]\\:w-fit {\n &>[data-slot=select-trigger]:not([class*='w-']) {\n width: fit-content;\n }\n }\n .\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\] {\n &>[role=checkbox] {\n --tw-translate-y: 2px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:\\[\\&\\>\\[role\\=checkbox\\]\\,\\[role\\=radio\\]\\]\\:mt-px {\n &:has(>[data-slot=field-content]) {\n &>[role=checkbox],[role=radio] {\n margin-top: 1px;\n }\n }\n }\n .\\@md\\/field-group\\:has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:\\[\\&\\>\\[role\\=checkbox\\]\\,\\[role\\=radio\\]\\]\\:mt-px {\n @container field-group (width >= 28rem) {\n &:has(>[data-slot=field-content]) {\n &>[role=checkbox],[role=radio] {\n margin-top: 1px;\n }\n }\n }\n }\n .\\[\\&\\>a\\]\\:underline {\n &>a {\n text-decoration-line: underline;\n }\n }\n .\\[\\&\\>a\\]\\:underline-offset-4 {\n &>a {\n text-underline-offset: 4px;\n }\n }\n .\\[\\&\\>a\\:hover\\]\\:text-primary {\n &>a:hover {\n color: var(--primary);\n }\n }\n .\\[\\&\\>button\\]\\:hidden {\n &>button {\n display: none;\n }\n }\n .\\[\\&\\>input\\]\\:flex-1 {\n &>input {\n flex: 1;\n }\n }\n .has-\\[\\>\\[data-align\\=block-end\\]\\]\\:\\[\\&\\>input\\]\\:pt-3 {\n &:has(>[data-align=block-end]) {\n &>input {\n padding-top: calc(var(--spacing) * 3);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=block-start\\]\\]\\:\\[\\&\\>input\\]\\:pb-3 {\n &:has(>[data-align=block-start]) {\n &>input {\n padding-bottom: calc(var(--spacing) * 3);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=inline-end\\]\\]\\:\\[\\&\\>input\\]\\:pr-2 {\n &:has(>[data-align=inline-end]) {\n &>input {\n padding-right: calc(var(--spacing) * 2);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=inline-start\\]\\]\\:\\[\\&\\>input\\]\\:pl-2 {\n &:has(>[data-align=inline-start]) {\n &>input {\n padding-left: calc(var(--spacing) * 2);\n }\n }\n }\n .\\[\\&\\>kbd\\]\\:rounded-\\[calc\\(var\\(--radius\\)-5px\\)\\] {\n &>kbd {\n border-radius: calc(var(--radius) - 5px);\n }\n }\n .\\[\\&\\>span\\]\\:text-xs {\n &>span {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n }\n .\\[\\&\\>span\\]\\:opacity-70 {\n &>span {\n opacity: 70%;\n }\n }\n .\\[\\&\\>span\\:last-child\\]\\:truncate {\n &>span:last-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n .\\[\\&\\>svg\\]\\:pointer-events-none {\n &>svg {\n pointer-events: none;\n }\n }\n .\\[\\&\\>svg\\]\\:size-3 {\n &>svg {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:size-3\\.5 {\n &>svg {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n }\n .\\[\\&\\>svg\\]\\:size-4 {\n &>svg {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>svg\\]\\:h-2\\.5 {\n &>svg {\n height: calc(var(--spacing) * 2.5);\n }\n }\n .\\[\\&\\>svg\\]\\:h-3 {\n &>svg {\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:w-2\\.5 {\n &>svg {\n width: calc(var(--spacing) * 2.5);\n }\n }\n .\\[\\&\\>svg\\]\\:w-3 {\n &>svg {\n width: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:shrink-0 {\n &>svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&\\>svg\\]\\:translate-y-0\\.5 {\n &>svg {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .\\[\\&\\>svg\\]\\:text-current {\n &>svg {\n color: currentcolor;\n }\n }\n .\\[\\&\\>svg\\]\\:text-muted-foreground {\n &>svg {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&\\>svg\\]\\:text-sidebar-accent-foreground {\n &>svg {\n color: var(--sidebar-accent-foreground);\n }\n }\n .\\[\\&\\>svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-3\\.5 {\n &>svg:not([class*='size-']) {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n }\n .\\[\\&\\>svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n &>svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>tr\\]\\:last\\:border-b-0 {\n &>tr {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n }\n .\\[\\&\\[data-panel-group-direction\\=vertical\\]\\>div\\]\\:rotate-90 {\n &[data-panel-group-direction=vertical]>div {\n rotate: 90deg;\n }\n }\n .\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-180 {\n &[data-state=open]>svg {\n rotate: 180deg;\n }\n }\n .\\[\\[data-side\\=left\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-right-2 {\n [data-side=left][data-collapsible=offcanvas] & {\n right: calc(var(--spacing) * -2);\n }\n }\n .\\[\\[data-side\\=left\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize {\n [data-side=left][data-state=collapsed] & {\n cursor: e-resize;\n }\n }\n .\\[\\[data-side\\=right\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-left-2 {\n [data-side=right][data-collapsible=offcanvas] & {\n left: calc(var(--spacing) * -2);\n }\n }\n .\\[\\[data-side\\=right\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize {\n [data-side=right][data-state=collapsed] & {\n cursor: w-resize;\n }\n }\n .\\[\\[data-slot\\=card-content\\]_\\&\\]\\:bg-transparent {\n [data-slot=card-content] & {\n background-color: transparent;\n }\n }\n .\\[\\[data-slot\\=popover-content\\]_\\&\\]\\:bg-transparent {\n [data-slot=popover-content] & {\n background-color: transparent;\n }\n }\n .\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-background\\/20 {\n [data-slot=tooltip-content] & {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 20%, transparent);\n }\n }\n }\n .\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:text-background {\n [data-slot=tooltip-content] & {\n color: var(--background);\n }\n }\n .dark\\:\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-background\\/10 {\n &:is(.dark *) {\n [data-slot=tooltip-content] & {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 10%, transparent);\n }\n }\n }\n }\n .\\[\\[data-variant\\=legend\\]\\+\\&\\]\\:-mt-1\\.5 {\n [data-variant=legend]+& {\n margin-top: calc(var(--spacing) * -1.5);\n }\n }\n .\\[a\\&\\]\\:transition-colors {\n a& {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-accent {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-accent\\/50 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-destructive\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-primary\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-secondary\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--secondary) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:text-accent-foreground {\n a& {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n }\n}\n@property --tw-animation-delay {\n syntax: \"*\";\n inherits: false;\n initial-value: 0s;\n}\n@property --tw-animation-direction {\n syntax: \"*\";\n inherits: false;\n initial-value: normal;\n}\n@property --tw-animation-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-animation-fill-mode {\n syntax: \"*\";\n inherits: false;\n initial-value: forwards;\n}\n@property --tw-animation-iteration-count {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-opacity {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-rotate {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-scale {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-opacity {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-exit-rotate {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-scale {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-exit-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n:root {\n --background: oklch(0.97 0.01 90);\n --foreground: oklch(0.2 0.02 265);\n --card: oklch(0.98 0.005 90);\n --card-foreground: oklch(0.2 0.02 265);\n --popover: oklch(0.98 0.005 90);\n --popover-foreground: oklch(0.2 0.02 265);\n --primary: oklch(0.45 0.15 25);\n --primary-foreground: oklch(0.98 0.01 90);\n --secondary: oklch(0.85 0.05 85);\n --secondary-foreground: oklch(0.3 0.05 50);\n --muted: oklch(0.92 0.01 90);\n --muted-foreground: oklch(0.45 0.02 265);\n --accent: oklch(0.94 0.02 85);\n --accent-foreground: oklch(0.3 0.05 50);\n --destructive: oklch(0.577 0.245 27.325);\n --destructive-foreground: oklch(0.98 0 0);\n --border: oklch(0.88 0.01 90);\n --input: oklch(0.88 0.01 90);\n --ring: oklch(0.45 0.15 25);\n --radius: 0.5rem;\n --sidebar: oklch(0.96 0.01 90);\n --sidebar-foreground: oklch(0.25 0.02 265);\n --sidebar-primary: oklch(0.45 0.15 25);\n --sidebar-primary-foreground: oklch(0.98 0.01 90);\n --sidebar-accent: oklch(0.93 0.01 90);\n --sidebar-accent-foreground: oklch(0.25 0.02 265);\n --sidebar-border: oklch(0.88 0.01 90);\n --sidebar-ring: oklch(0.45 0.15 25);\n --chart-1: oklch(0.45 0.15 25);\n --chart-2: oklch(0.65 0.12 50);\n --chart-3: oklch(0.35 0.08 200);\n --chart-4: oklch(0.55 0.05 265);\n --chart-5: oklch(0.75 0.1 85);\n}\n.dark {\n --background: oklch(0.12 0.01 265);\n --foreground: oklch(0.95 0.01 90);\n --card: oklch(0.15 0.01 265);\n --card-foreground: oklch(0.95 0.01 90);\n --popover: oklch(0.15 0.01 265);\n --popover-foreground: oklch(0.95 0.01 90);\n --primary: oklch(0.6 0.15 25);\n --primary-foreground: oklch(0.98 0.01 90);\n --secondary: oklch(0.3 0.05 50);\n --secondary-foreground: oklch(0.9 0.05 85);\n --muted: oklch(0.2 0.01 265);\n --muted-foreground: oklch(0.65 0.01 265);\n --accent: oklch(0.2 0.02 265);\n --accent-foreground: oklch(0.95 0.01 90);\n --destructive: oklch(0.396 0.141 25.723);\n --destructive-foreground: oklch(0.98 0 0);\n --border: oklch(0.25 0.01 265);\n --input: oklch(0.25 0.01 265);\n --ring: oklch(0.6 0.15 25);\n --sidebar: oklch(0.14 0.01 265);\n --sidebar-foreground: oklch(0.95 0.01 90);\n --sidebar-primary: oklch(0.6 0.15 25);\n --sidebar-primary-foreground: oklch(0.98 0.01 90);\n --sidebar-accent: oklch(0.2 0.01 265);\n --sidebar-accent-foreground: oklch(0.95 0.01 90);\n --sidebar-border: oklch(0.25 0.01 265);\n --sidebar-ring: oklch(0.6 0.15 25);\n}\n@layer base {\n * {\n border-color: var(--border);\n outline-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n outline-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n body {\n background-color: var(--background);\n color: var(--foreground);\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: \"Songti SC\", \"STSong\", \"SimSun\", \"Times New Roman\", serif;\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-gradient-position {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: \"\";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: \"\";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-content {\n syntax: \"*\";\n initial-value: \"\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity,1);\n transform: translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));\n }\n}\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity,1);\n transform: translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));\n }\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))));\n }\n}\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))));\n }\n to {\n height: 0;\n }\n}\n@keyframes caret-blink {\n 0%,70%,100% {\n opacity: 1;\n }\n 20%,50% {\n opacity: 0;\n }\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n to {\n height: 0;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-content: \"\";\n --tw-animation-delay: 0s;\n --tw-animation-direction: normal;\n --tw-animation-duration: initial;\n --tw-animation-fill-mode: forwards;\n --tw-animation-iteration-count: 1;\n --tw-enter-opacity: 1;\n --tw-enter-rotate: 0;\n --tw-enter-scale: 1;\n --tw-enter-translate-x: 0;\n --tw-enter-translate-y: 0;\n --tw-exit-opacity: 1;\n --tw-exit-rotate: 0;\n --tw-exit-scale: 1;\n --tw-exit-translate-x: 0;\n --tw-exit-translate-y: 0;\n }\n }\n}\n"],"names":[],"mappings":"AACA;EAq8ME;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAr8MJ;EAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAFF;EAgHE;;;;;;;EAAA;;;;;;;EAMA;;;;;;;;;;EASA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;;;EAKA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;;;;;;;EAAA;;;;;;;;;;;EAUA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;IACE;;;;IAEE;MAAgD;;;;;;EAKpD;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAGA;;;;EAAA;;;;EAGA;;;;EA82LA;;;;;EAGE;IAAgD;;;;;EAIlD;;;;;EAIA;;;;;;;AAxnMF;;AAAA;EAoQE;;;;EAIA;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;;;;;;;EAWA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAI3B;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;;EAMA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAIE;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAMF;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAGE;IAAgC;;;;;;EAKlC;;;;;EAIA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAIA;;;;EAIA;;;;EAGA;;;;EAIE;;;;EAKA;;;;EAME;IAAuB;;;;;;;;EAUvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAMzB;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAME;IAAuB;;;;;EAMzB;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAQA;;;;EAQA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;;EAQE;;;;;EAOF;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;;EAOE;IAAuB;;;;;;;;EAUvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAQlD;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;EAOvB;IAAuB;;;;;;EAQvB;IAAuB;;;;;;EAQvB;IAAuB;;;;;;EAQvB;IAAuB;;;;;;EAQvB;IACE;;;;;EASA;IAAuB;;;;IAErB;MAAgD;;;;;;EAUlD;IAAuB;;;;;EASvB;IAAuB;;;;;EASvB;IAAuB;;;;;EAQzB;IACE;;;;;;EAQJ;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;;EAMA;;;;;EAGE;IAAgC;;;;;;EAOlC;;;;;EAOE;;;;EAOA;;;;EAOA;;;;EAMF;;;;EAKA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;EAKA;;;;EAEE;IAAgD;;;;;EAMlD;;;;;EAMA;;;;;EAGE;IAAgC;;;;;;EAOlC;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAEE;IAAgD;;;;;EAQ9C;IAAuB;;;;;EAQzB;;;;EAOA;;;;EAOA;;;;EAEE;IAAgD;;;;;EAOpD;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAME;;;;;EAQA;;;;;EAQA;;;;;EAQA;;;;;;EASA;;;;;;EAQF;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAME;;;;EAEE;IAAgD;;;;;EAOpD;;;;EAME;;;;EAQE;;;;;EAUA;;;;;EASF;;;;;;;EAUA;;;;EAOA;;;;EAOA;;;;EAMF;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAMA;;;;EAMA;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAME;;;;EAOA;;;;EAQA;;;;EAOF;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAMA;;;;EAMA;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAME;;;;EAOA;;;;EAQA;;;;EASE;IAAuB;;;;;EASvB;IAAuB;;;;;EASvB;IAAuB;;;;;EAQzB;;;;EAMF;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAME;;;;EAEE;IAAgD;;;;;EAQlD;;;;EAMF;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;EAOE;;;;;EAOF;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;EAKA;IAAwC;;;;IAEtC;MAAgD;;;;;;EAMlD;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAMvB;IAAyB;;;;;EAOzB;IAAyB;;;;;EAOzB;IAAyB;;;;;EAM3B;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;;EAMzB;IAAyB;;;;;EAKzB;IACE;;;;;EAMF;IACE;;;;;EAMF;IACE;;;;;EAMF;IACE;;;;;;EAOF;IAEI;;;;;EAOJ;IACE;;;;;;EAOF;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyB;;;;;EAKzB;IAAyC;;;;;EAKzC;IAAyC;;;;;EAKzC;IACE;;;;;EAMF;;;;EAKA;;;;EAKA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAOI;IAAuB;;;;IAErB;MAAgD;;;;;;EAUlD;IAAuB;;;;IAErB;MAAgD;;;;;;EAUlD;IAAuB;;;;;EAQzB;;;;EAEE;IAAgD;;;;;EAQlD;;;;EAEE;IAAgD;;;;;EAQlD;;;;EAEE;IAAgD;;;;;EAQlD;;;;EAEE;IAAgD;;;;;EAShD;;;;EAEE;IAAgD;;;;;EASpD;;;;EAOA;;;;EAEE;IAAgD;;;;;EAQlD;;;;EAOA;;;;EAOA;;;;EAOA;;;;EAOA;;;;EAEE;IAAgD;;;;;EAShD;;;;EAEE;IAAgD;;;;;EAQtD;;;;EAKA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAKA;;;;EAKA;;;;;EAGE;IAAgC;;;;;;EAOlC;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAGE;IAAgC;;;;;;EAOlC;;;;EAKA;;;;;EAGE;IAAgC;;;;;;EAOlC;;;;EAKA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAOI;;;;EASA;;;;EASA;;;;EASA;;;;EASA;;;;EASA;;;;EAOJ;;;;;EAMA;;;;EAME;;;;EAOA;;;;EAOA;;;;EAMF;IACE;;;;;EAMF;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;IACE;;;;;EAOA;;;;;EAOF;;;;EAKA;;;;;EAOE;;;;EAMF;IAEI;;;;;EAOJ;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAME;;;;EAOA;;;;EAOA;;;;EAOA;;;;EAMF;;;;EAKA;;;;;EAMA;;;;EAKA;;;;;;EAOA;;;;EAKA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAMA;;;;;EAOE;;;;;EAOF;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAEE;IAAgD;;;;;EAMlD;;;;EAME;;;;EAEE;IAAgD;;;;;EAOpD;;;;EAKA;;;;;;EASI;IAAuB;;;;;EASvB;IAAuB;;;;IAErB;MAAgD;;;;;;EAUlD;IAAuB;;;;IAErB;MAAgD;;;;;;EAUlD;IAAuB;;;;IAErB;MAAgD;;;;;;EAUlD;IAAuB;;;;IAErB;MAAgD;;;;;;EAUlD;IAAuB;;;;;;AAO/B;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;AAIA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;AAKA;;;;;;;AAMA;;;;;;;AA8BA;;;;;;;;;;AAQA;;;;;;;;;;AAhBA"}}] } \ No newline at end of file diff --git a/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_c77f613d._.js b/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_c77f613d._.js index 58fb2b65..c3f21d09 100644 --- a/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_c77f613d._.js +++ b/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_c77f613d._.js @@ -3116,7 +3116,6 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$ch var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/users.js [app-client] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$arrow$2d$right$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__ArrowRight$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/arrow-right.js [app-client] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/clock.js [app-client] (ecmascript) "); -var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$calculator$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Calculator$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/calculator.js [app-client] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$context$2f$family$2d$context$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/context/family-context.tsx [app-client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$index$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/react/index.js [app-client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$dashboard$2f$statistics$2d$charts$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/components/dashboard/statistics-charts.tsx [app-client] (ecmascript)"); @@ -3354,31 +3353,6 @@ function DashboardPage() { lineNumber: 192, columnNumber: 15 }, this), - /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], { - href: "/relationship", - children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], { - variant: "outline", - className: "gap-2 bg-transparent", - children: [ - /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$calculator$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Calculator$3e$__["Calculator"], { - className: "h-4 w-4" - }, void 0, false, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 196, - columnNumber: 17 - }, this), - "计算器" - ] - }, void 0, true, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 195, - columnNumber: 15 - }, this) - }, void 0, false, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 194, - columnNumber: 13 - }, this), (currentTree?.currentUserRole === "OWNER" || currentTree?.currentUserRole === "EDITOR") && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], { href: "/members/new", children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$button$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Button"], { @@ -3388,19 +3362,19 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 203, + lineNumber: 197, columnNumber: 19 }, this), "添加成员" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 202, + lineNumber: 196, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 201, + lineNumber: 195, columnNumber: 15 }, this) ] @@ -3424,6 +3398,22 @@ function DashboardPage() { subtitle: `男 ${stats.maleCount} · 女 ${stats.femaleCount}`, icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__["Users"], { className: "h-4 w-4" + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 210, + columnNumber: 19 + }, void 0) + }, void 0, false, { + fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", + lineNumber: 206, + columnNumber: 11 + }, this), + /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { + title: "记录年代", + value: `${stats.yearsSpan} 年`, + subtitle: `始于 ${stats.earliestYear} 年`, + icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__["Clock"], { + className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", lineNumber: 216, @@ -3435,10 +3425,10 @@ function DashboardPage() { columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { - title: "记录年代", - value: `${stats.yearsSpan} 年`, - subtitle: `始于 ${stats.earliestYear} 年`, - icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__["Clock"], { + title: "繁衍代数", + value: `${stats.maxGeneration} 代`, + subtitle: `当前最高世代`, + icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$network$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Network$3e$__["Network"], { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", @@ -3451,10 +3441,10 @@ function DashboardPage() { columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { - title: "繁衍代数", - value: `${stats.maxGeneration} 代`, - subtitle: `当前最高世代`, - icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$network$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Network$3e$__["Network"], { + title: "在世 / 已故", + value: `${stats.livingMembers} / ${stats.deceasedMembers}`, + subtitle: `在世率 ${stats.totalMembers > 0 ? Math.round(stats.livingMembers / stats.totalMembers * 100) : 0}%`, + icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__["Users"], { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", @@ -3467,10 +3457,10 @@ function DashboardPage() { columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { - title: "在世 / 已故", - value: `${stats.livingMembers} / ${stats.deceasedMembers}`, - subtitle: `在世率 ${stats.totalMembers > 0 ? Math.round(stats.livingMembers / stats.totalMembers * 100) : 0}%`, - icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$users$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Users$3e$__["Users"], { + title: "平均寿命", + value: stats.averageLifespan > 0 ? `${stats.averageLifespan} 岁` : '暂无数据', + subtitle: `已统计 ${stats.deceasedMembers} 人`, + icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__["Clock"], { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", @@ -3482,22 +3472,6 @@ function DashboardPage() { lineNumber: 230, columnNumber: 11 }, this), - /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(StatCard, { - title: "平均寿命", - value: stats.averageLifespan > 0 ? `${stats.averageLifespan} 岁` : '暂无数据', - subtitle: `已统计 ${stats.deceasedMembers} 人`, - icon: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$clock$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$export__default__as__Clock$3e$__["Clock"], { - className: "h-4 w-4" - }, void 0, false, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 240, - columnNumber: 19 - }, void 0) - }, void 0, false, { - fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 236, - columnNumber: 11 - }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Card"], { className: "relative overflow-hidden border border-border/50 shadow-sm bg-gradient-to-br from-card to-card/50 backdrop-blur transition-all hover:shadow-lg hover:border-primary/30 group", children: [ @@ -3512,7 +3486,7 @@ function DashboardPage() { children: "性别比例" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 245, + lineNumber: 239, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3521,18 +3495,18 @@ function DashboardPage() { className: "h-4 w-4" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 247, + lineNumber: 241, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 246, + lineNumber: 240, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 244, + lineNumber: 238, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3542,11 +3516,11 @@ function DashboardPage() { className: "flex items-center justify-center gap-3 py-2", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-5xl font-serif font-bold text-blue-600 dark:text-blue-400 tracking-wider", + className: "text-5xl font-serif font-bold text-primary tracking-wider", children: "1" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 252, + lineNumber: 246, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3554,21 +3528,21 @@ function DashboardPage() { children: ":" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 255, + lineNumber: 249, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-5xl font-serif font-bold text-pink-600 dark:text-pink-400 tracking-wider", + className: "text-5xl font-serif font-bold text-primary tracking-wider", children: stats.maleCount > 0 ? (stats.femaleCount / stats.maleCount).toFixed(2) : '0' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 256, + lineNumber: 250, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 251, + lineNumber: 245, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3576,7 +3550,7 @@ function DashboardPage() { children: "男性 : 女性" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 260, + lineNumber: 254, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3586,13 +3560,13 @@ function DashboardPage() { className: "flex items-center justify-between text-xs", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-blue-600 dark:text-blue-400 font-medium flex items-center gap-1", + className: "text-primary/80 font-medium flex items-center gap-1", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "w-2 h-2 rounded-full bg-blue-500" + className: "w-2 h-2 rounded-full bg-primary/60" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 268, + lineNumber: 262, columnNumber: 23 }, this), "男性 ", @@ -3600,119 +3574,119 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 267, + lineNumber: 261, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-pink-600 dark:text-pink-400 font-medium flex items-center gap-1", + className: "text-primary/80 font-medium flex items-center gap-1", children: [ "女性 ", stats.femaleCount, /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "w-2 h-2 rounded-full bg-pink-500" + className: "w-2 h-2 rounded-full bg-primary/60" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 273, + lineNumber: 267, columnNumber: 23 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 271, + lineNumber: 265, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 266, + lineNumber: 260, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "h-3 bg-muted rounded-full overflow-hidden flex", + className: "h-3 bg-background/60 border border-border/50 rounded-full overflow-hidden flex", children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "h-full bg-gradient-to-r from-blue-600 to-blue-500 transition-all duration-500 flex items-center justify-center", + className: "h-full bg-primary/70 transition-all duration-500 flex items-center justify-center", style: { width: `${stats.totalMembers > 0 ? stats.maleCount / stats.totalMembers * 100 : 0}%` }, children: stats.totalMembers > 0 && stats.maleCount > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-[10px] text-white font-bold px-1", + className: "text-[10px] text-primary-foreground font-bold px-1", children: [ Math.round(stats.maleCount / stats.totalMembers * 100), "%" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 282, + lineNumber: 276, columnNumber: 25 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 277, + lineNumber: 271, columnNumber: 21 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "h-full bg-gradient-to-r from-pink-500 to-pink-600 transition-all duration-500 flex items-center justify-center", + className: "h-full bg-primary/40 transition-all duration-500 flex items-center justify-center", style: { width: `${stats.totalMembers > 0 ? stats.femaleCount / stats.totalMembers * 100 : 0}%` }, children: stats.totalMembers > 0 && stats.femaleCount > 0 && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { - className: "text-[10px] text-white font-bold px-1", + className: "text-[10px] text-primary-foreground font-bold px-1", children: [ Math.round(stats.femaleCount / stats.totalMembers * 100), "%" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 292, + lineNumber: 286, columnNumber: 25 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 287, + lineNumber: 281, columnNumber: 21 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 276, + lineNumber: 270, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 265, + lineNumber: 259, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 250, + lineNumber: 244, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 243, + lineNumber: 237, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { - className: "absolute bottom-0 left-0 right-0 h-1 bg-gradient-to-r from-blue-500 via-purple-500 to-pink-500 opacity-0 group-hover:opacity-100 transition-opacity" + className: "absolute bottom-0 left-0 right-0 h-1 bg-gradient-to-r from-primary/50 via-primary to-primary/50 opacity-0 group-hover:opacity-100 transition-opacity" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 301, + lineNumber: 295, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 242, + lineNumber: 236, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 211, + lineNumber: 205, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["Tabs"], { @@ -3730,7 +3704,7 @@ function DashboardPage() { children: "最近更新" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 308, + lineNumber: 302, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["TabsTrigger"], { @@ -3738,7 +3712,7 @@ function DashboardPage() { children: "近期纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 309, + lineNumber: 303, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["TabsTrigger"], { @@ -3746,7 +3720,7 @@ function DashboardPage() { children: "统计图表" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 310, + lineNumber: 304, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["TabsTrigger"], { @@ -3754,13 +3728,13 @@ function DashboardPage() { children: "迁徙记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 311, + lineNumber: 305, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 307, + lineNumber: 301, columnNumber: 13 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$client$2f$app$2d$dir$2f$link$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["default"], { @@ -3775,24 +3749,24 @@ function DashboardPage() { className: "h-3 w-3" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 315, + lineNumber: 309, columnNumber: 22 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 314, + lineNumber: 308, columnNumber: 15 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 313, + lineNumber: 307, columnNumber: 13 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 306, + lineNumber: 300, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -3811,20 +3785,20 @@ function DashboardPage() { children: "近期修谱动态" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 324, + lineNumber: 318, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardDescription"], { children: "记录家族成员的最新变动与修订" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 325, + lineNumber: 319, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 323, + lineNumber: 317, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardContent"], { @@ -3842,20 +3816,20 @@ function DashboardPage() { className: "h-full w-px bg-border group-last:hidden" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 334, + lineNumber: 328, columnNumber: 31 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: `absolute top-2 h-2 w-2 rounded-full ring-4 ring-background ${activity.action === 'create' ? 'bg-green-500' : activity.action === 'update' ? 'bg-blue-500' : activity.action === 'delete' ? 'bg-red-500' : 'bg-purple-500'}` }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 335, + lineNumber: 329, columnNumber: 31 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 333, + lineNumber: 327, columnNumber: 29 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3869,7 +3843,7 @@ function DashboardPage() { children: activity.action === 'create' ? '创建' : activity.action === 'update' ? '更新' : activity.action === 'delete' ? '删除' : '导入' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 344, + lineNumber: 338, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3877,7 +3851,7 @@ function DashboardPage() { children: activity.entityName || '未知' }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 354, + lineNumber: 348, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -3885,13 +3859,13 @@ function DashboardPage() { children: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$date$2d$fns$40$4$2e$1$2e$0$2f$node_modules$2f$date$2d$fns$2f$format$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__$3c$locals$3e$__["format"])(new Date(activity.timestamp), 'MM-dd HH:mm') }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 355, + lineNumber: 349, columnNumber: 33 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 343, + lineNumber: 337, columnNumber: 31 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -3904,47 +3878,47 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 359, + lineNumber: 353, columnNumber: 31 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 342, + lineNumber: 336, columnNumber: 29 }, this) ] }, activity.id, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 332, + lineNumber: 326, columnNumber: 27 }, this)) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "text-center text-muted-foreground py-8", children: "暂无修谱记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 369, + lineNumber: 363, columnNumber: 25 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 329, + lineNumber: 323, columnNumber: 21 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 328, + lineNumber: 322, columnNumber: 19 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 327, + lineNumber: 321, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 322, + lineNumber: 316, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -3960,19 +3934,19 @@ function DashboardPage() { className: "h-5 w-5" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 382, + lineNumber: 376, columnNumber: 23 }, this), "本月祭祖/纪念" ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 381, + lineNumber: 375, columnNumber: 21 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 380, + lineNumber: 374, columnNumber: 19 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardContent"], { @@ -3995,7 +3969,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 394, + lineNumber: 388, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -4003,13 +3977,13 @@ function DashboardPage() { children: anniversary.day }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 397, + lineNumber: 391, columnNumber: 33 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 393, + lineNumber: 387, columnNumber: 31 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4024,7 +3998,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 400, + lineNumber: 394, columnNumber: 33 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -4039,24 +4013,24 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 403, + lineNumber: 397, columnNumber: 33 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 399, + lineNumber: 393, columnNumber: 31 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 392, + lineNumber: 386, columnNumber: 29 }, this) }, `${anniversary.member.id}-${anniversary.type}`, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 391, + lineNumber: 385, columnNumber: 27 }, this); }) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4064,34 +4038,34 @@ function DashboardPage() { children: "本月暂无纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 413, + lineNumber: 407, columnNumber: 23 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 386, + lineNumber: 380, columnNumber: 19 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 379, + lineNumber: 373, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 378, + lineNumber: 372, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 321, + lineNumber: 315, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 320, + lineNumber: 314, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -4107,20 +4081,20 @@ function DashboardPage() { children: "近期纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 427, + lineNumber: 421, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardDescription"], { children: "未来三个月内的生日和忌日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 428, + lineNumber: 422, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 426, + lineNumber: 420, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardContent"], { @@ -4182,7 +4156,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 484, + lineNumber: 478, columnNumber: 37 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -4190,13 +4164,13 @@ function DashboardPage() { children: event.date.getDate() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 485, + lineNumber: 479, columnNumber: 37 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 483, + lineNumber: 477, columnNumber: 35 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4211,7 +4185,7 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 488, + lineNumber: 482, columnNumber: 37 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -4226,34 +4200,34 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 491, + lineNumber: 485, columnNumber: 37 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 487, + lineNumber: 481, columnNumber: 35 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 482, + lineNumber: 476, columnNumber: 33 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 481, + lineNumber: 475, columnNumber: 31 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 480, + lineNumber: 474, columnNumber: 29 }, this) }, `${event.member.id}-${event.type}-${index}`, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 479, + lineNumber: 473, columnNumber: 27 }, this); }) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4261,29 +4235,29 @@ function DashboardPage() { children: "未来三个月暂无纪念日" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 503, + lineNumber: 497, columnNumber: 23 }, this); })() }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 431, + lineNumber: 425, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 430, + lineNumber: 424, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 425, + lineNumber: 419, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 424, + lineNumber: 418, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -4293,12 +4267,12 @@ function DashboardPage() { members: Object.values(treeData.members) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 515, + lineNumber: 509, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 514, + lineNumber: 508, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$tabs$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["TabsContent"], { @@ -4314,20 +4288,20 @@ function DashboardPage() { children: "家族迁徙记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 522, + lineNumber: 516, columnNumber: 17 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardDescription"], { children: "记录家族成员的籍贯分布" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 523, + lineNumber: 517, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 521, + lineNumber: 515, columnNumber: 15 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$components$2f$ui$2f$card$2e$tsx__$5b$app$2d$client$5d$__$28$ecmascript$29$__["CardContent"], { @@ -4362,7 +4336,7 @@ function DashboardPage() { children: location }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 547, + lineNumber: 541, columnNumber: 29 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("span", { @@ -4373,13 +4347,13 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 548, + lineNumber: 542, columnNumber: 29 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 546, + lineNumber: 540, columnNumber: 27 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4395,7 +4369,7 @@ function DashboardPage() { children: member.fullName }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 556, + lineNumber: 550, columnNumber: 35 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -4407,30 +4381,30 @@ function DashboardPage() { ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 557, + lineNumber: 551, columnNumber: 35 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 555, + lineNumber: 549, columnNumber: 33 }, this) }, member.id, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 554, + lineNumber: 548, columnNumber: 31 }, this) }["DashboardPage.useMemo"]) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 552, + lineNumber: 546, columnNumber: 27 }, this) ] }, location, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 545, + lineNumber: 539, columnNumber: 25 }, this) }["DashboardPage.useMemo"]) : /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4438,7 +4412,7 @@ function DashboardPage() { children: "暂无迁徙记录" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 565, + lineNumber: 559, columnNumber: 23 }, this); } @@ -4447,29 +4421,29 @@ function DashboardPage() { ]) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 526, + lineNumber: 520, columnNumber: 17 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 525, + lineNumber: 519, columnNumber: 15 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 520, + lineNumber: 514, columnNumber: 13 }, this) }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 519, + lineNumber: 513, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 305, + lineNumber: 299, columnNumber: 9 }, this) ] @@ -4507,7 +4481,7 @@ function StatCard({ title, value, subtitle, icon }) { children: title }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 590, + lineNumber: 584, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4515,13 +4489,13 @@ function StatCard({ title, value, subtitle, icon }) { children: icon }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 591, + lineNumber: 585, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 589, + lineNumber: 583, columnNumber: 9 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { @@ -4532,7 +4506,7 @@ function StatCard({ title, value, subtitle, icon }) { children: value }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 596, + lineNumber: 590, columnNumber: 11 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("p", { @@ -4540,32 +4514,32 @@ function StatCard({ title, value, subtitle, icon }) { children: subtitle }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 597, + lineNumber: 591, columnNumber: 11 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 595, + lineNumber: 589, columnNumber: 9 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 588, + lineNumber: 582, columnNumber: 7 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$compiled$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$app$2d$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { className: "absolute bottom-0 left-0 right-0 h-1 bg-gradient-to-r from-primary/50 via-primary to-primary/50 opacity-0 group-hover:opacity-100 transition-opacity" }, void 0, false, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 600, + lineNumber: 594, columnNumber: 7 }, this) ] }, void 0, true, { fileName: "[project]/Documents/go-new/chinese-family-tree/app/page.tsx", - lineNumber: 587, + lineNumber: 581, columnNumber: 5 }, this); } diff --git a/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_c77f613d._.js.map b/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_c77f613d._.js.map index 05931829..5d722a67 100644 --- a/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_c77f613d._.js.map +++ b/.next/dev/static/chunks/Documents_go-new_chinese-family-tree_c77f613d._.js.map @@ -11,5 +11,5 @@ {"offset": {"line": 2057, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/dialog.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { XIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Dialog({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps & {\n showCloseButton?: boolean\n}) {\n return (\n \n \n \n {children}\n {showCloseButton && (\n \n \n Close\n \n )}\n \n \n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n \n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AAEA;AANA;;;;;AAQA,SAAS,OAAO,EACd,GAAG,OAC+C;IAClD,qBAAO,mXAAC,wbAAoB;QAAC,aAAU;QAAU,GAAG,KAAK;;;;;;AAC3D;KAJS;AAMT,SAAS,cAAc,EACrB,GAAG,OACkD;IACrD,qBAAO,mXAAC,2bAAuB;QAAC,aAAU;QAAkB,GAAG,KAAK;;;;;;AACtE;MAJS;AAMT,SAAS,aAAa,EACpB,GAAG,OACiD;IACpD,qBAAO,mXAAC,0bAAsB;QAAC,aAAU;QAAiB,GAAG,KAAK;;;;;;AACpE;MAJS;AAMT,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,mXAAC,ybAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;MAJS;AAMT,SAAS,cAAc,EACrB,SAAS,EACT,GAAG,OACkD;IACrD,qBACE,mXAAC,2bAAuB;QACtB,aAAU;QACV,WAAW,IAAA,4KAAE,EACX,0JACA;QAED,GAAG,KAAK;;;;;;AAGf;MAdS;AAgBT,SAAS,cAAc,EACrB,SAAS,EACT,QAAQ,EACR,kBAAkB,IAAI,EACtB,GAAG,OAGJ;IACC,qBACE,mXAAC;QAAa,aAAU;;0BACtB,mXAAC;;;;;0BACD,mXAAC,2bAAuB;gBACtB,aAAU;gBACV,WAAW,IAAA,4KAAE,EACX,+WACA;gBAED,GAAG,KAAK;;oBAER;oBACA,iCACC,mXAAC,ybAAqB;wBACpB,aAAU;wBACV,WAAU;;0CAEV,mXAAC,uVAAK;;;;;0CACN,mXAAC;gCAAK,WAAU;0CAAU;;;;;;;;;;;;;;;;;;;;;;;;AAMtC;MAhCS;AAkCT,SAAS,aAAa,EAAE,SAAS,EAAE,GAAG,OAAoC;IACxE,qBACE,mXAAC;QACC,aAAU;QACV,WAAW,IAAA,4KAAE,EAAC,gDAAgD;QAC7D,GAAG,KAAK;;;;;;AAGf;MARS;AAUT,SAAS,aAAa,EAAE,SAAS,EAAE,GAAG,OAAoC;IACxE,qBACE,mXAAC;QACC,aAAU;QACV,WAAW,IAAA,4KAAE,EACX,0DACA;QAED,GAAG,KAAK;;;;;;AAGf;MAXS;AAaT,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,mXAAC,ybAAqB;QACpB,aAAU;QACV,WAAW,IAAA,4KAAE,EAAC,sCAAsC;QACnD,GAAG,KAAK;;;;;;AAGf;MAXS;AAaT,SAAS,kBAAkB,EACzB,SAAS,EACT,GAAG,OACsD;IACzD,qBACE,mXAAC,+bAA2B;QAC1B,aAAU;QACV,WAAW,IAAA,4KAAE,EAAC,iCAAiC;QAC9C,GAAG,KAAK;;;;;;AAGf;MAXS"}}, {"offset": {"line": 2263, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/ui/select.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Select({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps) {\n return \n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps & {\n size?: 'sm' | 'default'\n}) {\n return (\n \n {children}\n \n \n \n \n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n {children}\n \n \n \n \n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AAAA;AAAA;AAEA;AANA;;;;;AAQA,SAAS,OAAO,EACd,GAAG,OAC+C;IAClD,qBAAO,mXAAC,wbAAoB;QAAC,aAAU;QAAU,GAAG,KAAK;;;;;;AAC3D;KAJS;AAMT,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,mXAAC,ybAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;MAJS;AAMT,SAAS,YAAY,EACnB,GAAG,OACgD;IACnD,qBAAO,mXAAC,ybAAqB;QAAC,aAAU;QAAgB,GAAG,KAAK;;;;;;AAClE;MAJS;AAMT,SAAS,cAAc,EACrB,SAAS,EACT,OAAO,SAAS,EAChB,QAAQ,EACR,GAAG,OAGJ;IACC,qBACE,mXAAC,2bAAuB;QACtB,aAAU;QACV,aAAW;QACX,WAAW,IAAA,4KAAE,EACX,gzBACA;QAED,GAAG,KAAK;;YAER;0BACD,mXAAC,wbAAoB;gBAAC,OAAO;0BAC3B,cAAA,mXAAC,yXAAe;oBAAC,WAAU;;;;;;;;;;;;;;;;;AAInC;MAxBS;AA0BT,SAAS,cAAc,EACrB,SAAS,EACT,QAAQ,EACR,WAAW,QAAQ,EACnB,GAAG,OACkD;IACrD,qBACE,mXAAC,0bAAsB;kBACrB,cAAA,mXAAC,2bAAuB;YACtB,aAAU;YACV,WAAW,IAAA,4KAAE,EACX,ijBACA,aAAa,YACX,mIACF;YAEF,UAAU;YACT,GAAG,KAAK;;8BAET,mXAAC;;;;;8BACD,mXAAC,4bAAwB;oBACvB,WAAW,IAAA,4KAAE,EACX,OACA,aAAa,YACX;8BAGH;;;;;;8BAEH,mXAAC;;;;;;;;;;;;;;;;AAIT;MAjCS;AAmCT,SAAS,YAAY,EACnB,SAAS,EACT,GAAG,OACgD;IACnD,qBACE,mXAAC,ybAAqB;QACpB,aAAU;QACV,WAAW,IAAA,4KAAE,EAAC,6CAA6C;QAC1D,GAAG,KAAK;;;;;;AAGf;MAXS;AAaT,SAAS,WAAW,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,OAC+C;IAClD,qBACE,mXAAC,wbAAoB;QACnB,aAAU;QACV,WAAW,IAAA,4KAAE,EACX,6aACA;QAED,GAAG,KAAK;;0BAET,mXAAC;gBAAK,WAAU;0BACd,cAAA,mXAAC,icAA6B;8BAC5B,cAAA,mXAAC,mWAAS;wBAAC,WAAU;;;;;;;;;;;;;;;;0BAGzB,mXAAC,4bAAwB;0BAAE;;;;;;;;;;;;AAGjC;MAtBS;AAwBT,SAAS,gBAAgB,EACvB,SAAS,EACT,GAAG,OACoD;IACvD,qBACE,mXAAC,6bAAyB;QACxB,aAAU;QACV,WAAW,IAAA,4KAAE,EAAC,iDAAiD;QAC9D,GAAG,KAAK;;;;;;AAGf;MAXS;AAaT,SAAS,qBAAqB,EAC5B,SAAS,EACT,GAAG,OACyD;IAC5D,qBACE,mXAAC,kcAA8B;QAC7B,aAAU;QACV,WAAW,IAAA,4KAAE,EACX,wDACA;QAED,GAAG,KAAK;kBAET,cAAA,mXAAC,mXAAa;YAAC,WAAU;;;;;;;;;;;AAG/B;MAhBS;AAkBT,SAAS,uBAAuB,EAC9B,SAAS,EACT,GAAG,OAC2D;IAC9D,qBACE,mXAAC,ocAAgC;QAC/B,aAAU;QACV,WAAW,IAAA,4KAAE,EACX,wDACA;QAED,GAAG,KAAK;kBAET,cAAA,mXAAC,yXAAe;YAAC,WAAU;;;;;;;;;;;AAGjC;MAhBS"}}, {"offset": {"line": 2520, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/components/tree/collaborator-dialog.tsx"],"sourcesContent":["\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { useSession } from \"next-auth/react\"\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger } from \"@/components/ui/dialog\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\"\nimport { Avatar, AvatarFallback } from \"@/components/ui/avatar\"\nimport { Users, Mail, Trash2, Plus, Shield, Eye, Edit } from \"lucide-react\"\nimport { Alert, AlertDescription, AlertTitle } from \"@/components/ui/alert\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useDialog } from \"@/components/ui/alert-dialog-custom\"\n\ninterface Collaborator {\n id: string\n userId: string\n role: \"EDITOR\" | \"VIEWER\"\n invitedAt: string\n user: {\n id: string\n name: string | null\n email: string\n avatar: string | null\n }\n}\n\nexport function CollaboratorDialog() {\n const { data: session } = useSession()\n const { currentTree } = useFamily()\n const { showConfirm, showAlert } = useDialog()\n const [open, setOpen] = useState(false)\n const [collaborators, setCollaborators] = useState([])\n const [isInviting, setIsInviting] = useState(false)\n const [email, setEmail] = useState(\"\")\n const [role, setRole] = useState<\"EDITOR\" | \"VIEWER\">(\"VIEWER\")\n const [password, setPassword] = useState(\"\")\n const [error, setError] = useState(\"\")\n const [success, setSuccess] = useState(\"\")\n\n // 加载协作者\n useEffect(() => {\n if (open && currentTree?.id) {\n loadCollaborators()\n }\n }, [open, currentTree?.id])\n\n const loadCollaborators = async () => {\n if (!currentTree?.id) return\n \n try {\n const res = await fetch(`/api/trees/${currentTree.id}/collaborators`)\n if (res.ok) {\n const data = await res.json()\n setCollaborators(data.collaborators)\n }\n } catch (err) {\n console.error(\"加载协作者失败:\", err)\n }\n }\n\n const handleInvite = async (e: React.FormEvent) => {\n e.preventDefault()\n if (!currentTree?.id) return\n\n setIsInviting(true)\n setError(\"\")\n setSuccess(\"\")\n\n try {\n const res = await fetch(`/api/trees/${currentTree.id}/invite`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n email,\n role,\n password: password || undefined,\n }),\n })\n\n const data = await res.json()\n\n if (!res.ok) {\n throw new Error(data.error || \"邀请失败\")\n }\n\n setSuccess(data.message)\n setEmail(\"\")\n setPassword(\"\")\n loadCollaborators()\n } catch (err: any) {\n setError(err.message)\n } finally {\n setIsInviting(false)\n }\n }\n\n const handleRemove = async (userId: string) => {\n if (!currentTree?.id) return\n \n const confirmed = await showConfirm(\"确定要移除此协作者吗?\", \"移除协作者\")\n if (!confirmed) return\n\n try {\n const res = await fetch(`/api/trees/${currentTree.id}/collaborators?userId=${userId}`, {\n method: 'DELETE',\n })\n\n if (!res.ok) throw new Error('移除失败')\n\n loadCollaborators()\n } catch (err) {\n console.error(err)\n await showAlert(\"移除失败\", \"错误\")\n }\n }\n\n if (!currentTree) return null\n if (currentTree.ownerId !== session?.user?.id) return null\n\n return (\n \n \n \n \n \n \n 协作管理 - {currentTree.name}\n \n 邀请其他用户协作编辑或查看您的家族树。\n \n \n \n
\n {/* 邀请表单 */}\n
\n
\n
\n \n setEmail(e.target.value)}\n required\n />\n
\n
\n \n \n
\n
\n \n
\n setPassword(e.target.value)}\n minLength={6}\n className=\"flex-1\"\n />\n \n
\n

如果是现有用户,此密码将被忽略。

\n
\n
\n\n {error && (\n \n 错误\n {error}\n \n )}\n\n {success && (\n \n 成功\n {success}\n \n )}\n
\n\n {/* 协作者列表 */}\n
\n

现有协作者

\n {collaborators.length === 0 ? (\n
\n 暂无协作者\n
\n ) : (\n
\n {collaborators.map((collab) => (\n \n
\n \n \n {collab.user.name?.charAt(0).toUpperCase() || collab.user.email.charAt(0).toUpperCase()}\n \n \n
\n
{collab.user.name || \"用户\"}
\n
{collab.user.email}
\n
\n
\n
\n \n {collab.role === 'EDITOR' ? '编辑者' : '查看者'}\n \n handleRemove(collab.userId)}\n >\n \n \n
\n
\n ))}\n
\n )}\n
\n
\n \n \n )\n}\n"],"names":[],"mappings":"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"}}, - {"offset": {"line": 3101, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/page.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\nimport Link from \"next/link\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\nimport { UserPlus, Network, Map, Calendar, Users, ArrowRight, Clock, Search, BookOpen, BarChart3, Calculator } from \"lucide-react\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useMemo, useState, useEffect, useRef } from \"react\"\nimport { StatisticsCharts } from \"@/components/dashboard/statistics-charts\"\nimport { format } from \"date-fns\"\nimport { useSession } from \"next-auth/react\"\nimport { useSearchParams } from \"next/navigation\"\nimport { CollaboratorDialog } from \"@/components/tree/collaborator-dialog\"\n\ninterface ActivityLog {\n id: string\n action: string\n entityType: string\n entityId?: string | null\n entityName?: string | null\n timestamp: string\n user?: {\n name?: string | null\n email?: string | null\n }\n}\n\nexport default function DashboardPage() {\n const { treeData, isLoading, currentTree } = useFamily()\n const { data: session } = useSession()\n const [recentActivities, setRecentActivities] = useState([])\n \n // 加载最近的操作日志\n useEffect(() => {\n if (currentTree?.id && session?.user?.id) {\n fetch(`/api/trees/${currentTree.id}/activity-logs?limit=10`)\n .then(res => {\n if (!res.ok) {\n throw new Error('获取活动日志失败')\n }\n return res.json()\n })\n .then(data => {\n if (data.logs) {\n setRecentActivities(data.logs)\n }\n })\n .catch(err => {\n console.error('获取活动日志失败:', err)\n setRecentActivities([])\n })\n } else {\n setRecentActivities([])\n }\n }, [currentTree?.id, session?.user?.id])\n \n // 计算统计数据\n const stats = useMemo(() => {\n const members = Object.values(treeData.members)\n const totalMembers = members.length\n \n // 在世和已故人数\n const livingMembers = members.filter(m => !m.deathDate).length\n const deceasedMembers = members.filter(m => m.deathDate).length\n \n // 性别统计\n const maleCount = members.filter(m => m.gender === 'MALE').length\n const femaleCount = members.filter(m => m.gender === 'FEMALE').length\n \n // 计算最大代数(处理空数组的情况)\n const generations = members.map(m => m.generation || 0)\n const maxGeneration = generations.length > 0 ? Math.max(...generations) : 0\n \n // 计算最早出生年份\n const birthYears = members\n .map(m => m.birthDate ? new Date(m.birthDate).getFullYear() : null)\n .filter(y => y !== null) as number[]\n const earliestYear = birthYears.length > 0 ? Math.min(...birthYears) : new Date().getFullYear()\n const yearsSpan = birthYears.length > 0 ? new Date().getFullYear() - earliestYear : 0\n \n // 计算平均寿命(只统计已故成员)\n const deceasedWithAge = members.filter(m => m.birthDate && m.deathDate)\n const totalAge = deceasedWithAge.reduce((sum, m) => {\n const birthYear = new Date(m.birthDate!).getFullYear()\n const deathYear = new Date(m.deathDate!).getFullYear()\n return sum + (deathYear - birthYear)\n }, 0)\n const averageLifespan = deceasedWithAge.length > 0 \n ? Math.round(totalAge / deceasedWithAge.length) \n : 0\n \n return {\n totalMembers,\n livingMembers,\n deceasedMembers,\n maleCount,\n femaleCount,\n maxGeneration,\n yearsSpan,\n earliestYear,\n averageLifespan\n }\n }, [treeData])\n \n // 获取最近的成员(按ID排序,取最新的5个)\n const recentMembers = useMemo(() => {\n return Object.values(treeData.members)\n .sort((a, b) => parseInt(b.id) - parseInt(a.id))\n .slice(0, 5)\n }, [treeData])\n \n // 获取本月纪念日(生日和忌日)\n const monthlyAnniversaries = useMemo(() => {\n const currentMonth = new Date().getMonth() + 1\n const members = Object.values(treeData.members)\n \n const anniversaries: Array<{\n member: any\n type: 'birth' | 'death'\n date: string\n day: number\n }> = []\n \n members.forEach(member => {\n // 检查生日\n if (member.birthDate) {\n const birthMonth = new Date(member.birthDate).getMonth() + 1\n const birthDay = new Date(member.birthDate).getDate()\n if (birthMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'birth',\n date: member.birthDate,\n day: birthDay\n })\n }\n }\n \n // 检查忌日\n if (member.deathDate) {\n const deathMonth = new Date(member.deathDate).getMonth() + 1\n const deathDay = new Date(member.deathDate).getDate()\n if (deathMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'death',\n date: member.deathDate,\n day: deathDay\n })\n }\n }\n })\n \n // 按日期排序\n return anniversaries.sort((a, b) => a.day - b.day).slice(0, 5)\n }, [treeData])\n return (\n
\n \n\n
\n
\n
\n
\n

\n {currentTree?.name || '家族族谱'}\n

\n {currentTree?.currentUserRole && (\n \n {currentTree.currentUserRole === 'OWNER' ? '所有者' : \n currentTree.currentUserRole === 'EDITOR' ? '编辑者' : '查看者'}\n \n )}\n
\n

\n {currentTree?.description || '记录家族历史,传承家族文化'}\n {stats.maxGeneration > 0 && ` · 第 ${stats.maxGeneration} 代传人`}\n

\n
\n
\n {session && currentTree?.ownerId === session.user?.id && (\n \n )}\n \n \n \n {(currentTree?.currentUserRole === \"OWNER\" || currentTree?.currentUserRole === \"EDITOR\") && (\n \n \n \n )}\n
\n
\n\n
\n } \n />\n } \n />\n } \n />\n 0 ? Math.round(stats.livingMembers / stats.totalMembers * 100) : 0}%`} \n icon={} \n />\n 0 ? `${stats.averageLifespan} 岁` : '暂无数据'} \n subtitle={`已统计 ${stats.deceasedMembers} 人`} \n icon={} \n />\n \n \n
\n

性别比例

\n
\n \n
\n
\n
\n
\n \n 1\n \n :\n \n {stats.maleCount > 0 ? (stats.femaleCount / stats.maleCount).toFixed(2) : '0'}\n \n
\n
\n 男性 : 女性\n
\n \n {/* 双色进度条 */}\n
\n
\n \n \n 男性 {stats.maleCount}\n \n \n 女性 {stats.femaleCount}\n \n \n
\n
\n
0 ? (stats.maleCount / stats.totalMembers * 100) : 0}%` }}\n >\n {stats.totalMembers > 0 && stats.maleCount > 0 && (\n \n {Math.round(stats.maleCount / stats.totalMembers * 100)}%\n \n )}\n
\n
0 ? (stats.femaleCount / stats.totalMembers * 100) : 0}%` }}\n >\n {stats.totalMembers > 0 && stats.femaleCount > 0 && (\n \n {Math.round(stats.femaleCount / stats.totalMembers * 100)}%\n \n )}\n
\n
\n
\n
\n
\n
\n \n
\n\n \n
\n \n 最近更新\n 近期纪念日\n 统计图表\n 迁徙记录\n \n \n \n \n
\n\n \n
\n \n \n 近期修谱动态\n 记录家族成员的最新变动与修订\n \n \n \n
\n {recentActivities.length > 0 ? (\n recentActivities.map((activity, i) => (\n
\n
\n
\n
\n
\n
\n
\n \n {activity.action === 'create' ? '创建' :\n activity.action === 'update' ? '更新' :\n activity.action === 'delete' ? '删除' : '导入'}\n \n {activity.entityName || '未知'}\n \n {format(new Date(activity.timestamp), 'MM-dd HH:mm')}\n \n
\n

\n {activity.action === 'create' && '新增了家族成员'}\n {activity.action === 'update' && '更新了成员信息'}\n {activity.action === 'delete' && '删除了成员'}\n {activity.action === 'import' && '导入了家族数据'}\n

\n
\n
\n ))\n ) : (\n
\n 暂无修谱记录\n
\n )}\n
\n
\n
\n
\n\n
\n \n \n \n \n 本月祭祖/纪念\n \n \n \n {monthlyAnniversaries.length > 0 ? (\n monthlyAnniversaries.map((anniversary, index) => {\n const yearsAgo = new Date().getFullYear() - new Date(anniversary.date).getFullYear()\n return (\n \n
\n
\n \n {new Date(anniversary.date).getMonth() + 1}月\n \n {anniversary.day}\n
\n
\n

\n {anniversary.member.fullName} {anniversary.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {anniversary.member.generation} 世 · 距今 {yearsAgo} 年\n {anniversary.type === 'death' && ' · 已故'}\n

\n
\n
\n \n )\n })\n ) : (\n
\n 本月暂无纪念日\n
\n )}\n
\n
\n
\n
\n
\n\n {/* 近期纪念日标签页 */}\n \n \n \n 近期纪念日\n 未来三个月内的生日和忌日\n \n \n
\n {(() => {\n const now = new Date()\n const threeMonthsLater = new Date(now.getFullYear(), now.getMonth() + 3, now.getDate())\n const members = Object.values(treeData.members)\n const upcomingEvents: Array<{\n member: any\n type: 'birth' | 'death'\n date: Date\n originalDate: string\n }> = []\n\n members.forEach(member => {\n // 生日\n if (member.birthDate) {\n const birthDate = new Date(member.birthDate)\n const thisYearBirth = new Date(now.getFullYear(), birthDate.getMonth(), birthDate.getDate())\n if (thisYearBirth >= now && thisYearBirth <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'birth',\n date: thisYearBirth,\n originalDate: member.birthDate\n })\n }\n }\n\n // 忌日\n if (member.deathDate) {\n const deathDate = new Date(member.deathDate)\n const thisYearDeath = new Date(now.getFullYear(), deathDate.getMonth(), deathDate.getDate())\n if (thisYearDeath >= now && thisYearDeath <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'death',\n date: thisYearDeath,\n originalDate: member.deathDate\n })\n }\n }\n })\n\n upcomingEvents.sort((a, b) => a.date.getTime() - b.date.getTime())\n\n return upcomingEvents.length > 0 ? (\n upcomingEvents.map((event, index) => {\n const yearsAgo = now.getFullYear() - new Date(event.originalDate).getFullYear()\n return (\n \n \n \n
\n
\n {event.date.getMonth() + 1}月\n {event.date.getDate()}\n
\n
\n

\n {event.member.fullName} {event.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {event.member.generation} 世 · {yearsAgo} 年\n {event.type === 'death' && ' · 已故'}\n

\n
\n
\n
\n
\n \n )\n })\n ) : (\n
\n 未来三个月暂无纪念日\n
\n )\n })()}\n
\n
\n
\n
\n\n {/* 统计图表标签页 */}\n \n \n \n\n {/* 迁徙记录标签页 */}\n \n \n \n 家族迁徙记录\n 记录家族成员的籍贯分布\n \n \n
\n {useMemo(() => {\n const members = Object.values(treeData.members)\n const locationGroups: Record = {}\n\n members.forEach(member => {\n if (member.ancestralHome) {\n if (!locationGroups[member.ancestralHome]) {\n locationGroups[member.ancestralHome] = []\n }\n locationGroups[member.ancestralHome].push(member)\n }\n })\n\n const sortedLocations = Object.entries(locationGroups)\n .sort((a, b) => b[1].length - a[1].length)\n\n return sortedLocations.length > 0 ? (\n sortedLocations.map(([location, locationMembers]) => (\n
\n
\n

{location}

\n \n {locationMembers.length} 人\n \n
\n
\n {locationMembers.map((member: any) => (\n \n
\n

{member.fullName}

\n

第 {member.generation} 世

\n
\n \n ))}\n
\n
\n ))\n ) : (\n
\n 暂无迁徙记录\n
\n )\n }, [treeData])}\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction StatCard({\n title,\n value,\n subtitle,\n icon,\n}: { title: string; value: string; subtitle: string; icon: React.ReactNode }) {\n return (\n \n \n
\n

{title}

\n
\n {icon}\n
\n
\n
\n {value}\n

{subtitle}

\n
\n
\n
\n \n )\n}\n"],"names":[],"mappings":"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"}}] + {"offset": {"line": 3101, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/page.tsx"],"sourcesContent":["\"use client\"\n\nimport type React from \"react\"\nimport Link from \"next/link\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { SiteHeader } from \"@/components/site-header\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\nimport { UserPlus, Network, Map, Calendar, Users, ArrowRight, Clock, Search, BookOpen, BarChart3, Calculator } from \"lucide-react\"\nimport { useFamily } from \"@/context/family-context\"\nimport { useMemo, useState, useEffect, useRef } from \"react\"\nimport { StatisticsCharts } from \"@/components/dashboard/statistics-charts\"\nimport { format } from \"date-fns\"\nimport { useSession } from \"next-auth/react\"\nimport { useSearchParams } from \"next/navigation\"\nimport { CollaboratorDialog } from \"@/components/tree/collaborator-dialog\"\n\ninterface ActivityLog {\n id: string\n action: string\n entityType: string\n entityId?: string | null\n entityName?: string | null\n timestamp: string\n user?: {\n name?: string | null\n email?: string | null\n }\n}\n\nexport default function DashboardPage() {\n const { treeData, isLoading, currentTree } = useFamily()\n const { data: session } = useSession()\n const [recentActivities, setRecentActivities] = useState([])\n \n // 加载最近的操作日志\n useEffect(() => {\n if (currentTree?.id && session?.user?.id) {\n fetch(`/api/trees/${currentTree.id}/activity-logs?limit=10`)\n .then(res => {\n if (!res.ok) {\n throw new Error('获取活动日志失败')\n }\n return res.json()\n })\n .then(data => {\n if (data.logs) {\n setRecentActivities(data.logs)\n }\n })\n .catch(err => {\n console.error('获取活动日志失败:', err)\n setRecentActivities([])\n })\n } else {\n setRecentActivities([])\n }\n }, [currentTree?.id, session?.user?.id])\n \n // 计算统计数据\n const stats = useMemo(() => {\n const members = Object.values(treeData.members)\n const totalMembers = members.length\n \n // 在世和已故人数\n const livingMembers = members.filter(m => !m.deathDate).length\n const deceasedMembers = members.filter(m => m.deathDate).length\n \n // 性别统计\n const maleCount = members.filter(m => m.gender === 'MALE').length\n const femaleCount = members.filter(m => m.gender === 'FEMALE').length\n \n // 计算最大代数(处理空数组的情况)\n const generations = members.map(m => m.generation || 0)\n const maxGeneration = generations.length > 0 ? Math.max(...generations) : 0\n \n // 计算最早出生年份\n const birthYears = members\n .map(m => m.birthDate ? new Date(m.birthDate).getFullYear() : null)\n .filter(y => y !== null) as number[]\n const earliestYear = birthYears.length > 0 ? Math.min(...birthYears) : new Date().getFullYear()\n const yearsSpan = birthYears.length > 0 ? new Date().getFullYear() - earliestYear : 0\n \n // 计算平均寿命(只统计已故成员)\n const deceasedWithAge = members.filter(m => m.birthDate && m.deathDate)\n const totalAge = deceasedWithAge.reduce((sum, m) => {\n const birthYear = new Date(m.birthDate!).getFullYear()\n const deathYear = new Date(m.deathDate!).getFullYear()\n return sum + (deathYear - birthYear)\n }, 0)\n const averageLifespan = deceasedWithAge.length > 0 \n ? Math.round(totalAge / deceasedWithAge.length) \n : 0\n \n return {\n totalMembers,\n livingMembers,\n deceasedMembers,\n maleCount,\n femaleCount,\n maxGeneration,\n yearsSpan,\n earliestYear,\n averageLifespan\n }\n }, [treeData])\n \n // 获取最近的成员(按ID排序,取最新的5个)\n const recentMembers = useMemo(() => {\n return Object.values(treeData.members)\n .sort((a, b) => parseInt(b.id) - parseInt(a.id))\n .slice(0, 5)\n }, [treeData])\n \n // 获取本月纪念日(生日和忌日)\n const monthlyAnniversaries = useMemo(() => {\n const currentMonth = new Date().getMonth() + 1\n const members = Object.values(treeData.members)\n \n const anniversaries: Array<{\n member: any\n type: 'birth' | 'death'\n date: string\n day: number\n }> = []\n \n members.forEach(member => {\n // 检查生日\n if (member.birthDate) {\n const birthMonth = new Date(member.birthDate).getMonth() + 1\n const birthDay = new Date(member.birthDate).getDate()\n if (birthMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'birth',\n date: member.birthDate,\n day: birthDay\n })\n }\n }\n \n // 检查忌日\n if (member.deathDate) {\n const deathMonth = new Date(member.deathDate).getMonth() + 1\n const deathDay = new Date(member.deathDate).getDate()\n if (deathMonth === currentMonth) {\n anniversaries.push({\n member,\n type: 'death',\n date: member.deathDate,\n day: deathDay\n })\n }\n }\n })\n \n // 按日期排序\n return anniversaries.sort((a, b) => a.day - b.day).slice(0, 5)\n }, [treeData])\n return (\n
\n \n\n
\n
\n
\n
\n

\n {currentTree?.name || '家族族谱'}\n

\n {currentTree?.currentUserRole && (\n \n {currentTree.currentUserRole === 'OWNER' ? '所有者' : \n currentTree.currentUserRole === 'EDITOR' ? '编辑者' : '查看者'}\n \n )}\n
\n

\n {currentTree?.description || '记录家族历史,传承家族文化'}\n {stats.maxGeneration > 0 && ` · 第 ${stats.maxGeneration} 代传人`}\n

\n
\n
\n {session && currentTree?.ownerId === session.user?.id && (\n \n )}\n {(currentTree?.currentUserRole === \"OWNER\" || currentTree?.currentUserRole === \"EDITOR\") && (\n \n \n \n )}\n
\n
\n\n
\n } \n />\n } \n />\n } \n />\n 0 ? Math.round(stats.livingMembers / stats.totalMembers * 100) : 0}%`} \n icon={} \n />\n 0 ? `${stats.averageLifespan} 岁` : '暂无数据'} \n subtitle={`已统计 ${stats.deceasedMembers} 人`} \n icon={} \n />\n \n \n
\n

性别比例

\n
\n \n
\n
\n
\n
\n \n 1\n \n :\n \n {stats.maleCount > 0 ? (stats.femaleCount / stats.maleCount).toFixed(2) : '0'}\n \n
\n
\n 男性 : 女性\n
\n \n {/* 双色进度条 */}\n
\n
\n \n \n 男性 {stats.maleCount}\n \n \n 女性 {stats.femaleCount}\n \n \n
\n
\n
0 ? (stats.maleCount / stats.totalMembers * 100) : 0}%` }}\n >\n {stats.totalMembers > 0 && stats.maleCount > 0 && (\n \n {Math.round(stats.maleCount / stats.totalMembers * 100)}%\n \n )}\n
\n
0 ? (stats.femaleCount / stats.totalMembers * 100) : 0}%` }}\n >\n {stats.totalMembers > 0 && stats.femaleCount > 0 && (\n \n {Math.round(stats.femaleCount / stats.totalMembers * 100)}%\n \n )}\n
\n
\n
\n
\n
\n
\n \n
\n\n \n
\n \n 最近更新\n 近期纪念日\n 统计图表\n 迁徙记录\n \n \n \n \n
\n\n \n
\n \n \n 近期修谱动态\n 记录家族成员的最新变动与修订\n \n \n \n
\n {recentActivities.length > 0 ? (\n recentActivities.map((activity, i) => (\n
\n
\n
\n
\n
\n
\n
\n \n {activity.action === 'create' ? '创建' :\n activity.action === 'update' ? '更新' :\n activity.action === 'delete' ? '删除' : '导入'}\n \n {activity.entityName || '未知'}\n \n {format(new Date(activity.timestamp), 'MM-dd HH:mm')}\n \n
\n

\n {activity.action === 'create' && '新增了家族成员'}\n {activity.action === 'update' && '更新了成员信息'}\n {activity.action === 'delete' && '删除了成员'}\n {activity.action === 'import' && '导入了家族数据'}\n

\n
\n
\n ))\n ) : (\n
\n 暂无修谱记录\n
\n )}\n
\n
\n
\n
\n\n
\n \n \n \n \n 本月祭祖/纪念\n \n \n \n {monthlyAnniversaries.length > 0 ? (\n monthlyAnniversaries.map((anniversary, index) => {\n const yearsAgo = new Date().getFullYear() - new Date(anniversary.date).getFullYear()\n return (\n \n
\n
\n \n {new Date(anniversary.date).getMonth() + 1}月\n \n {anniversary.day}\n
\n
\n

\n {anniversary.member.fullName} {anniversary.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {anniversary.member.generation} 世 · 距今 {yearsAgo} 年\n {anniversary.type === 'death' && ' · 已故'}\n

\n
\n
\n \n )\n })\n ) : (\n
\n 本月暂无纪念日\n
\n )}\n
\n
\n
\n
\n
\n\n {/* 近期纪念日标签页 */}\n \n \n \n 近期纪念日\n 未来三个月内的生日和忌日\n \n \n
\n {(() => {\n const now = new Date()\n const threeMonthsLater = new Date(now.getFullYear(), now.getMonth() + 3, now.getDate())\n const members = Object.values(treeData.members)\n const upcomingEvents: Array<{\n member: any\n type: 'birth' | 'death'\n date: Date\n originalDate: string\n }> = []\n\n members.forEach(member => {\n // 生日\n if (member.birthDate) {\n const birthDate = new Date(member.birthDate)\n const thisYearBirth = new Date(now.getFullYear(), birthDate.getMonth(), birthDate.getDate())\n if (thisYearBirth >= now && thisYearBirth <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'birth',\n date: thisYearBirth,\n originalDate: member.birthDate\n })\n }\n }\n\n // 忌日\n if (member.deathDate) {\n const deathDate = new Date(member.deathDate)\n const thisYearDeath = new Date(now.getFullYear(), deathDate.getMonth(), deathDate.getDate())\n if (thisYearDeath >= now && thisYearDeath <= threeMonthsLater) {\n upcomingEvents.push({\n member,\n type: 'death',\n date: thisYearDeath,\n originalDate: member.deathDate\n })\n }\n }\n })\n\n upcomingEvents.sort((a, b) => a.date.getTime() - b.date.getTime())\n\n return upcomingEvents.length > 0 ? (\n upcomingEvents.map((event, index) => {\n const yearsAgo = now.getFullYear() - new Date(event.originalDate).getFullYear()\n return (\n \n \n \n
\n
\n {event.date.getMonth() + 1}月\n {event.date.getDate()}\n
\n
\n

\n {event.member.fullName} {event.type === 'birth' ? '诞辰' : '忌日'}\n

\n

\n 第 {event.member.generation} 世 · {yearsAgo} 年\n {event.type === 'death' && ' · 已故'}\n

\n
\n
\n
\n
\n \n )\n })\n ) : (\n
\n 未来三个月暂无纪念日\n
\n )\n })()}\n
\n
\n
\n
\n\n {/* 统计图表标签页 */}\n \n \n \n\n {/* 迁徙记录标签页 */}\n \n \n \n 家族迁徙记录\n 记录家族成员的籍贯分布\n \n \n
\n {useMemo(() => {\n const members = Object.values(treeData.members)\n const locationGroups: Record = {}\n\n members.forEach(member => {\n if (member.ancestralHome) {\n if (!locationGroups[member.ancestralHome]) {\n locationGroups[member.ancestralHome] = []\n }\n locationGroups[member.ancestralHome].push(member)\n }\n })\n\n const sortedLocations = Object.entries(locationGroups)\n .sort((a, b) => b[1].length - a[1].length)\n\n return sortedLocations.length > 0 ? (\n sortedLocations.map(([location, locationMembers]) => (\n
\n
\n

{location}

\n \n {locationMembers.length} 人\n \n
\n
\n {locationMembers.map((member: any) => (\n \n
\n

{member.fullName}

\n

第 {member.generation} 世

\n
\n \n ))}\n
\n
\n ))\n ) : (\n
\n 暂无迁徙记录\n
\n )\n }, [treeData])}\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction StatCard({\n title,\n value,\n subtitle,\n icon,\n}: { title: string; value: string; subtitle: string; icon: React.ReactNode }) {\n return (\n \n \n
\n

{title}

\n
\n {icon}\n
\n
\n
\n {value}\n

{subtitle}

\n
\n
\n
\n \n )\n}\n"],"names":[],"mappings":"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"}}] } \ No newline at end of file diff --git a/.next/dev/static/chunks/[root-of-the-server]__6d150df4._.css b/.next/dev/static/chunks/[root-of-the-server]__6d150df4._.css index 3fd89f4b..dc07c7cf 100644 --- a/.next/dev/static/chunks/[root-of-the-server]__6d150df4._.css +++ b/.next/dev/static/chunks/[root-of-the-server]__6d150df4._.css @@ -2534,6 +2534,36 @@ } } + .bg-primary\/40 { + background-color: var(--primary); + } + + @supports (color: color-mix(in lab, red, red)) { + .bg-primary\/40 { + background-color: color-mix(in oklab, var(--primary) 40%, transparent); + } + } + + .bg-primary\/60 { + background-color: var(--primary); + } + + @supports (color: color-mix(in lab, red, red)) { + .bg-primary\/60 { + background-color: color-mix(in oklab, var(--primary) 60%, transparent); + } + } + + .bg-primary\/70 { + background-color: var(--primary); + } + + @supports (color: color-mix(in lab, red, red)) { + .bg-primary\/70 { + background-color: color-mix(in oklab, var(--primary) 70%, transparent); + } + } + .bg-purple-50 { background-color: var(--color-purple-50); } @@ -3286,6 +3316,16 @@ } } + .text-primary\/80 { + color: var(--primary); + } + + @supports (color: color-mix(in lab, red, red)) { + .text-primary\/80 { + color: color-mix(in oklab, var(--primary) 80%, transparent); + } + } + .text-purple-700 { color: var(--color-purple-700); } diff --git a/.next/dev/static/chunks/[root-of-the-server]__6d150df4._.css.map b/.next/dev/static/chunks/[root-of-the-server]__6d150df4._.css.map index 44974889..1d9df7e4 100644 --- a/.next/dev/static/chunks/[root-of-the-server]__6d150df4._.css.map +++ b/.next/dev/static/chunks/[root-of-the-server]__6d150df4._.css.map @@ -4,5 +4,5 @@ "sections": [ {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["turbopack:///[next]/internal/font/google/geist_a7695b8e.module.css"],"sourcesContent":["/* cyrillic */\n@font-face {\n font-family: 'Geist';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/geist/v4/gyByhwUxId8gMEwYGFWNOITddY4.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/geist/v4/gyByhwUxId8gMEwSGFWNOITddY4.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/geist/v4/gyByhwUxId8gMEwcGFWNOITd.woff2%22,%22preload%22:true,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n@font-face {\n font-family: 'Geist Fallback';\n src: local(\"Arial\");\n ascent-override: 95.94%;\ndescent-override: 28.16%;\nline-gap-override: 0.00%;\nsize-adjust: 104.76%;\n\n}\n.className {\n font-family: 'Geist', 'Geist Fallback';\n font-style: normal;\n\n}\n"],"names":[],"mappings":"AACA;;;;;;;;;AASA;;;;;;;;;AASA;;;;;;;;;AAQA;;;;;;;;;AASA","ignoreList":[0]}}, {"offset": {"line": 43, "column": 0}, "map": {"version":3,"sources":["turbopack:///[next]/internal/font/google/geist_mono_354fc78.module.css"],"sourcesContent":["/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/geistmono/v4/or3nQ6H-1_WfwkMZI_qYFrMdmhHkjkotbA.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/geistmono/v4/or3nQ6H-1_WfwkMZI_qYFrkdmhHkjkotbA.woff2%22,%22preload%22:false,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(@vercel/turbopack-next/internal/font/google/font?{%22url%22:%22https://fonts.gstatic.com/s/geistmono/v4/or3nQ6H-1_WfwkMZI_qYFrcdmhHkjko.woff2%22,%22preload%22:true,%22has_size_adjust%22:true}) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n@font-face {\n font-family: 'Geist Mono Fallback';\n src: local(\"Arial\");\n ascent-override: 74.67%;\ndescent-override: 21.92%;\nline-gap-override: 0.00%;\nsize-adjust: 134.59%;\n\n}\n.className {\n font-family: 'Geist Mono', 'Geist Mono Fallback';\n font-style: normal;\n\n}\n"],"names":[],"mappings":"AACA;;;;;;;;;AASA;;;;;;;;;AASA;;;;;;;;;AAQA;;;;;;;;;AASA","ignoreList":[0]}}, - {"offset": {"line": 85, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/globals.css"],"sourcesContent":["/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-orange-50: oklch(98% 0.016 73.684);\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-orange-700: oklch(55.3% 0.195 38.402);\n --color-amber-700: oklch(55.5% 0.163 48.998);\n --color-yellow-50: oklch(98.7% 0.026 102.212);\n --color-yellow-200: oklch(94.5% 0.129 101.54);\n --color-yellow-400: oklch(85.2% 0.199 91.936);\n --color-yellow-800: oklch(47.6% 0.114 61.907);\n --color-yellow-900: oklch(42.1% 0.095 57.708);\n --color-yellow-950: oklch(28.6% 0.066 53.813);\n --color-green-50: oklch(98.2% 0.018 155.826);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-200: oklch(92.5% 0.084 155.995);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-green-600: oklch(62.7% 0.194 149.214);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-100: oklch(93.2% 0.032 255.585);\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-blue-900: oklch(37.9% 0.146 265.522);\n --color-blue-950: oklch(28.2% 0.091 267.935);\n --color-purple-50: oklch(97.7% 0.014 308.299);\n --color-purple-100: oklch(94.6% 0.033 307.174);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-500: oklch(62.7% 0.265 303.9);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-pink-100: oklch(94.8% 0.028 342.258);\n --color-pink-400: oklch(71.8% 0.202 349.761);\n --color-pink-500: oklch(65.6% 0.241 354.308);\n --color-pink-600: oklch(59.2% 0.249 0.584);\n --color-pink-700: oklch(52.5% 0.223 3.958);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-neutral-100: oklch(97% 0 0);\n --color-neutral-200: oklch(92.2% 0 0);\n --color-neutral-400: oklch(70.8% 0 0);\n --color-neutral-500: oklch(55.6% 0 0);\n --color-neutral-600: oklch(43.9% 0 0);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-sm: 24rem;\n --container-md: 28rem;\n --container-lg: 32rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n --container-6xl: 72rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-tight: -0.025em;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --tracking-widest: 0.1em;\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-normal: 1.5;\n --leading-relaxed: 1.625;\n --radius-xs: 0.125rem;\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --aspect-video: 16 / 9;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: \"Geist\", \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\n --default-mono-font-family: \"Geist Mono\", monospace;\n --color-border: var(--border);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .\\@container\\/card-header {\n container-type: inline-size;\n container-name: card-header;\n }\n .\\@container\\/field-group {\n container-type: inline-size;\n container-name: field-group;\n }\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .invisible {\n visibility: hidden;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .inset-x-0 {\n inset-inline: calc(var(--spacing) * 0);\n }\n .inset-y-0 {\n inset-block: calc(var(--spacing) * 0);\n }\n .-top-1 {\n top: calc(var(--spacing) * -1);\n }\n .-top-3 {\n top: calc(var(--spacing) * -3);\n }\n .-top-12 {\n top: calc(var(--spacing) * -12);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1 {\n top: calc(var(--spacing) * 1);\n }\n .top-1\\.5 {\n top: calc(var(--spacing) * 1.5);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .top-2 {\n top: calc(var(--spacing) * 2);\n }\n .top-2\\.5 {\n top: calc(var(--spacing) * 2.5);\n }\n .top-3\\.5 {\n top: calc(var(--spacing) * 3.5);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .top-20 {\n top: calc(var(--spacing) * 20);\n }\n .top-\\[1px\\] {\n top: 1px;\n }\n .top-\\[50\\%\\] {\n top: 50%;\n }\n .top-\\[60\\%\\] {\n top: 60%;\n }\n .top-full {\n top: 100%;\n }\n .-right-0\\.5 {\n right: calc(var(--spacing) * -0.5);\n }\n .-right-1 {\n right: calc(var(--spacing) * -1);\n }\n .-right-12 {\n right: calc(var(--spacing) * -12);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-1 {\n right: calc(var(--spacing) * 1);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-3 {\n right: calc(var(--spacing) * 3);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .-bottom-0\\.5 {\n bottom: calc(var(--spacing) * -0.5);\n }\n .-bottom-1 {\n bottom: calc(var(--spacing) * -1);\n }\n .-bottom-12 {\n bottom: calc(var(--spacing) * -12);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-2 {\n bottom: calc(var(--spacing) * 2);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .-left-12 {\n left: calc(var(--spacing) * -12);\n }\n .-left-16 {\n left: calc(var(--spacing) * -16);\n }\n .-left-\\[9px\\] {\n left: calc(9px * -1);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-2 {\n left: calc(var(--spacing) * 2);\n }\n .left-2\\.5 {\n left: calc(var(--spacing) * 2.5);\n }\n .left-4 {\n left: calc(var(--spacing) * 4);\n }\n .left-\\[50\\%\\] {\n left: 50%;\n }\n .isolate {\n isolation: isolate;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-30 {\n z-index: 30;\n }\n .z-50 {\n z-index: 50;\n }\n .z-\\[1\\] {\n z-index: 1;\n }\n .z-\\[100\\] {\n z-index: 100;\n }\n .order-first {\n order: -9999;\n }\n .order-last {\n order: 9999;\n }\n .col-span-full {\n grid-column: 1 / -1;\n }\n .col-start-2 {\n grid-column-start: 2;\n }\n .row-span-2 {\n grid-row: span 2 / span 2;\n }\n .row-start-1 {\n grid-row-start: 1;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .\\!m-0 {\n margin: calc(var(--spacing) * 0) !important;\n }\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n }\n .mx-2 {\n margin-inline: calc(var(--spacing) * 2);\n }\n .mx-3\\.5 {\n margin-inline: calc(var(--spacing) * 3.5);\n }\n .mx-4 {\n margin-inline: calc(var(--spacing) * 4);\n }\n .mx-auto {\n margin-inline: auto;\n }\n .-my-2 {\n margin-block: calc(var(--spacing) * -2);\n }\n .my-0 {\n margin-block: calc(var(--spacing) * 0);\n }\n .my-0\\.5 {\n margin-block: calc(var(--spacing) * 0.5);\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .-mt-2 {\n margin-top: calc(var(--spacing) * -2);\n }\n .-mt-4 {\n margin-top: calc(var(--spacing) * -4);\n }\n .mt-0 {\n margin-top: calc(var(--spacing) * 0);\n }\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * 0.5);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-1\\.5 {\n margin-top: calc(var(--spacing) * 1.5);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-auto {\n margin-top: auto;\n }\n .mr-1 {\n margin-right: calc(var(--spacing) * 1);\n }\n .mr-2 {\n margin-right: calc(var(--spacing) * 2);\n }\n .mr-8 {\n margin-right: calc(var(--spacing) * 8);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .mb-8 {\n margin-bottom: calc(var(--spacing) * 8);\n }\n .-ml-4 {\n margin-left: calc(var(--spacing) * -4);\n }\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n .ml-2 {\n margin-left: calc(var(--spacing) * 2);\n }\n .ml-4 {\n margin-left: calc(var(--spacing) * 4);\n }\n .ml-6 {\n margin-left: calc(var(--spacing) * 6);\n }\n .ml-auto {\n margin-left: auto;\n }\n .line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n .line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline-flex {\n display: inline-flex;\n }\n .table {\n display: table;\n }\n .table-caption {\n display: table-caption;\n }\n .table-cell {\n display: table-cell;\n }\n .table-row {\n display: table-row;\n }\n .field-sizing-content {\n field-sizing: content;\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .aspect-video {\n aspect-ratio: var(--aspect-video);\n }\n .size-\\(--cell-size\\) {\n width: var(--cell-size);\n height: var(--cell-size);\n }\n .size-2 {\n width: calc(var(--spacing) * 2);\n height: calc(var(--spacing) * 2);\n }\n .size-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n .size-3 {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n .size-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n .size-4 {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n .size-6 {\n width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6);\n }\n .size-7 {\n width: calc(var(--spacing) * 7);\n height: calc(var(--spacing) * 7);\n }\n .size-8 {\n width: calc(var(--spacing) * 8);\n height: calc(var(--spacing) * 8);\n }\n .size-9 {\n width: calc(var(--spacing) * 9);\n height: calc(var(--spacing) * 9);\n }\n .size-10 {\n width: calc(var(--spacing) * 10);\n height: calc(var(--spacing) * 10);\n }\n .size-auto {\n width: auto;\n height: auto;\n }\n .size-full {\n width: 100%;\n height: 100%;\n }\n .h-\\(--cell-size\\) {\n height: var(--cell-size);\n }\n .h-1 {\n height: calc(var(--spacing) * 1);\n }\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-2\\.5 {\n height: calc(var(--spacing) * 2.5);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-7 {\n height: calc(var(--spacing) * 7);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-14 {\n height: calc(var(--spacing) * 14);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-20 {\n height: calc(var(--spacing) * 20);\n }\n .h-32 {\n height: calc(var(--spacing) * 32);\n }\n .h-\\[1\\.15rem\\] {\n height: 1.15rem;\n }\n .h-\\[300px\\] {\n height: 300px;\n }\n .h-\\[400px\\] {\n height: 400px;\n }\n .h-\\[600px\\] {\n height: 600px;\n }\n .h-\\[calc\\(100\\%-1px\\)\\] {\n height: calc(100% - 1px);\n }\n .h-\\[var\\(--radix-navigation-menu-viewport-height\\)\\] {\n height: var(--radix-navigation-menu-viewport-height);\n }\n .h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n }\n .h-auto {\n height: auto;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .h-screen {\n height: 100vh;\n }\n .h-svh {\n height: 100svh;\n }\n .max-h-\\(--radix-context-menu-content-available-height\\) {\n max-height: var(--radix-context-menu-content-available-height);\n }\n .max-h-\\(--radix-dropdown-menu-content-available-height\\) {\n max-height: var(--radix-dropdown-menu-content-available-height);\n }\n .max-h-\\(--radix-select-content-available-height\\) {\n max-height: var(--radix-select-content-available-height);\n }\n .max-h-96 {\n max-height: calc(var(--spacing) * 96);\n }\n .max-h-\\[60vh\\] {\n max-height: 60vh;\n }\n .max-h-\\[70vh\\] {\n max-height: 70vh;\n }\n .max-h-\\[300px\\] {\n max-height: 300px;\n }\n .max-h-screen {\n max-height: 100vh;\n }\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n .min-h-4 {\n min-height: calc(var(--spacing) * 4);\n }\n .min-h-16 {\n min-height: calc(var(--spacing) * 16);\n }\n .min-h-\\[200px\\] {\n min-height: 200px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .min-h-svh {\n min-height: 100svh;\n }\n .w-\\(--cell-size\\) {\n width: var(--cell-size);\n }\n .w-\\(--sidebar-width\\) {\n width: var(--sidebar-width);\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-1 {\n width: calc(var(--spacing) * 1);\n }\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n .w-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n }\n .w-3 {\n width: calc(var(--spacing) * 3);\n }\n .w-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n }\n .w-3\\/4 {\n width: calc(3/4 * 100%);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-7 {\n width: calc(var(--spacing) * 7);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-9 {\n width: calc(var(--spacing) * 9);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-14 {\n width: calc(var(--spacing) * 14);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-32 {\n width: calc(var(--spacing) * 32);\n }\n .w-48 {\n width: calc(var(--spacing) * 48);\n }\n .w-56 {\n width: calc(var(--spacing) * 56);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n .w-\\[100px\\] {\n width: 100px;\n }\n .w-\\[200px\\] {\n width: 200px;\n }\n .w-\\[var\\(--radix-dropdown-menu-trigger-width\\)\\] {\n width: var(--radix-dropdown-menu-trigger-width);\n }\n .w-auto {\n width: auto;\n }\n .w-fit {\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .w-max {\n width: max-content;\n }\n .w-px {\n width: 1px;\n }\n .max-w-\\(--skeleton-width\\) {\n max-width: var(--skeleton-width);\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-3xl {\n max-width: var(--container-3xl);\n }\n .max-w-4xl {\n max-width: var(--container-4xl);\n }\n .max-w-6xl {\n max-width: var(--container-6xl);\n }\n .max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n }\n .max-w-full {\n max-width: 100%;\n }\n .max-w-max {\n max-width: max-content;\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .max-w-none {\n max-width: none;\n }\n .max-w-sm {\n max-width: var(--container-sm);\n }\n .min-w-\\(--cell-size\\) {\n min-width: var(--cell-size);\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n .min-w-5 {\n min-width: calc(var(--spacing) * 5);\n }\n .min-w-8 {\n min-width: calc(var(--spacing) * 8);\n }\n .min-w-9 {\n min-width: calc(var(--spacing) * 9);\n }\n .min-w-10 {\n min-width: calc(var(--spacing) * 10);\n }\n .min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n .min-w-\\[12rem\\] {\n min-width: 12rem;\n }\n .min-w-\\[200px\\] {\n min-width: 200px;\n }\n .min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n }\n .min-w-fit {\n min-width: fit-content;\n }\n .min-w-full {\n min-width: 100%;\n }\n .flex-1 {\n flex: 1;\n }\n .flex-shrink {\n flex-shrink: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .grow {\n flex-grow: 1;\n }\n .grow-0 {\n flex-grow: 0;\n }\n .basis-full {\n flex-basis: 100%;\n }\n .caption-bottom {\n caption-side: bottom;\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .origin-\\(--radix-context-menu-content-transform-origin\\) {\n transform-origin: var(--radix-context-menu-content-transform-origin);\n }\n .origin-\\(--radix-dropdown-menu-content-transform-origin\\) {\n transform-origin: var(--radix-dropdown-menu-content-transform-origin);\n }\n .origin-\\(--radix-hover-card-content-transform-origin\\) {\n transform-origin: var(--radix-hover-card-content-transform-origin);\n }\n .origin-\\(--radix-menubar-content-transform-origin\\) {\n transform-origin: var(--radix-menubar-content-transform-origin);\n }\n .origin-\\(--radix-popover-content-transform-origin\\) {\n transform-origin: var(--radix-popover-content-transform-origin);\n }\n .origin-\\(--radix-select-content-transform-origin\\) {\n transform-origin: var(--radix-select-content-transform-origin);\n }\n .origin-\\(--radix-tooltip-content-transform-origin\\) {\n transform-origin: var(--radix-tooltip-content-transform-origin);\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-px {\n --tw-translate-x: -1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-px {\n --tw-translate-x: 1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0\\.5 {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[2px\\] {\n --tw-translate-y: 2px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[calc\\(-50\\%_-_2px\\)\\] {\n --tw-translate-y: calc(-50% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .rotate-45 {\n rotate: 45deg;\n }\n .rotate-90 {\n rotate: 90deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-caret-blink {\n animation: caret-blink 1.25s ease-out infinite;\n }\n .animate-in {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-move {\n cursor: move;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .cursor-text {\n cursor: text;\n }\n .touch-none {\n touch-action: none;\n }\n .resize {\n resize: both;\n }\n .resize-none {\n resize: none;\n }\n .scroll-my-1 {\n scroll-margin-block: calc(var(--spacing) * 1);\n }\n .scroll-py-1 {\n scroll-padding-block: calc(var(--spacing) * 1);\n }\n .list-inside {\n list-style-position: inside;\n }\n .list-disc {\n list-style-type: disc;\n }\n .list-none {\n list-style-type: none;\n }\n .auto-rows-min {\n grid-auto-rows: min-content;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-\\[0_1fr\\] {\n grid-template-columns: 0 1fr;\n }\n .grid-rows-\\[auto_auto\\] {\n grid-template-rows: auto auto;\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-col-reverse {\n flex-direction: column-reverse;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-baseline {\n align-items: baseline;\n }\n .items-center {\n align-items: center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .justify-items-start {\n justify-items: start;\n }\n .gap-0\\.5 {\n gap: calc(var(--spacing) * 0.5);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-2\\.5 {\n gap: calc(var(--spacing) * 2.5);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-7 {\n gap: calc(var(--spacing) * 7);\n }\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n .space-y-0 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-0\\.5 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-1 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-8 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-x-4 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .gap-y-0\\.5 {\n row-gap: calc(var(--spacing) * 0.5);\n }\n .self-start {\n align-self: flex-start;\n }\n .self-stretch {\n align-self: stretch;\n }\n .justify-self-end {\n justify-self: flex-end;\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-\\[2px\\] {\n border-radius: 2px;\n }\n .rounded-\\[4px\\] {\n border-radius: 4px;\n }\n .rounded-\\[calc\\(var\\(--radius\\)-5px\\)\\] {\n border-radius: calc(var(--radius) - 5px);\n }\n .rounded-\\[inherit\\] {\n border-radius: inherit;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius);\n }\n .rounded-md {\n border-radius: calc(var(--radius) - 2px);\n }\n .rounded-none {\n border-radius: 0;\n }\n .rounded-sm {\n border-radius: calc(var(--radius) - 4px);\n }\n .rounded-xl {\n border-radius: calc(var(--radius) + 4px);\n }\n .rounded-xs {\n border-radius: var(--radius-xs);\n }\n .rounded-l-md {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n .rounded-tl-sm {\n border-top-left-radius: calc(var(--radius) - 4px);\n }\n .rounded-r-md {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-4 {\n border-style: var(--tw-border-style);\n border-width: 4px;\n }\n .border-\\[1\\.5px\\] {\n border-style: var(--tw-border-style);\n border-width: 1.5px;\n }\n .border-y {\n border-block-style: var(--tw-border-style);\n border-block-width: 1px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-l-2 {\n border-left-style: var(--tw-border-style);\n border-left-width: 2px;\n }\n .border-l-4 {\n border-left-style: var(--tw-border-style);\n border-left-width: 4px;\n }\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .border-\\(--color-border\\) {\n border-color: var(--color-border);\n }\n .border-background {\n border-color: var(--background);\n }\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n .border-blue-500 {\n border-color: var(--color-blue-500);\n }\n .border-border {\n border-color: var(--border);\n }\n .border-border\\/40 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 40%, transparent);\n }\n }\n .border-border\\/50 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 50%, transparent);\n }\n }\n .border-border\\/60 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 60%, transparent);\n }\n }\n .border-destructive {\n border-color: var(--destructive);\n }\n .border-destructive\\/20 {\n border-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-green-200 {\n border-color: var(--color-green-200);\n }\n .border-input {\n border-color: var(--input);\n }\n .border-muted-foreground\\/50 {\n border-color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--muted-foreground) 50%, transparent);\n }\n }\n .border-neutral-200 {\n border-color: var(--color-neutral-200);\n }\n .border-orange-200 {\n border-color: var(--color-orange-200);\n }\n .border-primary {\n border-color: var(--primary);\n }\n .border-primary\\/20 {\n border-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--primary) 20%, transparent);\n }\n }\n .border-purple-200 {\n border-color: var(--color-purple-200);\n }\n .border-red-500 {\n border-color: var(--color-red-500);\n }\n .border-sidebar-border {\n border-color: var(--sidebar-border);\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-white {\n border-color: var(--color-white);\n }\n .border-yellow-400 {\n border-color: var(--color-yellow-400);\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .border-l-transparent {\n border-left-color: transparent;\n }\n .bg-\\(--color-bg\\) {\n background-color: var(--color-bg);\n }\n .bg-accent {\n background-color: var(--accent);\n }\n .bg-background {\n background-color: var(--background);\n }\n .bg-background\\/50 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 50%, transparent);\n }\n }\n .bg-background\\/60 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 60%, transparent);\n }\n }\n .bg-background\\/80 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 80%, transparent);\n }\n }\n .bg-background\\/90 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 90%, transparent);\n }\n }\n .bg-background\\/95 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 95%, transparent);\n }\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n .bg-blue-500 {\n background-color: var(--color-blue-500);\n }\n .bg-border {\n background-color: var(--border);\n }\n .bg-card {\n background-color: var(--card);\n }\n .bg-card\\/50 {\n background-color: var(--card);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--card) 50%, transparent);\n }\n }\n .bg-destructive {\n background-color: var(--destructive);\n }\n .bg-destructive\\/10 {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 10%, transparent);\n }\n }\n .bg-destructive\\/15 {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 15%, transparent);\n }\n }\n .bg-foreground {\n background-color: var(--foreground);\n }\n .bg-foreground\\/25 {\n background-color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--foreground) 25%, transparent);\n }\n }\n .bg-foreground\\/50 {\n background-color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--foreground) 50%, transparent);\n }\n }\n .bg-foreground\\/60 {\n background-color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--foreground) 60%, transparent);\n }\n }\n .bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-gray-500 {\n background-color: var(--color-gray-500);\n }\n .bg-green-50 {\n background-color: var(--color-green-50);\n }\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n .bg-input {\n background-color: var(--input);\n }\n .bg-muted {\n background-color: var(--muted);\n }\n .bg-muted\\/30 {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 30%, transparent);\n }\n }\n .bg-muted\\/50 {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 50%, transparent);\n }\n }\n .bg-neutral-100 {\n background-color: var(--color-neutral-100);\n }\n .bg-neutral-400 {\n background-color: var(--color-neutral-400);\n }\n .bg-orange-50 {\n background-color: var(--color-orange-50);\n }\n .bg-orange-500 {\n background-color: var(--color-orange-500);\n }\n .bg-pink-100 {\n background-color: var(--color-pink-100);\n }\n .bg-pink-500 {\n background-color: var(--color-pink-500);\n }\n .bg-popover {\n background-color: var(--popover);\n }\n .bg-primary {\n background-color: var(--primary);\n }\n .bg-primary\\/5 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 5%, transparent);\n }\n }\n .bg-primary\\/10 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 10%, transparent);\n }\n }\n .bg-primary\\/20 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 20%, transparent);\n }\n }\n .bg-purple-50 {\n background-color: var(--color-purple-50);\n }\n .bg-purple-100 {\n background-color: var(--color-purple-100);\n }\n .bg-purple-500 {\n background-color: var(--color-purple-500);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-red-500 {\n background-color: var(--color-red-500);\n }\n .bg-secondary {\n background-color: var(--secondary);\n }\n .bg-sidebar {\n background-color: var(--sidebar);\n }\n .bg-sidebar-border {\n background-color: var(--sidebar-border);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-yellow-50 {\n background-color: var(--color-yellow-50);\n }\n .bg-gradient-to-br {\n --tw-gradient-position: to bottom right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-r {\n --tw-gradient-position: to right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-\\[url\\(\\'https\\:\\/\\/www\\.transparenttextures\\.com\\/patterns\\/rice-paper\\.png\\'\\)\\] {\n background-image: url('https://www.transparenttextures.com/patterns/rice-paper.png');\n }\n .from-blue-500 {\n --tw-gradient-from: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-blue-600 {\n --tw-gradient-from: var(--color-blue-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-card {\n --tw-gradient-from: var(--card);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-pink-500 {\n --tw-gradient-from: var(--color-pink-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-primary\\/5 {\n --tw-gradient-from: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--primary) 5%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-primary\\/50 {\n --tw-gradient-from: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--primary) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .via-background {\n --tw-gradient-via: var(--background);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-primary {\n --tw-gradient-via: var(--primary);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-purple-500 {\n --tw-gradient-via: var(--color-purple-500);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .to-blue-400 {\n --tw-gradient-to: var(--color-blue-400);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-blue-500 {\n --tw-gradient-to: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-card\\/50 {\n --tw-gradient-to: var(--card);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--card) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-pink-400 {\n --tw-gradient-to: var(--color-pink-400);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-pink-500 {\n --tw-gradient-to: var(--color-pink-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-pink-600 {\n --tw-gradient-to: var(--color-pink-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-primary\\/50 {\n --tw-gradient-to: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--primary) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-secondary\\/5 {\n --tw-gradient-to: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--secondary) 5%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .bg-repeat {\n background-repeat: repeat;\n }\n .fill-current {\n fill: currentcolor;\n }\n .fill-foreground {\n fill: var(--foreground);\n }\n .fill-primary {\n fill: var(--primary);\n }\n .object-contain {\n object-fit: contain;\n }\n .object-cover {\n object-fit: cover;\n }\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .p-12 {\n padding: calc(var(--spacing) * 12);\n }\n .p-\\[3px\\] {\n padding: 3px;\n }\n .p-px {\n padding: 1px;\n }\n .px-\\(--cell-size\\) {\n padding-inline: var(--cell-size);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6);\n }\n .py-8 {\n padding-block: calc(var(--spacing) * 8);\n }\n .py-10 {\n padding-block: calc(var(--spacing) * 10);\n }\n .py-12 {\n padding-block: calc(var(--spacing) * 12);\n }\n .pt-0 {\n padding-top: calc(var(--spacing) * 0);\n }\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-20 {\n padding-top: calc(var(--spacing) * 20);\n }\n .pr-1 {\n padding-right: calc(var(--spacing) * 1);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pr-2\\.5 {\n padding-right: calc(var(--spacing) * 2.5);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pr-8 {\n padding-right: calc(var(--spacing) * 8);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pb-6 {\n padding-bottom: calc(var(--spacing) * 6);\n }\n .pb-8 {\n padding-bottom: calc(var(--spacing) * 8);\n }\n .pb-20 {\n padding-bottom: calc(var(--spacing) * 20);\n }\n .pl-1 {\n padding-left: calc(var(--spacing) * 1);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-8 {\n padding-left: calc(var(--spacing) * 8);\n }\n .pl-9 {\n padding-left: calc(var(--spacing) * 9);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .align-middle {\n vertical-align: middle;\n }\n .font-mono {\n font-family: \"Geist Mono\", monospace;\n }\n .font-sans {\n font-family: \"Geist\", \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\n }\n .font-serif {\n font-family: \"Songti SC\", \"STSong\", \"SimSun\", \"Times New Roman\", serif;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-3xl {\n font-size: var(--text-3xl);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n .text-5xl {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-sm\\/relaxed {\n font-size: var(--text-sm);\n line-height: var(--leading-relaxed);\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n }\n .text-\\[9px\\] {\n font-size: 9px;\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .text-\\[11px\\] {\n font-size: 11px;\n }\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .leading-normal {\n --tw-leading: var(--leading-normal);\n line-height: var(--leading-normal);\n }\n .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n .leading-snug {\n --tw-leading: var(--leading-snug);\n line-height: var(--leading-snug);\n }\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .text-balance {\n text-wrap: balance;\n }\n .break-words {\n overflow-wrap: break-word;\n }\n .break-all {\n word-break: break-all;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .whitespace-pre-line {\n white-space: pre-line;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-accent-foreground {\n color: var(--accent-foreground);\n }\n .text-amber-700 {\n color: var(--color-amber-700);\n }\n .text-background {\n color: var(--background);\n }\n .text-blue-400 {\n color: var(--color-blue-400);\n }\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n .text-card-foreground {\n color: var(--card-foreground);\n }\n .text-current {\n color: currentcolor;\n }\n .text-destructive {\n color: var(--destructive);\n }\n .text-destructive-foreground {\n color: var(--destructive-foreground);\n }\n .text-foreground {\n color: var(--foreground);\n }\n .text-foreground\\/50 {\n color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--foreground) 50%, transparent);\n }\n }\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n .text-green-600 {\n color: var(--color-green-600);\n }\n .text-green-700 {\n color: var(--color-green-700);\n }\n .text-green-800 {\n color: var(--color-green-800);\n }\n .text-muted-foreground {\n color: var(--muted-foreground);\n }\n .text-muted-foreground\\/60 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 60%, transparent);\n }\n }\n .text-muted-foreground\\/70 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 70%, transparent);\n }\n }\n .text-muted-foreground\\/80 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 80%, transparent);\n }\n }\n .text-neutral-500 {\n color: var(--color-neutral-500);\n }\n .text-neutral-600 {\n color: var(--color-neutral-600);\n }\n .text-orange-700 {\n color: var(--color-orange-700);\n }\n .text-pink-400 {\n color: var(--color-pink-400);\n }\n .text-pink-600 {\n color: var(--color-pink-600);\n }\n .text-pink-700 {\n color: var(--color-pink-700);\n }\n .text-popover-foreground {\n color: var(--popover-foreground);\n }\n .text-primary {\n color: var(--primary);\n }\n .text-primary-foreground {\n color: var(--primary-foreground);\n }\n .text-primary\\/70 {\n color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--primary) 70%, transparent);\n }\n }\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n .text-red-400 {\n color: var(--color-red-400);\n }\n .text-red-600 {\n color: var(--color-red-600);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-secondary-foreground {\n color: var(--secondary-foreground);\n }\n .text-sidebar-foreground {\n color: var(--sidebar-foreground);\n }\n .text-sidebar-foreground\\/70 {\n color: var(--sidebar-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--sidebar-foreground) 70%, transparent);\n }\n }\n .text-white {\n color: var(--color-white);\n }\n .text-yellow-800 {\n color: var(--color-yellow-800);\n }\n .uppercase {\n text-transform: uppercase;\n }\n .italic {\n font-style: italic;\n }\n .tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .underline {\n text-decoration-line: underline;\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-20 {\n opacity: 20%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-70 {\n opacity: 70%;\n }\n .opacity-90 {\n opacity: 90%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-border\\)\\)\\] {\n --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-border)));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-none {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-0 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-4 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-background {\n --tw-ring-color: var(--background);\n }\n .ring-blue-200 {\n --tw-ring-color: var(--color-blue-200);\n }\n .ring-ring\\/50 {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n .ring-sidebar-ring {\n --tw-ring-color: var(--sidebar-ring);\n }\n .ring-yellow-200 {\n --tw-ring-color: var(--color-yellow-200);\n }\n .ring-offset-background {\n --tw-ring-offset-color: var(--background);\n }\n .outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .backdrop-blur {\n --tw-backdrop-blur: blur(8px);\n -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,);\n 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,);\n }\n .transition {\n 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;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[color\\,box-shadow\\] {\n transition-property: color,box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[left\\,right\\,width\\] {\n transition-property: left,right,width;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[margin\\,opacity\\] {\n transition-property: margin,opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[width\\,height\\,padding\\] {\n transition-property: width,height,padding;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[width\\] {\n transition-property: width;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-none {\n transition-property: none;\n }\n .duration-100 {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .duration-500 {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n .duration-1000 {\n --tw-duration: 1000ms;\n transition-duration: 1000ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .ease-linear {\n --tw-ease: linear;\n transition-timing-function: linear;\n }\n .ease-out {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n .fade-in-0 {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .slide-in-from-bottom-5 {\n --tw-enter-translate-y: calc(5*var(--spacing));\n --tw-enter-translate-y: calc(.05*100%);\n }\n .zoom-in-95 {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n .\\[--cell-size\\:--spacing\\(8\\)\\] {\n --cell-size: calc(var(--spacing) * 8);\n }\n .slide-in-from-top-2 {\n --tw-enter-translate-y: calc(2*var(--spacing)*-1);\n }\n .group-last\\:hidden {\n &:is(:where(.group):last-child *) {\n display: none;\n }\n }\n .group-focus-within\\/menu-item\\:opacity-100 {\n &:is(:where(.group\\/menu-item):focus-within *) {\n opacity: 100%;\n }\n }\n .group-hover\\:scale-110 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n --tw-scale-x: 110%;\n --tw-scale-y: 110%;\n --tw-scale-z: 110%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .group-hover\\:bg-primary\\/20 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 20%, transparent);\n }\n }\n }\n }\n .group-hover\\:opacity-100 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-hover\\/menu-item\\:opacity-100 {\n &:is(:where(.group\\/menu-item):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-has-data-\\[sidebar\\=menu-action\\]\\/menu-item\\:pr-8 {\n &:is(:where(.group\\/menu-item):has(*[data-sidebar=\"menu-action\"]) *) {\n padding-right: calc(var(--spacing) * 8);\n }\n }\n .group-has-\\[\\[data-orientation\\=horizontal\\]\\]\\/field\\:text-balance {\n &:is(:where(.group\\/field):has(*:is([data-orientation=horizontal])) *) {\n text-wrap: balance;\n }\n }\n .group-has-\\[\\[data-slot\\=item-description\\]\\]\\/item\\:translate-y-0\\.5 {\n &:is(:where(.group\\/item):has(*:is([data-slot=item-description])) *) {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-has-\\[\\[data-slot\\=item-description\\]\\]\\/item\\:self-start {\n &:is(:where(.group\\/item):has(*:is([data-slot=item-description])) *) {\n align-self: flex-start;\n }\n }\n .group-has-\\[\\>input\\]\\/input-group\\:pt-2\\.5 {\n &:is(:where(.group\\/input-group):has(>input) *) {\n padding-top: calc(var(--spacing) * 2.5);\n }\n }\n .group-has-\\[\\>input\\]\\/input-group\\:pb-2\\.5 {\n &:is(:where(.group\\/input-group):has(>input) *) {\n padding-bottom: calc(var(--spacing) * 2.5);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:-mt-8 {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n margin-top: calc(var(--spacing) * -8);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:hidden {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n display: none;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:size-8\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--spacing) * 8) !important;\n height: calc(var(--spacing) * 8) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\(--sidebar-width-icon\\) {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: var(--sidebar-width-icon);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\)\\] {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)));\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\+2px\\)\\] {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)) + 2px);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:overflow-hidden {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n overflow: hidden;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:p-0\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n padding: calc(var(--spacing) * 0) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:p-2\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n padding: calc(var(--spacing) * 2) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:opacity-0 {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n opacity: 0%;\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:right-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n right: calc(var(--sidebar-width) * -1);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:left-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n left: calc(var(--sidebar-width) * -1);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:w-0 {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n width: calc(var(--spacing) * 0);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:translate-x-0 {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-data-\\[disabled\\=true\\]\\:pointer-events-none {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n pointer-events: none;\n }\n }\n .group-data-\\[disabled\\=true\\]\\:opacity-50 {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .group-data-\\[disabled\\=true\\]\\/field\\:opacity-50 {\n &:is(:where(.group\\/field)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .group-data-\\[disabled\\=true\\]\\/input-group\\:opacity-50 {\n &:is(:where(.group\\/input-group)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:relative {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n position: relative;\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:z-10 {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n z-index: 10;\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:border-ring {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n border-color: var(--ring);\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:ring-\\[3px\\] {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:ring-ring\\/50 {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .group-data-\\[side\\=left\\]\\:-right-4 {\n &:is(:where(.group)[data-side=\"left\"] *) {\n right: calc(var(--spacing) * -4);\n }\n }\n .group-data-\\[side\\=left\\]\\:border-r {\n &:is(:where(.group)[data-side=\"left\"] *) {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n }\n .group-data-\\[side\\=right\\]\\:left-0 {\n &:is(:where(.group)[data-side=\"right\"] *) {\n left: calc(var(--spacing) * 0);\n }\n }\n .group-data-\\[side\\=right\\]\\:rotate-180 {\n &:is(:where(.group)[data-side=\"right\"] *) {\n rotate: 180deg;\n }\n }\n .group-data-\\[side\\=right\\]\\:border-l {\n &:is(:where(.group)[data-side=\"right\"] *) {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .group-data-\\[state\\=open\\]\\:rotate-180 {\n &:is(:where(.group)[data-state=\"open\"] *) {\n rotate: 180deg;\n }\n }\n .group-data-\\[variant\\=floating\\]\\:rounded-lg {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-radius: var(--radius);\n }\n }\n .group-data-\\[variant\\=floating\\]\\:border {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .group-data-\\[variant\\=floating\\]\\:border-sidebar-border {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-color: var(--sidebar-border);\n }\n }\n .group-data-\\[variant\\=floating\\]\\:shadow-sm {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .group-data-\\[variant\\=outline\\]\\/field-group\\:-mb-2 {\n &:is(:where(.group\\/field-group)[data-variant=\"outline\"] *) {\n margin-bottom: calc(var(--spacing) * -2);\n }\n }\n .group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:block {\n &:is(:where(.group\\/drawer-content)[data-vaul-drawer-direction=\"bottom\"] *) {\n display: block;\n }\n }\n .group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:text-center {\n &:is(:where(.group\\/drawer-content)[data-vaul-drawer-direction=\"bottom\"] *) {\n text-align: center;\n }\n }\n .group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:text-center {\n &:is(:where(.group\\/drawer-content)[data-vaul-drawer-direction=\"top\"] *) {\n text-align: center;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:top-full {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n top: 100%;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:mt-1\\.5 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n margin-top: calc(var(--spacing) * 1.5);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:overflow-hidden {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n overflow: hidden;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:rounded-md {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:border {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:bg-popover {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n background-color: var(--popover);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:text-popover-foreground {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n color: var(--popover-foreground);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:shadow {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:duration-200 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n }\n .group-\\[\\.destructive\\]\\:border-muted\\/40 {\n &:is(:where(.group):is(.destructive) *) {\n border-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--muted) 40%, transparent);\n }\n }\n }\n .group-\\[\\.destructive\\]\\:text-red-300 {\n &:is(:where(.group):is(.destructive) *) {\n color: var(--color-red-300);\n }\n }\n .peer-hover\\/menu-button\\:text-sidebar-accent-foreground {\n &:is(:where(.peer\\/menu-button):hover ~ *) {\n @media (hover: hover) {\n color: var(--sidebar-accent-foreground);\n }\n }\n }\n .peer-disabled\\:cursor-not-allowed {\n &:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed;\n }\n }\n .peer-disabled\\:opacity-50 {\n &:is(:where(.peer):disabled ~ *) {\n opacity: 50%;\n }\n }\n .peer-data-\\[active\\=true\\]\\/menu-button\\:text-sidebar-accent-foreground {\n &:is(:where(.peer\\/menu-button)[data-active=\"true\"] ~ *) {\n color: var(--sidebar-accent-foreground);\n }\n }\n .peer-data-\\[size\\=default\\]\\/menu-button\\:top-1\\.5 {\n &:is(:where(.peer\\/menu-button)[data-size=\"default\"] ~ *) {\n top: calc(var(--spacing) * 1.5);\n }\n }\n .peer-data-\\[size\\=lg\\]\\/menu-button\\:top-2\\.5 {\n &:is(:where(.peer\\/menu-button)[data-size=\"lg\"] ~ *) {\n top: calc(var(--spacing) * 2.5);\n }\n }\n .peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1 {\n &:is(:where(.peer\\/menu-button)[data-size=\"sm\"] ~ *) {\n top: calc(var(--spacing) * 1);\n }\n }\n .selection\\:bg-primary {\n & *::selection {\n background-color: var(--primary);\n }\n &::selection {\n background-color: var(--primary);\n }\n }\n .selection\\:text-primary-foreground {\n & *::selection {\n color: var(--primary-foreground);\n }\n &::selection {\n color: var(--primary-foreground);\n }\n }\n .file\\:inline-flex {\n &::file-selector-button {\n display: inline-flex;\n }\n }\n .file\\:h-7 {\n &::file-selector-button {\n height: calc(var(--spacing) * 7);\n }\n }\n .file\\:border-0 {\n &::file-selector-button {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .file\\:bg-transparent {\n &::file-selector-button {\n background-color: transparent;\n }\n }\n .file\\:text-sm {\n &::file-selector-button {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .file\\:font-medium {\n &::file-selector-button {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .file\\:text-foreground {\n &::file-selector-button {\n color: var(--foreground);\n }\n }\n .placeholder\\:text-muted-foreground {\n &::placeholder {\n color: var(--muted-foreground);\n }\n }\n .after\\:absolute {\n &::after {\n content: var(--tw-content);\n position: absolute;\n }\n }\n .after\\:-inset-2 {\n &::after {\n content: var(--tw-content);\n inset: calc(var(--spacing) * -2);\n }\n }\n .after\\:inset-y-0 {\n &::after {\n content: var(--tw-content);\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .after\\:left-1\\/2 {\n &::after {\n content: var(--tw-content);\n left: calc(1/2 * 100%);\n }\n }\n .after\\:w-1 {\n &::after {\n content: var(--tw-content);\n width: calc(var(--spacing) * 1);\n }\n }\n .after\\:w-\\[2px\\] {\n &::after {\n content: var(--tw-content);\n width: 2px;\n }\n }\n .after\\:-translate-x-1\\/2 {\n &::after {\n content: var(--tw-content);\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:after\\:left-full {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n &::after {\n content: var(--tw-content);\n left: 100%;\n }\n }\n }\n .first\\:rounded-l-md {\n &:first-child {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n }\n .first\\:border-l {\n &:first-child {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .last\\:mt-0 {\n &:last-child {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .last\\:rounded-r-md {\n &:last-child {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n .last\\:border-0 {\n &:last-child {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .last\\:border-b-0 {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n .hover\\:scale-105 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:border-blue-400 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-blue-400);\n }\n }\n }\n .hover\\:border-primary {\n &:hover {\n @media (hover: hover) {\n border-color: var(--primary);\n }\n }\n }\n .hover\\:border-primary\\/30 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--primary) 30%, transparent);\n }\n }\n }\n }\n .hover\\:bg-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n .hover\\:bg-accent\\/5 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 5%, transparent);\n }\n }\n }\n }\n .hover\\:bg-accent\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-background {\n &:hover {\n @media (hover: hover) {\n background-color: var(--background);\n }\n }\n }\n .hover\\:bg-card {\n &:hover {\n @media (hover: hover) {\n background-color: var(--card);\n }\n }\n }\n .hover\\:bg-destructive {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n }\n }\n }\n .hover\\:bg-destructive\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n }\n }\n }\n .hover\\:bg-muted\\/30 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 30%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-primary\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-secondary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-sidebar-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--sidebar-accent);\n }\n }\n }\n .hover\\:text-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n .hover\\:text-destructive {\n &:hover {\n @media (hover: hover) {\n color: var(--destructive);\n }\n }\n }\n .hover\\:text-destructive-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--destructive-foreground);\n }\n }\n }\n .hover\\:text-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--foreground);\n }\n }\n }\n .hover\\:text-muted-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--muted-foreground);\n }\n }\n }\n .hover\\:text-primary {\n &:hover {\n @media (hover: hover) {\n color: var(--primary);\n }\n }\n }\n .hover\\:text-sidebar-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--sidebar-accent-foreground);\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .hover\\:opacity-90 {\n &:hover {\n @media (hover: hover) {\n opacity: 90%;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .hover\\:shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-accent\\)\\)\\] {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-accent)));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-lg {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-md {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:ring-4 {\n &:hover {\n @media (hover: hover) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:group-data-\\[collapsible\\=offcanvas\\]\\:bg-sidebar {\n &:hover {\n @media (hover: hover) {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n background-color: var(--sidebar);\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:border-destructive\\/30 {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n border-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--destructive) 30%, transparent);\n }\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:bg-destructive {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:text-destructive-foreground {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n color: var(--destructive-foreground);\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:text-red-50 {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-50);\n }\n }\n }\n }\n .hover\\:after\\:bg-sidebar-border {\n &:hover {\n @media (hover: hover) {\n &::after {\n content: var(--tw-content);\n background-color: var(--sidebar-border);\n }\n }\n }\n }\n .focus\\:z-10 {\n &:focus {\n z-index: 10;\n }\n }\n .focus\\:bg-accent {\n &:focus {\n background-color: var(--accent);\n }\n }\n .focus\\:text-accent-foreground {\n &:focus {\n color: var(--accent-foreground);\n }\n }\n .focus\\:opacity-100 {\n &:focus {\n opacity: 100%;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-ring {\n &:focus {\n --tw-ring-color: var(--ring);\n }\n }\n .focus\\:ring-offset-2 {\n &:focus {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-hidden {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .group-\\[\\.destructive\\]\\:focus\\:ring-destructive {\n &:is(:where(.group):is(.destructive) *) {\n &:focus {\n --tw-ring-color: var(--destructive);\n }\n }\n }\n .group-\\[\\.destructive\\]\\:focus\\:ring-red-400 {\n &:is(:where(.group):is(.destructive) *) {\n &:focus {\n --tw-ring-color: var(--color-red-400);\n }\n }\n }\n .group-\\[\\.destructive\\]\\:focus\\:ring-offset-red-600 {\n &:is(:where(.group):is(.destructive) *) {\n &:focus {\n --tw-ring-offset-color: var(--color-red-600);\n }\n }\n }\n .focus-visible\\:z-10 {\n &:focus-visible {\n z-index: 10;\n }\n }\n .focus-visible\\:border-ring {\n &:focus-visible {\n border-color: var(--ring);\n }\n }\n .focus-visible\\:ring-0 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-1 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-2 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-4 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-\\[3px\\] {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-destructive\\/20 {\n &:focus-visible {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .focus-visible\\:ring-primary {\n &:focus-visible {\n --tw-ring-color: var(--primary);\n }\n }\n .focus-visible\\:ring-ring {\n &:focus-visible {\n --tw-ring-color: var(--ring);\n }\n }\n .focus-visible\\:ring-ring\\/50 {\n &:focus-visible {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .focus-visible\\:ring-offset-1 {\n &:focus-visible {\n --tw-ring-offset-width: 1px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus-visible\\:outline-hidden {\n &:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .focus-visible\\:outline-1 {\n &:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n }\n .focus-visible\\:outline-ring {\n &:focus-visible {\n outline-color: var(--ring);\n }\n }\n .active\\:bg-sidebar-accent {\n &:active {\n background-color: var(--sidebar-accent);\n }\n }\n .active\\:text-sidebar-accent-foreground {\n &:active {\n color: var(--sidebar-accent-foreground);\n }\n }\n .disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none;\n }\n }\n .disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .in-data-\\[side\\=left\\]\\:cursor-w-resize {\n :where(*[data-side=\"left\"]) & {\n cursor: w-resize;\n }\n }\n .in-data-\\[side\\=right\\]\\:cursor-e-resize {\n :where(*[data-side=\"right\"]) & {\n cursor: e-resize;\n }\n }\n .has-focus\\:border-ring {\n &:has(*:focus) {\n border-color: var(--ring);\n }\n }\n .has-focus\\:ring-\\[3px\\] {\n &:has(*:focus) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .has-focus\\:ring-ring\\/50 {\n &:has(*:focus) {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .has-disabled\\:opacity-50 {\n &:has(*:disabled) {\n opacity: 50%;\n }\n }\n .has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\] {\n &:has(*[data-slot=\"card-action\"]) {\n grid-template-columns: 1fr auto;\n }\n }\n .has-data-\\[state\\=checked\\]\\:border-primary {\n &:has(*[data-state=\"checked\"]) {\n border-color: var(--primary);\n }\n }\n .has-data-\\[state\\=checked\\]\\:bg-primary\\/5 {\n &:has(*[data-state=\"checked\"]) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 5%, transparent);\n }\n }\n }\n .has-data-\\[variant\\=inset\\]\\:bg-sidebar {\n &:has(*[data-variant=\"inset\"]) {\n background-color: var(--sidebar);\n }\n }\n .has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:border-ring {\n &:has(*:is([data-slot=input-group-control]:focus-visible)) {\n border-color: var(--ring);\n }\n }\n .has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-\\[3px\\] {\n &:has(*:is([data-slot=input-group-control]:focus-visible)) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-ring\\/50 {\n &:has(*:is([data-slot=input-group-control]:focus-visible)) {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:border-destructive {\n &:has(*:is([data-slot][aria-invalid=true])) {\n border-color: var(--destructive);\n }\n }\n .has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/20 {\n &:has(*:is([data-slot][aria-invalid=true])) {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=block-end\\]\\]\\:h-auto {\n &:has(>[data-align=block-end]) {\n height: auto;\n }\n }\n .has-\\[\\>\\[data-align\\=block-end\\]\\]\\:flex-col {\n &:has(>[data-align=block-end]) {\n flex-direction: column;\n }\n }\n .has-\\[\\>\\[data-align\\=block-start\\]\\]\\:h-auto {\n &:has(>[data-align=block-start]) {\n height: auto;\n }\n }\n .has-\\[\\>\\[data-align\\=block-start\\]\\]\\:flex-col {\n &:has(>[data-align=block-start]) {\n flex-direction: column;\n }\n }\n .has-\\[\\>\\[data-slot\\=button-group\\]\\]\\:gap-2 {\n &:has(>[data-slot=button-group]) {\n gap: calc(var(--spacing) * 2);\n }\n }\n .has-\\[\\>\\[data-slot\\=checkbox-group\\]\\]\\:gap-3 {\n &:has(>[data-slot=checkbox-group]) {\n gap: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:items-start {\n &:has(>[data-slot=field-content]) {\n align-items: flex-start;\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:w-full {\n &:has(>[data-slot=field]) {\n width: 100%;\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:flex-col {\n &:has(>[data-slot=field]) {\n flex-direction: column;\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:rounded-md {\n &:has(>[data-slot=field]) {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:border {\n &:has(>[data-slot=field]) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .has-\\[\\>\\[data-slot\\=radio-group\\]\\]\\:gap-3 {\n &:has(>[data-slot=radio-group]) {\n gap: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>button\\]\\:mr-\\[-0\\.4rem\\] {\n &:has(>button) {\n margin-right: -0.4rem;\n }\n }\n .has-\\[\\>button\\]\\:ml-\\[-0\\.45rem\\] {\n &:has(>button) {\n margin-left: -0.45rem;\n }\n }\n .has-\\[\\>kbd\\]\\:mr-\\[-0\\.35rem\\] {\n &:has(>kbd) {\n margin-right: -0.35rem;\n }\n }\n .has-\\[\\>kbd\\]\\:ml-\\[-0\\.35rem\\] {\n &:has(>kbd) {\n margin-left: -0.35rem;\n }\n }\n .has-\\[\\>svg\\]\\:grid-cols-\\[calc\\(var\\(--spacing\\)\\*4\\)_1fr\\] {\n &:has(>svg) {\n grid-template-columns: calc(var(--spacing) * 4) 1fr;\n }\n }\n .has-\\[\\>svg\\]\\:gap-x-3 {\n &:has(>svg) {\n column-gap: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>svg\\]\\:p-0 {\n &:has(>svg) {\n padding: calc(var(--spacing) * 0);\n }\n }\n .has-\\[\\>svg\\]\\:px-2 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .has-\\[\\>svg\\]\\:px-2\\.5 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n }\n .has-\\[\\>svg\\]\\:px-3 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>svg\\]\\:px-4 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 4);\n }\n }\n .has-\\[\\>textarea\\]\\:h-auto {\n &:has(>textarea) {\n height: auto;\n }\n }\n .aria-disabled\\:pointer-events-none {\n &[aria-disabled=\"true\"] {\n pointer-events: none;\n }\n }\n .aria-disabled\\:opacity-50 {\n &[aria-disabled=\"true\"] {\n opacity: 50%;\n }\n }\n .aria-invalid\\:border-destructive {\n &[aria-invalid=\"true\"] {\n border-color: var(--destructive);\n }\n }\n .aria-invalid\\:ring-destructive\\/20 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .aria-selected\\:text-muted-foreground {\n &[aria-selected=\"true\"] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[active\\=true\\]\\:z-10 {\n &[data-active=\"true\"] {\n z-index: 10;\n }\n }\n .data-\\[active\\=true\\]\\:border-ring {\n &[data-active=\"true\"] {\n border-color: var(--ring);\n }\n }\n .data-\\[active\\=true\\]\\:bg-accent\\/50 {\n &[data-active=\"true\"] {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:bg-sidebar-accent {\n &[data-active=\"true\"] {\n background-color: var(--sidebar-accent);\n }\n }\n .data-\\[active\\=true\\]\\:font-medium {\n &[data-active=\"true\"] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .data-\\[active\\=true\\]\\:font-semibold {\n &[data-active=\"true\"] {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n }\n .data-\\[active\\=true\\]\\:text-accent-foreground {\n &[data-active=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[active\\=true\\]\\:text-foreground {\n &[data-active=\"true\"] {\n color: var(--foreground);\n }\n }\n .data-\\[active\\=true\\]\\:text-sidebar-accent-foreground {\n &[data-active=\"true\"] {\n color: var(--sidebar-accent-foreground);\n }\n }\n .data-\\[active\\=true\\]\\:ring-\\[3px\\] {\n &[data-active=\"true\"] {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[active\\=true\\]\\:ring-ring\\/50 {\n &[data-active=\"true\"] {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:hover\\:bg-accent {\n &[data-active=\"true\"] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n }\n .data-\\[active\\=true\\]\\:focus\\:bg-accent {\n &[data-active=\"true\"] {\n &:focus {\n background-color: var(--accent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:aria-invalid\\:border-destructive {\n &[data-active=\"true\"] {\n &[aria-invalid=\"true\"] {\n border-color: var(--destructive);\n }\n }\n }\n .data-\\[active\\=true\\]\\:aria-invalid\\:ring-destructive\\/20 {\n &[data-active=\"true\"] {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n }\n .data-\\[disabled\\]\\:pointer-events-none {\n &[data-disabled] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\]\\:opacity-50 {\n &[data-disabled] {\n opacity: 50%;\n }\n }\n .data-\\[disabled\\=true\\]\\:pointer-events-none {\n &[data-disabled=\"true\"] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\=true\\]\\:opacity-50 {\n &[data-disabled=\"true\"] {\n opacity: 50%;\n }\n }\n .data-\\[error\\=true\\]\\:text-destructive {\n &[data-error=\"true\"] {\n color: var(--destructive);\n }\n }\n .data-\\[inset\\]\\:pl-8 {\n &[data-inset] {\n padding-left: calc(var(--spacing) * 8);\n }\n }\n .data-\\[invalid\\=true\\]\\:text-destructive {\n &[data-invalid=\"true\"] {\n color: var(--destructive);\n }\n }\n .data-\\[motion\\=from-end\\]\\:slide-in-from-right-52 {\n &[data-motion=\"from-end\"] {\n --tw-enter-translate-x: calc(52*var(--spacing));\n }\n }\n .data-\\[motion\\=from-start\\]\\:slide-in-from-left-52 {\n &[data-motion=\"from-start\"] {\n --tw-enter-translate-x: calc(52*var(--spacing)*-1);\n }\n }\n .data-\\[motion\\=to-end\\]\\:slide-out-to-right-52 {\n &[data-motion=\"to-end\"] {\n --tw-exit-translate-x: calc(52*var(--spacing));\n }\n }\n .data-\\[motion\\=to-start\\]\\:slide-out-to-left-52 {\n &[data-motion=\"to-start\"] {\n --tw-exit-translate-x: calc(52*var(--spacing)*-1);\n }\n }\n .data-\\[motion\\^\\=from-\\]\\:animate-in {\n &[data-motion^=\"from-\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[motion\\^\\=from-\\]\\:fade-in {\n &[data-motion^=\"from-\"] {\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[motion\\^\\=to-\\]\\:animate-out {\n &[data-motion^=\"to-\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[motion\\^\\=to-\\]\\:fade-out {\n &[data-motion^=\"to-\"] {\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-1\\.5 {\n &[data-orientation=\"horizontal\"] {\n height: calc(var(--spacing) * 1.5);\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-full {\n &[data-orientation=\"horizontal\"] {\n height: 100%;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-px {\n &[data-orientation=\"horizontal\"] {\n height: 1px;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:w-full {\n &[data-orientation=\"horizontal\"] {\n width: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:h-auto {\n &[data-orientation=\"vertical\"] {\n height: auto;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:h-full {\n &[data-orientation=\"vertical\"] {\n height: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:min-h-44 {\n &[data-orientation=\"vertical\"] {\n min-height: calc(var(--spacing) * 44);\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-1\\.5 {\n &[data-orientation=\"vertical\"] {\n width: calc(var(--spacing) * 1.5);\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-auto {\n &[data-orientation=\"vertical\"] {\n width: auto;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-full {\n &[data-orientation=\"vertical\"] {\n width: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-px {\n &[data-orientation=\"vertical\"] {\n width: 1px;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:flex-col {\n &[data-orientation=\"vertical\"] {\n flex-direction: column;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:h-px {\n &[data-panel-group-direction=\"vertical\"] {\n height: 1px;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:w-full {\n &[data-panel-group-direction=\"vertical\"] {\n width: 100%;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:flex-col {\n &[data-panel-group-direction=\"vertical\"] {\n flex-direction: column;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:left-0 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n left: calc(var(--spacing) * 0);\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:h-1 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n height: calc(var(--spacing) * 1);\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:w-full {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n width: 100%;\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:translate-x-0 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:-translate-y-1\\/2 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .data-\\[placeholder\\]\\:text-muted-foreground {\n &[data-placeholder] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[range-end\\=true\\]\\:rounded-md {\n &[data-range-end=\"true\"] {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-end\\=true\\]\\:rounded-r-md {\n &[data-range-end=\"true\"] {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-end\\=true\\]\\:bg-primary {\n &[data-range-end=\"true\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[range-end\\=true\\]\\:text-primary-foreground {\n &[data-range-end=\"true\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[range-middle\\=true\\]\\:rounded-none {\n &[data-range-middle=\"true\"] {\n border-radius: 0;\n }\n }\n .data-\\[range-middle\\=true\\]\\:bg-accent {\n &[data-range-middle=\"true\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[range-middle\\=true\\]\\:text-accent-foreground {\n &[data-range-middle=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[range-start\\=true\\]\\:rounded-md {\n &[data-range-start=\"true\"] {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-start\\=true\\]\\:rounded-l-md {\n &[data-range-start=\"true\"] {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-start\\=true\\]\\:bg-primary {\n &[data-range-start=\"true\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[range-start\\=true\\]\\:text-primary-foreground {\n &[data-range-start=\"true\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[selected-single\\=true\\]\\:bg-primary {\n &[data-selected-single=\"true\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[selected-single\\=true\\]\\:text-primary-foreground {\n &[data-selected-single=\"true\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[selected\\=true\\]\\:rounded-none {\n &[data-selected=\"true\"] {\n border-radius: 0;\n }\n }\n .data-\\[selected\\=true\\]\\:bg-accent {\n &[data-selected=\"true\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[selected\\=true\\]\\:text-accent-foreground {\n &[data-selected=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[side\\=bottom\\]\\:translate-y-1 {\n &[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=bottom\\]\\:slide-in-from-top-2 {\n &[data-side=\"bottom\"] {\n --tw-enter-translate-y: calc(2*var(--spacing)*-1);\n }\n }\n .data-\\[side\\=left\\]\\:-translate-x-1 {\n &[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=left\\]\\:slide-in-from-right-2 {\n &[data-side=\"left\"] {\n --tw-enter-translate-x: calc(2*var(--spacing));\n }\n }\n .data-\\[side\\=right\\]\\:translate-x-1 {\n &[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=right\\]\\:slide-in-from-left-2 {\n &[data-side=\"right\"] {\n --tw-enter-translate-x: calc(2*var(--spacing)*-1);\n }\n }\n .data-\\[side\\=top\\]\\:-translate-y-1 {\n &[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=top\\]\\:slide-in-from-bottom-2 {\n &[data-side=\"top\"] {\n --tw-enter-translate-y: calc(2*var(--spacing));\n }\n }\n .data-\\[size\\=default\\]\\:h-9 {\n &[data-size=\"default\"] {\n height: calc(var(--spacing) * 9);\n }\n }\n .data-\\[size\\=sm\\]\\:h-8 {\n &[data-size=\"sm\"] {\n height: calc(var(--spacing) * 8);\n }\n }\n .\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90 {\n :is(& > *) {\n &[data-slot=\"alert-description\"] {\n color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n .data-\\[slot\\=checkbox-group\\]\\:gap-3 {\n &[data-slot=\"checkbox-group\"] {\n gap: calc(var(--spacing) * 3);\n }\n }\n .\\*\\*\\:data-\\[slot\\=command-input-wrapper\\]\\:h-12 {\n :is(& *) {\n &[data-slot=\"command-input-wrapper\"] {\n height: calc(var(--spacing) * 12);\n }\n }\n }\n .\\*\\*\\:data-\\[slot\\=navigation-menu-link\\]\\:focus\\:ring-0 {\n :is(& *) {\n &[data-slot=\"navigation-menu-link\"] {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n }\n .\\*\\*\\:data-\\[slot\\=navigation-menu-link\\]\\:focus\\:outline-none {\n :is(& *) {\n &[data-slot=\"navigation-menu-link\"] {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:flex {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n display: flex;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:items-center {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n align-items: center;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:gap-2 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n gap: calc(var(--spacing) * 2);\n }\n }\n }\n .data-\\[state\\=active\\]\\:bg-background {\n &[data-state=\"active\"] {\n background-color: var(--background);\n }\n }\n .data-\\[state\\=active\\]\\:shadow-sm {\n &[data-state=\"active\"] {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[state\\=checked\\]\\:translate-x-\\[calc\\(100\\%-2px\\)\\] {\n &[data-state=\"checked\"] {\n --tw-translate-x: calc(100% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=checked\\]\\:border-primary {\n &[data-state=\"checked\"] {\n border-color: var(--primary);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[state\\=checked\\]\\:text-primary-foreground {\n &[data-state=\"checked\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[state\\=closed\\]\\:animate-accordion-up {\n &[data-state=\"closed\"] {\n animation: accordion-up 0.2s ease-out;\n }\n }\n .data-\\[state\\=closed\\]\\:animate-out {\n &[data-state=\"closed\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=closed\\]\\:duration-300 {\n &[data-state=\"closed\"] {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-0 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: calc(0/100);\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-80 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: calc(80/100);\n --tw-exit-opacity: .8;\n }\n }\n .data-\\[state\\=closed\\]\\:zoom-out-95 {\n &[data-state=\"closed\"] {\n --tw-exit-scale: calc(95*1%);\n --tw-exit-scale: .95;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-bottom {\n &[data-state=\"closed\"] {\n --tw-exit-translate-y: 100%;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-left {\n &[data-state=\"closed\"] {\n --tw-exit-translate-x: -100%;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-right {\n &[data-state=\"closed\"] {\n --tw-exit-translate-x: 100%;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-right-full {\n &[data-state=\"closed\"] {\n --tw-exit-translate-x: calc(1*100%);\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-top {\n &[data-state=\"closed\"] {\n --tw-exit-translate-y: -100%;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=closed\\]\\:animate-out {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"closed\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=closed\\]\\:fade-out-0 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: calc(0/100);\n --tw-exit-opacity: 0;\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=closed\\]\\:zoom-out-95 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"closed\"] {\n --tw-exit-scale: calc(95*1%);\n --tw-exit-scale: .95;\n }\n }\n }\n .data-\\[state\\=hidden\\]\\:animate-out {\n &[data-state=\"hidden\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=hidden\\]\\:fade-out {\n &[data-state=\"hidden\"] {\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[state\\=on\\]\\:bg-accent {\n &[data-state=\"on\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[state\\=on\\]\\:text-accent-foreground {\n &[data-state=\"on\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:animate-accordion-down {\n &[data-state=\"open\"] {\n animation: accordion-down 0.2s ease-out;\n }\n }\n .data-\\[state\\=open\\]\\:animate-in {\n &[data-state=\"open\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent {\n &[data-state=\"open\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent\\/50 {\n &[data-state=\"open\"] {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n .data-\\[state\\=open\\]\\:bg-secondary {\n &[data-state=\"open\"] {\n background-color: var(--secondary);\n }\n }\n .data-\\[state\\=open\\]\\:text-accent-foreground {\n &[data-state=\"open\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:text-muted-foreground {\n &[data-state=\"open\"] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:opacity-100 {\n &[data-state=\"open\"] {\n opacity: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:duration-500 {\n &[data-state=\"open\"] {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n }\n .data-\\[state\\=open\\]\\:fade-in-0 {\n &[data-state=\"open\"] {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-90 {\n &[data-state=\"open\"] {\n --tw-enter-scale: calc(90*1%);\n --tw-enter-scale: .9;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-95 {\n &[data-state=\"open\"] {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-bottom {\n &[data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-left {\n &[data-state=\"open\"] {\n --tw-enter-translate-x: -100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-right {\n &[data-state=\"open\"] {\n --tw-enter-translate-x: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-top {\n &[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-top-full {\n &[data-state=\"open\"] {\n --tw-enter-translate-y: calc(1*-100%);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=open\\]\\:animate-in {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"open\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=open\\]\\:fade-in-0 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"open\"] {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=open\\]\\:zoom-in-95 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"open\"] {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n }\n }\n .data-\\[state\\=open\\]\\:hover\\:bg-accent {\n &[data-state=\"open\"] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n }\n .data-\\[state\\=open\\]\\:hover\\:bg-sidebar-accent {\n &[data-state=\"open\"] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--sidebar-accent);\n }\n }\n }\n }\n .data-\\[state\\=open\\]\\:hover\\:text-sidebar-accent-foreground {\n &[data-state=\"open\"] {\n &:hover {\n @media (hover: hover) {\n color: var(--sidebar-accent-foreground);\n }\n }\n }\n }\n .data-\\[state\\=open\\]\\:focus\\:bg-accent {\n &[data-state=\"open\"] {\n &:focus {\n background-color: var(--accent);\n }\n }\n }\n .data-\\[state\\=selected\\]\\:bg-muted {\n &[data-state=\"selected\"] {\n background-color: var(--muted);\n }\n }\n .data-\\[state\\=unchecked\\]\\:translate-x-0 {\n &[data-state=\"unchecked\"] {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=unchecked\\]\\:bg-input {\n &[data-state=\"unchecked\"] {\n background-color: var(--input);\n }\n }\n .data-\\[state\\=visible\\]\\:animate-in {\n &[data-state=\"visible\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=visible\\]\\:fade-in {\n &[data-state=\"visible\"] {\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[swipe\\=cancel\\]\\:translate-x-0 {\n &[data-swipe=\"cancel\"] {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\] {\n &[data-swipe=\"end\"] {\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[swipe\\=end\\]\\:animate-out {\n &[data-swipe=\"end\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\] {\n &[data-swipe=\"move\"] {\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[swipe\\=move\\]\\:transition-none {\n &[data-swipe=\"move\"] {\n transition-property: none;\n }\n }\n .data-\\[variant\\=destructive\\]\\:text-destructive {\n &[data-variant=\"destructive\"] {\n color: var(--destructive);\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10 {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 10%, transparent);\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:text-destructive {\n &[data-variant=\"destructive\"] {\n &:focus {\n color: var(--destructive);\n }\n }\n }\n .data-\\[variant\\=label\\]\\:text-sm {\n &[data-variant=\"label\"] {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .data-\\[variant\\=legend\\]\\:text-base {\n &[data-variant=\"legend\"] {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n }\n .data-\\[variant\\=outline\\]\\:border-l-0 {\n &[data-variant=\"outline\"] {\n border-left-style: var(--tw-border-style);\n border-left-width: 0px;\n }\n }\n .data-\\[variant\\=outline\\]\\:shadow-xs {\n &[data-variant=\"outline\"] {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[variant\\=outline\\]\\:first\\:border-l {\n &[data-variant=\"outline\"] {\n &:first-child {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:inset-x-0 {\n &[data-vaul-drawer-direction=\"bottom\"] {\n inset-inline: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:bottom-0 {\n &[data-vaul-drawer-direction=\"bottom\"] {\n bottom: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:mt-24 {\n &[data-vaul-drawer-direction=\"bottom\"] {\n margin-top: calc(var(--spacing) * 24);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:max-h-\\[80vh\\] {\n &[data-vaul-drawer-direction=\"bottom\"] {\n max-height: 80vh;\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:rounded-t-lg {\n &[data-vaul-drawer-direction=\"bottom\"] {\n border-top-left-radius: var(--radius);\n border-top-right-radius: var(--radius);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:border-t {\n &[data-vaul-drawer-direction=\"bottom\"] {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:inset-y-0 {\n &[data-vaul-drawer-direction=\"left\"] {\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:left-0 {\n &[data-vaul-drawer-direction=\"left\"] {\n left: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:w-3\\/4 {\n &[data-vaul-drawer-direction=\"left\"] {\n width: calc(3/4 * 100%);\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:border-r {\n &[data-vaul-drawer-direction=\"left\"] {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:inset-y-0 {\n &[data-vaul-drawer-direction=\"right\"] {\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:right-0 {\n &[data-vaul-drawer-direction=\"right\"] {\n right: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:w-3\\/4 {\n &[data-vaul-drawer-direction=\"right\"] {\n width: calc(3/4 * 100%);\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:border-l {\n &[data-vaul-drawer-direction=\"right\"] {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:inset-x-0 {\n &[data-vaul-drawer-direction=\"top\"] {\n inset-inline: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:top-0 {\n &[data-vaul-drawer-direction=\"top\"] {\n top: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:mb-24 {\n &[data-vaul-drawer-direction=\"top\"] {\n margin-bottom: calc(var(--spacing) * 24);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:max-h-\\[80vh\\] {\n &[data-vaul-drawer-direction=\"top\"] {\n max-height: 80vh;\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:rounded-b-lg {\n &[data-vaul-drawer-direction=\"top\"] {\n border-bottom-right-radius: var(--radius);\n border-bottom-left-radius: var(--radius);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:border-b {\n &[data-vaul-drawer-direction=\"top\"] {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .nth-last-2\\:-mt-1 {\n &:nth-last-child(2) {\n margin-top: calc(var(--spacing) * -1);\n }\n }\n .supports-\\[backdrop-filter\\]\\:bg-background\\/60 {\n @supports (backdrop-filter: var(--tw)) {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 60%, transparent);\n }\n }\n }\n .sm\\:top-auto {\n @media (width >= 40rem) {\n top: auto;\n }\n }\n .sm\\:right-0 {\n @media (width >= 40rem) {\n right: calc(var(--spacing) * 0);\n }\n }\n .sm\\:bottom-0 {\n @media (width >= 40rem) {\n bottom: calc(var(--spacing) * 0);\n }\n }\n .sm\\:col-span-2 {\n @media (width >= 40rem) {\n grid-column: span 2 / span 2;\n }\n }\n .sm\\:block {\n @media (width >= 40rem) {\n display: block;\n }\n }\n .sm\\:flex {\n @media (width >= 40rem) {\n display: flex;\n }\n }\n .sm\\:max-w-\\[600px\\] {\n @media (width >= 40rem) {\n max-width: 600px;\n }\n }\n .sm\\:max-w-lg {\n @media (width >= 40rem) {\n max-width: var(--container-lg);\n }\n }\n .sm\\:max-w-sm {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n .sm\\:grid-cols-2 {\n @media (width >= 40rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .sm\\:flex-col {\n @media (width >= 40rem) {\n flex-direction: column;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:justify-end {\n @media (width >= 40rem) {\n justify-content: flex-end;\n }\n }\n .sm\\:gap-2\\.5 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:pr-2\\.5 {\n @media (width >= 40rem) {\n padding-right: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:pl-2\\.5 {\n @media (width >= 40rem) {\n padding-left: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:text-left {\n @media (width >= 40rem) {\n text-align: left;\n }\n }\n .data-\\[state\\=open\\]\\:sm\\:slide-in-from-bottom-full {\n &[data-state=\"open\"] {\n @media (width >= 40rem) {\n --tw-enter-translate-y: calc(1*100%);\n }\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:sm\\:max-w-sm {\n &[data-vaul-drawer-direction=\"left\"] {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:sm\\:max-w-sm {\n &[data-vaul-drawer-direction=\"right\"] {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n }\n .md\\:absolute {\n @media (width >= 48rem) {\n position: absolute;\n }\n }\n .md\\:-left-24 {\n @media (width >= 48rem) {\n left: calc(var(--spacing) * -24);\n }\n }\n .md\\:col-span-2 {\n @media (width >= 48rem) {\n grid-column: span 2 / span 2;\n }\n }\n .md\\:ml-12 {\n @media (width >= 48rem) {\n margin-left: calc(var(--spacing) * 12);\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .md\\:w-20 {\n @media (width >= 48rem) {\n width: calc(var(--spacing) * 20);\n }\n }\n .md\\:w-80 {\n @media (width >= 48rem) {\n width: calc(var(--spacing) * 80);\n }\n }\n .md\\:w-\\[var\\(--radix-navigation-menu-viewport-width\\)\\] {\n @media (width >= 48rem) {\n width: var(--radix-navigation-menu-viewport-width);\n }\n }\n .md\\:w-auto {\n @media (width >= 48rem) {\n width: auto;\n }\n }\n .md\\:max-w-\\[420px\\] {\n @media (width >= 48rem) {\n max-width: 420px;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-3 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .md\\:flex-row {\n @media (width >= 48rem) {\n flex-direction: row;\n }\n }\n .md\\:items-center {\n @media (width >= 48rem) {\n align-items: center;\n }\n }\n .md\\:gap-1\\.5 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 1.5);\n }\n }\n .md\\:p-12 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 12);\n }\n }\n .md\\:px-6 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 6);\n }\n }\n .md\\:pl-12 {\n @media (width >= 48rem) {\n padding-left: calc(var(--spacing) * 12);\n }\n }\n .md\\:text-left {\n @media (width >= 48rem) {\n text-align: left;\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:opacity-0 {\n @media (width >= 48rem) {\n opacity: 0%;\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:m-2 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n margin: calc(var(--spacing) * 2);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:ml-0 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n margin-left: calc(var(--spacing) * 0);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:rounded-xl {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n border-radius: calc(var(--radius) + 4px);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:shadow-sm {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:peer-data-\\[state\\=collapsed\\]\\:ml-2 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n &:is(:where(.peer)[data-state=\"collapsed\"] ~ *) {\n margin-left: calc(var(--spacing) * 2);\n }\n }\n }\n }\n .md\\:after\\:hidden {\n @media (width >= 48rem) {\n &::after {\n content: var(--tw-content);\n display: none;\n }\n }\n }\n .lg\\:col-span-2 {\n @media (width >= 64rem) {\n grid-column: span 2 / span 2;\n }\n }\n .lg\\:grid-cols-2 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .lg\\:grid-cols-3 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .lg\\:grid-cols-4 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .xl\\:grid-cols-4 {\n @media (width >= 80rem) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .\\@md\\/field-group\\:flex-row {\n @container field-group (width >= 28rem) {\n flex-direction: row;\n }\n }\n .\\@md\\/field-group\\:items-center {\n @container field-group (width >= 28rem) {\n align-items: center;\n }\n }\n .\\@md\\/field-group\\:has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:items-start {\n @container field-group (width >= 28rem) {\n &:has(>[data-slot=field-content]) {\n align-items: flex-start;\n }\n }\n }\n .dark\\:border-blue-800 {\n &:is(.dark *) {\n border-color: var(--color-blue-800);\n }\n }\n .dark\\:border-input {\n &:is(.dark *) {\n border-color: var(--input);\n }\n }\n .dark\\:bg-blue-900\\/20 {\n &:is(.dark *) {\n background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-900) 20%, transparent);\n }\n }\n }\n .dark\\:bg-blue-950 {\n &:is(.dark *) {\n background-color: var(--color-blue-950);\n }\n }\n .dark\\:bg-destructive\\/60 {\n &:is(.dark *) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 60%, transparent);\n }\n }\n }\n .dark\\:bg-input\\/30 {\n &:is(.dark *) {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 30%, transparent);\n }\n }\n }\n .dark\\:bg-transparent {\n &:is(.dark *) {\n background-color: transparent;\n }\n }\n .dark\\:bg-yellow-900\\/20 {\n &:is(.dark *) {\n background-color: color-mix(in srgb, oklch(42.1% 0.095 57.708) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-yellow-900) 20%, transparent);\n }\n }\n }\n .dark\\:bg-yellow-950 {\n &:is(.dark *) {\n background-color: var(--color-yellow-950);\n }\n }\n .dark\\:text-blue-200 {\n &:is(.dark *) {\n color: var(--color-blue-200);\n }\n }\n .dark\\:text-blue-400 {\n &:is(.dark *) {\n color: var(--color-blue-400);\n }\n }\n .dark\\:text-muted-foreground {\n &:is(.dark *) {\n color: var(--muted-foreground);\n }\n }\n .dark\\:text-pink-400 {\n &:is(.dark *) {\n color: var(--color-pink-400);\n }\n }\n .dark\\:text-yellow-200 {\n &:is(.dark *) {\n color: var(--color-yellow-200);\n }\n }\n .dark\\:ring-blue-800 {\n &:is(.dark *) {\n --tw-ring-color: var(--color-blue-800);\n }\n }\n .dark\\:ring-yellow-800 {\n &:is(.dark *) {\n --tw-ring-color: var(--color-yellow-800);\n }\n }\n .dark\\:hover\\:bg-accent\\/50 {\n &:is(.dark *) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n }\n }\n .dark\\:hover\\:bg-input\\/50 {\n &:is(.dark *) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 50%, transparent);\n }\n }\n }\n }\n }\n .dark\\:hover\\:text-accent-foreground {\n &:is(.dark *) {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n }\n .dark\\:focus-visible\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &:focus-visible {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:has-data-\\[state\\=checked\\]\\:bg-primary\\/10 {\n &:is(.dark *) {\n &:has(*[data-state=\"checked\"]) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 10%, transparent);\n }\n }\n }\n }\n .dark\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &:has(*:is([data-slot][aria-invalid=true])) {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:aria-invalid\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[active\\=true\\]\\:aria-invalid\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &[data-active=\"true\"] {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n }\n .dark\\:data-\\[state\\=active\\]\\:border-input {\n &:is(.dark *) {\n &[data-state=\"active\"] {\n border-color: var(--input);\n }\n }\n }\n .dark\\:data-\\[state\\=active\\]\\:bg-input\\/30 {\n &:is(.dark *) {\n &[data-state=\"active\"] {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 30%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[state\\=active\\]\\:text-foreground {\n &:is(.dark *) {\n &[data-state=\"active\"] {\n color: var(--foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-primary {\n &:is(.dark *) {\n &[data-state=\"checked\"] {\n background-color: var(--primary);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-primary-foreground {\n &:is(.dark *) {\n &[data-state=\"checked\"] {\n background-color: var(--primary-foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=unchecked\\]\\:bg-foreground {\n &:is(.dark *) {\n &[data-state=\"unchecked\"] {\n background-color: var(--foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=unchecked\\]\\:bg-input\\/80 {\n &:is(.dark *) {\n &[data-state=\"unchecked\"] {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 80%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20 {\n &:is(.dark *) {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n }\n }\n .\\[\\&_\\.recharts-cartesian-axis-tick_text\\]\\:fill-muted-foreground {\n & .recharts-cartesian-axis-tick text {\n fill: var(--muted-foreground);\n }\n }\n .\\[\\&_\\.recharts-cartesian-grid_line\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border\\/50 {\n & .recharts-cartesian-grid line[stroke='#ccc'] {\n stroke: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n stroke: color-mix(in oklab, var(--border) 50%, transparent);\n }\n }\n }\n .\\[\\&_\\.recharts-curve\\.recharts-tooltip-cursor\\]\\:stroke-border {\n & .recharts-curve.recharts-tooltip-cursor {\n stroke: var(--border);\n }\n }\n .\\[\\&_\\.recharts-dot\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent {\n & .recharts-dot[stroke='#fff'] {\n stroke: transparent;\n }\n }\n .\\[\\&_\\.recharts-layer\\]\\:outline-hidden {\n & .recharts-layer {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .\\[\\&_\\.recharts-polar-grid_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border {\n & .recharts-polar-grid [stroke='#ccc'] {\n stroke: var(--border);\n }\n }\n .\\[\\&_\\.recharts-radial-bar-background-sector\\]\\:fill-muted {\n & .recharts-radial-bar-background-sector {\n fill: var(--muted);\n }\n }\n .\\[\\&_\\.recharts-rectangle\\.recharts-tooltip-cursor\\]\\:fill-muted {\n & .recharts-rectangle.recharts-tooltip-cursor {\n fill: var(--muted);\n }\n }\n .\\[\\&_\\.recharts-reference-line_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border {\n & .recharts-reference-line [stroke='#ccc'] {\n stroke: var(--border);\n }\n }\n .\\[\\&_\\.recharts-sector\\]\\:outline-hidden {\n & .recharts-sector {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .\\[\\&_\\.recharts-sector\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent {\n & .recharts-sector[stroke='#fff'] {\n stroke: transparent;\n }\n }\n .\\[\\&_\\.recharts-surface\\]\\:outline-hidden {\n & .recharts-surface {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 {\n & [cmdk-group-heading] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 {\n & [cmdk-group-heading] {\n padding-block: calc(var(--spacing) * 1.5);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs {\n & [cmdk-group-heading] {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium {\n & [cmdk-group-heading] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground {\n & [cmdk-group-heading] {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\]\\:px-2 {\n & [cmdk-group] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:pt-0 {\n & [cmdk-group]:not([hidden]) ~[cmdk-group] {\n padding-top: calc(var(--spacing) * 0);\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:h-5 {\n & [cmdk-input-wrapper] svg {\n height: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:w-5 {\n & [cmdk-input-wrapper] svg {\n width: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-input\\]\\]\\:h-12 {\n & [cmdk-input] {\n height: calc(var(--spacing) * 12);\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:px-2 {\n & [cmdk-item] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:py-3 {\n & [cmdk-item] {\n padding-block: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:h-5 {\n & [cmdk-item] svg {\n height: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:w-5 {\n & [cmdk-item] svg {\n width: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_img\\]\\:size-full {\n & img {\n width: 100%;\n height: 100%;\n }\n }\n .\\[\\&_img\\]\\:object-cover {\n & img {\n object-fit: cover;\n }\n }\n .\\[\\&_p\\]\\:leading-relaxed {\n & p {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n }\n .\\[\\&_svg\\]\\:pointer-events-none {\n & svg {\n pointer-events: none;\n }\n }\n .\\[\\&_svg\\]\\:shrink-0 {\n & svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-3 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-6 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'text-\\'\\]\\)\\]\\:text-muted-foreground {\n & svg:not([class*='text-']) {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&_tr\\]\\:border-b {\n & tr {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .\\[\\&_tr\\:last-child\\]\\:border-0 {\n & tr:last-child {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .\\[\\&\\+\\[data-slot\\=item-content\\]\\]\\:flex-none {\n &+[data-slot=item-content] {\n flex: none;\n }\n }\n .\\[\\&\\:first-child\\[data-selected\\=true\\]_button\\]\\:rounded-l-md {\n &:first-child[data-selected=true] button {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n }\n .\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0 {\n &:has([role=checkbox]) {\n padding-right: calc(var(--spacing) * 0);\n }\n }\n .\\[\\.border-b\\]\\:pb-3 {\n &:is(.border-b) {\n padding-bottom: calc(var(--spacing) * 3);\n }\n }\n .\\[\\.border-b\\]\\:pb-6 {\n &:is(.border-b) {\n padding-bottom: calc(var(--spacing) * 6);\n }\n }\n .\\[\\.border-t\\]\\:pt-3 {\n &:is(.border-t) {\n padding-top: calc(var(--spacing) * 3);\n }\n }\n .\\[\\.border-t\\]\\:pt-6 {\n &:is(.border-t) {\n padding-top: calc(var(--spacing) * 6);\n }\n }\n .rtl\\:\\*\\*\\:\\[\\.rdp-button\\\\_next\\>svg\\]\\:rotate-180 {\n &:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n :is(& *) {\n &:is(.rdp-button_next>svg) {\n rotate: 180deg;\n }\n }\n }\n }\n .rtl\\:\\*\\*\\:\\[\\.rdp-button\\\\_previous\\>svg\\]\\:rotate-180 {\n &:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n :is(& *) {\n &:is(.rdp-button_previous>svg) {\n rotate: 180deg;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:flex {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n display: flex;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:items-center {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n align-items: center;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:gap-2 {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n gap: calc(var(--spacing) * 2);\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive {\n &[data-variant=\"destructive\"] {\n :is(& > *) {\n &:is(svg) {\n color: var(--destructive) !important;\n }\n }\n }\n }\n .\\[\\&\\:last-child\\[data-selected\\=true\\]_button\\]\\:rounded-r-md {\n &:last-child[data-selected=true] button {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n .\\[\\&\\>\\*\\]\\:w-full {\n &>* {\n width: 100%;\n }\n }\n .\\[\\&\\>\\*\\]\\:focus-visible\\:relative {\n &>* {\n &:focus-visible {\n position: relative;\n }\n }\n }\n .\\[\\&\\>\\*\\]\\:focus-visible\\:z-10 {\n &>* {\n &:focus-visible {\n z-index: 10;\n }\n }\n }\n .\\[\\&\\>\\*\\]\\:data-\\[slot\\=field\\]\\:p-4 {\n &>* {\n &[data-slot=\"field\"] {\n padding: calc(var(--spacing) * 4);\n }\n }\n }\n .\\@md\\/field-group\\:\\[\\&\\>\\*\\]\\:w-auto {\n @container field-group (width >= 28rem) {\n &>* {\n width: auto;\n }\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-t-none {\n &>*:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-l-none {\n &>*:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-t-0 {\n &>*:not(:first-child) {\n border-top-style: var(--tw-border-style);\n border-top-width: 0px;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-l-0 {\n &>*:not(:first-child) {\n border-left-style: var(--tw-border-style);\n border-left-width: 0px;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-r-none {\n &>*:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-b-none {\n &>*:not(:last-child) {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n .\\[\\&\\>\\.sr-only\\]\\:w-auto {\n &>.sr-only {\n width: auto;\n }\n }\n .\\[\\&\\>\\[data-slot\\=field-group\\]\\]\\:gap-4 {\n &>[data-slot=field-group] {\n gap: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>\\[data-slot\\=field-label\\]\\]\\:flex-auto {\n &>[data-slot=field-label] {\n flex: auto;\n }\n }\n .\\@md\\/field-group\\:\\[\\&\\>\\[data-slot\\=field-label\\]\\]\\:flex-auto {\n @container field-group (width >= 28rem) {\n &>[data-slot=field-label] {\n flex: auto;\n }\n }\n }\n .has-\\[select\\[aria-hidden\\=true\\]\\:last-child\\]\\:\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:last-of-type\\]\\:rounded-r-md {\n &:has(*:is(select[aria-hidden=true]:last-child)) {\n &>[data-slot=select-trigger]:last-of-type {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n }\n .\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:not\\(\\[class\\*\\=\\'w-\\'\\]\\)\\]\\:w-fit {\n &>[data-slot=select-trigger]:not([class*='w-']) {\n width: fit-content;\n }\n }\n .\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\] {\n &>[role=checkbox] {\n --tw-translate-y: 2px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:\\[\\&\\>\\[role\\=checkbox\\]\\,\\[role\\=radio\\]\\]\\:mt-px {\n &:has(>[data-slot=field-content]) {\n &>[role=checkbox],[role=radio] {\n margin-top: 1px;\n }\n }\n }\n .\\@md\\/field-group\\:has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:\\[\\&\\>\\[role\\=checkbox\\]\\,\\[role\\=radio\\]\\]\\:mt-px {\n @container field-group (width >= 28rem) {\n &:has(>[data-slot=field-content]) {\n &>[role=checkbox],[role=radio] {\n margin-top: 1px;\n }\n }\n }\n }\n .\\[\\&\\>a\\]\\:underline {\n &>a {\n text-decoration-line: underline;\n }\n }\n .\\[\\&\\>a\\]\\:underline-offset-4 {\n &>a {\n text-underline-offset: 4px;\n }\n }\n .\\[\\&\\>a\\:hover\\]\\:text-primary {\n &>a:hover {\n color: var(--primary);\n }\n }\n .\\[\\&\\>button\\]\\:hidden {\n &>button {\n display: none;\n }\n }\n .\\[\\&\\>input\\]\\:flex-1 {\n &>input {\n flex: 1;\n }\n }\n .has-\\[\\>\\[data-align\\=block-end\\]\\]\\:\\[\\&\\>input\\]\\:pt-3 {\n &:has(>[data-align=block-end]) {\n &>input {\n padding-top: calc(var(--spacing) * 3);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=block-start\\]\\]\\:\\[\\&\\>input\\]\\:pb-3 {\n &:has(>[data-align=block-start]) {\n &>input {\n padding-bottom: calc(var(--spacing) * 3);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=inline-end\\]\\]\\:\\[\\&\\>input\\]\\:pr-2 {\n &:has(>[data-align=inline-end]) {\n &>input {\n padding-right: calc(var(--spacing) * 2);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=inline-start\\]\\]\\:\\[\\&\\>input\\]\\:pl-2 {\n &:has(>[data-align=inline-start]) {\n &>input {\n padding-left: calc(var(--spacing) * 2);\n }\n }\n }\n .\\[\\&\\>kbd\\]\\:rounded-\\[calc\\(var\\(--radius\\)-5px\\)\\] {\n &>kbd {\n border-radius: calc(var(--radius) - 5px);\n }\n }\n .\\[\\&\\>span\\]\\:text-xs {\n &>span {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n }\n .\\[\\&\\>span\\]\\:opacity-70 {\n &>span {\n opacity: 70%;\n }\n }\n .\\[\\&\\>span\\:last-child\\]\\:truncate {\n &>span:last-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n .\\[\\&\\>svg\\]\\:pointer-events-none {\n &>svg {\n pointer-events: none;\n }\n }\n .\\[\\&\\>svg\\]\\:size-3 {\n &>svg {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:size-3\\.5 {\n &>svg {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n }\n .\\[\\&\\>svg\\]\\:size-4 {\n &>svg {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>svg\\]\\:h-2\\.5 {\n &>svg {\n height: calc(var(--spacing) * 2.5);\n }\n }\n .\\[\\&\\>svg\\]\\:h-3 {\n &>svg {\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:w-2\\.5 {\n &>svg {\n width: calc(var(--spacing) * 2.5);\n }\n }\n .\\[\\&\\>svg\\]\\:w-3 {\n &>svg {\n width: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:shrink-0 {\n &>svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&\\>svg\\]\\:translate-y-0\\.5 {\n &>svg {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .\\[\\&\\>svg\\]\\:text-current {\n &>svg {\n color: currentcolor;\n }\n }\n .\\[\\&\\>svg\\]\\:text-muted-foreground {\n &>svg {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&\\>svg\\]\\:text-sidebar-accent-foreground {\n &>svg {\n color: var(--sidebar-accent-foreground);\n }\n }\n .\\[\\&\\>svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-3\\.5 {\n &>svg:not([class*='size-']) {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n }\n .\\[\\&\\>svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n &>svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>tr\\]\\:last\\:border-b-0 {\n &>tr {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n }\n .\\[\\&\\[data-panel-group-direction\\=vertical\\]\\>div\\]\\:rotate-90 {\n &[data-panel-group-direction=vertical]>div {\n rotate: 90deg;\n }\n }\n .\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-180 {\n &[data-state=open]>svg {\n rotate: 180deg;\n }\n }\n .\\[\\[data-side\\=left\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-right-2 {\n [data-side=left][data-collapsible=offcanvas] & {\n right: calc(var(--spacing) * -2);\n }\n }\n .\\[\\[data-side\\=left\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize {\n [data-side=left][data-state=collapsed] & {\n cursor: e-resize;\n }\n }\n .\\[\\[data-side\\=right\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-left-2 {\n [data-side=right][data-collapsible=offcanvas] & {\n left: calc(var(--spacing) * -2);\n }\n }\n .\\[\\[data-side\\=right\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize {\n [data-side=right][data-state=collapsed] & {\n cursor: w-resize;\n }\n }\n .\\[\\[data-slot\\=card-content\\]_\\&\\]\\:bg-transparent {\n [data-slot=card-content] & {\n background-color: transparent;\n }\n }\n .\\[\\[data-slot\\=popover-content\\]_\\&\\]\\:bg-transparent {\n [data-slot=popover-content] & {\n background-color: transparent;\n }\n }\n .\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-background\\/20 {\n [data-slot=tooltip-content] & {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 20%, transparent);\n }\n }\n }\n .\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:text-background {\n [data-slot=tooltip-content] & {\n color: var(--background);\n }\n }\n .dark\\:\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-background\\/10 {\n &:is(.dark *) {\n [data-slot=tooltip-content] & {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 10%, transparent);\n }\n }\n }\n }\n .\\[\\[data-variant\\=legend\\]\\+\\&\\]\\:-mt-1\\.5 {\n [data-variant=legend]+& {\n margin-top: calc(var(--spacing) * -1.5);\n }\n }\n .\\[a\\&\\]\\:transition-colors {\n a& {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-accent {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-accent\\/50 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-destructive\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-primary\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-secondary\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--secondary) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:text-accent-foreground {\n a& {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n }\n}\n@property --tw-animation-delay {\n syntax: \"*\";\n inherits: false;\n initial-value: 0s;\n}\n@property --tw-animation-direction {\n syntax: \"*\";\n inherits: false;\n initial-value: normal;\n}\n@property --tw-animation-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-animation-fill-mode {\n syntax: \"*\";\n inherits: false;\n initial-value: forwards;\n}\n@property --tw-animation-iteration-count {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-opacity {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-rotate {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-scale {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-opacity {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-exit-rotate {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-scale {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-exit-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n:root {\n --background: oklch(0.97 0.01 90);\n --foreground: oklch(0.2 0.02 265);\n --card: oklch(0.98 0.005 90);\n --card-foreground: oklch(0.2 0.02 265);\n --popover: oklch(0.98 0.005 90);\n --popover-foreground: oklch(0.2 0.02 265);\n --primary: oklch(0.45 0.15 25);\n --primary-foreground: oklch(0.98 0.01 90);\n --secondary: oklch(0.85 0.05 85);\n --secondary-foreground: oklch(0.3 0.05 50);\n --muted: oklch(0.92 0.01 90);\n --muted-foreground: oklch(0.45 0.02 265);\n --accent: oklch(0.94 0.02 85);\n --accent-foreground: oklch(0.3 0.05 50);\n --destructive: oklch(0.577 0.245 27.325);\n --destructive-foreground: oklch(0.98 0 0);\n --border: oklch(0.88 0.01 90);\n --input: oklch(0.88 0.01 90);\n --ring: oklch(0.45 0.15 25);\n --radius: 0.5rem;\n --sidebar: oklch(0.96 0.01 90);\n --sidebar-foreground: oklch(0.25 0.02 265);\n --sidebar-primary: oklch(0.45 0.15 25);\n --sidebar-primary-foreground: oklch(0.98 0.01 90);\n --sidebar-accent: oklch(0.93 0.01 90);\n --sidebar-accent-foreground: oklch(0.25 0.02 265);\n --sidebar-border: oklch(0.88 0.01 90);\n --sidebar-ring: oklch(0.45 0.15 25);\n --chart-1: oklch(0.45 0.15 25);\n --chart-2: oklch(0.65 0.12 50);\n --chart-3: oklch(0.35 0.08 200);\n --chart-4: oklch(0.55 0.05 265);\n --chart-5: oklch(0.75 0.1 85);\n}\n.dark {\n --background: oklch(0.12 0.01 265);\n --foreground: oklch(0.95 0.01 90);\n --card: oklch(0.15 0.01 265);\n --card-foreground: oklch(0.95 0.01 90);\n --popover: oklch(0.15 0.01 265);\n --popover-foreground: oklch(0.95 0.01 90);\n --primary: oklch(0.6 0.15 25);\n --primary-foreground: oklch(0.98 0.01 90);\n --secondary: oklch(0.3 0.05 50);\n --secondary-foreground: oklch(0.9 0.05 85);\n --muted: oklch(0.2 0.01 265);\n --muted-foreground: oklch(0.65 0.01 265);\n --accent: oklch(0.2 0.02 265);\n --accent-foreground: oklch(0.95 0.01 90);\n --destructive: oklch(0.396 0.141 25.723);\n --destructive-foreground: oklch(0.98 0 0);\n --border: oklch(0.25 0.01 265);\n --input: oklch(0.25 0.01 265);\n --ring: oklch(0.6 0.15 25);\n --sidebar: oklch(0.14 0.01 265);\n --sidebar-foreground: oklch(0.95 0.01 90);\n --sidebar-primary: oklch(0.6 0.15 25);\n --sidebar-primary-foreground: oklch(0.98 0.01 90);\n --sidebar-accent: oklch(0.2 0.01 265);\n --sidebar-accent-foreground: oklch(0.95 0.01 90);\n --sidebar-border: oklch(0.25 0.01 265);\n --sidebar-ring: oklch(0.6 0.15 25);\n}\n@layer base {\n * {\n border-color: var(--border);\n outline-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n outline-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n body {\n background-color: var(--background);\n color: var(--foreground);\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: \"Songti SC\", \"STSong\", \"SimSun\", \"Times New Roman\", serif;\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-gradient-position {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: \"\";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: \"\";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-content {\n syntax: \"*\";\n initial-value: \"\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity,1);\n transform: translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));\n }\n}\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity,1);\n transform: translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));\n }\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))));\n }\n}\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))));\n }\n to {\n height: 0;\n }\n}\n@keyframes caret-blink {\n 0%,70%,100% {\n opacity: 1;\n }\n 20%,50% {\n opacity: 0;\n }\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n to {\n height: 0;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-content: \"\";\n --tw-animation-delay: 0s;\n --tw-animation-direction: normal;\n --tw-animation-duration: initial;\n --tw-animation-fill-mode: forwards;\n --tw-animation-iteration-count: 1;\n --tw-enter-opacity: 1;\n --tw-enter-rotate: 0;\n --tw-enter-scale: 1;\n --tw-enter-translate-x: 0;\n --tw-enter-translate-y: 0;\n --tw-exit-opacity: 1;\n --tw-exit-rotate: 0;\n --tw-exit-scale: 1;\n --tw-exit-translate-x: 0;\n --tw-exit-translate-y: 0;\n }\n }\n}\n"],"names":[],"mappings":"AACA;EA66ME;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA76MJ;EAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAFF;EAgHE;;;;;;;EAAA;;;;;;;EAMA;;;;;;;;;;EASA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;;;EAKA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;;;;;;;EAAA;;;;;;;;;;;EAUA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;IACE;;;;IAEE;MAAgD;;;;;;EAKpD;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAGA;;;;EAAA;;;;EAGA;;;;EAs1LA;;;;;EAGE;IAAgD;;;;;EAIlD;;;;;EAIA;;;;;;;AAhmMF;;AAAA;EAoQE;;;;EAIA;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;;;;;;;EAWA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAI3B;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;;EAMA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAIE;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAMF;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAI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"}}] + {"offset": {"line": 85, "column": 0}, "map": {"version":3,"sources":["file:///Users/freedak/Documents/go-new/chinese-family-tree/app/globals.css"],"sourcesContent":["/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-red-700: oklch(50.5% 0.213 27.518);\n --color-orange-50: oklch(98% 0.016 73.684);\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-orange-700: oklch(55.3% 0.195 38.402);\n --color-amber-700: oklch(55.5% 0.163 48.998);\n --color-yellow-50: oklch(98.7% 0.026 102.212);\n --color-yellow-200: oklch(94.5% 0.129 101.54);\n --color-yellow-400: oklch(85.2% 0.199 91.936);\n --color-yellow-800: oklch(47.6% 0.114 61.907);\n --color-yellow-900: oklch(42.1% 0.095 57.708);\n --color-yellow-950: oklch(28.6% 0.066 53.813);\n --color-green-50: oklch(98.2% 0.018 155.826);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-200: oklch(92.5% 0.084 155.995);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-green-600: oklch(62.7% 0.194 149.214);\n --color-green-700: oklch(52.7% 0.154 150.069);\n --color-green-800: oklch(44.8% 0.119 151.328);\n --color-blue-50: oklch(97% 0.014 254.604);\n --color-blue-100: oklch(93.2% 0.032 255.585);\n --color-blue-200: oklch(88.2% 0.059 254.128);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-blue-700: oklch(48.8% 0.243 264.376);\n --color-blue-800: oklch(42.4% 0.199 265.638);\n --color-blue-900: oklch(37.9% 0.146 265.522);\n --color-blue-950: oklch(28.2% 0.091 267.935);\n --color-purple-50: oklch(97.7% 0.014 308.299);\n --color-purple-100: oklch(94.6% 0.033 307.174);\n --color-purple-200: oklch(90.2% 0.063 306.703);\n --color-purple-500: oklch(62.7% 0.265 303.9);\n --color-purple-700: oklch(49.6% 0.265 301.924);\n --color-pink-100: oklch(94.8% 0.028 342.258);\n --color-pink-400: oklch(71.8% 0.202 349.761);\n --color-pink-500: oklch(65.6% 0.241 354.308);\n --color-pink-600: oklch(59.2% 0.249 0.584);\n --color-pink-700: oklch(52.5% 0.223 3.958);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-700: oklch(37.3% 0.034 259.733);\n --color-neutral-100: oklch(97% 0 0);\n --color-neutral-200: oklch(92.2% 0 0);\n --color-neutral-400: oklch(70.8% 0 0);\n --color-neutral-500: oklch(55.6% 0 0);\n --color-neutral-600: oklch(43.9% 0 0);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-sm: 24rem;\n --container-md: 28rem;\n --container-lg: 32rem;\n --container-2xl: 42rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n --container-6xl: 72rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-tight: -0.025em;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --tracking-widest: 0.1em;\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-normal: 1.5;\n --leading-relaxed: 1.625;\n --radius-xs: 0.125rem;\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --aspect-video: 16 / 9;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: \"Geist\", \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\n --default-mono-font-family: \"Geist Mono\", monospace;\n --color-border: var(--border);\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .\\@container\\/card-header {\n container-type: inline-size;\n container-name: card-header;\n }\n .\\@container\\/field-group {\n container-type: inline-size;\n container-name: field-group;\n }\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .invisible {\n visibility: hidden;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .inset-x-0 {\n inset-inline: calc(var(--spacing) * 0);\n }\n .inset-y-0 {\n inset-block: calc(var(--spacing) * 0);\n }\n .-top-1 {\n top: calc(var(--spacing) * -1);\n }\n .-top-3 {\n top: calc(var(--spacing) * -3);\n }\n .-top-12 {\n top: calc(var(--spacing) * -12);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1 {\n top: calc(var(--spacing) * 1);\n }\n .top-1\\.5 {\n top: calc(var(--spacing) * 1.5);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .top-2 {\n top: calc(var(--spacing) * 2);\n }\n .top-2\\.5 {\n top: calc(var(--spacing) * 2.5);\n }\n .top-3\\.5 {\n top: calc(var(--spacing) * 3.5);\n }\n .top-4 {\n top: calc(var(--spacing) * 4);\n }\n .top-20 {\n top: calc(var(--spacing) * 20);\n }\n .top-\\[1px\\] {\n top: 1px;\n }\n .top-\\[50\\%\\] {\n top: 50%;\n }\n .top-\\[60\\%\\] {\n top: 60%;\n }\n .top-full {\n top: 100%;\n }\n .-right-0\\.5 {\n right: calc(var(--spacing) * -0.5);\n }\n .-right-1 {\n right: calc(var(--spacing) * -1);\n }\n .-right-12 {\n right: calc(var(--spacing) * -12);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-1 {\n right: calc(var(--spacing) * 1);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-3 {\n right: calc(var(--spacing) * 3);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .-bottom-0\\.5 {\n bottom: calc(var(--spacing) * -0.5);\n }\n .-bottom-1 {\n bottom: calc(var(--spacing) * -1);\n }\n .-bottom-12 {\n bottom: calc(var(--spacing) * -12);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-2 {\n bottom: calc(var(--spacing) * 2);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .-left-12 {\n left: calc(var(--spacing) * -12);\n }\n .-left-16 {\n left: calc(var(--spacing) * -16);\n }\n .-left-\\[9px\\] {\n left: calc(9px * -1);\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .left-2 {\n left: calc(var(--spacing) * 2);\n }\n .left-2\\.5 {\n left: calc(var(--spacing) * 2.5);\n }\n .left-4 {\n left: calc(var(--spacing) * 4);\n }\n .left-\\[50\\%\\] {\n left: 50%;\n }\n .isolate {\n isolation: isolate;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-30 {\n z-index: 30;\n }\n .z-50 {\n z-index: 50;\n }\n .z-\\[1\\] {\n z-index: 1;\n }\n .z-\\[100\\] {\n z-index: 100;\n }\n .order-first {\n order: -9999;\n }\n .order-last {\n order: 9999;\n }\n .col-span-full {\n grid-column: 1 / -1;\n }\n .col-start-2 {\n grid-column-start: 2;\n }\n .row-span-2 {\n grid-row: span 2 / span 2;\n }\n .row-start-1 {\n grid-row-start: 1;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .\\!m-0 {\n margin: calc(var(--spacing) * 0) !important;\n }\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n }\n .mx-2 {\n margin-inline: calc(var(--spacing) * 2);\n }\n .mx-3\\.5 {\n margin-inline: calc(var(--spacing) * 3.5);\n }\n .mx-4 {\n margin-inline: calc(var(--spacing) * 4);\n }\n .mx-auto {\n margin-inline: auto;\n }\n .-my-2 {\n margin-block: calc(var(--spacing) * -2);\n }\n .my-0 {\n margin-block: calc(var(--spacing) * 0);\n }\n .my-0\\.5 {\n margin-block: calc(var(--spacing) * 0.5);\n }\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n .-mt-2 {\n margin-top: calc(var(--spacing) * -2);\n }\n .-mt-4 {\n margin-top: calc(var(--spacing) * -4);\n }\n .mt-0 {\n margin-top: calc(var(--spacing) * 0);\n }\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * 0.5);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-1\\.5 {\n margin-top: calc(var(--spacing) * 1.5);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-auto {\n margin-top: auto;\n }\n .mr-1 {\n margin-right: calc(var(--spacing) * 1);\n }\n .mr-2 {\n margin-right: calc(var(--spacing) * 2);\n }\n .mr-8 {\n margin-right: calc(var(--spacing) * 8);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .mb-8 {\n margin-bottom: calc(var(--spacing) * 8);\n }\n .-ml-4 {\n margin-left: calc(var(--spacing) * -4);\n }\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n .ml-2 {\n margin-left: calc(var(--spacing) * 2);\n }\n .ml-4 {\n margin-left: calc(var(--spacing) * 4);\n }\n .ml-6 {\n margin-left: calc(var(--spacing) * 6);\n }\n .ml-auto {\n margin-left: auto;\n }\n .line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n .line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline-flex {\n display: inline-flex;\n }\n .table {\n display: table;\n }\n .table-caption {\n display: table-caption;\n }\n .table-cell {\n display: table-cell;\n }\n .table-row {\n display: table-row;\n }\n .field-sizing-content {\n field-sizing: content;\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .aspect-video {\n aspect-ratio: var(--aspect-video);\n }\n .size-\\(--cell-size\\) {\n width: var(--cell-size);\n height: var(--cell-size);\n }\n .size-2 {\n width: calc(var(--spacing) * 2);\n height: calc(var(--spacing) * 2);\n }\n .size-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n .size-3 {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n .size-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n .size-4 {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n .size-6 {\n width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6);\n }\n .size-7 {\n width: calc(var(--spacing) * 7);\n height: calc(var(--spacing) * 7);\n }\n .size-8 {\n width: calc(var(--spacing) * 8);\n height: calc(var(--spacing) * 8);\n }\n .size-9 {\n width: calc(var(--spacing) * 9);\n height: calc(var(--spacing) * 9);\n }\n .size-10 {\n width: calc(var(--spacing) * 10);\n height: calc(var(--spacing) * 10);\n }\n .size-auto {\n width: auto;\n height: auto;\n }\n .size-full {\n width: 100%;\n height: 100%;\n }\n .h-\\(--cell-size\\) {\n height: var(--cell-size);\n }\n .h-1 {\n height: calc(var(--spacing) * 1);\n }\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-2\\.5 {\n height: calc(var(--spacing) * 2.5);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-7 {\n height: calc(var(--spacing) * 7);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n .h-14 {\n height: calc(var(--spacing) * 14);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-20 {\n height: calc(var(--spacing) * 20);\n }\n .h-32 {\n height: calc(var(--spacing) * 32);\n }\n .h-\\[1\\.15rem\\] {\n height: 1.15rem;\n }\n .h-\\[300px\\] {\n height: 300px;\n }\n .h-\\[400px\\] {\n height: 400px;\n }\n .h-\\[600px\\] {\n height: 600px;\n }\n .h-\\[calc\\(100\\%-1px\\)\\] {\n height: calc(100% - 1px);\n }\n .h-\\[var\\(--radix-navigation-menu-viewport-height\\)\\] {\n height: var(--radix-navigation-menu-viewport-height);\n }\n .h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n }\n .h-auto {\n height: auto;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .h-screen {\n height: 100vh;\n }\n .h-svh {\n height: 100svh;\n }\n .max-h-\\(--radix-context-menu-content-available-height\\) {\n max-height: var(--radix-context-menu-content-available-height);\n }\n .max-h-\\(--radix-dropdown-menu-content-available-height\\) {\n max-height: var(--radix-dropdown-menu-content-available-height);\n }\n .max-h-\\(--radix-select-content-available-height\\) {\n max-height: var(--radix-select-content-available-height);\n }\n .max-h-96 {\n max-height: calc(var(--spacing) * 96);\n }\n .max-h-\\[60vh\\] {\n max-height: 60vh;\n }\n .max-h-\\[70vh\\] {\n max-height: 70vh;\n }\n .max-h-\\[300px\\] {\n max-height: 300px;\n }\n .max-h-screen {\n max-height: 100vh;\n }\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n .min-h-4 {\n min-height: calc(var(--spacing) * 4);\n }\n .min-h-16 {\n min-height: calc(var(--spacing) * 16);\n }\n .min-h-\\[200px\\] {\n min-height: 200px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .min-h-screen {\n min-height: 100vh;\n }\n .min-h-svh {\n min-height: 100svh;\n }\n .w-\\(--cell-size\\) {\n width: var(--cell-size);\n }\n .w-\\(--sidebar-width\\) {\n width: var(--sidebar-width);\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-1 {\n width: calc(var(--spacing) * 1);\n }\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n .w-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n }\n .w-3 {\n width: calc(var(--spacing) * 3);\n }\n .w-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n }\n .w-3\\/4 {\n width: calc(3/4 * 100%);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-7 {\n width: calc(var(--spacing) * 7);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-9 {\n width: calc(var(--spacing) * 9);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n .w-14 {\n width: calc(var(--spacing) * 14);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n .w-32 {\n width: calc(var(--spacing) * 32);\n }\n .w-48 {\n width: calc(var(--spacing) * 48);\n }\n .w-56 {\n width: calc(var(--spacing) * 56);\n }\n .w-64 {\n width: calc(var(--spacing) * 64);\n }\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n .w-\\[100px\\] {\n width: 100px;\n }\n .w-\\[200px\\] {\n width: 200px;\n }\n .w-\\[var\\(--radix-dropdown-menu-trigger-width\\)\\] {\n width: var(--radix-dropdown-menu-trigger-width);\n }\n .w-auto {\n width: auto;\n }\n .w-fit {\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .w-max {\n width: max-content;\n }\n .w-px {\n width: 1px;\n }\n .max-w-\\(--skeleton-width\\) {\n max-width: var(--skeleton-width);\n }\n .max-w-2xl {\n max-width: var(--container-2xl);\n }\n .max-w-3xl {\n max-width: var(--container-3xl);\n }\n .max-w-4xl {\n max-width: var(--container-4xl);\n }\n .max-w-6xl {\n max-width: var(--container-6xl);\n }\n .max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n }\n .max-w-full {\n max-width: 100%;\n }\n .max-w-max {\n max-width: max-content;\n }\n .max-w-md {\n max-width: var(--container-md);\n }\n .max-w-none {\n max-width: none;\n }\n .max-w-sm {\n max-width: var(--container-sm);\n }\n .min-w-\\(--cell-size\\) {\n min-width: var(--cell-size);\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n .min-w-5 {\n min-width: calc(var(--spacing) * 5);\n }\n .min-w-8 {\n min-width: calc(var(--spacing) * 8);\n }\n .min-w-9 {\n min-width: calc(var(--spacing) * 9);\n }\n .min-w-10 {\n min-width: calc(var(--spacing) * 10);\n }\n .min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n .min-w-\\[12rem\\] {\n min-width: 12rem;\n }\n .min-w-\\[200px\\] {\n min-width: 200px;\n }\n .min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n }\n .min-w-fit {\n min-width: fit-content;\n }\n .min-w-full {\n min-width: 100%;\n }\n .flex-1 {\n flex: 1;\n }\n .flex-shrink {\n flex-shrink: 1;\n }\n .flex-shrink-0 {\n flex-shrink: 0;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .grow {\n flex-grow: 1;\n }\n .grow-0 {\n flex-grow: 0;\n }\n .basis-full {\n flex-basis: 100%;\n }\n .caption-bottom {\n caption-side: bottom;\n }\n .border-collapse {\n border-collapse: collapse;\n }\n .origin-\\(--radix-context-menu-content-transform-origin\\) {\n transform-origin: var(--radix-context-menu-content-transform-origin);\n }\n .origin-\\(--radix-dropdown-menu-content-transform-origin\\) {\n transform-origin: var(--radix-dropdown-menu-content-transform-origin);\n }\n .origin-\\(--radix-hover-card-content-transform-origin\\) {\n transform-origin: var(--radix-hover-card-content-transform-origin);\n }\n .origin-\\(--radix-menubar-content-transform-origin\\) {\n transform-origin: var(--radix-menubar-content-transform-origin);\n }\n .origin-\\(--radix-popover-content-transform-origin\\) {\n transform-origin: var(--radix-popover-content-transform-origin);\n }\n .origin-\\(--radix-select-content-transform-origin\\) {\n transform-origin: var(--radix-select-content-transform-origin);\n }\n .origin-\\(--radix-tooltip-content-transform-origin\\) {\n transform-origin: var(--radix-tooltip-content-transform-origin);\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-px {\n --tw-translate-x: -1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-px {\n --tw-translate-x: 1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0\\.5 {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[2px\\] {\n --tw-translate-y: 2px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-\\[calc\\(-50\\%_-_2px\\)\\] {\n --tw-translate-y: calc(-50% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .rotate-45 {\n rotate: 45deg;\n }\n .rotate-90 {\n rotate: 90deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-caret-blink {\n animation: caret-blink 1.25s ease-out infinite;\n }\n .animate-in {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-move {\n cursor: move;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .cursor-text {\n cursor: text;\n }\n .touch-none {\n touch-action: none;\n }\n .resize {\n resize: both;\n }\n .resize-none {\n resize: none;\n }\n .scroll-my-1 {\n scroll-margin-block: calc(var(--spacing) * 1);\n }\n .scroll-py-1 {\n scroll-padding-block: calc(var(--spacing) * 1);\n }\n .list-inside {\n list-style-position: inside;\n }\n .list-disc {\n list-style-type: disc;\n }\n .list-none {\n list-style-type: none;\n }\n .auto-rows-min {\n grid-auto-rows: min-content;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-\\[0_1fr\\] {\n grid-template-columns: 0 1fr;\n }\n .grid-rows-\\[auto_auto\\] {\n grid-template-rows: auto auto;\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-col-reverse {\n flex-direction: column-reverse;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-baseline {\n align-items: baseline;\n }\n .items-center {\n align-items: center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .justify-items-start {\n justify-items: start;\n }\n .gap-0\\.5 {\n gap: calc(var(--spacing) * 0.5);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-2\\.5 {\n gap: calc(var(--spacing) * 2.5);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-7 {\n gap: calc(var(--spacing) * 7);\n }\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n .space-y-0 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-0\\.5 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-1 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-2 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-8 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-x-4 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .gap-y-0\\.5 {\n row-gap: calc(var(--spacing) * 0.5);\n }\n .self-start {\n align-self: flex-start;\n }\n .self-stretch {\n align-self: stretch;\n }\n .justify-self-end {\n justify-self: flex-end;\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-auto {\n overflow: auto;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-\\[2px\\] {\n border-radius: 2px;\n }\n .rounded-\\[4px\\] {\n border-radius: 4px;\n }\n .rounded-\\[calc\\(var\\(--radius\\)-5px\\)\\] {\n border-radius: calc(var(--radius) - 5px);\n }\n .rounded-\\[inherit\\] {\n border-radius: inherit;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius);\n }\n .rounded-md {\n border-radius: calc(var(--radius) - 2px);\n }\n .rounded-none {\n border-radius: 0;\n }\n .rounded-sm {\n border-radius: calc(var(--radius) - 4px);\n }\n .rounded-xl {\n border-radius: calc(var(--radius) + 4px);\n }\n .rounded-xs {\n border-radius: var(--radius-xs);\n }\n .rounded-l-md {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n .rounded-tl-sm {\n border-top-left-radius: calc(var(--radius) - 4px);\n }\n .rounded-r-md {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-4 {\n border-style: var(--tw-border-style);\n border-width: 4px;\n }\n .border-\\[1\\.5px\\] {\n border-style: var(--tw-border-style);\n border-width: 1.5px;\n }\n .border-y {\n border-block-style: var(--tw-border-style);\n border-block-width: 1px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-l-2 {\n border-left-style: var(--tw-border-style);\n border-left-width: 2px;\n }\n .border-l-4 {\n border-left-style: var(--tw-border-style);\n border-left-width: 4px;\n }\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .border-\\(--color-border\\) {\n border-color: var(--color-border);\n }\n .border-background {\n border-color: var(--background);\n }\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n .border-blue-500 {\n border-color: var(--color-blue-500);\n }\n .border-border {\n border-color: var(--border);\n }\n .border-border\\/40 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 40%, transparent);\n }\n }\n .border-border\\/50 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 50%, transparent);\n }\n }\n .border-border\\/60 {\n border-color: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--border) 60%, transparent);\n }\n }\n .border-destructive {\n border-color: var(--destructive);\n }\n .border-destructive\\/20 {\n border-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-green-200 {\n border-color: var(--color-green-200);\n }\n .border-input {\n border-color: var(--input);\n }\n .border-muted-foreground\\/50 {\n border-color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--muted-foreground) 50%, transparent);\n }\n }\n .border-neutral-200 {\n border-color: var(--color-neutral-200);\n }\n .border-orange-200 {\n border-color: var(--color-orange-200);\n }\n .border-primary {\n border-color: var(--primary);\n }\n .border-primary\\/20 {\n border-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--primary) 20%, transparent);\n }\n }\n .border-purple-200 {\n border-color: var(--color-purple-200);\n }\n .border-red-500 {\n border-color: var(--color-red-500);\n }\n .border-sidebar-border {\n border-color: var(--sidebar-border);\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-white {\n border-color: var(--color-white);\n }\n .border-yellow-400 {\n border-color: var(--color-yellow-400);\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .border-l-transparent {\n border-left-color: transparent;\n }\n .bg-\\(--color-bg\\) {\n background-color: var(--color-bg);\n }\n .bg-accent {\n background-color: var(--accent);\n }\n .bg-background {\n background-color: var(--background);\n }\n .bg-background\\/50 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 50%, transparent);\n }\n }\n .bg-background\\/60 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 60%, transparent);\n }\n }\n .bg-background\\/80 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 80%, transparent);\n }\n }\n .bg-background\\/90 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 90%, transparent);\n }\n }\n .bg-background\\/95 {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 95%, transparent);\n }\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n .bg-blue-500 {\n background-color: var(--color-blue-500);\n }\n .bg-border {\n background-color: var(--border);\n }\n .bg-card {\n background-color: var(--card);\n }\n .bg-card\\/50 {\n background-color: var(--card);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--card) 50%, transparent);\n }\n }\n .bg-destructive {\n background-color: var(--destructive);\n }\n .bg-destructive\\/10 {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 10%, transparent);\n }\n }\n .bg-destructive\\/15 {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 15%, transparent);\n }\n }\n .bg-foreground {\n background-color: var(--foreground);\n }\n .bg-foreground\\/25 {\n background-color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--foreground) 25%, transparent);\n }\n }\n .bg-foreground\\/50 {\n background-color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--foreground) 50%, transparent);\n }\n }\n .bg-foreground\\/60 {\n background-color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--foreground) 60%, transparent);\n }\n }\n .bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-gray-500 {\n background-color: var(--color-gray-500);\n }\n .bg-green-50 {\n background-color: var(--color-green-50);\n }\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n .bg-input {\n background-color: var(--input);\n }\n .bg-muted {\n background-color: var(--muted);\n }\n .bg-muted\\/30 {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 30%, transparent);\n }\n }\n .bg-muted\\/50 {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 50%, transparent);\n }\n }\n .bg-neutral-100 {\n background-color: var(--color-neutral-100);\n }\n .bg-neutral-400 {\n background-color: var(--color-neutral-400);\n }\n .bg-orange-50 {\n background-color: var(--color-orange-50);\n }\n .bg-orange-500 {\n background-color: var(--color-orange-500);\n }\n .bg-pink-100 {\n background-color: var(--color-pink-100);\n }\n .bg-pink-500 {\n background-color: var(--color-pink-500);\n }\n .bg-popover {\n background-color: var(--popover);\n }\n .bg-primary {\n background-color: var(--primary);\n }\n .bg-primary\\/5 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 5%, transparent);\n }\n }\n .bg-primary\\/10 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 10%, transparent);\n }\n }\n .bg-primary\\/20 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 20%, transparent);\n }\n }\n .bg-primary\\/40 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 40%, transparent);\n }\n }\n .bg-primary\\/60 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 60%, transparent);\n }\n }\n .bg-primary\\/70 {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 70%, transparent);\n }\n }\n .bg-purple-50 {\n background-color: var(--color-purple-50);\n }\n .bg-purple-100 {\n background-color: var(--color-purple-100);\n }\n .bg-purple-500 {\n background-color: var(--color-purple-500);\n }\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n .bg-red-500 {\n background-color: var(--color-red-500);\n }\n .bg-secondary {\n background-color: var(--secondary);\n }\n .bg-sidebar {\n background-color: var(--sidebar);\n }\n .bg-sidebar-border {\n background-color: var(--sidebar-border);\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-yellow-50 {\n background-color: var(--color-yellow-50);\n }\n .bg-gradient-to-br {\n --tw-gradient-position: to bottom right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-gradient-to-r {\n --tw-gradient-position: to right in oklab;\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .bg-\\[url\\(\\'https\\:\\/\\/www\\.transparenttextures\\.com\\/patterns\\/rice-paper\\.png\\'\\)\\] {\n background-image: url('https://www.transparenttextures.com/patterns/rice-paper.png');\n }\n .from-blue-500 {\n --tw-gradient-from: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-blue-600 {\n --tw-gradient-from: var(--color-blue-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-card {\n --tw-gradient-from: var(--card);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-pink-500 {\n --tw-gradient-from: var(--color-pink-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-primary\\/5 {\n --tw-gradient-from: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--primary) 5%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .from-primary\\/50 {\n --tw-gradient-from: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-from: color-mix(in oklab, var(--primary) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .via-background {\n --tw-gradient-via: var(--background);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-primary {\n --tw-gradient-via: var(--primary);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .via-purple-500 {\n --tw-gradient-via: var(--color-purple-500);\n --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-via-stops);\n }\n .to-blue-400 {\n --tw-gradient-to: var(--color-blue-400);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-blue-500 {\n --tw-gradient-to: var(--color-blue-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-card\\/50 {\n --tw-gradient-to: var(--card);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--card) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-pink-400 {\n --tw-gradient-to: var(--color-pink-400);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-pink-500 {\n --tw-gradient-to: var(--color-pink-500);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-pink-600 {\n --tw-gradient-to: var(--color-pink-600);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-primary\\/50 {\n --tw-gradient-to: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--primary) 50%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-secondary\\/5 {\n --tw-gradient-to: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-gradient-to: color-mix(in oklab, var(--secondary) 5%, transparent);\n }\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .bg-repeat {\n background-repeat: repeat;\n }\n .fill-current {\n fill: currentcolor;\n }\n .fill-foreground {\n fill: var(--foreground);\n }\n .fill-primary {\n fill: var(--primary);\n }\n .object-contain {\n object-fit: contain;\n }\n .object-cover {\n object-fit: cover;\n }\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .p-12 {\n padding: calc(var(--spacing) * 12);\n }\n .p-\\[3px\\] {\n padding: 3px;\n }\n .p-px {\n padding: 1px;\n }\n .px-\\(--cell-size\\) {\n padding-inline: var(--cell-size);\n }\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6);\n }\n .py-8 {\n padding-block: calc(var(--spacing) * 8);\n }\n .py-10 {\n padding-block: calc(var(--spacing) * 10);\n }\n .py-12 {\n padding-block: calc(var(--spacing) * 12);\n }\n .pt-0 {\n padding-top: calc(var(--spacing) * 0);\n }\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-20 {\n padding-top: calc(var(--spacing) * 20);\n }\n .pr-1 {\n padding-right: calc(var(--spacing) * 1);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pr-2\\.5 {\n padding-right: calc(var(--spacing) * 2.5);\n }\n .pr-3 {\n padding-right: calc(var(--spacing) * 3);\n }\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n .pr-8 {\n padding-right: calc(var(--spacing) * 8);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n .pb-6 {\n padding-bottom: calc(var(--spacing) * 6);\n }\n .pb-8 {\n padding-bottom: calc(var(--spacing) * 8);\n }\n .pb-20 {\n padding-bottom: calc(var(--spacing) * 20);\n }\n .pl-1 {\n padding-left: calc(var(--spacing) * 1);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .pl-8 {\n padding-left: calc(var(--spacing) * 8);\n }\n .pl-9 {\n padding-left: calc(var(--spacing) * 9);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .align-middle {\n vertical-align: middle;\n }\n .font-mono {\n font-family: \"Geist Mono\", monospace;\n }\n .font-sans {\n font-family: \"Geist\", \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\n }\n .font-serif {\n font-family: \"Songti SC\", \"STSong\", \"SimSun\", \"Times New Roman\", serif;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-3xl {\n font-size: var(--text-3xl);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n .text-5xl {\n font-size: var(--text-5xl);\n line-height: var(--tw-leading, var(--text-5xl--line-height));\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-sm\\/relaxed {\n font-size: var(--text-sm);\n line-height: var(--leading-relaxed);\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n }\n .text-\\[9px\\] {\n font-size: 9px;\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .text-\\[11px\\] {\n font-size: 11px;\n }\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n .leading-normal {\n --tw-leading: var(--leading-normal);\n line-height: var(--leading-normal);\n }\n .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n .leading-snug {\n --tw-leading: var(--leading-snug);\n line-height: var(--leading-snug);\n }\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n .tracking-widest {\n --tw-tracking: var(--tracking-widest);\n letter-spacing: var(--tracking-widest);\n }\n .text-balance {\n text-wrap: balance;\n }\n .break-words {\n overflow-wrap: break-word;\n }\n .break-all {\n word-break: break-all;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .whitespace-pre-line {\n white-space: pre-line;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-accent-foreground {\n color: var(--accent-foreground);\n }\n .text-amber-700 {\n color: var(--color-amber-700);\n }\n .text-background {\n color: var(--background);\n }\n .text-blue-400 {\n color: var(--color-blue-400);\n }\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n .text-card-foreground {\n color: var(--card-foreground);\n }\n .text-current {\n color: currentcolor;\n }\n .text-destructive {\n color: var(--destructive);\n }\n .text-destructive-foreground {\n color: var(--destructive-foreground);\n }\n .text-foreground {\n color: var(--foreground);\n }\n .text-foreground\\/50 {\n color: var(--foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--foreground) 50%, transparent);\n }\n }\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n .text-green-600 {\n color: var(--color-green-600);\n }\n .text-green-700 {\n color: var(--color-green-700);\n }\n .text-green-800 {\n color: var(--color-green-800);\n }\n .text-muted-foreground {\n color: var(--muted-foreground);\n }\n .text-muted-foreground\\/60 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 60%, transparent);\n }\n }\n .text-muted-foreground\\/70 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 70%, transparent);\n }\n }\n .text-muted-foreground\\/80 {\n color: var(--muted-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--muted-foreground) 80%, transparent);\n }\n }\n .text-neutral-500 {\n color: var(--color-neutral-500);\n }\n .text-neutral-600 {\n color: var(--color-neutral-600);\n }\n .text-orange-700 {\n color: var(--color-orange-700);\n }\n .text-pink-400 {\n color: var(--color-pink-400);\n }\n .text-pink-600 {\n color: var(--color-pink-600);\n }\n .text-pink-700 {\n color: var(--color-pink-700);\n }\n .text-popover-foreground {\n color: var(--popover-foreground);\n }\n .text-primary {\n color: var(--primary);\n }\n .text-primary-foreground {\n color: var(--primary-foreground);\n }\n .text-primary\\/70 {\n color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--primary) 70%, transparent);\n }\n }\n .text-primary\\/80 {\n color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--primary) 80%, transparent);\n }\n }\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n .text-red-400 {\n color: var(--color-red-400);\n }\n .text-red-600 {\n color: var(--color-red-600);\n }\n .text-red-700 {\n color: var(--color-red-700);\n }\n .text-secondary-foreground {\n color: var(--secondary-foreground);\n }\n .text-sidebar-foreground {\n color: var(--sidebar-foreground);\n }\n .text-sidebar-foreground\\/70 {\n color: var(--sidebar-foreground);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--sidebar-foreground) 70%, transparent);\n }\n }\n .text-white {\n color: var(--color-white);\n }\n .text-yellow-800 {\n color: var(--color-yellow-800);\n }\n .uppercase {\n text-transform: uppercase;\n }\n .italic {\n font-style: italic;\n }\n .tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\n }\n .underline {\n text-decoration-line: underline;\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-20 {\n opacity: 20%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-70 {\n opacity: 70%;\n }\n .opacity-90 {\n opacity: 90%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-border\\)\\)\\] {\n --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-border)));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-none {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-0 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-4 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-background {\n --tw-ring-color: var(--background);\n }\n .ring-blue-200 {\n --tw-ring-color: var(--color-blue-200);\n }\n .ring-ring\\/50 {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n .ring-sidebar-ring {\n --tw-ring-color: var(--sidebar-ring);\n }\n .ring-yellow-200 {\n --tw-ring-color: var(--color-yellow-200);\n }\n .ring-offset-background {\n --tw-ring-offset-color: var(--background);\n }\n .outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .backdrop-blur {\n --tw-backdrop-blur: blur(8px);\n -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,);\n 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,);\n }\n .transition {\n 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;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[color\\,box-shadow\\] {\n transition-property: color,box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[left\\,right\\,width\\] {\n transition-property: left,right,width;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[margin\\,opacity\\] {\n transition-property: margin,opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[width\\,height\\,padding\\] {\n transition-property: width,height,padding;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[width\\] {\n transition-property: width;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-none {\n transition-property: none;\n }\n .duration-100 {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .duration-500 {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n .duration-1000 {\n --tw-duration: 1000ms;\n transition-duration: 1000ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .ease-linear {\n --tw-ease: linear;\n transition-timing-function: linear;\n }\n .ease-out {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n .fade-in-0 {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .slide-in-from-bottom-5 {\n --tw-enter-translate-y: calc(5*var(--spacing));\n --tw-enter-translate-y: calc(.05*100%);\n }\n .zoom-in-95 {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n .\\[--cell-size\\:--spacing\\(8\\)\\] {\n --cell-size: calc(var(--spacing) * 8);\n }\n .slide-in-from-top-2 {\n --tw-enter-translate-y: calc(2*var(--spacing)*-1);\n }\n .group-last\\:hidden {\n &:is(:where(.group):last-child *) {\n display: none;\n }\n }\n .group-focus-within\\/menu-item\\:opacity-100 {\n &:is(:where(.group\\/menu-item):focus-within *) {\n opacity: 100%;\n }\n }\n .group-hover\\:scale-110 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n --tw-scale-x: 110%;\n --tw-scale-y: 110%;\n --tw-scale-z: 110%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .group-hover\\:bg-primary\\/20 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 20%, transparent);\n }\n }\n }\n }\n .group-hover\\:opacity-100 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-hover\\/menu-item\\:opacity-100 {\n &:is(:where(.group\\/menu-item):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-has-data-\\[sidebar\\=menu-action\\]\\/menu-item\\:pr-8 {\n &:is(:where(.group\\/menu-item):has(*[data-sidebar=\"menu-action\"]) *) {\n padding-right: calc(var(--spacing) * 8);\n }\n }\n .group-has-\\[\\[data-orientation\\=horizontal\\]\\]\\/field\\:text-balance {\n &:is(:where(.group\\/field):has(*:is([data-orientation=horizontal])) *) {\n text-wrap: balance;\n }\n }\n .group-has-\\[\\[data-slot\\=item-description\\]\\]\\/item\\:translate-y-0\\.5 {\n &:is(:where(.group\\/item):has(*:is([data-slot=item-description])) *) {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-has-\\[\\[data-slot\\=item-description\\]\\]\\/item\\:self-start {\n &:is(:where(.group\\/item):has(*:is([data-slot=item-description])) *) {\n align-self: flex-start;\n }\n }\n .group-has-\\[\\>input\\]\\/input-group\\:pt-2\\.5 {\n &:is(:where(.group\\/input-group):has(>input) *) {\n padding-top: calc(var(--spacing) * 2.5);\n }\n }\n .group-has-\\[\\>input\\]\\/input-group\\:pb-2\\.5 {\n &:is(:where(.group\\/input-group):has(>input) *) {\n padding-bottom: calc(var(--spacing) * 2.5);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:-mt-8 {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n margin-top: calc(var(--spacing) * -8);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:hidden {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n display: none;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:size-8\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--spacing) * 8) !important;\n height: calc(var(--spacing) * 8) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\(--sidebar-width-icon\\) {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: var(--sidebar-width-icon);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\)\\] {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)));\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)\\+\\(--spacing\\(4\\)\\)\\+2px\\)\\] {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)) + 2px);\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:overflow-hidden {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n overflow: hidden;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:p-0\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n padding: calc(var(--spacing) * 0) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:p-2\\! {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n padding: calc(var(--spacing) * 2) !important;\n }\n }\n .group-data-\\[collapsible\\=icon\\]\\:opacity-0 {\n &:is(:where(.group)[data-collapsible=\"icon\"] *) {\n opacity: 0%;\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:right-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n right: calc(var(--sidebar-width) * -1);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:left-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n left: calc(var(--sidebar-width) * -1);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:w-0 {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n width: calc(var(--spacing) * 0);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:translate-x-0 {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-data-\\[disabled\\=true\\]\\:pointer-events-none {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n pointer-events: none;\n }\n }\n .group-data-\\[disabled\\=true\\]\\:opacity-50 {\n &:is(:where(.group)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .group-data-\\[disabled\\=true\\]\\/field\\:opacity-50 {\n &:is(:where(.group\\/field)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .group-data-\\[disabled\\=true\\]\\/input-group\\:opacity-50 {\n &:is(:where(.group\\/input-group)[data-disabled=\"true\"] *) {\n opacity: 50%;\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:relative {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n position: relative;\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:z-10 {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n z-index: 10;\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:border-ring {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n border-color: var(--ring);\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:ring-\\[3px\\] {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .group-data-\\[focused\\=true\\]\\/day\\:ring-ring\\/50 {\n &:is(:where(.group\\/day)[data-focused=\"true\"] *) {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .group-data-\\[side\\=left\\]\\:-right-4 {\n &:is(:where(.group)[data-side=\"left\"] *) {\n right: calc(var(--spacing) * -4);\n }\n }\n .group-data-\\[side\\=left\\]\\:border-r {\n &:is(:where(.group)[data-side=\"left\"] *) {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n }\n .group-data-\\[side\\=right\\]\\:left-0 {\n &:is(:where(.group)[data-side=\"right\"] *) {\n left: calc(var(--spacing) * 0);\n }\n }\n .group-data-\\[side\\=right\\]\\:rotate-180 {\n &:is(:where(.group)[data-side=\"right\"] *) {\n rotate: 180deg;\n }\n }\n .group-data-\\[side\\=right\\]\\:border-l {\n &:is(:where(.group)[data-side=\"right\"] *) {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .group-data-\\[state\\=open\\]\\:rotate-180 {\n &:is(:where(.group)[data-state=\"open\"] *) {\n rotate: 180deg;\n }\n }\n .group-data-\\[variant\\=floating\\]\\:rounded-lg {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-radius: var(--radius);\n }\n }\n .group-data-\\[variant\\=floating\\]\\:border {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .group-data-\\[variant\\=floating\\]\\:border-sidebar-border {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n border-color: var(--sidebar-border);\n }\n }\n .group-data-\\[variant\\=floating\\]\\:shadow-sm {\n &:is(:where(.group)[data-variant=\"floating\"] *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .group-data-\\[variant\\=outline\\]\\/field-group\\:-mb-2 {\n &:is(:where(.group\\/field-group)[data-variant=\"outline\"] *) {\n margin-bottom: calc(var(--spacing) * -2);\n }\n }\n .group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:block {\n &:is(:where(.group\\/drawer-content)[data-vaul-drawer-direction=\"bottom\"] *) {\n display: block;\n }\n }\n .group-data-\\[vaul-drawer-direction\\=bottom\\]\\/drawer-content\\:text-center {\n &:is(:where(.group\\/drawer-content)[data-vaul-drawer-direction=\"bottom\"] *) {\n text-align: center;\n }\n }\n .group-data-\\[vaul-drawer-direction\\=top\\]\\/drawer-content\\:text-center {\n &:is(:where(.group\\/drawer-content)[data-vaul-drawer-direction=\"top\"] *) {\n text-align: center;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:top-full {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n top: 100%;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:mt-1\\.5 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n margin-top: calc(var(--spacing) * 1.5);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:overflow-hidden {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n overflow: hidden;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:rounded-md {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:border {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:bg-popover {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n background-color: var(--popover);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:text-popover-foreground {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n color: var(--popover-foreground);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:shadow {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:duration-200 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n }\n .group-\\[\\.destructive\\]\\:border-muted\\/40 {\n &:is(:where(.group):is(.destructive) *) {\n border-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--muted) 40%, transparent);\n }\n }\n }\n .group-\\[\\.destructive\\]\\:text-red-300 {\n &:is(:where(.group):is(.destructive) *) {\n color: var(--color-red-300);\n }\n }\n .peer-hover\\/menu-button\\:text-sidebar-accent-foreground {\n &:is(:where(.peer\\/menu-button):hover ~ *) {\n @media (hover: hover) {\n color: var(--sidebar-accent-foreground);\n }\n }\n }\n .peer-disabled\\:cursor-not-allowed {\n &:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed;\n }\n }\n .peer-disabled\\:opacity-50 {\n &:is(:where(.peer):disabled ~ *) {\n opacity: 50%;\n }\n }\n .peer-data-\\[active\\=true\\]\\/menu-button\\:text-sidebar-accent-foreground {\n &:is(:where(.peer\\/menu-button)[data-active=\"true\"] ~ *) {\n color: var(--sidebar-accent-foreground);\n }\n }\n .peer-data-\\[size\\=default\\]\\/menu-button\\:top-1\\.5 {\n &:is(:where(.peer\\/menu-button)[data-size=\"default\"] ~ *) {\n top: calc(var(--spacing) * 1.5);\n }\n }\n .peer-data-\\[size\\=lg\\]\\/menu-button\\:top-2\\.5 {\n &:is(:where(.peer\\/menu-button)[data-size=\"lg\"] ~ *) {\n top: calc(var(--spacing) * 2.5);\n }\n }\n .peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1 {\n &:is(:where(.peer\\/menu-button)[data-size=\"sm\"] ~ *) {\n top: calc(var(--spacing) * 1);\n }\n }\n .selection\\:bg-primary {\n & *::selection {\n background-color: var(--primary);\n }\n &::selection {\n background-color: var(--primary);\n }\n }\n .selection\\:text-primary-foreground {\n & *::selection {\n color: var(--primary-foreground);\n }\n &::selection {\n color: var(--primary-foreground);\n }\n }\n .file\\:inline-flex {\n &::file-selector-button {\n display: inline-flex;\n }\n }\n .file\\:h-7 {\n &::file-selector-button {\n height: calc(var(--spacing) * 7);\n }\n }\n .file\\:border-0 {\n &::file-selector-button {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .file\\:bg-transparent {\n &::file-selector-button {\n background-color: transparent;\n }\n }\n .file\\:text-sm {\n &::file-selector-button {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .file\\:font-medium {\n &::file-selector-button {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .file\\:text-foreground {\n &::file-selector-button {\n color: var(--foreground);\n }\n }\n .placeholder\\:text-muted-foreground {\n &::placeholder {\n color: var(--muted-foreground);\n }\n }\n .after\\:absolute {\n &::after {\n content: var(--tw-content);\n position: absolute;\n }\n }\n .after\\:-inset-2 {\n &::after {\n content: var(--tw-content);\n inset: calc(var(--spacing) * -2);\n }\n }\n .after\\:inset-y-0 {\n &::after {\n content: var(--tw-content);\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .after\\:left-1\\/2 {\n &::after {\n content: var(--tw-content);\n left: calc(1/2 * 100%);\n }\n }\n .after\\:w-1 {\n &::after {\n content: var(--tw-content);\n width: calc(var(--spacing) * 1);\n }\n }\n .after\\:w-\\[2px\\] {\n &::after {\n content: var(--tw-content);\n width: 2px;\n }\n }\n .after\\:-translate-x-1\\/2 {\n &::after {\n content: var(--tw-content);\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .group-data-\\[collapsible\\=offcanvas\\]\\:after\\:left-full {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n &::after {\n content: var(--tw-content);\n left: 100%;\n }\n }\n }\n .first\\:rounded-l-md {\n &:first-child {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n }\n .first\\:border-l {\n &:first-child {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .last\\:mt-0 {\n &:last-child {\n margin-top: calc(var(--spacing) * 0);\n }\n }\n .last\\:rounded-r-md {\n &:last-child {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n .last\\:border-0 {\n &:last-child {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .last\\:border-b-0 {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n .hover\\:scale-105 {\n &:hover {\n @media (hover: hover) {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:border-blue-400 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-blue-400);\n }\n }\n }\n .hover\\:border-primary {\n &:hover {\n @media (hover: hover) {\n border-color: var(--primary);\n }\n }\n }\n .hover\\:border-primary\\/30 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--primary) 30%, transparent);\n }\n }\n }\n }\n .hover\\:bg-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n .hover\\:bg-accent\\/5 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 5%, transparent);\n }\n }\n }\n }\n .hover\\:bg-accent\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-background {\n &:hover {\n @media (hover: hover) {\n background-color: var(--background);\n }\n }\n }\n .hover\\:bg-card {\n &:hover {\n @media (hover: hover) {\n background-color: var(--card);\n }\n }\n }\n .hover\\:bg-destructive {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n }\n }\n }\n .hover\\:bg-destructive\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n }\n }\n }\n .hover\\:bg-muted\\/30 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 30%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted\\/50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 50%, transparent);\n }\n }\n }\n }\n .hover\\:bg-muted\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--muted) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-primary\\/90 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n }\n }\n }\n .hover\\:bg-secondary {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n }\n }\n }\n .hover\\:bg-secondary\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--secondary) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-sidebar-accent {\n &:hover {\n @media (hover: hover) {\n background-color: var(--sidebar-accent);\n }\n }\n }\n .hover\\:text-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n .hover\\:text-destructive {\n &:hover {\n @media (hover: hover) {\n color: var(--destructive);\n }\n }\n }\n .hover\\:text-destructive-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--destructive-foreground);\n }\n }\n }\n .hover\\:text-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--foreground);\n }\n }\n }\n .hover\\:text-muted-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--muted-foreground);\n }\n }\n }\n .hover\\:text-primary {\n &:hover {\n @media (hover: hover) {\n color: var(--primary);\n }\n }\n }\n .hover\\:text-sidebar-accent-foreground {\n &:hover {\n @media (hover: hover) {\n color: var(--sidebar-accent-foreground);\n }\n }\n }\n .hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .hover\\:opacity-90 {\n &:hover {\n @media (hover: hover) {\n opacity: 90%;\n }\n }\n }\n .hover\\:opacity-100 {\n &:hover {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .hover\\:shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-accent\\)\\)\\] {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-accent)));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-lg {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:shadow-md {\n &:hover {\n @media (hover: hover) {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:ring-4 {\n &:hover {\n @media (hover: hover) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .hover\\:group-data-\\[collapsible\\=offcanvas\\]\\:bg-sidebar {\n &:hover {\n @media (hover: hover) {\n &:is(:where(.group)[data-collapsible=\"offcanvas\"] *) {\n background-color: var(--sidebar);\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:border-destructive\\/30 {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n border-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--destructive) 30%, transparent);\n }\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:bg-destructive {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:text-destructive-foreground {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n color: var(--destructive-foreground);\n }\n }\n }\n }\n .group-\\[\\.destructive\\]\\:hover\\:text-red-50 {\n &:is(:where(.group):is(.destructive) *) {\n &:hover {\n @media (hover: hover) {\n color: var(--color-red-50);\n }\n }\n }\n }\n .hover\\:after\\:bg-sidebar-border {\n &:hover {\n @media (hover: hover) {\n &::after {\n content: var(--tw-content);\n background-color: var(--sidebar-border);\n }\n }\n }\n }\n .focus\\:z-10 {\n &:focus {\n z-index: 10;\n }\n }\n .focus\\:bg-accent {\n &:focus {\n background-color: var(--accent);\n }\n }\n .focus\\:text-accent-foreground {\n &:focus {\n color: var(--accent-foreground);\n }\n }\n .focus\\:opacity-100 {\n &:focus {\n opacity: 100%;\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-ring {\n &:focus {\n --tw-ring-color: var(--ring);\n }\n }\n .focus\\:ring-offset-2 {\n &:focus {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus\\:outline-hidden {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .group-\\[\\.destructive\\]\\:focus\\:ring-destructive {\n &:is(:where(.group):is(.destructive) *) {\n &:focus {\n --tw-ring-color: var(--destructive);\n }\n }\n }\n .group-\\[\\.destructive\\]\\:focus\\:ring-red-400 {\n &:is(:where(.group):is(.destructive) *) {\n &:focus {\n --tw-ring-color: var(--color-red-400);\n }\n }\n }\n .group-\\[\\.destructive\\]\\:focus\\:ring-offset-red-600 {\n &:is(:where(.group):is(.destructive) *) {\n &:focus {\n --tw-ring-offset-color: var(--color-red-600);\n }\n }\n }\n .focus-visible\\:z-10 {\n &:focus-visible {\n z-index: 10;\n }\n }\n .focus-visible\\:border-ring {\n &:focus-visible {\n border-color: var(--ring);\n }\n }\n .focus-visible\\:ring-0 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-1 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-2 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-4 {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-\\[3px\\] {\n &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus-visible\\:ring-destructive\\/20 {\n &:focus-visible {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .focus-visible\\:ring-primary {\n &:focus-visible {\n --tw-ring-color: var(--primary);\n }\n }\n .focus-visible\\:ring-ring {\n &:focus-visible {\n --tw-ring-color: var(--ring);\n }\n }\n .focus-visible\\:ring-ring\\/50 {\n &:focus-visible {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .focus-visible\\:ring-offset-1 {\n &:focus-visible {\n --tw-ring-offset-width: 1px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n }\n .focus-visible\\:outline-hidden {\n &:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .focus-visible\\:outline-1 {\n &:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n }\n .focus-visible\\:outline-ring {\n &:focus-visible {\n outline-color: var(--ring);\n }\n }\n .active\\:bg-sidebar-accent {\n &:active {\n background-color: var(--sidebar-accent);\n }\n }\n .active\\:text-sidebar-accent-foreground {\n &:active {\n color: var(--sidebar-accent-foreground);\n }\n }\n .disabled\\:pointer-events-none {\n &:disabled {\n pointer-events: none;\n }\n }\n .disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n .in-data-\\[side\\=left\\]\\:cursor-w-resize {\n :where(*[data-side=\"left\"]) & {\n cursor: w-resize;\n }\n }\n .in-data-\\[side\\=right\\]\\:cursor-e-resize {\n :where(*[data-side=\"right\"]) & {\n cursor: e-resize;\n }\n }\n .has-focus\\:border-ring {\n &:has(*:focus) {\n border-color: var(--ring);\n }\n }\n .has-focus\\:ring-\\[3px\\] {\n &:has(*:focus) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .has-focus\\:ring-ring\\/50 {\n &:has(*:focus) {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .has-disabled\\:opacity-50 {\n &:has(*:disabled) {\n opacity: 50%;\n }\n }\n .has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\] {\n &:has(*[data-slot=\"card-action\"]) {\n grid-template-columns: 1fr auto;\n }\n }\n .has-data-\\[state\\=checked\\]\\:border-primary {\n &:has(*[data-state=\"checked\"]) {\n border-color: var(--primary);\n }\n }\n .has-data-\\[state\\=checked\\]\\:bg-primary\\/5 {\n &:has(*[data-state=\"checked\"]) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 5%, transparent);\n }\n }\n }\n .has-data-\\[variant\\=inset\\]\\:bg-sidebar {\n &:has(*[data-variant=\"inset\"]) {\n background-color: var(--sidebar);\n }\n }\n .has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:border-ring {\n &:has(*:is([data-slot=input-group-control]:focus-visible)) {\n border-color: var(--ring);\n }\n }\n .has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-\\[3px\\] {\n &:has(*:is([data-slot=input-group-control]:focus-visible)) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .has-\\[\\[data-slot\\=input-group-control\\]\\:focus-visible\\]\\:ring-ring\\/50 {\n &:has(*:is([data-slot=input-group-control]:focus-visible)) {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:border-destructive {\n &:has(*:is([data-slot][aria-invalid=true])) {\n border-color: var(--destructive);\n }\n }\n .has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/20 {\n &:has(*:is([data-slot][aria-invalid=true])) {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=block-end\\]\\]\\:h-auto {\n &:has(>[data-align=block-end]) {\n height: auto;\n }\n }\n .has-\\[\\>\\[data-align\\=block-end\\]\\]\\:flex-col {\n &:has(>[data-align=block-end]) {\n flex-direction: column;\n }\n }\n .has-\\[\\>\\[data-align\\=block-start\\]\\]\\:h-auto {\n &:has(>[data-align=block-start]) {\n height: auto;\n }\n }\n .has-\\[\\>\\[data-align\\=block-start\\]\\]\\:flex-col {\n &:has(>[data-align=block-start]) {\n flex-direction: column;\n }\n }\n .has-\\[\\>\\[data-slot\\=button-group\\]\\]\\:gap-2 {\n &:has(>[data-slot=button-group]) {\n gap: calc(var(--spacing) * 2);\n }\n }\n .has-\\[\\>\\[data-slot\\=checkbox-group\\]\\]\\:gap-3 {\n &:has(>[data-slot=checkbox-group]) {\n gap: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:items-start {\n &:has(>[data-slot=field-content]) {\n align-items: flex-start;\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:w-full {\n &:has(>[data-slot=field]) {\n width: 100%;\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:flex-col {\n &:has(>[data-slot=field]) {\n flex-direction: column;\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:rounded-md {\n &:has(>[data-slot=field]) {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .has-\\[\\>\\[data-slot\\=field\\]\\]\\:border {\n &:has(>[data-slot=field]) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n }\n .has-\\[\\>\\[data-slot\\=radio-group\\]\\]\\:gap-3 {\n &:has(>[data-slot=radio-group]) {\n gap: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>button\\]\\:mr-\\[-0\\.4rem\\] {\n &:has(>button) {\n margin-right: -0.4rem;\n }\n }\n .has-\\[\\>button\\]\\:ml-\\[-0\\.45rem\\] {\n &:has(>button) {\n margin-left: -0.45rem;\n }\n }\n .has-\\[\\>kbd\\]\\:mr-\\[-0\\.35rem\\] {\n &:has(>kbd) {\n margin-right: -0.35rem;\n }\n }\n .has-\\[\\>kbd\\]\\:ml-\\[-0\\.35rem\\] {\n &:has(>kbd) {\n margin-left: -0.35rem;\n }\n }\n .has-\\[\\>svg\\]\\:grid-cols-\\[calc\\(var\\(--spacing\\)\\*4\\)_1fr\\] {\n &:has(>svg) {\n grid-template-columns: calc(var(--spacing) * 4) 1fr;\n }\n }\n .has-\\[\\>svg\\]\\:gap-x-3 {\n &:has(>svg) {\n column-gap: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>svg\\]\\:p-0 {\n &:has(>svg) {\n padding: calc(var(--spacing) * 0);\n }\n }\n .has-\\[\\>svg\\]\\:px-2 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .has-\\[\\>svg\\]\\:px-2\\.5 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n }\n .has-\\[\\>svg\\]\\:px-3 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 3);\n }\n }\n .has-\\[\\>svg\\]\\:px-4 {\n &:has(>svg) {\n padding-inline: calc(var(--spacing) * 4);\n }\n }\n .has-\\[\\>textarea\\]\\:h-auto {\n &:has(>textarea) {\n height: auto;\n }\n }\n .aria-disabled\\:pointer-events-none {\n &[aria-disabled=\"true\"] {\n pointer-events: none;\n }\n }\n .aria-disabled\\:opacity-50 {\n &[aria-disabled=\"true\"] {\n opacity: 50%;\n }\n }\n .aria-invalid\\:border-destructive {\n &[aria-invalid=\"true\"] {\n border-color: var(--destructive);\n }\n }\n .aria-invalid\\:ring-destructive\\/20 {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n .aria-selected\\:text-muted-foreground {\n &[aria-selected=\"true\"] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[active\\=true\\]\\:z-10 {\n &[data-active=\"true\"] {\n z-index: 10;\n }\n }\n .data-\\[active\\=true\\]\\:border-ring {\n &[data-active=\"true\"] {\n border-color: var(--ring);\n }\n }\n .data-\\[active\\=true\\]\\:bg-accent\\/50 {\n &[data-active=\"true\"] {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:bg-sidebar-accent {\n &[data-active=\"true\"] {\n background-color: var(--sidebar-accent);\n }\n }\n .data-\\[active\\=true\\]\\:font-medium {\n &[data-active=\"true\"] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .data-\\[active\\=true\\]\\:font-semibold {\n &[data-active=\"true\"] {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n }\n .data-\\[active\\=true\\]\\:text-accent-foreground {\n &[data-active=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[active\\=true\\]\\:text-foreground {\n &[data-active=\"true\"] {\n color: var(--foreground);\n }\n }\n .data-\\[active\\=true\\]\\:text-sidebar-accent-foreground {\n &[data-active=\"true\"] {\n color: var(--sidebar-accent-foreground);\n }\n }\n .data-\\[active\\=true\\]\\:ring-\\[3px\\] {\n &[data-active=\"true\"] {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[active\\=true\\]\\:ring-ring\\/50 {\n &[data-active=\"true\"] {\n --tw-ring-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:hover\\:bg-accent {\n &[data-active=\"true\"] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n }\n .data-\\[active\\=true\\]\\:focus\\:bg-accent {\n &[data-active=\"true\"] {\n &:focus {\n background-color: var(--accent);\n }\n }\n }\n .data-\\[active\\=true\\]\\:aria-invalid\\:border-destructive {\n &[data-active=\"true\"] {\n &[aria-invalid=\"true\"] {\n border-color: var(--destructive);\n }\n }\n }\n .data-\\[active\\=true\\]\\:aria-invalid\\:ring-destructive\\/20 {\n &[data-active=\"true\"] {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n }\n .data-\\[disabled\\]\\:pointer-events-none {\n &[data-disabled] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\]\\:opacity-50 {\n &[data-disabled] {\n opacity: 50%;\n }\n }\n .data-\\[disabled\\=true\\]\\:pointer-events-none {\n &[data-disabled=\"true\"] {\n pointer-events: none;\n }\n }\n .data-\\[disabled\\=true\\]\\:opacity-50 {\n &[data-disabled=\"true\"] {\n opacity: 50%;\n }\n }\n .data-\\[error\\=true\\]\\:text-destructive {\n &[data-error=\"true\"] {\n color: var(--destructive);\n }\n }\n .data-\\[inset\\]\\:pl-8 {\n &[data-inset] {\n padding-left: calc(var(--spacing) * 8);\n }\n }\n .data-\\[invalid\\=true\\]\\:text-destructive {\n &[data-invalid=\"true\"] {\n color: var(--destructive);\n }\n }\n .data-\\[motion\\=from-end\\]\\:slide-in-from-right-52 {\n &[data-motion=\"from-end\"] {\n --tw-enter-translate-x: calc(52*var(--spacing));\n }\n }\n .data-\\[motion\\=from-start\\]\\:slide-in-from-left-52 {\n &[data-motion=\"from-start\"] {\n --tw-enter-translate-x: calc(52*var(--spacing)*-1);\n }\n }\n .data-\\[motion\\=to-end\\]\\:slide-out-to-right-52 {\n &[data-motion=\"to-end\"] {\n --tw-exit-translate-x: calc(52*var(--spacing));\n }\n }\n .data-\\[motion\\=to-start\\]\\:slide-out-to-left-52 {\n &[data-motion=\"to-start\"] {\n --tw-exit-translate-x: calc(52*var(--spacing)*-1);\n }\n }\n .data-\\[motion\\^\\=from-\\]\\:animate-in {\n &[data-motion^=\"from-\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[motion\\^\\=from-\\]\\:fade-in {\n &[data-motion^=\"from-\"] {\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[motion\\^\\=to-\\]\\:animate-out {\n &[data-motion^=\"to-\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[motion\\^\\=to-\\]\\:fade-out {\n &[data-motion^=\"to-\"] {\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-1\\.5 {\n &[data-orientation=\"horizontal\"] {\n height: calc(var(--spacing) * 1.5);\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-full {\n &[data-orientation=\"horizontal\"] {\n height: 100%;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:h-px {\n &[data-orientation=\"horizontal\"] {\n height: 1px;\n }\n }\n .data-\\[orientation\\=horizontal\\]\\:w-full {\n &[data-orientation=\"horizontal\"] {\n width: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:h-auto {\n &[data-orientation=\"vertical\"] {\n height: auto;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:h-full {\n &[data-orientation=\"vertical\"] {\n height: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:min-h-44 {\n &[data-orientation=\"vertical\"] {\n min-height: calc(var(--spacing) * 44);\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-1\\.5 {\n &[data-orientation=\"vertical\"] {\n width: calc(var(--spacing) * 1.5);\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-auto {\n &[data-orientation=\"vertical\"] {\n width: auto;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-full {\n &[data-orientation=\"vertical\"] {\n width: 100%;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:w-px {\n &[data-orientation=\"vertical\"] {\n width: 1px;\n }\n }\n .data-\\[orientation\\=vertical\\]\\:flex-col {\n &[data-orientation=\"vertical\"] {\n flex-direction: column;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:h-px {\n &[data-panel-group-direction=\"vertical\"] {\n height: 1px;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:w-full {\n &[data-panel-group-direction=\"vertical\"] {\n width: 100%;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:flex-col {\n &[data-panel-group-direction=\"vertical\"] {\n flex-direction: column;\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:left-0 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n left: calc(var(--spacing) * 0);\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:h-1 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n height: calc(var(--spacing) * 1);\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:w-full {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n width: 100%;\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:translate-x-0 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .data-\\[panel-group-direction\\=vertical\\]\\:after\\:-translate-y-1\\/2 {\n &[data-panel-group-direction=\"vertical\"] {\n &::after {\n content: var(--tw-content);\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n }\n .data-\\[placeholder\\]\\:text-muted-foreground {\n &[data-placeholder] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[range-end\\=true\\]\\:rounded-md {\n &[data-range-end=\"true\"] {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-end\\=true\\]\\:rounded-r-md {\n &[data-range-end=\"true\"] {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-end\\=true\\]\\:bg-primary {\n &[data-range-end=\"true\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[range-end\\=true\\]\\:text-primary-foreground {\n &[data-range-end=\"true\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[range-middle\\=true\\]\\:rounded-none {\n &[data-range-middle=\"true\"] {\n border-radius: 0;\n }\n }\n .data-\\[range-middle\\=true\\]\\:bg-accent {\n &[data-range-middle=\"true\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[range-middle\\=true\\]\\:text-accent-foreground {\n &[data-range-middle=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[range-start\\=true\\]\\:rounded-md {\n &[data-range-start=\"true\"] {\n border-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-start\\=true\\]\\:rounded-l-md {\n &[data-range-start=\"true\"] {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n }\n .data-\\[range-start\\=true\\]\\:bg-primary {\n &[data-range-start=\"true\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[range-start\\=true\\]\\:text-primary-foreground {\n &[data-range-start=\"true\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[selected-single\\=true\\]\\:bg-primary {\n &[data-selected-single=\"true\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[selected-single\\=true\\]\\:text-primary-foreground {\n &[data-selected-single=\"true\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[selected\\=true\\]\\:rounded-none {\n &[data-selected=\"true\"] {\n border-radius: 0;\n }\n }\n .data-\\[selected\\=true\\]\\:bg-accent {\n &[data-selected=\"true\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[selected\\=true\\]\\:text-accent-foreground {\n &[data-selected=\"true\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[side\\=bottom\\]\\:translate-y-1 {\n &[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=bottom\\]\\:slide-in-from-top-2 {\n &[data-side=\"bottom\"] {\n --tw-enter-translate-y: calc(2*var(--spacing)*-1);\n }\n }\n .data-\\[side\\=left\\]\\:-translate-x-1 {\n &[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=left\\]\\:slide-in-from-right-2 {\n &[data-side=\"left\"] {\n --tw-enter-translate-x: calc(2*var(--spacing));\n }\n }\n .data-\\[side\\=right\\]\\:translate-x-1 {\n &[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=right\\]\\:slide-in-from-left-2 {\n &[data-side=\"right\"] {\n --tw-enter-translate-x: calc(2*var(--spacing)*-1);\n }\n }\n .data-\\[side\\=top\\]\\:-translate-y-1 {\n &[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[side\\=top\\]\\:slide-in-from-bottom-2 {\n &[data-side=\"top\"] {\n --tw-enter-translate-y: calc(2*var(--spacing));\n }\n }\n .data-\\[size\\=default\\]\\:h-9 {\n &[data-size=\"default\"] {\n height: calc(var(--spacing) * 9);\n }\n }\n .data-\\[size\\=sm\\]\\:h-8 {\n &[data-size=\"sm\"] {\n height: calc(var(--spacing) * 8);\n }\n }\n .\\*\\:data-\\[slot\\=alert-description\\]\\:text-destructive\\/90 {\n :is(& > *) {\n &[data-slot=\"alert-description\"] {\n color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n .data-\\[slot\\=checkbox-group\\]\\:gap-3 {\n &[data-slot=\"checkbox-group\"] {\n gap: calc(var(--spacing) * 3);\n }\n }\n .\\*\\*\\:data-\\[slot\\=command-input-wrapper\\]\\:h-12 {\n :is(& *) {\n &[data-slot=\"command-input-wrapper\"] {\n height: calc(var(--spacing) * 12);\n }\n }\n }\n .\\*\\*\\:data-\\[slot\\=navigation-menu-link\\]\\:focus\\:ring-0 {\n :is(& *) {\n &[data-slot=\"navigation-menu-link\"] {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n }\n .\\*\\*\\:data-\\[slot\\=navigation-menu-link\\]\\:focus\\:outline-none {\n :is(& *) {\n &[data-slot=\"navigation-menu-link\"] {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:flex {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n display: flex;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:items-center {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n align-items: center;\n }\n }\n }\n .\\*\\:data-\\[slot\\=select-value\\]\\:gap-2 {\n :is(& > *) {\n &[data-slot=\"select-value\"] {\n gap: calc(var(--spacing) * 2);\n }\n }\n }\n .data-\\[state\\=active\\]\\:bg-background {\n &[data-state=\"active\"] {\n background-color: var(--background);\n }\n }\n .data-\\[state\\=active\\]\\:shadow-sm {\n &[data-state=\"active\"] {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[state\\=checked\\]\\:translate-x-\\[calc\\(100\\%-2px\\)\\] {\n &[data-state=\"checked\"] {\n --tw-translate-x: calc(100% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=checked\\]\\:border-primary {\n &[data-state=\"checked\"] {\n border-color: var(--primary);\n }\n }\n .data-\\[state\\=checked\\]\\:bg-primary {\n &[data-state=\"checked\"] {\n background-color: var(--primary);\n }\n }\n .data-\\[state\\=checked\\]\\:text-primary-foreground {\n &[data-state=\"checked\"] {\n color: var(--primary-foreground);\n }\n }\n .data-\\[state\\=closed\\]\\:animate-accordion-up {\n &[data-state=\"closed\"] {\n animation: accordion-up 0.2s ease-out;\n }\n }\n .data-\\[state\\=closed\\]\\:animate-out {\n &[data-state=\"closed\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=closed\\]\\:duration-300 {\n &[data-state=\"closed\"] {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-0 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: calc(0/100);\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[state\\=closed\\]\\:fade-out-80 {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: calc(80/100);\n --tw-exit-opacity: .8;\n }\n }\n .data-\\[state\\=closed\\]\\:zoom-out-95 {\n &[data-state=\"closed\"] {\n --tw-exit-scale: calc(95*1%);\n --tw-exit-scale: .95;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-bottom {\n &[data-state=\"closed\"] {\n --tw-exit-translate-y: 100%;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-left {\n &[data-state=\"closed\"] {\n --tw-exit-translate-x: -100%;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-right {\n &[data-state=\"closed\"] {\n --tw-exit-translate-x: 100%;\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-right-full {\n &[data-state=\"closed\"] {\n --tw-exit-translate-x: calc(1*100%);\n }\n }\n .data-\\[state\\=closed\\]\\:slide-out-to-top {\n &[data-state=\"closed\"] {\n --tw-exit-translate-y: -100%;\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=closed\\]\\:animate-out {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"closed\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=closed\\]\\:fade-out-0 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"closed\"] {\n --tw-exit-opacity: calc(0/100);\n --tw-exit-opacity: 0;\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=closed\\]\\:zoom-out-95 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"closed\"] {\n --tw-exit-scale: calc(95*1%);\n --tw-exit-scale: .95;\n }\n }\n }\n .data-\\[state\\=hidden\\]\\:animate-out {\n &[data-state=\"hidden\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=hidden\\]\\:fade-out {\n &[data-state=\"hidden\"] {\n --tw-exit-opacity: 0;\n }\n }\n .data-\\[state\\=on\\]\\:bg-accent {\n &[data-state=\"on\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[state\\=on\\]\\:text-accent-foreground {\n &[data-state=\"on\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:animate-accordion-down {\n &[data-state=\"open\"] {\n animation: accordion-down 0.2s ease-out;\n }\n }\n .data-\\[state\\=open\\]\\:animate-in {\n &[data-state=\"open\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent {\n &[data-state=\"open\"] {\n background-color: var(--accent);\n }\n }\n .data-\\[state\\=open\\]\\:bg-accent\\/50 {\n &[data-state=\"open\"] {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n .data-\\[state\\=open\\]\\:bg-secondary {\n &[data-state=\"open\"] {\n background-color: var(--secondary);\n }\n }\n .data-\\[state\\=open\\]\\:text-accent-foreground {\n &[data-state=\"open\"] {\n color: var(--accent-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:text-muted-foreground {\n &[data-state=\"open\"] {\n color: var(--muted-foreground);\n }\n }\n .data-\\[state\\=open\\]\\:opacity-100 {\n &[data-state=\"open\"] {\n opacity: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:duration-500 {\n &[data-state=\"open\"] {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n }\n .data-\\[state\\=open\\]\\:fade-in-0 {\n &[data-state=\"open\"] {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-90 {\n &[data-state=\"open\"] {\n --tw-enter-scale: calc(90*1%);\n --tw-enter-scale: .9;\n }\n }\n .data-\\[state\\=open\\]\\:zoom-in-95 {\n &[data-state=\"open\"] {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-bottom {\n &[data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-left {\n &[data-state=\"open\"] {\n --tw-enter-translate-x: -100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-right {\n &[data-state=\"open\"] {\n --tw-enter-translate-x: 100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-top {\n &[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n }\n }\n .data-\\[state\\=open\\]\\:slide-in-from-top-full {\n &[data-state=\"open\"] {\n --tw-enter-translate-y: calc(1*-100%);\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=open\\]\\:animate-in {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"open\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=open\\]\\:fade-in-0 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"open\"] {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n }\n }\n .group-data-\\[viewport\\=false\\]\\/navigation-menu\\:data-\\[state\\=open\\]\\:zoom-in-95 {\n &:is(:where(.group\\/navigation-menu)[data-viewport=\"false\"] *) {\n &[data-state=\"open\"] {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n }\n }\n .data-\\[state\\=open\\]\\:hover\\:bg-accent {\n &[data-state=\"open\"] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n }\n .data-\\[state\\=open\\]\\:hover\\:bg-sidebar-accent {\n &[data-state=\"open\"] {\n &:hover {\n @media (hover: hover) {\n background-color: var(--sidebar-accent);\n }\n }\n }\n }\n .data-\\[state\\=open\\]\\:hover\\:text-sidebar-accent-foreground {\n &[data-state=\"open\"] {\n &:hover {\n @media (hover: hover) {\n color: var(--sidebar-accent-foreground);\n }\n }\n }\n }\n .data-\\[state\\=open\\]\\:focus\\:bg-accent {\n &[data-state=\"open\"] {\n &:focus {\n background-color: var(--accent);\n }\n }\n }\n .data-\\[state\\=selected\\]\\:bg-muted {\n &[data-state=\"selected\"] {\n background-color: var(--muted);\n }\n }\n .data-\\[state\\=unchecked\\]\\:translate-x-0 {\n &[data-state=\"unchecked\"] {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[state\\=unchecked\\]\\:bg-input {\n &[data-state=\"unchecked\"] {\n background-color: var(--input);\n }\n }\n .data-\\[state\\=visible\\]\\:animate-in {\n &[data-state=\"visible\"] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[state\\=visible\\]\\:fade-in {\n &[data-state=\"visible\"] {\n --tw-enter-opacity: 0;\n }\n }\n .data-\\[swipe\\=cancel\\]\\:translate-x-0 {\n &[data-swipe=\"cancel\"] {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\] {\n &[data-swipe=\"end\"] {\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[swipe\\=end\\]\\:animate-out {\n &[data-swipe=\"end\"] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards);\n }\n }\n .data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\] {\n &[data-swipe=\"move\"] {\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .data-\\[swipe\\=move\\]\\:transition-none {\n &[data-swipe=\"move\"] {\n transition-property: none;\n }\n }\n .data-\\[variant\\=destructive\\]\\:text-destructive {\n &[data-variant=\"destructive\"] {\n color: var(--destructive);\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10 {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 10%, transparent);\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:focus\\:text-destructive {\n &[data-variant=\"destructive\"] {\n &:focus {\n color: var(--destructive);\n }\n }\n }\n .data-\\[variant\\=label\\]\\:text-sm {\n &[data-variant=\"label\"] {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .data-\\[variant\\=legend\\]\\:text-base {\n &[data-variant=\"legend\"] {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n }\n .data-\\[variant\\=outline\\]\\:border-l-0 {\n &[data-variant=\"outline\"] {\n border-left-style: var(--tw-border-style);\n border-left-width: 0px;\n }\n }\n .data-\\[variant\\=outline\\]\\:shadow-xs {\n &[data-variant=\"outline\"] {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .data-\\[variant\\=outline\\]\\:first\\:border-l {\n &[data-variant=\"outline\"] {\n &:first-child {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:inset-x-0 {\n &[data-vaul-drawer-direction=\"bottom\"] {\n inset-inline: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:bottom-0 {\n &[data-vaul-drawer-direction=\"bottom\"] {\n bottom: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:mt-24 {\n &[data-vaul-drawer-direction=\"bottom\"] {\n margin-top: calc(var(--spacing) * 24);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:max-h-\\[80vh\\] {\n &[data-vaul-drawer-direction=\"bottom\"] {\n max-height: 80vh;\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:rounded-t-lg {\n &[data-vaul-drawer-direction=\"bottom\"] {\n border-top-left-radius: var(--radius);\n border-top-right-radius: var(--radius);\n }\n }\n .data-\\[vaul-drawer-direction\\=bottom\\]\\:border-t {\n &[data-vaul-drawer-direction=\"bottom\"] {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:inset-y-0 {\n &[data-vaul-drawer-direction=\"left\"] {\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:left-0 {\n &[data-vaul-drawer-direction=\"left\"] {\n left: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:w-3\\/4 {\n &[data-vaul-drawer-direction=\"left\"] {\n width: calc(3/4 * 100%);\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:border-r {\n &[data-vaul-drawer-direction=\"left\"] {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:inset-y-0 {\n &[data-vaul-drawer-direction=\"right\"] {\n inset-block: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:right-0 {\n &[data-vaul-drawer-direction=\"right\"] {\n right: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:w-3\\/4 {\n &[data-vaul-drawer-direction=\"right\"] {\n width: calc(3/4 * 100%);\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:border-l {\n &[data-vaul-drawer-direction=\"right\"] {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:inset-x-0 {\n &[data-vaul-drawer-direction=\"top\"] {\n inset-inline: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:top-0 {\n &[data-vaul-drawer-direction=\"top\"] {\n top: calc(var(--spacing) * 0);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:mb-24 {\n &[data-vaul-drawer-direction=\"top\"] {\n margin-bottom: calc(var(--spacing) * 24);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:max-h-\\[80vh\\] {\n &[data-vaul-drawer-direction=\"top\"] {\n max-height: 80vh;\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:rounded-b-lg {\n &[data-vaul-drawer-direction=\"top\"] {\n border-bottom-right-radius: var(--radius);\n border-bottom-left-radius: var(--radius);\n }\n }\n .data-\\[vaul-drawer-direction\\=top\\]\\:border-b {\n &[data-vaul-drawer-direction=\"top\"] {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .nth-last-2\\:-mt-1 {\n &:nth-last-child(2) {\n margin-top: calc(var(--spacing) * -1);\n }\n }\n .supports-\\[backdrop-filter\\]\\:bg-background\\/60 {\n @supports (backdrop-filter: var(--tw)) {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 60%, transparent);\n }\n }\n }\n .sm\\:top-auto {\n @media (width >= 40rem) {\n top: auto;\n }\n }\n .sm\\:right-0 {\n @media (width >= 40rem) {\n right: calc(var(--spacing) * 0);\n }\n }\n .sm\\:bottom-0 {\n @media (width >= 40rem) {\n bottom: calc(var(--spacing) * 0);\n }\n }\n .sm\\:col-span-2 {\n @media (width >= 40rem) {\n grid-column: span 2 / span 2;\n }\n }\n .sm\\:block {\n @media (width >= 40rem) {\n display: block;\n }\n }\n .sm\\:flex {\n @media (width >= 40rem) {\n display: flex;\n }\n }\n .sm\\:max-w-\\[600px\\] {\n @media (width >= 40rem) {\n max-width: 600px;\n }\n }\n .sm\\:max-w-lg {\n @media (width >= 40rem) {\n max-width: var(--container-lg);\n }\n }\n .sm\\:max-w-sm {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n .sm\\:grid-cols-2 {\n @media (width >= 40rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .sm\\:flex-col {\n @media (width >= 40rem) {\n flex-direction: column;\n }\n }\n .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n }\n .sm\\:justify-end {\n @media (width >= 40rem) {\n justify-content: flex-end;\n }\n }\n .sm\\:gap-2\\.5 {\n @media (width >= 40rem) {\n gap: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:pr-2\\.5 {\n @media (width >= 40rem) {\n padding-right: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:pl-2\\.5 {\n @media (width >= 40rem) {\n padding-left: calc(var(--spacing) * 2.5);\n }\n }\n .sm\\:text-left {\n @media (width >= 40rem) {\n text-align: left;\n }\n }\n .data-\\[state\\=open\\]\\:sm\\:slide-in-from-bottom-full {\n &[data-state=\"open\"] {\n @media (width >= 40rem) {\n --tw-enter-translate-y: calc(1*100%);\n }\n }\n }\n .data-\\[vaul-drawer-direction\\=left\\]\\:sm\\:max-w-sm {\n &[data-vaul-drawer-direction=\"left\"] {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n }\n .data-\\[vaul-drawer-direction\\=right\\]\\:sm\\:max-w-sm {\n &[data-vaul-drawer-direction=\"right\"] {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n }\n .md\\:absolute {\n @media (width >= 48rem) {\n position: absolute;\n }\n }\n .md\\:-left-24 {\n @media (width >= 48rem) {\n left: calc(var(--spacing) * -24);\n }\n }\n .md\\:col-span-2 {\n @media (width >= 48rem) {\n grid-column: span 2 / span 2;\n }\n }\n .md\\:ml-12 {\n @media (width >= 48rem) {\n margin-left: calc(var(--spacing) * 12);\n }\n }\n .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n }\n .md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .md\\:w-20 {\n @media (width >= 48rem) {\n width: calc(var(--spacing) * 20);\n }\n }\n .md\\:w-80 {\n @media (width >= 48rem) {\n width: calc(var(--spacing) * 80);\n }\n }\n .md\\:w-\\[var\\(--radix-navigation-menu-viewport-width\\)\\] {\n @media (width >= 48rem) {\n width: var(--radix-navigation-menu-viewport-width);\n }\n }\n .md\\:w-auto {\n @media (width >= 48rem) {\n width: auto;\n }\n }\n .md\\:max-w-\\[420px\\] {\n @media (width >= 48rem) {\n max-width: 420px;\n }\n }\n .md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .md\\:grid-cols-3 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .md\\:flex-row {\n @media (width >= 48rem) {\n flex-direction: row;\n }\n }\n .md\\:items-center {\n @media (width >= 48rem) {\n align-items: center;\n }\n }\n .md\\:gap-1\\.5 {\n @media (width >= 48rem) {\n gap: calc(var(--spacing) * 1.5);\n }\n }\n .md\\:p-12 {\n @media (width >= 48rem) {\n padding: calc(var(--spacing) * 12);\n }\n }\n .md\\:px-6 {\n @media (width >= 48rem) {\n padding-inline: calc(var(--spacing) * 6);\n }\n }\n .md\\:pl-12 {\n @media (width >= 48rem) {\n padding-left: calc(var(--spacing) * 12);\n }\n }\n .md\\:text-left {\n @media (width >= 48rem) {\n text-align: left;\n }\n }\n .md\\:text-sm {\n @media (width >= 48rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .md\\:opacity-0 {\n @media (width >= 48rem) {\n opacity: 0%;\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:m-2 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n margin: calc(var(--spacing) * 2);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:ml-0 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n margin-left: calc(var(--spacing) * 0);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:rounded-xl {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n border-radius: calc(var(--radius) + 4px);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:shadow-sm {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n }\n .md\\:peer-data-\\[variant\\=inset\\]\\:peer-data-\\[state\\=collapsed\\]\\:ml-2 {\n @media (width >= 48rem) {\n &:is(:where(.peer)[data-variant=\"inset\"] ~ *) {\n &:is(:where(.peer)[data-state=\"collapsed\"] ~ *) {\n margin-left: calc(var(--spacing) * 2);\n }\n }\n }\n }\n .md\\:after\\:hidden {\n @media (width >= 48rem) {\n &::after {\n content: var(--tw-content);\n display: none;\n }\n }\n }\n .lg\\:col-span-2 {\n @media (width >= 64rem) {\n grid-column: span 2 / span 2;\n }\n }\n .lg\\:grid-cols-2 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .lg\\:grid-cols-3 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n .lg\\:grid-cols-4 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .xl\\:grid-cols-4 {\n @media (width >= 80rem) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n .\\@md\\/field-group\\:flex-row {\n @container field-group (width >= 28rem) {\n flex-direction: row;\n }\n }\n .\\@md\\/field-group\\:items-center {\n @container field-group (width >= 28rem) {\n align-items: center;\n }\n }\n .\\@md\\/field-group\\:has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:items-start {\n @container field-group (width >= 28rem) {\n &:has(>[data-slot=field-content]) {\n align-items: flex-start;\n }\n }\n }\n .dark\\:border-blue-800 {\n &:is(.dark *) {\n border-color: var(--color-blue-800);\n }\n }\n .dark\\:border-input {\n &:is(.dark *) {\n border-color: var(--input);\n }\n }\n .dark\\:bg-blue-900\\/20 {\n &:is(.dark *) {\n background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-blue-900) 20%, transparent);\n }\n }\n }\n .dark\\:bg-blue-950 {\n &:is(.dark *) {\n background-color: var(--color-blue-950);\n }\n }\n .dark\\:bg-destructive\\/60 {\n &:is(.dark *) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 60%, transparent);\n }\n }\n }\n .dark\\:bg-input\\/30 {\n &:is(.dark *) {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 30%, transparent);\n }\n }\n }\n .dark\\:bg-transparent {\n &:is(.dark *) {\n background-color: transparent;\n }\n }\n .dark\\:bg-yellow-900\\/20 {\n &:is(.dark *) {\n background-color: color-mix(in srgb, oklch(42.1% 0.095 57.708) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-yellow-900) 20%, transparent);\n }\n }\n }\n .dark\\:bg-yellow-950 {\n &:is(.dark *) {\n background-color: var(--color-yellow-950);\n }\n }\n .dark\\:text-blue-200 {\n &:is(.dark *) {\n color: var(--color-blue-200);\n }\n }\n .dark\\:text-blue-400 {\n &:is(.dark *) {\n color: var(--color-blue-400);\n }\n }\n .dark\\:text-muted-foreground {\n &:is(.dark *) {\n color: var(--muted-foreground);\n }\n }\n .dark\\:text-pink-400 {\n &:is(.dark *) {\n color: var(--color-pink-400);\n }\n }\n .dark\\:text-yellow-200 {\n &:is(.dark *) {\n color: var(--color-yellow-200);\n }\n }\n .dark\\:ring-blue-800 {\n &:is(.dark *) {\n --tw-ring-color: var(--color-blue-800);\n }\n }\n .dark\\:ring-yellow-800 {\n &:is(.dark *) {\n --tw-ring-color: var(--color-yellow-800);\n }\n }\n .dark\\:hover\\:bg-accent\\/50 {\n &:is(.dark *) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n }\n }\n .dark\\:hover\\:bg-input\\/50 {\n &:is(.dark *) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 50%, transparent);\n }\n }\n }\n }\n }\n .dark\\:hover\\:text-accent-foreground {\n &:is(.dark *) {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n }\n .dark\\:focus-visible\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &:focus-visible {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:has-data-\\[state\\=checked\\]\\:bg-primary\\/10 {\n &:is(.dark *) {\n &:has(*[data-state=\"checked\"]) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 10%, transparent);\n }\n }\n }\n }\n .dark\\:has-\\[\\[data-slot\\]\\[aria-invalid\\=true\\]\\]\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &:has(*:is([data-slot][aria-invalid=true])) {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:aria-invalid\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[active\\=true\\]\\:aria-invalid\\:ring-destructive\\/40 {\n &:is(.dark *) {\n &[data-active=\"true\"] {\n &[aria-invalid=\"true\"] {\n --tw-ring-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);\n }\n }\n }\n }\n }\n .dark\\:data-\\[state\\=active\\]\\:border-input {\n &:is(.dark *) {\n &[data-state=\"active\"] {\n border-color: var(--input);\n }\n }\n }\n .dark\\:data-\\[state\\=active\\]\\:bg-input\\/30 {\n &:is(.dark *) {\n &[data-state=\"active\"] {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 30%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[state\\=active\\]\\:text-foreground {\n &:is(.dark *) {\n &[data-state=\"active\"] {\n color: var(--foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-primary {\n &:is(.dark *) {\n &[data-state=\"checked\"] {\n background-color: var(--primary);\n }\n }\n }\n .dark\\:data-\\[state\\=checked\\]\\:bg-primary-foreground {\n &:is(.dark *) {\n &[data-state=\"checked\"] {\n background-color: var(--primary-foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=unchecked\\]\\:bg-foreground {\n &:is(.dark *) {\n &[data-state=\"unchecked\"] {\n background-color: var(--foreground);\n }\n }\n }\n .dark\\:data-\\[state\\=unchecked\\]\\:bg-input\\/80 {\n &:is(.dark *) {\n &[data-state=\"unchecked\"] {\n background-color: var(--input);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--input) 80%, transparent);\n }\n }\n }\n }\n .dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20 {\n &:is(.dark *) {\n &[data-variant=\"destructive\"] {\n &:focus {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n }\n }\n }\n }\n .\\[\\&_\\.recharts-cartesian-axis-tick_text\\]\\:fill-muted-foreground {\n & .recharts-cartesian-axis-tick text {\n fill: var(--muted-foreground);\n }\n }\n .\\[\\&_\\.recharts-cartesian-grid_line\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border\\/50 {\n & .recharts-cartesian-grid line[stroke='#ccc'] {\n stroke: var(--border);\n @supports (color: color-mix(in lab, red, red)) {\n stroke: color-mix(in oklab, var(--border) 50%, transparent);\n }\n }\n }\n .\\[\\&_\\.recharts-curve\\.recharts-tooltip-cursor\\]\\:stroke-border {\n & .recharts-curve.recharts-tooltip-cursor {\n stroke: var(--border);\n }\n }\n .\\[\\&_\\.recharts-dot\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent {\n & .recharts-dot[stroke='#fff'] {\n stroke: transparent;\n }\n }\n .\\[\\&_\\.recharts-layer\\]\\:outline-hidden {\n & .recharts-layer {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .\\[\\&_\\.recharts-polar-grid_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border {\n & .recharts-polar-grid [stroke='#ccc'] {\n stroke: var(--border);\n }\n }\n .\\[\\&_\\.recharts-radial-bar-background-sector\\]\\:fill-muted {\n & .recharts-radial-bar-background-sector {\n fill: var(--muted);\n }\n }\n .\\[\\&_\\.recharts-rectangle\\.recharts-tooltip-cursor\\]\\:fill-muted {\n & .recharts-rectangle.recharts-tooltip-cursor {\n fill: var(--muted);\n }\n }\n .\\[\\&_\\.recharts-reference-line_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border {\n & .recharts-reference-line [stroke='#ccc'] {\n stroke: var(--border);\n }\n }\n .\\[\\&_\\.recharts-sector\\]\\:outline-hidden {\n & .recharts-sector {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .\\[\\&_\\.recharts-sector\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent {\n & .recharts-sector[stroke='#fff'] {\n stroke: transparent;\n }\n }\n .\\[\\&_\\.recharts-surface\\]\\:outline-hidden {\n & .recharts-surface {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 {\n & [cmdk-group-heading] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 {\n & [cmdk-group-heading] {\n padding-block: calc(var(--spacing) * 1.5);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs {\n & [cmdk-group-heading] {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium {\n & [cmdk-group-heading] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n }\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground {\n & [cmdk-group-heading] {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\]\\:px-2 {\n & [cmdk-group] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-group\\]\\:not\\(\\[hidden\\]\\)_\\~\\[cmdk-group\\]\\]\\:pt-0 {\n & [cmdk-group]:not([hidden]) ~[cmdk-group] {\n padding-top: calc(var(--spacing) * 0);\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:h-5 {\n & [cmdk-input-wrapper] svg {\n height: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-input-wrapper\\]_svg\\]\\:w-5 {\n & [cmdk-input-wrapper] svg {\n width: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-input\\]\\]\\:h-12 {\n & [cmdk-input] {\n height: calc(var(--spacing) * 12);\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:px-2 {\n & [cmdk-item] {\n padding-inline: calc(var(--spacing) * 2);\n }\n }\n .\\[\\&_\\[cmdk-item\\]\\]\\:py-3 {\n & [cmdk-item] {\n padding-block: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:h-5 {\n & [cmdk-item] svg {\n height: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_\\[cmdk-item\\]_svg\\]\\:w-5 {\n & [cmdk-item] svg {\n width: calc(var(--spacing) * 5);\n }\n }\n .\\[\\&_img\\]\\:size-full {\n & img {\n width: 100%;\n height: 100%;\n }\n }\n .\\[\\&_img\\]\\:object-cover {\n & img {\n object-fit: cover;\n }\n }\n .\\[\\&_p\\]\\:leading-relaxed {\n & p {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n }\n .\\[\\&_svg\\]\\:pointer-events-none {\n & svg {\n pointer-events: none;\n }\n }\n .\\[\\&_svg\\]\\:shrink-0 {\n & svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-3 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-6 {\n & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6);\n }\n }\n .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'text-\\'\\]\\)\\]\\:text-muted-foreground {\n & svg:not([class*='text-']) {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&_tr\\]\\:border-b {\n & tr {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n }\n .\\[\\&_tr\\:last-child\\]\\:border-0 {\n & tr:last-child {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n }\n .\\[\\&\\+\\[data-slot\\=item-content\\]\\]\\:flex-none {\n &+[data-slot=item-content] {\n flex: none;\n }\n }\n .\\[\\&\\:first-child\\[data-selected\\=true\\]_button\\]\\:rounded-l-md {\n &:first-child[data-selected=true] button {\n border-top-left-radius: calc(var(--radius) - 2px);\n border-bottom-left-radius: calc(var(--radius) - 2px);\n }\n }\n .\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0 {\n &:has([role=checkbox]) {\n padding-right: calc(var(--spacing) * 0);\n }\n }\n .\\[\\.border-b\\]\\:pb-3 {\n &:is(.border-b) {\n padding-bottom: calc(var(--spacing) * 3);\n }\n }\n .\\[\\.border-b\\]\\:pb-6 {\n &:is(.border-b) {\n padding-bottom: calc(var(--spacing) * 6);\n }\n }\n .\\[\\.border-t\\]\\:pt-3 {\n &:is(.border-t) {\n padding-top: calc(var(--spacing) * 3);\n }\n }\n .\\[\\.border-t\\]\\:pt-6 {\n &:is(.border-t) {\n padding-top: calc(var(--spacing) * 6);\n }\n }\n .rtl\\:\\*\\*\\:\\[\\.rdp-button\\\\_next\\>svg\\]\\:rotate-180 {\n &:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n :is(& *) {\n &:is(.rdp-button_next>svg) {\n rotate: 180deg;\n }\n }\n }\n }\n .rtl\\:\\*\\*\\:\\[\\.rdp-button\\\\_previous\\>svg\\]\\:rotate-180 {\n &:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n :is(& *) {\n &:is(.rdp-button_previous>svg) {\n rotate: 180deg;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:flex {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n display: flex;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:items-center {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n align-items: center;\n }\n }\n }\n }\n .\\*\\:\\[span\\]\\:last\\:gap-2 {\n :is(& > *) {\n &:is(span) {\n &:last-child {\n gap: calc(var(--spacing) * 2);\n }\n }\n }\n }\n .data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive {\n &[data-variant=\"destructive\"] {\n :is(& > *) {\n &:is(svg) {\n color: var(--destructive) !important;\n }\n }\n }\n }\n .\\[\\&\\:last-child\\[data-selected\\=true\\]_button\\]\\:rounded-r-md {\n &:last-child[data-selected=true] button {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n .\\[\\&\\>\\*\\]\\:w-full {\n &>* {\n width: 100%;\n }\n }\n .\\[\\&\\>\\*\\]\\:focus-visible\\:relative {\n &>* {\n &:focus-visible {\n position: relative;\n }\n }\n }\n .\\[\\&\\>\\*\\]\\:focus-visible\\:z-10 {\n &>* {\n &:focus-visible {\n z-index: 10;\n }\n }\n }\n .\\[\\&\\>\\*\\]\\:data-\\[slot\\=field\\]\\:p-4 {\n &>* {\n &[data-slot=\"field\"] {\n padding: calc(var(--spacing) * 4);\n }\n }\n }\n .\\@md\\/field-group\\:\\[\\&\\>\\*\\]\\:w-auto {\n @container field-group (width >= 28rem) {\n &>* {\n width: auto;\n }\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-t-none {\n &>*:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:rounded-l-none {\n &>*:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-t-0 {\n &>*:not(:first-child) {\n border-top-style: var(--tw-border-style);\n border-top-width: 0px;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:first-child\\)\\]\\:border-l-0 {\n &>*:not(:first-child) {\n border-left-style: var(--tw-border-style);\n border-left-width: 0px;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-r-none {\n &>*:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n .\\[\\&\\>\\*\\:not\\(\\:last-child\\)\\]\\:rounded-b-none {\n &>*:not(:last-child) {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n .\\[\\&\\>\\.sr-only\\]\\:w-auto {\n &>.sr-only {\n width: auto;\n }\n }\n .\\[\\&\\>\\[data-slot\\=field-group\\]\\]\\:gap-4 {\n &>[data-slot=field-group] {\n gap: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>\\[data-slot\\=field-label\\]\\]\\:flex-auto {\n &>[data-slot=field-label] {\n flex: auto;\n }\n }\n .\\@md\\/field-group\\:\\[\\&\\>\\[data-slot\\=field-label\\]\\]\\:flex-auto {\n @container field-group (width >= 28rem) {\n &>[data-slot=field-label] {\n flex: auto;\n }\n }\n }\n .has-\\[select\\[aria-hidden\\=true\\]\\:last-child\\]\\:\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:last-of-type\\]\\:rounded-r-md {\n &:has(*:is(select[aria-hidden=true]:last-child)) {\n &>[data-slot=select-trigger]:last-of-type {\n border-top-right-radius: calc(var(--radius) - 2px);\n border-bottom-right-radius: calc(var(--radius) - 2px);\n }\n }\n }\n .\\[\\&\\>\\[data-slot\\=select-trigger\\]\\:not\\(\\[class\\*\\=\\'w-\\'\\]\\)\\]\\:w-fit {\n &>[data-slot=select-trigger]:not([class*='w-']) {\n width: fit-content;\n }\n }\n .\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\] {\n &>[role=checkbox] {\n --tw-translate-y: 2px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:\\[\\&\\>\\[role\\=checkbox\\]\\,\\[role\\=radio\\]\\]\\:mt-px {\n &:has(>[data-slot=field-content]) {\n &>[role=checkbox],[role=radio] {\n margin-top: 1px;\n }\n }\n }\n .\\@md\\/field-group\\:has-\\[\\>\\[data-slot\\=field-content\\]\\]\\:\\[\\&\\>\\[role\\=checkbox\\]\\,\\[role\\=radio\\]\\]\\:mt-px {\n @container field-group (width >= 28rem) {\n &:has(>[data-slot=field-content]) {\n &>[role=checkbox],[role=radio] {\n margin-top: 1px;\n }\n }\n }\n }\n .\\[\\&\\>a\\]\\:underline {\n &>a {\n text-decoration-line: underline;\n }\n }\n .\\[\\&\\>a\\]\\:underline-offset-4 {\n &>a {\n text-underline-offset: 4px;\n }\n }\n .\\[\\&\\>a\\:hover\\]\\:text-primary {\n &>a:hover {\n color: var(--primary);\n }\n }\n .\\[\\&\\>button\\]\\:hidden {\n &>button {\n display: none;\n }\n }\n .\\[\\&\\>input\\]\\:flex-1 {\n &>input {\n flex: 1;\n }\n }\n .has-\\[\\>\\[data-align\\=block-end\\]\\]\\:\\[\\&\\>input\\]\\:pt-3 {\n &:has(>[data-align=block-end]) {\n &>input {\n padding-top: calc(var(--spacing) * 3);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=block-start\\]\\]\\:\\[\\&\\>input\\]\\:pb-3 {\n &:has(>[data-align=block-start]) {\n &>input {\n padding-bottom: calc(var(--spacing) * 3);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=inline-end\\]\\]\\:\\[\\&\\>input\\]\\:pr-2 {\n &:has(>[data-align=inline-end]) {\n &>input {\n padding-right: calc(var(--spacing) * 2);\n }\n }\n }\n .has-\\[\\>\\[data-align\\=inline-start\\]\\]\\:\\[\\&\\>input\\]\\:pl-2 {\n &:has(>[data-align=inline-start]) {\n &>input {\n padding-left: calc(var(--spacing) * 2);\n }\n }\n }\n .\\[\\&\\>kbd\\]\\:rounded-\\[calc\\(var\\(--radius\\)-5px\\)\\] {\n &>kbd {\n border-radius: calc(var(--radius) - 5px);\n }\n }\n .\\[\\&\\>span\\]\\:text-xs {\n &>span {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n }\n .\\[\\&\\>span\\]\\:opacity-70 {\n &>span {\n opacity: 70%;\n }\n }\n .\\[\\&\\>span\\:last-child\\]\\:truncate {\n &>span:last-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n .\\[\\&\\>svg\\]\\:pointer-events-none {\n &>svg {\n pointer-events: none;\n }\n }\n .\\[\\&\\>svg\\]\\:size-3 {\n &>svg {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:size-3\\.5 {\n &>svg {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n }\n .\\[\\&\\>svg\\]\\:size-4 {\n &>svg {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>svg\\]\\:h-2\\.5 {\n &>svg {\n height: calc(var(--spacing) * 2.5);\n }\n }\n .\\[\\&\\>svg\\]\\:h-3 {\n &>svg {\n height: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:w-2\\.5 {\n &>svg {\n width: calc(var(--spacing) * 2.5);\n }\n }\n .\\[\\&\\>svg\\]\\:w-3 {\n &>svg {\n width: calc(var(--spacing) * 3);\n }\n }\n .\\[\\&\\>svg\\]\\:shrink-0 {\n &>svg {\n flex-shrink: 0;\n }\n }\n .\\[\\&\\>svg\\]\\:translate-y-0\\.5 {\n &>svg {\n --tw-translate-y: calc(var(--spacing) * 0.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .\\[\\&\\>svg\\]\\:text-current {\n &>svg {\n color: currentcolor;\n }\n }\n .\\[\\&\\>svg\\]\\:text-muted-foreground {\n &>svg {\n color: var(--muted-foreground);\n }\n }\n .\\[\\&\\>svg\\]\\:text-sidebar-accent-foreground {\n &>svg {\n color: var(--sidebar-accent-foreground);\n }\n }\n .\\[\\&\\>svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-3\\.5 {\n &>svg:not([class*='size-']) {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n }\n .\\[\\&\\>svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n &>svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n }\n .\\[\\&\\>tr\\]\\:last\\:border-b-0 {\n &>tr {\n &:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n }\n }\n .\\[\\&\\[data-panel-group-direction\\=vertical\\]\\>div\\]\\:rotate-90 {\n &[data-panel-group-direction=vertical]>div {\n rotate: 90deg;\n }\n }\n .\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-180 {\n &[data-state=open]>svg {\n rotate: 180deg;\n }\n }\n .\\[\\[data-side\\=left\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-right-2 {\n [data-side=left][data-collapsible=offcanvas] & {\n right: calc(var(--spacing) * -2);\n }\n }\n .\\[\\[data-side\\=left\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize {\n [data-side=left][data-state=collapsed] & {\n cursor: e-resize;\n }\n }\n .\\[\\[data-side\\=right\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-left-2 {\n [data-side=right][data-collapsible=offcanvas] & {\n left: calc(var(--spacing) * -2);\n }\n }\n .\\[\\[data-side\\=right\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize {\n [data-side=right][data-state=collapsed] & {\n cursor: w-resize;\n }\n }\n .\\[\\[data-slot\\=card-content\\]_\\&\\]\\:bg-transparent {\n [data-slot=card-content] & {\n background-color: transparent;\n }\n }\n .\\[\\[data-slot\\=popover-content\\]_\\&\\]\\:bg-transparent {\n [data-slot=popover-content] & {\n background-color: transparent;\n }\n }\n .\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-background\\/20 {\n [data-slot=tooltip-content] & {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 20%, transparent);\n }\n }\n }\n .\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:text-background {\n [data-slot=tooltip-content] & {\n color: var(--background);\n }\n }\n .dark\\:\\[\\[data-slot\\=tooltip-content\\]_\\&\\]\\:bg-background\\/10 {\n &:is(.dark *) {\n [data-slot=tooltip-content] & {\n background-color: var(--background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--background) 10%, transparent);\n }\n }\n }\n }\n .\\[\\[data-variant\\=legend\\]\\+\\&\\]\\:-mt-1\\.5 {\n [data-variant=legend]+& {\n margin-top: calc(var(--spacing) * -1.5);\n }\n }\n .\\[a\\&\\]\\:transition-colors {\n a& {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-accent {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-accent\\/50 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--accent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--accent) 50%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-destructive\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--destructive);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-primary\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:bg-secondary\\/90 {\n a& {\n &:hover {\n @media (hover: hover) {\n background-color: var(--secondary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--secondary) 90%, transparent);\n }\n }\n }\n }\n }\n .\\[a\\&\\]\\:hover\\:text-accent-foreground {\n a& {\n &:hover {\n @media (hover: hover) {\n color: var(--accent-foreground);\n }\n }\n }\n }\n}\n@property --tw-animation-delay {\n syntax: \"*\";\n inherits: false;\n initial-value: 0s;\n}\n@property --tw-animation-direction {\n syntax: \"*\";\n inherits: false;\n initial-value: normal;\n}\n@property --tw-animation-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-animation-fill-mode {\n syntax: \"*\";\n inherits: false;\n initial-value: forwards;\n}\n@property --tw-animation-iteration-count {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-opacity {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-rotate {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-scale {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-opacity {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-exit-rotate {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-scale {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-exit-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n:root {\n --background: oklch(0.97 0.01 90);\n --foreground: oklch(0.2 0.02 265);\n --card: oklch(0.98 0.005 90);\n --card-foreground: oklch(0.2 0.02 265);\n --popover: oklch(0.98 0.005 90);\n --popover-foreground: oklch(0.2 0.02 265);\n --primary: oklch(0.45 0.15 25);\n --primary-foreground: oklch(0.98 0.01 90);\n --secondary: oklch(0.85 0.05 85);\n --secondary-foreground: oklch(0.3 0.05 50);\n --muted: oklch(0.92 0.01 90);\n --muted-foreground: oklch(0.45 0.02 265);\n --accent: oklch(0.94 0.02 85);\n --accent-foreground: oklch(0.3 0.05 50);\n --destructive: oklch(0.577 0.245 27.325);\n --destructive-foreground: oklch(0.98 0 0);\n --border: oklch(0.88 0.01 90);\n --input: oklch(0.88 0.01 90);\n --ring: oklch(0.45 0.15 25);\n --radius: 0.5rem;\n --sidebar: oklch(0.96 0.01 90);\n --sidebar-foreground: oklch(0.25 0.02 265);\n --sidebar-primary: oklch(0.45 0.15 25);\n --sidebar-primary-foreground: oklch(0.98 0.01 90);\n --sidebar-accent: oklch(0.93 0.01 90);\n --sidebar-accent-foreground: oklch(0.25 0.02 265);\n --sidebar-border: oklch(0.88 0.01 90);\n --sidebar-ring: oklch(0.45 0.15 25);\n --chart-1: oklch(0.45 0.15 25);\n --chart-2: oklch(0.65 0.12 50);\n --chart-3: oklch(0.35 0.08 200);\n --chart-4: oklch(0.55 0.05 265);\n --chart-5: oklch(0.75 0.1 85);\n}\n.dark {\n --background: oklch(0.12 0.01 265);\n --foreground: oklch(0.95 0.01 90);\n --card: oklch(0.15 0.01 265);\n --card-foreground: oklch(0.95 0.01 90);\n --popover: oklch(0.15 0.01 265);\n --popover-foreground: oklch(0.95 0.01 90);\n --primary: oklch(0.6 0.15 25);\n --primary-foreground: oklch(0.98 0.01 90);\n --secondary: oklch(0.3 0.05 50);\n --secondary-foreground: oklch(0.9 0.05 85);\n --muted: oklch(0.2 0.01 265);\n --muted-foreground: oklch(0.65 0.01 265);\n --accent: oklch(0.2 0.02 265);\n --accent-foreground: oklch(0.95 0.01 90);\n --destructive: oklch(0.396 0.141 25.723);\n --destructive-foreground: oklch(0.98 0 0);\n --border: oklch(0.25 0.01 265);\n --input: oklch(0.25 0.01 265);\n --ring: oklch(0.6 0.15 25);\n --sidebar: oklch(0.14 0.01 265);\n --sidebar-foreground: oklch(0.95 0.01 90);\n --sidebar-primary: oklch(0.6 0.15 25);\n --sidebar-primary-foreground: oklch(0.98 0.01 90);\n --sidebar-accent: oklch(0.2 0.01 265);\n --sidebar-accent-foreground: oklch(0.95 0.01 90);\n --sidebar-border: oklch(0.25 0.01 265);\n --sidebar-ring: oklch(0.6 0.15 25);\n}\n@layer base {\n * {\n border-color: var(--border);\n outline-color: var(--ring);\n @supports (color: color-mix(in lab, red, red)) {\n outline-color: color-mix(in oklab, var(--ring) 50%, transparent);\n }\n }\n body {\n background-color: var(--background);\n color: var(--foreground);\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: \"Songti SC\", \"STSong\", \"SimSun\", \"Times New Roman\", serif;\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-gradient-position {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-via {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-to {\n syntax: \"\";\n inherits: false;\n initial-value: #0000;\n}\n@property --tw-gradient-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-via-stops {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-gradient-from-position {\n syntax: \"\";\n inherits: false;\n initial-value: 0%;\n}\n@property --tw-gradient-via-position {\n syntax: \"\";\n inherits: false;\n initial-value: 50%;\n}\n@property --tw-gradient-to-position {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ordinal {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-slashed-zero {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-figure {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-spacing {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-numeric-fraction {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-content {\n syntax: \"*\";\n initial-value: \"\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 50% {\n opacity: 0.5;\n }\n}\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity,1);\n transform: translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));\n }\n}\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity,1);\n transform: translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));\n }\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))));\n }\n}\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))));\n }\n to {\n height: 0;\n }\n}\n@keyframes caret-blink {\n 0%,70%,100% {\n opacity: 1;\n }\n 20%,50% {\n opacity: 0;\n }\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n to {\n height: 0;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-ordinal: initial;\n --tw-slashed-zero: initial;\n --tw-numeric-figure: initial;\n --tw-numeric-spacing: initial;\n --tw-numeric-fraction: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-content: \"\";\n --tw-animation-delay: 0s;\n --tw-animation-direction: normal;\n --tw-animation-duration: initial;\n --tw-animation-fill-mode: forwards;\n --tw-animation-iteration-count: 1;\n --tw-enter-opacity: 1;\n --tw-enter-rotate: 0;\n --tw-enter-scale: 1;\n --tw-enter-translate-x: 0;\n --tw-enter-translate-y: 0;\n --tw-exit-opacity: 1;\n --tw-exit-rotate: 0;\n --tw-exit-scale: 1;\n --tw-exit-translate-x: 0;\n --tw-exit-translate-y: 0;\n }\n }\n}\n"],"names":[],"mappings":"AACA;EAq8ME;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAr8MJ;EAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAFF;EAgHE;;;;;;;EAAA;;;;;;;EAMA;;;;;;;;;;EASA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;;;;EAKA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;;;;;;;EAAA;;;;;;;;;;;EAUA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;IACE;;;;IAEE;MAAgD;;;;;;EAKpD;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAAA;;;;EAGA;;;;EAAA;;;;EAGA;;;;EA82LA;;;;;EAGE;IAAgD;;;;;EAIlD;;;;;EAIA;;;;;;;AAxnMF;;AAAA;EAoQE;;;;EAIA;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;;;;;;;EAWA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAGzB;IAAyB;;;;;EAI3B;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;;EAMA;;;;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAMA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAIE;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAMF;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;;EAKA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAEE;IAAgD;;;;;EAIlD;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;;EAKA;;;;;;EAKA;;;;;;EAKA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;EAEE;IAAgD;;;;;EAG5B;;;;EAEtB;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;;EAIA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EAGA;;;;EA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"}}] } \ No newline at end of file diff --git a/.next/dev/trace b/.next/dev/trace index 9f7d22e7..330440bb 100644 --- a/.next/dev/trace +++ b/.next/dev/trace @@ -192,3 +192,5 @@ [{"name":"ensure-page","duration":199,"timestamp":115564000318,"id":11966,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885142934,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":201,"timestamp":115564002978,"id":11967,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885142937,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":168,"timestamp":115564003201,"id":11968,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885142937,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":937,"timestamp":115564004342,"id":11970,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/members/route"},"startTime":1763885142939,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":22584,"timestamp":115563991930,"id":11963,"tags":{"url":"/api/trees"},"startTime":1763885142926,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115564014816,"id":11971,"parentId":11963,"tags":{"url":"/api/trees","memory.rss":"9062416384","memory.heapUsed":"6772007784","memory.heapTotal":"6981058560"},"startTime":1763885142949,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":24944,"timestamp":115564003999,"id":11969,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885142938,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115564029127,"id":11972,"parentId":11969,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members","memory.rss":"9063321600","memory.heapUsed":"6772912680","memory.heapTotal":"6981058560"},"startTime":1763885142963,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":590,"timestamp":115567002801,"id":11974,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885145937,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":13689,"timestamp":115567002503,"id":11973,"tags":{"url":"/api/trees"},"startTime":1763885145937,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":13,"timestamp":115567016454,"id":11975,"parentId":11973,"tags":{"url":"/api/trees","memory.rss":"9064435712","memory.heapUsed":"6774024688","memory.heapTotal":"6981320704"},"startTime":1763885145951,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":489,"timestamp":115567018377,"id":11977,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885145952,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":12742,"timestamp":115567018061,"id":11976,"tags":{"url":"/api/trees"},"startTime":1763885145952,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":12,"timestamp":115567031049,"id":11978,"parentId":11976,"tags":{"url":"/api/trees","memory.rss":"9065447424","memory.heapUsed":"6775050976","memory.heapTotal":"6981320704"},"startTime":1763885145965,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":199,"timestamp":115568923318,"id":11979,"parentId":3,"tags":{"inputPage":"/members/cmib8zhs5000dhhxlo39he5la"},"startTime":1763885147857,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":146,"timestamp":115568923540,"id":11980,"parentId":3,"tags":{"inputPage":"/members/cmib8zhs5000dhhxlo39he5la"},"startTime":1763885147858,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":154,"timestamp":115568924123,"id":11981,"parentId":3,"tags":{"inputPage":"/members/cmib8zhs5000dhhxlo39he5la"},"startTime":1763885147858,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":135,"timestamp":115568924294,"id":11982,"parentId":3,"tags":{"inputPage":"/members/cmib8zhs5000dhhxlo39he5la"},"startTime":1763885147858,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1251,"timestamp":115568925292,"id":11984,"parentId":3,"tags":{"inputPage":"/members/[id]/page"},"startTime":1763885147859,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":35254,"timestamp":115568924918,"id":11983,"tags":{"url":"/members/cmib8zhs5000dhhxlo39he5la?_rsc=1vf4i"},"startTime":1763885147859,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":115568960353,"id":11985,"parentId":11983,"tags":{"url":"/members/cmib8zhs5000dhhxlo39he5la?_rsc=1vf4i","memory.rss":"9071890432","memory.heapUsed":"6770393528","memory.heapTotal":"6984990720"},"startTime":1763885147894,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":428,"timestamp":115568996743,"id":11987,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885147931,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":12206,"timestamp":115568996467,"id":11986,"tags":{"url":"/api/trees"},"startTime":1763885147930,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":115569008909,"id":11988,"parentId":11986,"tags":{"url":"/api/trees","memory.rss":"9072119808","memory.heapUsed":"6771440456","memory.heapTotal":"6984990720"},"startTime":1763885147943,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":603,"timestamp":115569010754,"id":11990,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885147945,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":15120,"timestamp":115569010433,"id":11989,"tags":{"url":"/api/trees"},"startTime":1763885147944,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":7,"timestamp":115569025896,"id":11991,"parentId":11989,"tags":{"url":"/api/trees","memory.rss":"9072332800","memory.heapUsed":"6772451640","memory.heapTotal":"6985252864"},"startTime":1763885147960,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1190,"timestamp":115569028937,"id":11993,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885147963,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":173,"timestamp":115569037883,"id":11994,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885147972,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":126,"timestamp":115569038075,"id":11995,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885147972,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":204,"timestamp":115569040537,"id":11996,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885147975,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":139,"timestamp":115569040761,"id":11997,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885147975,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":711,"timestamp":115569042724,"id":11999,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/members/route"},"startTime":1763885147977,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":28821,"timestamp":115569027986,"id":11992,"tags":{"url":"/api/trees"},"startTime":1763885147962,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":20,"timestamp":115569057096,"id":12000,"parentId":11992,"tags":{"url":"/api/trees","memory.rss":"9072766976","memory.heapUsed":"6774799704","memory.heapTotal":"6985777152"},"startTime":1763885147991,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":29172,"timestamp":115569042324,"id":11998,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885147976,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":115569071709,"id":12001,"parentId":11998,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members","memory.rss":"9072848896","memory.heapUsed":"6775570912","memory.heapTotal":"6985777152"},"startTime":1763885148006,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":914,"timestamp":115570321805,"id":12003,"parentId":3,"tags":{"inputPage":"/members/new/page"},"startTime":1763885149256,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":19107,"timestamp":115570321452,"id":12002,"tags":{"url":"/members/new?spouseId=cmib8zhs5000dhhxlo39he5la&generation=2&gender=FEMALE&_rsc=95g65"},"startTime":1763885149255,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":115570340719,"id":12004,"parentId":12002,"tags":{"url":"/members/new?spouseId=cmib8zhs5000dhhxlo39he5la&generation=2&gender=FEMALE&_rsc=95g65","memory.rss":"9073168384","memory.heapUsed":"6778455720","memory.heapTotal":"6986039296"},"startTime":1763885149275,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1290,"timestamp":115570395310,"id":12006,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885149329,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":13196,"timestamp":115570394763,"id":12005,"tags":{"url":"/api/trees"},"startTime":1763885149329,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":9,"timestamp":115570408305,"id":12007,"parentId":12005,"tags":{"url":"/api/trees","memory.rss":"9073410048","memory.heapUsed":"6779532608","memory.heapTotal":"6986301440"},"startTime":1763885149342,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":443,"timestamp":115570410387,"id":12009,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885149344,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":12089,"timestamp":115570410075,"id":12008,"tags":{"url":"/api/trees"},"startTime":1763885149344,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":115570422376,"id":12010,"parentId":12008,"tags":{"url":"/api/trees","memory.rss":"9073618944","memory.heapUsed":"6780544736","memory.heapTotal":"6986563584"},"startTime":1763885149356,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":403,"timestamp":115570423686,"id":12012,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885149358,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":10938,"timestamp":115570423396,"id":12011,"tags":{"url":"/api/trees"},"startTime":1763885149357,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":115570434563,"id":12013,"parentId":12011,"tags":{"url":"/api/trees","memory.rss":"9073852416","memory.heapUsed":"6781557904","memory.heapTotal":"6986563584"},"startTime":1763885149369,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":207,"timestamp":115570479171,"id":12014,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885149413,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":102,"timestamp":115570479402,"id":12015,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885149413,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":333,"timestamp":115570481156,"id":12016,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885149415,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":124,"timestamp":115570481509,"id":12017,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885149415,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":502,"timestamp":115570482932,"id":12019,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/members/route"},"startTime":1763885149417,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":29690,"timestamp":115570482620,"id":12018,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885149417,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":115570512517,"id":12020,"parentId":12018,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members","memory.rss":"9076797440","memory.heapUsed":"6775545464","memory.heapTotal":"6990233600"},"startTime":1763885149446,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":497,"timestamp":115577316172,"id":12022,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885156250,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":12554,"timestamp":115577315854,"id":12021,"tags":{"url":"/api/trees"},"startTime":1763885156250,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115577328780,"id":12023,"parentId":12021,"tags":{"url":"/api/trees","memory.rss":"9077018624","memory.heapUsed":"6776762240","memory.heapTotal":"6990233600"},"startTime":1763885156262,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":790,"timestamp":115577331095,"id":12025,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885156265,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":13651,"timestamp":115577330617,"id":12024,"tags":{"url":"/api/trees"},"startTime":1763885156264,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":113,"timestamp":115577344553,"id":12026,"parentId":12024,"tags":{"url":"/api/trees","memory.rss":"9077227520","memory.heapUsed":"6777773496","memory.heapTotal":"6990233600"},"startTime":1763885156278,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":625,"timestamp":115577346673,"id":12028,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885156280,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":184,"timestamp":115577354671,"id":12029,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885156288,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":126,"timestamp":115577354875,"id":12030,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885156289,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":367,"timestamp":115577356786,"id":12031,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885156290,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":216,"timestamp":115577357181,"id":12032,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885156291,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":15262,"timestamp":115577346173,"id":12027,"tags":{"url":"/api/trees"},"startTime":1763885156280,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115577361671,"id":12035,"parentId":12027,"tags":{"url":"/api/trees","memory.rss":"9077477376","memory.heapUsed":"6779266144","memory.heapTotal":"6990233600"},"startTime":1763885156295,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":3404,"timestamp":115577359029,"id":12034,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/members/route"},"startTime":1763885156293,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":52448,"timestamp":115577358649,"id":12033,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885156292,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":16,"timestamp":115577411673,"id":12036,"parentId":12033,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members","memory.rss":"9077690368","memory.heapUsed":"6780909672","memory.heapTotal":"6990495744"},"startTime":1763885156345,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":995,"timestamp":115585160974,"id":12038,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1763885164094,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":17677,"timestamp":115585160646,"id":12037,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh&_rsc=95g65"},"startTime":1763885164094,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":3,"timestamp":115585178486,"id":12039,"parentId":12037,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh&_rsc=95g65","memory.rss":"9077964800","memory.heapUsed":"6783674472","memory.heapTotal":"6991020032"},"startTime":1763885164112,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":199,"timestamp":115585229753,"id":12042,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885164163,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":163,"timestamp":115585229987,"id":12043,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885164163,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1504,"timestamp":115585229586,"id":12041,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885164163,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":193,"timestamp":115585236271,"id":12044,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885164170,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":112,"timestamp":115585236484,"id":12045,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885164170,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1580,"timestamp":115585238425,"id":12047,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/activity-logs/route"},"startTime":1763885164172,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":22769,"timestamp":115585229285,"id":12040,"tags":{"url":"/api/trees"},"startTime":1763885164163,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115585252397,"id":12048,"parentId":12040,"tags":{"url":"/api/trees","memory.rss":"9078444032","memory.heapUsed":"6786030752","memory.heapTotal":"6991282176"},"startTime":1763885164186,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":638,"timestamp":115585257765,"id":12050,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885164191,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":26797,"timestamp":115585238095,"id":12046,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10"},"startTime":1763885164172,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":8,"timestamp":115585265133,"id":12051,"parentId":12046,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10","memory.rss":"9078648832","memory.heapUsed":"6787007288","memory.heapTotal":"6991544320"},"startTime":1763885164199,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":190,"timestamp":115585270032,"id":12052,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885164203,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":132,"timestamp":115585270241,"id":12053,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885164204,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":380,"timestamp":115585272544,"id":12054,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885164206,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":332,"timestamp":115585272977,"id":12055,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885164206,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":30407,"timestamp":115585257217,"id":12049,"tags":{"url":"/api/trees"},"startTime":1763885164191,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115585287848,"id":12056,"parentId":12049,"tags":{"url":"/api/trees","memory.rss":"9081290752","memory.heapUsed":"6779818192","memory.heapTotal":"6994952192"},"startTime":1763885164221,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":503,"timestamp":115585288803,"id":12058,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/activity-logs/route"},"startTime":1763885164222,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":12920,"timestamp":115585288421,"id":12057,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10"},"startTime":1763885164222,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":27,"timestamp":115585301693,"id":12059,"parentId":12057,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10","memory.rss":"9081495552","memory.heapUsed":"6780866976","memory.heapTotal":"6994952192"},"startTime":1763885164235,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":76000,"timestamp":115647134434,"id":12060,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/","isPageHidden":false},"startTime":1763885226179,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":72000,"timestamp":115647134571,"id":12061,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/tree","isPageHidden":true},"startTime":1763885226238,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":74000,"timestamp":115647134660,"id":12062,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/relationship-test","isPageHidden":true},"startTime":1763885226238,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":216000,"timestamp":115716812126,"id":12063,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/tree","isPageHidden":true},"startTime":1763885295927,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":217000,"timestamp":115716813274,"id":12064,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/relationship-test","isPageHidden":true},"startTime":1763885295927,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":220000,"timestamp":115716812747,"id":12065,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/","isPageHidden":false},"startTime":1763885295965,"traceId":"96837134d747a51b"}] [{"name":"ensure-page","duration":850,"timestamp":115758018171,"id":12067,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885336890,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":20532,"timestamp":115758017608,"id":12066,"tags":{"url":"/api/trees"},"startTime":1763885336889,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":3,"timestamp":115758038301,"id":12068,"parentId":12066,"tags":{"url":"/api/trees","memory.rss":"9092689920","memory.heapUsed":"6788816184","memory.heapTotal":"6998114304"},"startTime":1763885336910,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":21749,"timestamp":115758057633,"id":12070,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1763885336929,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":1776656,"timestamp":115758057083,"id":12069,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885336929,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115759834192,"id":12071,"parentId":12069,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh","memory.rss":"9145077760","memory.heapUsed":"6842724352","memory.heapTotal":"7041699840"},"startTime":1763885338706,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":6038,"timestamp":115760242205,"id":12072,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885339114,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":296,"timestamp":115760248325,"id":12073,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885339120,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":5547,"timestamp":115760264306,"id":12074,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885339136,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":298,"timestamp":115760269903,"id":12075,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885339141,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":16954,"timestamp":115760295281,"id":12077,"parentId":3,"tags":{"inputPage":"/api/auth/[...nextauth]/route"},"startTime":1763885339167,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":156728,"timestamp":115760289593,"id":12076,"tags":{"url":"/api/auth/session"},"startTime":1763885339161,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115760446658,"id":12078,"parentId":12076,"tags":{"url":"/api/auth/session","memory.rss":"9147514880","memory.heapUsed":"6841921472","memory.heapTotal":"7027281920"},"startTime":1763885339318,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":5927,"timestamp":115760485760,"id":12079,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885339357,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":636,"timestamp":115760491799,"id":12080,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885339363,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":363,"timestamp":115760500257,"id":12081,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885339372,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":402,"timestamp":115760508023,"id":12082,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885339380,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":354,"timestamp":115760516901,"id":12083,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885339388,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":5321,"timestamp":115760517290,"id":12084,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885339389,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":217,"timestamp":115760530604,"id":12085,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885339402,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":5369,"timestamp":115760530843,"id":12086,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885339402,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":24482,"timestamp":115760549471,"id":12088,"parentId":3,"tags":{"inputPage":"/api/auth/[...nextauth]/route"},"startTime":1763885339421,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":56054,"timestamp":115760573455,"id":12090,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/route"},"startTime":1763885339445,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":169323,"timestamp":115760543982,"id":12087,"tags":{"url":"/api/auth/session"},"startTime":1763885339415,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":3,"timestamp":115760713477,"id":12091,"parentId":12087,"tags":{"url":"/api/auth/session","memory.rss":"9147858944","memory.heapUsed":"6843585960","memory.heapTotal":"7031214080"},"startTime":1763885339585,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":233,"timestamp":115760770361,"id":12092,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885339642,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":5313,"timestamp":115760770616,"id":12093,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885339642,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":230845,"timestamp":115760558821,"id":12089,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885339430,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":14,"timestamp":115760790266,"id":12094,"parentId":12089,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh","memory.rss":"9147928576","memory.heapUsed":"6842984704","memory.heapTotal":"7028330496"},"startTime":1763885339662,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":219,"timestamp":115760806735,"id":12095,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885339678,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":5273,"timestamp":115760806976,"id":12096,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885339678,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":413,"timestamp":115760841464,"id":12099,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885339713,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":5703,"timestamp":115760841942,"id":12100,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885339713,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":33819,"timestamp":115760835852,"id":12098,"parentId":3,"tags":{"inputPage":"/api/auth/[...nextauth]/route"},"startTime":1763885339707,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":5456,"timestamp":115760909787,"id":12101,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885339781,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":5330,"timestamp":115760915275,"id":12102,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885339787,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":131628,"timestamp":115760835314,"id":12097,"tags":{"url":"/api/auth/session"},"startTime":1763885339707,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115760967171,"id":12105,"parentId":12097,"tags":{"url":"/api/auth/session","memory.rss":"9147928576","memory.heapUsed":"6844206984","memory.heapTotal":"7029903360"},"startTime":1763885339839,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":36925,"timestamp":115760948918,"id":12104,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/members/route"},"startTime":1763885339820,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":214217,"timestamp":115760943332,"id":12103,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885339815,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":115761157718,"id":12106,"parentId":12103,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members","memory.rss":"9147928576","memory.heapUsed":"6844693056","memory.heapTotal":"7030427648"},"startTime":1763885340029,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":176,"timestamp":115761732308,"id":12109,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885340604,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":119,"timestamp":115761732506,"id":12110,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885340604,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":2177,"timestamp":115761730915,"id":12108,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885340602,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":588,"timestamp":115761741917,"id":12111,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885340613,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":161,"timestamp":115761742538,"id":12112,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885340614,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":481,"timestamp":115761744856,"id":12114,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/activity-logs/route"},"startTime":1763885340616,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":207942,"timestamp":115761546297,"id":12107,"tags":{"url":"/api/trees"},"startTime":1763885340418,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115761754451,"id":12115,"parentId":12107,"tags":{"url":"/api/trees","memory.rss":"9107406848","memory.heapUsed":"6695720088","memory.heapTotal":"6993723392"},"startTime":1763885340626,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1485,"timestamp":115761758318,"id":12117,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885340630,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":20053,"timestamp":115761744531,"id":12113,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10"},"startTime":1763885340616,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115761764749,"id":12118,"parentId":12113,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10","memory.rss":"9107406848","memory.heapUsed":"6696764920","memory.heapTotal":"6993723392"},"startTime":1763885340636,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":276,"timestamp":115761772842,"id":12119,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885340644,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":132,"timestamp":115761773139,"id":12120,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885340645,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":328,"timestamp":115761776046,"id":12121,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885340648,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":203,"timestamp":115761776410,"id":12122,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885340648,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":23428,"timestamp":115761757879,"id":12116,"tags":{"url":"/api/trees"},"startTime":1763885340629,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115761781490,"id":12125,"parentId":12116,"tags":{"url":"/api/trees","memory.rss":"9107406848","memory.heapUsed":"6695759448","memory.heapTotal":"6993723392"},"startTime":1763885340653,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":3599,"timestamp":115761778819,"id":12124,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/activity-logs/route"},"startTime":1763885340650,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":21247,"timestamp":115761778297,"id":12123,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10"},"startTime":1763885340650,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115761799745,"id":12126,"parentId":12123,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10","memory.rss":"9107406848","memory.heapUsed":"6696724568","memory.heapTotal":"6993723392"},"startTime":1763885340671,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":221000,"timestamp":115778975555,"id":12127,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/tree","isPageHidden":true},"startTime":1763885358095,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":237000,"timestamp":115778974681,"id":12128,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/relationship-test","isPageHidden":true},"startTime":1763885358096,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":246000,"timestamp":115778975101,"id":12129,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/","isPageHidden":false},"startTime":1763885358138,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":207000,"timestamp":115833724683,"id":12130,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/relationship-test","isPageHidden":true},"startTime":1763885412824,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":199000,"timestamp":115833723739,"id":12131,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/tree","isPageHidden":true},"startTime":1763885412832,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":209000,"timestamp":115833725235,"id":12132,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/","isPageHidden":false},"startTime":1763885412870,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":6825,"timestamp":115852137547,"id":12134,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885431006,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":34864,"timestamp":115852137040,"id":12133,"tags":{"url":"/api/trees"},"startTime":1763885431005,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115852172079,"id":12135,"parentId":12133,"tags":{"url":"/api/trees","memory.rss":"8953319424","memory.heapUsed":"6639982632","memory.heapTotal":"6846300160"},"startTime":1763885431040,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1491,"timestamp":115853418604,"id":12137,"parentId":3,"tags":{"inputPage":"/tree/page"},"startTime":1763885432287,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":31876,"timestamp":115853418241,"id":12136,"tags":{"url":"/tree?treeId=cmib8zhrq0003hhxlvnsi96nh&_rsc=vusbg"},"startTime":1763885432287,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115853450308,"id":12138,"parentId":12136,"tags":{"url":"/tree?treeId=cmib8zhrq0003hhxlvnsi96nh&_rsc=vusbg","memory.rss":"8953319424","memory.heapUsed":"6640361600","memory.heapTotal":"6847348736"},"startTime":1763885432319,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":3798,"timestamp":115854205083,"id":12140,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885433073,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":32612,"timestamp":115854204573,"id":12139,"tags":{"url":"/api/trees"},"startTime":1763885433073,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115854237400,"id":12141,"parentId":12139,"tags":{"url":"/api/trees","memory.rss":"8953319424","memory.heapUsed":"6641601560","memory.heapTotal":"6847348736"},"startTime":1763885433106,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1743,"timestamp":115854247188,"id":12143,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885433115,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":25769,"timestamp":115854246767,"id":12142,"tags":{"url":"/api/trees"},"startTime":1763885433115,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115854272798,"id":12144,"parentId":12142,"tags":{"url":"/api/trees","memory.rss":"8953319424","memory.heapUsed":"6641816752","memory.heapTotal":"6847348736"},"startTime":1763885433141,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":23629,"timestamp":115858829737,"id":12146,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1763885437698,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":218967,"timestamp":115858829369,"id":12145,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh&_rsc=1woqb"},"startTime":1763885437698,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":3,"timestamp":115859048477,"id":12147,"parentId":12145,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh&_rsc=1woqb","memory.rss":"8969203712","memory.heapUsed":"6663861832","memory.heapTotal":"6870446080"},"startTime":1763885437917,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":362,"timestamp":115859105439,"id":12150,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885437974,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":367,"timestamp":115859105841,"id":12151,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885437974,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1867,"timestamp":115859105009,"id":12149,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885437973,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":302,"timestamp":115859110845,"id":12152,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885437979,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":328,"timestamp":115859111195,"id":12153,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885437979,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1457,"timestamp":115859114606,"id":12155,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/activity-logs/route"},"startTime":1763885437983,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":103891,"timestamp":115859104486,"id":12148,"tags":{"url":"/api/trees"},"startTime":1763885437973,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115859208578,"id":12156,"parentId":12148,"tags":{"url":"/api/trees","memory.rss":"8969654272","memory.heapUsed":"6666286696","memory.heapTotal":"6870708224"},"startTime":1763885438077,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":2111,"timestamp":115859210963,"id":12158,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885438079,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":106661,"timestamp":115859114171,"id":12154,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10"},"startTime":1763885437982,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":3,"timestamp":115859220980,"id":12159,"parentId":12154,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10","memory.rss":"8970452992","memory.heapUsed":"6667213168","memory.heapTotal":"6870970368"},"startTime":1763885438089,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":197,"timestamp":115859224366,"id":12160,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885438092,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":145,"timestamp":115859224582,"id":12161,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885438093,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":290,"timestamp":115859226180,"id":12162,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885438094,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":276,"timestamp":115859226512,"id":12163,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885438095,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1114,"timestamp":115859228659,"id":12165,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/activity-logs/route"},"startTime":1763885438097,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":28368,"timestamp":115859210582,"id":12157,"tags":{"url":"/api/trees"},"startTime":1763885438079,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115859239119,"id":12166,"parentId":12157,"tags":{"url":"/api/trees","memory.rss":"8971730944","memory.heapUsed":"6668572464","memory.heapTotal":"6871232512"},"startTime":1763885438107,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":20306,"timestamp":115859228048,"id":12164,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10"},"startTime":1763885438096,"traceId":"96837134d747a51b"}] [{"name":"memory-usage","duration":5,"timestamp":115859249323,"id":12167,"parentId":12164,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10","memory.rss":"8972177408","memory.heapUsed":"6669030440","memory.heapTotal":"6871232512"},"startTime":1763885438117,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":190000,"timestamp":115883246681,"id":12168,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/relationship-test","isPageHidden":true},"startTime":1763885462330,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":188000,"timestamp":115883245793,"id":12169,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/tree","isPageHidden":true},"startTime":1763885462330,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":193000,"timestamp":115883246213,"id":12170,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/","isPageHidden":false},"startTime":1763885462375,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":167,"timestamp":115909528620,"id":12171,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/collaborators"},"startTime":1763885488395,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":121,"timestamp":115909528811,"id":12172,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/collaborators"},"startTime":1763885488395,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":152,"timestamp":115909529359,"id":12173,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/collaborators"},"startTime":1763885488396,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":129,"timestamp":115909529527,"id":12174,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/collaborators"},"startTime":1763885488396,"traceId":"96837134d747a51b"},{"name":"compile-path","duration":225208,"timestamp":115909530929,"id":12177,"tags":{"trigger":"/api/trees/[treeId]/collaborators"},"startTime":1763885488397,"traceId":"96837134d747a51b"}] +[{"name":"handle-request","duration":1050248,"timestamp":115909530308,"id":12175,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/collaborators"},"startTime":1763885488397,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":3,"timestamp":115910580732,"id":12178,"parentId":12175,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/collaborators","memory.rss":"8975761408","memory.heapUsed":"6667631416","memory.heapTotal":"6859509760"},"startTime":1763885489447,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":9930,"timestamp":115919033832,"id":12180,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1763885497900,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":979047,"timestamp":115919033343,"id":12179,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885497899,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":10,"timestamp":115920012814,"id":12181,"parentId":12179,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh","memory.rss":"9050058752","memory.heapUsed":"6729343760","memory.heapTotal":"6947438592"},"startTime":1763885498879,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":214,"timestamp":115920358957,"id":12182,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885499225,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":128,"timestamp":115920359191,"id":12183,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885499225,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":982,"timestamp":115920360797,"id":12184,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885499227,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":647,"timestamp":115920361902,"id":12185,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885499228,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":3532,"timestamp":115920370819,"id":12187,"parentId":3,"tags":{"inputPage":"/api/auth/[...nextauth]/route"},"startTime":1763885499237,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":34911,"timestamp":115920369963,"id":12186,"tags":{"url":"/api/auth/session"},"startTime":1763885499236,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":20,"timestamp":115920405361,"id":12188,"parentId":12186,"tags":{"url":"/api/auth/session","memory.rss":"9052979200","memory.heapUsed":"6739249968","memory.heapTotal":"6949539840"},"startTime":1763885499271,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":254,"timestamp":115920436960,"id":12189,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885499303,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":191,"timestamp":115920437253,"id":12190,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885499303,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":511,"timestamp":115920438654,"id":12191,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885499305,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":320,"timestamp":115920439234,"id":12192,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885499305,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":389,"timestamp":115920440514,"id":12193,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885499307,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":312,"timestamp":115920440967,"id":12194,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885499307,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1096,"timestamp":115920446503,"id":12195,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885499313,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":551,"timestamp":115920447662,"id":12196,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885499314,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":3607,"timestamp":115920450495,"id":12198,"parentId":3,"tags":{"inputPage":"/api/auth/[...nextauth]/route"},"startTime":1763885499317,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":27756,"timestamp":115920453469,"id":12200,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/route"},"startTime":1763885499319,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":52323,"timestamp":115920449670,"id":12197,"tags":{"url":"/api/auth/session"},"startTime":1763885499316,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":15,"timestamp":115920502541,"id":12201,"parentId":12197,"tags":{"url":"/api/auth/session","memory.rss":"9058168832","memory.heapUsed":"6733731552","memory.heapTotal":"6953996288"},"startTime":1763885499369,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":476,"timestamp":115920516408,"id":12202,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885499382,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":383,"timestamp":115920516953,"id":12203,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885499383,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":67183,"timestamp":115920453068,"id":12199,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885499319,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115920520453,"id":12204,"parentId":12199,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh","memory.rss":"9058213888","memory.heapUsed":"6734364216","memory.heapTotal":"6953996288"},"startTime":1763885499386,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":285,"timestamp":115920522281,"id":12205,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885499388,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":218,"timestamp":115920522596,"id":12206,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885499389,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":239,"timestamp":115920528992,"id":12209,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885499395,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":139,"timestamp":115920529252,"id":12210,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885499395,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1990,"timestamp":115920527853,"id":12208,"parentId":3,"tags":{"inputPage":"/api/auth/[...nextauth]/route"},"startTime":1763885499394,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":272,"timestamp":115920537574,"id":12211,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885499404,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":277,"timestamp":115920537879,"id":12212,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885499404,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":15899,"timestamp":115920527035,"id":12207,"tags":{"url":"/api/auth/session"},"startTime":1763885499393,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":115920543215,"id":12213,"parentId":12207,"tags":{"url":"/api/auth/session","memory.rss":"9058488320","memory.heapUsed":"6735848896","memory.heapTotal":"6953996288"},"startTime":1763885499409,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":552,"timestamp":115920544165,"id":12215,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/members/route"},"startTime":1763885499410,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":27411,"timestamp":115920543652,"id":12214,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885499410,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115920571306,"id":12216,"parentId":12214,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members","memory.rss":"9058725888","memory.heapUsed":"6737480792","memory.heapTotal":"6953996288"},"startTime":1763885499437,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":421,"timestamp":115920677589,"id":12218,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885499544,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":427,"timestamp":115920688302,"id":12219,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885499554,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":198,"timestamp":115920688757,"id":12220,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885499555,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":14019,"timestamp":115920677340,"id":12217,"tags":{"url":"/api/trees"},"startTime":1763885499543,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115920691622,"id":12221,"parentId":12217,"tags":{"url":"/api/trees","memory.rss":"9058979840","memory.heapUsed":"6739076472","memory.heapTotal":"6954258432"},"startTime":1763885499558,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":221,"timestamp":115920692049,"id":12222,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885499558,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":165,"timestamp":115920692290,"id":12223,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885499558,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":866,"timestamp":115920694011,"id":12225,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/activity-logs/route"},"startTime":1763885499560,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":7918,"timestamp":115920694480,"id":12227,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885499560,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":36735,"timestamp":115920694245,"id":12226,"tags":{"url":"/api/trees"},"startTime":1763885499560,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115920731259,"id":12228,"parentId":12226,"tags":{"url":"/api/trees","memory.rss":"9059397632","memory.heapUsed":"6741224416","memory.heapTotal":"6954520576"},"startTime":1763885499597,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":43631,"timestamp":115920693438,"id":12224,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10"},"startTime":1763885499559,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":115920737222,"id":12229,"parentId":12224,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10","memory.rss":"9059409920","memory.heapUsed":"6741445128","memory.heapTotal":"6954782720"},"startTime":1763885499603,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":212,"timestamp":115920738725,"id":12230,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885499605,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":291,"timestamp":115920738958,"id":12231,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885499605,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":501,"timestamp":115920741845,"id":12232,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885499608,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":218,"timestamp":115920742381,"id":12233,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885499608,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1411,"timestamp":115920743766,"id":12235,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/activity-logs/route"},"startTime":1763885499610,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":29219,"timestamp":115920743424,"id":12234,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10"},"startTime":1763885499609,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":14,"timestamp":115920773350,"id":12236,"parentId":12234,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10","memory.rss":"9059643392","memory.heapUsed":"6742790424","memory.heapTotal":"6954782720"},"startTime":1763885499639,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":804,"timestamp":115953276728,"id":12238,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885532142,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":20662,"timestamp":115953275338,"id":12237,"tags":{"url":"/api/trees"},"startTime":1763885532140,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115953296189,"id":12239,"parentId":12237,"tags":{"url":"/api/trees","memory.rss":"9059872768","memory.heapUsed":"6744161592","memory.heapTotal":"6955044864"},"startTime":1763885532161,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":10804,"timestamp":115970764547,"id":12241,"parentId":3,"tags":{"inputPage":"/relationship/page"},"startTime":1763885549629,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":40774,"timestamp":115970764137,"id":12240,"tags":{"url":"/relationship?_rsc=vusbg"},"startTime":1763885549628,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":115970805138,"id":12242,"parentId":12240,"tags":{"url":"/relationship?_rsc=vusbg","memory.rss":"9061933056","memory.heapUsed":"6737812912","memory.heapTotal":"6930403328"},"startTime":1763885549669,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":591,"timestamp":115970833630,"id":12244,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885549698,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":11244,"timestamp":115970833216,"id":12243,"tags":{"url":"/api/trees"},"startTime":1763885549698,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":115970844600,"id":12245,"parentId":12243,"tags":{"url":"/api/trees","memory.rss":"9062166528","memory.heapUsed":"6739336944","memory.heapTotal":"6930403328"},"startTime":1763885549709,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":187,"timestamp":115971417489,"id":12246,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885550282,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":156,"timestamp":115971417695,"id":12247,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885550282,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":129,"timestamp":115971418812,"id":12248,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885550283,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":104,"timestamp":115971418953,"id":12249,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885550283,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":568,"timestamp":115971420332,"id":12251,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/members/route"},"startTime":1763885550285,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":24680,"timestamp":115971419959,"id":12250,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885550284,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":115971444880,"id":12252,"parentId":12250,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members","memory.rss":"9062502400","memory.heapUsed":"6739015280","memory.heapTotal":"6940364800"},"startTime":1763885550309,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":663,"timestamp":115971447970,"id":12254,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885550312,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":16286,"timestamp":115971447712,"id":12253,"tags":{"url":"/api/trees"},"startTime":1763885550312,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":8,"timestamp":115971464280,"id":12255,"parentId":12253,"tags":{"url":"/api/trees","memory.rss":"9062506496","memory.heapUsed":"6740408280","memory.heapTotal":"6940364800"},"startTime":1763885550329,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":607,"timestamp":115971467057,"id":12257,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885550331,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":12731,"timestamp":115971466751,"id":12256,"tags":{"url":"/api/trees"},"startTime":1763885550331,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":115971479713,"id":12258,"parentId":12256,"tags":{"url":"/api/trees","memory.rss":"9062506496","memory.heapUsed":"6741456544","memory.heapTotal":"6940364800"},"startTime":1763885550344,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":484,"timestamp":115973358291,"id":12260,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885552223,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":147,"timestamp":115973363918,"id":12261,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885552228,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":103,"timestamp":115973364081,"id":12262,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885552228,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":115,"timestamp":115973365095,"id":12263,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885552229,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":99,"timestamp":115973365222,"id":12264,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885552229,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":466,"timestamp":115973366080,"id":12266,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/activity-logs/route"},"startTime":1763885552230,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":18720,"timestamp":115973358026,"id":12259,"tags":{"url":"/api/trees"},"startTime":1763885552222,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":7,"timestamp":115973377026,"id":12267,"parentId":12259,"tags":{"url":"/api/trees","memory.rss":"9062531072","memory.heapUsed":"6743730472","memory.heapTotal":"6940626944"},"startTime":1763885552241,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1816,"timestamp":115973385398,"id":12269,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885552250,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":26778,"timestamp":115973365709,"id":12265,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10"},"startTime":1763885552230,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":17,"timestamp":115973392704,"id":12270,"parentId":12265,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10","memory.rss":"9062531072","memory.heapUsed":"6741682936","memory.heapTotal":"6931714048"},"startTime":1763885552257,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":187,"timestamp":115973396483,"id":12271,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885552261,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":125,"timestamp":115973396689,"id":12272,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885552261,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":367,"timestamp":115973400166,"id":12273,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885552264,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":202,"timestamp":115973400566,"id":12274,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885552265,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":2623,"timestamp":115973484037,"id":12276,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/activity-logs/route"},"startTime":1763885552348,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":107492,"timestamp":115973385113,"id":12268,"tags":{"url":"/api/trees"},"startTime":1763885552249,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":8,"timestamp":115973492852,"id":12277,"parentId":12268,"tags":{"url":"/api/trees","memory.rss":"9062531072","memory.heapUsed":"6742170184","memory.heapTotal":"6935121920"},"startTime":1763885552357,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":107766,"timestamp":115973402443,"id":12275,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10"},"startTime":1763885552267,"traceId":"96837134d747a51b"}] +[{"name":"memory-usage","duration":6,"timestamp":115973511391,"id":12278,"parentId":12275,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10","memory.rss":"9062531072","memory.heapUsed":"6742672296","memory.heapTotal":"6935121920"},"startTime":1763885552376,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1580,"timestamp":115985387768,"id":12280,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1763885564252,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":195,"timestamp":115985497438,"id":12281,"parentId":3,"tags":{"inputPage":"/.well-known/appspecific/com.chrome.devtools.json"},"startTime":1763885564361,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":109,"timestamp":115985497652,"id":12282,"parentId":3,"tags":{"inputPage":"/.well-known/appspecific/com.chrome.devtools.json"},"startTime":1763885564361,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":113,"timestamp":115985498342,"id":12283,"parentId":3,"tags":{"inputPage":"/.well-known/appspecific/com.chrome.devtools.json"},"startTime":1763885564362,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":95,"timestamp":115985498467,"id":12284,"parentId":3,"tags":{"inputPage":"/.well-known/appspecific/com.chrome.devtools.json"},"startTime":1763885564362,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":116567,"timestamp":115985387426,"id":12279,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885564251,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":3,"timestamp":115985504123,"id":12285,"parentId":12279,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh","memory.rss":"9062539264","memory.heapUsed":"6744636424","memory.heapTotal":"6935908352"},"startTime":1763885564368,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1162,"timestamp":115990847354,"id":12287,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885569711,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":27191,"timestamp":115990846971,"id":12286,"tags":{"url":"/api/trees"},"startTime":1763885569711,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":10,"timestamp":115990874735,"id":12288,"parentId":12286,"tags":{"url":"/api/trees","memory.rss":"9062547456","memory.heapUsed":"6746247976","memory.heapTotal":"6939578368"},"startTime":1763885569738,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":88000,"timestamp":116036986423,"id":12289,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/tree","isPageHidden":true},"startTime":1763885615965,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":93000,"timestamp":116036986493,"id":12290,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/relationship-test","isPageHidden":true},"startTime":1763885615965,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":107000,"timestamp":116036986475,"id":12291,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/","isPageHidden":false},"startTime":1763885616075,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1269,"timestamp":116040945312,"id":12293,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885619797,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":16652,"timestamp":116040945026,"id":12292,"tags":{"url":"/api/trees"},"startTime":1763885619797,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":116040961901,"id":12294,"parentId":12292,"tags":{"url":"/api/trees","memory.rss":"9066975232","memory.heapUsed":"6747115008","memory.heapTotal":"6937337856"},"startTime":1763885619814,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1970,"timestamp":116045092809,"id":12296,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885623944,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":58467,"timestamp":116045080749,"id":12295,"tags":{"url":"/api/trees"},"startTime":1763885623932,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":11,"timestamp":116045140100,"id":12297,"parentId":12295,"tags":{"url":"/api/trees","memory.rss":"9066979328","memory.heapUsed":"6747750488","memory.heapTotal":"6937600000"},"startTime":1763885623992,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":520,"timestamp":116082657623,"id":12299,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885661507,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":22209,"timestamp":116082657304,"id":12298,"tags":{"url":"/api/trees"},"startTime":1763885661507,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":24,"timestamp":116082680202,"id":12300,"parentId":12298,"tags":{"url":"/api/trees","memory.rss":"9066905600","memory.heapUsed":"6748187688","memory.heapTotal":"6939172864"},"startTime":1763885661530,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":3502,"timestamp":116097523422,"id":12302,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885676372,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":17988,"timestamp":116097523101,"id":12301,"tags":{"url":"/api/trees"},"startTime":1763885676372,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":116097541275,"id":12303,"parentId":12301,"tags":{"url":"/api/trees","memory.rss":"9066909696","memory.heapUsed":"6748807080","memory.heapTotal":"6938386432"},"startTime":1763885676390,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":155000,"timestamp":116123318614,"id":12304,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/relationship-test","isPageHidden":true},"startTime":1763885702360,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":149000,"timestamp":116123317675,"id":12305,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/tree","isPageHidden":true},"startTime":1763885702361,"traceId":"96837134d747a51b"},{"name":"client-hmr-latency","duration":157000,"timestamp":116123318074,"id":12306,"parentId":3,"tags":{"updatedModules":["[project]/Documents/go-new/chinese-family-tree/app/page.tsx [app-client]"],"page":"/","isPageHidden":false},"startTime":1763885702388,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":5556,"timestamp":116129910607,"id":12308,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885708758,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":24426,"timestamp":116129910215,"id":12307,"tags":{"url":"/api/trees"},"startTime":1763885708758,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":9,"timestamp":116129935228,"id":12309,"parentId":12307,"tags":{"url":"/api/trees","memory.rss":"9068097536","memory.heapUsed":"6750000488","memory.heapTotal":"6939553792"},"startTime":1763885708783,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":35008,"timestamp":116129981427,"id":12311,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1763885708829,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":991844,"timestamp":116129980845,"id":12310,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885708828,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":18,"timestamp":116130973131,"id":12312,"parentId":12310,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh","memory.rss":"9136164864","memory.heapUsed":"6811037280","memory.heapTotal":"7030091776"},"startTime":1763885709821,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":623,"timestamp":116131392678,"id":12313,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885710240,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":400,"timestamp":116131393374,"id":12314,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885710241,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":373,"timestamp":116131402804,"id":12315,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885710250,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":686,"timestamp":116131403264,"id":12316,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885710251,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":2029,"timestamp":116131411296,"id":12318,"parentId":3,"tags":{"inputPage":"/api/auth/[...nextauth]/route"},"startTime":1763885710259,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":30282,"timestamp":116131410299,"id":12317,"tags":{"url":"/api/auth/session"},"startTime":1763885710258,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":17,"timestamp":116131440843,"id":12319,"parentId":12317,"tags":{"url":"/api/auth/session","memory.rss":"9137500160","memory.heapUsed":"6819439840","memory.heapTotal":"7030091776"},"startTime":1763885710288,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":544,"timestamp":116131457515,"id":12320,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885710305,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":193,"timestamp":116131458084,"id":12321,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885710306,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":357,"timestamp":116131468302,"id":12322,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885710316,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":201,"timestamp":116131468687,"id":12323,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885710316,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":438,"timestamp":116131473413,"id":12324,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885710321,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":390,"timestamp":116131473911,"id":12325,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885710321,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":356,"timestamp":116131481323,"id":12328,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885710329,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":180,"timestamp":116131481724,"id":12329,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885710329,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":3560,"timestamp":116131479219,"id":12327,"parentId":3,"tags":{"inputPage":"/api/auth/[...nextauth]/route"},"startTime":1763885710327,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":2854,"timestamp":116131510843,"id":12331,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/route"},"startTime":1763885710358,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":54539,"timestamp":116131478183,"id":12326,"tags":{"url":"/api/auth/session"},"startTime":1763885710326,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":14,"timestamp":116131532938,"id":12332,"parentId":12326,"tags":{"url":"/api/auth/session","memory.rss":"9142607872","memory.heapUsed":"6813498536","memory.heapTotal":"7034286080"},"startTime":1763885710381,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":210,"timestamp":116131541631,"id":12333,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885710389,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":134,"timestamp":116131541861,"id":12334,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885710389,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":299,"timestamp":116131542871,"id":12335,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885710390,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":172,"timestamp":116131543207,"id":12336,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885710391,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":36120,"timestamp":116131510035,"id":12330,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885710358,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":3,"timestamp":116131546360,"id":12339,"parentId":12330,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh","memory.rss":"9142665216","memory.heapUsed":"6814210768","memory.heapTotal":"7034286080"},"startTime":1763885710394,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":2838,"timestamp":116131544411,"id":12338,"parentId":3,"tags":{"inputPage":"/api/auth/[...nextauth]/route"},"startTime":1763885710392,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":15045,"timestamp":116131544056,"id":12337,"tags":{"url":"/api/auth/session"},"startTime":1763885710392,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":116131559272,"id":12340,"parentId":12337,"tags":{"url":"/api/auth/session","memory.rss":"9142857728","memory.heapUsed":"6815018152","memory.heapTotal":"7034286080"},"startTime":1763885710407,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":346,"timestamp":116131602815,"id":12341,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885710450,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":187,"timestamp":116131603214,"id":12342,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885710451,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":914,"timestamp":116131607462,"id":12343,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885710455,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":339,"timestamp":116131608409,"id":12344,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885710456,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1045,"timestamp":116131610423,"id":12346,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/members/route"},"startTime":1763885710458,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":23794,"timestamp":116131609874,"id":12345,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members"},"startTime":1763885710457,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":5,"timestamp":116131633826,"id":12347,"parentId":12345,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/members","memory.rss":"9143156736","memory.heapUsed":"6817238400","memory.heapTotal":"7034286080"},"startTime":1763885710481,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":625,"timestamp":116131721486,"id":12349,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885710569,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":16336,"timestamp":116131721049,"id":12348,"tags":{"url":"/api/trees"},"startTime":1763885710569,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":116131737533,"id":12350,"parentId":12348,"tags":{"url":"/api/trees","memory.rss":"9143406592","memory.heapUsed":"6818461824","memory.heapTotal":"7034548224"},"startTime":1763885710585,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":185,"timestamp":116131737911,"id":12351,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885710585,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":112,"timestamp":116131738111,"id":12352,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885710586,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":248,"timestamp":116131739992,"id":12353,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885710588,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":239,"timestamp":116131740271,"id":12354,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885710588,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":622,"timestamp":116131741290,"id":12356,"parentId":3,"tags":{"inputPage":"/api/trees/route"},"startTime":1763885710589,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1216,"timestamp":116131746288,"id":12358,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/activity-logs/route"},"startTime":1763885710594,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":36038,"timestamp":116131741006,"id":12355,"tags":{"url":"/api/trees"},"startTime":1763885710589,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":23,"timestamp":116131778365,"id":12359,"parentId":12355,"tags":{"url":"/api/trees","memory.rss":"9143836672","memory.heapUsed":"6820718040","memory.heapTotal":"7035072512"},"startTime":1763885710626,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":40946,"timestamp":116131745857,"id":12357,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10"},"startTime":1763885710593,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":7,"timestamp":116131787100,"id":12360,"parentId":12357,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10","memory.rss":"9143848960","memory.heapUsed":"6820945376","memory.heapTotal":"7035072512"},"startTime":1763885710635,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":601,"timestamp":116131794574,"id":12361,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885710642,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":661,"timestamp":116131795235,"id":12362,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885710643,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":476,"timestamp":116131797701,"id":12363,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885710645,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":213,"timestamp":116131798225,"id":12364,"parentId":3,"tags":{"inputPage":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs"},"startTime":1763885710646,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1671,"timestamp":116131800207,"id":12366,"parentId":3,"tags":{"inputPage":"/api/trees/[treeId]/activity-logs/route"},"startTime":1763885710648,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":29816,"timestamp":116131799592,"id":12365,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10"},"startTime":1763885710647,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":13,"timestamp":116131830237,"id":12367,"parentId":12365,"tags":{"url":"/api/trees/cmib8zhrq0003hhxlvnsi96nh/activity-logs?limit=10","memory.rss":"9144078336","memory.heapUsed":"6822284696","memory.heapTotal":"7035334656"},"startTime":1763885710678,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":1277,"timestamp":116141347993,"id":12369,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1763885720195,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":73355,"timestamp":116141347550,"id":12368,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh"},"startTime":1763885720195,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":4,"timestamp":116141421105,"id":12370,"parentId":12368,"tags":{"url":"/?treeId=cmib8zhrq0003hhxlvnsi96nh","memory.rss":"9147600896","memory.heapUsed":"6818992752","memory.heapTotal":"7038218240"},"startTime":1763885720268,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":423,"timestamp":116141611077,"id":12371,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885720458,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":443,"timestamp":116141611545,"id":12372,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885720459,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":340,"timestamp":116141615994,"id":12373,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885720463,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":343,"timestamp":116141616396,"id":12374,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885720464,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":2206,"timestamp":116141620991,"id":12376,"parentId":3,"tags":{"inputPage":"/api/auth/[...nextauth]/route"},"startTime":1763885720468,"traceId":"96837134d747a51b"},{"name":"handle-request","duration":18034,"timestamp":116141620649,"id":12375,"tags":{"url":"/api/auth/session"},"startTime":1763885720468,"traceId":"96837134d747a51b"},{"name":"memory-usage","duration":6,"timestamp":116141638915,"id":12377,"parentId":12375,"tags":{"url":"/api/auth/session","memory.rss":"9151741952","memory.heapUsed":"6829000704","memory.heapTotal":"7041892352"},"startTime":1763885720486,"traceId":"96837134d747a51b"},{"name":"ensure-page","duration":321,"timestamp":116141652957,"id":12378,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1763885720500,"traceId":"96837134d747a51b"}] diff --git a/app/page.tsx b/app/page.tsx index 320c6a90..80440fe6 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -191,12 +191,6 @@ export default function DashboardPage() { {session && currentTree?.ownerId === session.user?.id && ( )} - - - {(currentTree?.currentUserRole === "OWNER" || currentTree?.currentUserRole === "EDITOR") && (
- + 1 : - + {stats.maleCount > 0 ? (stats.femaleCount / stats.maleCount).toFixed(2) : '0'}
@@ -264,32 +258,32 @@ export default function DashboardPage() { {/* 双色进度条 */}
- - + + 男性 {stats.maleCount} - + 女性 {stats.femaleCount} - +
-
+
0 ? (stats.maleCount / stats.totalMembers * 100) : 0}%` }} > {stats.totalMembers > 0 && stats.maleCount > 0 && ( - + {Math.round(stats.maleCount / stats.totalMembers * 100)}% )}
0 ? (stats.femaleCount / stats.totalMembers * 100) : 0}%` }} > {stats.totalMembers > 0 && stats.femaleCount > 0 && ( - + {Math.round(stats.femaleCount / stats.totalMembers * 100)}% )} @@ -298,7 +292,7 @@ export default function DashboardPage() {
-
+