@moontra/moonui-pro 2.24.12 → 2.25.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -4,7 +4,7 @@ import { twMerge } from 'tailwind-merge';
4
4
  import * as t from 'react';
5
5
  import t__default, { useState, useMemo, useCallback, useRef, useEffect, forwardRef, createContext, useContext, useLayoutEffect, useDebugValue, Component } from 'react';
6
6
  import * as AccordionPrimitive2 from '@radix-ui/react-accordion';
7
- import { Loader2, Play, ExternalLink, ChevronDown, Info, AlertCircle, AlertTriangle, Check, X, MoreHorizontal, Minus, Clock, ChevronUp, Search, Mic, MicOff, Settings, RefreshCw, Zap, ChevronRight, Crown, Circle, ChevronLeft, Plus, Lock, Sparkles, ZoomOut, ZoomIn, Pause, VolumeX, Volume2, Download, Maximize2, Filter, Image as Image$1, Video, RotateCw, Minimize2, BarChart3, Menu, Bell, CheckCheck, CheckCircle, Palette, User, Settings2, LogOut, Edit3, LayoutGrid, Upload, Share2, Save, Phone, Globe, Eye, CheckCircle2, RotateCcw, Copy, Share, Trash2, CreditCard, XCircle, HelpCircle, Bold as Bold$1, Italic as Italic$1, Underline as Underline$1, Strikethrough, AlignLeft, AlignCenter, AlignRight, AlignJustify, List, ListOrdered, Quote, Code as Code$1, Link as Link$1, Undo, Redo, Edit, GripVertical, Type, Heading1, Heading2, Heading3, CheckSquare, Highlighter, Link2, Table as Table$1, Wand2, Maximize, FileText, Briefcase, MessageSquare, Heart, GraduationCap, Languages, Lightbulb, MoreVertical, TrendingUp, Activity, BellOff, CalendarIcon, DollarSign, Users, Map as Map$1, Calendar as Calendar$1, Target, Music, Archive, File, FileSpreadsheet, FileJson, FileDown, ArrowUp, ArrowDown, ArrowUpDown, ChevronsLeft, ChevronsRight, Star, Shield, Award, Gem, Flame, Repeat, MapPin, Move, EyeOff, Timer, Square, Cpu, GitBranch, ArrowRight, Trash, MessageCircle, Paperclip, Printer, TrendingDown, ArrowDownRight, ArrowUpRight, Grip, Unlock, Github, Server, Monitor, MemoryStick, HardDrive, Network, Columns, Pin, Sun, Moon, Send, Tag, Flag, Trophy, GitFork, Package } from 'lucide-react';
7
+ import { Loader2, Play, ExternalLink, ChevronDown, Info, AlertCircle, AlertTriangle, Check, X, MoreHorizontal, Minus, Clock, ChevronUp, Search, Mic, MicOff, Settings, RefreshCw, Zap, ChevronRight, Crown, Circle, ChevronLeft, Plus, Lock, Sparkles, ZoomOut, ZoomIn, Pause, VolumeX, Volume2, Download, Maximize2, Filter, Image as Image$1, Video, RotateCw, Minimize2, BarChart3, Menu, Bell, CheckCheck, CheckCircle, Palette, User, Settings2, LogOut, Edit3, LayoutGrid, Upload, Share2, Save, Phone, Globe, Eye, CheckCircle2, RotateCcw, Copy, Share, Trash2, CreditCard, XCircle, HelpCircle, Bold as Bold$1, Italic as Italic$1, Underline as Underline$1, Strikethrough, AlignLeft, AlignCenter, AlignRight, AlignJustify, List, ListOrdered, Quote, Code as Code$1, Link as Link$1, Undo, Redo, Edit, GripVertical, Type, Heading1, Heading2, Heading3, CheckSquare, Highlighter, Link2, Table as Table$1, Wand2, Maximize, FileText, Briefcase, MessageSquare, Heart, GraduationCap, Languages, Lightbulb, MoreVertical, TrendingUp, Activity, BellOff, Target, ArrowUpRight, ArrowDownRight, CalendarIcon, MapPin, Navigation, ArrowUp, ArrowDown, ArrowUpDown, Calendar as Calendar$1, DollarSign, Users, Map as Map$1, Music, Archive, File, FileSpreadsheet, FileJson, FileDown, ChevronsLeft, ChevronsRight, Star, Shield, Award, Gem, Flame, Repeat, Move, EyeOff, Timer, Square, Cpu, GitBranch, ArrowRight, Trash, MessageCircle, Paperclip, Printer, TrendingDown, Grip, Unlock, Github, Server, Monitor, MemoryStick, HardDrive, Network, Columns, Pin, Sun, Moon, Send, Tag, Flag, Trophy, GitFork, Package } from 'lucide-react';
8
8
  import { cva } from 'class-variance-authority';
9
9
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
10
10
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
@@ -1725,32 +1725,6 @@ var require_core = __commonJS({
1725
1725
  highlight.default = highlight;
1726
1726
  }
1727
1727
  });
