@grupo-elo-editorial/shared-ui-react 1.0.0

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.
Files changed (77) hide show
  1. package/README.md +184 -0
  2. package/dist/components/atoms/Avatar.d.ts +12 -0
  3. package/dist/components/atoms/Badge.d.ts +12 -0
  4. package/dist/components/atoms/Button.d.ts +14 -0
  5. package/dist/components/atoms/Divider.d.ts +8 -0
  6. package/dist/components/atoms/Rating.d.ts +11 -0
  7. package/dist/components/atoms/Spinner.d.ts +10 -0
  8. package/dist/components/atoms/Textarea.d.ts +7 -0
  9. package/dist/components/atoms/index.d.ts +19 -0
  10. package/dist/components/figma/ImageWithFallback.d.ts +2 -0
  11. package/dist/components/molecules/FormGroup.d.ts +11 -0
  12. package/dist/components/molecules/PriceDisplay.d.ts +14 -0
  13. package/dist/components/molecules/ProductCard.d.ts +18 -0
  14. package/dist/components/molecules/QuantitySelector.d.ts +12 -0
  15. package/dist/components/molecules/SearchBar.d.ts +9 -0
  16. package/dist/components/molecules/index.d.ts +15 -0
  17. package/dist/components/organisms/EmptyState.d.ts +13 -0
  18. package/dist/components/organisms/ErrorState.d.ts +12 -0
  19. package/dist/components/organisms/Hero.d.ts +20 -0
  20. package/dist/components/organisms/ProductGrid.d.ts +13 -0
  21. package/dist/components/organisms/index.d.ts +10 -0
  22. package/dist/components/prd/HeroCarousel.d.ts +20 -0
  23. package/dist/components/prd/TopAccessibilityBar.d.ts +7 -0
  24. package/dist/components/prd/index.d.ts +4 -0
  25. package/dist/components/ui/accordion.d.ts +7 -0
  26. package/dist/components/ui/alert-dialog.d.ts +14 -0
  27. package/dist/components/ui/alert.d.ts +9 -0
  28. package/dist/components/ui/aspect-ratio.d.ts +3 -0
  29. package/dist/components/ui/avatar.d.ts +6 -0
  30. package/dist/components/ui/badge.d.ts +9 -0
  31. package/dist/components/ui/breadcrumb.d.ts +11 -0
  32. package/dist/components/ui/button.d.ts +10 -0
  33. package/dist/components/ui/calendar.d.ts +4 -0
  34. package/dist/components/ui/card.d.ts +9 -0
  35. package/dist/components/ui/carousel.d.ts +19 -0
  36. package/dist/components/ui/chart.d.ts +40 -0
  37. package/dist/components/ui/checkbox.d.ts +4 -0
  38. package/dist/components/ui/collapsible.d.ts +5 -0
  39. package/dist/components/ui/command.d.ts +16 -0
  40. package/dist/components/ui/context-menu.d.ts +25 -0
  41. package/dist/components/ui/dialog.d.ts +13 -0
  42. package/dist/components/ui/drawer.d.ts +13 -0
  43. package/dist/components/ui/dropdown-menu.d.ts +25 -0
  44. package/dist/components/ui/form.d.ts +24 -0
  45. package/dist/components/ui/hover-card.d.ts +6 -0
  46. package/dist/components/ui/input-otp.d.ts +11 -0
  47. package/dist/components/ui/input.d.ts +3 -0
  48. package/dist/components/ui/label.d.ts +4 -0
  49. package/dist/components/ui/menubar.d.ts +26 -0
  50. package/dist/components/ui/navigation-menu.d.ts +14 -0
  51. package/dist/components/ui/pagination.d.ts +13 -0
  52. package/dist/components/ui/popover.d.ts +7 -0
  53. package/dist/components/ui/progress.d.ts +4 -0
  54. package/dist/components/ui/radio-group.d.ts +5 -0
  55. package/dist/components/ui/resizable.d.ts +8 -0
  56. package/dist/components/ui/scroll-area.d.ts +5 -0
  57. package/dist/components/ui/select.d.ts +15 -0
  58. package/dist/components/ui/separator.d.ts +4 -0
  59. package/dist/components/ui/sheet.d.ts +13 -0
  60. package/dist/components/ui/sidebar.d.ts +69 -0
  61. package/dist/components/ui/skeleton.d.ts +2 -0
  62. package/dist/components/ui/slider.d.ts +4 -0
  63. package/dist/components/ui/sonner.d.ts +3 -0
  64. package/dist/components/ui/switch.d.ts +4 -0
  65. package/dist/components/ui/table.d.ts +10 -0
  66. package/dist/components/ui/tabs.d.ts +7 -0
  67. package/dist/components/ui/textarea.d.ts +3 -0
  68. package/dist/components/ui/toggle-group.d.ts +7 -0
  69. package/dist/components/ui/toggle.d.ts +9 -0
  70. package/dist/components/ui/tooltip.d.ts +7 -0
  71. package/dist/components/ui/use-mobile.d.ts +1 -0
  72. package/dist/components/ui/utils.d.ts +2 -0
  73. package/dist/index.d.ts +6 -0
  74. package/dist/index.js +1914 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/style.css +1 -0
  77. package/package.json +116 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/components/ui/utils.ts","../src/components/atoms/Button.tsx","../src/components/atoms/Textarea.tsx","../src/components/atoms/Badge.tsx","../src/components/atoms/Avatar.tsx","../src/components/atoms/Spinner.tsx","../src/components/atoms/Divider.tsx","../src/components/atoms/Rating.tsx","../src/components/ui/input.tsx","../src/components/ui/select.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/radio-group.tsx","../src/components/ui/switch.tsx","../src/components/molecules/ProductCard.tsx","../src/components/molecules/SearchBar.tsx","../src/components/molecules/PriceDisplay.tsx","../src/components/molecules/QuantitySelector.tsx","../src/components/molecules/FormGroup.tsx","../src/components/ui/breadcrumb.tsx","../src/components/ui/accordion.tsx","../src/components/ui/tooltip.tsx","../src/components/organisms/Hero.tsx","../src/components/organisms/EmptyState.tsx","../src/components/organisms/ErrorState.tsx","../src/components/organisms/ProductGrid.tsx","../src/components/ui/dialog.tsx","../src/components/ui/sheet.tsx","../src/components/prd/TopAccessibilityBar.tsx","../src/components/prd/HeroCarousel.tsx"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { ButtonHTMLAttributes, forwardRef } from 'react';\nimport { Loader2 } from 'lucide-react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../ui/utils';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 rounded-lg font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 whitespace-nowrap',\n {\n variants: {\n variant: {\n primary: 'bg-[var(--brand-primary)] text-[var(--primary-foreground)] hover:bg-[var(--brand-primary-hover)] active:bg-[var(--brand-primary-active)] shadow-sm',\n secondary: 'border-2 border-[var(--brand-primary)] text-[var(--brand-primary)] bg-transparent hover:bg-[var(--brand-primary)] hover:text-[var(--primary-foreground)] active:bg-[var(--brand-primary-active)]',\n ghost: 'text-[var(--brand-primary)] bg-transparent hover:bg-[var(--accent)] active:bg-[var(--accent)]',\n danger: 'bg-[var(--destructive)] text-[var(--destructive-foreground)] hover:opacity-90 active:opacity-80 shadow-sm',\n link: 'text-[var(--brand-primary)] underline-offset-4 hover:underline p-0 h-auto',\n success: 'bg-[var(--success)] text-[var(--success-foreground)] hover:opacity-90 active:opacity-80 shadow-sm',\n },\n size: {\n sm: 'h-9 px-3 text-sm min-w-[44px]',\n md: 'h-11 px-4 text-base min-w-[44px]',\n lg: 'h-14 px-6 text-lg min-w-[44px]',\n },\n fullWidth: {\n true: 'w-full',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n);\n\nexport interface ButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n isLoading?: boolean;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n}\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n fullWidth,\n isLoading,\n leftIcon,\n rightIcon,\n children,\n disabled,\n ...props\n },\n ref\n ) => {\n return (\n <button\n className={cn(buttonVariants({ variant, size, fullWidth, className }))}\n ref={ref}\n disabled={disabled || isLoading}\n {...props}\n >\n {isLoading ? (\n <>\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n {children && <span>{children}</span>}\n </>\n ) : (\n <>\n {leftIcon && <span className=\"inline-flex\">{leftIcon}</span>}\n {children}\n {rightIcon && <span className=\"inline-flex\">{rightIcon}</span>}\n </>\n )}\n </button>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","import { TextareaHTMLAttributes, forwardRef } from 'react';\nimport { cn } from '../ui/utils';\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n error?: boolean;\n helperText?: string;\n}\n\nconst Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, error, helperText, ...props }, ref) => {\n return (\n <div className=\"w-full\">\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded-lg border-2 border-[var(--border)] bg-[var(--input-background)] px-3 py-2 text-base transition-colors',\n 'placeholder:text-[var(--muted-foreground)]',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'resize-y',\n error && 'border-[var(--destructive)] focus-visible:ring-[var(--destructive)]',\n className\n )}\n ref={ref}\n {...props}\n />\n {helperText && (\n <p\n className={cn(\n 'mt-1.5 text-sm',\n error ? 'text-[var(--destructive)]' : 'text-[var(--muted-foreground)]'\n )}\n >\n {helperText}\n </p>\n )}\n </div>\n );\n }\n);\n\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n","import { HTMLAttributes, forwardRef } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../ui/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-full font-medium transition-colors whitespace-nowrap',\n {\n variants: {\n variant: {\n default: 'bg-[var(--primary)] text-[var(--primary-foreground)]',\n secondary: 'bg-[var(--secondary)] text-[var(--secondary-foreground)]',\n success: 'bg-[var(--success)] text-[var(--success-foreground)]',\n warning: 'bg-[var(--warning)] text-[var(--warning-foreground)]',\n danger: 'bg-[var(--destructive)] text-[var(--destructive-foreground)]',\n outline: 'border-2 border-[var(--brand-primary)] text-[var(--brand-primary)] bg-transparent',\n info: 'bg-[var(--info)] text-[var(--info-foreground)]',\n },\n size: {\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\nexport interface BadgeProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {\n icon?: React.ReactNode;\n onRemove?: () => void;\n}\n\nconst Badge = forwardRef<HTMLDivElement, BadgeProps>(\n ({ className, variant, size, icon, onRemove, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n >\n {icon && <span className=\"mr-1 inline-flex\">{icon}</span>}\n {children}\n {onRemove && (\n <button\n onClick={onRemove}\n className=\"ml-1 inline-flex hover:opacity-70 focus:outline-none focus:ring-1 focus:ring-[var(--ring)] rounded-full\"\n aria-label=\"Remove\"\n >\n ×\n </button>\n )}\n </div>\n );\n }\n);\n\nBadge.displayName = 'Badge';\n\nexport { Badge, badgeVariants };\n","import { ImgHTMLAttributes, forwardRef, useState } from 'react';\nimport { User } from 'lucide-react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../ui/utils';\n\nconst avatarVariants = cva(\n 'relative inline-flex items-center justify-center overflow-hidden rounded-full bg-[var(--muted)] text-[var(--muted-foreground)] flex-shrink-0',\n {\n variants: {\n size: {\n sm: 'h-8 w-8 text-sm',\n md: 'h-10 w-10 text-base',\n lg: 'h-12 w-12 text-lg',\n xl: 'h-16 w-16 text-xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface AvatarProps\n extends Omit<ImgHTMLAttributes<HTMLImageElement>, 'size'>,\n VariantProps<typeof avatarVariants> {\n name?: string;\n showStatus?: boolean;\n statusType?: 'online' | 'offline' | 'away' | 'busy';\n}\n\nconst Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n ({ className, size, src, alt, name, showStatus, statusType = 'online', ...props }, ref) => {\n const [imageError, setImageError] = useState(false);\n\n const getInitials = (name: string) => {\n return name\n .split(' ')\n .map((n) => n[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n };\n\n const statusColors = {\n online: 'bg-[var(--success)]',\n offline: 'bg-[var(--muted-foreground)]',\n away: 'bg-[var(--warning)]',\n busy: 'bg-[var(--destructive)]',\n };\n\n const statusSizes = {\n sm: 'h-2 w-2 border',\n md: 'h-2.5 w-2.5 border-2',\n lg: 'h-3 w-3 border-2',\n xl: 'h-4 w-4 border-2',\n };\n\n return (\n <div ref={ref} className={cn(avatarVariants({ size }), 'relative', className)}>\n {src && !imageError ? (\n <img\n src={src}\n alt={alt || name || 'Avatar'}\n onError={() => setImageError(true)}\n className=\"h-full w-full object-cover\"\n {...props}\n />\n ) : name ? (\n <span className=\"font-medium\">{getInitials(name)}</span>\n ) : (\n <User className=\"h-1/2 w-1/2\" />\n )}\n\n {showStatus && (\n <span\n className={cn(\n 'absolute bottom-0 right-0 rounded-full border-[var(--background)]',\n statusColors[statusType],\n statusSizes[size || 'md']\n )}\n aria-label={`Status: ${statusType}`}\n />\n )}\n </div>\n );\n }\n);\n\nAvatar.displayName = 'Avatar';\n\nexport { Avatar, avatarVariants };\n","import { HTMLAttributes, forwardRef } from 'react';\nimport { Loader2 } from 'lucide-react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../ui/utils';\n\nconst spinnerVariants = cva('animate-spin text-[var(--brand-primary)]', {\n variants: {\n size: {\n sm: 'h-4 w-4',\n md: 'h-6 w-6',\n lg: 'h-8 w-8',\n xl: 'h-12 w-12',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport interface SpinnerProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>,\n VariantProps<typeof spinnerVariants> {\n label?: string;\n}\n\nconst Spinner = forwardRef<HTMLDivElement, SpinnerProps>(\n ({ className, size, label, ...props }, ref) => {\n return (\n <div\n ref={ref}\n role=\"status\"\n aria-label={label || 'Loading'}\n className={cn('inline-flex items-center justify-center', className)}\n {...props}\n >\n <Loader2 className={cn(spinnerVariants({ size }))} />\n <span className=\"sr-only\">{label || 'Loading'}</span>\n </div>\n );\n }\n);\n\nSpinner.displayName = 'Spinner';\n\nexport { Spinner, spinnerVariants };\n","import { HTMLAttributes, forwardRef } from 'react';\nimport { cn } from '../ui/utils';\n\nexport interface DividerProps extends HTMLAttributes<HTMLHRElement> {\n orientation?: 'horizontal' | 'vertical';\n variant?: 'solid' | 'dashed' | 'dotted';\n text?: string;\n}\n\nconst Divider = forwardRef<HTMLHRElement, DividerProps>(\n ({ className, orientation = 'horizontal', variant = 'solid', text, ...props }, ref) => {\n const variantStyles = {\n solid: 'border-solid',\n dashed: 'border-dashed',\n dotted: 'border-dotted',\n };\n\n if (text && orientation === 'horizontal') {\n return (\n <div className={cn('flex items-center gap-4 my-4', className)} role=\"separator\">\n <hr\n ref={ref}\n className={cn(\n 'flex-1 border-[var(--border)]',\n variantStyles[variant]\n )}\n {...props}\n />\n <span className=\"text-sm text-[var(--muted-foreground)]\">{text}</span>\n <hr\n className={cn(\n 'flex-1 border-[var(--border)]',\n variantStyles[variant]\n )}\n />\n </div>\n );\n }\n\n return (\n <hr\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation}\n className={cn(\n 'border-[var(--border)]',\n variantStyles[variant],\n orientation === 'vertical'\n ? 'h-full w-px border-l'\n : 'w-full border-t my-4',\n className\n )}\n {...props}\n />\n );\n }\n);\n\nDivider.displayName = 'Divider';\n\nexport { Divider };\n","import { HTMLAttributes, forwardRef, useState } from 'react';\nimport { Star } from 'lucide-react';\nimport { cn } from '../ui/utils';\n\nexport interface RatingProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n value?: number;\n maxRating?: number;\n size?: 'sm' | 'md' | 'lg';\n readonly?: boolean;\n onChange?: (rating: number) => void;\n showValue?: boolean;\n}\n\nconst Rating = forwardRef<HTMLDivElement, RatingProps>(\n (\n {\n className,\n value = 0,\n maxRating = 5,\n size = 'md',\n readonly = false,\n onChange,\n showValue = false,\n ...props\n },\n ref\n ) => {\n const [hoverRating, setHoverRating] = useState(0);\n\n const sizeClasses = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n };\n\n const handleClick = (rating: number) => {\n if (!readonly && onChange) {\n onChange(rating);\n }\n };\n\n const displayRating = hoverRating || value;\n\n return (\n <div\n ref={ref}\n className={cn('inline-flex items-center gap-1', className)}\n role=\"group\"\n aria-label={`Rating: ${value} out of ${maxRating}`}\n {...props}\n >\n <div className=\"flex items-center gap-0.5\">\n {Array.from({ length: maxRating }, (_, i) => i + 1).map((rating) => {\n const isFilled = rating <= displayRating;\n const isPartial = rating === Math.ceil(displayRating) && displayRating % 1 !== 0;\n\n return (\n <button\n key={rating}\n type=\"button\"\n disabled={readonly}\n onClick={() => handleClick(rating)}\n onMouseEnter={() => !readonly && setHoverRating(rating)}\n onMouseLeave={() => !readonly && setHoverRating(0)}\n className={cn(\n 'transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-1 rounded',\n readonly ? 'cursor-default' : 'cursor-pointer hover:scale-110'\n )}\n aria-label={`Rate ${rating} out of ${maxRating}`}\n >\n <Star\n className={cn(\n sizeClasses[size],\n 'transition-all',\n isFilled\n ? 'fill-[var(--warning)] text-[var(--warning)]'\n : 'fill-none text-[var(--muted-foreground)]'\n )}\n />\n </button>\n );\n })}\n </div>\n\n {showValue && (\n <span className=\"ml-1 text-sm font-medium text-[var(--foreground)]\">\n {value.toFixed(1)}\n </span>\n )}\n </div>\n );\n }\n);\n\nRating.displayName = 'Rating';\n\nexport { Rating };\n","import * as React from \"react\";\n\nimport { cn } from \"./utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border px-3 py-1 text-base bg-input-background transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport {\n CheckIcon,\n ChevronDownIcon,\n ChevronUpIcon,\n} from \"lucide-react\";\n\nimport { cn } from \"./utils\";\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-full items-center justify-between gap-2 rounded-md border bg-input-background px-3 py-2 text-sm whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"text-muted-foreground px-2 py-1.5 text-xs\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport { cn } from \"./utils\";\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer border bg-input-background dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"flex items-center justify-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"./utils\";\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n );\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\n\nimport { cn } from \"./utils\";\n\nfunction Switch({\n className,\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-switch-background focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-card dark:data-[state=unchecked]:bg-card-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\",\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n","import { forwardRef, HTMLAttributes } from 'react';\nimport { ShoppingCart, Heart } from 'lucide-react';\nimport { cn } from '../ui/utils';\nimport { Button } from '../atoms/Button';\nimport { Badge } from '../atoms/Badge';\nimport { Rating } from '../atoms/Rating';\n\nexport interface ProductCardProps extends HTMLAttributes<HTMLDivElement> {\n image: string;\n title: string;\n price: number;\n originalPrice?: number;\n rating?: number;\n reviewCount?: number;\n badge?: string;\n badgeVariant?: 'default' | 'success' | 'warning' | 'danger';\n isSkeleton?: boolean;\n isOutOfStock?: boolean;\n onAddToCart?: () => void;\n onToggleFavorite?: () => void;\n isFavorite?: boolean;\n}\n\nconst ProductCard = forwardRef<HTMLDivElement, ProductCardProps>(\n (\n {\n className,\n image,\n title,\n price,\n originalPrice,\n rating,\n reviewCount,\n badge,\n badgeVariant = 'default',\n isSkeleton = false,\n isOutOfStock = false,\n onAddToCart,\n onToggleFavorite,\n isFavorite = false,\n ...props\n },\n ref\n ) => {\n if (isSkeleton) {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-col rounded-lg border-2 border-[var(--border)] bg-[var(--card)] p-4 animate-pulse',\n className\n )}\n {...props}\n >\n <div className=\"aspect-square w-full rounded-lg bg-[var(--muted)]\" />\n <div className=\"mt-3 h-4 w-3/4 rounded bg-[var(--muted)]\" />\n <div className=\"mt-2 h-4 w-1/2 rounded bg-[var(--muted)]\" />\n <div className=\"mt-3 h-10 w-full rounded bg-[var(--muted)]\" />\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'group relative flex flex-col rounded-lg border-2 border-[var(--border)] bg-[var(--card)] transition-all hover:shadow-lg',\n isOutOfStock && 'opacity-60',\n className\n )}\n {...props}\n >\n {/* Image Container */}\n <div className=\"relative aspect-square w-full overflow-hidden rounded-t-lg\">\n <img\n src={image}\n alt={title}\n className=\"h-full w-full object-cover transition-transform group-hover:scale-105\"\n />\n\n {badge && (\n <div className=\"absolute left-3 top-3\">\n <Badge variant={badgeVariant}>{badge}</Badge>\n </div>\n )}\n\n {isOutOfStock && (\n <div className=\"absolute inset-0 flex items-center justify-center bg-black/60\">\n <Badge variant=\"danger\" size=\"lg\">\n Esgotado\n </Badge>\n </div>\n )}\n\n {onToggleFavorite && (\n <button\n onClick={onToggleFavorite}\n className=\"absolute right-3 top-3 rounded-full bg-white/90 p-2 transition-all hover:bg-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]\"\n aria-label={isFavorite ? 'Remove from favorites' : 'Add to favorites'}\n >\n <Heart\n className={cn(\n 'h-5 w-5',\n isFavorite\n ? 'fill-[var(--destructive)] text-[var(--destructive)]'\n : 'text-[var(--foreground)]'\n )}\n />\n </button>\n )}\n </div>\n\n {/* Content */}\n <div className=\"flex flex-1 flex-col p-4\">\n <h3 className=\"line-clamp-2 text-base font-medium text-[var(--card-foreground)]\">\n {title}\n </h3>\n\n {rating !== undefined && (\n <div className=\"mt-2 flex items-center gap-2\">\n <Rating value={rating} size=\"sm\" readonly />\n {reviewCount !== undefined && (\n <span className=\"text-sm text-[var(--muted-foreground)]\">\n ({reviewCount})\n </span>\n )}\n </div>\n )}\n\n <div className=\"mt-3 flex items-baseline gap-2\">\n <span className=\"text-xl font-bold text-[var(--foreground)]\">\n R$ {price.toFixed(2)}\n </span>\n {originalPrice && originalPrice > price && (\n <span className=\"text-sm text-[var(--muted-foreground)] line-through\">\n R$ {originalPrice.toFixed(2)}\n </span>\n )}\n </div>\n\n {onAddToCart && (\n <Button\n onClick={onAddToCart}\n disabled={isOutOfStock}\n variant=\"primary\"\n size=\"md\"\n fullWidth\n leftIcon={<ShoppingCart className=\"h-4 w-4\" />}\n className=\"mt-4\"\n >\n {isOutOfStock ? 'Indisponível' : 'Adicionar'}\n </Button>\n )}\n </div>\n </div>\n );\n }\n);\n\nProductCard.displayName = 'ProductCard';\n\nexport { ProductCard };\n","import { forwardRef, InputHTMLAttributes, useState } from 'react';\nimport { Search, X, Loader2 } from 'lucide-react';\nimport { cn } from '../ui/utils';\n\nexport interface SearchBarProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n onSearch?: (value: string) => void;\n onClear?: () => void;\n isLoading?: boolean;\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst SearchBar = forwardRef<HTMLInputElement, SearchBarProps>(\n (\n {\n className,\n onSearch,\n onClear,\n isLoading = false,\n size = 'md',\n placeholder = 'Buscar...',\n value: controlledValue,\n onChange,\n ...props\n },\n ref\n ) => {\n const [internalValue, setInternalValue] = useState('');\n const value = controlledValue !== undefined ? controlledValue : internalValue;\n\n const sizeClasses = {\n sm: 'h-9 text-sm',\n md: 'h-11 text-base',\n lg: 'h-14 text-lg',\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n if (controlledValue === undefined) {\n setInternalValue(newValue);\n }\n onChange?.(e);\n };\n\n const handleClear = () => {\n if (controlledValue === undefined) {\n setInternalValue('');\n }\n onClear?.();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' && onSearch) {\n onSearch(value as string);\n }\n };\n\n return (\n <div className={cn('relative w-full', className)}>\n <div className=\"relative flex items-center\">\n <Search className=\"absolute left-3 h-5 w-5 text-[var(--muted-foreground)] pointer-events-none\" />\n\n <input\n ref={ref}\n type=\"search\"\n value={value}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n className={cn(\n 'w-full rounded-lg border-2 border-[var(--border)] bg-[var(--input-background)] pl-10 pr-10 font-normal transition-colors',\n 'placeholder:text-[var(--muted-foreground)]',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n sizeClasses[size]\n )}\n {...props}\n />\n\n <div className=\"absolute right-3 flex items-center gap-1\">\n {isLoading && <Loader2 className=\"h-5 w-5 animate-spin text-[var(--muted-foreground)]\" />}\n\n {value && !isLoading && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"rounded-full p-1 hover:bg-[var(--muted)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]\"\n aria-label=\"Clear search\"\n >\n <X className=\"h-4 w-4 text-[var(--muted-foreground)]\" />\n </button>\n )}\n </div>\n </div>\n </div>\n );\n }\n);\n\nSearchBar.displayName = 'SearchBar';\n\nexport { SearchBar };\n","import { HTMLAttributes, forwardRef } from 'react';\nimport { cn } from '../ui/utils';\nimport { Badge } from '../atoms/Badge';\n\nexport interface PriceDisplayProps extends HTMLAttributes<HTMLDivElement> {\n price: number;\n originalPrice?: number;\n currency?: string;\n size?: 'sm' | 'md' | 'lg' | 'xl';\n showDiscount?: boolean;\n installments?: {\n count: number;\n value: number;\n };\n}\n\nconst PriceDisplay = forwardRef<HTMLDivElement, PriceDisplayProps>(\n (\n {\n className,\n price,\n originalPrice,\n currency = 'R$',\n size = 'md',\n showDiscount = true,\n installments,\n ...props\n },\n ref\n ) => {\n const discount =\n originalPrice && originalPrice > price\n ? Math.round(((originalPrice - price) / originalPrice) * 100)\n : 0;\n\n const sizeClasses = {\n sm: 'text-base',\n md: 'text-xl',\n lg: 'text-2xl',\n xl: 'text-4xl',\n };\n\n const originalSizeClasses = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n xl: 'text-xl',\n };\n\n return (\n <div ref={ref} className={cn('flex flex-col gap-1', className)} {...props}>\n <div className=\"flex items-center gap-2 flex-wrap\">\n <div className=\"flex items-baseline gap-2\">\n <span className={cn('font-bold text-[var(--foreground)]', sizeClasses[size])}>\n {currency} {price.toFixed(2)}\n </span>\n\n {originalPrice && originalPrice > price && (\n <span\n className={cn(\n 'text-[var(--muted-foreground)] line-through',\n originalSizeClasses[size]\n )}\n >\n {currency} {originalPrice.toFixed(2)}\n </span>\n )}\n </div>\n\n {showDiscount && discount > 0 && (\n <Badge variant=\"success\" size=\"sm\">\n -{discount}%\n </Badge>\n )}\n </div>\n\n {installments && (\n <p className=\"text-sm text-[var(--muted-foreground)]\">\n ou {installments.count}x de {currency} {installments.value.toFixed(2)} sem juros\n </p>\n )}\n </div>\n );\n }\n);\n\nPriceDisplay.displayName = 'PriceDisplay';\n\nexport { PriceDisplay };\n","import { forwardRef, HTMLAttributes } from 'react';\nimport { Minus, Plus } from 'lucide-react';\nimport { cn } from '../ui/utils';\nimport { Button } from '../atoms/Button';\n\nexport interface QuantitySelectorProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n value: number;\n min?: number;\n max?: number;\n onChange: (value: number) => void;\n size?: 'sm' | 'md' | 'lg';\n disabled?: boolean;\n showLabel?: boolean;\n}\n\nconst QuantitySelector = forwardRef<HTMLDivElement, QuantitySelectorProps>(\n (\n {\n className,\n value,\n min = 1,\n max = 99,\n onChange,\n size = 'md',\n disabled = false,\n showLabel = false,\n ...props\n },\n ref\n ) => {\n const handleIncrement = () => {\n if (value < max) {\n onChange(value + 1);\n }\n };\n\n const handleDecrement = () => {\n if (value > min) {\n onChange(value - 1);\n }\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = parseInt(e.target.value);\n if (!isNaN(newValue) && newValue >= min && newValue <= max) {\n onChange(newValue);\n }\n };\n\n const sizeClasses = {\n sm: 'h-8 w-8',\n md: 'h-10 w-10',\n lg: 'h-12 w-12',\n };\n\n const inputSizeClasses = {\n sm: 'h-8 w-12 text-sm',\n md: 'h-10 w-14 text-base',\n lg: 'h-12 w-16 text-lg',\n };\n\n return (\n <div ref={ref} className={cn('inline-flex flex-col gap-1', className)} {...props}>\n {showLabel && (\n <label className=\"text-sm font-medium text-[var(--foreground)]\">\n Quantidade\n </label>\n )}\n\n <div className=\"inline-flex items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"sm\"\n onClick={handleDecrement}\n disabled={disabled || value <= min}\n className={cn(sizeClasses[size], 'p-0')}\n aria-label=\"Decrease quantity\"\n >\n <Minus className=\"h-4 w-4\" />\n </Button>\n\n <input\n type=\"number\"\n value={value}\n onChange={handleInputChange}\n min={min}\n max={max}\n disabled={disabled}\n className={cn(\n 'rounded-lg border-2 border-[var(--border)] bg-[var(--input-background)] text-center font-medium transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n '[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',\n inputSizeClasses[size]\n )}\n aria-label=\"Quantity\"\n />\n\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"sm\"\n onClick={handleIncrement}\n disabled={disabled || value >= max}\n className={cn(sizeClasses[size], 'p-0')}\n aria-label=\"Increase quantity\"\n >\n <Plus className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n );\n }\n);\n\nQuantitySelector.displayName = 'QuantitySelector';\n\nexport { QuantitySelector };\n","import { HTMLAttributes, forwardRef, ReactNode } from 'react';\nimport { cn } from '../ui/utils';\n\nexport interface FormGroupProps extends HTMLAttributes<HTMLDivElement> {\n label?: string;\n htmlFor?: string;\n required?: boolean;\n error?: string;\n helperText?: string;\n children: ReactNode;\n}\n\nconst FormGroup = forwardRef<HTMLDivElement, FormGroupProps>(\n ({ className, label, htmlFor, required, error, helperText, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn('flex flex-col gap-1.5', className)} {...props}>\n {label && (\n <label\n htmlFor={htmlFor}\n className=\"text-sm font-medium text-[var(--foreground)]\"\n >\n {label}\n {required && <span className=\"ml-1 text-[var(--destructive)]\">*</span>}\n </label>\n )}\n\n {children}\n\n {(error || helperText) && (\n <p\n className={cn(\n 'text-sm',\n error ? 'text-[var(--destructive)]' : 'text-[var(--muted-foreground)]'\n )}\n >\n {error || helperText}\n </p>\n )}\n </div>\n );\n }\n);\n\nFormGroup.displayName = 'FormGroup';\n\nexport { FormGroup };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"./utils\";\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<\"nav\">) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />;\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n data-slot=\"breadcrumb-link\"\n className={cn(\"hover:text-foreground transition-colors\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"text-foreground font-normal\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"./utils\";\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"border-b last:border-b-0\", className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\n {...props}\n >\n <div className={cn(\"pt-0 pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { cn } from \"./utils\";\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance\",\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import { HTMLAttributes, forwardRef } from 'react';\nimport { cn } from '../ui/utils';\nimport { Button } from '../atoms/Button';\n\nexport interface HeroProps extends HTMLAttributes<HTMLDivElement> {\n variant?: 'default' | 'centered' | 'split';\n title: string;\n subtitle?: string;\n description?: string;\n primaryCTA?: {\n label: string;\n onClick: () => void;\n };\n secondaryCTA?: {\n label: string;\n onClick: () => void;\n };\n backgroundImage?: string;\n overlay?: boolean;\n children?: React.ReactNode;\n}\n\nconst Hero = forwardRef<HTMLDivElement, HeroProps>(\n (\n {\n className,\n variant = 'default',\n title,\n subtitle,\n description,\n primaryCTA,\n secondaryCTA,\n backgroundImage,\n overlay = true,\n children,\n ...props\n },\n ref\n ) => {\n const variantClasses = {\n default: 'items-start text-left',\n centered: 'items-center text-center',\n split: 'lg:grid lg:grid-cols-2 lg:gap-12 items-center',\n };\n\n return (\n <section\n ref={ref}\n className={cn(\n 'relative flex min-h-[400px] w-full flex-col justify-center px-6 py-16 lg:px-12 lg:py-24',\n variantClasses[variant],\n className\n )}\n {...props}\n >\n {backgroundImage && (\n <>\n <div\n className=\"absolute inset-0 bg-cover bg-center bg-no-repeat\"\n style={{ backgroundImage: `url(${backgroundImage})` }}\n />\n {overlay && (\n <div className=\"absolute inset-0 bg-gradient-to-r from-black/70 to-black/30\" />\n )}\n </>\n )}\n\n <div\n className={cn(\n 'relative z-10 max-w-7xl mx-auto w-full',\n variant === 'centered' && 'flex flex-col items-center'\n )}\n >\n <div className={cn('max-w-3xl', variant === 'split' && 'max-w-none')}>\n {subtitle && (\n <p\n className={cn(\n 'mb-4 text-sm font-semibold uppercase tracking-wider',\n backgroundImage\n ? 'text-[var(--warning)]'\n : 'text-[var(--brand-primary)]'\n )}\n >\n {subtitle}\n </p>\n )}\n\n <h1\n className={cn(\n 'text-4xl font-bold leading-tight lg:text-5xl xl:text-6xl',\n backgroundImage ? 'text-white' : 'text-[var(--foreground)]'\n )}\n >\n {title}\n </h1>\n\n {description && (\n <p\n className={cn(\n 'mt-6 text-lg lg:text-xl',\n backgroundImage\n ? 'text-gray-200'\n : 'text-[var(--muted-foreground)]'\n )}\n >\n {description}\n </p>\n )}\n\n {(primaryCTA || secondaryCTA) && (\n <div className=\"mt-8 flex flex-wrap gap-4\">\n {primaryCTA && (\n <Button\n size=\"lg\"\n onClick={primaryCTA.onClick}\n variant=\"primary\"\n >\n {primaryCTA.label}\n </Button>\n )}\n\n {secondaryCTA && (\n <Button\n size=\"lg\"\n onClick={secondaryCTA.onClick}\n variant=\"secondary\"\n >\n {secondaryCTA.label}\n </Button>\n )}\n </div>\n )}\n </div>\n\n {variant === 'split' && children && (\n <div className=\"mt-8 lg:mt-0\">{children}</div>\n )}\n </div>\n\n {variant !== 'split' && children && (\n <div className=\"relative z-10 mt-12 w-full max-w-7xl mx-auto\">\n {children}\n </div>\n )}\n </section>\n );\n }\n);\n\nHero.displayName = 'Hero';\n\nexport { Hero };\n","import { HTMLAttributes, forwardRef } from 'react';\nimport { Package, Search, ShoppingCart, FileX } from 'lucide-react';\nimport { cn } from '../ui/utils';\nimport { Button } from '../atoms/Button';\n\nexport interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {\n variant?: 'default' | 'search' | 'cart' | 'error';\n icon?: React.ReactNode;\n title: string;\n description?: string;\n action?: {\n label: string;\n onClick: () => void;\n };\n}\n\nconst EmptyState = forwardRef<HTMLDivElement, EmptyStateProps>(\n (\n {\n className,\n variant = 'default',\n icon,\n title,\n description,\n action,\n ...props\n },\n ref\n ) => {\n const defaultIcons = {\n default: <Package className=\"h-16 w-16\" />,\n search: <Search className=\"h-16 w-16\" />,\n cart: <ShoppingCart className=\"h-16 w-16\" />,\n error: <FileX className=\"h-16 w-16\" />,\n };\n\n const displayIcon = icon || defaultIcons[variant];\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-col items-center justify-center py-16 px-6 text-center',\n className\n )}\n {...props}\n >\n <div className=\"rounded-full bg-[var(--muted)] p-6 text-[var(--muted-foreground)]\">\n {displayIcon}\n </div>\n\n <h3 className=\"mt-6 text-xl font-semibold text-[var(--foreground)]\">\n {title}\n </h3>\n\n {description && (\n <p className=\"mt-2 max-w-md text-[var(--muted-foreground)]\">\n {description}\n </p>\n )}\n\n {action && (\n <Button\n onClick={action.onClick}\n variant=\"primary\"\n size=\"lg\"\n className=\"mt-6\"\n >\n {action.label}\n </Button>\n )}\n </div>\n );\n }\n);\n\nEmptyState.displayName = 'EmptyState';\n\nexport { EmptyState };\n","import { HTMLAttributes, forwardRef } from 'react';\nimport { AlertCircle, RefreshCw, Home } from 'lucide-react';\nimport { cn } from '../ui/utils';\nimport { Button } from '../atoms/Button';\n\nexport interface ErrorStateProps extends HTMLAttributes<HTMLDivElement> {\n type?: '404' | '500' | 'network' | 'generic';\n title?: string;\n message?: string;\n onRetry?: () => void;\n onGoHome?: () => void;\n showRetry?: boolean;\n showHome?: boolean;\n}\n\nconst ErrorState = forwardRef<HTMLDivElement, ErrorStateProps>(\n (\n {\n className,\n type = 'generic',\n title,\n message,\n onRetry,\n onGoHome,\n showRetry = true,\n showHome = true,\n ...props\n },\n ref\n ) => {\n const defaultContent = {\n '404': {\n title: 'Página não encontrada',\n message: 'A página que você está procurando não existe ou foi movida.',\n code: '404',\n },\n '500': {\n title: 'Erro no servidor',\n message: 'Algo deu errado do nosso lado. Por favor, tente novamente mais tarde.',\n code: '500',\n },\n network: {\n title: 'Erro de conexão',\n message: 'Não foi possível conectar ao servidor. Verifique sua conexão com a internet.',\n code: '',\n },\n generic: {\n title: 'Algo deu errado',\n message: 'Ocorreu um erro inesperado. Por favor, tente novamente.',\n code: '',\n },\n };\n\n const content = defaultContent[type];\n const displayTitle = title || content.title;\n const displayMessage = message || content.message;\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex min-h-[500px] flex-col items-center justify-center py-16 px-6 text-center',\n className\n )}\n role=\"alert\"\n aria-live=\"assertive\"\n {...props}\n >\n <div className=\"flex flex-col items-center gap-4\">\n {content.code && (\n <h1 className=\"text-9xl font-bold text-[var(--muted)] opacity-40\">\n {content.code}\n </h1>\n )}\n\n <div className=\"rounded-full bg-[var(--destructive)]/10 p-6 text-[var(--destructive)]\">\n <AlertCircle className=\"h-16 w-16\" />\n </div>\n </div>\n\n <h2 className=\"mt-6 text-2xl font-bold text-[var(--foreground)]\">\n {displayTitle}\n </h2>\n\n <p className=\"mt-2 max-w-md text-[var(--muted-foreground)]\">\n {displayMessage}\n </p>\n\n <div className=\"mt-8 flex flex-wrap gap-4 justify-center\">\n {showRetry && onRetry && (\n <Button\n onClick={onRetry}\n variant=\"primary\"\n size=\"lg\"\n leftIcon={<RefreshCw className=\"h-5 w-5\" />}\n >\n Tentar novamente\n </Button>\n )}\n\n {showHome && onGoHome && (\n <Button\n onClick={onGoHome}\n variant=\"secondary\"\n size=\"lg\"\n leftIcon={<Home className=\"h-5 w-5\" />}\n >\n Voltar ao início\n </Button>\n )}\n </div>\n </div>\n );\n }\n);\n\nErrorState.displayName = 'ErrorState';\n\nexport { ErrorState };\n","import { HTMLAttributes, forwardRef } from 'react';\nimport { cn } from '../ui/utils';\nimport { ProductCard, ProductCardProps } from '../molecules/ProductCard';\nimport { EmptyState } from './EmptyState';\nimport { Spinner } from '../atoms/Spinner';\n\nexport interface ProductGridProps extends HTMLAttributes<HTMLDivElement> {\n products: ProductCardProps[];\n columns?: 2 | 3 | 4 | 5;\n gap?: 'sm' | 'md' | 'lg';\n isLoading?: boolean;\n skeletonCount?: number;\n emptyStateMessage?: string;\n onEmptyAction?: () => void;\n}\n\nconst ProductGrid = forwardRef<HTMLDivElement, ProductGridProps>(\n (\n {\n className,\n products,\n columns = 4,\n gap = 'md',\n isLoading = false,\n skeletonCount = 8,\n emptyStateMessage = 'Nenhum produto encontrado',\n onEmptyAction,\n ...props\n },\n ref\n ) => {\n const columnClasses = {\n 2: 'grid-cols-1 sm:grid-cols-2',\n 3: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3',\n 4: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',\n 5: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5',\n };\n\n const gapClasses = {\n sm: 'gap-4',\n md: 'gap-6',\n lg: 'gap-8',\n };\n\n if (isLoading) {\n return (\n <div\n ref={ref}\n className={cn(\n 'grid',\n columnClasses[columns],\n gapClasses[gap],\n className\n )}\n {...props}\n >\n {Array.from({ length: skeletonCount }).map((_, i) => (\n <ProductCard\n key={i}\n image=\"\"\n title=\"\"\n price={0}\n isSkeleton\n />\n ))}\n </div>\n );\n }\n\n if (products.length === 0) {\n return (\n <EmptyState\n variant=\"search\"\n title={emptyStateMessage}\n description=\"Tente ajustar seus filtros ou realizar uma nova busca\"\n action={\n onEmptyAction\n ? {\n label: 'Limpar filtros',\n onClick: onEmptyAction,\n }\n : undefined\n }\n />\n );\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'grid',\n columnClasses[columns],\n gapClasses[gap],\n className\n )}\n {...props}\n >\n {products.map((product, index) => (\n <ProductCard key={index} {...product} />\n ))}\n </div>\n );\n }\n);\n\nProductGrid.displayName = 'ProductGrid';\n\nexport { ProductGrid };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"./utils\";\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content>) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg\",\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\">\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg leading-none font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"./utils\";\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nfunction SheetPortal({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n side === \"right\" &&\n \"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm\",\n side === \"left\" &&\n \"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm\",\n side === \"top\" &&\n \"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b\",\n side === \"bottom\" &&\n \"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t\",\n className,\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none\">\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-1.5 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetTitle({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\"text-foreground font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n","import { HTMLAttributes, forwardRef, useState, useEffect } from 'react';\nimport { Sun, Moon, Plus, Minus, Eye } from 'lucide-react';\nimport { cn } from '../ui/utils';\n\nexport interface TopAccessibilityBarProps extends HTMLAttributes<HTMLDivElement> {\n onThemeChange?: (theme: 'light' | 'dark') => void;\n onFontSizeChange?: (size: number) => void;\n}\n\nconst TopAccessibilityBar = forwardRef<HTMLDivElement, TopAccessibilityBarProps>(\n ({ className, onThemeChange, onFontSizeChange, ...props }, ref) => {\n const [theme, setTheme] = useState<'light' | 'dark'>('light');\n const [fontSize, setFontSize] = useState(16);\n const [vlibrasLoaded, setVlibrasLoaded] = useState(false);\n\n useEffect(() => {\n // Check current theme on mount\n const isDark = document.documentElement.classList.contains('dark');\n setTheme(isDark ? 'dark' : 'light');\n\n // Get current font size\n const currentFontSize = getComputedStyle(document.documentElement).getPropertyValue('--font-size');\n if (currentFontSize) {\n setFontSize(parseInt(currentFontSize));\n }\n }, []);\n\n useEffect(() => {\n // Load VLibras script\n if (!vlibrasLoaded && typeof window !== 'undefined') {\n const existingScript = document.querySelector('script[src*=\"vlibras\"]');\n if (!existingScript) {\n const script = document.createElement('script');\n script.src = 'https://vlibras.gov.br/app/vlibras-plugin.js';\n script.async = true;\n script.onload = () => {\n setVlibrasLoaded(true);\n // Initialize VLibras\n if ((window as any).VLibras) {\n new (window as any).VLibras.Widget('https://vlibras.gov.br/app');\n }\n };\n document.body.appendChild(script);\n }\n }\n }, [vlibrasLoaded]);\n\n const handleThemeToggle = () => {\n const newTheme = theme === 'light' ? 'dark' : 'light';\n setTheme(newTheme);\n document.documentElement.classList.toggle('dark');\n onThemeChange?.(newTheme);\n\n // Persist to localStorage\n localStorage.setItem('theme', newTheme);\n };\n\n const handleFontIncrease = () => {\n const newSize = Math.min(fontSize + 2, 24);\n setFontSize(newSize);\n document.documentElement.style.setProperty('--font-size', `${newSize}px`);\n onFontSizeChange?.(newSize);\n\n // Persist to localStorage\n localStorage.setItem('fontSize', newSize.toString());\n };\n\n const handleFontDecrease = () => {\n const newSize = Math.max(fontSize - 2, 12);\n setFontSize(newSize);\n document.documentElement.style.setProperty('--font-size', `${newSize}px`);\n onFontSizeChange?.(newSize);\n\n // Persist to localStorage\n localStorage.setItem('fontSize', newSize.toString());\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center justify-end gap-2 bg-[var(--secondary)] px-4 py-2 border-b border-[var(--border)]',\n className\n )}\n role=\"toolbar\"\n aria-label=\"Barra de acessibilidade\"\n {...props}\n >\n <a\n href=\"/acessibilidade\"\n className=\"flex items-center gap-1.5 text-sm text-[var(--foreground)] hover:text-[var(--brand-primary)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] rounded px-2 py-1 min-h-[44px]\"\n >\n <Eye className=\"h-4 w-4\" />\n <span className=\"hidden sm:inline\">Acessibilidade</span>\n </a>\n\n <div className=\"flex items-center gap-1 border-l border-[var(--border)] pl-2\">\n <button\n type=\"button\"\n onClick={handleFontDecrease}\n disabled={fontSize <= 12}\n aria-label=\"Diminuir tamanho da fonte\"\n title=\"Diminuir fonte (A-)\"\n className={cn(\n 'inline-flex items-center justify-center rounded-lg min-w-[44px] min-h-[44px] px-3 text-[var(--foreground)] hover:bg-[var(--accent)] transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2',\n 'disabled:opacity-50 disabled:cursor-not-allowed'\n )}\n >\n <Minus className=\"h-4 w-4\" />\n </button>\n\n <span className=\"text-xs text-[var(--muted-foreground)] min-w-[32px] text-center font-medium\">\n A{fontSize > 16 && '+'}{fontSize < 16 && '-'}\n </span>\n\n <button\n type=\"button\"\n onClick={handleFontIncrease}\n disabled={fontSize >= 24}\n aria-label=\"Aumentar tamanho da fonte\"\n title=\"Aumentar fonte (A+)\"\n className={cn(\n 'inline-flex items-center justify-center rounded-lg min-w-[44px] min-h-[44px] px-3 text-[var(--foreground)] hover:bg-[var(--accent)] transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2',\n 'disabled:opacity-50 disabled:cursor-not-allowed'\n )}\n >\n <Plus className=\"h-4 w-4\" />\n </button>\n </div>\n\n <div className=\"border-l border-[var(--border)] pl-2\">\n <button\n type=\"button\"\n onClick={handleThemeToggle}\n aria-label={`Alternar para modo ${theme === 'light' ? 'escuro' : 'claro'}`}\n title={`Modo ${theme === 'light' ? 'escuro' : 'claro'}`}\n className={cn(\n 'inline-flex items-center justify-center rounded-lg min-w-[44px] min-h-[44px] px-3 text-[var(--foreground)] hover:bg-[var(--accent)] transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2'\n )}\n >\n {theme === 'light' ? (\n <Moon className=\"h-4 w-4\" />\n ) : (\n <Sun className=\"h-4 w-4\" />\n )}\n </button>\n </div>\n\n {/* VLibras widget anchor */}\n {vlibrasLoaded && (\n <div {...({ vw: 'true' } as Record<string, string>)} className=\"enabled\">\n <div {...({ 'vw-access-button': 'true' } as Record<string, string>)} className=\"active\"></div>\n <div {...({ 'vw-plugin-wrapper': 'true' } as Record<string, string>)}>\n <div className=\"vw-plugin-top-wrapper\"></div>\n </div>\n </div>\n )}\n </div>\n );\n }\n);\n\nTopAccessibilityBar.displayName = 'TopAccessibilityBar';\n\nexport { TopAccessibilityBar };\n","import { HTMLAttributes, forwardRef, useState, useEffect } from 'react';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport { cn } from '../ui/utils';\nimport { buttonVariants } from '../atoms/Button';\n\nexport interface HeroSlide {\n id: string;\n title: string;\n description: string;\n imageMobile: string;\n imageTablet: string;\n imageDesktop: string;\n cta?: {\n label: string;\n href: string;\n };\n}\n\nexport interface HeroCarouselProps extends HTMLAttributes<HTMLDivElement> {\n slides: HeroSlide[];\n autoplayDelay?: number;\n autoplay?: boolean;\n}\n\nconst HeroCarousel = forwardRef<HTMLDivElement, HeroCarouselProps>(\n (\n {\n className,\n slides,\n autoplayDelay = 5000,\n autoplay = true,\n ...props\n },\n ref\n ) => {\n const [currentIndex, setCurrentIndex] = useState(0);\n const [isAutoplayPaused, setIsAutoplayPaused] = useState(false);\n const [reduceMotion, setReduceMotion] = useState(false);\n\n useEffect(() => {\n // Check for prefers-reduced-motion\n const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n setReduceMotion(mediaQuery.matches);\n\n const handleChange = (e: MediaQueryListEvent) => {\n setReduceMotion(e.matches);\n };\n\n mediaQuery.addEventListener('change', handleChange);\n return () => mediaQuery.removeEventListener('change', handleChange);\n }, []);\n\n useEffect(() => {\n if (!autoplay || isAutoplayPaused || reduceMotion) return;\n\n const interval = setInterval(() => {\n setCurrentIndex((prev) => (prev + 1) % slides.length);\n }, autoplayDelay);\n\n return () => clearInterval(interval);\n }, [autoplay, autoplayDelay, slides.length, isAutoplayPaused, reduceMotion]);\n\n const goToSlide = (index: number) => {\n setCurrentIndex(index);\n setIsAutoplayPaused(true);\n setTimeout(() => setIsAutoplayPaused(false), autoplayDelay);\n };\n\n const goToPrevious = () => {\n goToSlide((currentIndex - 1 + slides.length) % slides.length);\n };\n\n const goToNext = () => {\n goToSlide((currentIndex + 1) % slides.length);\n };\n\n if (slides.length === 0) return null;\n\n const currentSlide = slides[currentIndex];\n\n return (\n <div\n ref={ref}\n className={cn('relative w-full overflow-hidden', className)}\n onMouseEnter={() => setIsAutoplayPaused(true)}\n onMouseLeave={() => setIsAutoplayPaused(false)}\n {...props}\n >\n {/* Slides */}\n <div className=\"relative\">\n {slides.map((slide, index) => (\n <div\n key={slide.id}\n className={cn(\n 'w-full transition-opacity duration-700',\n index === currentIndex ? 'block' : 'hidden'\n )}\n aria-hidden={index !== currentIndex}\n >\n <picture>\n <source\n media=\"(min-width: 1024px)\"\n srcSet={`${slide.imageDesktop} 1x, ${slide.imageDesktop.replace(/\\.(jpg|png)$/, '@2x.$1')} 2x`}\n />\n <source\n media=\"(min-width: 768px)\"\n srcSet={`${slide.imageTablet} 1x, ${slide.imageTablet.replace(/\\.(jpg|png)$/, '@2x.$1')} 2x`}\n />\n <img\n src={slide.imageMobile}\n srcSet={`${slide.imageMobile} 1x, ${slide.imageMobile.replace(/\\.(jpg|png)$/, '@2x.$1')} 2x`}\n alt={slide.title}\n className=\"w-full object-cover aspect-[3/4] md:aspect-video\"\n loading={index === 0 ? 'eager' : 'lazy'}\n />\n </picture>\n\n {/* Text Content Overlay */}\n <div className=\"absolute inset-0 flex items-center justify-center md:justify-start bg-gradient-to-t from-black/70 via-black/30 to-transparent md:bg-gradient-to-r md:from-black/80 md:via-black/50 md:to-transparent\">\n <div className=\"max-w-7xl mx-auto px-6 lg:px-12 w-full\">\n <div className=\"max-w-2xl text-center md:text-left\">\n <h2 className=\"text-3xl md:text-4xl lg:text-5xl font-bold text-white mb-4\">\n {slide.title}\n </h2>\n <p className=\"text-lg md:text-xl text-gray-200 mb-6\">\n {slide.description}\n </p>\n {slide.cta && (\n <a\n href={slide.cta.href}\n className={buttonVariants({ variant: 'primary', size: 'lg' })}\n >\n {slide.cta.label}\n </a>\n )}\n </div>\n </div>\n </div>\n </div>\n ))}\n </div>\n\n {/* Navigation Arrows */}\n {slides.length > 1 && (\n <>\n <button\n onClick={goToPrevious}\n className=\"absolute left-4 top-1/2 -translate-y-1/2 rounded-full bg-white/90 p-2 shadow-lg transition-all hover:bg-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] min-w-[44px] min-h-[44px]\"\n aria-label=\"Slide anterior\"\n >\n <ChevronLeft className=\"h-6 w-6 text-gray-900\" />\n </button>\n\n <button\n onClick={goToNext}\n className=\"absolute right-4 top-1/2 -translate-y-1/2 rounded-full bg-white/90 p-2 shadow-lg transition-all hover:bg-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] min-w-[44px] min-h-[44px]\"\n aria-label=\"Próximo slide\"\n >\n <ChevronRight className=\"h-6 w-6 text-gray-900\" />\n </button>\n </>\n )}\n\n {/* Indicators */}\n {slides.length > 1 && (\n <div className=\"absolute bottom-4 left-1/2 -translate-x-1/2 flex gap-2\">\n {slides.map((_, index) => (\n <button\n key={index}\n onClick={() => goToSlide(index)}\n className={cn(\n 'h-2 rounded-full transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] min-w-[44px] min-h-[24px] flex items-center justify-center',\n index === currentIndex\n ? 'w-8 bg-white'\n : 'w-2 bg-white/50 hover:bg-white/70'\n )}\n aria-label={`Ir para slide ${index + 1}`}\n aria-current={index === currentIndex}\n />\n ))}\n </div>\n )}\n </div>\n );\n }\n);\n\nHeroCarousel.displayName = 'HeroCarousel';\n\nexport { HeroCarousel };\n"],"names":["cn","inputs","twMerge","clsx","buttonVariants","cva","Button","forwardRef","className","variant","size","fullWidth","isLoading","leftIcon","rightIcon","children","disabled","props","ref","jsx","jsxs","Fragment","Loader2","Textarea","error","helperText","badgeVariants","Badge","icon","onRemove","avatarVariants","Avatar","src","alt","name","showStatus","statusType","imageError","setImageError","useState","getInitials","n","statusColors","statusSizes","User","spinnerVariants","Spinner","label","Divider","orientation","text","variantStyles","Rating","value","maxRating","readonly","onChange","showValue","hoverRating","setHoverRating","sizeClasses","handleClick","rating","displayRating","_","i","isFilled","Star","Input","type","Select","SelectPrimitive","SelectValue","SelectTrigger","ChevronDownIcon","SelectContent","position","SelectScrollUpButton","SelectScrollDownButton","SelectItem","CheckIcon","ChevronUpIcon","Checkbox","CheckboxPrimitive","RadioGroup","RadioGroupPrimitive","RadioGroupItem","CircleIcon","Switch","SwitchPrimitive","ProductCard","image","title","price","originalPrice","reviewCount","badge","badgeVariant","isSkeleton","isOutOfStock","onAddToCart","onToggleFavorite","isFavorite","Heart","ShoppingCart","SearchBar","onSearch","onClear","placeholder","controlledValue","internalValue","setInternalValue","handleChange","e","newValue","handleClear","handleKeyDown","Search","X","PriceDisplay","currency","showDiscount","installments","discount","originalSizeClasses","QuantitySelector","min","max","showLabel","handleIncrement","handleDecrement","handleInputChange","inputSizeClasses","Minus","Plus","FormGroup","htmlFor","required","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","asChild","Slot","BreadcrumbPage","BreadcrumbSeparator","ChevronRight","Accordion","AccordionPrimitive","AccordionItem","AccordionTrigger","AccordionContent","TooltipProvider","delayDuration","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","sideOffset","Hero","subtitle","description","primaryCTA","secondaryCTA","backgroundImage","overlay","EmptyState","action","displayIcon","Package","FileX","ErrorState","message","onRetry","onGoHome","showRetry","showHome","content","displayTitle","displayMessage","AlertCircle","RefreshCw","Home","ProductGrid","products","columns","gap","skeletonCount","emptyStateMessage","onEmptyAction","columnClasses","gapClasses","product","index","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogOverlay","DialogContent","XIcon","DialogHeader","DialogFooter","DialogTitle","DialogDescription","Sheet","SheetPrimitive","SheetTrigger","SheetPortal","SheetOverlay","SheetContent","side","SheetHeader","SheetFooter","SheetTitle","SheetDescription","TopAccessibilityBar","onThemeChange","onFontSizeChange","theme","setTheme","fontSize","setFontSize","vlibrasLoaded","setVlibrasLoaded","useEffect","isDark","currentFontSize","script","handleThemeToggle","newTheme","handleFontIncrease","newSize","handleFontDecrease","Eye","Moon","Sun","HeroCarousel","slides","autoplayDelay","autoplay","currentIndex","setCurrentIndex","isAutoplayPaused","setIsAutoplayPaused","reduceMotion","setReduceMotion","mediaQuery","interval","prev","goToSlide","goToPrevious","goToNext","slide","ChevronLeft"],"mappings":"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"}
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ @import"https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&display=swap";/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-content:""}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-family);--default-mono-font-family:var(--font-mono);--color-border:var(--border)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-family)}html{font-size:var(--font-size)}h1{font-size:var(--text-2xl);font-weight:var(--font-weight-medium);line-height:1.5}h2{font-size:var(--text-xl);font-weight:var(--font-weight-medium);line-height:1.5}h3{font-size:var(--text-lg);font-weight:var(--font-weight-medium);line-height:1.5}h4,label,button{font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.5}input{font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:1.5}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.-top-12{top:calc(var(--spacing) * -12)}.top-0{top:calc(var(--spacing) * 0)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-3\.5{top:calc(var(--spacing) * 3.5)}.top-4{top:calc(var(--spacing) * 4)}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.-right-12{right:calc(var(--spacing) * -12)}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-12{bottom:calc(var(--spacing) * -12)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.-left-12{left:calc(var(--spacing) * -12)}.left-0{left:calc(var(--spacing) * 0)}.left-1{left:calc(var(--spacing) * 1)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.left-\[50\%\]{left:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[1\]{z-index:1}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3\.5{margin-inline:calc(var(--spacing) * 3.5)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:calc(var(--spacing) * 1)}.my-4{margin-block:calc(var(--spacing) * 4)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing) * 1)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.-ml-4{margin-left:calc(var(--spacing) * -4)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.field-sizing-content{field-sizing:content}.aspect-\[3\/4\]{aspect-ratio:3/4}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-full{width:100%;height:100%}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-1\/2{height:50%}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-\[1\.15rem\]{height:1.15rem}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--radix-context-menu-content-available-height\){max-height:var(--radix-context-menu-content-available-height)}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-\[24px\]{min-height:24px}.min-h-\[44px\]{min-height:44px}.min-h-\[80px\]{min-height:80px}.min-h-\[400px\]{min-height:400px}.min-h-\[500px\]{min-height:500px}.min-h-svh{min-height:100svh}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-0{width:calc(var(--spacing) * 0)}.w-1{width:calc(var(--spacing) * 1)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[100px\]{width:100px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-max{max-width:max-content}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[32px\]{min-width:32px}.min-w-\[44px\]{min-width:44px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\(--radix-context-menu-content-transform-origin\){transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-hover-card-content-transform-origin\){transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\(--radix-menubar-content-transform-origin\){transform-origin:var(--radix-menubar-content-transform-origin)}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-none{resize:none}.resize-y{resize:vertical}.scroll-my-1{scroll-margin-block:calc(var(--spacing) * 1)}.scroll-py-1{scroll-padding-block:calc(var(--spacing) * 1)}.list-none{list-style-type:none}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-items-start{justify-items:start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-tl-sm{border-top-left-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-solid{--tw-border-style:solid;border-style:solid}.border-\(--color-border\){border-color:var(--color-border)}.border-\[var\(--background\)\]{border-color:var(--background)}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--brand-primary\)\]{border-color:var(--brand-primary)}.border-\[var\(--destructive\)\]{border-color:var(--destructive)}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--border) 50%,transparent)}}.border-input{border-color:var(--input)}.border-primary{border-color:var(--primary)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\(--color-bg\){background-color:var(--color-bg)}.bg-\[var\(--brand-primary\)\]{background-color:var(--brand-primary)}.bg-\[var\(--card\)\]{background-color:var(--card)}.bg-\[var\(--destructive\)\],.bg-\[var\(--destructive\)\]\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--destructive\)\]\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-\[var\(--info\)\]{background-color:var(--info)}.bg-\[var\(--input-background\)\]{background-color:var(--input-background)}.bg-\[var\(--muted\)\]{background-color:var(--muted)}.bg-\[var\(--muted-foreground\)\]{background-color:var(--muted-foreground)}.bg-\[var\(--primary\)\]{background-color:var(--primary)}.bg-\[var\(--secondary\)\]{background-color:var(--secondary)}.bg-\[var\(--success\)\]{background-color:var(--success)}.bg-\[var\(--warning\)\]{background-color:var(--warning)}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-foreground{background-color:var(--foreground)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-input-background{background-color:var(--input-background)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--primary) 20%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/50{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.bg-white\/50{background-color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.bg-white\/90{background-color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-black\/70{--tw-gradient-from:#000000b3}@supports (color:color-mix(in lab,red,red)){.from-black\/70{--tw-gradient-from:color-mix(in oklab, var(--color-black) 70%, transparent)}}.from-black\/70{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-black\/30{--tw-gradient-via:#0000004d}@supports (color:color-mix(in lab,red,red)){.via-black\/30{--tw-gradient-via:color-mix(in oklab, var(--color-black) 30%, transparent)}}.via-black\/30{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-black\/30{--tw-gradient-to:#0000004d}@supports (color:color-mix(in lab,red,red)){.to-black\/30{--tw-gradient-to:color-mix(in oklab, var(--color-black) 30%, transparent)}}.to-black\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-cover{background-size:cover}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.fill-\[var\(--destructive\)\]{fill:var(--destructive)}.fill-\[var\(--warning\)\]{fill:var(--warning)}.fill-current{fill:currentColor}.fill-none{fill:none}.fill-primary{fill:var(--primary)}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-\[var\(--brand-primary\)\]{color:var(--brand-primary)}.text-\[var\(--card-foreground\)\]{color:var(--card-foreground)}.text-\[var\(--destructive\)\]{color:var(--destructive)}.text-\[var\(--destructive-foreground\)\]{color:var(--destructive-foreground)}.text-\[var\(--foreground\)\]{color:var(--foreground)}.text-\[var\(--info-foreground\)\]{color:var(--info-foreground)}.text-\[var\(--muted\)\]{color:var(--muted)}.text-\[var\(--muted-foreground\)\]{color:var(--muted-foreground)}.text-\[var\(--primary-foreground\)\]{color:var(--primary-foreground)}.text-\[var\(--secondary-foreground\)\]{color:var(--secondary-foreground)}.text-\[var\(--success-foreground\)\]{color:var(--success-foreground)}.text-\[var\(--warning\)\]{color:var(--warning)}.text-\[var\(--warning-foreground\)\]{color:var(--warning-foreground)}.text-accent-foreground{color:var(--accent-foreground)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-gray-200{color:var(--color-gray-200)}.text-gray-900{color:var(--color-gray-900)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/70{color:color-mix(in oklab,var(--sidebar-foreground) 70%,transparent)}}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-border)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-ring\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.ring-ring\/50{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media(hover:hover){.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing) * 8)}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing) * -8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:size-8\!:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing) * 8)!important;height:calc(var(--spacing) * 8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)))}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)) + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:p-0\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing) * 0)!important}.group-data-\[collapsible\=icon\]\:p-2\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing) * 2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width) * -1)}.group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width) * -1)}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing) * 0)}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing) * -4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:calc(var(--spacing) * 0)}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius-lg)}.group-data-\[variant\=floating\]\:border:is(:where(.group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[variant\=floating\]\:border-sidebar-border:is(:where(.group)[data-variant=floating] *){border-color:var(--sidebar-border)}.group-data-\[variant\=floating\]\:shadow-sm:is(:where(.group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *){display:block}.group-data-\[viewport\=false\]\/navigation-menu\:top-full:is(:where(.group\/navigation-menu)[data-viewport=false] *){top:100%}.group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5:is(:where(.group\/navigation-menu)[data-viewport=false] *){margin-top:calc(var(--spacing) * 1.5)}.group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden:is(:where(.group\/navigation-menu)[data-viewport=false] *){overflow:hidden}.group-data-\[viewport\=false\]\/navigation-menu\:rounded-md:is(:where(.group\/navigation-menu)[data-viewport=false] *){border-radius:var(--radius-md)}.group-data-\[viewport\=false\]\/navigation-menu\:border:is(:where(.group\/navigation-menu)[data-viewport=false] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[viewport\=false\]\/navigation-menu\:bg-popover:is(:where(.group\/navigation-menu)[data-viewport=false] *){background-color:var(--popover)}.group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground:is(:where(.group\/navigation-menu)[data-viewport=false] *){color:var(--popover-foreground)}.group-data-\[viewport\=false\]\/navigation-menu\:shadow:is(:where(.group\/navigation-menu)[data-viewport=false] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[viewport\=false\]\/navigation-menu\:duration-200:is(:where(.group\/navigation-menu)[data-viewport=false] *){--tw-duration:.2s;transition-duration:.2s}@media(hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active=true]~*){color:var(--sidebar-accent-foreground)}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing) * 1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing) * 2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing) * 1)}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-\[var\(--muted-foreground\)\]::placeholder,.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing) * -2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:calc(var(--spacing) * 1)}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}.first\:rounded-l-md:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}@media(hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:bg-\[var\(--accent\)\]:hover{background-color:var(--accent)}.hover\:bg-\[var\(--brand-primary\)\]:hover{background-color:var(--brand-primary)}.hover\:bg-\[var\(--brand-primary-hover\)\]:hover{background-color:var(--brand-primary-hover)}.hover\:bg-\[var\(--muted\)\]:hover{background-color:var(--muted)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.hover\:bg-primary:hover,.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:bg-white\/70:hover{background-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/70:hover{background-color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.hover\:text-\[var\(--brand-primary\)\]:hover{color:var(--brand-primary)}.hover\:text-\[var\(--primary-foreground\)\]:hover{color:var(--primary-foreground)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-primary-foreground:hover{color:var(--primary-foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-accent)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:ring-4:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover:is(:where(.group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:z-10:focus{z-index:10}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:bg-primary:focus{background-color:var(--primary)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:text-primary-foreground:focus{color:var(--primary-foreground)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-\[var\(--ring\)\]:focus,.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[var\(--destructive\)\]:focus-visible{--tw-ring-color:var(--destructive)}.focus-visible\:ring-\[var\(--ring\)\]:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus-visible\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:bg-\[var\(--accent\)\]:active{background-color:var(--accent)}.active\:bg-\[var\(--brand-primary-active\)\]:active{background-color:var(--brand-primary-active)}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.active\:opacity-80:active{opacity:.8}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}:where([data-side=left]) .in-data-\[side\=left\]\:cursor-w-resize{cursor:w-resize}:where([data-side=right]) .in-data-\[side\=right\]\:cursor-e-resize{cursor:e-resize}.has-disabled\:opacity-50:has(:disabled){opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing) * 4) 1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.aria-selected\:bg-accent[aria-selected=true]{background-color:var(--accent)}.aria-selected\:bg-primary[aria-selected=true]{background-color:var(--primary)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:var(--accent-foreground)}.aria-selected\:text-muted-foreground[aria-selected=true]{color:var(--muted-foreground)}.aria-selected\:text-primary-foreground[aria-selected=true]{color:var(--primary-foreground)}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[active\=true\]\:z-10[data-active=true]{z-index:10}.data-\[active\=true\]\:border-ring[data-active=true]{border-color:var(--ring)}.data-\[active\=true\]\:bg-accent\/50[data-active=true]{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:bg-accent\/50[data-active=true]{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:var(--sidebar-accent)}.data-\[active\=true\]\:font-medium[data-active=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[active\=true\]\:text-accent-foreground[data-active=true]{color:var(--accent-foreground)}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:var(--sidebar-accent-foreground)}.data-\[active\=true\]\:ring-\[3px\][data-active=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}@media(hover:hover){.data-\[active\=true\]\:hover\:bg-accent[data-active=true]:hover{background-color:var(--accent)}}.data-\[active\=true\]\:focus\:bg-accent[data-active=true]:focus{background-color:var(--accent)}.data-\[active\=true\]\:aria-invalid\:border-destructive[data-active=true][aria-invalid=true]{border-color:var(--destructive)}.data-\[active\=true\]\:aria-invalid\:ring-destructive\/20[data-active=true][aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[active\=true\]\:aria-invalid\:ring-destructive\/20[data-active=true][aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[error\=true\]\:text-destructive[data-error=true]{color:var(--destructive)}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing) * 8)}.data-\[orientation\=horizontal\]\:h-4[data-orientation=horizontal]{height:calc(var(--spacing) * 4)}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:min-h-44[data-orientation=vertical]{min-height:calc(var(--spacing) * 44)}.data-\[orientation\=vertical\]\:w-1\.5[data-orientation=vertical]{width:calc(var(--spacing) * 1.5)}.data-\[orientation\=vertical\]\:w-auto[data-orientation=vertical]{width:auto}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:calc(var(--spacing) * 0)}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:calc(var(--spacing) * 1)}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing) * 9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing) * 8)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive) 90%,transparent)}}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing) * 12)}:is(.\*\*\:data-\[slot\=navigation-menu-link\]\:focus\:ring-0 *)[data-slot=navigation-menu-link]:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:is(.\*\*\:data-\[slot\=navigation-menu-link\]\:focus\:outline-none *)[data-slot=navigation-menu-link]:focus{--tw-outline-style:none;outline-style:none}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing) * 2)}.data-\[state\=active\]\:bg-card[data-state=active]{background-color:var(--card)}.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x: calc(100% - 2px) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=on\]\:bg-accent[data-state=on]{background-color:var(--accent)}.data-\[state\=on\]\:text-accent-foreground[data-state=on]{color:var(--accent-foreground)}.data-\[state\=open\]\:bg-accent[data-state=open],.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}@media(hover:hover){.data-\[state\=open\]\:hover\:bg-accent[data-state=open]:hover{background-color:var(--accent)}.data-\[state\=open\]\:hover\:bg-sidebar-accent[data-state=open]:hover{background-color:var(--sidebar-accent)}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground[data-state=open]:hover{color:var(--sidebar-accent-foreground)}}.data-\[state\=open\]\:focus\:bg-accent[data-state=open]:focus{background-color:var(--accent)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-switch-background[data-state=unchecked]{background-color:var(--switch-background)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\[variant\=outline\]\:border-l-0[data-variant=outline]{border-left-style:var(--tw-border-style);border-left-width:0}.data-\[variant\=outline\]\:shadow-xs[data-variant=outline]{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[variant\=outline\]\:first\:border-l[data-variant=outline]:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction=bottom]{inset-inline:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:calc(var(--spacing) * 24)}.data-\[vaul-drawer-direction\=bottom\]\:max-h-\[80vh\][data-vaul-drawer-direction=bottom]{max-height:80vh}.data-\[vaul-drawer-direction\=bottom\]\:rounded-t-lg[data-vaul-drawer-direction=bottom]{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction=left]{inset-block:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction=left]{left:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction=left]{width:75%}.data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction=right]{inset-block:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction=right]{right:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=right\]\:w-3\/4[data-vaul-drawer-direction=right]{width:75%}.data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction=top]{inset-inline:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction=top]{top:calc(var(--spacing) * 0)}.data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:calc(var(--spacing) * 24)}.data-\[vaul-drawer-direction\=top\]\:max-h-\[80vh\][data-vaul-drawer-direction=top]{max-height:80vh}.data-\[vaul-drawer-direction\=top\]\:rounded-b-lg[data-vaul-drawer-direction=top]{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@media(min-width:40rem){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:calc(var(--spacing) * 2.5)}.sm\:pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.sm\:pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.sm\:text-left{text-align:left}.data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:sm\:max-w-sm[data-vaul-drawer-direction=right]{max-width:var(--container-sm)}}@media(min-width:48rem){.md\:absolute{position:absolute}.md\:block{display:block}.md\:flex{display:flex}.md\:aspect-video{aspect-ratio:var(--aspect-video)}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:justify-start{justify-content:flex-start}.md\:bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.md\:from-black\/80{--tw-gradient-from:#000c}@supports (color:color-mix(in lab,red,red)){.md\:from-black\/80{--tw-gradient-from:color-mix(in oklab, var(--color-black) 80%, transparent)}}.md\:from-black\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.md\:via-black\/50{--tw-gradient-via:#00000080}@supports (color:color-mix(in lab,red,red)){.md\:via-black\/50{--tw-gradient-via:color-mix(in oklab, var(--color-black) 50%, transparent)}}.md\:via-black\/50{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.md\:to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.md\:text-left{text-align:left}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing) * 2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing) * 0)}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:var(--radius-xl)}.md\:peer-data-\[variant\=inset\]\:shadow-sm:is(:where(.peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2:is(:where(.peer)[data-variant=inset]~*):is(:where(.peer)[data-state=collapsed]~*){margin-left:calc(var(--spacing) * 2)}.md\:after\:hidden:after{content:var(--tw-content);display:none}}@media(min-width:64rem){.lg\:mt-0{margin-top:calc(var(--spacing) * 0)}.lg\:grid{display:grid}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:gap-12{gap:calc(var(--spacing) * 12)}.lg\:px-12{padding-inline:calc(var(--spacing) * 12)}.lg\:py-24{padding-block:calc(var(--spacing) * 24)}.lg\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.lg\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}}.dark\:border-input:is([data-theme=dark] *,[data-theme=dark]){border-color:var(--input)}.dark\:bg-destructive\/60:is([data-theme=dark] *,[data-theme=dark]){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is([data-theme=dark] *,[data-theme=dark]){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}.dark\:bg-input\/30:is([data-theme=dark] *,[data-theme=dark]){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is([data-theme=dark] *,[data-theme=dark]){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:text-muted-foreground:is([data-theme=dark] *,[data-theme=dark]){color:var(--muted-foreground)}@media(hover:hover){.dark\:hover\:bg-accent\/50:is([data-theme=dark] *,[data-theme=dark]):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is([data-theme=dark] *,[data-theme=dark]):hover{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.dark\:hover\:bg-input\/50:is([data-theme=dark] *,[data-theme=dark]):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is([data-theme=dark] *,[data-theme=dark]):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is([data-theme=dark] *,[data-theme=dark]):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is([data-theme=dark] *,[data-theme=dark]):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is([data-theme=dark] *,[data-theme=dark])[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is([data-theme=dark] *,[data-theme=dark])[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[active\=true\]\:aria-invalid\:ring-destructive\/40:is([data-theme=dark] *,[data-theme=dark])[data-active=true][aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[active\=true\]\:aria-invalid\:ring-destructive\/40:is([data-theme=dark] *,[data-theme=dark])[data-active=true][aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[state\=active\]\:border-input:is([data-theme=dark] *,[data-theme=dark])[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is([data-theme=dark] *,[data-theme=dark])[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=active\]\:bg-input\/30:is([data-theme=dark] *,[data-theme=dark])[data-state=active]{background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is([data-theme=dark] *,[data-theme=dark])[data-state=active]{color:var(--foreground)}.dark\:data-\[state\=checked\]\:bg-primary:is([data-theme=dark] *,[data-theme=dark])[data-state=checked]{background-color:var(--primary)}.dark\:data-\[state\=checked\]\:bg-primary-foreground:is([data-theme=dark] *,[data-theme=dark])[data-state=checked]{background-color:var(--primary-foreground)}.dark\:data-\[state\=unchecked\]\:bg-card-foreground:is([data-theme=dark] *,[data-theme=dark])[data-state=unchecked]{background-color:var(--card-foreground)}.dark\:data-\[state\=unchecked\]\:bg-input\/80:is([data-theme=dark] *,[data-theme=dark])[data-state=unchecked]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=unchecked\]\:bg-input\/80:is([data-theme=dark] *,[data-theme=dark])[data-state=unchecked]{background-color:color-mix(in oklab,var(--input) 80%,transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is([data-theme=dark] *,[data-theme=dark])[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is([data-theme=dark] *,[data-theme=dark])[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:var(--muted-foreground)}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:var(--border)}@supports (color:color-mix(in lab,red,red)){.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:color-mix(in oklab,var(--border) 50%,transparent)}}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:var(--border)}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:#0000}.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:var(--border)}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:var(--muted)}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:var(--border)}.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:#0000}.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{outline-offset:2px;outline:2px solid #0000}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing) * 0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing) * 12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing) * 3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing) * 5)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:has\(\>\.day-range-end\)\]\:rounded-r-md:has(>.day-range-end){border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.\[\&\:has\(\>\.day-range-start\)\]\:rounded-l-md:has(>.day-range-start){border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.\[\&\:has\(\[aria-selected\]\)\]\:rounded-md:has([aria-selected]){border-radius:var(--radius-md)}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:var(--accent)}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:first-child:has([aria-selected]){border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:last-child:has([aria-selected]),.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing) * 0)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\:last-child\]\:pb-6:last-child{padding-bottom:calc(var(--spacing) * 6)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:h-2\.5>svg{height:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:h-3>svg{height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:w-2\.5>svg{width:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:w-3>svg{width:calc(var(--spacing) * 3)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{rotate:90deg}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing) * -2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing) * -2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}@media(hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary) 90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}:root,[data-brand=elo-editora],[data-brand=elo-editora][data-theme=light]{--font-size:16px;--brand-primary:#003c70;--brand-primary-light:#0056a3;--brand-primary-dark:#002a4d;--brand-primary-hover:#0056a3;--brand-primary-active:#002a4d;--brand-secondary:#2e86ab;--brand-secondary-light:#4aa8d0;--brand-accent:#f4a261;--brand-accent-dark:#d4813f;--background:#f0f5fa;--foreground:#1a1e2e;--card:#fff;--card-foreground:#1a1e2e;--popover:#fff;--popover-foreground:#1a1e2e;--primary:#003c70;--primary-foreground:#fff;--secondary:#f0f5fa;--secondary-foreground:#1a1e2e;--muted:#f0f5fa;--muted-foreground:#5c6882;--accent:#f4a261;--accent-foreground:#1a1e2e;--destructive:#e74c3c;--destructive-foreground:#fff;--success:#27ae60;--success-foreground:#fff;--warning:#f39c12;--warning-foreground:#fff;--info:#2e86ab;--info-foreground:#fff;--border:#d9e2f0;--input:#d9e2f0;--input-background:#fff;--switch-background:#d9e2f0;--ring:#003c70;--font-family:"Lato", "Segoe UI", Roboto, sans-serif;--font-weight-medium:600;--font-weight-normal:400;--font-weight-bold:700;--spacing-1:4px;--spacing-2:8px;--spacing-3:12px;--spacing-4:16px;--spacing-5:20px;--spacing-6:24px;--spacing-8:32px;--spacing-10:40px;--spacing-12:48px;--spacing-16:64px;--spacing-24:96px;--radius:8px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #0000001f;--shadow-xl:0 16px 40px #00000024;--chart-1:#003c70;--chart-2:#2e86ab;--chart-3:#f4a261;--chart-4:#27ae60;--chart-5:#f39c12;--sidebar:#fff;--sidebar-foreground:#1a1e2e;--sidebar-primary:#003c70;--sidebar-primary-foreground:#fff;--sidebar-accent:#f0f5fa;--sidebar-accent-foreground:#1a1e2e;--sidebar-border:#d9e2f0;--sidebar-ring:#003c70}[data-brand=elo-editora][data-theme=dark]{--background:#0a0f1a;--foreground:#ebf0f8;--card:#151c30;--card-foreground:#ebf0f8;--popover:#151c30;--popover-foreground:#ebf0f8;--primary:#4a8fd6;--primary-foreground:#fff;--brand-primary:#4a8fd6;--brand-primary-light:#6ba8e8;--brand-primary-dark:#003c70;--brand-primary-hover:#6ba8e8;--brand-primary-active:#3a7fc6;--brand-secondary:#60a5fa;--brand-accent:#fbbf24;--secondary:#1f263d;--secondary-foreground:#ebf0f8;--muted:#1f263d;--muted-foreground:#90a0bc;--accent:#fbbf24;--accent-foreground:#0a0f1a;--destructive:#e74c3c;--destructive-foreground:#fff;--success:#27ae60;--success-foreground:#fff;--warning:#f39c12;--warning-foreground:#0a0f1a;--info:#60a5fa;--info-foreground:#fff;--border:#253048;--input:#253048;--input-background:#151c30;--switch-background:#253048;--ring:#4a8fd6;--chart-1:#4a8fd6;--chart-2:#60a5fa;--chart-3:#fbbf24;--chart-4:#27ae60;--chart-5:#f39c12;--sidebar:#0a0f1a;--sidebar-foreground:#ebf0f8;--sidebar-primary:#4a8fd6;--sidebar-primary-foreground:#fff;--sidebar-accent:#151c30;--sidebar-accent-foreground:#ebf0f8;--sidebar-border:#253048;--sidebar-ring:#4a8fd6}[data-brand=perabook],[data-brand=perabook][data-theme=light]{--brand-primary:#006d77;--brand-primary-light:#1a8a96;--brand-primary-dark:#004d55;--brand-primary-hover:#1a8a96;--brand-primary-active:#004d55;--brand-secondary:#83c5be;--brand-secondary-light:#a8d8d3;--brand-accent:#f4a261;--brand-accent-dark:#d4813f;--background:#f2f9f9;--foreground:#0a2124;--card:#fff;--card-foreground:#0a2124;--popover:#fff;--popover-foreground:#0a2124;--primary:#006d77;--primary-foreground:#fff;--secondary:#f2f9f9;--secondary-foreground:#0a2124;--muted:#f2f9f9;--muted-foreground:#4a7078;--accent:#f4a261;--accent-foreground:#0a2124;--destructive:#e74c3c;--destructive-foreground:#fff;--success:#27ae60;--success-foreground:#fff;--warning:#f39c12;--warning-foreground:#fff;--info:#83c5be;--info-foreground:#fff;--border:#c8e6e3;--input:#c8e6e3;--input-background:#fff;--switch-background:#c8e6e3;--ring:#006d77;--sidebar:#fff;--sidebar-foreground:#0a2124;--sidebar-primary:#006d77;--sidebar-primary-foreground:#fff;--sidebar-accent:#f2f9f9;--sidebar-accent-foreground:#0a2124;--sidebar-border:#c8e6e3;--sidebar-ring:#006d77;--chart-1:#006d77;--chart-2:#83c5be;--chart-3:#f4a261;--chart-4:#27ae60;--chart-5:#f39c12}[data-brand=perabook][data-theme=dark]{--background:#071618;--foreground:#e8f8f7;--card:#0e2428;--card-foreground:#e8f8f7;--popover:#0e2428;--popover-foreground:#e8f8f7;--primary:#2dd4bf;--primary-foreground:#fff;--brand-primary:#2dd4bf;--brand-primary-light:#5eead4;--brand-primary-dark:#006d77;--brand-primary-hover:#5eead4;--brand-primary-active:#1dc4af;--brand-secondary:#a5f3fc;--brand-accent:#fed7aa;--secondary:#163035;--secondary-foreground:#e8f8f7;--muted:#163035;--muted-foreground:#7fbfbb;--accent:#fed7aa;--accent-foreground:#071618;--destructive:#e74c3c;--destructive-foreground:#fff;--success:#27ae60;--success-foreground:#fff;--warning:#f39c12;--warning-foreground:#071618;--info:#a5f3fc;--info-foreground:#071618;--border:#1a4048;--input:#1a4048;--input-background:#0e2428;--switch-background:#1a4048;--ring:#2dd4bf;--sidebar:#071618;--sidebar-foreground:#e8f8f7;--sidebar-primary:#2dd4bf;--sidebar-primary-foreground:#fff;--sidebar-accent:#0e2428;--sidebar-accent-foreground:#e8f8f7;--sidebar-border:#1a4048;--sidebar-ring:#2dd4bf;--chart-1:#2dd4bf;--chart-2:#a5f3fc;--chart-3:#fed7aa;--chart-4:#27ae60;--chart-5:#f39c12}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}