1728
-
1729
- // #style-inject:#style-inject
1730
- function styleInject(css2, { insertAt } = {}) {
1731
- if (!css2 || typeof document === "undefined")
1732
- return;
1733
- const head = document.head || document.getElementsByTagName("head")[0];
1734
- const style2 = document.createElement("style");
1735
- style2.type = "text/css";
1736
- if (insertAt === "top") {
1737
- if (head.firstChild) {
1738
- head.insertBefore(style2, head.firstChild);
1739
- } else {
1740
- head.appendChild(style2);
1741
- }
1742
- } else {
1743
- head.appendChild(style2);
1744
- }
1745
- if (style2.styleSheet) {
1746
- style2.styleSheet.cssText = css2;
1747
- } else {
1748
- style2.appendChild(document.createTextNode(css2));
1749
- }
1750
- }
1751
-
1752
- // src/styles/index.css
1753
- styleInject('*,\n::before,\n::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n*,\n::before,\n::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: #e5e7eb;\n}\n::before,\n::after {\n --tw-content: "";\n}\nhtml,\n:host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: var(--font-sans);\n font-feature-settings: normal;\n font-variation-settings: normal;\n -webkit-tap-highlight-color: transparent;\n}\nbody {\n margin: 0;\n line-height: inherit;\n}\nhr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\na {\n color: inherit;\n text-decoration: inherit;\n}\nb,\nstrong {\n font-weight: bolder;\n}\ncode,\nkbd,\nsamp,\npre {\n font-family: var(--font-mono);\n font-feature-settings: normal;\n font-variation-settings: normal;\n font-size: 1em;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\ninput:where([type="button"]),\ninput:where([type="reset"]),\ninput:where([type="submit"]) {\n -webkit-appearance: button;\n background-color: transparent;\n background-image: none;\n}\n:-moz-focusring {\n outline: auto;\n}\n:-moz-ui-invalid {\n box-shadow: none;\n}\nprogress {\n vertical-align: baseline;\n}\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n[type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\nsummary {\n display: list-item;\n}\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\nfieldset {\n margin: 0;\n padding: 0;\n}\nlegend {\n padding: 0;\n}\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\ndialog {\n padding: 0;\n}\ntextarea {\n resize: vertical;\n}\ninput::-moz-placeholder,\ntextarea::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\nbutton,\n[role=button] {\n cursor: pointer;\n}\n:disabled {\n cursor: default;\n}\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n vertical-align: middle;\n}\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n[hidden]:where(:not([hidden="until-found"])) {\n display: none;\n}\n.\\!container {\n width: 100% !important;\n margin-right: auto !important;\n margin-left: auto !important;\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n.container {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: 1rem;\n padding-left: 1rem;\n}\n@media (min-width: 640px) {\n .\\!container {\n max-width: 640px !important;\n padding-right: 2rem !important;\n padding-left: 2rem !important;\n }\n .container {\n max-width: 640px;\n padding-right: 2rem;\n padding-left: 2rem;\n }\n}\n@media (min-width: 768px) {\n .\\!container {\n max-width: 768px !important;\n }\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n .\\!container {\n max-width: 1024px !important;\n padding-right: 4rem !important;\n padding-left: 4rem !important;\n }\n .container {\n max-width: 1024px;\n padding-right: 4rem;\n padding-left: 4rem;\n }\n}\n@media (min-width: 1280px) {\n .\\!container {\n max-width: 1280px !important;\n padding-right: 5rem !important;\n padding-left: 5rem !important;\n }\n .container {\n max-width: 1280px;\n padding-right: 5rem;\n padding-left: 5rem;\n }\n}\n@media (min-width: 1536px) {\n .\\!container {\n max-width: 1536px !important;\n padding-right: 6rem !important;\n padding-left: 6rem !important;\n }\n .container {\n max-width: 1536px;\n padding-right: 6rem;\n padding-left: 6rem;\n }\n}\n.dark .moonui-toggle-base {\n color: hsl(var(--foreground));\n}\n.dark .moonui-toggle-default:hover {\n background-color: hsl(var(--muted));\n color: hsl(var(--muted-foreground));\n}\n.dark .moonui-toggle-default[data-state=on] {\n background-color: hsl(var(--accent));\n color: hsl(var(--accent-foreground));\n}\n.dark .moonui-toggle-secondary:hover {\n background-color: hsl(var(--accent) / 0.2);\n color: hsl(var(--accent-foreground));\n}\n.dark .moonui-toggle-secondary[data-state=on] {\n background-color: hsl(var(--accent));\n color: hsl(var(--accent-foreground));\n}\n.moonui-data-table-header {\n border-bottom-width: 1px;\n background-color: hsl(var(--muted) / 0.5);\n}\n.moonui-data-table-row {\n border-bottom-width: 1px;\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.moonui-data-table-row:hover {\n background-color: hsl(var(--muted) / 0.5);\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.pointer-events-auto {\n pointer-events: auto;\n}\n.visible {\n visibility: visible;\n}\n.invisible {\n visibility: hidden;\n}\n.collapse {\n visibility: collapse;\n}\n.static {\n position: static;\n}\n.\\!fixed {\n position: fixed !important;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.\\!sticky {\n position: sticky !important;\n}\n.sticky {\n position: sticky;\n}\n.\\!inset-4 {\n inset: 1rem !important;\n}\n.-inset-\\[2px\\] {\n inset: -2px;\n}\n.inset-0 {\n inset: 0px;\n}\n.inset-4 {\n inset: 1rem;\n}\n.inset-x-0 {\n left: 0px;\n right: 0px;\n}\n.inset-y-0 {\n top: 0px;\n bottom: 0px;\n}\n.-bottom-1 {\n bottom: -0.25rem;\n}\n.-bottom-3 {\n bottom: -0.75rem;\n}\n.-left-1 {\n left: -0.25rem;\n}\n.-left-12 {\n left: -3rem;\n}\n.-left-2 {\n left: -0.5rem;\n}\n.-right-1 {\n right: -0.25rem;\n}\n.-right-2 {\n right: -0.5rem;\n}\n.-top-1 {\n top: -0.25rem;\n}\n.-top-3 {\n top: -0.75rem;\n}\n.-top-8 {\n top: -2rem;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.bottom-2 {\n bottom: 0.5rem;\n}\n.bottom-20 {\n bottom: 5rem;\n}\n.bottom-3 {\n bottom: 0.75rem;\n}\n.bottom-4 {\n bottom: 1rem;\n}\n.bottom-8 {\n bottom: 2rem;\n}\n.bottom-\\[5\\%\\] {\n bottom: 5%;\n}\n.left-0 {\n left: 0px;\n}\n.left-1\\/2 {\n left: 50%;\n}\n.left-2 {\n left: 0.5rem;\n}\n.left-3 {\n left: 0.75rem;\n}\n.left-4 {\n left: 1rem;\n}\n.left-6 {\n left: 1.5rem;\n}\n.left-7 {\n left: 1.75rem;\n}\n.left-\\[50\\%\\] {\n left: 50%;\n}\n.right-0 {\n right: 0px;\n}\n.right-1 {\n right: 0.25rem;\n}\n.right-2 {\n right: 0.5rem;\n}\n.right-3 {\n right: 0.75rem;\n}\n.right-4 {\n right: 1rem;\n}\n.top-0 {\n top: 0px;\n}\n.top-1 {\n top: 0.25rem;\n}\n.top-1\\/2 {\n top: 50%;\n}\n.top-12 {\n top: 3rem;\n}\n.top-2 {\n top: 0.5rem;\n}\n.top-2\\.5 {\n top: 0.625rem;\n}\n.top-3 {\n top: 0.75rem;\n}\n.top-4 {\n top: 1rem;\n}\n.top-8 {\n top: 2rem;\n}\n.top-\\[1px\\] {\n top: 1px;\n}\n.top-\\[5\\%\\] {\n top: 5%;\n}\n.top-\\[50\\%\\] {\n top: 50%;\n}\n.top-\\[60\\%\\] {\n top: 60%;\n}\n.top-auto {\n top: auto;\n}\n.top-full {\n top: 100%;\n}\n.isolate {\n isolation: isolate;\n}\n.\\!z-50 {\n z-index: 50 !important;\n}\n.-z-10 {\n z-index: -10;\n}\n.z-0 {\n z-index: 0;\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-40 {\n z-index: 40;\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.z-\\[1\\] {\n z-index: 1;\n}\n.z-\\[9999\\] {\n z-index: 9999;\n}\n.col-span-full {\n grid-column: 1 / -1;\n}\n.float-left {\n float: left;\n}\n.clear-both {\n clear: both;\n}\n.-mx-1 {\n margin-left: -0.25rem;\n margin-right: -0.25rem;\n}\n.-mx-2 {\n margin-left: -0.5rem;\n margin-right: -0.5rem;\n}\n.-mx-4 {\n margin-left: -1rem;\n margin-right: -1rem;\n}\n.-mx-6 {\n margin-left: -1.5rem;\n margin-right: -1.5rem;\n}\n.-mx-px {\n margin-left: -1px;\n margin-right: -1px;\n}\n.mx-1 {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n}\n.mx-10 {\n margin-left: 2.5rem;\n margin-right: 2.5rem;\n}\n.mx-3 {\n margin-left: 0.75rem;\n margin-right: 0.75rem;\n}\n.mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.my-1 {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n}\n.my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.my-6 {\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n}\n.-mb-4 {\n margin-bottom: -1rem;\n}\n.-ml-0\\.5 {\n margin-left: -0.125rem;\n}\n.-mr-1 {\n margin-right: -0.25rem;\n}\n.-mr-2 {\n margin-right: -0.5rem;\n}\n.-mt-4 {\n margin-top: -1rem;\n}\n.-mt-px {\n margin-top: -1px;\n}\n.mb-1 {\n margin-bottom: 0.25rem;\n}\n.mb-12 {\n margin-bottom: 3rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mb-3 {\n margin-bottom: 0.75rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n.mb-8 {\n margin-bottom: 2rem;\n}\n.ml-1 {\n margin-left: 0.25rem;\n}\n.ml-16 {\n margin-left: 4rem;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.ml-3 {\n margin-left: 0.75rem;\n}\n.ml-4 {\n margin-left: 1rem;\n}\n.ml-6 {\n margin-left: 1.5rem;\n}\n.ml-auto {\n margin-left: auto;\n}\n.mr-1 {\n margin-right: 0.25rem;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.mr-3 {\n margin-right: 0.75rem;\n}\n.mr-4 {\n margin-right: 1rem;\n}\n.mr-8 {\n margin-right: 2rem;\n}\n.mr-auto {\n margin-right: auto;\n}\n.mt-0 {\n margin-top: 0px;\n}\n.mt-0\\.5 {\n margin-top: 0.125rem;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.mt-1\\.5 {\n margin-top: 0.375rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mt-3 {\n margin-top: 0.75rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.mt-6 {\n margin-top: 1.5rem;\n}\n.mt-8 {\n margin-top: 2rem;\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.inline-block {\n display: inline-block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.\\!table {\n display: table !important;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.contents {\n display: contents;\n}\n.hidden {\n display: none;\n}\n.aspect-\\[3\\/4\\] {\n aspect-ratio: 3/4;\n}\n.aspect-square {\n aspect-ratio: 1 / 1;\n}\n.aspect-video {\n aspect-ratio: 16 / 9;\n}\n.\\!h-auto {\n height: auto !important;\n}\n.h-0 {\n height: 0px;\n}\n.h-0\\.5 {\n height: 0.125rem;\n}\n.h-1 {\n height: 0.25rem;\n}\n.h-1\\.5 {\n height: 0.375rem;\n}\n.h-1\\/2 {\n height: 50%;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-11 {\n height: 2.75rem;\n}\n.h-12 {\n height: 3rem;\n}\n.h-14 {\n height: 3.5rem;\n}\n.h-16 {\n height: 4rem;\n}\n.h-2 {\n height: 0.5rem;\n}\n.h-2\\.5 {\n height: 0.625rem;\n}\n.h-20 {\n height: 5rem;\n}\n.h-24 {\n height: 6rem;\n}\n.h-3 {\n height: 0.75rem;\n}\n.h-3\\.5 {\n height: 0.875rem;\n}\n.h-32 {\n height: 8rem;\n}\n.h-36 {\n height: 9rem;\n}\n.h-4 {\n height: 1rem;\n}\n.h-48 {\n height: 12rem;\n}\n.h-5 {\n height: 1.25rem;\n}\n.h-6 {\n height: 1.5rem;\n}\n.h-64 {\n height: 16rem;\n}\n.h-7 {\n height: 1.75rem;\n}\n.h-8 {\n height: 2rem;\n}\n.h-9 {\n height: 2.25rem;\n}\n.h-96 {\n height: 24rem;\n}\n.h-\\[0\\.5px\\] {\n height: 0.5px;\n}\n.h-\\[1px\\] {\n height: 1px;\n}\n.h-\\[2px\\] {\n height: 2px;\n}\n.h-\\[30vh\\] {\n height: 30vh;\n}\n.h-\\[400px\\] {\n height: 400px;\n}\n.h-\\[50vh\\] {\n height: 50vh;\n}\n.h-\\[60\\%\\] {\n height: 60%;\n}\n.h-\\[600px\\] {\n height: 600px;\n}\n.h-\\[65\\%\\] {\n height: 65%;\n}\n.h-\\[70vh\\] {\n height: 70vh;\n}\n.h-\\[95vh\\] {\n height: 95vh;\n}\n.h-\\[calc\\(100vh-200px\\)\\] {\n height: calc(100vh - 200px);\n}\n.h-\\[calc\\(100vh-300px\\)\\] {\n height: calc(100vh - 300px);\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.max-h-32 {\n max-height: 8rem;\n}\n.max-h-64 {\n max-height: 16rem;\n}\n.max-h-96 {\n max-height: 24rem;\n}\n.max-h-\\[300px\\] {\n max-height: 300px;\n}\n.max-h-\\[400px\\] {\n max-height: 400px;\n}\n.max-h-\\[500px\\] {\n max-height: 500px;\n}\n.max-h-\\[600px\\] {\n max-height: 600px;\n}\n.max-h-\\[60vh\\] {\n max-height: 60vh;\n}\n.max-h-\\[700px\\] {\n max-height: 700px;\n}\n.max-h-\\[80vh\\] {\n max-height: 80vh;\n}\n.max-h-\\[90vh\\] {\n max-height: 90vh;\n}\n.max-h-\\[95vh\\] {\n max-height: 95vh;\n}\n.max-h-\\[calc\\(90vh-200px\\)\\] {\n max-height: calc(90vh - 200px);\n}\n.max-h-full {\n max-height: 100%;\n}\n.max-h-none {\n max-height: none;\n}\n.max-h-screen {\n max-height: 100vh;\n}\n.min-h-0 {\n min-height: 0px;\n}\n.min-h-10 {\n min-height: 2.5rem;\n}\n.min-h-11 {\n min-height: 2.75rem;\n}\n.min-h-12 {\n min-height: 3rem;\n}\n.min-h-7 {\n min-height: 1.75rem;\n}\n.min-h-8 {\n min-height: 2rem;\n}\n.min-h-9 {\n min-height: 2.25rem;\n}\n.min-h-\\[100px\\] {\n min-height: 100px;\n}\n.min-h-\\[120px\\] {\n min-height: 120px;\n}\n.min-h-\\[2\\.5rem\\] {\n min-height: 2.5rem;\n}\n.min-h-\\[200px\\] {\n min-height: 200px;\n}\n.min-h-\\[20px\\] {\n min-height: 20px;\n}\n.min-h-\\[3\\.5rem\\] {\n min-height: 3.5rem;\n}\n.min-h-\\[300px\\] {\n min-height: 300px;\n}\n.min-h-\\[3rem\\] {\n min-height: 3rem;\n}\n.min-h-\\[4\\.5rem\\] {\n min-height: 4.5rem;\n}\n.min-h-\\[400px\\] {\n min-height: 400px;\n}\n.min-h-\\[40px\\] {\n min-height: 40px;\n}\n.min-h-\\[4rem\\] {\n min-height: 4rem;\n}\n.min-h-\\[500px\\] {\n min-height: 500px;\n}\n.min-h-\\[50px\\] {\n min-height: 50px;\n}\n.min-h-\\[600px\\] {\n min-height: 600px;\n}\n.min-h-\\[60px\\] {\n min-height: 60px;\n}\n.min-h-\\[80px\\] {\n min-height: 80px;\n}\n.min-h-full {\n min-height: 100%;\n}\n.min-h-screen {\n min-height: 100vh;\n}\n.\\!w-auto {\n width: auto !important;\n}\n.w-0 {\n width: 0px;\n}\n.w-0\\.5 {\n width: 0.125rem;\n}\n.w-1 {\n width: 0.25rem;\n}\n.w-1\\.5 {\n width: 0.375rem;\n}\n.w-1\\/2 {\n width: 50%;\n}\n.w-10 {\n width: 2.5rem;\n}\n.w-11 {\n width: 2.75rem;\n}\n.w-12 {\n width: 3rem;\n}\n.w-14 {\n width: 3.5rem;\n}\n.w-16 {\n width: 4rem;\n}\n.w-2 {\n width: 0.5rem;\n}\n.w-2\\.5 {\n width: 0.625rem;\n}\n.w-2\\/3 {\n width: 66.666667%;\n}\n.w-20 {\n width: 5rem;\n}\n.w-24 {\n width: 6rem;\n}\n.w-28 {\n width: 7rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-3\\.5 {\n width: 0.875rem;\n}\n.w-3\\/4 {\n width: 75%;\n}\n.w-32 {\n width: 8rem;\n}\n.w-36 {\n width: 9rem;\n}\n.w-4 {\n width: 1rem;\n}\n.w-48 {\n width: 12rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.w-56 {\n width: 14rem;\n}\n.w-6 {\n width: 1.5rem;\n}\n.w-64 {\n width: 16rem;\n}\n.w-7 {\n width: 1.75rem;\n}\n.w-72 {\n width: 18rem;\n}\n.w-8 {\n width: 2rem;\n}\n.w-80 {\n width: 20rem;\n}\n.w-9 {\n width: 2.25rem;\n}\n.w-96 {\n width: 24rem;\n}\n.w-\\[0\\.5px\\] {\n width: 0.5px;\n}\n.w-\\[100px\\] {\n width: 100px;\n}\n.w-\\[140px\\] {\n width: 140px;\n}\n.w-\\[150px\\] {\n width: 150px;\n}\n.w-\\[1px\\] {\n width: 1px;\n}\n.w-\\[280px\\] {\n width: 280px;\n}\n.w-\\[2px\\] {\n width: 2px;\n}\n.w-\\[380px\\] {\n width: 380px;\n}\n.w-\\[400px\\] {\n width: 400px;\n}\n.w-\\[480px\\] {\n width: 480px;\n}\n.w-\\[60\\%\\] {\n width: 60%;\n}\n.w-\\[65\\%\\] {\n width: 65%;\n}\n.w-\\[70px\\] {\n width: 70px;\n}\n.w-\\[90vw\\] {\n width: 90vw;\n}\n.w-\\[calc\\(100\\%-1\\.5rem\\)\\] {\n width: calc(100% - 1.5rem);\n}\n.w-auto {\n width: auto;\n}\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.w-full {\n width: 100%;\n}\n.w-max {\n width: -moz-max-content;\n width: max-content;\n}\n.w-px {\n width: 1px;\n}\n.w-screen {\n width: 100vw;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.min-w-32 {\n min-width: 8rem;\n}\n.min-w-\\[120px\\] {\n min-width: 120px;\n}\n.min-w-\\[12rem\\] {\n min-width: 12rem;\n}\n.min-w-\\[140px\\] {\n min-width: 140px;\n}\n.min-w-\\[16rem\\] {\n min-width: 16rem;\n}\n.min-w-\\[1rem\\] {\n min-width: 1rem;\n}\n.min-w-\\[200px\\] {\n min-width: 200px;\n}\n.min-w-\\[20rem\\] {\n min-width: 20rem;\n}\n.min-w-\\[300px\\] {\n min-width: 300px;\n}\n.min-w-\\[4px\\] {\n min-width: 4px;\n}\n.min-w-\\[6rem\\] {\n min-width: 6rem;\n}\n.min-w-\\[8rem\\] {\n min-width: 8rem;\n}\n.min-w-\\[95vw\\] {\n min-width: 95vw;\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: -moz-fit-content;\n min-width: fit-content;\n}\n.max-w-2xl {\n max-width: 42rem;\n}\n.max-w-4xl {\n max-width: 56rem;\n}\n.max-w-6xl {\n max-width: 72rem;\n}\n.max-w-\\[1024px\\] {\n max-width: 1024px;\n}\n.max-w-\\[1280px\\] {\n max-width: 1280px;\n}\n.max-w-\\[1536px\\] {\n max-width: 1536px;\n}\n.max-w-\\[20px\\] {\n max-width: 20px;\n}\n.max-w-\\[280px\\] {\n max-width: 280px;\n}\n.max-w-\\[360px\\] {\n max-width: 360px;\n}\n.max-w-\\[480px\\] {\n max-width: 480px;\n}\n.max-w-\\[520px\\] {\n max-width: 520px;\n}\n.max-w-\\[680px\\] {\n max-width: 680px;\n}\n.max-w-\\[80vw\\] {\n max-width: 80vw;\n}\n.max-w-\\[860px\\] {\n max-width: 860px;\n}\n.max-w-\\[90vw\\] {\n max-width: 90vw;\n}\n.max-w-\\[95vw\\] {\n max-width: 95vw;\n}\n.max-w-full {\n max-width: 100%;\n}\n.max-w-lg {\n max-width: 32rem;\n}\n.max-w-max {\n max-width: -moz-max-content;\n max-width: max-content;\n}\n.max-w-md {\n max-width: 28rem;\n}\n.max-w-none {\n max-width: none;\n}\n.max-w-screen-2xl {\n max-width: 1536px;\n}\n.max-w-screen-lg {\n max-width: 1024px;\n}\n.max-w-screen-md {\n max-width: 768px;\n}\n.max-w-screen-sm {\n max-width: 640px;\n}\n.max-w-screen-xl {\n max-width: 1280px;\n}\n.max-w-sm {\n max-width: 24rem;\n}\n.max-w-xs {\n max-width: 20rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.flex-grow {\n flex-grow: 1;\n}\n.grow {\n flex-grow: 1;\n}\n.caption-bottom {\n caption-side: bottom;\n}\n.-translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-translate-x-2 {\n --tw-translate-x: -0.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-translate-x-full {\n --tw-translate-x: -100%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-translate-y-0 {\n --tw-translate-y: -0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-translate-y-2 {\n --tw-translate-y: -0.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-translate-y-3 {\n --tw-translate-y: -0.75rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-translate-y-full {\n --tw-translate-y: -100%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-x-0 {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-y-0 {\n --tw-translate-y: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-y-3 {\n --tw-translate-y: 0.75rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-rotate-90 {\n --tw-rotate: -90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.rotate-45 {\n --tw-rotate: 45deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.rotate-\\[-15deg\\] {\n --tw-rotate: -15deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.rotate-\\[15deg\\] {\n --tw-rotate: 15deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.scale-105 {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.scale-110 {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.scale-\\[1\\.02\\] {\n --tw-scale-x: 1.02;\n --tw-scale-y: 1.02;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.scale-x-150 {\n --tw-scale-x: 1.5;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n@keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\n }\n 50% {\n transform: none;\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n}\n.animate-bounce {\n animation: bounce 1s infinite;\n}\n@keyframes ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n.animate-ping {\n animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\n}\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n.animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n.animate-spin {\n animation: spin 1s linear infinite;\n}\n.cursor-crosshair {\n cursor: crosshair;\n}\n.cursor-default {\n cursor: default;\n}\n.cursor-grab {\n cursor: grab;\n}\n.cursor-grabbing {\n cursor: grabbing;\n}\n.cursor-help {\n cursor: help;\n}\n.cursor-move {\n cursor: move;\n}\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-text {\n cursor: text;\n}\n.cursor-wait {\n cursor: wait;\n}\n.touch-none {\n touch-action: none;\n}\n.touch-pan-y {\n --tw-pan-y: pan-y;\n touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.resize-none {\n resize: none;\n}\n.resize {\n resize: both;\n}\n.snap-x {\n scroll-snap-type: x var(--tw-scroll-snap-strictness);\n}\n.snap-mandatory {\n --tw-scroll-snap-strictness: mandatory;\n}\n.list-none {\n list-style-type: none;\n}\n.columns-1 {\n -moz-columns: 1;\n columns: 1;\n}\n.break-inside-avoid {\n -moz-column-break-inside: avoid;\n break-inside: avoid;\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-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n}\n.grid-cols-8 {\n grid-template-columns: repeat(8, minmax(0, 1fr));\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-col-reverse {\n flex-direction: column-reverse;\n}\n.flex-wrap {\n flex-wrap: wrap;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-end {\n align-items: flex-end;\n}\n.items-center {\n align-items: center;\n}\n.justify-start {\n justify-content: flex-start;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-0 {\n gap: 0px;\n}\n.gap-0\\.5 {\n gap: 0.125rem;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-1\\.5 {\n gap: 0.375rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.gap-6 {\n gap: 1.5rem;\n}\n.gap-8 {\n gap: 2rem;\n}\n.gap-px {\n gap: 1px;\n}\n.-space-x-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(-0.25rem * var(--tw-space-x-reverse));\n margin-left: calc(-0.25rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.-space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(-0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(-0.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.-space-x-3 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(-0.75rem * var(--tw-space-x-reverse));\n margin-left: calc(-0.75rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.25rem * var(--tw-space-x-reverse));\n margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-x-6 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(1.5rem * var(--tw-space-x-reverse));\n margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-y-0 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0px * var(--tw-space-y-reverse));\n}\n.space-y-0\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));\n}\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.space-y-2\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));\n}\n.space-y-3 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\n}\n.space-y-8 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(2rem * var(--tw-space-y-reverse));\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-visible {\n overflow: visible;\n}\n.overflow-x-auto {\n overflow-x: auto;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n.overscroll-contain {\n overscroll-behavior: contain;\n}\n.scroll-smooth {\n scroll-behavior: smooth;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.whitespace-pre-wrap {\n white-space: pre-wrap;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-2xl {\n border-radius: 1rem;\n}\n.rounded-3xl {\n border-radius: 1.5rem;\n}\n.rounded-\\[inherit\\] {\n border-radius: inherit;\n}\n.rounded-\\[var\\(--login-border-radius\\)\\] {\n border-radius: var(--login-border-radius);\n}\n.rounded-full {\n border-radius: 9999px;\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: 0px;\n}\n.rounded-sm {\n border-radius: calc(var(--radius) - 4px);\n}\n.rounded-xl {\n border-radius: 0.75rem;\n}\n.rounded-b-\\[20px\\] {\n border-bottom-right-radius: 20px;\n border-bottom-left-radius: 20px;\n}\n.rounded-b-lg {\n border-bottom-right-radius: var(--radius);\n border-bottom-left-radius: var(--radius);\n}\n.rounded-l-\\[20px\\] {\n border-top-left-radius: 20px;\n border-bottom-left-radius: 20px;\n}\n.rounded-l-none {\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n.rounded-r-\\[20px\\] {\n border-top-right-radius: 20px;\n border-bottom-right-radius: 20px;\n}\n.rounded-r-none {\n border-top-right-radius: 0px;\n border-bottom-right-radius: 0px;\n}\n.rounded-t {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.rounded-t-\\[20px\\] {\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n}\n.rounded-t-lg {\n border-top-left-radius: var(--radius);\n border-top-right-radius: var(--radius);\n}\n.rounded-t-sm {\n border-top-left-radius: calc(var(--radius) - 4px);\n border-top-right-radius: calc(var(--radius) - 4px);\n}\n.rounded-tl-sm {\n border-top-left-radius: calc(var(--radius) - 4px);\n}\n.border {\n border-width: 1px;\n}\n.border-0 {\n border-width: 0px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-4 {\n border-width: 4px;\n}\n.border-x {\n border-left-width: 1px;\n border-right-width: 1px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-b-0 {\n border-bottom-width: 0px;\n}\n.border-b-2 {\n border-bottom-width: 2px;\n}\n.border-l {\n border-left-width: 1px;\n}\n.border-l-0 {\n border-left-width: 0px;\n}\n.border-l-2 {\n border-left-width: 2px;\n}\n.border-l-4 {\n border-left-width: 4px;\n}\n.border-l-\\[0\\.5px\\] {\n border-left-width: 0.5px;\n}\n.border-r {\n border-right-width: 1px;\n}\n.border-r-0 {\n border-right-width: 0px;\n}\n.border-t {\n border-top-width: 1px;\n}\n.border-t-0 {\n border-top-width: 0px;\n}\n.border-t-2 {\n border-top-width: 2px;\n}\n.border-t-\\[0\\.5px\\] {\n border-top-width: 0.5px;\n}\n.border-dashed {\n border-style: dashed;\n}\n.border-dotted {\n border-style: dotted;\n}\n.border-none {\n border-style: none;\n}\n.border-accent {\n --tw-border-opacity: 1;\n border-color: hsl(var(--accent) / var(--tw-border-opacity, 1));\n}\n.border-background {\n --tw-border-opacity: 1;\n border-color: hsl(var(--background) / var(--tw-border-opacity, 1));\n}\n.border-blue-200 {\n --tw-border-opacity: 1;\n border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));\n}\n.border-blue-500\\/30 {\n border-color: rgb(59 130 246 / 0.3);\n}\n.border-blue-600 {\n --tw-border-opacity: 1;\n border-color: rgb(37 99 235 / var(--tw-border-opacity, 1));\n}\n.border-border {\n --tw-border-opacity: 1;\n border-color: hsl(var(--border) / var(--tw-border-opacity, 1));\n}\n.border-border\\/40 {\n border-color: hsl(var(--border) / 0.4);\n}\n.border-border\\/50 {\n border-color: hsl(var(--border) / 0.5);\n}\n.border-border\\/60 {\n border-color: hsl(var(--border) / 0.6);\n}\n.border-current {\n border-color: currentColor;\n}\n.border-destructive {\n --tw-border-opacity: 1;\n border-color: hsl(var(--destructive) / var(--tw-border-opacity, 1));\n}\n.border-destructive\\/20 {\n border-color: hsl(var(--destructive) / 0.2);\n}\n.border-destructive\\/30 {\n border-color: hsl(var(--destructive) / 0.3);\n}\n.border-destructive\\/50 {\n border-color: hsl(var(--destructive) / 0.5);\n}\n.border-error {\n --tw-border-opacity: 1;\n border-color: hsl(var(--error) / var(--tw-border-opacity, 1));\n}\n.border-error\\/20 {\n border-color: hsl(var(--error) / 0.2);\n}\n.border-foreground {\n --tw-border-opacity: 1;\n border-color: hsl(var(--foreground) / var(--tw-border-opacity, 1));\n}\n.border-gray-200 {\n --tw-border-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\n}\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.border-gray-500 {\n --tw-border-opacity: 1;\n border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));\n}\n.border-gray-900 {\n --tw-border-opacity: 1;\n border-color: rgb(17 24 39 / var(--tw-border-opacity, 1));\n}\n.border-green-200 {\n --tw-border-opacity: 1;\n border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));\n}\n.border-green-400 {\n --tw-border-opacity: 1;\n border-color: rgb(74 222 128 / var(--tw-border-opacity, 1));\n}\n.border-green-500\\/20 {\n border-color: rgb(34 197 94 / 0.2);\n}\n.border-green-600 {\n --tw-border-opacity: 1;\n border-color: rgb(22 163 74 / var(--tw-border-opacity, 1));\n}\n.border-input {\n --tw-border-opacity: 1;\n border-color: hsl(var(--input) / var(--tw-border-opacity, 1));\n}\n.border-muted {\n --tw-border-opacity: 1;\n border-color: hsl(var(--muted) / var(--tw-border-opacity, 1));\n}\n.border-muted-foreground {\n --tw-border-opacity: 1;\n border-color: hsl(var(--muted-foreground) / var(--tw-border-opacity, 1));\n}\n.border-muted-foreground\\/20 {\n border-color: hsl(var(--muted-foreground) / 0.2);\n}\n.border-muted-foreground\\/25 {\n border-color: hsl(var(--muted-foreground) / 0.25);\n}\n.border-muted-foreground\\/50 {\n border-color: hsl(var(--muted-foreground) / 0.5);\n}\n.border-orange-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 215 170 / var(--tw-border-opacity, 1));\n}\n.border-primary {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.border-primary\\/20 {\n border-color: hsl(var(--primary) / 0.2);\n}\n.border-primary\\/30 {\n border-color: hsl(var(--primary) / 0.3);\n}\n.border-primary\\/50 {\n border-color: hsl(var(--primary) / 0.5);\n}\n.border-purple-200 {\n --tw-border-opacity: 1;\n border-color: rgb(233 213 255 / var(--tw-border-opacity, 1));\n}\n.border-purple-600 {\n --tw-border-opacity: 1;\n border-color: rgb(147 51 234 / var(--tw-border-opacity, 1));\n}\n.border-red-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));\n}\n.border-red-500 {\n --tw-border-opacity: 1;\n border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));\n}\n.border-red-500\\/20 {\n border-color: rgb(239 68 68 / 0.2);\n}\n.border-red-600 {\n --tw-border-opacity: 1;\n border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));\n}\n.border-secondary {\n --tw-border-opacity: 1;\n border-color: hsl(var(--secondary) / var(--tw-border-opacity, 1));\n}\n.border-secondary\\/20 {\n border-color: hsl(var(--secondary) / 0.2);\n}\n.border-slate-600 {\n --tw-border-opacity: 1;\n border-color: rgb(71 85 105 / var(--tw-border-opacity, 1));\n}\n.border-success {\n --tw-border-opacity: 1;\n border-color: hsl(var(--success) / var(--tw-border-opacity, 1));\n}\n.border-success\\/30 {\n border-color: hsl(var(--success) / 0.3);\n}\n.border-success\\/40 {\n border-color: hsl(var(--success) / 0.4);\n}\n.border-transparent {\n border-color: transparent;\n}\n.border-warning {\n --tw-border-opacity: 1;\n border-color: hsl(var(--warning) / var(--tw-border-opacity, 1));\n}\n.border-warning\\/30 {\n border-color: hsl(var(--warning) / 0.3);\n}\n.border-white {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n.border-white\\/10 {\n border-color: rgb(255 255 255 / 0.1);\n}\n.border-white\\/20 {\n border-color: rgb(255 255 255 / 0.2);\n}\n.border-yellow-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 240 138 / var(--tw-border-opacity, 1));\n}\n.border-yellow-500\\/20 {\n border-color: rgb(234 179 8 / 0.2);\n}\n.border-yellow-600 {\n --tw-border-opacity: 1;\n border-color: rgb(202 138 4 / var(--tw-border-opacity, 1));\n}\n.border-l-muted-foreground {\n --tw-border-opacity: 1;\n border-left-color: hsl(var(--muted-foreground) / var(--tw-border-opacity, 1));\n}\n.border-l-red-500 {\n --tw-border-opacity: 1;\n border-left-color: rgb(239 68 68 / var(--tw-border-opacity, 1));\n}\n.border-l-transparent {\n border-left-color: transparent;\n}\n.border-l-yellow-500 {\n --tw-border-opacity: 1;\n border-left-color: rgb(234 179 8 / var(--tw-border-opacity, 1));\n}\n.border-t-primary {\n --tw-border-opacity: 1;\n border-top-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.border-t-transparent {\n border-top-color: transparent;\n}\n.bg-\\[var\\(--login-background\\)\\] {\n background-color: var(--login-background);\n}\n.bg-\\[var\\(--login-primary\\)\\] {\n background-color: var(--login-primary);\n}\n.bg-accent {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.bg-accent\\/20 {\n background-color: hsl(var(--accent) / 0.2);\n}\n.bg-accent\\/30 {\n background-color: hsl(var(--accent) / 0.3);\n}\n.bg-amber-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));\n}\n.bg-background {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--background) / var(--tw-bg-opacity, 1));\n}\n.bg-background\\/50 {\n background-color: hsl(var(--background) / 0.5);\n}\n.bg-background\\/60 {\n background-color: hsl(var(--background) / 0.6);\n}\n.bg-background\\/80 {\n background-color: hsl(var(--background) / 0.8);\n}\n.bg-background\\/90 {\n background-color: hsl(var(--background) / 0.9);\n}\n.bg-background\\/95 {\n background-color: hsl(var(--background) / 0.95);\n}\n.bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));\n}\n.bg-black\\/0 {\n background-color: rgb(0 0 0 / 0);\n}\n.bg-black\\/20 {\n background-color: rgb(0 0 0 / 0.2);\n}\n.bg-black\\/40 {\n background-color: rgb(0 0 0 / 0.4);\n}\n.bg-black\\/50 {\n background-color: rgb(0 0 0 / 0.5);\n}\n.bg-black\\/60 {\n background-color: rgb(0 0 0 / 0.6);\n}\n.bg-black\\/70 {\n background-color: rgb(0 0 0 / 0.7);\n}\n.bg-black\\/80 {\n background-color: rgb(0 0 0 / 0.8);\n}\n.bg-black\\/90 {\n background-color: rgb(0 0 0 / 0.9);\n}\n.bg-black\\/95 {\n background-color: rgb(0 0 0 / 0.95);\n}\n.bg-blue-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));\n}\n.bg-blue-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));\n}\n.bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));\n}\n.bg-blue-500\\/10 {\n background-color: rgb(59 130 246 / 0.1);\n}\n.bg-border {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--border) / var(--tw-bg-opacity, 1));\n}\n.bg-card {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--card) / var(--tw-bg-opacity, 1));\n}\n.bg-card\\/50 {\n background-color: hsl(var(--card) / 0.5);\n}\n.bg-destructive {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--destructive) / var(--tw-bg-opacity, 1));\n}\n.bg-destructive\\/10 {\n background-color: hsl(var(--destructive) / 0.1);\n}\n.bg-destructive\\/5 {\n background-color: hsl(var(--destructive) / 0.05);\n}\n.bg-error {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--error) / var(--tw-bg-opacity, 1));\n}\n.bg-error\\/20 {\n background-color: hsl(var(--error) / 0.2);\n}\n.bg-foreground {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--foreground) / var(--tw-bg-opacity, 1));\n}\n.bg-gray-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-400 {\n --tw-bg-opacity: 1;\n background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));\n}\n.bg-green-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));\n}\n.bg-green-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));\n}\n.bg-green-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));\n}\n.bg-green-500\\/10 {\n background-color: rgb(34 197 94 / 0.1);\n}\n.bg-green-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));\n}\n.bg-indigo-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(99 102 241 / var(--tw-bg-opacity, 1));\n}\n.bg-muted {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1));\n}\n.bg-muted-foreground {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--muted-foreground) / var(--tw-bg-opacity, 1));\n}\n.bg-muted-foreground\\/20 {\n background-color: hsl(var(--muted-foreground) / 0.2);\n}\n.bg-muted-foreground\\/40 {\n background-color: hsl(var(--muted-foreground) / 0.4);\n}\n.bg-muted\\/10 {\n background-color: hsl(var(--muted) / 0.1);\n}\n.bg-muted\\/20 {\n background-color: hsl(var(--muted) / 0.2);\n}\n.bg-muted\\/30 {\n background-color: hsl(var(--muted) / 0.3);\n}\n.bg-muted\\/5 {\n background-color: hsl(var(--muted) / 0.05);\n}\n.bg-muted\\/50 {\n background-color: hsl(var(--muted) / 0.5);\n}\n.bg-muted\\/80 {\n background-color: hsl(var(--muted) / 0.8);\n}\n.bg-orange-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));\n}\n.bg-orange-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));\n}\n.bg-orange-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1));\n}\n.bg-pink-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(236 72 153 / var(--tw-bg-opacity, 1));\n}\n.bg-popover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--popover) / var(--tw-bg-opacity, 1));\n}\n.bg-primary {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.bg-primary-foreground {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary-foreground) / var(--tw-bg-opacity, 1));\n}\n.bg-primary-foreground\\/20 {\n background-color: hsl(var(--primary-foreground) / 0.2);\n}\n.bg-primary\\/10 {\n background-color: hsl(var(--primary) / 0.1);\n}\n.bg-primary\\/20 {\n background-color: hsl(var(--primary) / 0.2);\n}\n.bg-primary\\/30 {\n background-color: hsl(var(--primary) / 0.3);\n}\n.bg-primary\\/40 {\n background-color: hsl(var(--primary) / 0.4);\n}\n.bg-primary\\/5 {\n background-color: hsl(var(--primary) / 0.05);\n}\n.bg-primary\\/60 {\n background-color: hsl(var(--primary) / 0.6);\n}\n.bg-purple-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));\n}\n.bg-purple-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(250 245 255 / var(--tw-bg-opacity, 1));\n}\n.bg-purple-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(168 85 247 / var(--tw-bg-opacity, 1));\n}\n.bg-purple-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1));\n}\n.bg-red-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));\n}\n.bg-red-50\\/5 {\n background-color: rgb(254 242 242 / 0.05);\n}\n.bg-red-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));\n}\n.bg-red-500\\/10 {\n background-color: rgb(239 68 68 / 0.1);\n}\n.bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n.bg-secondary {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--secondary) / var(--tw-bg-opacity, 1));\n}\n.bg-secondary-foreground {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--secondary-foreground) / var(--tw-bg-opacity, 1));\n}\n.bg-secondary\\/20 {\n background-color: hsl(var(--secondary) / 0.2);\n}\n.bg-secondary\\/5 {\n background-color: hsl(var(--secondary) / 0.05);\n}\n.bg-slate-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(100 116 139 / var(--tw-bg-opacity, 1));\n}\n.bg-success {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--success) / var(--tw-bg-opacity, 1));\n}\n.bg-success\\/10 {\n background-color: hsl(var(--success) / 0.1);\n}\n.bg-success\\/20 {\n background-color: hsl(var(--success) / 0.2);\n}\n.bg-success\\/5 {\n background-color: hsl(var(--success) / 0.05);\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-warning {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--warning) / var(--tw-bg-opacity, 1));\n}\n.bg-warning\\/10 {\n background-color: hsl(var(--warning) / 0.1);\n}\n.bg-warning\\/20 {\n background-color: hsl(var(--warning) / 0.2);\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n.bg-white\\/10 {\n background-color: rgb(255 255 255 / 0.1);\n}\n.bg-white\\/20 {\n background-color: rgb(255 255 255 / 0.2);\n}\n.bg-white\\/5 {\n background-color: rgb(255 255 255 / 0.05);\n}\n.bg-white\\/90 {\n background-color: rgb(255 255 255 / 0.9);\n}\n.bg-yellow-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));\n}\n.bg-yellow-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 240 138 / var(--tw-bg-opacity, 1));\n}\n.bg-yellow-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));\n}\n.bg-yellow-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));\n}\n.bg-yellow-500\\/10 {\n background-color: rgb(234 179 8 / 0.1);\n}\n.bg-yellow-500\\/90 {\n background-color: rgb(234 179 8 / 0.9);\n}\n.bg-opacity-80 {\n --tw-bg-opacity: 0.8;\n}\n.bg-gradient-to-b {\n background-image: linear-gradient(to bottom, var(--tw-gradient-stops));\n}\n.bg-gradient-to-br {\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\n}\n.bg-gradient-to-r {\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\n}\n.bg-gradient-to-t {\n background-image: linear-gradient(to top, var(--tw-gradient-stops));\n}\n.from-background {\n --tw-gradient-from: hsl(var(--background) / 1) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-background\\/90 {\n --tw-gradient-from: hsl(var(--background) / 0.9) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-background\\/95 {\n --tw-gradient-from: hsl(var(--background) / 0.95) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-black\\/50 {\n --tw-gradient-from: rgb(0 0 0 / 0.5) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-black\\/70 {\n --tw-gradient-from: rgb(0 0 0 / 0.7) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-black\\/80 {\n --tw-gradient-from: rgb(0 0 0 / 0.8) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-black\\/95 {\n --tw-gradient-from: rgb(0 0 0 / 0.95) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-blue-500 {\n --tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-blue-500\\/10 {\n --tw-gradient-from: rgb(59 130 246 / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-blue-600 {\n --tw-gradient-from: #2563eb var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-border {\n --tw-gradient-from: hsl(var(--border) / 1) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--border) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-gray-500\\/10 {\n --tw-gradient-from: rgb(107 114 128 / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(107 114 128 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-green-500 {\n --tw-gradient-from: #22c55e var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-green-500\\/10 {\n --tw-gradient-from: rgb(34 197 94 / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-indigo-500\\/10 {\n --tw-gradient-from: rgb(99 102 241 / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-orange-500 {\n --tw-gradient-from: #f97316 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-orange-500\\/10 {\n --tw-gradient-from: rgb(249 115 22 / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-primary {\n --tw-gradient-from: hsl(var(--primary) / 1) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-primary\\/10 {\n --tw-gradient-from: hsl(var(--primary) / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-primary\\/20 {\n --tw-gradient-from: hsl(var(--primary) / 0.2) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-primary\\/5 {\n --tw-gradient-from: hsl(var(--primary) / 0.05) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-primary\\/60 {\n --tw-gradient-from: hsl(var(--primary) / 0.6) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-purple-50 {\n --tw-gradient-from: #faf5ff var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(250 245 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-purple-500 {\n --tw-gradient-from: #a855f7 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-purple-500\\/10 {\n --tw-gradient-from: rgb(168 85 247 / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-purple-600 {\n --tw-gradient-from: #9333ea var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-transparent {\n --tw-gradient-from: transparent var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-white\\/10 {\n --tw-gradient-from: rgb(255 255 255 / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-white\\/5 {\n --tw-gradient-from: rgb(255 255 255 / 0.05) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-yellow-400 {\n --tw-gradient-from: #facc15 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(250 204 21 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-yellow-50\\/10 {\n --tw-gradient-from: rgb(254 252 232 / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(254 252 232 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-yellow-50\\/5 {\n --tw-gradient-from: rgb(254 252 232 / 0.05) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(254 252 232 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.via-accent\\/5 {\n --tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n hsl(var(--accent) / 0.05) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-background {\n --tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n hsl(var(--background) / 1) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-border {\n --tw-gradient-to: hsl(var(--border) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n hsl(var(--border) / 1) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-border\\/60 {\n --tw-gradient-to: hsl(var(--border) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n hsl(var(--border) / 0.6) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-primary\\/30 {\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n hsl(var(--primary) / 0.3) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-primary\\/5 {\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n hsl(var(--primary) / 0.05) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-primary\\/50 {\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n hsl(var(--primary) / 0.5) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-purple-900\\/20 {\n --tw-gradient-to: rgb(88 28 135 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n rgb(88 28 135 / 0.2) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-transparent {\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n transparent var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.via-white\\/20 {\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n rgb(255 255 255 / 0.2) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.to-amber-500 {\n --tw-gradient-to: #f59e0b var(--tw-gradient-to-position);\n}\n.to-background\\/90 {\n --tw-gradient-to: hsl(var(--background) / 0.9) var(--tw-gradient-to-position);\n}\n.to-background\\/95 {\n --tw-gradient-to: hsl(var(--background) / 0.95) var(--tw-gradient-to-position);\n}\n.to-black\\/10 {\n --tw-gradient-to: rgb(0 0 0 / 0.1) var(--tw-gradient-to-position);\n}\n.to-black\\/5 {\n --tw-gradient-to: rgb(0 0 0 / 0.05) var(--tw-gradient-to-position);\n}\n.to-black\\/80 {\n --tw-gradient-to: rgb(0 0 0 / 0.8) var(--tw-gradient-to-position);\n}\n.to-blue-50 {\n --tw-gradient-to: #eff6ff var(--tw-gradient-to-position);\n}\n.to-blue-500\\/10 {\n --tw-gradient-to: rgb(59 130 246 / 0.1) var(--tw-gradient-to-position);\n}\n.to-blue-600 {\n --tw-gradient-to: #2563eb var(--tw-gradient-to-position);\n}\n.to-border\\/30 {\n --tw-gradient-to: hsl(var(--border) / 0.3) var(--tw-gradient-to-position);\n}\n.to-emerald-500 {\n --tw-gradient-to: #10b981 var(--tw-gradient-to-position);\n}\n.to-emerald-500\\/10 {\n --tw-gradient-to: rgb(16 185 129 / 0.1) var(--tw-gradient-to-position);\n}\n.to-gray-600\\/10 {\n --tw-gradient-to: rgb(75 85 99 / 0.1) var(--tw-gradient-to-position);\n}\n.to-pink-500 {\n --tw-gradient-to: #ec4899 var(--tw-gradient-to-position);\n}\n.to-pink-500\\/10 {\n --tw-gradient-to: rgb(236 72 153 / 0.1) var(--tw-gradient-to-position);\n}\n.to-pink-600 {\n --tw-gradient-to: #db2777 var(--tw-gradient-to-position);\n}\n.to-primary {\n --tw-gradient-to: hsl(var(--primary) / 1) var(--tw-gradient-to-position);\n}\n.to-primary\\/10 {\n --tw-gradient-to: hsl(var(--primary) / 0.1) var(--tw-gradient-to-position);\n}\n.to-primary\\/5 {\n --tw-gradient-to: hsl(var(--primary) / 0.05) var(--tw-gradient-to-position);\n}\n.to-purple-500 {\n --tw-gradient-to: #a855f7 var(--tw-gradient-to-position);\n}\n.to-purple-500\\/10 {\n --tw-gradient-to: rgb(168 85 247 / 0.1) var(--tw-gradient-to-position);\n}\n.to-purple-600 {\n --tw-gradient-to: #9333ea var(--tw-gradient-to-position);\n}\n.to-red-500 {\n --tw-gradient-to: #ef4444 var(--tw-gradient-to-position);\n}\n.to-red-500\\/10 {\n --tw-gradient-to: rgb(239 68 68 / 0.1) var(--tw-gradient-to-position);\n}\n.to-secondary\\/10 {\n --tw-gradient-to: hsl(var(--secondary) / 0.1) var(--tw-gradient-to-position);\n}\n.to-secondary\\/5 {\n --tw-gradient-to: hsl(var(--secondary) / 0.05) var(--tw-gradient-to-position);\n}\n.to-transparent {\n --tw-gradient-to: transparent var(--tw-gradient-to-position);\n}\n.to-yellow-50\\/5 {\n --tw-gradient-to: rgb(254 252 232 / 0.05) var(--tw-gradient-to-position);\n}\n.fill-current {\n fill: currentColor;\n}\n.fill-yellow-500 {\n fill: #eab308;\n}\n.object-contain {\n -o-object-fit: contain;\n object-fit: contain;\n}\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.p-0 {\n padding: 0px;\n}\n.p-0\\.5 {\n padding: 0.125rem;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.p-1\\.5 {\n padding: 0.375rem;\n}\n.p-10 {\n padding: 2.5rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-3\\.5 {\n padding: 0.875rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-5 {\n padding: 1.25rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.p-8 {\n padding: 2rem;\n}\n.p-\\[1px\\] {\n padding: 1px;\n}\n.px-0 {\n padding-left: 0px;\n padding-right: 0px;\n}\n.px-0\\.5 {\n padding-left: 0.125rem;\n padding-right: 0.125rem;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-1\\.5 {\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-3\\.5 {\n padding-left: 0.875rem;\n padding-right: 0.875rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n.py-0 {\n padding-top: 0px;\n padding-bottom: 0px;\n}\n.py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-2\\.5 {\n padding-top: 0.625rem;\n padding-bottom: 0.625rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-3\\.5 {\n padding-top: 0.875rem;\n padding-bottom: 0.875rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.py-5 {\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.py-8 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n.pb-0 {\n padding-bottom: 0px;\n}\n.pb-1 {\n padding-bottom: 0.25rem;\n}\n.pb-10 {\n padding-bottom: 2.5rem;\n}\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n.pb-3 {\n padding-bottom: 0.75rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pb-5 {\n padding-bottom: 1.25rem;\n}\n.pb-6 {\n padding-bottom: 1.5rem;\n}\n.pl-10 {\n padding-left: 2.5rem;\n}\n.pl-12 {\n padding-left: 3rem;\n}\n.pl-14 {\n padding-left: 3.5rem;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pl-2\\.5 {\n padding-left: 0.625rem;\n}\n.pl-4 {\n padding-left: 1rem;\n}\n.pl-7 {\n padding-left: 1.75rem;\n}\n.pl-8 {\n padding-left: 2rem;\n}\n.pl-9 {\n padding-left: 2.25rem;\n}\n.pr-10 {\n padding-right: 2.5rem;\n}\n.pr-2 {\n padding-right: 0.5rem;\n}\n.pr-2\\.5 {\n padding-right: 0.625rem;\n}\n.pr-20 {\n padding-right: 5rem;\n}\n.pr-3 {\n padding-right: 0.75rem;\n}\n.pr-4 {\n padding-right: 1rem;\n}\n.pr-8 {\n padding-right: 2rem;\n}\n.pr-9 {\n padding-right: 2.25rem;\n}\n.pt-0 {\n padding-top: 0px;\n}\n.pt-1 {\n padding-top: 0.25rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pt-3 {\n padding-top: 0.75rem;\n}\n.pt-4 {\n padding-top: 1rem;\n}\n.pt-5 {\n padding-top: 1.25rem;\n}\n.pt-6 {\n padding-top: 1.5rem;\n}\n.pt-8 {\n padding-top: 2rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-right {\n text-align: right;\n}\n.align-middle {\n vertical-align: middle;\n}\n.font-mono {\n font-family: var(--font-mono);\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n.text-5xl {\n font-size: 3rem;\n line-height: 1;\n}\n.text-\\[0\\.65rem\\] {\n font-size: 0.65rem;\n}\n.text-\\[10px\\] {\n font-size: 10px;\n}\n.text-\\[11px\\] {\n font-size: 11px;\n}\n.text-\\[8px\\] {\n font-size: 8px;\n}\n.text-\\[9px\\] {\n font-size: 9px;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-normal {\n font-weight: 400;\n}\n.font-semibold {\n font-weight: 600;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.capitalize {\n text-transform: capitalize;\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.leading-5 {\n line-height: 1.25rem;\n}\n.leading-none {\n line-height: 1;\n}\n.leading-normal {\n line-height: 1.5;\n}\n.leading-relaxed {\n line-height: 1.625;\n}\n.leading-snug {\n line-height: 1.375;\n}\n.leading-tight {\n line-height: 1.25;\n}\n.tracking-tight {\n letter-spacing: -0.025em;\n}\n.tracking-wider {\n letter-spacing: 0.05em;\n}\n.tracking-widest {\n letter-spacing: 0.1em;\n}\n.text-\\[var\\(--login-primary\\)\\] {\n color: var(--login-primary);\n}\n.text-\\[var\\(--login-text\\)\\] {\n color: var(--login-text);\n}\n.text-accent-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.text-amber-500 {\n --tw-text-opacity: 1;\n color: rgb(245 158 11 / var(--tw-text-opacity, 1));\n}\n.text-blue-500 {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\n}\n.text-blue-600 {\n --tw-text-opacity: 1;\n color: rgb(37 99 235 / var(--tw-text-opacity, 1));\n}\n.text-blue-700 {\n --tw-text-opacity: 1;\n color: rgb(29 78 216 / var(--tw-text-opacity, 1));\n}\n.text-blue-900 {\n --tw-text-opacity: 1;\n color: rgb(30 58 138 / var(--tw-text-opacity, 1));\n}\n.text-border {\n --tw-text-opacity: 1;\n color: hsl(var(--border) / var(--tw-text-opacity, 1));\n}\n.text-card-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--card-foreground) / var(--tw-text-opacity, 1));\n}\n.text-current {\n color: currentColor;\n}\n.text-destructive {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive) / var(--tw-text-opacity, 1));\n}\n.text-destructive-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive-foreground) / var(--tw-text-opacity, 1));\n}\n.text-error {\n --tw-text-opacity: 1;\n color: hsl(var(--error) / var(--tw-text-opacity, 1));\n}\n.text-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.text-foreground\\/50 {\n color: hsl(var(--foreground) / 0.5);\n}\n.text-foreground\\/60 {\n color: hsl(var(--foreground) / 0.6);\n}\n.text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\n}\n.text-gray-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\n}\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n.text-green-400 {\n --tw-text-opacity: 1;\n color: rgb(74 222 128 / var(--tw-text-opacity, 1));\n}\n.text-green-500 {\n --tw-text-opacity: 1;\n color: rgb(34 197 94 / var(--tw-text-opacity, 1));\n}\n.text-green-600 {\n --tw-text-opacity: 1;\n color: rgb(22 163 74 / var(--tw-text-opacity, 1));\n}\n.text-green-700 {\n --tw-text-opacity: 1;\n color: rgb(21 128 61 / var(--tw-text-opacity, 1));\n}\n.text-green-800 {\n --tw-text-opacity: 1;\n color: rgb(22 101 52 / var(--tw-text-opacity, 1));\n}\n.text-green-900 {\n --tw-text-opacity: 1;\n color: rgb(20 83 45 / var(--tw-text-opacity, 1));\n}\n.text-muted-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n.text-muted-foreground\\/20 {\n color: hsl(var(--muted-foreground) / 0.2);\n}\n.text-muted-foreground\\/30 {\n color: hsl(var(--muted-foreground) / 0.3);\n}\n.text-muted-foreground\\/50 {\n color: hsl(var(--muted-foreground) / 0.5);\n}\n.text-orange-500 {\n --tw-text-opacity: 1;\n color: rgb(249 115 22 / var(--tw-text-opacity, 1));\n}\n.text-orange-600 {\n --tw-text-opacity: 1;\n color: rgb(234 88 12 / var(--tw-text-opacity, 1));\n}\n.text-orange-800 {\n --tw-text-opacity: 1;\n color: rgb(154 52 18 / var(--tw-text-opacity, 1));\n}\n.text-orange-900 {\n --tw-text-opacity: 1;\n color: rgb(124 45 18 / var(--tw-text-opacity, 1));\n}\n.text-popover-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--popover-foreground) / var(--tw-text-opacity, 1));\n}\n.text-primary {\n --tw-text-opacity: 1;\n color: hsl(var(--primary) / var(--tw-text-opacity, 1));\n}\n.text-primary-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.text-purple-400 {\n --tw-text-opacity: 1;\n color: rgb(192 132 252 / var(--tw-text-opacity, 1));\n}\n.text-purple-500 {\n --tw-text-opacity: 1;\n color: rgb(168 85 247 / var(--tw-text-opacity, 1));\n}\n.text-purple-600 {\n --tw-text-opacity: 1;\n color: rgb(147 51 234 / var(--tw-text-opacity, 1));\n}\n.text-purple-700 {\n --tw-text-opacity: 1;\n color: rgb(126 34 206 / var(--tw-text-opacity, 1));\n}\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.text-red-600 {\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n.text-red-700 {\n --tw-text-opacity: 1;\n color: rgb(185 28 28 / var(--tw-text-opacity, 1));\n}\n.text-red-800 {\n --tw-text-opacity: 1;\n color: rgb(153 27 27 / var(--tw-text-opacity, 1));\n}\n.text-secondary-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--secondary-foreground) / var(--tw-text-opacity, 1));\n}\n.text-slate-700 {\n --tw-text-opacity: 1;\n color: rgb(51 65 85 / var(--tw-text-opacity, 1));\n}\n.text-success {\n --tw-text-opacity: 1;\n color: hsl(var(--success) / var(--tw-text-opacity, 1));\n}\n.text-success-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--success-foreground) / var(--tw-text-opacity, 1));\n}\n.text-warning {\n --tw-text-opacity: 1;\n color: hsl(var(--warning) / var(--tw-text-opacity, 1));\n}\n.text-warning-foreground {\n --tw-text-opacity: 1;\n color: hsl(var(--warning-foreground) / var(--tw-text-opacity, 1));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.text-white\\/70 {\n color: rgb(255 255 255 / 0.7);\n}\n.text-white\\/80 {\n color: rgb(255 255 255 / 0.8);\n}\n.text-yellow-400 {\n --tw-text-opacity: 1;\n color: rgb(250 204 21 / var(--tw-text-opacity, 1));\n}\n.text-yellow-500 {\n --tw-text-opacity: 1;\n color: rgb(234 179 8 / var(--tw-text-opacity, 1));\n}\n.text-yellow-600 {\n --tw-text-opacity: 1;\n color: rgb(202 138 4 / var(--tw-text-opacity, 1));\n}\n.text-yellow-700 {\n --tw-text-opacity: 1;\n color: rgb(161 98 7 / var(--tw-text-opacity, 1));\n}\n.text-yellow-800 {\n --tw-text-opacity: 1;\n color: rgb(133 77 14 / var(--tw-text-opacity, 1));\n}\n.text-yellow-900 {\n --tw-text-opacity: 1;\n color: rgb(113 63 18 / var(--tw-text-opacity, 1));\n}\n.underline {\n text-decoration-line: underline;\n}\n.line-through {\n text-decoration-line: line-through;\n}\n.no-underline {\n text-decoration-line: none;\n}\n.underline-offset-4 {\n text-underline-offset: 4px;\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-20 {\n opacity: 0.2;\n}\n.opacity-30 {\n opacity: 0.3;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.opacity-60 {\n opacity: 0.6;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-75 {\n opacity: 0.75;\n}\n.opacity-80 {\n opacity: 0.8;\n}\n.opacity-90 {\n opacity: 0.9;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-2xl {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-\\[0_0_15px_rgba\\(59\\,130\\,246\\,0\\.3\\)\\] {\n --tw-shadow: 0 0 15px rgba(59,130,246,0.3);\n --tw-shadow-colored: 0 0 15px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-\\[0_0_15px_rgba\\(var\\(--primary\\)\\,0\\.5\\)\\] {\n --tw-shadow: 0 0 15px rgba(var(--primary),0.5);\n --tw-shadow-colored: 0 0 15px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-\\[0_0_20px_rgba\\(139\\,92\\,246\\,0\\.3\\)\\] {\n --tw-shadow: 0 0 20px rgba(139,92,246,0.3);\n --tw-shadow-colored: 0 0 20px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-\\[0_0_20px_rgba\\(59\\,130\\,246\\,0\\.3\\)\\] {\n --tw-shadow: 0 0 20px rgba(59,130,246,0.3);\n --tw-shadow-colored: 0 0 20px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-\\[0_0_20px_rgba\\(var\\(--primary\\)\\,0\\.3\\)\\] {\n --tw-shadow: 0 0 20px rgba(var(--primary),0.3);\n --tw-shadow-colored: 0 0 20px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-\\[0_0_30px_rgba\\(59\\,130\\,246\\,0\\.5\\)\\] {\n --tw-shadow: 0 0 30px rgba(59,130,246,0.5);\n --tw-shadow-colored: 0 0 30px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-\\[0_0_30px_rgba\\(var\\(--primary\\)\\,0\\.15\\)\\] {\n --tw-shadow: 0 0 30px rgba(var(--primary),0.15);\n --tw-shadow-colored: 0 0 30px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-inner {\n --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-none {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-primary\\/20 {\n --tw-shadow-color: hsl(var(--primary) / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.shadow-purple-500\\/40 {\n --tw-shadow-color: rgb(168 85 247 / 0.4);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.outline {\n outline-style: solid;\n}\n.ring {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-0 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-4 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-background {\n --tw-ring-opacity: 1;\n --tw-ring-color: hsl(var(--background) / var(--tw-ring-opacity, 1));\n}\n.ring-gray-300 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1));\n}\n.ring-primary {\n --tw-ring-opacity: 1;\n --tw-ring-color: hsl(var(--primary) / var(--tw-ring-opacity, 1));\n}\n.ring-ring {\n --tw-ring-opacity: 1;\n --tw-ring-color: hsl(var(--ring) / var(--tw-ring-opacity, 1));\n}\n.ring-white {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1));\n}\n.ring-offset-2 {\n --tw-ring-offset-width: 2px;\n}\n.ring-offset-background {\n --tw-ring-offset-color: hsl(var(--background) / 1);\n}\n.blur {\n --tw-blur: blur(8px);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.blur-md {\n --tw-blur: blur(12px);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.blur-xl {\n --tw-blur: blur(24px);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.grayscale {\n --tw-grayscale: grayscale(100%);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.\\!filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) !important;\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.backdrop-blur {\n --tw-backdrop-blur: blur(8px);\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.backdrop-blur-lg {\n --tw-backdrop-blur: blur(16px);\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.backdrop-blur-md {\n --tw-backdrop-blur: blur(12px);\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.backdrop-blur-sm {\n --tw-backdrop-blur: blur(4px);\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.backdrop-blur-xl {\n --tw-backdrop-blur: blur(24px);\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.backdrop-filter {\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:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke,\n opacity,\n box-shadow,\n transform,\n filter,\n backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-100 {\n transition-duration: 100ms;\n}\n.duration-1000 {\n transition-duration: 1000ms;\n}\n.duration-150 {\n transition-duration: 150ms;\n}\n.duration-200 {\n transition-duration: 200ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n.duration-500 {\n transition-duration: 500ms;\n}\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n.will-change-transform {\n will-change: transform;\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.animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.fade-in-0 {\n --tw-enter-opacity: 0;\n}\n.zoom-in-95 {\n --tw-enter-scale: .95;\n}\n.duration-100 {\n animation-duration: 100ms;\n}\n.duration-1000 {\n animation-duration: 1000ms;\n}\n.duration-150 {\n animation-duration: 150ms;\n}\n.duration-200 {\n animation-duration: 200ms;\n}\n.duration-300 {\n animation-duration: 300ms;\n}\n.duration-500 {\n animation-duration: 500ms;\n}\n.ease-in-out {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ease-out {\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n.running {\n animation-play-state: running;\n}\n.paused {\n animation-play-state: paused;\n}\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes bounce-in {\n 0% {\n transform: scale(0.8);\n opacity: 0;\n }\n 50% {\n transform: scale(1.1);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes bounce-out {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 100% {\n transform: scale(0.8);\n opacity: 0;\n }\n}\n@keyframes rotate-in-90 {\n from {\n transform: rotate(-90deg) scale(0.9);\n opacity: 0;\n }\n to {\n transform: rotate(0) scale(1);\n opacity: 1;\n }\n}\n@keyframes rotate-out-90 {\n from {\n transform: rotate(0) scale(1);\n opacity: 1;\n }\n to {\n transform: rotate(90deg) scale(0.9);\n opacity: 0;\n }\n}\n@keyframes rotate-x-90 {\n from {\n transform: perspective(800px) rotateX(-90deg);\n opacity: 0;\n }\n to {\n transform: perspective(800px) rotateX(0);\n opacity: 1;\n }\n}\n@keyframes spin-in-180 {\n from {\n transform: rotate(-540deg) scale(0);\n opacity: 0;\n }\n to {\n transform: rotate(0) scale(1);\n opacity: 1;\n }\n}\n@keyframes spin-out-180 {\n from {\n transform: rotate(0) scale(1);\n opacity: 1;\n }\n to {\n transform: rotate(540deg) scale(0);\n opacity: 0;\n }\n}\n@keyframes zoom-in-110 {\n from {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.1);\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes elastic-in {\n 0% {\n transform: scale(0.3);\n opacity: 0;\n }\n 50% {\n transform: scale(1.15);\n }\n 75% {\n transform: scale(0.95);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@keyframes elastic-out {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 100% {\n transform: scale(0.3);\n opacity: 0;\n }\n}\n@keyframes spring-in {\n 0% {\n transform: scale(0.9) translateY(20px);\n opacity: 0;\n }\n 50% {\n transform: scale(1.05) translateY(-10px);\n }\n 100% {\n transform: scale(1) translateY(0);\n opacity: 1;\n }\n}\n@keyframes spring-out {\n 0% {\n transform: scale(1) translateY(0);\n opacity: 1;\n }\n 100% {\n transform: scale(0.9) translateY(20px);\n opacity: 0;\n }\n}\n.react-grid-layout {\n position: relative !important;\n transition: height 200ms ease;\n}\n.react-grid-item {\n transition: all 200ms ease;\n transition-property:\n left,\n top,\n width,\n height;\n}\n.react-grid-item > div {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n.react-grid-item.cssTransforms {\n transition-property:\n transform,\n width,\n height;\n}\n.react-grid-item.resizing {\n transition: none;\n z-index: 1;\n will-change: width, height;\n}\n.react-grid-item.react-draggable-dragging {\n transition: none;\n z-index: 3;\n will-change: transform;\n}\n@media (max-width: 768px) {\n .react-grid-layout {\n overflow-x: hidden !important;\n height: auto !important;\n }\n .react-grid-item {\n position: relative !important;\n transform: none !important;\n margin-bottom: 24px !important;\n width: 100% !important;\n left: 0 !important;\n right: 0 !important;\n }\n .react-grid-item:last-child {\n margin-bottom: 0 !important;\n }\n .react-grid-item.cssTransforms {\n position: relative !important;\n transform: none !important;\n }\n .react-grid-placeholder {\n display: none !important;\n }\n}\n.file\\:border-0::file-selector-button {\n border-width: 0px;\n}\n.file\\:bg-transparent::file-selector-button {\n background-color: transparent;\n}\n.file\\:font-medium::file-selector-button {\n font-weight: 500;\n}\n.placeholder\\:text-gray-500::-moz-placeholder {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.placeholder\\:text-gray-500::placeholder {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.placeholder\\:text-muted-foreground::-moz-placeholder {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n.placeholder\\:text-muted-foreground::placeholder {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n.before\\:absolute::before {\n content: var(--tw-content);\n position: absolute;\n}\n.before\\:inset-0::before {\n content: var(--tw-content);\n inset: 0px;\n}\n.before\\:bg-gradient-to-br::before {\n content: var(--tw-content);\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\n}\n.before\\:from-transparent::before {\n content: var(--tw-content);\n --tw-gradient-from: transparent var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.before\\:via-primary\\/10::before {\n content: var(--tw-content);\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n hsl(var(--primary) / 0.1) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.before\\:to-transparent::before {\n content: var(--tw-content);\n --tw-gradient-to: transparent var(--tw-gradient-to-position);\n}\n.last\\:mb-0:last-child {\n margin-bottom: 0px;\n}\n.last\\:border-b-0:last-child {\n border-bottom-width: 0px;\n}\n.last\\:border-r-0:last-child {\n border-right-width: 0px;\n}\n.hover\\:-translate-y-0\\.5:hover {\n --tw-translate-y: -0.125rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.hover\\:-translate-y-1:hover {\n --tw-translate-y: -0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.hover\\:scale-105:hover {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.hover\\:scale-110:hover {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.hover\\:scale-\\[1\\.02\\]:hover {\n --tw-scale-x: 1.02;\n --tw-scale-y: 1.02;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.hover\\:border-accent:hover {\n --tw-border-opacity: 1;\n border-color: hsl(var(--accent) / var(--tw-border-opacity, 1));\n}\n.hover\\:border-border\\/50:hover {\n border-color: hsl(var(--border) / 0.5);\n}\n.hover\\:border-border\\/80:hover {\n border-color: hsl(var(--border) / 0.8);\n}\n.hover\\:border-error\\/80:hover {\n border-color: hsl(var(--error) / 0.8);\n}\n.hover\\:border-gray-300:hover {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.hover\\:border-gray-400:hover {\n --tw-border-opacity: 1;\n border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));\n}\n.hover\\:border-muted-foreground\\/20:hover {\n border-color: hsl(var(--muted-foreground) / 0.2);\n}\n.hover\\:border-muted-foreground\\/40:hover {\n border-color: hsl(var(--muted-foreground) / 0.4);\n}\n.hover\\:border-primary:hover {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.hover\\:border-primary\\/20:hover {\n border-color: hsl(var(--primary) / 0.2);\n}\n.hover\\:border-primary\\/30:hover {\n border-color: hsl(var(--primary) / 0.3);\n}\n.hover\\:border-primary\\/50:hover {\n border-color: hsl(var(--primary) / 0.5);\n}\n.hover\\:border-success\\/80:hover {\n border-color: hsl(var(--success) / 0.8);\n}\n.hover\\:border-white\\/30:hover {\n border-color: rgb(255 255 255 / 0.3);\n}\n.hover\\:bg-accent:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-accent\\/10:hover {\n background-color: hsl(var(--accent) / 0.1);\n}\n.hover\\:bg-accent\\/5:hover {\n background-color: hsl(var(--accent) / 0.05);\n}\n.hover\\:bg-accent\\/50:hover {\n background-color: hsl(var(--accent) / 0.5);\n}\n.hover\\:bg-background:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--background) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-background\\/90:hover {\n background-color: hsl(var(--background) / 0.9);\n}\n.hover\\:bg-black\\/10:hover {\n background-color: rgb(0 0 0 / 0.1);\n}\n.hover\\:bg-black\\/70:hover {\n background-color: rgb(0 0 0 / 0.7);\n}\n.hover\\:bg-blue-600:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-card\\/95:hover {\n background-color: hsl(var(--card) / 0.95);\n}\n.hover\\:bg-destructive\\/10:hover {\n background-color: hsl(var(--destructive) / 0.1);\n}\n.hover\\:bg-destructive\\/90:hover {\n background-color: hsl(var(--destructive) / 0.9);\n}\n.hover\\:bg-error\\/90:hover {\n background-color: hsl(var(--error) / 0.9);\n}\n.hover\\:bg-gray-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-gray-100\\/50:hover {\n background-color: rgb(243 244 246 / 0.5);\n}\n.hover\\:bg-gray-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-gray-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-green-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-green-400:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(74 222 128 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-green-500\\/20:hover {\n background-color: rgb(34 197 94 / 0.2);\n}\n.hover\\:bg-green-600:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-muted:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-muted\\/20:hover {\n background-color: hsl(var(--muted) / 0.2);\n}\n.hover\\:bg-muted\\/50:hover {\n background-color: hsl(var(--muted) / 0.5);\n}\n.hover\\:bg-muted\\/80:hover {\n background-color: hsl(var(--muted) / 0.8);\n}\n.hover\\:bg-primary:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-primary\\/10:hover {\n background-color: hsl(var(--primary) / 0.1);\n}\n.hover\\:bg-primary\\/20:hover {\n background-color: hsl(var(--primary) / 0.2);\n}\n.hover\\:bg-primary\\/5:hover {\n background-color: hsl(var(--primary) / 0.05);\n}\n.hover\\:bg-primary\\/90:hover {\n background-color: hsl(var(--primary) / 0.9);\n}\n.hover\\:bg-purple-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(233 213 255 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-red-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-secondary:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--secondary) / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-secondary\\/10:hover {\n background-color: hsl(var(--secondary) / 0.1);\n}\n.hover\\:bg-secondary\\/80:hover {\n background-color: hsl(var(--secondary) / 0.8);\n}\n.hover\\:bg-success\\/10:hover {\n background-color: hsl(var(--success) / 0.1);\n}\n.hover\\:bg-success\\/90:hover {\n background-color: hsl(var(--success) / 0.9);\n}\n.hover\\:bg-transparent:hover {\n background-color: transparent;\n}\n.hover\\:bg-warning\\/10:hover {\n background-color: hsl(var(--warning) / 0.1);\n}\n.hover\\:bg-warning\\/90:hover {\n background-color: hsl(var(--warning) / 0.9);\n}\n.hover\\:bg-white\\/10:hover {\n background-color: rgb(255 255 255 / 0.1);\n}\n.hover\\:bg-white\\/20:hover {\n background-color: rgb(255 255 255 / 0.2);\n}\n.hover\\:bg-yellow-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-gradient-to-br:hover {\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\n}\n.hover\\:bg-gradient-to-r:hover {\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\n}\n.hover\\:from-card:hover {\n --tw-gradient-from: hsl(var(--card) / 1) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--card) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.hover\\:from-purple-500\\/10:hover {\n --tw-gradient-from: rgb(168 85 247 / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.hover\\:from-purple-600:hover {\n --tw-gradient-from: #9333ea var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.hover\\:from-purple-700:hover {\n --tw-gradient-from: #7e22ce var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(126 34 206 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.hover\\:from-yellow-50\\/20:hover {\n --tw-gradient-from: rgb(254 252 232 / 0.2) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(254 252 232 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.hover\\:via-card\\/95:hover {\n --tw-gradient-to: hsl(var(--card) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n hsl(var(--card) / 0.95) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.hover\\:to-blue-700:hover {\n --tw-gradient-to: #1d4ed8 var(--tw-gradient-to-position);\n}\n.hover\\:to-card\\/80:hover {\n --tw-gradient-to: hsl(var(--card) / 0.8) var(--tw-gradient-to-position);\n}\n.hover\\:to-card\\/90:hover {\n --tw-gradient-to: hsl(var(--card) / 0.9) var(--tw-gradient-to-position);\n}\n.hover\\:to-pink-500\\/10:hover {\n --tw-gradient-to: rgb(236 72 153 / 0.1) var(--tw-gradient-to-position);\n}\n.hover\\:to-pink-600:hover {\n --tw-gradient-to: #db2777 var(--tw-gradient-to-position);\n}\n.hover\\:to-pink-700:hover {\n --tw-gradient-to: #be185d var(--tw-gradient-to-position);\n}\n.hover\\:to-yellow-50\\/10:hover {\n --tw-gradient-to: rgb(254 252 232 / 0.1) var(--tw-gradient-to-position);\n}\n.hover\\:pl-9:hover {\n padding-left: 2.25rem;\n}\n.hover\\:text-accent-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-blue-600:hover {\n --tw-text-opacity: 1;\n color: rgb(37 99 235 / var(--tw-text-opacity, 1));\n}\n.hover\\:text-destructive:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-gray-700:hover {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\n}\n.hover\\:text-gray-900:hover {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n.hover\\:text-green-900:hover {\n --tw-text-opacity: 1;\n color: rgb(20 83 45 / var(--tw-text-opacity, 1));\n}\n.hover\\:text-muted-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-primary:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--primary) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-primary-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-primary\\/80:hover {\n color: hsl(var(--primary) / 0.8);\n}\n.hover\\:text-purple-600:hover {\n --tw-text-opacity: 1;\n color: rgb(147 51 234 / var(--tw-text-opacity, 1));\n}\n.hover\\:text-red-900:hover {\n --tw-text-opacity: 1;\n color: rgb(127 29 29 / var(--tw-text-opacity, 1));\n}\n.hover\\:text-secondary:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--secondary) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-success:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--success) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-warning:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--warning) / var(--tw-text-opacity, 1));\n}\n.hover\\:text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.hover\\:text-yellow-600:hover {\n --tw-text-opacity: 1;\n color: rgb(202 138 4 / var(--tw-text-opacity, 1));\n}\n.hover\\:text-yellow-900:hover {\n --tw-text-opacity: 1;\n color: rgb(113 63 18 / var(--tw-text-opacity, 1));\n}\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n.hover\\:decoration-gray-300\\/30:hover {\n text-decoration-color: rgb(209 213 219 / 0.3);\n}\n.hover\\:underline-offset-4:hover {\n text-underline-offset: 4px;\n}\n.hover\\:opacity-100:hover {\n opacity: 1;\n}\n.hover\\:opacity-80:hover {\n opacity: 0.8;\n}\n.hover\\:opacity-90:hover {\n opacity: 0.9;\n}\n.hover\\:shadow-2xl:hover {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-\\[0_0_30px_rgba\\(74\\,222\\,128\\,0\\.6\\)\\]:hover {\n --tw-shadow: 0 0 30px rgba(74,222,128,0.6);\n --tw-shadow-colored: 0 0 30px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-\\[0_0_30px_rgba\\(var\\(--primary\\)\\,0\\.3\\)\\]:hover {\n --tw-shadow: 0 0 30px rgba(var(--primary),0.3);\n --tw-shadow-colored: 0 0 30px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-\\[0_0_40px_rgba\\(59\\,130\\,246\\,0\\.7\\)\\]:hover {\n --tw-shadow: 0 0 40px rgba(59,130,246,0.7);\n --tw-shadow-colored: 0 0 40px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-lg:hover {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-md:hover {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-xl:hover {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-primary\\/20:hover {\n --tw-shadow-color: hsl(var(--primary) / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.hover\\:shadow-primary\\/25:hover {\n --tw-shadow-color: hsl(var(--primary) / 0.25);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.hover\\:shadow-primary\\/5:hover {\n --tw-shadow-color: hsl(var(--primary) / 0.05);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.hover\\:shadow-purple-500\\/50:hover {\n --tw-shadow-color: rgb(168 85 247 / 0.5);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.hover\\:brightness-110:hover {\n --tw-brightness: brightness(1.1);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.focus\\:border-primary:focus {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.focus\\:bg-accent:focus {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.focus\\:bg-error\\/10:focus {\n background-color: hsl(var(--error) / 0.1);\n}\n.focus\\:bg-gray-100:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.focus\\:bg-green-100:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));\n}\n.focus\\:bg-red-100:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));\n}\n.focus\\:bg-success\\/10:focus {\n background-color: hsl(var(--success) / 0.1);\n}\n.focus\\:bg-warning\\/10:focus {\n background-color: hsl(var(--warning) / 0.1);\n}\n.focus\\:bg-yellow-100:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));\n}\n.focus\\:text-accent-foreground:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-destructive:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-error:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--error) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-foreground:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-green-900:focus {\n --tw-text-opacity: 1;\n color: rgb(20 83 45 / var(--tw-text-opacity, 1));\n}\n.focus\\:text-red-900:focus {\n --tw-text-opacity: 1;\n color: rgb(127 29 29 / var(--tw-text-opacity, 1));\n}\n.focus\\:text-success:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--success) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-warning:focus {\n --tw-text-opacity: 1;\n color: hsl(var(--warning) / var(--tw-text-opacity, 1));\n}\n.focus\\:text-yellow-900:focus {\n --tw-text-opacity: 1;\n color: rgb(113 63 18 / var(--tw-text-opacity, 1));\n}\n.focus\\:opacity-100:focus {\n opacity: 1;\n}\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus\\:ring-1:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-\\[var\\(--login-primary\\)\\]:focus {\n --tw-ring-color: var(--login-primary);\n}\n.focus\\:ring-primary\\/20:focus {\n --tw-ring-color: hsl(var(--primary) / 0.2);\n}\n.focus\\:ring-primary\\/30:focus {\n --tw-ring-color: hsl(var(--primary) / 0.3);\n}\n.focus\\:ring-ring:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: hsl(var(--ring) / var(--tw-ring-opacity, 1));\n}\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:border-2:focus-visible {\n border-width: 2px;\n}\n.focus-visible\\:border-b-2:focus-visible {\n border-bottom-width: 2px;\n}\n.focus-visible\\:border-error:focus-visible {\n --tw-border-opacity: 1;\n border-color: hsl(var(--error) / var(--tw-border-opacity, 1));\n}\n.focus-visible\\:border-primary:focus-visible {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.focus-visible\\:border-success:focus-visible {\n --tw-border-opacity: 1;\n border-color: hsl(var(--success) / var(--tw-border-opacity, 1));\n}\n.focus-visible\\:bg-transparent:focus-visible {\n background-color: transparent;\n}\n.focus-visible\\:shadow-lg:focus-visible {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.focus-visible\\:shadow-primary\\/30:focus-visible {\n --tw-shadow-color: hsl(var(--primary) / 0.3);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.focus-visible\\:outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:ring-0:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-1:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-2:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-blue-500\\/50:focus-visible {\n --tw-ring-color: rgb(59 130 246 / 0.5);\n}\n.focus-visible\\:ring-error\\/30:focus-visible {\n --tw-ring-color: hsl(var(--error) / 0.3);\n}\n.focus-visible\\:ring-gray-400\\/30:focus-visible {\n --tw-ring-color: rgb(156 163 175 / 0.3);\n}\n.focus-visible\\:ring-green-400\\/50:focus-visible {\n --tw-ring-color: rgb(74 222 128 / 0.5);\n}\n.focus-visible\\:ring-primary\\/30:focus-visible {\n --tw-ring-color: hsl(var(--primary) / 0.3);\n}\n.focus-visible\\:ring-primary\\/50:focus-visible {\n --tw-ring-color: hsl(var(--primary) / 0.5);\n}\n.focus-visible\\:ring-purple-400\\/30:focus-visible {\n --tw-ring-color: rgb(192 132 252 / 0.3);\n}\n.focus-visible\\:ring-purple-500\\/50:focus-visible {\n --tw-ring-color: rgb(168 85 247 / 0.5);\n}\n.focus-visible\\:ring-ring:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: hsl(var(--ring) / var(--tw-ring-opacity, 1));\n}\n.focus-visible\\:ring-success\\/30:focus-visible {\n --tw-ring-color: hsl(var(--success) / 0.3);\n}\n.focus-visible\\:ring-warning\\/30:focus-visible {\n --tw-ring-color: hsl(var(--warning) / 0.3);\n}\n.focus-visible\\:ring-white\\/50:focus-visible {\n --tw-ring-color: rgb(255 255 255 / 0.5);\n}\n.focus-visible\\:ring-offset-1:focus-visible {\n --tw-ring-offset-width: 1px;\n}\n.focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:ring-offset-background:focus-visible {\n --tw-ring-offset-color: hsl(var(--background) / 1);\n}\n.active\\:translate-y-0:active {\n --tw-translate-y: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.active\\:translate-y-0\\.5:active {\n --tw-translate-y: 0.125rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.active\\:scale-95:active {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.active\\:scale-\\[0\\.98\\]:active {\n --tw-scale-x: 0.98;\n --tw-scale-y: 0.98;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.active\\:cursor-grabbing:active {\n cursor: grabbing;\n}\n.active\\:bg-accent\\/80:active {\n background-color: hsl(var(--accent) / 0.8);\n}\n.active\\:bg-destructive\\/80:active {\n background-color: hsl(var(--destructive) / 0.8);\n}\n.active\\:bg-gray-200:active {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));\n}\n.active\\:bg-gray-300:active {\n --tw-bg-opacity: 1;\n background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));\n}\n.active\\:bg-primary\\/30:active {\n background-color: hsl(var(--primary) / 0.3);\n}\n.active\\:bg-primary\\/80:active {\n background-color: hsl(var(--primary) / 0.8);\n}\n.active\\:bg-success\\/80:active {\n background-color: hsl(var(--success) / 0.8);\n}\n.active\\:bg-white\\/30:active {\n background-color: rgb(255 255 255 / 0.3);\n}\n.active\\:from-purple-700:active {\n --tw-gradient-from: #7e22ce var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(126 34 206 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.active\\:to-pink-700:active {\n --tw-gradient-to: #be185d var(--tw-gradient-to-position);\n}\n.active\\:text-primary\\/70:active {\n color: hsl(var(--primary) / 0.7);\n}\n.active\\:shadow-\\[0_0_15px_rgba\\(74\\,222\\,128\\,0\\.4\\)\\]:active {\n --tw-shadow: 0 0 15px rgba(74,222,128,0.4);\n --tw-shadow-colored: 0 0 15px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.active\\:shadow-\\[0_0_20px_rgba\\(59\\,130\\,246\\,0\\.4\\)\\]:active {\n --tw-shadow: 0 0 20px rgba(59,130,246,0.4);\n --tw-shadow-colored: 0 0 20px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.active\\:shadow-sm:active {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.active\\:brightness-90:active {\n --tw-brightness: brightness(.9);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.active\\:brightness-95:active {\n --tw-brightness: brightness(.95);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n}\n.disabled\\:transform-none:disabled {\n transform: none;\n}\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n.group:hover .group-hover\\:flex {\n display: flex;\n}\n.group:hover .group-hover\\:rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.group:hover .group-hover\\:bg-black\\/20 {\n background-color: rgb(0 0 0 / 0.2);\n}\n.group:hover .group-hover\\:text-primary {\n --tw-text-opacity: 1;\n color: hsl(var(--primary) / var(--tw-text-opacity, 1));\n}\n.group:hover .group-hover\\:opacity-100 {\n opacity: 1;\n}\n.group.destructive .group-\\[\\.destructive\\]\\:border-muted\\/40 {\n border-color: hsl(var(--muted) / 0.4);\n}\n.group.destructive .group-\\[\\.destructive\\]\\:text-red-300 {\n --tw-text-opacity: 1;\n color: rgb(252 165 165 / var(--tw-text-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:hover\\:border-destructive\\/30:hover {\n border-color: hsl(var(--destructive) / 0.3);\n}\n.group.destructive .group-\\[\\.destructive\\]\\:hover\\:bg-destructive:hover {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--destructive) / var(--tw-bg-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:hover\\:text-destructive-foreground:hover {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive-foreground) / var(--tw-text-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:hover\\:text-red-50:hover {\n --tw-text-opacity: 1;\n color: rgb(254 242 242 / var(--tw-text-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:focus\\:ring-destructive:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: hsl(var(--destructive) / var(--tw-ring-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:focus\\:ring-red-400:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1));\n}\n.group.destructive .group-\\[\\.destructive\\]\\:focus\\:ring-offset-red-600:focus {\n --tw-ring-offset-color: #dc2626;\n}\n.peer:disabled ~ .peer-disabled\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n.peer:disabled ~ .peer-disabled\\:opacity-70 {\n opacity: 0.7;\n}\n.aria-selected\\:bg-accent[aria-selected=true] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.aria-selected\\:text-accent-foreground[aria-selected=true] {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[disabled\\=true\\]\\:pointer-events-none[data-disabled=true] {\n pointer-events: none;\n}\n.data-\\[disabled\\]\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n}\n.data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom] {\n --tw-translate-y: 0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[side\\=left\\]\\:-translate-x-1[data-side=left] {\n --tw-translate-x: -0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[side\\=right\\]\\:translate-x-1[data-side=right] {\n --tw-translate-x: 0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[side\\=top\\]\\:-translate-y-1[data-side=top] {\n --tw-translate-y: -0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[state\\=checked\\]\\:translate-x-4[data-state=checked] {\n --tw-translate-x: 1rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[state\\=checked\\]\\:translate-x-5[data-state=checked] {\n --tw-translate-x: 1.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[state\\=checked\\]\\:translate-x-7[data-state=checked] {\n --tw-translate-x: 1.75rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[state\\=unchecked\\]\\:translate-x-0[data-state=unchecked] {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[swipe\\=cancel\\]\\:translate-x-0[data-swipe=cancel] {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\][data-swipe=end] {\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\][data-swipe=move] {\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n@keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\n }\n 50% {\n transform: none;\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n}\n.data-\\[state\\=checked\\]\\:animate-bounce[data-state=checked] {\n animation: bounce 1s infinite;\n}\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n to {\n height: 0;\n }\n}\n.data-\\[state\\=closed\\]\\:animate-\\[accordion-up_0\\.2s_ease-in-out\\][data-state=closed] {\n animation: accordion-up 0.2s ease-in-out;\n}\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n to {\n height: 0;\n }\n}\n.data-\\[state\\=closed\\]\\:animate-\\[accordion-up_0\\.3s_cubic-bezier\\(0\\.34\\,1\\.56\\,0\\.64\\,1\\)\\][data-state=closed] {\n animation: accordion-up 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n to {\n height: 0;\n }\n}\n.data-\\[state\\=closed\\]\\:animate-\\[accordion-up_0\\.4s_cubic-bezier\\(0\\.68\\,-0\\.55\\,0\\.265\\,1\\.55\\)\\][data-state=closed] {\n animation: accordion-up 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);\n}\n.data-\\[state\\=closed\\]\\:animate-\\[collapsible-up_0\\.2s_ease-in-out\\][data-state=closed] {\n animation: collapsible-up 0.2s ease-in-out;\n}\n.data-\\[state\\=closed\\]\\:animate-\\[collapsible-up_0\\.3s_cubic-bezier\\(0\\.34\\,1\\.56\\,0\\.64\\,1\\)\\][data-state=closed] {\n animation: collapsible-up 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n.data-\\[state\\=closed\\]\\:animate-\\[collapsible-up_0\\.4s_cubic-bezier\\(0\\.68\\,-0\\.55\\,0\\.265\\,1\\.55\\)\\][data-state=closed] {\n animation: collapsible-up 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);\n}\n.data-\\[state\\=closed\\]\\:animate-\\[slide-up_0\\.3s_ease-out\\][data-state=closed] {\n animation: slide-up 0.3s ease-out;\n}\n@keyframes accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n to {\n height: 0;\n }\n}\n.data-\\[state\\=closed\\]\\:animate-accordion-up[data-state=closed] {\n animation: accordion-up 0.2s ease-out;\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n.data-\\[state\\=open\\]\\:animate-\\[accordion-down_0\\.2s_ease-in-out\\][data-state=open] {\n animation: accordion-down 0.2s ease-in-out;\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n.data-\\[state\\=open\\]\\:animate-\\[accordion-down_0\\.3s_cubic-bezier\\(0\\.34\\,1\\.56\\,0\\.64\\,1\\)\\][data-state=open] {\n animation: accordion-down 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n.data-\\[state\\=open\\]\\:animate-\\[accordion-down_0\\.4s_cubic-bezier\\(0\\.68\\,-0\\.55\\,0\\.265\\,1\\.55\\)\\][data-state=open] {\n animation: accordion-down 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);\n}\n.data-\\[state\\=open\\]\\:animate-\\[collapsible-down_0\\.2s_ease-in-out\\][data-state=open] {\n animation: collapsible-down 0.2s ease-in-out;\n}\n.data-\\[state\\=open\\]\\:animate-\\[collapsible-down_0\\.3s_cubic-bezier\\(0\\.34\\,1\\.56\\,0\\.64\\,1\\)\\][data-state=open] {\n animation: collapsible-down 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n.data-\\[state\\=open\\]\\:animate-\\[collapsible-down_0\\.4s_cubic-bezier\\(0\\.68\\,-0\\.55\\,0\\.265\\,1\\.55\\)\\][data-state=open] {\n animation: collapsible-down 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);\n}\n.data-\\[state\\=open\\]\\:animate-\\[slide-down_0\\.3s_ease-out\\][data-state=open] {\n animation: slide-down 0.3s ease-out;\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n.data-\\[state\\=open\\]\\:animate-accordion-down[data-state=open] {\n animation: accordion-down 0.2s ease-out;\n}\n.data-\\[state\\=active\\]\\:border-primary[data-state=active] {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:border-primary[data-state=checked] {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.data-\\[active\\]\\:bg-accent\\/50[data-active] {\n background-color: hsl(var(--accent) / 0.5);\n}\n.data-\\[state\\=active\\]\\:bg-background[data-state=active] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--background) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:bg-primary[data-state=active] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:bg-transparent[data-state=active] {\n background-color: transparent;\n}\n.data-\\[state\\=active\\]\\:bg-white\\/20[data-state=active] {\n background-color: rgb(255 255 255 / 0.2);\n}\n.data-\\[state\\=checked\\]\\:bg-accent[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:bg-error[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--error) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:bg-primary[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:bg-success[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--success) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:bg-warning[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--warning) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:bg-accent[data-state=on] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:bg-destructive[data-state=on] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--destructive) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:bg-primary[data-state=on] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:bg-secondary[data-state=on] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--secondary) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:bg-success[data-state=on] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--success) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:bg-transparent[data-state=on] {\n background-color: transparent;\n}\n.data-\\[state\\=on\\]\\:bg-warning[data-state=on] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--warning) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=open\\]\\:bg-accent[data-state=open] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=open\\]\\:bg-accent\\/50[data-state=open] {\n background-color: hsl(var(--accent) / 0.5);\n}\n.data-\\[state\\=open\\]\\:bg-secondary[data-state=open] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--secondary) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=selected\\]\\:bg-muted[data-state=selected] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=unchecked\\]\\:bg-input[data-state=unchecked] {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--input) / var(--tw-bg-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:bg-gradient-to-r[data-state=active] {\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\n}\n.data-\\[state\\=on\\]\\:bg-gradient-to-r[data-state=on] {\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\n}\n.data-\\[state\\=active\\]\\:from-primary[data-state=active] {\n --tw-gradient-from: hsl(var(--primary) / 1) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.data-\\[state\\=on\\]\\:from-purple-600[data-state=on] {\n --tw-gradient-from: #9333ea var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.data-\\[state\\=active\\]\\:to-secondary[data-state=active] {\n --tw-gradient-to: hsl(var(--secondary) / 1) var(--tw-gradient-to-position);\n}\n.data-\\[state\\=on\\]\\:to-pink-600[data-state=on] {\n --tw-gradient-to: #db2777 var(--tw-gradient-to-position);\n}\n.data-\\[state\\=active\\]\\:text-foreground[data-state=active] {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:text-primary-foreground[data-state=active] {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:text-white[data-state=active] {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=checked\\]\\:text-primary-foreground[data-state=checked] {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:text-accent-foreground[data-state=on] {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:text-destructive-foreground[data-state=on] {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:text-primary-foreground[data-state=on] {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:text-secondary-foreground[data-state=on] {\n --tw-text-opacity: 1;\n color: hsl(var(--secondary-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:text-success-foreground[data-state=on] {\n --tw-text-opacity: 1;\n color: hsl(var(--success-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:text-warning-foreground[data-state=on] {\n --tw-text-opacity: 1;\n color: hsl(var(--warning-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=on\\]\\:text-white[data-state=on] {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=open\\]\\:text-accent-foreground[data-state=open] {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.data-\\[state\\=active\\]\\:underline[data-state=active] {\n text-decoration-line: underline;\n}\n.data-\\[disabled\\=true\\]\\:opacity-50[data-disabled=true] {\n opacity: 0.5;\n}\n.data-\\[disabled\\]\\:opacity-50[data-disabled] {\n opacity: 0.5;\n}\n.data-\\[state\\=active\\]\\:shadow-\\[0_0_10px_rgba\\(139\\,92\\,246\\,0\\.8\\)\\][data-state=active] {\n --tw-shadow: 0 0 10px rgba(139,92,246,0.8);\n --tw-shadow-colored: 0 0 10px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.data-\\[state\\=active\\]\\:shadow-md[data-state=active] {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.data-\\[state\\=active\\]\\:shadow-sm[data-state=active] {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.data-\\[swipe\\=move\\]\\:transition-none[data-swipe=move] {\n transition-property: none;\n}\n.data-\\[state\\=closed\\]\\:duration-300[data-state=closed] {\n transition-duration: 300ms;\n}\n.data-\\[state\\=open\\]\\:duration-150[data-state=open] {\n transition-duration: 150ms;\n}\n.data-\\[state\\=open\\]\\:duration-500[data-state=open] {\n transition-duration: 500ms;\n}\n.data-\\[motion\\^\\=from-\\]\\:animate-in[data-motion^=from-] {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.data-\\[state\\=open\\]\\:animate-in[data-state=open] {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.data-\\[state\\=visible\\]\\:animate-in[data-state=visible] {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.data-\\[motion\\^\\=to-\\]\\:animate-out[data-motion^=to-] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n.data-\\[state\\=closed\\]\\:animate-out[data-state=closed] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n.data-\\[state\\=hidden\\]\\:animate-out[data-state=hidden] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n.data-\\[swipe\\=end\\]\\:animate-out[data-swipe=end] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n.data-\\[motion\\^\\=from-\\]\\:fade-in[data-motion^=from-] {\n --tw-enter-opacity: 0;\n}\n.data-\\[motion\\^\\=to-\\]\\:fade-out[data-motion^=to-] {\n --tw-exit-opacity: 0;\n}\n.data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed] {\n --tw-exit-opacity: 0;\n}\n.data-\\[state\\=closed\\]\\:fade-out-80[data-state=closed] {\n --tw-exit-opacity: 0.8;\n}\n.data-\\[state\\=hidden\\]\\:fade-out[data-state=hidden] {\n --tw-exit-opacity: 0;\n}\n.data-\\[state\\=open\\]\\:fade-in-0[data-state=open] {\n --tw-enter-opacity: 0;\n}\n.data-\\[state\\=visible\\]\\:fade-in[data-state=visible] {\n --tw-enter-opacity: 0;\n}\n.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed] {\n --tw-exit-scale: .95;\n}\n.data-\\[state\\=open\\]\\:zoom-in-90[data-state=open] {\n --tw-enter-scale: .9;\n}\n.data-\\[state\\=open\\]\\:zoom-in-95[data-state=open] {\n --tw-enter-scale: .95;\n}\n.data-\\[motion\\=from-end\\]\\:slide-in-from-right-52[data-motion=from-end] {\n --tw-enter-translate-x: 13rem;\n}\n.data-\\[motion\\=from-start\\]\\:slide-in-from-left-52[data-motion=from-start] {\n --tw-enter-translate-x: -13rem;\n}\n.data-\\[motion\\=to-end\\]\\:slide-out-to-right-52[data-motion=to-end] {\n --tw-exit-translate-x: 13rem;\n}\n.data-\\[motion\\=to-start\\]\\:slide-out-to-left-52[data-motion=to-start] {\n --tw-exit-translate-x: -13rem;\n}\n.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom] {\n --tw-enter-translate-y: -0.5rem;\n}\n.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left] {\n --tw-enter-translate-x: 0.5rem;\n}\n.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right] {\n --tw-enter-translate-x: -0.5rem;\n}\n.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top] {\n --tw-enter-translate-y: 0.5rem;\n}\n.data-\\[state\\=closed\\]\\:slide-out-to-bottom[data-state=closed] {\n --tw-exit-translate-y: 100%;\n}\n.data-\\[state\\=closed\\]\\:slide-out-to-left[data-state=closed] {\n --tw-exit-translate-x: -100%;\n}\n.data-\\[state\\=closed\\]\\:slide-out-to-left-1\\/2[data-state=closed] {\n --tw-exit-translate-x: -50%;\n}\n.data-\\[state\\=closed\\]\\:slide-out-to-right[data-state=closed] {\n --tw-exit-translate-x: 100%;\n}\n.data-\\[state\\=closed\\]\\:slide-out-to-right-full[data-state=closed] {\n --tw-exit-translate-x: 100%;\n}\n.data-\\[state\\=closed\\]\\:slide-out-to-top[data-state=closed] {\n --tw-exit-translate-y: -100%;\n}\n.data-\\[state\\=closed\\]\\:slide-out-to-top-\\[48\\%\\][data-state=closed] {\n --tw-exit-translate-y: -48%;\n}\n.data-\\[state\\=open\\]\\:slide-in-from-bottom[data-state=open] {\n --tw-enter-translate-y: 100%;\n}\n.data-\\[state\\=open\\]\\:slide-in-from-left[data-state=open] {\n --tw-enter-translate-x: -100%;\n}\n.data-\\[state\\=open\\]\\:slide-in-from-left-1\\/2[data-state=open] {\n --tw-enter-translate-x: -50%;\n}\n.data-\\[state\\=open\\]\\:slide-in-from-right[data-state=open] {\n --tw-enter-translate-x: 100%;\n}\n.data-\\[state\\=open\\]\\:slide-in-from-top[data-state=open] {\n --tw-enter-translate-y: -100%;\n}\n.data-\\[state\\=open\\]\\:slide-in-from-top-\\[48\\%\\][data-state=open] {\n --tw-enter-translate-y: -48%;\n}\n.data-\\[state\\=open\\]\\:slide-in-from-top-full[data-state=open] {\n --tw-enter-translate-y: -100%;\n}\n.data-\\[state\\=closed\\]\\:duration-300[data-state=closed] {\n animation-duration: 300ms;\n}\n.data-\\[state\\=open\\]\\:duration-150[data-state=open] {\n animation-duration: 150ms;\n}\n.data-\\[state\\=open\\]\\:duration-500[data-state=open] {\n animation-duration: 500ms;\n}\n.group[data-state=open] .group-data-\\[state\\=open\\]\\:rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n@supports (backdrop-filter: var(--tw)) {\n .supports-\\[backdrop-filter\\]\\:bg-background\\/60 {\n background-color: hsl(var(--background) / 0.6);\n }\n}\n.dark\\:border-blue-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(30 64 175 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-border:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: hsl(var(--border) / var(--tw-border-opacity, 1));\n}\n.dark\\:border-border\\/30:is(.dark *) {\n border-color: hsl(var(--border) / 0.3);\n}\n.dark\\:border-border\\/40:is(.dark *) {\n border-color: hsl(var(--border) / 0.4);\n}\n.dark\\:border-error\\/30:is(.dark *) {\n border-color: hsl(var(--error) / 0.3);\n}\n.dark\\:border-gray-100:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-gray-600:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-gray-700:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-gray-700\\/20:is(.dark *) {\n border-color: rgb(55 65 81 / 0.2);\n}\n.dark\\:border-gray-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-green-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(22 101 52 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-input:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: hsl(var(--input) / var(--tw-border-opacity, 1));\n}\n.dark\\:border-orange-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(154 52 18 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-primary\\/30:is(.dark *) {\n border-color: hsl(var(--primary) / 0.3);\n}\n.dark\\:border-purple-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(107 33 168 / var(--tw-border-opacity, 1));\n}\n.dark\\:border-success\\/30:is(.dark *) {\n border-color: hsl(var(--success) / 0.3);\n}\n.dark\\:border-white\\/10:is(.dark *) {\n border-color: rgb(255 255 255 / 0.1);\n}\n.dark\\:border-yellow-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(133 77 14 / var(--tw-border-opacity, 1));\n}\n.dark\\:bg-accent:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-amber-600:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(217 119 6 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-background:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--background) / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-black\\/10:is(.dark *) {\n background-color: rgb(0 0 0 / 0.1);\n}\n.dark\\:bg-black\\/5:is(.dark *) {\n background-color: rgb(0 0 0 / 0.05);\n}\n.dark\\:bg-blue-900\\/20:is(.dark *) {\n background-color: rgb(30 58 138 / 0.2);\n}\n.dark\\:bg-destructive:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--destructive) / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-destructive\\/20:is(.dark *) {\n background-color: hsl(var(--destructive) / 0.2);\n}\n.dark\\:bg-error\\/90:is(.dark *) {\n background-color: hsl(var(--error) / 0.9);\n}\n.dark\\:bg-gray-700:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-gray-800:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-gray-800\\/10:is(.dark *) {\n background-color: rgb(31 41 55 / 0.1);\n}\n.dark\\:bg-gray-800\\/50:is(.dark *) {\n background-color: rgb(31 41 55 / 0.5);\n}\n.dark\\:bg-gray-800\\/90:is(.dark *) {\n background-color: rgb(31 41 55 / 0.9);\n}\n.dark\\:bg-gray-900:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-gray-900\\/60:is(.dark *) {\n background-color: rgb(17 24 39 / 0.6);\n}\n.dark\\:bg-green-600:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-green-900\\/20:is(.dark *) {\n background-color: rgb(20 83 45 / 0.2);\n}\n.dark\\:bg-orange-900\\/20:is(.dark *) {\n background-color: rgb(124 45 18 / 0.2);\n}\n.dark\\:bg-primary:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-primary\\/20:is(.dark *) {\n background-color: hsl(var(--primary) / 0.2);\n}\n.dark\\:bg-primary\\/90:is(.dark *) {\n background-color: hsl(var(--primary) / 0.9);\n}\n.dark\\:bg-purple-400:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(192 132 252 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-purple-900:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(88 28 135 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-purple-900\\/30:is(.dark *) {\n background-color: rgb(88 28 135 / 0.3);\n}\n.dark\\:bg-purple-950\\/20:is(.dark *) {\n background-color: rgb(59 7 100 / 0.2);\n}\n.dark\\:bg-red-600:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-red-900\\/20:is(.dark *) {\n background-color: rgb(127 29 29 / 0.2);\n}\n.dark\\:bg-secondary:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--secondary) / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-success:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--success) / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-success\\/10:is(.dark *) {\n background-color: hsl(var(--success) / 0.1);\n}\n.dark\\:bg-success\\/90:is(.dark *) {\n background-color: hsl(var(--success) / 0.9);\n}\n.dark\\:bg-transparent:is(.dark *) {\n background-color: transparent;\n}\n.dark\\:bg-warning\\/90:is(.dark *) {\n background-color: hsl(var(--warning) / 0.9);\n}\n.dark\\:bg-white\\/80:is(.dark *) {\n background-color: rgb(255 255 255 / 0.8);\n}\n.dark\\:bg-yellow-800:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(133 77 14 / var(--tw-bg-opacity, 1));\n}\n.dark\\:bg-yellow-900\\/10:is(.dark *) {\n background-color: rgb(113 63 18 / 0.1);\n}\n.dark\\:bg-yellow-900\\/20:is(.dark *) {\n background-color: rgb(113 63 18 / 0.2);\n}\n.dark\\:from-blue-700:is(.dark *) {\n --tw-gradient-from: #1d4ed8 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(29 78 216 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.dark\\:from-primary\\/10:is(.dark *) {\n --tw-gradient-from: hsl(var(--primary) / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.dark\\:from-purple-950\\/50:is(.dark *) {\n --tw-gradient-from: rgb(59 7 100 / 0.5) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(59 7 100 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.dark\\:from-yellow-900\\/10:is(.dark *) {\n --tw-gradient-from: rgb(113 63 18 / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(113 63 18 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.dark\\:from-yellow-900\\/5:is(.dark *) {\n --tw-gradient-from: rgb(113 63 18 / 0.05) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(113 63 18 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.dark\\:via-accent\\/10:is(.dark *) {\n --tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n hsl(var(--accent) / 0.1) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.dark\\:to-blue-950\\/50:is(.dark *) {\n --tw-gradient-to: rgb(23 37 84 / 0.5) var(--tw-gradient-to-position);\n}\n.dark\\:to-primary\\/20:is(.dark *) {\n --tw-gradient-to: hsl(var(--primary) / 0.2) var(--tw-gradient-to-position);\n}\n.dark\\:to-purple-700:is(.dark *) {\n --tw-gradient-to: #7e22ce var(--tw-gradient-to-position);\n}\n.dark\\:to-secondary\\/10:is(.dark *) {\n --tw-gradient-to: hsl(var(--secondary) / 0.1) var(--tw-gradient-to-position);\n}\n.dark\\:to-yellow-900\\/5:is(.dark *) {\n --tw-gradient-to: rgb(113 63 18 / 0.05) var(--tw-gradient-to-position);\n}\n.dark\\:text-accent-foreground:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:text-black:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-blue-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(219 234 254 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-blue-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-blue-500:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-destructive-foreground:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive-foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:text-foreground:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-200:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-300:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(209 213 219 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-300\\/60:is(.dark *) {\n color: rgb(209 213 219 / 0.6);\n}\n.dark\\:text-gray-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-500:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-gray-900:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-green-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(220 252 231 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-green-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(74 222 128 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-green-500:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(34 197 94 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-orange-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(255 237 213 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-orange-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(251 146 60 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-primary-foreground:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:text-purple-300:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(216 180 254 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-purple-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(192 132 252 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-red-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-slate-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(148 163 184 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-success-foreground:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--success-foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:text-white:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-yellow-200:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(254 240 138 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-yellow-300:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(253 224 71 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-yellow-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(250 204 21 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-yellow-500:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(234 179 8 / var(--tw-text-opacity, 1));\n}\n.dark\\:text-opacity-95:is(.dark *) {\n --tw-text-opacity: 0.95;\n}\n.dark\\:shadow-\\[0_0_20px_rgba\\(59\\,130\\,246\\,0\\.5\\)\\]:is(.dark *) {\n --tw-shadow: 0 0 20px rgba(59,130,246,0.5);\n --tw-shadow-colored: 0 0 20px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-\\[0_0_20px_rgba\\(var\\(--primary\\)\\,0\\.7\\)\\]:is(.dark *) {\n --tw-shadow: 0 0 20px rgba(var(--primary),0.7);\n --tw-shadow-colored: 0 0 20px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-\\[0_0_40px_rgba\\(var\\(--primary\\)\\,0\\.25\\)\\]:is(.dark *) {\n --tw-shadow: 0 0 40px rgba(var(--primary),0.25);\n --tw-shadow-colored: 0 0 40px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-inner:is(.dark *) {\n --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-lg:is(.dark *) {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-xl:is(.dark *) {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.dark\\:shadow-black\\/20:is(.dark *) {\n --tw-shadow-color: rgb(0 0 0 / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-error\\/10:is(.dark *) {\n --tw-shadow-color: hsl(var(--error) / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-gray-900\\/20:is(.dark *) {\n --tw-shadow-color: rgb(17 24 39 / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-gray-950\\/10:is(.dark *) {\n --tw-shadow-color: rgb(3 7 18 / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-primary\\/10:is(.dark *) {\n --tw-shadow-color: hsl(var(--primary) / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-purple-500\\/10:is(.dark *) {\n --tw-shadow-color: rgb(168 85 247 / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-success\\/10:is(.dark *) {\n --tw-shadow-color: hsl(var(--success) / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:shadow-warning\\/10:is(.dark *) {\n --tw-shadow-color: hsl(var(--warning) / 0.1);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.dark\\:ring-gray-600:is(.dark *) {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity, 1));\n}\n.dark\\:ring-offset-gray-950:is(.dark *) {\n --tw-ring-offset-color: #030712;\n}\n.dark\\:backdrop-blur-sm:is(.dark *) {\n --tw-backdrop-blur: blur(4px);\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.dark\\:placeholder\\:text-gray-400:is(.dark *)::-moz-placeholder {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.dark\\:placeholder\\:text-gray-400:is(.dark *)::placeholder {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.dark\\:placeholder\\:text-gray-500:is(.dark *)::-moz-placeholder {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.dark\\:placeholder\\:text-gray-500:is(.dark *)::placeholder {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:border-error\\/80:hover:is(.dark *) {\n border-color: hsl(var(--error) / 0.8);\n}\n.dark\\:hover\\:border-gray-500:hover:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));\n}\n.dark\\:hover\\:border-gray-600:hover:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));\n}\n.dark\\:hover\\:border-gray-700\\/30:hover:is(.dark *) {\n border-color: rgb(55 65 81 / 0.3);\n}\n.dark\\:hover\\:border-primary\\/30:hover:is(.dark *) {\n border-color: hsl(var(--primary) / 0.3);\n}\n.dark\\:hover\\:border-success\\/80:hover:is(.dark *) {\n border-color: hsl(var(--success) / 0.8);\n}\n.dark\\:hover\\:bg-accent:hover:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.dark\\:hover\\:bg-destructive\\/20:hover:is(.dark *) {\n background-color: hsl(var(--destructive) / 0.2);\n}\n.dark\\:hover\\:bg-destructive\\/90:hover:is(.dark *) {\n background-color: hsl(var(--destructive) / 0.9);\n}\n.dark\\:hover\\:bg-error\\/80:hover:is(.dark *) {\n background-color: hsl(var(--error) / 0.8);\n}\n.dark\\:hover\\:bg-gray-700:hover:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.dark\\:hover\\:bg-gray-700\\/90:hover:is(.dark *) {\n background-color: rgb(55 65 81 / 0.9);\n}\n.dark\\:hover\\:bg-gray-800:hover:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.dark\\:hover\\:bg-gray-800\\/20:hover:is(.dark *) {\n background-color: rgb(31 41 55 / 0.2);\n}\n.dark\\:hover\\:bg-gray-800\\/30:hover:is(.dark *) {\n background-color: rgb(31 41 55 / 0.3);\n}\n.dark\\:hover\\:bg-gray-800\\/80:hover:is(.dark *) {\n background-color: rgb(31 41 55 / 0.8);\n}\n.dark\\:hover\\:bg-green-900\\/20:hover:is(.dark *) {\n background-color: rgb(20 83 45 / 0.2);\n}\n.dark\\:hover\\:bg-primary\\/10:hover:is(.dark *) {\n background-color: hsl(var(--primary) / 0.1);\n}\n.dark\\:hover\\:bg-primary\\/20:hover:is(.dark *) {\n background-color: hsl(var(--primary) / 0.2);\n}\n.dark\\:hover\\:bg-primary\\/30:hover:is(.dark *) {\n background-color: hsl(var(--primary) / 0.3);\n}\n.dark\\:hover\\:bg-primary\\/90:hover:is(.dark *) {\n background-color: hsl(var(--primary) / 0.9);\n}\n.dark\\:hover\\:bg-purple-800:hover:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(107 33 168 / var(--tw-bg-opacity, 1));\n}\n.dark\\:hover\\:bg-red-900\\/20:hover:is(.dark *) {\n background-color: rgb(127 29 29 / 0.2);\n}\n.dark\\:hover\\:bg-success\\/20:hover:is(.dark *) {\n background-color: hsl(var(--success) / 0.2);\n}\n.dark\\:hover\\:bg-success\\/80:hover:is(.dark *) {\n background-color: hsl(var(--success) / 0.8);\n}\n.dark\\:hover\\:bg-success\\/90:hover:is(.dark *) {\n background-color: hsl(var(--success) / 0.9);\n}\n.dark\\:hover\\:bg-warning\\/20:hover:is(.dark *) {\n background-color: hsl(var(--warning) / 0.2);\n}\n.dark\\:hover\\:bg-warning\\/80:hover:is(.dark *) {\n background-color: hsl(var(--warning) / 0.8);\n}\n.dark\\:hover\\:bg-white\\/10:hover:is(.dark *) {\n background-color: rgb(255 255 255 / 0.1);\n}\n.dark\\:hover\\:bg-white\\/5:hover:is(.dark *) {\n background-color: rgb(255 255 255 / 0.05);\n}\n.dark\\:hover\\:bg-yellow-900\\/20:hover:is(.dark *) {\n background-color: rgb(113 63 18 / 0.2);\n}\n.dark\\:hover\\:from-purple-500\\/20:hover:is(.dark *) {\n --tw-gradient-from: rgb(168 85 247 / 0.2) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.dark\\:hover\\:to-pink-500\\/20:hover:is(.dark *) {\n --tw-gradient-to: rgb(236 72 153 / 0.2) var(--tw-gradient-to-position);\n}\n.dark\\:hover\\:text-accent-foreground:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-destructive:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive) / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-gray-100:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-gray-200:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-gray-400:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-green-400:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(74 222 128 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-primary:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--primary) / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-primary\\/90:hover:is(.dark *) {\n color: hsl(var(--primary) / 0.9);\n}\n.dark\\:hover\\:text-purple-400:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(192 132 252 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-red-400:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-success:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--success) / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-warning:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--warning) / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-white:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-yellow-400:hover:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(250 204 21 / var(--tw-text-opacity, 1));\n}\n.dark\\:hover\\:text-opacity-95:hover:is(.dark *) {\n --tw-text-opacity: 0.95;\n}\n.dark\\:focus\\:bg-gray-700:focus:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.dark\\:focus\\:bg-gray-800:focus:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.dark\\:focus\\:bg-green-900\\/20:focus:is(.dark *) {\n background-color: rgb(20 83 45 / 0.2);\n}\n.dark\\:focus\\:bg-red-900\\/20:focus:is(.dark *) {\n background-color: rgb(127 29 29 / 0.2);\n}\n.dark\\:focus\\:bg-yellow-900\\/20:focus:is(.dark *) {\n background-color: rgb(113 63 18 / 0.2);\n}\n.dark\\:focus\\:text-gray-100:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-gray-200:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-green-300:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(134 239 172 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-green-400:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(74 222 128 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-red-300:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(252 165 165 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-red-400:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-yellow-300:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(253 224 71 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus\\:text-yellow-400:focus:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(250 204 21 / var(--tw-text-opacity, 1));\n}\n.dark\\:focus-visible\\:border-primary:focus-visible:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: hsl(var(--primary) / var(--tw-border-opacity, 1));\n}\n.dark\\:focus-visible\\:border-primary\\/80:focus-visible:is(.dark *) {\n border-color: hsl(var(--primary) / 0.8);\n}\n.dark\\:focus-visible\\:ring-error\\/25:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--error) / 0.25);\n}\n.dark\\:focus-visible\\:ring-gray-500\\/40:focus-visible:is(.dark *) {\n --tw-ring-color: rgb(107 114 128 / 0.4);\n}\n.dark\\:focus-visible\\:ring-primary\\/20:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--primary) / 0.2);\n}\n.dark\\:focus-visible\\:ring-primary\\/40:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--primary) / 0.4);\n}\n.dark\\:focus-visible\\:ring-primary\\/50:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--primary) / 0.5);\n}\n.dark\\:focus-visible\\:ring-purple-500\\/40:focus-visible:is(.dark *) {\n --tw-ring-color: rgb(168 85 247 / 0.4);\n}\n.dark\\:focus-visible\\:ring-success\\/25:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--success) / 0.25);\n}\n.dark\\:focus-visible\\:ring-warning\\/25:focus-visible:is(.dark *) {\n --tw-ring-color: hsl(var(--warning) / 0.25);\n}\n.dark\\:focus-visible\\:ring-offset-gray-950:focus-visible:is(.dark *) {\n --tw-ring-offset-color: #030712;\n}\n.dark\\:active\\:bg-accent\\/80:active:is(.dark *) {\n background-color: hsl(var(--accent) / 0.8);\n}\n.dark\\:active\\:bg-destructive\\/80:active:is(.dark *) {\n background-color: hsl(var(--destructive) / 0.8);\n}\n.dark\\:active\\:bg-gray-600:active:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));\n}\n.dark\\:active\\:bg-gray-700:active:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.dark\\:active\\:bg-primary\\/40:active:is(.dark *) {\n background-color: hsl(var(--primary) / 0.4);\n}\n.dark\\:active\\:bg-primary\\/80:active:is(.dark *) {\n background-color: hsl(var(--primary) / 0.8);\n}\n.dark\\:active\\:bg-success\\/80:active:is(.dark *) {\n background-color: hsl(var(--success) / 0.8);\n}\n.peer:disabled ~ .dark\\:peer-disabled\\:opacity-60:is(.dark *) {\n opacity: 0.6;\n}\n.dark\\:data-\\[state\\=active\\]\\:bg-white\\/10[data-state=active]:is(.dark *) {\n background-color: rgb(255 255 255 / 0.1);\n}\n.dark\\:data-\\[state\\=on\\]\\:bg-accent[data-state=on]:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--accent) / var(--tw-bg-opacity, 1));\n}\n.dark\\:data-\\[state\\=on\\]\\:bg-destructive[data-state=on]:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--destructive) / var(--tw-bg-opacity, 1));\n}\n.dark\\:data-\\[state\\=on\\]\\:bg-primary[data-state=on]:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--primary) / var(--tw-bg-opacity, 1));\n}\n.dark\\:data-\\[state\\=on\\]\\:bg-success[data-state=on]:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--success) / var(--tw-bg-opacity, 1));\n}\n.dark\\:data-\\[state\\=on\\]\\:bg-warning[data-state=on]:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--warning) / var(--tw-bg-opacity, 1));\n}\n.dark\\:data-\\[state\\=unchecked\\]\\:bg-gray-700\\/70[data-state=unchecked]:is(.dark *) {\n background-color: rgb(55 65 81 / 0.7);\n}\n.dark\\:data-\\[state\\=on\\]\\:from-purple-600[data-state=on]:is(.dark *) {\n --tw-gradient-from: #9333ea var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.dark\\:data-\\[state\\=on\\]\\:to-pink-600[data-state=on]:is(.dark *) {\n --tw-gradient-to: #db2777 var(--tw-gradient-to-position);\n}\n.dark\\:data-\\[state\\=on\\]\\:text-accent-foreground[data-state=on]:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--accent-foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:data-\\[state\\=on\\]\\:text-destructive-foreground[data-state=on]:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--destructive-foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:data-\\[state\\=on\\]\\:text-primary-foreground[data-state=on]:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--primary-foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:data-\\[state\\=on\\]\\:text-success-foreground[data-state=on]:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--success-foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:data-\\[state\\=on\\]\\:text-warning-foreground[data-state=on]:is(.dark *) {\n --tw-text-opacity: 1;\n color: hsl(var(--warning-foreground) / var(--tw-text-opacity, 1));\n}\n.dark\\:data-\\[state\\=on\\]\\:text-white[data-state=on]:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n@media (min-width: 640px) {\n .sm\\:bottom-0 {\n bottom: 0px;\n }\n .sm\\:right-0 {\n right: 0px;\n }\n .sm\\:top-auto {\n top: auto;\n }\n .sm\\:mt-0 {\n margin-top: 0px;\n }\n .sm\\:flex {\n display: flex;\n }\n .sm\\:inline-flex {\n display: inline-flex;\n }\n .sm\\:hidden {\n display: none;\n }\n .sm\\:h-2 {\n height: 0.5rem;\n }\n .sm\\:h-4 {\n height: 1rem;\n }\n .sm\\:h-7 {\n height: 1.75rem;\n }\n .sm\\:h-9 {\n height: 2.25rem;\n }\n .sm\\:w-\\[540px\\] {\n width: 540px;\n }\n .sm\\:min-w-\\[24rem\\] {\n min-width: 24rem;\n }\n .sm\\:max-w-4xl {\n max-width: 56rem;\n }\n .sm\\:max-w-\\[425px\\] {\n max-width: 425px;\n }\n .sm\\:max-w-\\[480px\\] {\n max-width: 480px;\n }\n .sm\\:max-w-\\[500px\\] {\n max-width: 500px;\n }\n .sm\\:max-w-\\[600px\\] {\n max-width: 600px;\n }\n .sm\\:max-w-md {\n max-width: 28rem;\n }\n .sm\\:max-w-sm {\n max-width: 24rem;\n }\n .sm\\:columns-2 {\n -moz-columns: 2;\n columns: 2;\n }\n .sm\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n .sm\\:flex-row {\n flex-direction: row;\n }\n .sm\\:flex-col {\n flex-direction: column;\n }\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n .sm\\:justify-between {\n justify-content: space-between;\n }\n .sm\\:gap-2 {\n gap: 0.5rem;\n }\n .sm\\:gap-2\\.5 {\n gap: 0.625rem;\n }\n .sm\\:gap-4 {\n gap: 1rem;\n }\n .sm\\:space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n }\n .sm\\:rounded-lg {\n border-radius: var(--radius);\n }\n .sm\\:p-3 {\n padding: 0.75rem;\n }\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n .sm\\:px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n }\n .sm\\:text-left {\n text-align: left;\n }\n .sm\\:text-right {\n text-align: right;\n }\n .sm\\:text-\\[0\\.75rem\\] {\n font-size: 0.75rem;\n }\n .sm\\:text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n }\n .sm\\:text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n .data-\\[state\\=open\\]\\:sm\\:slide-in-from-bottom-full[data-state=open] {\n --tw-enter-translate-y: 100%;\n }\n}\n@media (min-width: 768px) {\n .md\\:absolute {\n position: absolute;\n }\n .md\\:flex {\n display: flex;\n }\n .md\\:hidden {\n display: none;\n }\n .md\\:w-\\[400px\\] {\n width: 400px;\n }\n .md\\:w-\\[var\\(--radix-navigation-menu-viewport-width\\)\\] {\n width: var(--radix-navigation-menu-viewport-width);\n }\n .md\\:w-auto {\n width: auto;\n }\n .md\\:max-w-\\[420px\\] {\n max-width: 420px;\n }\n .md\\:max-w-\\[640px\\] {\n max-width: 640px;\n }\n .md\\:columns-3 {\n -moz-columns: 3;\n columns: 3;\n }\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n}\n@media (min-width: 1024px) {\n .lg\\:relative {\n position: relative;\n }\n .lg\\:inset-auto {\n inset: auto;\n }\n .lg\\:block {\n display: block;\n }\n .lg\\:flex {\n display: flex;\n }\n .lg\\:hidden {\n display: none;\n }\n .lg\\:w-0 {\n width: 0px;\n }\n .lg\\:w-64 {\n width: 16rem;\n }\n .lg\\:w-\\[500px\\] {\n width: 500px;\n }\n .lg\\:max-w-\\[768px\\] {\n max-width: 768px;\n }\n .lg\\:translate-x-0 {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n }\n .lg\\:columns-4 {\n -moz-columns: 4;\n columns: 4;\n }\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n .lg\\:grid-cols-5 {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n }\n .lg\\:grid-cols-\\[\\.75fr_1fr\\] {\n grid-template-columns: .75fr 1fr;\n }\n .lg\\:space-x-8 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(2rem * var(--tw-space-x-reverse));\n margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse)));\n }\n .lg\\:px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n }\n}\n@media (min-width: 1280px) {\n .xl\\:max-w-\\[1024px\\] {\n max-width: 1024px;\n }\n .xl\\:grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n }\n}\n@media print {\n .print\\:relative {\n position: relative;\n }\n .print\\:hidden {\n display: none;\n }\n .print\\:break-inside-avoid {\n -moz-column-break-inside: avoid;\n break-inside: avoid;\n }\n .print\\:border-0 {\n border-width: 0px;\n }\n .print\\:bg-transparent {\n background-color: transparent;\n }\n .print\\:pb-2 {\n padding-bottom: 0.5rem;\n }\n .print\\:shadow-none {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n }\n}\n.\\[\\&\\+div\\]\\:text-xs + div {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0:has([role=checkbox]) {\n padding-right: 0px;\n}\n.\\[\\&\\>div\\]\\:bg-destructive > div {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--destructive) / var(--tw-bg-opacity, 1));\n}\n.\\[\\&\\>span\\]\\:line-clamp-1 > span {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n}\n.\\[\\&\\>svg\\]\\:shrink-0 > svg {\n flex-shrink: 0;\n}\n.even\\:\\[\\&\\>tr\\]\\:bg-muted\\/50 > tr:nth-child(even) {\n background-color: hsl(var(--muted) / 0.5);\n}\n.\\[\\&\\[data-state\\=open\\]\\>\\.chevron\\]\\:rotate-180[data-state=open] > .chevron {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.\\[\\&\\[data-state\\=open\\]\\]\\:text-primary[data-state=open] {\n --tw-text-opacity: 1;\n color: hsl(var(--primary) / var(--tw-text-opacity, 1));\n}\n.dark\\:\\[\\&\\[data-state\\=open\\]\\]\\:text-primary\\/90[data-state=open]:is(.dark *) {\n color: hsl(var(--primary) / 0.9);\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 [cmdk-group-heading] {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 [cmdk-group-heading] {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-xs [cmdk-group-heading] {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium [cmdk-group-heading] {\n font-weight: 500;\n}\n.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-muted-foreground [cmdk-group-heading] {\n --tw-text-opacity: 1;\n color: hsl(var(--muted-foreground) / var(--tw-text-opacity, 1));\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n.\\[\\&_\\[data-state\\=open\\]\\]\\:animate-\\[accordion-down_0\\.2s_ease-in-out\\] [data-state=open] {\n animation: accordion-down 0.2s ease-in-out;\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n.\\[\\&_\\[data-state\\=open\\]\\]\\:animate-\\[accordion-down_0\\.3s_cubic-bezier\\(0\\.34\\,1\\.56\\,0\\.64\\,1\\)\\] [data-state=open] {\n animation: accordion-down 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n@keyframes accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n.\\[\\&_\\[data-state\\=open\\]\\]\\:animate-\\[accordion-down_0\\.4s_cubic-bezier\\(0\\.68\\,-0\\.55\\,0\\.265\\,1\\.55\\)\\] [data-state=open] {\n animation: accordion-down 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);\n}\n.\\[\\&_\\[data-state\\=open\\]\\]\\:animate-\\[collapsible-down_0\\.2s_ease-in-out\\] [data-state=open] {\n animation: collapsible-down 0.2s ease-in-out;\n}\n.\\[\\&_\\[data-state\\=open\\]\\]\\:animate-\\[collapsible-down_0\\.3s_cubic-bezier\\(0\\.34\\,1\\.56\\,0\\.64\\,1\\)\\] [data-state=open] {\n animation: collapsible-down 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n.\\[\\&_\\[data-state\\=open\\]\\]\\:animate-\\[collapsible-down_0\\.4s_cubic-bezier\\(0\\.68\\,-0\\.55\\,0\\.265\\,1\\.55\\)\\] [data-state=open] {\n animation: collapsible-down 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);\n}\n.\\[\\&_\\[data-state\\=open\\]\\]\\:animate-\\[slide-down_0\\.3s_ease-out\\] [data-state=open] {\n animation: slide-down 0.3s ease-out;\n}\n.\\[\\&_blockquote\\]\\:border-l-4 blockquote {\n border-left-width: 4px;\n}\n.\\[\\&_blockquote\\]\\:border-muted-foreground\\/30 blockquote {\n border-color: hsl(var(--muted-foreground) / 0.3);\n}\n.\\[\\&_blockquote\\]\\:pl-4 blockquote {\n padding-left: 1rem;\n}\n.\\[\\&_blockquote\\]\\:italic blockquote {\n font-style: italic;\n}\n.\\[\\&_h1\\]\\:mb-4 h1 {\n margin-bottom: 1rem;\n}\n.\\[\\&_h1\\]\\:text-3xl h1 {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n.\\[\\&_h1\\]\\:font-bold h1 {\n font-weight: 700;\n}\n.\\[\\&_h2\\]\\:mb-3 h2 {\n margin-bottom: 0.75rem;\n}\n.\\[\\&_h2\\]\\:text-2xl h2 {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.\\[\\&_h2\\]\\:font-bold h2 {\n font-weight: 700;\n}\n.\\[\\&_h3\\]\\:mb-2 h3 {\n margin-bottom: 0.5rem;\n}\n.\\[\\&_h3\\]\\:text-xl h3 {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.\\[\\&_h3\\]\\:font-bold h3 {\n font-weight: 700;\n}\n.\\[\\&_h4\\]\\:mb-2 h4 {\n margin-bottom: 0.5rem;\n}\n.\\[\\&_h4\\]\\:text-lg h4 {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.\\[\\&_h4\\]\\:font-bold h4 {\n font-weight: 700;\n}\n.\\[\\&_h5\\]\\:mb-1 h5 {\n margin-bottom: 0.25rem;\n}\n.\\[\\&_h5\\]\\:text-base h5 {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.\\[\\&_h5\\]\\:font-bold h5 {\n font-weight: 700;\n}\n.\\[\\&_h6\\]\\:mb-1 h6 {\n margin-bottom: 0.25rem;\n}\n.\\[\\&_h6\\]\\:text-sm h6 {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.\\[\\&_h6\\]\\:font-bold h6 {\n font-weight: 700;\n}\n.\\[\\&_li\\]\\:mb-1 li {\n margin-bottom: 0.25rem;\n}\n.\\[\\&_ol\\]\\:mb-4 ol {\n margin-bottom: 1rem;\n}\n.\\[\\&_ol\\]\\:list-decimal ol {\n list-style-type: decimal;\n}\n.\\[\\&_ol\\]\\:pl-6 ol {\n padding-left: 1.5rem;\n}\n.\\[\\&_pre\\]\\:overflow-x-auto pre {\n overflow-x: auto;\n}\n.\\[\\&_pre\\]\\:rounded pre {\n border-radius: 0.25rem;\n}\n.\\[\\&_pre\\]\\:bg-muted pre {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1));\n}\n.\\[\\&_pre\\]\\:p-4 pre {\n padding: 1rem;\n}\n.\\[\\&_table\\]\\:mb-4 table {\n margin-bottom: 1rem;\n}\n.\\[\\&_table\\]\\:w-full table {\n width: 100%;\n}\n.\\[\\&_table_td\\]\\:border table td {\n border-width: 1px;\n}\n.\\[\\&_table_td\\]\\:border-border table td {\n --tw-border-opacity: 1;\n border-color: hsl(var(--border) / var(--tw-border-opacity, 1));\n}\n.\\[\\&_table_td\\]\\:p-2 table td {\n padding: 0.5rem;\n}\n.\\[\\&_table_th\\]\\:border table th {\n border-width: 1px;\n}\n.\\[\\&_table_th\\]\\:border-border table th {\n --tw-border-opacity: 1;\n border-color: hsl(var(--border) / var(--tw-border-opacity, 1));\n}\n.\\[\\&_table_th\\]\\:bg-muted table th {\n --tw-bg-opacity: 1;\n background-color: hsl(var(--muted) / var(--tw-bg-opacity, 1));\n}\n.\\[\\&_table_th\\]\\:p-2 table th {\n padding: 0.5rem;\n}\n.\\[\\&_table_th\\]\\:font-semibold table th {\n font-weight: 600;\n}\n.\\[\\&_tr\\:last-child\\]\\:border-0 tr:last-child {\n border-width: 0px;\n}\n.\\[\\&_tr\\]\\:border-b tr {\n border-bottom-width: 1px;\n}\n.\\[\\&_ul\\]\\:mb-4 ul {\n margin-bottom: 1rem;\n}\n.\\[\\&_ul\\]\\:list-disc ul {\n list-style-type: disc;\n}\n.\\[\\&_ul\\]\\:pl-6 ul {\n padding-left: 1.5rem;\n}\n');
1754
1728
  function cn(...inputs) {
1755
1729
  return twMerge(clsx(inputs));
1756
1730
  }
@@ -57972,6 +57946,29 @@ var SlashCommandsExtension = Extension.create({
57972
57946
  }
57973
57947
  });
57974
57948
 
57949
+ // #style-inject:#style-inject
57950
+ function styleInject(css2, { insertAt } = {}) {
57951
+ if (!css2 || typeof document === "undefined")
57952
+ return;
57953
+ const head = document.head || document.getElementsByTagName("head")[0];
57954
+ const style2 = document.createElement("style");
57955
+ style2.type = "text/css";
57956
+ if (insertAt === "top") {
57957
+ if (head.firstChild) {
57958
+ head.insertBefore(style2, head.firstChild);
57959
+ } else {
57960
+ head.appendChild(style2);
57961
+ }
57962
+ } else {
57963
+ head.appendChild(style2);
57964
+ }
57965
+ if (style2.styleSheet) {
57966
+ style2.styleSheet.cssText = css2;
57967
+ } else {
57968
+ style2.appendChild(document.createTextNode(css2));
57969
+ }
57970
+ }
57971
+
57975
57972
  // src/components/rich-text-editor/slash-commands.css
57976
57973
  styleInject(".slash-commands-menu {\n border-radius: var(--radius);\n border-width: 1px;\n --tw-border-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.slash-commands-menu:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\n}\n.slash-commands-menu {\n max-height: 20rem;\n min-width: 280px;\n overflow-y: auto;\n padding: 0.5rem;\n}\n.slash-command-item {\n display: flex;\n cursor: pointer;\n align-items: center;\n gap: 0.75rem;\n border-radius: calc(var(--radius) - 2px);\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.slash-command-item:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.slash-command-item:hover:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.slash-command-item.selected {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.slash-command-item.selected:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n}\n.slash-command-item svg {\n height: 1rem;\n width: 1rem;\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.slash-command-item svg:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.slash-command-item > div {\n flex: 1 1 0%;\n}\n.slash-command-item .command-name {\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 500;\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n.slash-command-item .command-name:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\n}\n.slash-command-item .command-description {\n margin-top: 0.125rem;\n font-size: 0.75rem;\n line-height: 1rem;\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.slash-command-item .command-description:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.dark .slash-commands-menu {\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.2);\n}\n");
57977
57974
 
@@ -63196,7 +63193,8 @@ function MetricCard({
63196
63193
  showSparkline = true,
63197
63194
  showForecast = false,
63198
63195
  interactive = true,
63199
- glassmorphism = false
63196
+ glassmorphism = false,
63197
+ compact = false
63200
63198
  }) {
63201
63199
  const [isHovered, setIsHovered] = t__default.useState(false);
63202
63200
  const [isMounted, setIsMounted] = t__default.useState(false);
@@ -63388,21 +63386,31 @@ function MetricCard({
63388
63386
  onClick,
63389
63387
  children: [
63390
63388
  glassmorphism && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-gradient-to-br from-primary/5 to-transparent" }),
63391
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between p-4 pb-2", children: [
63392
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
63389
+ /* @__PURE__ */ jsxs("div", { className: cn(
63390
+ "flex items-center justify-between",
63391
+ compact ? "p-3 pb-1" : "p-4 pb-2"
63392
+ ), children: [
63393
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
63393
63394
  /* @__PURE__ */ jsx(
63394
63395
  motion.div,
63395
63396
  {
63396
63397
  className: cn(
63397
- "p-2 rounded-lg",
63398
+ "rounded-lg",
63399
+ compact ? "p-1.5" : "p-2",
63398
63400
  glassmorphism ? "bg-white/10 backdrop-blur" : "bg-muted"
63399
63401
  ),
63400
63402
  whileHover: { scale: 1.05 },
63401
63403
  whileTap: { scale: 0.95 },
63402
- children: /* @__PURE__ */ jsx("div", { className: cn("h-5 w-5", colorClasses[data.color || "primary"]), children: data.icon })
63404
+ children: /* @__PURE__ */ jsx("div", { className: cn(
63405
+ colorClasses[data.color || "primary"],
63406
+ compact ? "h-4 w-4" : "h-5 w-5"
63407
+ ), children: data.icon })
63403
63408
  }
63404
63409
  ),
63405
- /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("h3", { className: "text-sm font-medium text-muted-foreground", children: data.title }) })
63410
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("h3", { className: cn(
63411
+ "font-medium text-muted-foreground",
63412
+ compact ? "text-xs" : "text-sm"
63413
+ ), children: data.title }) })
63406
63414
  ] }),
63407
63415
  interactive && /* @__PURE__ */ jsxs(MoonUIDropdownMenuPro, { children: [
63408
63416
  /* @__PURE__ */ jsx(MoonUIDropdownMenuTriggerPro, { asChild: true, children: /* @__PURE__ */ jsx(
@@ -63431,19 +63439,25 @@ function MetricCard({
63431
63439
  ] })
63432
63440
  ] })
63433
63441
  ] }),
63434
- /* @__PURE__ */ jsxs("div", { className: "px-4 pb-4", children: [
63442
+ /* @__PURE__ */ jsxs("div", { className: compact ? "px-3 pb-3" : "px-4 pb-4", children: [
63435
63443
  /* @__PURE__ */ jsx(MoonUITooltipProviderPro, { children: /* @__PURE__ */ jsxs(MoonUITooltipPro, { children: [
63436
63444
  /* @__PURE__ */ jsx(MoonUITooltipTriggerPro, { asChild: true, children: /* @__PURE__ */ jsxs(
63437
63445
  motion.div,
63438
63446
  {
63439
- className: "text-3xl font-bold tracking-tight",
63447
+ className: cn(
63448
+ "font-bold tracking-tight",
63449
+ compact ? "text-xl" : "text-3xl"
63450
+ ),
63440
63451
  animate: {
63441
- scale: isHovered ? 1.02 : 1
63452
+ scale: isHovered && !compact ? 1.02 : 1
63442
63453
  },
63443
63454
  transition: { duration: 0.2 },
63444
63455
  children: [
63445
63456
  formatValue(data.value),
63446
- data.unit && /* @__PURE__ */ jsx("span", { className: "text-lg ml-1 text-muted-foreground", children: data.unit })
63457
+ data.unit && /* @__PURE__ */ jsx("span", { className: cn(
63458
+ "ml-1 text-muted-foreground",
63459
+ compact ? "text-sm" : "text-lg"
63460
+ ), children: data.unit })
63447
63461
  ]
63448
63462
  }
63449
63463
  ) }),
@@ -63458,7 +63472,8 @@ function MetricCard({
63458
63472
  motion.div,
63459
63473
  {
63460
63474
  className: cn(
63461
- "flex items-center gap-1 text-sm mt-2",
63475
+ "flex items-center gap-1 mt-1",
63476
+ compact ? "text-xs" : "text-sm",
63462
63477
  getChangeColor(data.change.type)
63463
63478
  ),
63464
63479
  initial: { opacity: 0, x: -10 },
@@ -63496,9 +63511,9 @@ function MetricCard({
63496
63511
  ]
63497
63512
  }
63498
63513
  ),
63499
- renderProgress()
63514
+ !compact && renderProgress()
63500
63515
  ] }),
63501
- showSparkline && renderSparkline()
63516
+ showSparkline && !compact && renderSparkline()
63502
63517
  ]
63503
63518
  }
63504
63519
  )
@@ -63522,11 +63537,13 @@ function ChartWidget({
63522
63537
  loading = false,
63523
63538
  refreshing = false,
63524
63539
  glassmorphism = false,
63525
- interactive = true
63540
+ interactive = true,
63541
+ compact = false
63526
63542
  }) {
63527
63543
  const [colorScheme, setColorScheme] = t__default.useState("default");
63528
63544
  const [isFullscreen, setIsFullscreen] = t__default.useState(false);
63529
63545
  const colors = CHART_COLORS[colorScheme];
63546
+ const chartHeight = compact ? 120 : height;
63530
63547
  const CustomTooltip2 = ({ active, payload, label }) => {
63531
63548
  if (!active || !payload)
63532
63549
  return null;
@@ -63567,12 +63584,12 @@ function ChartWidget({
63567
63584
  };
63568
63585
  switch (data.type) {
63569
63586
  case "line":
63570
- return /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs(LineChart, { ...chartProps, children: [
63571
- /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", className: "opacity-30" }),
63572
- /* @__PURE__ */ jsx(XAxis, { dataKey: "name" }),
63573
- /* @__PURE__ */ jsx(YAxis, {}),
63574
- /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsx(CustomTooltip2, {}) }),
63575
- interactive && /* @__PURE__ */ jsx(Legend, {}),
63587
+ return /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: chartHeight, children: /* @__PURE__ */ jsxs(LineChart, { ...chartProps, children: [
63588
+ !compact && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", className: "opacity-30" }),
63589
+ /* @__PURE__ */ jsx(XAxis, { dataKey: "name", tick: compact ? { fontSize: 10 } : void 0, hide: compact }),
63590
+ /* @__PURE__ */ jsx(YAxis, { tick: compact ? { fontSize: 10 } : void 0, hide: compact }),
63591
+ !compact && /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsx(CustomTooltip2, {}) }),
63592
+ interactive && !compact && /* @__PURE__ */ jsx(Legend, {}),
63576
63593
  Object.keys(data.data[0]).filter((key) => key !== "name").map((key, index2) => /* @__PURE__ */ jsx(
63577
63594
  Line,
63578
63595
  {
@@ -63588,12 +63605,12 @@ function ChartWidget({
63588
63605
  ))
63589
63606
  ] }) });
63590
63607
  case "bar":
63591
- return /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs(BarChart, { ...chartProps, children: [
63592
- /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", className: "opacity-30" }),
63593
- /* @__PURE__ */ jsx(XAxis, { dataKey: "name" }),
63594
- /* @__PURE__ */ jsx(YAxis, {}),
63595
- /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsx(CustomTooltip2, {}) }),
63596
- interactive && /* @__PURE__ */ jsx(Legend, {}),
63608
+ return /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: chartHeight, children: /* @__PURE__ */ jsxs(BarChart, { ...chartProps, children: [
63609
+ !compact && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", className: "opacity-30" }),
63610
+ /* @__PURE__ */ jsx(XAxis, { dataKey: "name", tick: compact ? { fontSize: 10 } : void 0, hide: compact }),
63611
+ /* @__PURE__ */ jsx(YAxis, { tick: compact ? { fontSize: 10 } : void 0, hide: compact }),
63612
+ !compact && /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsx(CustomTooltip2, {}) }),
63613
+ interactive && !compact && /* @__PURE__ */ jsx(Legend, {}),
63597
63614
  Object.keys(data.data[0]).filter((key) => key !== "name").map((key, index2) => /* @__PURE__ */ jsx(
63598
63615
  Bar,
63599
63616
  {
@@ -63606,12 +63623,12 @@ function ChartWidget({
63606
63623
  ))
63607
63624
  ] }) });
63608
63625
  case "area":
63609
- return /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs(AreaChart, { ...chartProps, children: [
63610
- /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", className: "opacity-30" }),
63611
- /* @__PURE__ */ jsx(XAxis, { dataKey: "name" }),
63612
- /* @__PURE__ */ jsx(YAxis, {}),
63613
- /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsx(CustomTooltip2, {}) }),
63614
- interactive && /* @__PURE__ */ jsx(Legend, {}),
63626
+ return /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: chartHeight, children: /* @__PURE__ */ jsxs(AreaChart, { ...chartProps, children: [
63627
+ !compact && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", className: "opacity-30" }),
63628
+ /* @__PURE__ */ jsx(XAxis, { dataKey: "name", tick: compact ? { fontSize: 10 } : void 0, hide: compact }),
63629
+ /* @__PURE__ */ jsx(YAxis, { tick: compact ? { fontSize: 10 } : void 0, hide: compact }),
63630
+ !compact && /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsx(CustomTooltip2, {}) }),
63631
+ interactive && !compact && /* @__PURE__ */ jsx(Legend, {}),
63615
63632
  Object.keys(data.data[0]).filter((key) => key !== "name").map((key, index2) => /* @__PURE__ */ jsx(
63616
63633
  Area,
63617
63634
  {
@@ -63627,7 +63644,7 @@ function ChartWidget({
63627
63644
  ] }) });
63628
63645
  case "pie":
63629
63646
  case "donut":
63630
- return /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs(PieChart, { children: [
63647
+ return /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: chartHeight, children: /* @__PURE__ */ jsxs(PieChart, { children: [
63631
63648
  /* @__PURE__ */ jsx(
63632
63649
  Pie,
63633
63650
  {
@@ -63635,20 +63652,20 @@ function ChartWidget({
63635
63652
  cx: "50%",
63636
63653
  cy: "50%",
63637
63654
  labelLine: false,
63638
- label: interactive,
63639
- outerRadius: data.type === "donut" ? 80 : 100,
63640
- innerRadius: data.type === "donut" ? 50 : 0,
63655
+ label: interactive && !compact,
63656
+ outerRadius: compact ? 40 : data.type === "donut" ? 80 : 100,
63657
+ innerRadius: data.type === "donut" ? compact ? 25 : 50 : 0,
63641
63658
  fill: "#8884d8",
63642
63659
  dataKey: "value",
63643
63660
  isAnimationActive: false,
63644
63661
  children: data.data.map((entry, index2) => /* @__PURE__ */ jsx(Cell, { fill: colors[index2 % colors.length] }, `cell-${index2}`))
63645
63662
  }
63646
63663
  ),
63647
- /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsx(CustomTooltip2, {}) }),
63648
- interactive && /* @__PURE__ */ jsx(Legend, {})
63664
+ !compact && /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsx(CustomTooltip2, {}) }),
63665
+ interactive && !compact && /* @__PURE__ */ jsx(Legend, {})
63649
63666
  ] }) });
63650
63667
  case "radar":
63651
- return /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs(RadarChart, { data: data.data, children: [
63668
+ return /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: chartHeight, children: /* @__PURE__ */ jsxs(RadarChart, { data: data.data, children: [
63652
63669
  /* @__PURE__ */ jsx(PolarGrid, {}),
63653
63670
  /* @__PURE__ */ jsx(PolarAngleAxis, { dataKey: "subject" }),
63654
63671
  /* @__PURE__ */ jsx(PolarRadiusAxis, {}),
@@ -63664,8 +63681,8 @@ function ChartWidget({
63664
63681
  },
63665
63682
  key
63666
63683
  )),
63667
- /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsx(CustomTooltip2, {}) }),
63668
- interactive && /* @__PURE__ */ jsx(Legend, {})
63684
+ !compact && /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsx(CustomTooltip2, {}) }),
63685
+ interactive && !compact && /* @__PURE__ */ jsx(Legend, {})
63669
63686
  ] }) });
63670
63687
  default:
63671
63688
  return null;
@@ -63692,12 +63709,18 @@ function ChartWidget({
63692
63709
  isFullscreen && "h-full",
63693
63710
  className
63694
63711
  ), children: [
63695
- /* @__PURE__ */ jsxs(MoonUICardHeaderPro, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
63712
+ /* @__PURE__ */ jsxs(MoonUICardHeaderPro, { className: cn(
63713
+ "flex flex-row items-center justify-between space-y-0",
63714
+ compact ? "pb-1 pt-2 px-3" : interactive ? "pb-2" : "pb-1 pt-3"
63715
+ ), children: [
63696
63716
  /* @__PURE__ */ jsxs("div", { children: [
63697
- /* @__PURE__ */ jsx(MoonUICardTitlePro, { className: "text-base font-semibold", children: title }),
63698
- description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground mt-1", children: description })
63717
+ /* @__PURE__ */ jsx(MoonUICardTitlePro, { className: cn(
63718
+ "font-semibold",
63719
+ compact ? "text-xs" : interactive ? "text-base" : "text-sm"
63720
+ ), children: title }),
63721
+ description && interactive && !compact && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground mt-1", children: description })
63699
63722
  ] }),
63700
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
63723
+ !compact && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
63701
63724
  refreshing && /* @__PURE__ */ jsx(
63702
63725
  motion.div,
63703
63726
  {
@@ -63762,14 +63785,17 @@ function ChartWidget({
63762
63785
  ] })
63763
63786
  ] })
63764
63787
  ] }),
63765
- /* @__PURE__ */ jsx(MoonUICardContentPro, { className: "p-0 px-4 pb-4", children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: loading ? /* @__PURE__ */ jsx(
63788
+ /* @__PURE__ */ jsx(MoonUICardContentPro, { className: cn(
63789
+ "p-0",
63790
+ compact ? "px-2 pb-2" : interactive ? "px-4 pb-4" : "px-2 pb-2"
63791
+ ), children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: loading ? /* @__PURE__ */ jsx(
63766
63792
  motion.div,
63767
63793
  {
63768
63794
  initial: { opacity: 0 },
63769
63795
  animate: { opacity: 1 },
63770
63796
  exit: { opacity: 0 },
63771
63797
  className: "flex items-center justify-center",
63772
- style: { height },
63798
+ style: { height: chartHeight },
63773
63799
  children: /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
63774
63800
  /* @__PURE__ */ jsx("div", { className: "animate-pulse bg-muted h-4 w-32 rounded" }),
63775
63801
  /* @__PURE__ */ jsx("div", { className: "animate-pulse bg-muted h-4 w-24 rounded" }),
@@ -63803,7 +63829,9 @@ function ActivityFeed({
63803
63829
  showFilters = true,
63804
63830
  showNotifications = true,
63805
63831
  glassmorphism = false,
63806
- realtime = false
63832
+ realtime = false,
63833
+ maxItems,
63834
+ compact = false
63807
63835
  }) {
63808
63836
  const [filter, setFilter] = t__default.useState("all");
63809
63837
  const [notificationsEnabled, setNotificationsEnabled] = t__default.useState(true);
@@ -63858,9 +63886,12 @@ function ActivityFeed({
63858
63886
  return "text-red-500 bg-red-100 dark:bg-red-900/20";
63859
63887
  }
63860
63888
  };
63861
- const filteredItems = [...newItems, ...items].filter(
63889
+ let filteredItems = [...newItems, ...items].filter(
63862
63890
  (item) => filter === "all" || item.type === filter
63863
63891
  );
63892
+ if (maxItems) {
63893
+ filteredItems = filteredItems.slice(0, maxItems);
63894
+ }
63864
63895
  const renderActivityItem = (item, isNew = false) => /* @__PURE__ */ jsxs(
63865
63896
  motion.div,
63866
63897
  {
@@ -63868,40 +63899,60 @@ function ActivityFeed({
63868
63899
  initial: { opacity: 0, x: -20 },
63869
63900
  animate: { opacity: 1, x: 0 },
63870
63901
  exit: { opacity: 0, x: 20 },
63871
- whileHover: { x: 4 },
63902
+ whileHover: { x: compact ? 2 : 4 },
63872
63903
  transition: { duration: 0.2 },
63873
63904
  className: cn(
63874
- "group relative flex gap-3 p-3 rounded-lg cursor-pointer transition-colors",
63905
+ "group relative flex gap-3 rounded-lg cursor-pointer transition-colors",
63906
+ compact ? "p-2" : "p-3",
63875
63907
  "hover:bg-muted/50",
63876
63908
  isNew && "bg-primary/5 border-l-2 border-primary"
63877
63909
  ),
63878
63910
  onClick: () => onItemClick?.(item),
63879
63911
  children: [
63880
- /* @__PURE__ */ jsx("div", { className: "absolute left-7 top-12 bottom-0 w-px bg-border" }),
63881
- /* @__PURE__ */ jsx("div", { className: "relative z-10 flex-shrink-0", children: item.user?.avatar ? /* @__PURE__ */ jsxs(MoonUIAvatarPro, { className: "h-8 w-8", children: [
63912
+ !compact && /* @__PURE__ */ jsx("div", { className: "absolute left-7 top-12 bottom-0 w-px bg-border" }),
63913
+ /* @__PURE__ */ jsx("div", { className: "relative z-10 flex-shrink-0", children: item.user?.avatar ? /* @__PURE__ */ jsxs(MoonUIAvatarPro, { className: compact ? "h-6 w-6" : "h-8 w-8", children: [
63882
63914
  /* @__PURE__ */ jsx(MoonUIAvatarImagePro, { src: item.user.avatar }),
63883
63915
  /* @__PURE__ */ jsx(MoonUIAvatarFallbackPro, { children: item.user.name[0] })
63884
63916
  ] }) : /* @__PURE__ */ jsx("div", { className: cn(
63885
- "h-8 w-8 rounded-full flex items-center justify-center",
63917
+ compact ? "h-6 w-6" : "h-8 w-8",
63918
+ "rounded-full flex items-center justify-center",
63886
63919
  getTypeColor(item.type)
63887
63920
  ), children: item.icon || getTypeIcon(item.type) }) }),
63888
63921
  /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
63889
- /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-2", children: [
63890
- /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
63891
- /* @__PURE__ */ jsxs("p", { className: "text-sm font-medium leading-tight", children: [
63892
- item.user?.name && /* @__PURE__ */ jsxs("span", { className: "text-foreground", children: [
63893
- item.user.name,
63894
- " "
63922
+ compact ? (
63923
+ // Compact layout - sadece başlık ve kısa açıklama
63924
+ /* @__PURE__ */ jsxs("div", { className: "space-y-0.5", children: [
63925
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-2", children: [
63926
+ /* @__PURE__ */ jsxs("p", { className: "text-xs font-medium leading-tight", children: [
63927
+ item.user?.name && /* @__PURE__ */ jsxs("span", { className: "text-foreground", children: [
63928
+ item.user.name,
63929
+ " "
63930
+ ] }),
63931
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: item.title })
63895
63932
  ] }),
63896
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: item.title })
63933
+ /* @__PURE__ */ jsx("div", { className: "text-[10px] text-muted-foreground", children: isMounted ? formatDistanceToNow(item.timestamp, { addSuffix: false }).replace("about ", "").replace("over ", "") : "" })
63897
63934
  ] }),
63898
- item.description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground mt-0.5 line-clamp-2", children: item.description })
63899
- ] }),
63900
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 text-xs text-muted-foreground whitespace-nowrap", children: [
63901
- /* @__PURE__ */ jsx(Clock, { className: "h-3 w-3" }),
63902
- isMounted ? formatDistanceToNow(item.timestamp, { addSuffix: true }) : "Loading..."
63935
+ item.description && /* @__PURE__ */ jsx("p", { className: "text-[10px] text-muted-foreground line-clamp-1", children: item.description })
63903
63936
  ] })
63904
- ] }),
63937
+ ) : (
63938
+ // Normal layout
63939
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-2", children: [
63940
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
63941
+ /* @__PURE__ */ jsxs("p", { className: "text-sm font-medium leading-tight", children: [
63942
+ item.user?.name && /* @__PURE__ */ jsxs("span", { className: "text-foreground", children: [
63943
+ item.user.name,
63944
+ " "
63945
+ ] }),
63946
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: item.title })
63947
+ ] }),
63948
+ item.description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground mt-0.5 line-clamp-2", children: item.description })
63949
+ ] }),
63950
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 text-xs text-muted-foreground whitespace-nowrap", children: [
63951
+ /* @__PURE__ */ jsx(Clock, { className: "h-3 w-3" }),
63952
+ isMounted ? formatDistanceToNow(item.timestamp, { addSuffix: true }) : "Loading..."
63953
+ ] })
63954
+ ] })
63955
+ ),
63905
63956
  isNew && /* @__PURE__ */ jsx(
63906
63957
  motion.div,
63907
63958
  {
@@ -63912,7 +63963,7 @@ function ActivityFeed({
63912
63963
  }
63913
63964
  )
63914
63965
  ] }),
63915
- /* @__PURE__ */ jsx("div", { className: "opacity-0 group-hover:opacity-100 transition-opacity", children: /* @__PURE__ */ jsx(
63966
+ !compact && /* @__PURE__ */ jsx("div", { className: "opacity-0 group-hover:opacity-100 transition-opacity", children: /* @__PURE__ */ jsx(
63916
63967
  MoonUIButtonPro,
63917
63968
  {
63918
63969
  variant: "ghost",
@@ -63934,16 +63985,25 @@ function ActivityFeed({
63934
63985
  glassmorphism && "bg-background/60 backdrop-blur-md border-white/10",
63935
63986
  className
63936
63987
  ), children: [
63937
- /* @__PURE__ */ jsxs(MoonUICardHeaderPro, { className: "flex flex-row items-center justify-between space-y-0 pb-3", children: [
63988
+ /* @__PURE__ */ jsxs(MoonUICardHeaderPro, { className: cn(
63989
+ "flex flex-row items-center justify-between space-y-0",
63990
+ compact ? "pb-2 pt-3" : "pb-3"
63991
+ ), children: [
63938
63992
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
63939
- /* @__PURE__ */ jsx(Activity, { className: "h-4 w-4 text-muted-foreground" }),
63940
- /* @__PURE__ */ jsx(MoonUICardTitlePro, { className: "text-base font-semibold", children: title }),
63941
- realtime && /* @__PURE__ */ jsxs(MoonUIBadgePro, { variant: "secondary", className: "text-xs", children: [
63993
+ /* @__PURE__ */ jsx(Activity, { className: cn(
63994
+ "text-muted-foreground",
63995
+ compact ? "h-3.5 w-3.5" : "h-4 w-4"
63996
+ ) }),
63997
+ /* @__PURE__ */ jsx(MoonUICardTitlePro, { className: cn(
63998
+ "font-semibold",
63999
+ compact ? "text-sm" : "text-base"
64000
+ ), children: title }),
64001
+ realtime && !compact && /* @__PURE__ */ jsxs(MoonUIBadgePro, { variant: "secondary", className: "text-xs", children: [
63942
64002
  /* @__PURE__ */ jsx("span", { className: "mr-1 h-1.5 w-1.5 rounded-full bg-green-500 animate-pulse" }),
63943
64003
  "Live"
63944
64004
  ] })
63945
64005
  ] }),
63946
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
64006
+ !compact && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
63947
64007
  showFilters && /* @__PURE__ */ jsxs(MoonUIDropdownMenuPro, { children: [
63948
64008
  /* @__PURE__ */ jsx(MoonUIDropdownMenuTriggerPro, { asChild: true, children: /* @__PURE__ */ jsxs(MoonUIButtonPro, { variant: "ghost", size: "sm", className: "h-8 px-2", children: [
63949
64009
  /* @__PURE__ */ jsx(Filter, { className: "h-4 w-4 mr-1" }),
@@ -63995,7 +64055,7 @@ function ActivityFeed({
63995
64055
  )
63996
64056
  ] })
63997
64057
  ] }),
63998
- /* @__PURE__ */ jsx(MoonUICardContentPro, { className: "p-0", children: /* @__PURE__ */ jsx(ScrollArea, { className: "px-4 pb-4", style: { height }, children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "popLayout", children: loading ? /* @__PURE__ */ jsx(
64058
+ /* @__PURE__ */ jsx(MoonUICardContentPro, { className: "p-0", children: /* @__PURE__ */ jsx(ScrollArea, { className: compact ? "px-3 pb-3" : "px-4 pb-4", style: { height: compact ? Math.min(height, 200) : height }, children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "popLayout", children: loading ? /* @__PURE__ */ jsx(
63999
64059
  motion.div,
64000
64060
  {
64001
64061
  initial: { opacity: 0 },
@@ -64032,7 +64092,8 @@ function ProgressWidget({
64032
64092
  data,
64033
64093
  title = "Progress",
64034
64094
  className,
64035
- glassmorphism = false
64095
+ glassmorphism = false,
64096
+ compact = false
64036
64097
  }) {
64037
64098
  const items = Array.isArray(data) ? data : [data];
64038
64099
  const [isMounted, setIsMounted] = t__default.useState(false);
@@ -64127,7 +64188,8 @@ function ComparisonWidget({
64127
64188
  data,
64128
64189
  title = "Comparison",
64129
64190
  className,
64130
- glassmorphism = false
64191
+ glassmorphism = false,
64192
+ compact = false
64131
64193
  }) {
64132
64194
  const [isMounted, setIsMounted] = t__default.useState(false);
64133
64195
  t__default.useEffect(() => {
@@ -64263,8 +64325,8 @@ function DashboardGrid({
64263
64325
  breakpoints = { lg: 1200, md: 996, sm: 768, xs: 480, xxs: 0 },
64264
64326
  cols = { lg: 12, md: 8, sm: 4, xs: 2, xxs: 1 },
64265
64327
  rowHeight = 80,
64266
- margin = [16, 24],
64267
- containerPadding = [0, 0]
64328
+ margin = [16, 16],
64329
+ containerPadding = [16, 16]
64268
64330
  }) {
64269
64331
  const [layouts, setLayouts] = t__default.useState({});
64270
64332
  const [currentBreakpoint, setCurrentBreakpoint] = t__default.useState("lg");
@@ -64895,6 +64957,656 @@ function TimeRangePicker({
64895
64957
  )
64896
64958
  ] });
64897
64959
  }
64960
+ function MapWidget({
64961
+ id,
64962
+ title,
64963
+ description,
64964
+ locations,
64965
+ className,
64966
+ height = 300,
64967
+ glassmorphism = false,
64968
+ compact = false,
64969
+ interactive = true,
64970
+ onLocationClick
64971
+ }) {
64972
+ const [selectedLocation, setSelectedLocation] = t__default.useState(null);
64973
+ const [zoom, setZoom] = t__default.useState(1);
64974
+ const mapHeight = compact ? 150 : height;
64975
+ const getLocationColor = (type) => {
64976
+ switch (type) {
64977
+ case "primary":
64978
+ return "bg-primary text-primary-foreground";
64979
+ case "secondary":
64980
+ return "bg-secondary text-secondary-foreground";
64981
+ case "warning":
64982
+ return "bg-yellow-500 text-white";
64983
+ case "danger":
64984
+ return "bg-destructive text-destructive-foreground";
64985
+ default:
64986
+ return "bg-primary text-primary-foreground";
64987
+ }
64988
+ };
64989
+ return /* @__PURE__ */ jsxs(MoonUICardPro, { className: cn(
64990
+ "relative overflow-hidden",
64991
+ glassmorphism && "bg-background/60 backdrop-blur-md border-white/10",
64992
+ className
64993
+ ), children: [
64994
+ /* @__PURE__ */ jsxs(MoonUICardHeaderPro, { className: cn(
64995
+ "flex flex-row items-center justify-between space-y-0",
64996
+ compact ? "pb-1 pt-2 px-3" : "pb-3"
64997
+ ), children: [
64998
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
64999
+ /* @__PURE__ */ jsx(Globe, { className: cn(
65000
+ "text-muted-foreground",
65001
+ compact ? "h-3.5 w-3.5" : "h-4 w-4"
65002
+ ) }),
65003
+ /* @__PURE__ */ jsx(MoonUICardTitlePro, { className: cn(
65004
+ "font-semibold",
65005
+ compact ? "text-xs" : "text-base"
65006
+ ), children: title })
65007
+ ] }),
65008
+ !compact && interactive && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
65009
+ /* @__PURE__ */ jsx(
65010
+ MoonUIButtonPro,
65011
+ {
65012
+ variant: "ghost",
65013
+ size: "sm",
65014
+ className: "h-7 w-7 p-0",
65015
+ onClick: () => setZoom(Math.min(zoom + 0.2, 2)),
65016
+ children: /* @__PURE__ */ jsx(ZoomIn, { className: "h-3.5 w-3.5" })
65017
+ }
65018
+ ),
65019
+ /* @__PURE__ */ jsx(
65020
+ MoonUIButtonPro,
65021
+ {
65022
+ variant: "ghost",
65023
+ size: "sm",
65024
+ className: "h-7 w-7 p-0",
65025
+ onClick: () => setZoom(Math.max(zoom - 0.2, 0.5)),
65026
+ children: /* @__PURE__ */ jsx(ZoomOut, { className: "h-3.5 w-3.5" })
65027
+ }
65028
+ )
65029
+ ] })
65030
+ ] }),
65031
+ /* @__PURE__ */ jsxs(MoonUICardContentPro, { className: cn(
65032
+ "p-0",
65033
+ compact ? "px-2 pb-2" : "px-4 pb-4"
65034
+ ), children: [
65035
+ /* @__PURE__ */ jsxs(
65036
+ "div",
65037
+ {
65038
+ className: "relative bg-gradient-to-br from-blue-50 to-blue-100 dark:from-blue-950 dark:to-blue-900 rounded-lg overflow-hidden",
65039
+ style: { height: mapHeight },
65040
+ children: [
65041
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 opacity-20", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 100 50", className: "w-full h-full", children: [
65042
+ /* @__PURE__ */ jsx(
65043
+ "path",
65044
+ {
65045
+ d: "M10,25 Q20,20 30,25 T50,25 Q60,20 70,25 T90,25",
65046
+ stroke: "currentColor",
65047
+ strokeWidth: "0.5",
65048
+ fill: "none",
65049
+ className: "text-primary"
65050
+ }
65051
+ ),
65052
+ /* @__PURE__ */ jsx("circle", { cx: "20", cy: "20", r: "8", fill: "currentColor", opacity: "0.1", className: "text-primary" }),
65053
+ /* @__PURE__ */ jsx("circle", { cx: "70", cy: "30", r: "10", fill: "currentColor", opacity: "0.1", className: "text-primary" }),
65054
+ /* @__PURE__ */ jsx("circle", { cx: "45", cy: "25", r: "6", fill: "currentColor", opacity: "0.1", className: "text-primary" })
65055
+ ] }) }),
65056
+ /* @__PURE__ */ jsx(
65057
+ "div",
65058
+ {
65059
+ className: "relative w-full h-full",
65060
+ style: { transform: `scale(${zoom})` },
65061
+ children: locations.map((location, index2) => {
65062
+ const x = (location.lng + 180) / 360 * 100;
65063
+ const y = (90 - location.lat) / 180 * 100;
65064
+ return /* @__PURE__ */ jsxs(
65065
+ motion.div,
65066
+ {
65067
+ className: "absolute",
65068
+ style: { left: `${x}%`, top: `${y}%` },
65069
+ initial: { scale: 0 },
65070
+ animate: { scale: 1 },
65071
+ transition: { delay: index2 * 0.05 },
65072
+ children: [
65073
+ /* @__PURE__ */ jsxs(
65074
+ motion.button,
65075
+ {
65076
+ whileHover: { scale: 1.2 },
65077
+ whileTap: { scale: 0.9 },
65078
+ className: cn(
65079
+ "relative flex items-center justify-center rounded-full shadow-lg transition-all",
65080
+ compact ? "h-4 w-4" : "h-8 w-8",
65081
+ getLocationColor(location.type),
65082
+ selectedLocation?.id === location.id && "ring-2 ring-offset-2"
65083
+ ),
65084
+ onClick: () => {
65085
+ setSelectedLocation(location);
65086
+ onLocationClick?.(location);
65087
+ },
65088
+ children: [
65089
+ /* @__PURE__ */ jsx(MapPin, { className: cn(
65090
+ "text-current",
65091
+ compact ? "h-2.5 w-2.5" : "h-4 w-4"
65092
+ ) }),
65093
+ location.value && !compact && /* @__PURE__ */ jsx("span", { className: "absolute -top-2 -right-2 bg-background text-foreground text-xs font-bold px-1 rounded border shadow", children: location.value })
65094
+ ]
65095
+ }
65096
+ ),
65097
+ !compact && /* @__PURE__ */ jsx("div", { className: "absolute top-full left-1/2 -translate-x-1/2 mt-1 pointer-events-none", children: /* @__PURE__ */ jsx("div", { className: "bg-popover text-popover-foreground px-2 py-1 rounded text-xs whitespace-nowrap shadow-lg opacity-0 hover:opacity-100 transition-opacity", children: location.name }) })
65098
+ ]
65099
+ },
65100
+ location.id
65101
+ );
65102
+ })
65103
+ }
65104
+ ),
65105
+ selectedLocation && !compact && /* @__PURE__ */ jsx(
65106
+ motion.div,
65107
+ {
65108
+ initial: { opacity: 0, y: 20 },
65109
+ animate: { opacity: 1, y: 0 },
65110
+ className: "absolute bottom-2 left-2 right-2 bg-background/95 backdrop-blur-sm rounded-lg p-3 shadow-lg",
65111
+ children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between", children: [
65112
+ /* @__PURE__ */ jsxs("div", { children: [
65113
+ /* @__PURE__ */ jsx("h4", { className: "font-semibold text-sm", children: selectedLocation.name }),
65114
+ selectedLocation.description && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground mt-0.5", children: selectedLocation.description }),
65115
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mt-1 text-xs text-muted-foreground", children: [
65116
+ /* @__PURE__ */ jsx(Navigation, { className: "h-3 w-3" }),
65117
+ /* @__PURE__ */ jsxs("span", { children: [
65118
+ selectedLocation.lat.toFixed(2),
65119
+ ", ",
65120
+ selectedLocation.lng.toFixed(2)
65121
+ ] })
65122
+ ] })
65123
+ ] }),
65124
+ selectedLocation.value && /* @__PURE__ */ jsx("div", { className: "text-right", children: /* @__PURE__ */ jsx("p", { className: "text-lg font-bold", children: selectedLocation.value }) })
65125
+ ] })
65126
+ }
65127
+ )
65128
+ ]
65129
+ }
65130
+ ),
65131
+ compact && locations.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-2 space-y-1", children: locations.slice(0, 3).map((location) => /* @__PURE__ */ jsxs(
65132
+ "div",
65133
+ {
65134
+ className: "flex items-center justify-between text-xs cursor-pointer hover:bg-muted/50 rounded px-1 py-0.5",
65135
+ onClick: () => {
65136
+ setSelectedLocation(location);
65137
+ onLocationClick?.(location);
65138
+ },
65139
+ children: [
65140
+ /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
65141
+ /* @__PURE__ */ jsx(MapPin, { className: "h-2.5 w-2.5" }),
65142
+ location.name
65143
+ ] }),
65144
+ location.value && /* @__PURE__ */ jsx("span", { className: "font-semibold", children: location.value })
65145
+ ]
65146
+ },
65147
+ location.id
65148
+ )) })
65149
+ ] })
65150
+ ] });
65151
+ }
65152
+ function TableWidget({
65153
+ id,
65154
+ title,
65155
+ description,
65156
+ columns,
65157
+ rows,
65158
+ className,
65159
+ height = 300,
65160
+ glassmorphism = false,
65161
+ compact = false,
65162
+ interactive = true,
65163
+ onRowClick,
65164
+ sortable = true,
65165
+ showHeader = true
65166
+ }) {
65167
+ const [sortColumn, setSortColumn] = t__default.useState(null);
65168
+ const [sortDirection, setSortDirection] = t__default.useState("asc");
65169
+ const tableHeight = compact ? 150 : height;
65170
+ const handleSort = (columnKey) => {
65171
+ if (!sortable)
65172
+ return;
65173
+ if (sortColumn === columnKey) {
65174
+ setSortDirection(sortDirection === "asc" ? "desc" : "asc");
65175
+ } else {
65176
+ setSortColumn(columnKey);
65177
+ setSortDirection("asc");
65178
+ }
65179
+ };
65180
+ const sortedRows = t__default.useMemo(() => {
65181
+ if (!sortColumn)
65182
+ return rows;
65183
+ return [...rows].sort((a, b) => {
65184
+ const aValue = a[sortColumn];
65185
+ const bValue = b[sortColumn];
65186
+ if (aValue === bValue)
65187
+ return 0;
65188
+ const comparison = aValue < bValue ? -1 : 1;
65189
+ return sortDirection === "asc" ? comparison : -comparison;
65190
+ });
65191
+ }, [rows, sortColumn, sortDirection]);
65192
+ const columnWidth = compact ? "min-w-[60px]" : "min-w-[100px]";
65193
+ return /* @__PURE__ */ jsxs(MoonUICardPro, { className: cn(
65194
+ "relative overflow-hidden",
65195
+ glassmorphism && "bg-background/60 backdrop-blur-md border-white/10",
65196
+ className
65197
+ ), children: [
65198
+ showHeader && /* @__PURE__ */ jsxs(MoonUICardHeaderPro, { className: cn(
65199
+ "flex flex-row items-center justify-between space-y-0",
65200
+ compact ? "pb-1 pt-2 px-3" : "pb-3"
65201
+ ), children: [
65202
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
65203
+ /* @__PURE__ */ jsx(Table$1, { className: cn(
65204
+ "text-muted-foreground",
65205
+ compact ? "h-3.5 w-3.5" : "h-4 w-4"
65206
+ ) }),
65207
+ /* @__PURE__ */ jsx(MoonUICardTitlePro, { className: cn(
65208
+ "font-semibold",
65209
+ compact ? "text-xs" : "text-base"
65210
+ ), children: title })
65211
+ ] }),
65212
+ description && !compact && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description })
65213
+ ] }),
65214
+ /* @__PURE__ */ jsxs(MoonUICardContentPro, { className: cn(
65215
+ "p-0",
65216
+ compact ? "px-1" : "px-2"
65217
+ ), children: [
65218
+ /* @__PURE__ */ jsx(ScrollArea, { className: "w-full", style: { height: tableHeight }, children: /* @__PURE__ */ jsx("div", { className: "w-full", children: /* @__PURE__ */ jsxs("table", { className: "w-full", children: [
65219
+ /* @__PURE__ */ jsx("thead", { className: cn(
65220
+ "sticky top-0 z-10 bg-muted/50 backdrop-blur-sm",
65221
+ compact && "text-[10px]"
65222
+ ), children: /* @__PURE__ */ jsxs("tr", { className: "border-b", children: [
65223
+ columns.map((column) => /* @__PURE__ */ jsx(
65224
+ "th",
65225
+ {
65226
+ className: cn(
65227
+ "font-medium text-left",
65228
+ compact ? "px-1 py-1" : "px-3 py-2",
65229
+ column.align === "center" && "text-center",
65230
+ column.align === "right" && "text-right",
65231
+ columnWidth,
65232
+ column.width
65233
+ ),
65234
+ children: column.sortable !== false && sortable ? /* @__PURE__ */ jsxs(
65235
+ MoonUIButtonPro,
65236
+ {
65237
+ variant: "ghost",
65238
+ size: "sm",
65239
+ className: cn(
65240
+ "h-auto p-0 font-medium hover:bg-transparent",
65241
+ compact ? "text-[10px]" : "text-xs"
65242
+ ),
65243
+ onClick: () => handleSort(column.key),
65244
+ children: [
65245
+ /* @__PURE__ */ jsx("span", { children: column.label }),
65246
+ sortColumn === column.key ? sortDirection === "asc" ? /* @__PURE__ */ jsx(ArrowUp, { className: cn(
65247
+ "ml-1",
65248
+ compact ? "h-2.5 w-2.5" : "h-3 w-3"
65249
+ ) }) : /* @__PURE__ */ jsx(ArrowDown, { className: cn(
65250
+ "ml-1",
65251
+ compact ? "h-2.5 w-2.5" : "h-3 w-3"
65252
+ ) }) : /* @__PURE__ */ jsx(ArrowUpDown, { className: cn(
65253
+ "ml-1 opacity-50",
65254
+ compact ? "h-2.5 w-2.5" : "h-3 w-3"
65255
+ ) })
65256
+ ]
65257
+ }
65258
+ ) : /* @__PURE__ */ jsx("span", { children: column.label })
65259
+ },
65260
+ column.key
65261
+ )),
65262
+ interactive && !compact && /* @__PURE__ */ jsx("th", { className: "w-8" })
65263
+ ] }) }),
65264
+ /* @__PURE__ */ jsx("tbody", { children: sortedRows.length === 0 ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx(
65265
+ "td",
65266
+ {
65267
+ colSpan: columns.length + (interactive && !compact ? 1 : 0),
65268
+ className: cn(
65269
+ "text-center text-muted-foreground",
65270
+ compact ? "py-4 text-xs" : "py-8"
65271
+ ),
65272
+ children: "No data available"
65273
+ }
65274
+ ) }) : sortedRows.map((row, rowIndex) => /* @__PURE__ */ jsxs(
65275
+ motion.tr,
65276
+ {
65277
+ initial: { opacity: 0, x: -20 },
65278
+ animate: { opacity: 1, x: 0 },
65279
+ transition: { delay: rowIndex * 0.02 },
65280
+ className: cn(
65281
+ "border-b transition-colors",
65282
+ interactive && "hover:bg-muted/50 cursor-pointer"
65283
+ ),
65284
+ onClick: () => interactive && onRowClick?.(row),
65285
+ children: [
65286
+ columns.map((column) => {
65287
+ const value = row[column.key];
65288
+ const formattedValue = column.format ? column.format(value) : value;
65289
+ return /* @__PURE__ */ jsx(
65290
+ "td",
65291
+ {
65292
+ className: cn(
65293
+ compact ? "px-1 py-1 text-[10px]" : "px-3 py-2 text-sm",
65294
+ column.align === "center" && "text-center",
65295
+ column.align === "right" && "text-right"
65296
+ ),
65297
+ children: t__default.isValidElement(formattedValue) ? formattedValue : /* @__PURE__ */ jsx("span", { className: cn(
65298
+ compact && "line-clamp-1"
65299
+ ), children: formattedValue })
65300
+ },
65301
+ column.key
65302
+ );
65303
+ }),
65304
+ interactive && !compact && /* @__PURE__ */ jsx("td", { className: "px-2", children: /* @__PURE__ */ jsx(
65305
+ MoonUIButtonPro,
65306
+ {
65307
+ variant: "ghost",
65308
+ size: "sm",
65309
+ className: "h-6 w-6 p-0",
65310
+ onClick: (e) => {
65311
+ e.stopPropagation();
65312
+ },
65313
+ children: /* @__PURE__ */ jsx(MoreHorizontal, { className: "h-3 w-3" })
65314
+ }
65315
+ ) })
65316
+ ]
65317
+ },
65318
+ row.id
65319
+ )) })
65320
+ ] }) }) }),
65321
+ !compact && rows.length > 0 && /* @__PURE__ */ jsxs("div", { className: "px-3 py-2 border-t text-xs text-muted-foreground", children: [
65322
+ "Showing ",
65323
+ sortedRows.length,
65324
+ " of ",
65325
+ rows.length,
65326
+ " rows"
65327
+ ] })
65328
+ ] })
65329
+ ] });
65330
+ }
65331
+ function CalendarWidget({
65332
+ id,
65333
+ title,
65334
+ description,
65335
+ events,
65336
+ className,
65337
+ height = 300,
65338
+ glassmorphism = false,
65339
+ compact = false,
65340
+ interactive = true,
65341
+ onDateClick,
65342
+ onEventClick
65343
+ }) {
65344
+ const [currentDate, setCurrentDate] = t__default.useState(/* @__PURE__ */ new Date());
65345
+ const [selectedDate, setSelectedDate] = t__default.useState(null);
65346
+ const calendarHeight = compact ? 180 : height;
65347
+ const firstDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);
65348
+ const lastDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);
65349
+ const firstDayOfWeek = firstDayOfMonth.getDay();
65350
+ const daysInMonth = lastDayOfMonth.getDate();
65351
+ const goToPreviousMonth = () => {
65352
+ setCurrentDate(new Date(currentDate.getFullYear(), currentDate.getMonth() - 1));
65353
+ };
65354
+ const goToNextMonth = () => {
65355
+ setCurrentDate(new Date(currentDate.getFullYear(), currentDate.getMonth() + 1));
65356
+ };
65357
+ const goToToday = () => {
65358
+ setCurrentDate(/* @__PURE__ */ new Date());
65359
+ setSelectedDate(/* @__PURE__ */ new Date());
65360
+ };
65361
+ const getEventsForDate = (date) => {
65362
+ return events.filter((event) => {
65363
+ const eventDate = new Date(event.date);
65364
+ return eventDate.getDate() === date.getDate() && eventDate.getMonth() === date.getMonth() && eventDate.getFullYear() === date.getFullYear();
65365
+ });
65366
+ };
65367
+ const getEventColor = (type) => {
65368
+ switch (type) {
65369
+ case "primary":
65370
+ return "bg-primary";
65371
+ case "secondary":
65372
+ return "bg-secondary";
65373
+ case "warning":
65374
+ return "bg-yellow-500";
65375
+ case "danger":
65376
+ return "bg-destructive";
65377
+ case "success":
65378
+ return "bg-green-500";
65379
+ default:
65380
+ return "bg-primary";
65381
+ }
65382
+ };
65383
+ const monthNames = [
65384
+ "January",
65385
+ "February",
65386
+ "March",
65387
+ "April",
65388
+ "May",
65389
+ "June",
65390
+ "July",
65391
+ "August",
65392
+ "September",
65393
+ "October",
65394
+ "November",
65395
+ "December"
65396
+ ];
65397
+ const weekDays = compact ? ["S", "M", "Tu", "W", "Th", "F", "S"] : ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
65398
+ const calendarDays = [];
65399
+ for (let i = 0; i < firstDayOfWeek; i++) {
65400
+ calendarDays.push(null);
65401
+ }
65402
+ for (let day = 1; day <= daysInMonth; day++) {
65403
+ calendarDays.push(new Date(currentDate.getFullYear(), currentDate.getMonth(), day));
65404
+ }
65405
+ return /* @__PURE__ */ jsxs(MoonUICardPro, { className: cn(
65406
+ "relative overflow-hidden",
65407
+ glassmorphism && "bg-background/60 backdrop-blur-md border-white/10",
65408
+ className
65409
+ ), children: [
65410
+ /* @__PURE__ */ jsxs(MoonUICardHeaderPro, { className: cn(
65411
+ "flex flex-row items-center justify-between space-y-0",
65412
+ compact ? "pb-1 pt-2 px-3" : "pb-2"
65413
+ ), children: [
65414
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
65415
+ /* @__PURE__ */ jsx(Calendar$1, { className: cn(
65416
+ "text-muted-foreground",
65417
+ compact ? "h-3.5 w-3.5" : "h-4 w-4"
65418
+ ) }),
65419
+ /* @__PURE__ */ jsx(MoonUICardTitlePro, { className: cn(
65420
+ "font-semibold",
65421
+ compact ? "text-xs" : "text-base"
65422
+ ), children: title })
65423
+ ] }),
65424
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
65425
+ !compact && /* @__PURE__ */ jsx(
65426
+ MoonUIButtonPro,
65427
+ {
65428
+ variant: "ghost",
65429
+ size: "sm",
65430
+ className: "h-7 px-2 text-xs",
65431
+ onClick: goToToday,
65432
+ children: "Today"
65433
+ }
65434
+ ),
65435
+ /* @__PURE__ */ jsx(
65436
+ MoonUIButtonPro,
65437
+ {
65438
+ variant: "ghost",
65439
+ size: "sm",
65440
+ className: cn(
65441
+ "p-0",
65442
+ compact ? "h-5 w-5" : "h-7 w-7"
65443
+ ),
65444
+ onClick: goToPreviousMonth,
65445
+ children: /* @__PURE__ */ jsx(ChevronLeft, { className: cn(
65446
+ compact ? "h-3 w-3" : "h-4 w-4"
65447
+ ) })
65448
+ }
65449
+ ),
65450
+ /* @__PURE__ */ jsxs("span", { className: cn(
65451
+ "font-medium min-w-[100px] text-center",
65452
+ compact ? "text-[10px]" : "text-sm"
65453
+ ), children: [
65454
+ monthNames[currentDate.getMonth()],
65455
+ " ",
65456
+ currentDate.getFullYear()
65457
+ ] }),
65458
+ /* @__PURE__ */ jsx(
65459
+ MoonUIButtonPro,
65460
+ {
65461
+ variant: "ghost",
65462
+ size: "sm",
65463
+ className: cn(
65464
+ "p-0",
65465
+ compact ? "h-5 w-5" : "h-7 w-7"
65466
+ ),
65467
+ onClick: goToNextMonth,
65468
+ children: /* @__PURE__ */ jsx(ChevronRight, { className: cn(
65469
+ compact ? "h-3 w-3" : "h-4 w-4"
65470
+ ) })
65471
+ }
65472
+ )
65473
+ ] })
65474
+ ] }),
65475
+ /* @__PURE__ */ jsx(MoonUICardContentPro, { className: cn(
65476
+ "p-0",
65477
+ compact ? "px-2 pb-2" : "px-4 pb-4"
65478
+ ), children: /* @__PURE__ */ jsxs("div", { style: { height: calendarHeight }, children: [
65479
+ /* @__PURE__ */ jsx("div", { className: "grid grid-cols-7 gap-0 mb-1", children: weekDays.map((day, index2) => /* @__PURE__ */ jsx(
65480
+ "div",
65481
+ {
65482
+ className: cn(
65483
+ "text-center font-medium text-muted-foreground",
65484
+ compact ? "text-[9px] py-0.5" : "text-xs py-1"
65485
+ ),
65486
+ children: day
65487
+ },
65488
+ `weekday-${index2}`
65489
+ )) }),
65490
+ /* @__PURE__ */ jsx("div", { className: "grid grid-cols-7 gap-0", children: calendarDays.map((date, index2) => {
65491
+ if (!date) {
65492
+ return /* @__PURE__ */ jsx("div", {}, `empty-${index2}`);
65493
+ }
65494
+ const dateEvents = getEventsForDate(date);
65495
+ const isToday3 = date.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
65496
+ const isSelected = selectedDate && date.toDateString() === selectedDate.toDateString();
65497
+ const hasEvents = dateEvents.length > 0;
65498
+ return /* @__PURE__ */ jsxs(
65499
+ motion.button,
65500
+ {
65501
+ whileHover: { scale: interactive ? 1.1 : 1 },
65502
+ whileTap: { scale: interactive ? 0.95 : 1 },
65503
+ className: cn(
65504
+ "relative border border-transparent rounded-md transition-all",
65505
+ compact ? "h-5 text-[10px]" : "h-10 text-sm",
65506
+ isToday3 && "bg-primary/10 font-semibold",
65507
+ isSelected && "border-primary bg-primary/5",
65508
+ interactive && "hover:bg-muted/50 cursor-pointer",
65509
+ !interactive && "cursor-default"
65510
+ ),
65511
+ onClick: () => {
65512
+ if (interactive) {
65513
+ setSelectedDate(date);
65514
+ onDateClick?.(date, dateEvents);
65515
+ }
65516
+ },
65517
+ children: [
65518
+ /* @__PURE__ */ jsx("span", { className: cn(
65519
+ isToday3 && "text-primary"
65520
+ ), children: date.getDate() }),
65521
+ hasEvents && !compact && /* @__PURE__ */ jsx("div", { className: "absolute bottom-0.5 left-1/2 -translate-x-1/2 flex gap-0.5", children: dateEvents.slice(0, 3).map((event, i) => /* @__PURE__ */ jsx(
65522
+ "span",
65523
+ {
65524
+ className: cn(
65525
+ "h-1 w-1 rounded-full",
65526
+ getEventColor(event.type)
65527
+ )
65528
+ },
65529
+ i
65530
+ )) }),
65531
+ hasEvents && compact && /* @__PURE__ */ jsx("span", { className: cn(
65532
+ "absolute top-0.5 right-0.5 h-1 w-1 rounded-full",
65533
+ getEventColor(dateEvents[0].type)
65534
+ ) })
65535
+ ]
65536
+ },
65537
+ date.toISOString()
65538
+ );
65539
+ }) }),
65540
+ selectedDate && !compact && /* @__PURE__ */ jsxs(
65541
+ motion.div,
65542
+ {
65543
+ initial: { opacity: 0, y: 10 },
65544
+ animate: { opacity: 1, y: 0 },
65545
+ className: "mt-3 p-2 bg-muted/50 rounded-lg",
65546
+ children: [
65547
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2", children: [
65548
+ /* @__PURE__ */ jsx("h4", { className: "text-xs font-semibold", children: selectedDate.toLocaleDateString("en-US", {
65549
+ weekday: "long",
65550
+ year: "numeric",
65551
+ month: "long",
65552
+ day: "numeric"
65553
+ }) }),
65554
+ getEventsForDate(selectedDate).length > 0 && /* @__PURE__ */ jsxs(MoonUIBadgePro, { variant: "secondary", className: "text-xs", children: [
65555
+ getEventsForDate(selectedDate).length,
65556
+ " events"
65557
+ ] })
65558
+ ] }),
65559
+ getEventsForDate(selectedDate).length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "No events scheduled" }) : /* @__PURE__ */ jsx("div", { className: "space-y-1 max-h-20 overflow-y-auto", children: getEventsForDate(selectedDate).map((event) => /* @__PURE__ */ jsxs(
65560
+ motion.div,
65561
+ {
65562
+ whileHover: { x: 2 },
65563
+ className: "flex items-center gap-2 p-1 rounded cursor-pointer hover:bg-background/50",
65564
+ onClick: () => onEventClick?.(event),
65565
+ children: [
65566
+ /* @__PURE__ */ jsx("span", { className: cn(
65567
+ "h-2 w-2 rounded-full flex-shrink-0",
65568
+ getEventColor(event.type)
65569
+ ) }),
65570
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
65571
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-medium truncate", children: event.title }),
65572
+ event.time && /* @__PURE__ */ jsxs("p", { className: "text-[10px] text-muted-foreground flex items-center gap-1", children: [
65573
+ /* @__PURE__ */ jsx(Clock, { className: "h-2.5 w-2.5" }),
65574
+ event.time
65575
+ ] })
65576
+ ] })
65577
+ ]
65578
+ },
65579
+ event.id
65580
+ )) })
65581
+ ]
65582
+ }
65583
+ ),
65584
+ compact && events.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-2 space-y-0.5", children: [
65585
+ /* @__PURE__ */ jsx("p", { className: "text-[9px] font-medium text-muted-foreground mb-1", children: "Upcoming" }),
65586
+ events.filter((e) => new Date(e.date) >= /* @__PURE__ */ new Date()).slice(0, 2).map((event) => /* @__PURE__ */ jsxs(
65587
+ "div",
65588
+ {
65589
+ className: "flex items-center gap-1 text-[10px] cursor-pointer hover:bg-muted/50 rounded px-1",
65590
+ onClick: () => onEventClick?.(event),
65591
+ children: [
65592
+ /* @__PURE__ */ jsx("span", { className: cn(
65593
+ "h-1.5 w-1.5 rounded-full",
65594
+ getEventColor(event.type)
65595
+ ) }),
65596
+ /* @__PURE__ */ jsx("span", { className: "truncate flex-1", children: event.title }),
65597
+ /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
65598
+ new Date(event.date).getDate(),
65599
+ "/",
65600
+ new Date(event.date).getMonth() + 1
65601
+ ] })
65602
+ ]
65603
+ },
65604
+ event.id
65605
+ ))
65606
+ ] })
65607
+ ] }) })
65608
+ ] });
65609
+ }
64898
65610
  var DASHBOARD_TEMPLATES = [
64899
65611
  {
64900
65612
  id: "analytics",
@@ -65053,6 +65765,8 @@ var DashboardInternal = t__default.memo(function DashboardInternal2({
65053
65765
  contentClassName,
65054
65766
  sidebarPosition = "none",
65055
65767
  sidebarContent,
65768
+ sidebarCollapsed: propSidebarCollapsed,
65769
+ onSidebarCollapsedChange,
65056
65770
  notifications = [],
65057
65771
  onNotificationClick,
65058
65772
  onNotificationMarkAsRead,
@@ -65081,6 +65795,7 @@ var DashboardInternal = t__default.memo(function DashboardInternal2({
65081
65795
  const [searchQuery, setSearchQuery] = t__default.useState("");
65082
65796
  const [showWidgetLibrary, setShowWidgetLibrary] = t__default.useState(false);
65083
65797
  const [showTemplates, setShowTemplates] = t__default.useState(false);
65798
+ const [sidebarCollapsed, setSidebarCollapsed] = t__default.useState(propSidebarCollapsed ?? false);
65084
65799
  const [refreshing, setRefreshing] = t__default.useState(false);
65085
65800
  const [showNotifications, setShowNotifications] = t__default.useState(false);
65086
65801
  const prevInitialWidgetsRef = t__default.useRef(initialWidgets);
@@ -65147,8 +65862,66 @@ var DashboardInternal = t__default.memo(function DashboardInternal2({
65147
65862
  };
65148
65863
  case "activity":
65149
65864
  return {
65150
- items: [],
65151
- realtime: true
65865
+ items: [
65866
+ {
65867
+ id: "1",
65868
+ type: "info",
65869
+ title: "Sample activity",
65870
+ description: "This is a sample activity item",
65871
+ timestamp: /* @__PURE__ */ new Date(),
65872
+ user: { name: "System" }
65873
+ }
65874
+ ],
65875
+ realtime: false
65876
+ };
65877
+ case "progress":
65878
+ return [
65879
+ {
65880
+ id: "progress-1",
65881
+ title: "Progress Item",
65882
+ current: 50,
65883
+ target: 100,
65884
+ unit: "%",
65885
+ color: "primary"
65886
+ }
65887
+ ];
65888
+ case "comparison":
65889
+ return {
65890
+ periods: [
65891
+ { label: "This Week", value: 100 },
65892
+ { label: "Last Week", value: 80 }
65893
+ ],
65894
+ metric: "Sample Metric",
65895
+ showChart: true
65896
+ };
65897
+ case "map":
65898
+ return {
65899
+ locations: [
65900
+ { id: "1", name: "New York", lat: 40.7128, lng: -74.006, value: 125, type: "primary" },
65901
+ { id: "2", name: "London", lat: 51.5074, lng: -0.1278, value: 98, type: "secondary" },
65902
+ { id: "3", name: "Tokyo", lat: 35.6762, lng: 139.6503, value: 156, type: "success" }
65903
+ ]
65904
+ };
65905
+ case "table":
65906
+ return {
65907
+ columns: [
65908
+ { key: "name", label: "Name", sortable: true },
65909
+ { key: "status", label: "Status", sortable: true },
65910
+ { key: "value", label: "Value", sortable: true, align: "right" }
65911
+ ],
65912
+ rows: [
65913
+ { id: "1", name: "Item 1", status: "Active", value: 100 },
65914
+ { id: "2", name: "Item 2", status: "Pending", value: 75 },
65915
+ { id: "3", name: "Item 3", status: "Inactive", value: 50 }
65916
+ ]
65917
+ };
65918
+ case "calendar":
65919
+ return {
65920
+ events: [
65921
+ { id: "1", date: /* @__PURE__ */ new Date(), title: "Meeting", time: "10:00 AM", type: "primary" },
65922
+ { id: "2", date: new Date(Date.now() + 864e5), title: "Deadline", type: "danger" },
65923
+ { id: "3", date: new Date(Date.now() + 1728e5), title: "Review", time: "2:00 PM", type: "warning" }
65924
+ ]
65152
65925
  };
65153
65926
  default:
65154
65927
  return {};
@@ -65279,7 +66052,7 @@ var DashboardInternal = t__default.memo(function DashboardInternal2({
65279
66052
  motion.div,
65280
66053
  {
65281
66054
  className: cn(
65282
- "w-full min-h-screen",
66055
+ "w-full h-screen flex",
65283
66056
  glassmorphism && "bg-gradient-to-br",
65284
66057
  glassmorphism && THEME_COLORS[selectedTheme],
65285
66058
  className
@@ -65288,475 +66061,572 @@ var DashboardInternal = t__default.memo(function DashboardInternal2({
65288
66061
  animate: { opacity: 1 },
65289
66062
  transition: { duration: 0.5 },
65290
66063
  children: [
65291
- showHeader && /* @__PURE__ */ jsxs(
66064
+ sidebarPosition === "left" && sidebarContent && /* @__PURE__ */ jsxs(
65292
66065
  motion.div,
65293
66066
  {
65294
66067
  className: cn(
65295
- "sticky top-0 z-30 border-b",
65296
- glassmorphism ? "bg-background/80 backdrop-blur-md" : "bg-background"
66068
+ "h-full border-r flex-shrink-0 flex flex-col transition-all duration-300 relative",
66069
+ glassmorphism ? "bg-background/60 backdrop-blur-md" : "bg-background",
66070
+ sidebarCollapsed ? "w-16" : "w-64"
65297
66071
  ),
65298
- initial: { y: -50 },
65299
- animate: { y: 0 },
65300
- transition: { type: "spring", stiffness: 300, damping: 30 },
66072
+ animate: { width: sidebarCollapsed ? 64 : 256 },
66073
+ transition: { duration: 0.3, ease: "easeInOut" },
65301
66074
  children: [
65302
- /* @__PURE__ */ jsx("div", { className: "px-6 py-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
65303
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
65304
- /* @__PURE__ */ jsx(
65305
- motion.div,
65306
- {
65307
- whileHover: { scale: 1.05 },
65308
- whileTap: { scale: 0.95 },
65309
- children: /* @__PURE__ */ jsx(
65310
- MoonUIButtonPro,
65311
- {
65312
- variant: "ghost",
65313
- size: "sm",
65314
- className: "lg:hidden",
65315
- onClick: onMenuClick,
65316
- children: /* @__PURE__ */ jsx(Menu, { className: "h-5 w-5" })
65317
- }
65318
- )
65319
- }
66075
+ /* @__PURE__ */ jsx(
66076
+ MoonUIButtonPro,
66077
+ {
66078
+ variant: "ghost",
66079
+ size: "sm",
66080
+ className: cn(
66081
+ "absolute -right-3 top-6 z-50 h-6 w-6 rounded-full border bg-background p-0 shadow-md",
66082
+ "hover:bg-accent hover:text-accent-foreground"
65320
66083
  ),
65321
- (logo || brandName) && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
65322
- logo,
65323
- brandName && /* @__PURE__ */ jsx("span", { className: "font-semibold text-lg", children: brandName })
66084
+ onClick: () => {
66085
+ setSidebarCollapsed(!sidebarCollapsed);
66086
+ onSidebarCollapsedChange?.(!sidebarCollapsed);
66087
+ },
66088
+ children: sidebarCollapsed ? /* @__PURE__ */ jsx(ChevronRight, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx(ChevronLeft, { className: "h-3 w-3" })
66089
+ }
66090
+ ),
66091
+ (logo || brandName) && /* @__PURE__ */ jsx("div", { className: cn(
66092
+ "border-b transition-all duration-300",
66093
+ sidebarCollapsed ? "p-4" : "p-6"
66094
+ ), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
66095
+ logo,
66096
+ brandName && !sidebarCollapsed && /* @__PURE__ */ jsx(
66097
+ motion.span,
66098
+ {
66099
+ className: "font-semibold text-lg whitespace-nowrap",
66100
+ initial: { opacity: 0 },
66101
+ animate: { opacity: 1 },
66102
+ transition: { delay: 0.1 },
66103
+ children: brandName
66104
+ }
66105
+ )
66106
+ ] }) }),
66107
+ /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-hidden", children: sidebarContent })
66108
+ ]
66109
+ }
66110
+ ),
66111
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 flex flex-col h-full overflow-hidden", children: [
66112
+ showHeader && /* @__PURE__ */ jsxs(
66113
+ motion.div,
66114
+ {
66115
+ className: cn(
66116
+ "border-b flex-shrink-0",
66117
+ glassmorphism ? "bg-background/80 backdrop-blur-md" : "bg-background"
66118
+ ),
66119
+ initial: { y: -50 },
66120
+ animate: { y: 0 },
66121
+ transition: { type: "spring", stiffness: 300, damping: 30 },
66122
+ children: [
66123
+ /* @__PURE__ */ jsx("div", { className: "px-6 py-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
66124
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
66125
+ /* @__PURE__ */ jsx(
66126
+ motion.div,
66127
+ {
66128
+ whileHover: { scale: 1.05 },
66129
+ whileTap: { scale: 0.95 },
66130
+ children: /* @__PURE__ */ jsx(
66131
+ MoonUIButtonPro,
66132
+ {
66133
+ variant: "ghost",
66134
+ size: "sm",
66135
+ className: "lg:hidden",
66136
+ onClick: onMenuClick,
66137
+ children: /* @__PURE__ */ jsx(Menu, { className: "h-5 w-5" })
66138
+ }
66139
+ )
66140
+ }
66141
+ ),
66142
+ brandName && /* @__PURE__ */ jsx("span", { className: "font-semibold text-lg lg:hidden", children: brandName }),
66143
+ /* @__PURE__ */ jsxs("div", { children: [
66144
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
66145
+ /* @__PURE__ */ jsx("h1", { className: "text-2xl font-bold tracking-tight", children: title }),
66146
+ realtime && /* @__PURE__ */ jsxs(MoonUIBadgePro, { variant: "secondary", className: "animate-pulse", children: [
66147
+ /* @__PURE__ */ jsx("span", { className: "mr-1 h-1.5 w-1.5 rounded-full bg-green-500" }),
66148
+ "Real-time"
66149
+ ] })
66150
+ ] }),
66151
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description })
66152
+ ] })
65324
66153
  ] }),
65325
- /* @__PURE__ */ jsxs("div", { children: [
65326
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
65327
- /* @__PURE__ */ jsx("h1", { className: "text-2xl font-bold tracking-tight", children: title }),
65328
- realtime && /* @__PURE__ */ jsxs(MoonUIBadgePro, { variant: "secondary", className: "animate-pulse", children: [
65329
- /* @__PURE__ */ jsx("span", { className: "mr-1 h-1.5 w-1.5 rounded-full bg-green-500" }),
65330
- "Real-time"
65331
- ] })
65332
- ] }),
65333
- /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description })
65334
- ] })
65335
- ] }),
65336
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
65337
- /* @__PURE__ */ jsx(
65338
- TimeRangePicker,
65339
- {
65340
- value: timeRange,
65341
- onChange: (range) => {
65342
- setTimeRange(range);
65343
- onTimeRangeChange?.(range);
65344
- },
65345
- glassmorphism
65346
- }
65347
- ),
65348
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuPro, { open: showNotifications, onOpenChange: setShowNotifications, children: [
65349
- /* @__PURE__ */ jsx(MoonUIDropdownMenuTriggerPro, { asChild: true, children: /* @__PURE__ */ jsxs(MoonUIButtonPro, { variant: "ghost", size: "sm", className: "relative h-9 w-9 p-0", children: [
65350
- /* @__PURE__ */ jsx(Bell, { className: "h-5 w-5" }),
65351
- notifications.filter((n) => !n.read).length > 0 && /* @__PURE__ */ jsx("span", { className: "absolute -top-1 -right-1 min-w-[1rem] h-4 px-1 rounded-full bg-destructive text-[10px] font-medium text-destructive-foreground flex items-center justify-center", children: notifications.filter((n) => !n.read).length })
65352
- ] }) }),
65353
- /* @__PURE__ */ jsxs(
65354
- MoonUIDropdownMenuContentPro,
66154
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
66155
+ /* @__PURE__ */ jsx(
66156
+ TimeRangePicker,
65355
66157
  {
65356
- align: "end",
65357
- className: "w-80",
65358
- sideOffset: 8,
65359
- children: [
65360
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-4 py-2", children: [
65361
- /* @__PURE__ */ jsx("h4", { className: "text-sm font-semibold", children: "Notifications" }),
65362
- notifications.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
65363
- /* @__PURE__ */ jsxs(
65364
- MoonUIButtonPro,
66158
+ value: timeRange,
66159
+ onChange: (range) => {
66160
+ setTimeRange(range);
66161
+ onTimeRangeChange?.(range);
66162
+ },
66163
+ glassmorphism
66164
+ }
66165
+ ),
66166
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuPro, { open: showNotifications, onOpenChange: setShowNotifications, children: [
66167
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuTriggerPro, { asChild: true, children: /* @__PURE__ */ jsxs(MoonUIButtonPro, { variant: "ghost", size: "sm", className: "relative h-9 w-9 p-0", children: [
66168
+ /* @__PURE__ */ jsx(Bell, { className: "h-5 w-5" }),
66169
+ notifications.filter((n) => !n.read).length > 0 && /* @__PURE__ */ jsx("span", { className: "absolute -top-1 -right-1 min-w-[1rem] h-4 px-1 rounded-full bg-destructive text-[10px] font-medium text-destructive-foreground flex items-center justify-center", children: notifications.filter((n) => !n.read).length })
66170
+ ] }) }),
66171
+ /* @__PURE__ */ jsxs(
66172
+ MoonUIDropdownMenuContentPro,
66173
+ {
66174
+ align: "end",
66175
+ className: "w-80",
66176
+ sideOffset: 8,
66177
+ children: [
66178
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-4 py-2", children: [
66179
+ /* @__PURE__ */ jsx("h4", { className: "text-sm font-semibold", children: "Notifications" }),
66180
+ notifications.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
66181
+ /* @__PURE__ */ jsxs(
66182
+ MoonUIButtonPro,
66183
+ {
66184
+ variant: "ghost",
66185
+ size: "sm",
66186
+ className: "h-auto p-1 text-xs",
66187
+ onClick: () => onNotificationMarkAllAsRead?.(),
66188
+ children: [
66189
+ /* @__PURE__ */ jsx(CheckCheck, { className: "h-3 w-3 mr-1" }),
66190
+ "Mark all read"
66191
+ ]
66192
+ }
66193
+ ),
66194
+ /* @__PURE__ */ jsx(
66195
+ MoonUIButtonPro,
66196
+ {
66197
+ variant: "ghost",
66198
+ size: "sm",
66199
+ className: "h-auto p-1 text-xs",
66200
+ onClick: () => onNotificationClearAll?.(),
66201
+ children: "Clear all"
66202
+ }
66203
+ )
66204
+ ] })
66205
+ ] }),
66206
+ /* @__PURE__ */ jsx(MoonUISeparatorPro, {}),
66207
+ /* @__PURE__ */ jsx(ScrollArea, { className: "h-[400px]", children: notifications.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "p-8 text-center text-sm text-muted-foreground", children: [
66208
+ /* @__PURE__ */ jsx(Bell, { className: "h-8 w-8 mx-auto mb-2 opacity-20" }),
66209
+ /* @__PURE__ */ jsx("p", { children: "No notifications" })
66210
+ ] }) : /* @__PURE__ */ jsx("div", { className: "p-1", children: notifications.map((notification) => {
66211
+ const Icon3 = notification.type === "error" ? AlertCircle : notification.type === "warning" ? AlertCircle : notification.type === "success" ? CheckCircle : Info;
66212
+ return /* @__PURE__ */ jsxs(
66213
+ motion.div,
65365
66214
  {
65366
- variant: "ghost",
65367
- size: "sm",
65368
- className: "h-auto p-1 text-xs",
65369
- onClick: () => onNotificationMarkAllAsRead?.(),
66215
+ initial: { opacity: 0, x: -20 },
66216
+ animate: { opacity: 1, x: 0 },
66217
+ className: cn(
66218
+ "flex items-start gap-3 p-3 rounded-lg cursor-pointer transition-colors",
66219
+ "hover:bg-muted/50",
66220
+ !notification.read && "bg-muted/30"
66221
+ ),
66222
+ onClick: () => {
66223
+ onNotificationClick?.(notification);
66224
+ if (!notification.read) {
66225
+ onNotificationMarkAsRead?.(notification.id);
66226
+ }
66227
+ },
65370
66228
  children: [
65371
- /* @__PURE__ */ jsx(CheckCheck, { className: "h-3 w-3 mr-1" }),
65372
- "Mark all read"
66229
+ /* @__PURE__ */ jsx("div", { className: cn(
66230
+ "mt-0.5 p-1.5 rounded-full",
66231
+ notification.type === "error" && "bg-destructive/10 text-destructive",
66232
+ notification.type === "warning" && "bg-yellow-500/10 text-yellow-600 dark:text-yellow-500",
66233
+ notification.type === "success" && "bg-green-500/10 text-green-600 dark:text-green-500",
66234
+ notification.type === "info" && "bg-blue-500/10 text-blue-600 dark:text-blue-500"
66235
+ ), children: /* @__PURE__ */ jsx(Icon3, { className: "h-3.5 w-3.5" }) }),
66236
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 space-y-1", children: [
66237
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-medium leading-none", children: notification.title }),
66238
+ notification.message && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: notification.message }),
66239
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: formatRelativeTime(notification.timestamp) })
66240
+ ] }),
66241
+ /* @__PURE__ */ jsx(
66242
+ MoonUIButtonPro,
66243
+ {
66244
+ variant: "ghost",
66245
+ size: "sm",
66246
+ className: "h-6 w-6 p-0",
66247
+ onClick: (e) => {
66248
+ e.stopPropagation();
66249
+ onNotificationClear?.(notification.id);
66250
+ },
66251
+ children: /* @__PURE__ */ jsx(X, { className: "h-3 w-3" })
66252
+ }
66253
+ )
65373
66254
  ]
65374
- }
65375
- ),
65376
- /* @__PURE__ */ jsx(
65377
- MoonUIButtonPro,
65378
- {
65379
- variant: "ghost",
65380
- size: "sm",
65381
- className: "h-auto p-1 text-xs",
65382
- onClick: () => onNotificationClearAll?.(),
65383
- children: "Clear all"
65384
- }
65385
- )
65386
- ] })
65387
- ] }),
65388
- /* @__PURE__ */ jsx(MoonUISeparatorPro, {}),
65389
- /* @__PURE__ */ jsx(ScrollArea, { className: "h-[400px]", children: notifications.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "p-8 text-center text-sm text-muted-foreground", children: [
65390
- /* @__PURE__ */ jsx(Bell, { className: "h-8 w-8 mx-auto mb-2 opacity-20" }),
65391
- /* @__PURE__ */ jsx("p", { children: "No notifications" })
65392
- ] }) : /* @__PURE__ */ jsx("div", { className: "p-1", children: notifications.map((notification) => {
65393
- const Icon3 = notification.type === "error" ? AlertCircle : notification.type === "warning" ? AlertCircle : notification.type === "success" ? CheckCircle : Info;
65394
- return /* @__PURE__ */ jsxs(
65395
- motion.div,
65396
- {
65397
- initial: { opacity: 0, x: -20 },
65398
- animate: { opacity: 1, x: 0 },
65399
- className: cn(
65400
- "flex items-start gap-3 p-3 rounded-lg cursor-pointer transition-colors",
65401
- "hover:bg-muted/50",
65402
- !notification.read && "bg-muted/30"
65403
- ),
65404
- onClick: () => {
65405
- onNotificationClick?.(notification);
65406
- if (!notification.read) {
65407
- onNotificationMarkAsRead?.(notification.id);
65408
- }
65409
66255
  },
65410
- children: [
65411
- /* @__PURE__ */ jsx("div", { className: cn(
65412
- "mt-0.5 p-1.5 rounded-full",
65413
- notification.type === "error" && "bg-destructive/10 text-destructive",
65414
- notification.type === "warning" && "bg-yellow-500/10 text-yellow-600 dark:text-yellow-500",
65415
- notification.type === "success" && "bg-green-500/10 text-green-600 dark:text-green-500",
65416
- notification.type === "info" && "bg-blue-500/10 text-blue-600 dark:text-blue-500"
65417
- ), children: /* @__PURE__ */ jsx(Icon3, { className: "h-3.5 w-3.5" }) }),
65418
- /* @__PURE__ */ jsxs("div", { className: "flex-1 space-y-1", children: [
65419
- /* @__PURE__ */ jsx("p", { className: "text-sm font-medium leading-none", children: notification.title }),
65420
- notification.message && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: notification.message }),
65421
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: formatRelativeTime(notification.timestamp) })
65422
- ] }),
65423
- /* @__PURE__ */ jsx(
65424
- MoonUIButtonPro,
65425
- {
65426
- variant: "ghost",
65427
- size: "sm",
65428
- className: "h-6 w-6 p-0",
65429
- onClick: (e) => {
65430
- e.stopPropagation();
65431
- onNotificationClear?.(notification.id);
65432
- },
65433
- children: /* @__PURE__ */ jsx(X, { className: "h-3 w-3" })
65434
- }
65435
- )
65436
- ]
65437
- },
65438
- notification.id
65439
- );
65440
- }) }) })
65441
- ]
65442
- }
65443
- )
65444
- ] }),
65445
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuPro, { children: [
65446
- /* @__PURE__ */ jsx(MoonUIDropdownMenuTriggerPro, { asChild: true, children: /* @__PURE__ */ jsx(MoonUIButtonPro, { variant: "ghost", size: "sm", children: /* @__PURE__ */ jsx(Palette, { className: "h-4 w-4" }) }) }),
65447
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuContentPro, { align: "end", children: [
65448
- /* @__PURE__ */ jsx(MoonUIDropdownMenuItemPro, { onClick: () => {
65449
- setSelectedTheme("analytics");
65450
- onThemeChange?.("analytics");
65451
- }, children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
65452
- /* @__PURE__ */ jsx("div", { className: "h-4 w-4 rounded bg-gradient-to-br from-blue-500 to-purple-500" }),
65453
- "Analytics"
65454
- ] }) }),
65455
- /* @__PURE__ */ jsx(MoonUIDropdownMenuItemPro, { onClick: () => {
65456
- setSelectedTheme("sales");
65457
- onThemeChange?.("sales");
65458
- }, children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
65459
- /* @__PURE__ */ jsx("div", { className: "h-4 w-4 rounded bg-gradient-to-br from-green-500 to-emerald-500" }),
65460
- "Sales"
65461
- ] }) }),
65462
- /* @__PURE__ */ jsx(MoonUIDropdownMenuItemPro, { onClick: () => {
65463
- setSelectedTheme("monitoring");
65464
- onThemeChange?.("monitoring");
65465
- }, children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
65466
- /* @__PURE__ */ jsx("div", { className: "h-4 w-4 rounded bg-gradient-to-br from-orange-500 to-red-500" }),
65467
- "Monitoring"
65468
- ] }) })
65469
- ] })
65470
- ] }),
65471
- headerActions,
65472
- user && /* @__PURE__ */ jsxs(MoonUIDropdownMenuPro, { children: [
65473
- /* @__PURE__ */ jsx(MoonUIDropdownMenuTriggerPro, { asChild: true, children: /* @__PURE__ */ jsx(MoonUIButtonPro, { variant: "ghost", size: "sm", className: "relative h-8 w-8 rounded-full", children: /* @__PURE__ */ jsxs(MoonUIAvatarPro, { className: "h-8 w-8", children: [
65474
- /* @__PURE__ */ jsx(MoonUIAvatarImagePro, { src: user.avatar, alt: user.name }),
65475
- /* @__PURE__ */ jsx(MoonUIAvatarFallbackPro, { children: user.name.split(" ").map((n) => n[0]).join("").toUpperCase() })
65476
- ] }) }) }),
65477
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuContentPro, { align: "end", className: "w-56", children: [
65478
- /* @__PURE__ */ jsx("div", { className: "flex items-center justify-start gap-2 p-2", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col space-y-1 leading-none", children: [
65479
- user.name && /* @__PURE__ */ jsx("p", { className: "font-medium", children: user.name }),
65480
- user.email && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: user.email })
66256
+ notification.id
66257
+ );
66258
+ }) }) })
66259
+ ]
66260
+ }
66261
+ )
66262
+ ] }),
66263
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuPro, { children: [
66264
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuTriggerPro, { asChild: true, children: /* @__PURE__ */ jsx(MoonUIButtonPro, { variant: "ghost", size: "sm", children: /* @__PURE__ */ jsx(Palette, { className: "h-4 w-4" }) }) }),
66265
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuContentPro, { align: "end", children: [
66266
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuItemPro, { onClick: () => {
66267
+ setSelectedTheme("analytics");
66268
+ onThemeChange?.("analytics");
66269
+ }, children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
66270
+ /* @__PURE__ */ jsx("div", { className: "h-4 w-4 rounded bg-gradient-to-br from-blue-500 to-purple-500" }),
66271
+ "Analytics"
66272
+ ] }) }),
66273
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuItemPro, { onClick: () => {
66274
+ setSelectedTheme("sales");
66275
+ onThemeChange?.("sales");
66276
+ }, children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
66277
+ /* @__PURE__ */ jsx("div", { className: "h-4 w-4 rounded bg-gradient-to-br from-green-500 to-emerald-500" }),
66278
+ "Sales"
66279
+ ] }) }),
66280
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuItemPro, { onClick: () => {
66281
+ setSelectedTheme("monitoring");
66282
+ onThemeChange?.("monitoring");
66283
+ }, children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
66284
+ /* @__PURE__ */ jsx("div", { className: "h-4 w-4 rounded bg-gradient-to-br from-orange-500 to-red-500" }),
66285
+ "Monitoring"
66286
+ ] }) })
66287
+ ] })
66288
+ ] }),
66289
+ headerActions,
66290
+ user && /* @__PURE__ */ jsxs(MoonUIDropdownMenuPro, { children: [
66291
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuTriggerPro, { asChild: true, children: /* @__PURE__ */ jsx(MoonUIButtonPro, { variant: "ghost", size: "sm", className: "relative h-8 w-8 rounded-full", children: /* @__PURE__ */ jsxs(MoonUIAvatarPro, { className: "h-8 w-8", children: [
66292
+ /* @__PURE__ */ jsx(MoonUIAvatarImagePro, { src: user.avatar, alt: user.name }),
66293
+ /* @__PURE__ */ jsx(MoonUIAvatarFallbackPro, { children: user.name.split(" ").map((n) => n[0]).join("").toUpperCase() })
66294
+ ] }) }) }),
66295
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuContentPro, { align: "end", className: "w-56", children: [
66296
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-start gap-2 p-2", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col space-y-1 leading-none", children: [
66297
+ user.name && /* @__PURE__ */ jsx("p", { className: "font-medium", children: user.name }),
66298
+ user.email && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: user.email })
66299
+ ] }) }),
66300
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuSeparatorPro, {}),
66301
+ userMenuItems ? (
66302
+ // Custom menu items
66303
+ userMenuItems.map((item, index2) => item.separator ? /* @__PURE__ */ jsx(MoonUIDropdownMenuSeparatorPro, {}, item.id || `sep-${index2}`) : /* @__PURE__ */ jsxs(
66304
+ MoonUIDropdownMenuItemPro,
66305
+ {
66306
+ onClick: () => item.onClick?.(),
66307
+ children: [
66308
+ item.icon && /* @__PURE__ */ jsx("span", { className: "mr-2", children: item.icon }),
66309
+ item.label
66310
+ ]
66311
+ },
66312
+ item.id
66313
+ ))
66314
+ ) : (
66315
+ // Default menu items
66316
+ /* @__PURE__ */ jsxs(Fragment, { children: [
66317
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => onProfileClick?.(), children: [
66318
+ /* @__PURE__ */ jsx(User, { className: "mr-2 h-4 w-4" }),
66319
+ "Profile"
66320
+ ] }),
66321
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => onUserMenuClick?.(), children: [
66322
+ /* @__PURE__ */ jsx(Settings2, { className: "mr-2 h-4 w-4" }),
66323
+ "Settings"
66324
+ ] }),
66325
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuSeparatorPro, {}),
66326
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => onLogout?.(), children: [
66327
+ /* @__PURE__ */ jsx(LogOut, { className: "mr-2 h-4 w-4" }),
66328
+ "Log out"
66329
+ ] })
66330
+ ] })
66331
+ )
66332
+ ] })
66333
+ ] }),
66334
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuPro, { children: [
66335
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuTriggerPro, { asChild: true, children: /* @__PURE__ */ jsxs(MoonUIButtonPro, { variant: "outline", size: "sm", children: [
66336
+ /* @__PURE__ */ jsx(Settings, { className: "h-4 w-4 mr-2" }),
66337
+ "Actions"
65481
66338
  ] }) }),
65482
- /* @__PURE__ */ jsx(MoonUIDropdownMenuSeparatorPro, {}),
65483
- userMenuItems ? (
65484
- // Custom menu items
65485
- userMenuItems.map((item, index2) => item.separator ? /* @__PURE__ */ jsx(MoonUIDropdownMenuSeparatorPro, {}, item.id || `sep-${index2}`) : /* @__PURE__ */ jsxs(
65486
- MoonUIDropdownMenuItemPro,
65487
- {
65488
- onClick: () => item.onClick?.(),
65489
- children: [
65490
- item.icon && /* @__PURE__ */ jsx("span", { className: "mr-2", children: item.icon }),
65491
- item.label
65492
- ]
65493
- },
65494
- item.id
65495
- ))
65496
- ) : (
65497
- // Default menu items
65498
- /* @__PURE__ */ jsxs(Fragment, { children: [
65499
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => onProfileClick?.(), children: [
65500
- /* @__PURE__ */ jsx(User, { className: "mr-2 h-4 w-4" }),
65501
- "Profile"
66339
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuContentPro, { align: "end", className: "w-48", children: [
66340
+ editable && /* @__PURE__ */ jsxs(Fragment, { children: [
66341
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => setEditMode(!editMode), children: [
66342
+ /* @__PURE__ */ jsx(Edit3, { className: "mr-2 h-4 w-4" }),
66343
+ editMode ? "Exit Edit Mode" : "Edit Layout"
65502
66344
  ] }),
65503
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => onUserMenuClick?.(), children: [
65504
- /* @__PURE__ */ jsx(Settings2, { className: "mr-2 h-4 w-4" }),
65505
- "Settings"
66345
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => setShowWidgetLibrary(true), children: [
66346
+ /* @__PURE__ */ jsx(Plus, { className: "mr-2 h-4 w-4" }),
66347
+ "Add Widget"
65506
66348
  ] }),
65507
- /* @__PURE__ */ jsx(MoonUIDropdownMenuSeparatorPro, {}),
65508
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => onLogout?.(), children: [
65509
- /* @__PURE__ */ jsx(LogOut, { className: "mr-2 h-4 w-4" }),
65510
- "Log out"
65511
- ] })
65512
- ] })
65513
- )
65514
- ] })
65515
- ] }),
65516
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuPro, { children: [
65517
- /* @__PURE__ */ jsx(MoonUIDropdownMenuTriggerPro, { asChild: true, children: /* @__PURE__ */ jsxs(MoonUIButtonPro, { variant: "outline", size: "sm", children: [
65518
- /* @__PURE__ */ jsx(Settings, { className: "h-4 w-4 mr-2" }),
65519
- "Actions"
65520
- ] }) }),
65521
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuContentPro, { align: "end", className: "w-48", children: [
65522
- editable && /* @__PURE__ */ jsxs(Fragment, { children: [
65523
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => setEditMode(!editMode), children: [
65524
- /* @__PURE__ */ jsx(Edit3, { className: "mr-2 h-4 w-4" }),
65525
- editMode ? "Exit Edit Mode" : "Edit Layout"
66349
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => setShowTemplates(true), children: [
66350
+ /* @__PURE__ */ jsx(LayoutGrid, { className: "mr-2 h-4 w-4" }),
66351
+ "Templates"
66352
+ ] }),
66353
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuSeparatorPro, {})
65526
66354
  ] }),
65527
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => setShowWidgetLibrary(true), children: [
65528
- /* @__PURE__ */ jsx(Plus, { className: "mr-2 h-4 w-4" }),
65529
- "Add Widget"
66355
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuSubPro, { children: [
66356
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuSubTriggerPro, { children: [
66357
+ /* @__PURE__ */ jsx(Download, { className: "mr-2 h-4 w-4" }),
66358
+ "Export"
66359
+ ] }),
66360
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuSubContentPro, { children: [
66361
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuItemPro, { onClick: () => onExport?.("json"), children: "As JSON" }),
66362
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuItemPro, { onClick: () => onExport?.("pdf"), children: "As PDF" }),
66363
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuItemPro, { onClick: () => onExport?.("png"), children: "As Image" })
66364
+ ] })
65530
66365
  ] }),
65531
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => setShowTemplates(true), children: [
65532
- /* @__PURE__ */ jsx(LayoutGrid, { className: "mr-2 h-4 w-4" }),
65533
- "Templates"
66366
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { children: [
66367
+ /* @__PURE__ */ jsx(Upload, { className: "mr-2 h-4 w-4" }),
66368
+ "Import"
65534
66369
  ] }),
65535
- /* @__PURE__ */ jsx(MoonUIDropdownMenuSeparatorPro, {})
65536
- ] }),
65537
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuSubPro, { children: [
65538
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuSubTriggerPro, { children: [
65539
- /* @__PURE__ */ jsx(Download, { className: "mr-2 h-4 w-4" }),
65540
- "Export"
66370
+ /* @__PURE__ */ jsx(MoonUIDropdownMenuSeparatorPro, {}),
66371
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => {
66372
+ setRefreshing(true);
66373
+ onRefresh?.();
66374
+ setTimeout(() => setRefreshing(false), 1e3);
66375
+ }, children: [
66376
+ /* @__PURE__ */ jsx(RefreshCw, { className: "mr-2 h-4 w-4" }),
66377
+ "Refresh Data"
65541
66378
  ] }),
65542
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuSubContentPro, { children: [
65543
- /* @__PURE__ */ jsx(MoonUIDropdownMenuItemPro, { onClick: () => onExport?.("json"), children: "As JSON" }),
65544
- /* @__PURE__ */ jsx(MoonUIDropdownMenuItemPro, { onClick: () => onExport?.("pdf"), children: "As PDF" }),
65545
- /* @__PURE__ */ jsx(MoonUIDropdownMenuItemPro, { onClick: () => onExport?.("png"), children: "As Image" })
66379
+ /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { children: [
66380
+ /* @__PURE__ */ jsx(Share2, { className: "mr-2 h-4 w-4" }),
66381
+ "Share Dashboard"
65546
66382
  ] })
65547
- ] }),
65548
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { children: [
65549
- /* @__PURE__ */ jsx(Upload, { className: "mr-2 h-4 w-4" }),
65550
- "Import"
65551
- ] }),
65552
- /* @__PURE__ */ jsx(MoonUIDropdownMenuSeparatorPro, {}),
65553
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { onClick: () => {
65554
- setRefreshing(true);
65555
- onRefresh?.();
65556
- setTimeout(() => setRefreshing(false), 1e3);
65557
- }, children: [
65558
- /* @__PURE__ */ jsx(RefreshCw, { className: "mr-2 h-4 w-4" }),
65559
- "Refresh Data"
65560
- ] }),
65561
- /* @__PURE__ */ jsxs(MoonUIDropdownMenuItemPro, { children: [
65562
- /* @__PURE__ */ jsx(Share2, { className: "mr-2 h-4 w-4" }),
65563
- "Share Dashboard"
65564
66383
  ] })
65565
66384
  ] })
65566
66385
  ] })
65567
- ] })
65568
- ] }) }),
65569
- /* @__PURE__ */ jsx(AnimatePresence, { children: editMode && /* @__PURE__ */ jsx(
66386
+ ] }) }),
66387
+ /* @__PURE__ */ jsx(AnimatePresence, { children: editMode && /* @__PURE__ */ jsx(
66388
+ motion.div,
66389
+ {
66390
+ initial: { height: 0, opacity: 0 },
66391
+ animate: { height: "auto", opacity: 1 },
66392
+ exit: { height: 0, opacity: 0 },
66393
+ className: "bg-primary/10 border-t border-primary/20",
66394
+ children: /* @__PURE__ */ jsxs("div", { className: "px-6 py-2 flex items-center justify-between", children: [
66395
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm", children: [
66396
+ /* @__PURE__ */ jsx(Sparkles, { className: "h-4 w-4 text-primary" }),
66397
+ /* @__PURE__ */ jsx("span", { children: "Edit mode enabled - Drag widgets to rearrange" })
66398
+ ] }),
66399
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
66400
+ /* @__PURE__ */ jsxs(
66401
+ MoonUIButtonPro,
66402
+ {
66403
+ variant: "ghost",
66404
+ size: "sm",
66405
+ onClick: () => setEditMode(false),
66406
+ children: [
66407
+ /* @__PURE__ */ jsx(X, { className: "h-4 w-4 mr-1" }),
66408
+ "Cancel"
66409
+ ]
66410
+ }
66411
+ ),
66412
+ /* @__PURE__ */ jsxs(
66413
+ MoonUIButtonPro,
66414
+ {
66415
+ variant: "primary",
66416
+ size: "sm",
66417
+ onClick: () => {
66418
+ setEditMode(false);
66419
+ },
66420
+ children: [
66421
+ /* @__PURE__ */ jsx(Save, { className: "h-4 w-4 mr-1" }),
66422
+ "Save Changes"
66423
+ ]
66424
+ }
66425
+ )
66426
+ ] })
66427
+ ] })
66428
+ }
66429
+ ) })
66430
+ ]
66431
+ }
66432
+ ),
66433
+ /* @__PURE__ */ jsx("div", { className: "flex-1 flex overflow-hidden", children: mode === "children" ? (
66434
+ // Children mode - use as layout wrapper
66435
+ /* @__PURE__ */ jsx("div", { className: cn("flex-1 h-full overflow-auto", contentClassName), children: /* @__PURE__ */ jsx("div", { className: "p-6 h-full", children }) })
66436
+ ) : mode === "hybrid" ? (
66437
+ // Hybrid mode - both children and widgets
66438
+ /* @__PURE__ */ jsxs(Fragment, { children: [
66439
+ /* @__PURE__ */ jsx("div", { className: "flex-1 h-full overflow-auto", children: /* @__PURE__ */ jsx("div", { className: "p-6 h-full", children }) }),
66440
+ /* @__PURE__ */ jsx("div", { className: cn(
66441
+ "w-80 border-l flex-shrink-0 h-full",
66442
+ glassmorphism ? "bg-background/60 backdrop-blur-md" : "bg-background"
66443
+ ), children: /* @__PURE__ */ jsx("div", { className: "p-6 h-full overflow-auto", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
66444
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-4", children: [
66445
+ /* @__PURE__ */ jsx("h3", { className: "font-semibold", children: "Widgets" }),
66446
+ editable && /* @__PURE__ */ jsx(
66447
+ MoonUIButtonPro,
66448
+ {
66449
+ variant: "ghost",
66450
+ size: "sm",
66451
+ onClick: () => setShowWidgetLibrary(true),
66452
+ children: /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" })
66453
+ }
66454
+ )
66455
+ ] }),
66456
+ widgets.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "text-center text-muted-foreground py-8", children: [
66457
+ /* @__PURE__ */ jsx(LayoutGrid, { className: "h-8 w-8 mx-auto mb-2 opacity-20" }),
66458
+ /* @__PURE__ */ jsx("p", { className: "text-sm", children: "No widgets" }),
66459
+ editable && /* @__PURE__ */ jsx(
66460
+ MoonUIButtonPro,
66461
+ {
66462
+ variant: "ghost",
66463
+ size: "sm",
66464
+ className: "mt-2",
66465
+ onClick: () => setShowWidgetLibrary(true),
66466
+ children: "Add Widget"
66467
+ }
66468
+ )
66469
+ ] }) : /* @__PURE__ */ jsx("div", { className: "space-y-3", children: widgets.map((widget) => /* @__PURE__ */ jsxs("div", { children: [
66470
+ widget.type === "metric" && widget.data && /* @__PURE__ */ jsx(
66471
+ MetricCard,
66472
+ {
66473
+ data: widget.data,
66474
+ glassmorphism,
66475
+ className: "w-full",
66476
+ compact: true
66477
+ }
66478
+ ),
66479
+ widget.type === "chart" && widget.data && /* @__PURE__ */ jsx(
66480
+ ChartWidget,
66481
+ {
66482
+ id: widget.id,
66483
+ title: widget.title,
66484
+ data: widget.data,
66485
+ glassmorphism,
66486
+ height: 120,
66487
+ interactive: false,
66488
+ compact: true
66489
+ }
66490
+ ),
66491
+ widget.type === "activity" && widget.data && /* @__PURE__ */ jsx(
66492
+ ActivityFeed,
66493
+ {
66494
+ items: widget.data.items || [],
66495
+ title: widget.title,
66496
+ glassmorphism,
66497
+ maxItems: 3,
66498
+ compact: true
66499
+ }
66500
+ ),
66501
+ widget.type === "progress" && widget.data && /* @__PURE__ */ jsx(
66502
+ ProgressWidget,
66503
+ {
66504
+ data: widget.data,
66505
+ title: widget.title,
66506
+ glassmorphism,
66507
+ compact: true
66508
+ }
66509
+ ),
66510
+ widget.type === "comparison" && widget.data && /* @__PURE__ */ jsx(
66511
+ ComparisonWidget,
66512
+ {
66513
+ data: widget.data,
66514
+ title: widget.title,
66515
+ glassmorphism,
66516
+ compact: true
66517
+ }
66518
+ ),
66519
+ widget.type === "map" && widget.data && /* @__PURE__ */ jsx(
66520
+ MapWidget,
66521
+ {
66522
+ id: widget.id,
66523
+ title: widget.title,
66524
+ locations: widget.data.locations || [],
66525
+ glassmorphism,
66526
+ compact: true,
66527
+ height: 150
66528
+ }
66529
+ ),
66530
+ widget.type === "table" && widget.data && /* @__PURE__ */ jsx(
66531
+ TableWidget,
66532
+ {
66533
+ id: widget.id,
66534
+ title: widget.title,
66535
+ columns: widget.data.columns || [],
66536
+ rows: widget.data.rows || [],
66537
+ glassmorphism,
66538
+ compact: true,
66539
+ height: 150
66540
+ }
66541
+ ),
66542
+ widget.type === "calendar" && widget.data && /* @__PURE__ */ jsx(
66543
+ CalendarWidget,
66544
+ {
66545
+ id: widget.id,
66546
+ title: widget.title,
66547
+ events: widget.data.events || [],
66548
+ glassmorphism,
66549
+ compact: true,
66550
+ height: 180
66551
+ }
66552
+ )
66553
+ ] }, widget.id)) })
66554
+ ] }) }) })
66555
+ ] })
66556
+ ) : (
66557
+ // Default widgets mode
66558
+ /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-auto", children: /* @__PURE__ */ jsx("div", { className: "p-6", children: widgets.length === 0 ? (
66559
+ // Empty state
66560
+ /* @__PURE__ */ jsxs(
65570
66561
  motion.div,
65571
66562
  {
65572
- initial: { height: 0, opacity: 0 },
65573
- animate: { height: "auto", opacity: 1 },
65574
- exit: { height: 0, opacity: 0 },
65575
- className: "bg-primary/10 border-t border-primary/20",
65576
- children: /* @__PURE__ */ jsxs("div", { className: "px-6 py-2 flex items-center justify-between", children: [
65577
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm", children: [
65578
- /* @__PURE__ */ jsx(Sparkles, { className: "h-4 w-4 text-primary" }),
65579
- /* @__PURE__ */ jsx("span", { children: "Edit mode enabled - Drag widgets to rearrange" })
65580
- ] }),
65581
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
65582
- /* @__PURE__ */ jsxs(
65583
- MoonUIButtonPro,
65584
- {
65585
- variant: "ghost",
65586
- size: "sm",
65587
- onClick: () => setEditMode(false),
65588
- children: [
65589
- /* @__PURE__ */ jsx(X, { className: "h-4 w-4 mr-1" }),
65590
- "Cancel"
65591
- ]
65592
- }
65593
- ),
65594
- /* @__PURE__ */ jsxs(
65595
- MoonUIButtonPro,
65596
- {
65597
- variant: "primary",
65598
- size: "sm",
65599
- onClick: () => {
65600
- setEditMode(false);
65601
- },
65602
- children: [
65603
- /* @__PURE__ */ jsx(Save, { className: "h-4 w-4 mr-1" }),
65604
- "Save Changes"
65605
- ]
65606
- }
65607
- )
66563
+ initial: { opacity: 0, scale: 0.9 },
66564
+ animate: { opacity: 1, scale: 1 },
66565
+ className: "flex flex-col items-center justify-center min-h-[400px] text-center",
66566
+ children: [
66567
+ /* @__PURE__ */ jsx("div", { className: cn(
66568
+ "p-4 rounded-full mb-4",
66569
+ glassmorphism ? "bg-background/60 backdrop-blur-sm" : "bg-muted"
66570
+ ), children: /* @__PURE__ */ jsx(LayoutGrid, { className: "h-8 w-8 text-muted-foreground" }) }),
66571
+ /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold mb-2", children: "No widgets added yet" }),
66572
+ /* @__PURE__ */ jsx("p", { className: "text-muted-foreground mb-4", children: "Start by adding widgets or choosing a template" }),
66573
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
66574
+ /* @__PURE__ */ jsxs(MoonUIButtonPro, { onClick: () => setShowWidgetLibrary(true), children: [
66575
+ /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4 mr-2" }),
66576
+ "Add Widget"
66577
+ ] }),
66578
+ /* @__PURE__ */ jsxs(MoonUIButtonPro, { variant: "outline", onClick: () => setShowTemplates(true), children: [
66579
+ /* @__PURE__ */ jsx(LayoutGrid, { className: "h-4 w-4 mr-2" }),
66580
+ "Browse Templates"
66581
+ ] })
65608
66582
  ] })
65609
- ] })
66583
+ ]
65610
66584
  }
65611
- ) })
65612
- ]
65613
- }
65614
- ),
65615
- mode === "children" ? (
65616
- // Children mode - use as layout wrapper
65617
- /* @__PURE__ */ jsxs("div", { className: cn("flex flex-1", contentClassName), children: [
65618
- sidebarPosition === "left" && sidebarContent && /* @__PURE__ */ jsx("div", { className: cn(
65619
- "h-full border-r",
65620
- glassmorphism ? "bg-background/60 backdrop-blur-md" : "bg-background"
65621
- ), children: sidebarContent }),
65622
- /* @__PURE__ */ jsx("div", { className: "flex-1 p-6", children }),
65623
- sidebarPosition === "right" && sidebarContent && /* @__PURE__ */ jsx("div", { className: cn(
65624
- "h-full border-l",
65625
- glassmorphism ? "bg-background/60 backdrop-blur-md" : "bg-background"
65626
- ), children: sidebarContent })
65627
- ] })
65628
- ) : mode === "hybrid" ? (
65629
- // Hybrid mode - both children and widgets
65630
- /* @__PURE__ */ jsxs("div", { className: "flex flex-1", children: [
65631
- sidebarPosition === "left" && sidebarContent && /* @__PURE__ */ jsx("div", { className: cn(
65632
- "h-full border-r",
65633
- glassmorphism ? "bg-background/60 backdrop-blur-md" : "bg-background"
65634
- ), children: sidebarContent }),
65635
- /* @__PURE__ */ jsx("div", { className: "flex-1 p-6", children }),
65636
- sidebarPosition === "right" && sidebarContent && /* @__PURE__ */ jsx("div", { className: cn(
65637
- "h-full border-l",
65638
- glassmorphism ? "bg-background/60 backdrop-blur-md" : "bg-background"
65639
- ), children: sidebarContent }),
65640
- /* @__PURE__ */ jsx("div", { className: cn(
65641
- "w-80 border-l p-6",
65642
- glassmorphism ? "bg-background/60 backdrop-blur-md" : "bg-background"
65643
- ), children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
65644
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-4", children: [
65645
- /* @__PURE__ */ jsx("h3", { className: "font-semibold", children: "Widgets" }),
65646
- editable && /* @__PURE__ */ jsx(
65647
- MoonUIButtonPro,
65648
- {
65649
- variant: "ghost",
65650
- size: "sm",
65651
- onClick: () => setShowWidgetLibrary(true),
65652
- children: /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" })
65653
- }
65654
- )
65655
- ] }),
65656
- widgets.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "text-center text-muted-foreground py-8", children: [
65657
- /* @__PURE__ */ jsx(LayoutGrid, { className: "h-8 w-8 mx-auto mb-2 opacity-20" }),
65658
- /* @__PURE__ */ jsx("p", { className: "text-sm", children: "No widgets" }),
65659
- editable && /* @__PURE__ */ jsx(
65660
- MoonUIButtonPro,
65661
- {
65662
- variant: "ghost",
65663
- size: "sm",
65664
- className: "mt-2",
65665
- onClick: () => setShowWidgetLibrary(true),
65666
- children: "Add Widget"
65667
- }
65668
- )
65669
- ] }) : /* @__PURE__ */ jsx("div", { className: "space-y-4", children: widgets.map((widget) => /* @__PURE__ */ jsxs("div", { className: "border rounded-lg p-4", children: [
65670
- widget.type === "metric" && widget.data && /* @__PURE__ */ jsx(
65671
- MetricCard,
65672
- {
65673
- data: widget.data,
65674
- glassmorphism
65675
- }
65676
- ),
65677
- widget.type === "chart" && widget.data && /* @__PURE__ */ jsx(
65678
- ChartWidget,
65679
- {
65680
- id: widget.id,
65681
- title: widget.title,
65682
- data: widget.data,
65683
- glassmorphism
65684
- }
65685
- ),
65686
- widget.type === "activity" && widget.data && /* @__PURE__ */ jsx(
65687
- ActivityFeed,
65688
- {
65689
- items: widget.data.items || [],
65690
- title: widget.title,
65691
- glassmorphism
65692
- }
65693
- )
65694
- ] }, widget.id)) })
65695
- ] }) })
65696
- ] })
65697
- ) : (
65698
- // Default widgets mode
65699
- /* @__PURE__ */ jsx("div", { className: "p-6", children: widgets.length === 0 ? (
65700
- // Empty state
65701
- /* @__PURE__ */ jsxs(
65702
- motion.div,
65703
- {
65704
- initial: { opacity: 0, scale: 0.9 },
65705
- animate: { opacity: 1, scale: 1 },
65706
- className: "flex flex-col items-center justify-center min-h-[400px] text-center",
65707
- children: [
65708
- /* @__PURE__ */ jsx("div", { className: cn(
65709
- "p-4 rounded-full mb-4",
65710
- glassmorphism ? "bg-background/60 backdrop-blur-sm" : "bg-muted"
65711
- ), children: /* @__PURE__ */ jsx(LayoutGrid, { className: "h-8 w-8 text-muted-foreground" }) }),
65712
- /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold mb-2", children: "No widgets added yet" }),
65713
- /* @__PURE__ */ jsx("p", { className: "text-muted-foreground mb-4", children: "Start by adding widgets or choosing a template" }),
65714
- /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
65715
- /* @__PURE__ */ jsxs(MoonUIButtonPro, { onClick: () => setShowWidgetLibrary(true), children: [
65716
- /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4 mr-2" }),
65717
- "Add Widget"
65718
- ] }),
65719
- /* @__PURE__ */ jsxs(MoonUIButtonPro, { variant: "outline", onClick: () => setShowTemplates(true), children: [
65720
- /* @__PURE__ */ jsx(LayoutGrid, { className: "h-4 w-4 mr-2" }),
65721
- "Browse Templates"
65722
- ] })
65723
- ] })
65724
- ]
65725
- }
65726
- )
65727
- ) : (
65728
- // Dashboard grid
65729
- /* @__PURE__ */ jsx(
65730
- DashboardGrid,
65731
- {
65732
- widgets,
65733
- onLayoutChange: (layout) => {
65734
- const updatedWidgets = widgets.map((widget) => {
65735
- const layoutItem = layout.find((l) => l.i === widget.id);
65736
- if (layoutItem) {
65737
- return {
65738
- ...widget,
65739
- position: { x: layoutItem.x, y: layoutItem.y },
65740
- size: { ...widget.size, w: layoutItem.w, h: layoutItem.h }
65741
- };
65742
- }
65743
- return widget;
65744
- });
65745
- setWidgets(updatedWidgets);
65746
- },
65747
- onWidgetRemove: (widgetId) => {
65748
- setWidgets((prev) => prev.filter((w) => w.id !== widgetId));
65749
- onWidgetRemove?.(widgetId);
65750
- },
65751
- onWidgetAction: (widgetId, action, data) => {
65752
- console.log("Widget action:", widgetId, action, data);
65753
- },
65754
- editMode,
65755
- glassmorphism
65756
- }
65757
- )
66585
+ )
66586
+ ) : (
66587
+ // Dashboard grid
66588
+ /* @__PURE__ */ jsx(
66589
+ DashboardGrid,
66590
+ {
66591
+ widgets,
66592
+ onLayoutChange: (layout) => {
66593
+ const updatedWidgets = widgets.map((widget) => {
66594
+ const layoutItem = layout.find((l) => l.i === widget.id);
66595
+ if (layoutItem) {
66596
+ return {
66597
+ ...widget,
66598
+ position: { x: layoutItem.x, y: layoutItem.y },
66599
+ size: { ...widget.size, w: layoutItem.w, h: layoutItem.h }
66600
+ };
66601
+ }
66602
+ return widget;
66603
+ });
66604
+ setWidgets(updatedWidgets);
66605
+ },
66606
+ onWidgetRemove: (widgetId) => {
66607
+ setWidgets((prev) => prev.filter((w) => w.id !== widgetId));
66608
+ onWidgetRemove?.(widgetId);
66609
+ },
66610
+ onWidgetAction: (widgetId, action, data) => {
66611
+ console.log("Widget action:", widgetId, action, data);
66612
+ },
66613
+ editMode,
66614
+ glassmorphism
66615
+ }
66616
+ )
66617
+ ) }) })
65758
66618
  ) })
65759
- ),
66619
+ ] }),
66620
+ sidebarPosition === "right" && sidebarContent && /* @__PURE__ */ jsxs("div", { className: cn(
66621
+ "h-full border-l flex-shrink-0 flex flex-col",
66622
+ glassmorphism ? "bg-background/60 backdrop-blur-md" : "bg-background"
66623
+ ), children: [
66624
+ (logo || brandName) && /* @__PURE__ */ jsx("div", { className: "p-6 border-b", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
66625
+ logo,
66626
+ brandName && /* @__PURE__ */ jsx("span", { className: "font-semibold text-lg", children: brandName })
66627
+ ] }) }),
66628
+ /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-hidden", children: sidebarContent })
66629
+ ] }),
65760
66630
  showWidgetLibrary && /* @__PURE__ */ jsx(WidgetLibrary, {}),
65761
66631
  showTemplates && /* @__PURE__ */ jsx(TemplateGallery, {})
65762
66632
  ]
@@ -79412,7 +80282,7 @@ var tableVariants = cva(
79412
80282
  }
79413
80283
  }
79414
80284
  );
79415
- var Table3 = t.forwardRef(({
80285
+ var Table4 = t.forwardRef(({
79416
80286
  className,
79417
80287
  variant,
79418
80288
  size: size4,
@@ -79457,7 +80327,7 @@ var Table3 = t.forwardRef(({
79457
80327
  )
79458
80328
  ] });
79459
80329
  });
79460
- Table3.displayName = "Table";
80330
+ Table4.displayName = "Table";
79461
80331
  var TableHeader2 = t.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn2("moonui-theme", "[&_tr]:border-b", className), ...props }));
79462
80332
  TableHeader2.displayName = "TableHeader";
79463
80333
  var TableBody = t.forwardRef(({ className, emptyContent, emptyMessage = "No data available", children, ...props }, ref) => {