@clarlabs/ui 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +172 -0
- package/dist/index.d.ts +625 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1625 -0
- package/dist/index.mjs.map +1 -0
- package/dist/ui.css +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/components/Accordion/index.tsx","../src/components/Alert/index.tsx","../src/components/Avatar/index.tsx","../src/components/Badge/index.tsx","../src/components/Breadcrumbs/index.tsx","../src/components/Button/index.tsx","../src/components/ButtonGroup/index.tsx","../src/components/Card/index.tsx","../src/components/Checkbox/index.tsx","../src/components/Combobox/index.tsx","../src/components/Datagrid/index.tsx","../src/components/DatePicker/index.tsx","../src/components/DateRangePicker/index.tsx","../src/components/Divider/index.tsx","../src/components/Dropdown/index.tsx","../src/components/FilePicker/index.tsx","../src/components/Header/index.tsx","../src/components/Input/index.tsx","../src/components/Label/index.tsx","../src/components/List/index.tsx","../src/components/Modal/index.tsx","../src/components/Pagination/index.tsx","../src/components/ProgressBar/index.tsx","../src/components/RadioButton/index.tsx","../src/components/RangeInput/index.tsx","../src/components/RichSelect/index.tsx","../src/components/SidePanel/index.tsx","../src/components/Signpost/index.tsx","../src/components/Spinner/index.tsx","../src/components/StackView/index.tsx","../src/components/Stepper/index.tsx","../src/components/Table/index.tsx","../src/components/Tabs/index.tsx","../src/components/Textarea/index.tsx","../src/components/Timeline/index.tsx","../src/components/ToggleSwitch/index.tsx","../src/components/Tooltip/index.tsx","../src/components/Toast/index.tsx","../src/components/TreeView/index.tsx","../src/components/VerticalNav/index.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport styles from './styles.module.scss'\n\nexport interface AccordionItemProps {\n\tid: string\n\ttitle: string\n\tcontent: React.ReactNode\n}\n\nexport interface AccordionProps {\n\titems: AccordionItemProps[]\n\tallowMultiple?: boolean\n\tdefaultOpenIds?: string[]\n\tclassName?: string\n}\n\nexport function Accordion({ items, allowMultiple = false, defaultOpenIds = [], className = '' }: AccordionProps) {\n\tconst [openIds, setOpenIds] = useState<Set<string>>(new Set(defaultOpenIds))\n\n\tconst toggleItem = (id: string) => {\n\t\tsetOpenIds((prev) => {\n\t\t\tconst newSet = new Set(prev)\n\t\t\tif (newSet.has(id)) {\n\t\t\t\tnewSet.delete(id)\n\t\t\t} else {\n\t\t\t\tif (!allowMultiple) {\n\t\t\t\t\tnewSet.clear()\n\t\t\t\t}\n\t\t\t\tnewSet.add(id)\n\t\t\t}\n\t\t\treturn newSet\n\t\t})\n\t}\n\n\treturn (\n\t\t<div className={`${styles.accordion} ${className}`}>\n\t\t\t{items.map((item) => (\n\t\t\t\t<AccordionItem key={item.id} item={item} isOpen={openIds.has(item.id)} onToggle={() => toggleItem(item.id)} />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n\ninterface AccordionItemInternalProps {\n\titem: AccordionItemProps\n\tisOpen: boolean\n\tonToggle: () => void\n}\n\nfunction AccordionItem({ item, isOpen, onToggle }: AccordionItemInternalProps) {\n\treturn (\n\t\t<div className={`${styles.item} ${isOpen ? styles.open : ''}`}>\n\t\t\t<button className={styles.header} onClick={onToggle} aria-expanded={isOpen}>\n\t\t\t\t<span className={styles.title}>{item.title}</span>\n\t\t\t\t<span className={`${styles.icon} ${isOpen ? styles.iconOpen : ''}`}>▼</span>\n\t\t\t</button>\n\t\t\t<div className={`${styles.content} ${isOpen ? styles.contentOpen : ''}`}>\n\t\t\t\t<div className={styles.contentInner}>{item.content}</div>\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type AlertVariant = 'info' | 'success' | 'warning' | 'error'\n\nexport interface AlertProps {\n\tvariant?: AlertVariant\n\ttitle?: string\n\tmessage: string\n\tdismissible?: boolean\n\tonDismiss?: () => void\n\tclassName?: string\n}\n\nexport function Alert({ variant = 'info', title, message, dismissible = false, onDismiss, className = '' }: AlertProps) {\n\tconst icons = {\n\t\tinfo: 'ℹ',\n\t\tsuccess: '✓',\n\t\twarning: '⚠',\n\t\terror: '✕'\n\t}\n\n\treturn (\n\t\t<div className={`${styles.alert} ${styles[variant]} ${className}`} role=\"alert\">\n\t\t\t<div className={styles.icon}>{icons[variant]}</div>\n\t\t\t<div className={styles.content}>\n\t\t\t\t{title && <div className={styles.title}>{title}</div>}\n\t\t\t\t<div className={styles.message}>{message}</div>\n\t\t\t</div>\n\t\t\t{dismissible && (\n\t\t\t\t<button className={styles.dismissButton} onClick={onDismiss} aria-label=\"Dismiss alert\">\n\t\t\t\t\t✕\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type AvatarSize = 'sm' | 'md' | 'lg' | 'xl'\n\nexport interface AvatarProps {\n\tsrc?: string\n\talt?: string\n\tinitials?: string\n\tsize?: AvatarSize\n\tstatus?: 'online' | 'offline' | 'busy' | 'away'\n\tclassName?: string\n}\n\nexport function Avatar({ src, alt = 'Avatar', initials, size = 'md', status, className = '' }: AvatarProps) {\n\tconst getInitials = () => {\n\t\tif (initials) return initials\n\t\tif (alt) {\n\t\t\tconst words = alt.split(' ')\n\t\t\tif (words.length >= 2) {\n\t\t\t\treturn `${words[0][0]}${words[1][0]}`.toUpperCase()\n\t\t\t}\n\t\t\treturn alt.slice(0, 2).toUpperCase()\n\t\t}\n\t\treturn '?'\n\t}\n\n\treturn (\n\t\t<div className={`${styles.avatar} ${styles[size]} ${className}`}>\n\t\t\t{src ? <img src={src} alt={alt} className={styles.image} /> : <div className={styles.initials}>{getInitials()}</div>}\n\t\t\t{status && <span className={`${styles.status} ${styles[status]}`} aria-label={`Status: ${status}`} />}\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type BadgeVariant = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info'\nexport type BadgeSize = 'sm' | 'md' | 'lg'\n\nexport interface BadgeProps {\n\tchildren: React.ReactNode\n\tvariant?: BadgeVariant\n\tsize?: BadgeSize\n\tdot?: boolean\n\tclassName?: string\n}\n\nexport function Badge({ children, variant = 'default', size = 'md', dot = false, className = '' }: BadgeProps) {\n\treturn (\n\t\t<span className={`${styles.badge} ${styles[variant]} ${styles[size]} ${className}`}>\n\t\t\t{dot && <span className={styles.dot} />}\n\t\t\t{children}\n\t\t</span>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport interface BreadcrumbItem {\n\tlabel: string\n\thref?: string\n\tonClick?: () => void\n}\n\nexport interface BreadcrumbsProps {\n\titems: BreadcrumbItem[]\n\tseparator?: string\n\tclassName?: string\n}\n\nexport function Breadcrumbs({ items, separator = '/', className = '' }: BreadcrumbsProps) {\n\treturn (\n\t\t<nav className={`${styles.breadcrumbs} ${className}`} aria-label=\"Breadcrumb\">\n\t\t\t<ol className={styles.list}>\n\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\tconst isLast = index === items.length - 1\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={index} className={styles.item}>\n\t\t\t\t\t\t\t{item.href && !isLast ? (\n\t\t\t\t\t\t\t\t<a href={item.href} className={styles.link}>\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t) : item.onClick && !isLast ? (\n\t\t\t\t\t\t\t\t<button onClick={item.onClick} className={styles.button}>\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<span className={`${styles.text} ${isLast ? styles.current : ''}`}>{item.label}</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!isLast && (\n\t\t\t\t\t\t\t\t<span className={styles.separator} aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t{separator}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t</ol>\n\t\t</nav>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'success' | 'danger' | 'outline' | 'ghost'\nexport type ButtonSize = 'sm' | 'md' | 'lg'\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n\tvariant?: ButtonVariant\n\tsize?: ButtonSize\n\tfullWidth?: boolean\n\tloading?: boolean\n\tchildren: React.ReactNode\n}\n\nexport function Button({ variant = 'primary', size = 'md', fullWidth = false, loading = false, disabled, className = '', children, ...props }: ButtonProps) {\n\treturn (\n\t\t<button\n\t\t\tclassName={`\n ${styles.button}\n ${styles[variant]}\n ${styles[size]}\n ${fullWidth ? styles.fullWidth : ''}\n ${loading ? styles.loading : ''}\n ${className}\n `}\n\t\t\tdisabled={disabled || loading}\n\t\t\t{...props}\n\t\t>\n\t\t\t{loading && <span className={styles.spinner} />}\n\t\t\t<span className={loading ? styles.hiddenContent : ''}>{children}</span>\n\t\t</button>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical'\n\nexport interface ButtonGroupProps {\n\tchildren: React.ReactNode\n\torientation?: ButtonGroupOrientation\n\tfullWidth?: boolean\n\tclassName?: string\n}\n\nexport function ButtonGroup({ children, orientation = 'horizontal', fullWidth = false, className = '' }: ButtonGroupProps) {\n\treturn (\n\t\t<div\n\t\t\tclassName={`\n ${styles.buttonGroup}\n ${styles[orientation]}\n ${fullWidth ? styles.fullWidth : ''}\n ${className}\n `}\n\t\t\trole=\"group\"\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport interface CardProps {\n\tchildren: React.ReactNode\n\ttitle?: string\n\tsubtitle?: string\n\tfooter?: React.ReactNode\n\timage?: string\n\thoverable?: boolean\n\tclassName?: string\n\tonClick?: () => void\n}\n\nexport function Card({ children, title, subtitle, footer, image, hoverable = false, className = '', onClick }: CardProps) {\n\tconst isClickable = !!onClick\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`\n ${styles.card}\n ${hoverable ? styles.hoverable : ''}\n ${isClickable ? styles.clickable : ''}\n ${className}\n `}\n\t\t\tonClick={onClick}\n\t\t\trole={isClickable ? 'button' : undefined}\n\t\t\ttabIndex={isClickable ? 0 : undefined}\n\t\t>\n\t\t\t{image && (\n\t\t\t\t<div className={styles.imageWrapper}>\n\t\t\t\t\t<img src={image} alt={title || ''} className={styles.image} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div className={styles.content}>\n\t\t\t\t{(title || subtitle) && (\n\t\t\t\t\t<div className={styles.header}>\n\t\t\t\t\t\t{title && <h3 className={styles.title}>{title}</h3>}\n\t\t\t\t\t\t{subtitle && <p className={styles.subtitle}>{subtitle}</p>}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<div className={styles.body}>{children}</div>\n\t\t\t\t{footer && <div className={styles.footer}>{footer}</div>}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {\n\tlabel?: string\n\tindeterminate?: boolean\n}\n\nexport function Checkbox({ label, indeterminate = false, className = '', ...props }: CheckboxProps) {\n\tconst checkboxRef = React.useRef<HTMLInputElement>(null)\n\n\tReact.useEffect(() => {\n\t\tif (checkboxRef.current) {\n\t\t\tcheckboxRef.current.indeterminate = indeterminate\n\t\t}\n\t}, [indeterminate])\n\n\treturn (\n\t\t<label className={`${styles.checkboxWrapper} ${className}`}>\n\t\t\t<input ref={checkboxRef} type=\"checkbox\" className={styles.checkbox} {...props} />\n\t\t\t<span className={styles.checkmark}>\n\t\t\t\t{indeterminate ? <span className={styles.indeterminateIcon}>−</span> : <span className={styles.checkIcon}>✓</span>}\n\t\t\t</span>\n\t\t\t{label && <span className={styles.label}>{label}</span>}\n\t\t</label>\n\t)\n}\n","import React, { useState, useRef, useEffect } from 'react'\nimport styles from './styles.module.scss'\n\nexport interface ComboboxOption {\n\tvalue: string\n\tlabel: string\n\tdisabled?: boolean\n}\n\nexport interface ComboboxProps {\n\toptions: ComboboxOption[]\n\tvalue?: string\n\tdefaultValue?: string\n\tonChange?: (value: string) => void\n\tplaceholder?: string\n\tdisabled?: boolean\n\tclassName?: string\n\tallowCustomValue?: boolean\n\tfilterFunction?: (option: ComboboxOption, searchTerm: string) => boolean\n}\n\nexport function Combobox({\n\toptions,\n\tvalue: controlledValue,\n\tdefaultValue = '',\n\tonChange,\n\tplaceholder = 'Select or type...',\n\tdisabled = false,\n\tclassName = '',\n\tallowCustomValue = false,\n\tfilterFunction\n}: ComboboxProps) {\n\tconst [inputValue, setInputValue] = useState(defaultValue)\n\tconst [isOpen, setIsOpen] = useState(false)\n\tconst [highlightedIndex, setHighlightedIndex] = useState(-1)\n\tconst inputRef = useRef<HTMLInputElement>(null)\n\tconst listRef = useRef<HTMLUListElement>(null)\n\tconst wrapperRef = useRef<HTMLDivElement>(null)\n\n\tconst isControlled = controlledValue !== undefined\n\tconst currentValue = isControlled ? controlledValue : inputValue\n\n\tconst defaultFilter = (option: ComboboxOption, searchTerm: string) => {\n\t\treturn option.label.toLowerCase().includes(searchTerm.toLowerCase())\n\t}\n\n\tconst filterFunc = filterFunction || defaultFilter\n\n\tconst filteredOptions = options.filter((option) => filterFunc(option, currentValue))\n\n\tuseEffect(() => {\n\t\tconst handleClickOutside = (e: MouseEvent) => {\n\t\t\tif (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n\t\t\t\tsetIsOpen(false)\n\t\t\t}\n\t\t}\n\n\t\tdocument.addEventListener('mousedown', handleClickOutside)\n\t\treturn () => document.removeEventListener('mousedown', handleClickOutside)\n\t}, [])\n\n\tuseEffect(() => {\n\t\tif (isOpen && highlightedIndex >= 0 && listRef.current) {\n\t\t\tconst highlightedElement = listRef.current.children[highlightedIndex] as HTMLElement\n\t\t\tif (highlightedElement) {\n\t\t\t\thighlightedElement.scrollIntoView({ block: 'nearest' })\n\t\t\t}\n\t\t}\n\t}, [highlightedIndex, isOpen])\n\n\tconst handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst newValue = e.target.value\n\n\t\tif (!isControlled) {\n\t\t\tsetInputValue(newValue)\n\t\t}\n\n\t\tonChange?.(newValue)\n\t\tsetIsOpen(true)\n\t\tsetHighlightedIndex(-1)\n\t}\n\n\tconst handleOptionClick = (option: ComboboxOption) => {\n\t\tif (option.disabled) return\n\n\t\tconst newValue = option.value\n\n\t\tif (!isControlled) {\n\t\t\tsetInputValue(option.label)\n\t\t}\n\n\t\tonChange?.(newValue)\n\t\tsetIsOpen(false)\n\t\tsetHighlightedIndex(-1)\n\t\tinputRef.current?.blur()\n\t}\n\n\tconst handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\tif (disabled) return\n\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tsetIsOpen(true)\n\t\t\t\tsetHighlightedIndex((prev) => {\n\t\t\t\t\tconst maxIndex = filteredOptions.length - 1\n\t\t\t\t\tif (prev >= maxIndex) return maxIndex\n\t\t\t\t\tlet nextIndex = prev + 1\n\t\t\t\t\twhile (nextIndex <= maxIndex && filteredOptions[nextIndex].disabled) {\n\t\t\t\t\t\tnextIndex++\n\t\t\t\t\t}\n\t\t\t\t\treturn nextIndex <= maxIndex ? nextIndex : prev\n\t\t\t\t})\n\t\t\t\tbreak\n\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tsetHighlightedIndex((prev) => {\n\t\t\t\t\tif (prev <= 0) return -1\n\t\t\t\t\tlet prevIndex = prev - 1\n\t\t\t\t\twhile (prevIndex >= 0 && filteredOptions[prevIndex].disabled) {\n\t\t\t\t\t\tprevIndex--\n\t\t\t\t\t}\n\t\t\t\t\treturn prevIndex >= 0 ? prevIndex : -1\n\t\t\t\t})\n\t\t\t\tbreak\n\n\t\t\tcase 'Enter':\n\t\t\t\te.preventDefault()\n\t\t\t\tif (isOpen && highlightedIndex >= 0) {\n\t\t\t\t\thandleOptionClick(filteredOptions[highlightedIndex])\n\t\t\t\t} else if (allowCustomValue) {\n\t\t\t\t\tonChange?.(currentValue)\n\t\t\t\t\tsetIsOpen(false)\n\t\t\t\t}\n\t\t\t\tbreak\n\n\t\t\tcase 'Escape':\n\t\t\t\te.preventDefault()\n\t\t\t\tsetIsOpen(false)\n\t\t\t\tsetHighlightedIndex(-1)\n\t\t\t\tinputRef.current?.blur()\n\t\t\t\tbreak\n\n\t\t\tcase 'Tab':\n\t\t\t\tsetIsOpen(false)\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tconst handleInputFocus = () => {\n\t\tif (!disabled) {\n\t\t\tsetIsOpen(true)\n\t\t}\n\t}\n\n\tconst selectedOption = options.find((opt) => opt.value === currentValue)\n\tconst displayValue = selectedOption ? selectedOption.label : currentValue\n\n\treturn (\n\t\t<div ref={wrapperRef} className={`${styles.combobox} ${className}`}>\n\t\t\t<div className={styles.inputWrapper}>\n\t\t\t\t<input\n\t\t\t\t\tref={inputRef}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tclassName={`${styles.input} ${disabled ? styles.disabled : ''}`}\n\t\t\t\t\tvalue={displayValue}\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\tonFocus={handleInputFocus}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\taria-expanded={isOpen}\n\t\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t\taria-controls=\"combobox-listbox\"\n\t\t\t\t/>\n\t\t\t\t<span className={`${styles.arrow} ${isOpen ? styles.open : ''}`}>▼</span>\n\t\t\t</div>\n\n\t\t\t{isOpen && filteredOptions.length > 0 && (\n\t\t\t\t<ul ref={listRef} id=\"combobox-listbox\" className={styles.menu} role=\"listbox\">\n\t\t\t\t\t{filteredOptions.map((option, index) => (\n\t\t\t\t\t\t<li\n\t\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\t\tclassName={`${styles.option} ${highlightedIndex === index ? styles.highlighted : ''} ${\n\t\t\t\t\t\t\t\toption.disabled ? styles.optionDisabled : ''\n\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\tonClick={() => handleOptionClick(option)}\n\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\taria-selected={option.value === currentValue}\n\t\t\t\t\t\t\taria-disabled={option.disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}\n\t\t\t\t</ul>\n\t\t\t)}\n\n\t\t\t{isOpen && filteredOptions.length === 0 && (\n\t\t\t\t<div className={styles.noResults}>{allowCustomValue ? 'Press Enter to use custom value' : 'No results found'}</div>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport interface DatagridColumn<T = any> {\n\tkey: string\n\theader: string\n\twidth?: string\n\trender?: (value: any, row: T) => React.ReactNode\n}\n\nexport interface DatagridProps<T = any> {\n\tcolumns: DatagridColumn<T>[]\n\tdata: T[]\n\tonRowClick?: (row: T) => void\n\tstriped?: boolean\n\thoverable?: boolean\n\tclassName?: string\n}\n\nexport function Datagrid<T extends Record<string, any>>({ columns, data, onRowClick, striped = false, hoverable = true, className = '' }: DatagridProps<T>) {\n\treturn (\n\t\t<div className={`${styles.datagridWrapper} ${className}`}>\n\t\t\t<table className={styles.datagrid}>\n\t\t\t\t<thead className={styles.thead}>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t{columns.map((column) => (\n\t\t\t\t\t\t\t<th key={column.key} className={styles.th} style={{ width: column.width }}>\n\t\t\t\t\t\t\t\t{column.header}\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody className={styles.tbody}>\n\t\t\t\t\t{data.map((row, rowIndex) => (\n\t\t\t\t\t\t<tr\n\t\t\t\t\t\t\tkey={rowIndex}\n\t\t\t\t\t\t\tclassName={`\n ${styles.tr}\n ${striped && rowIndex % 2 === 1 ? styles.striped : ''}\n ${hoverable ? styles.hoverable : ''}\n ${onRowClick ? styles.clickable : ''}\n `}\n\t\t\t\t\t\t\tonClick={() => onRowClick?.(row)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{columns.map((column) => (\n\t\t\t\t\t\t\t\t<td key={column.key} className={styles.td}>\n\t\t\t\t\t\t\t\t\t{column.render ? column.render(row[column.key], row) : row[column.key]}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t))}\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t)\n}\n","import React, { useState } from 'react'\nimport styles from './styles.module.scss'\n\nexport interface DatePickerProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'onChange'> {\n\tvalue?: Date\n\tonChange?: (date: Date | null) => void\n\tminDate?: Date\n\tmaxDate?: Date\n}\n\nexport function DatePicker({ value, onChange, minDate, maxDate, className = '', ...props }: DatePickerProps) {\n\tconst [inputValue, setInputValue] = useState<string>(value ? formatDate(value) : '')\n\n\tconst handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst dateValue = e.target.value\n\t\tsetInputValue(dateValue)\n\n\t\tif (dateValue) {\n\t\t\tconst date = new Date(dateValue)\n\t\t\tif (!isNaN(date.getTime())) {\n\t\t\t\tonChange?.(date)\n\t\t\t}\n\t\t} else {\n\t\t\tonChange?.(null)\n\t\t}\n\t}\n\n\treturn (\n\t\t<div className={`${styles.datePicker} ${className}`}>\n\t\t\t<input\n\t\t\t\ttype=\"date\"\n\t\t\t\tclassName={styles.input}\n\t\t\t\tvalue={inputValue}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tmin={minDate ? formatDate(minDate) : undefined}\n\t\t\t\tmax={maxDate ? formatDate(maxDate) : undefined}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t\t<span className={styles.icon}>📅</span>\n\t\t</div>\n\t)\n}\n\nfunction formatDate(date: Date): string {\n\tconst year = date.getFullYear()\n\tconst month = String(date.getMonth() + 1).padStart(2, '0')\n\tconst day = String(date.getDate()).padStart(2, '0')\n\treturn `${year}-${month}-${day}`\n}\n","import React, { useState } from 'react'\nimport styles from './styles.module.scss'\n\nexport interface DateRange {\n\tstart: Date | null\n\tend: Date | null\n}\n\nexport interface DateRangePickerProps {\n\tvalue?: DateRange\n\tonChange?: (range: DateRange) => void\n\tminDate?: Date\n\tmaxDate?: Date\n\tclassName?: string\n}\n\nexport function DateRangePicker({ value, onChange, minDate, maxDate, className = '' }: DateRangePickerProps) {\n\tconst [startValue, setStartValue] = useState<string>(value?.start ? formatDate(value.start) : '')\n\tconst [endValue, setEndValue] = useState<string>(value?.end ? formatDate(value.end) : '')\n\n\tconst handleStartChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst dateValue = e.target.value\n\t\tsetStartValue(dateValue)\n\n\t\tconst startDate = dateValue ? new Date(dateValue) : null\n\t\tconst endDate = endValue ? new Date(endValue) : null\n\n\t\tif (startDate && !isNaN(startDate.getTime())) {\n\t\t\tonChange?.({ start: startDate, end: endDate })\n\t\t} else {\n\t\t\tonChange?.({ start: null, end: endDate })\n\t\t}\n\t}\n\n\tconst handleEndChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst dateValue = e.target.value\n\t\tsetEndValue(dateValue)\n\n\t\tconst startDate = startValue ? new Date(startValue) : null\n\t\tconst endDate = dateValue ? new Date(dateValue) : null\n\n\t\tif (endDate && !isNaN(endDate.getTime())) {\n\t\t\tonChange?.({ start: startDate, end: endDate })\n\t\t} else {\n\t\t\tonChange?.({ start: startDate, end: null })\n\t\t}\n\t}\n\n\treturn (\n\t\t<div className={`${styles.dateRangePicker} ${className}`}>\n\t\t\t<div className={styles.inputWrapper}>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"date\"\n\t\t\t\t\tclassName={styles.input}\n\t\t\t\t\tvalue={startValue}\n\t\t\t\t\tonChange={handleStartChange}\n\t\t\t\t\tmin={minDate ? formatDate(minDate) : undefined}\n\t\t\t\t\tmax={endValue || (maxDate ? formatDate(maxDate) : undefined)}\n\t\t\t\t\tplaceholder=\"Start date\"\n\t\t\t\t/>\n\t\t\t\t<span className={styles.icon}>📅</span>\n\t\t\t</div>\n\t\t\t<span className={styles.separator}>→</span>\n\t\t\t<div className={styles.inputWrapper}>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"date\"\n\t\t\t\t\tclassName={styles.input}\n\t\t\t\t\tvalue={endValue}\n\t\t\t\t\tonChange={handleEndChange}\n\t\t\t\t\tmin={startValue || (minDate ? formatDate(minDate) : undefined)}\n\t\t\t\t\tmax={maxDate ? formatDate(maxDate) : undefined}\n\t\t\t\t\tplaceholder=\"End date\"\n\t\t\t\t/>\n\t\t\t\t<span className={styles.icon}>📅</span>\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\nfunction formatDate(date: Date): string {\n\tconst year = date.getFullYear()\n\tconst month = String(date.getMonth() + 1).padStart(2, '0')\n\tconst day = String(date.getDate()).padStart(2, '0')\n\treturn `${year}-${month}-${day}`\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type DividerOrientation = 'horizontal' | 'vertical'\nexport type DividerVariant = 'solid' | 'dashed' | 'dotted'\n\nexport interface DividerProps {\n\torientation?: DividerOrientation\n\tvariant?: DividerVariant\n\tlabel?: string\n\tclassName?: string\n}\n\nexport function Divider({ orientation = 'horizontal', variant = 'solid', label, className = '' }: DividerProps) {\n\tconst dividerClass = `${styles.divider} ${styles[orientation]} ${styles[variant]} ${className}`\n\n\tif (label && orientation === 'horizontal') {\n\t\treturn (\n\t\t\t<div className={dividerClass}>\n\t\t\t\t<span className={styles.line}></span>\n\t\t\t\t<span className={styles.label}>{label}</span>\n\t\t\t\t<span className={styles.line}></span>\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn <div className={dividerClass}></div>\n}\n","import React, { useState, useRef, useEffect } from 'react'\nimport styles from './styles.module.scss'\n\nexport interface DropdownOption {\n\tlabel: string\n\tvalue: string\n\tdisabled?: boolean\n}\n\nexport interface DropdownProps {\n\toptions: DropdownOption[]\n\tvalue?: string\n\tonChange?: (value: string) => void\n\tplaceholder?: string\n\tdisabled?: boolean\n\tclassName?: string\n}\n\nexport function Dropdown({ options, value, onChange, placeholder = 'Select an option', disabled = false, className = '' }: DropdownProps) {\n\tconst [isOpen, setIsOpen] = useState(false)\n\tconst [selectedValue, setSelectedValue] = useState(value || '')\n\tconst dropdownRef = useRef<HTMLDivElement>(null)\n\n\tuseEffect(() => {\n\t\tconst handleClickOutside = (event: MouseEvent) => {\n\t\t\tif (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n\t\t\t\tsetIsOpen(false)\n\t\t\t}\n\t\t}\n\n\t\tdocument.addEventListener('mousedown', handleClickOutside)\n\t\treturn () => document.removeEventListener('mousedown', handleClickOutside)\n\t}, [])\n\n\tconst handleSelect = (optionValue: string) => {\n\t\tif (disabled) return\n\t\tsetSelectedValue(optionValue)\n\t\tsetIsOpen(false)\n\t\tonChange?.(optionValue)\n\t}\n\n\tconst selectedOption = options.find((opt) => opt.value === selectedValue)\n\tconst displayText = selectedOption?.label || placeholder\n\n\treturn (\n\t\t<div className={`${styles.dropdown} ${className}`} ref={dropdownRef}>\n\t\t\t<button\n\t\t\t\tclassName={`${styles.trigger} ${disabled ? styles.disabled : ''}`}\n\t\t\t\tonClick={() => !disabled && setIsOpen(!isOpen)}\n\t\t\t\tdisabled={disabled}\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t<span className={selectedOption ? styles.selected : styles.placeholder}>{displayText}</span>\n\t\t\t\t<span className={`${styles.arrow} ${isOpen ? styles.open : ''}`}>▼</span>\n\t\t\t</button>\n\t\t\t{isOpen && (\n\t\t\t\t<div className={styles.menu}>\n\t\t\t\t\t{options.map((option) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\t\tclassName={`${styles.option} ${option.value === selectedValue ? styles.active : ''} ${\n\t\t\t\t\t\t\t\toption.disabled ? styles.optionDisabled : ''\n\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\tonClick={() => !option.disabled && handleSelect(option.value)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n","import React, { useRef, useState } from 'react'\nimport styles from './styles.module.scss'\n\nexport type FileStatus = 'idle' | 'processing' | 'uploaded' | 'failed'\n\nexport interface FileItem {\n\tfile: File\n\tstatus: FileStatus\n\tprogress?: number\n\terror?: string\n}\n\nexport interface FilePickerProps {\n\taccept?: string\n\tmultiple?: boolean\n\tmaxSize?: number\n\tdisabled?: boolean\n\tonChange?: (files: FileItem[]) => void\n\tonUpload?: (file: File) => Promise<void>\n\tclassName?: string\n}\n\nexport function FilePicker({ accept, multiple = false, maxSize, disabled = false, onChange, onUpload, className = '' }: FilePickerProps) {\n\tconst [files, setFiles] = useState<FileItem[]>([])\n\tconst inputRef = useRef<HTMLInputElement>(null)\n\n\tconst handleFileSelect = async (selectedFiles: FileList | null) => {\n\t\tif (!selectedFiles || disabled) return\n\n\t\tconst newFiles: FileItem[] = Array.from(selectedFiles).map((file) => {\n\t\t\tif (maxSize && file.size > maxSize) {\n\t\t\t\treturn { file, status: 'failed' as FileStatus, error: 'File too large' }\n\t\t\t}\n\t\t\treturn { file, status: 'idle' as FileStatus }\n\t\t})\n\n\t\tsetFiles((prev) => [...prev, ...newFiles])\n\t\tonChange?.(newFiles)\n\n\t\tif (onUpload) {\n\t\t\tfor (const fileItem of newFiles) {\n\t\t\t\tif (fileItem.status !== 'failed') {\n\t\t\t\t\tawait processFile(fileItem)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst processFile = async (fileItem: FileItem) => {\n\t\tupdateFileStatus(fileItem.file.name, 'processing')\n\n\t\ttry {\n\t\t\tawait onUpload?.(fileItem.file)\n\t\t\tupdateFileStatus(fileItem.file.name, 'uploaded')\n\t\t} catch (error) {\n\t\t\tupdateFileStatus(fileItem.file.name, 'failed', (error as Error).message)\n\t\t}\n\t}\n\n\tconst updateFileStatus = (fileName: string, status: FileStatus, error?: string) => {\n\t\tsetFiles((prev) => prev.map((f) => (f.file.name === fileName ? { ...f, status, error } : f)))\n\t}\n\n\tconst removeFile = (fileName: string) => {\n\t\tsetFiles((prev) => prev.filter((f) => f.file.name !== fileName))\n\t}\n\n\tconst getStatusIcon = (status: FileStatus) => {\n\t\tswitch (status) {\n\t\t\tcase 'processing':\n\t\t\t\treturn '⏳'\n\t\t\tcase 'uploaded':\n\t\t\t\treturn '✓'\n\t\t\tcase 'failed':\n\t\t\t\treturn '✗'\n\t\t\tdefault:\n\t\t\t\treturn '📄'\n\t\t}\n\t}\n\n\treturn (\n\t\t<div className={`${styles.filePicker} ${className}`}>\n\t\t\t<div className={`${styles.dropzone} ${disabled ? styles.disabled : ''}`} onClick={() => !disabled && inputRef.current?.click()}>\n\t\t\t\t<span className={styles.icon}>📁</span>\n\t\t\t\t<span className={styles.text}>Click to select files</span>\n\t\t\t</div>\n\t\t\t<input\n\t\t\t\tref={inputRef}\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept={accept}\n\t\t\t\tmultiple={multiple}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonChange={(e) => handleFileSelect(e.target.files)}\n\t\t\t\tclassName={styles.input}\n\t\t\t/>\n\t\t\t{files.length > 0 && (\n\t\t\t\t<div className={styles.fileList}>\n\t\t\t\t\t{files.map((fileItem, index) => (\n\t\t\t\t\t\t<div key={`${fileItem.file.name}-${index}`} className={`${styles.fileItem} ${styles[fileItem.status]}`}>\n\t\t\t\t\t\t\t<span className={styles.fileIcon}>{getStatusIcon(fileItem.status)}</span>\n\t\t\t\t\t\t\t<span className={styles.fileName}>{fileItem.file.name}</span>\n\t\t\t\t\t\t\t<span className={styles.fileSize}>{(fileItem.file.size / 1024).toFixed(1)} KB</span>\n\t\t\t\t\t\t\t{fileItem.error && <span className={styles.error}>{fileItem.error}</span>}\n\t\t\t\t\t\t\t<button className={styles.remove} onClick={() => removeFile(fileItem.file.name)}>\n\t\t\t\t\t\t\t\t×\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport interface HeaderProps {\n\tlogo?: React.ReactNode\n\ttitle?: string\n\tchildren?: React.ReactNode\n\tactions?: React.ReactNode\n\tsticky?: boolean\n\tclassName?: string\n}\n\nexport function Header({ logo, title, children, actions, sticky = false, className = '' }: HeaderProps) {\n\treturn (\n\t\t<header className={`${styles.header} ${sticky ? styles.sticky : ''} ${className}`}>\n\t\t\t<div className={styles.content}>\n\t\t\t\t{(logo || title) && (\n\t\t\t\t\t<div className={styles.brand}>\n\t\t\t\t\t\t{logo && <div className={styles.logo}>{logo}</div>}\n\t\t\t\t\t\t{title && <h1 className={styles.title}>{title}</h1>}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{children && <div className={styles.nav}>{children}</div>}\n\t\t\t\t{actions && <div className={styles.actions}>{actions}</div>}\n\t\t\t</div>\n\t\t</header>\n\t)\n}\n","import React, { forwardRef } from 'react'\nimport styles from './styles.module.scss'\n\nexport type InputSize = 'sm' | 'md' | 'lg'\nexport type InputVariant = 'default' | 'error' | 'success'\n\nexport interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {\n\tlabel?: string\n\terror?: string\n\thelperText?: string\n\tsize?: InputSize\n\tvariant?: InputVariant\n\ticon?: React.ReactNode\n\tfullWidth?: boolean\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n\t({ label, error, helperText, size = 'md', variant = 'default', icon, fullWidth = false, className = '', disabled = false, ...props }, ref) => {\n\t\tconst finalVariant = error ? 'error' : variant\n\t\tconst containerClass = `${styles.inputContainer} ${fullWidth ? styles.fullWidth : ''} ${className}`\n\t\tconst inputClass = `${styles.input} ${styles[size]} ${styles[finalVariant]} ${icon ? styles.withIcon : ''} ${disabled ? styles.disabled : ''}`\n\n\t\treturn (\n\t\t\t<div className={containerClass}>\n\t\t\t\t{label && <label className={styles.label}>{label}</label>}\n\t\t\t\t<div className={styles.wrapper}>\n\t\t\t\t\t{icon && <span className={styles.icon}>{icon}</span>}\n\t\t\t\t\t<input ref={ref} className={inputClass} disabled={disabled} {...props} />\n\t\t\t\t</div>\n\t\t\t\t{(error || helperText) && <span className={`${styles.helperText} ${error ? styles.errorText : ''}`}>{error || helperText}</span>}\n\t\t\t</div>\n\t\t)\n\t}\n)\n\nInput.displayName = 'Input'\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type LabelSize = 'sm' | 'md' | 'lg'\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n\tsize?: LabelSize\n\trequired?: boolean\n\tdisabled?: boolean\n\tchildren: React.ReactNode\n}\n\nexport function Label({ size = 'md', required = false, disabled = false, className = '', children, ...props }: LabelProps) {\n\treturn (\n\t\t<label className={`${styles.label} ${styles[size]} ${disabled ? styles.disabled : ''} ${className}`} {...props}>\n\t\t\t{children}\n\t\t\t{required && <span className={styles.required}>*</span>}\n\t\t</label>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport interface ListItem {\n\tid: string\n\tcontent: React.ReactNode\n\ticon?: React.ReactNode\n\tbadge?: React.ReactNode\n\tdisabled?: boolean\n\tonClick?: () => void\n}\n\nexport interface ListProps {\n\titems: ListItem[]\n\thoverable?: boolean\n\tdividers?: boolean\n\tclassName?: string\n}\n\nexport function List({ items, hoverable = false, dividers = false, className = '' }: ListProps) {\n\treturn (\n\t\t<ul className={`${styles.list} ${dividers ? styles.dividers : ''} ${className}`}>\n\t\t\t{items.map((item) => (\n\t\t\t\t<li\n\t\t\t\t\tkey={item.id}\n\t\t\t\t\tclassName={`${styles.item} ${hoverable && !item.disabled ? styles.hoverable : ''} ${\n\t\t\t\t\t\titem.disabled ? styles.disabled : ''\n\t\t\t\t\t} ${item.onClick && !item.disabled ? styles.clickable : ''}`}\n\t\t\t\t\tonClick={item.disabled ? undefined : item.onClick}\n\t\t\t\t>\n\t\t\t\t\t{item.icon && <span className={styles.icon}>{item.icon}</span>}\n\t\t\t\t\t<span className={styles.content}>{item.content}</span>\n\t\t\t\t\t{item.badge && <span className={styles.badge}>{item.badge}</span>}\n\t\t\t\t</li>\n\t\t\t))}\n\t\t</ul>\n\t)\n}\n","import React, { useEffect } from 'react'\nimport styles from './styles.module.scss'\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl'\n\nexport interface ModalProps {\n\tisOpen: boolean\n\tonClose: () => void\n\ttitle?: string\n\tchildren: React.ReactNode\n\tfooter?: React.ReactNode\n\tsize?: ModalSize\n\tcloseOnOverlayClick?: boolean\n\tshowCloseButton?: boolean\n\tclassName?: string\n}\n\nexport function Modal({\n\tisOpen,\n\tonClose,\n\ttitle,\n\tchildren,\n\tfooter,\n\tsize = 'md',\n\tcloseOnOverlayClick = true,\n\tshowCloseButton = true,\n\tclassName = ''\n}: ModalProps) {\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\tdocument.body.style.overflow = 'hidden'\n\t\t} else {\n\t\t\tdocument.body.style.overflow = ''\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.style.overflow = ''\n\t\t}\n\t}, [isOpen])\n\n\tuseEffect(() => {\n\t\tconst handleEscape = (e: KeyboardEvent) => {\n\t\t\tif (e.key === 'Escape' && isOpen) {\n\t\t\t\tonClose()\n\t\t\t}\n\t\t}\n\t\tdocument.addEventListener('keydown', handleEscape)\n\t\treturn () => document.removeEventListener('keydown', handleEscape)\n\t}, [isOpen, onClose])\n\n\tif (!isOpen) return null\n\n\treturn (\n\t\t<div className={styles.overlay} onClick={closeOnOverlayClick ? onClose : undefined}>\n\t\t\t<div className={`${styles.modal} ${styles[size]} ${className}`} onClick={(e) => e.stopPropagation()}>\n\t\t\t\t{(title || showCloseButton) && (\n\t\t\t\t\t<div className={styles.header}>\n\t\t\t\t\t\t{title && <h2 className={styles.title}>{title}</h2>}\n\t\t\t\t\t\t{showCloseButton && (\n\t\t\t\t\t\t\t<button className={styles.closeButton} onClick={onClose} type=\"button\">\n\t\t\t\t\t\t\t\t×\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<div className={styles.content}>{children}</div>\n\t\t\t\t{footer && <div className={styles.footer}>{footer}</div>}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport interface PaginationProps {\n\tcurrentPage: number\n\ttotalPages: number\n\tonPageChange: (page: number) => void\n\tshowFirstLast?: boolean\n\tsiblingCount?: number\n\tclassName?: string\n}\n\nexport function Pagination({ currentPage, totalPages, onPageChange, showFirstLast = true, siblingCount = 1, className = '' }: PaginationProps) {\n\tconst range = (start: number, end: number) => {\n\t\treturn Array.from({ length: end - start + 1 }, (_, i) => start + i)\n\t}\n\n\tconst getPaginationRange = () => {\n\t\tconst totalPageNumbers = siblingCount + 5\n\n\t\tif (totalPages <= totalPageNumbers) {\n\t\t\treturn range(1, totalPages)\n\t\t}\n\n\t\tconst leftSiblingIndex = Math.max(currentPage - siblingCount, 1)\n\t\tconst rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages)\n\t\tconst showLeftDots = leftSiblingIndex > 2\n\t\tconst showRightDots = rightSiblingIndex < totalPages - 1\n\n\t\tif (!showLeftDots && showRightDots) {\n\t\t\tconst leftRange = range(1, 3 + 2 * siblingCount)\n\t\t\treturn [...leftRange, '...', totalPages]\n\t\t}\n\n\t\tif (showLeftDots && !showRightDots) {\n\t\t\tconst rightRange = range(totalPages - (2 + 2 * siblingCount), totalPages)\n\t\t\treturn [1, '...', ...rightRange]\n\t\t}\n\n\t\tconst middleRange = range(leftSiblingIndex, rightSiblingIndex)\n\t\treturn [1, '...', ...middleRange, '...', totalPages]\n\t}\n\n\tconst paginationRange = getPaginationRange()\n\n\tconst handlePrevious = () => {\n\t\tif (currentPage > 1) onPageChange(currentPage - 1)\n\t}\n\n\tconst handleNext = () => {\n\t\tif (currentPage < totalPages) onPageChange(currentPage + 1)\n\t}\n\n\treturn (\n\t\t<nav className={`${styles.pagination} ${className}`}>\n\t\t\t{showFirstLast && (\n\t\t\t\t<button className={styles.pageButton} onClick={() => onPageChange(1)} disabled={currentPage === 1}>\n\t\t\t\t\t«\n\t\t\t\t</button>\n\t\t\t)}\n\t\t\t<button className={styles.pageButton} onClick={handlePrevious} disabled={currentPage === 1}>\n\t\t\t\t‹\n\t\t\t</button>\n\t\t\t{paginationRange.map((pageNumber, index) => {\n\t\t\t\tif (pageNumber === '...') {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<span key={`dots-${index}`} className={styles.dots}>\n\t\t\t\t\t\t\t...\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={pageNumber}\n\t\t\t\t\t\tclassName={`${styles.pageButton} ${pageNumber === currentPage ? styles.active : ''}`}\n\t\t\t\t\t\tonClick={() => onPageChange(pageNumber as number)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{pageNumber}\n\t\t\t\t\t</button>\n\t\t\t\t)\n\t\t\t})}\n\t\t\t<button className={styles.pageButton} onClick={handleNext} disabled={currentPage === totalPages}>\n\t\t\t\t›\n\t\t\t</button>\n\t\t\t{showFirstLast && (\n\t\t\t\t<button className={styles.pageButton} onClick={() => onPageChange(totalPages)} disabled={currentPage === totalPages}>\n\t\t\t\t\t»\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</nav>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type ProgressBarVariant = 'default' | 'success' | 'warning' | 'error' | 'info'\nexport type ProgressBarSize = 'sm' | 'md' | 'lg'\n\nexport interface ProgressBarProps {\n\tvalue: number\n\tmax?: number\n\tvariant?: ProgressBarVariant\n\tsize?: ProgressBarSize\n\tshowLabel?: boolean\n\tlabel?: string\n\tanimated?: boolean\n\tstriped?: boolean\n\tclassName?: string\n}\n\nexport function ProgressBar({\n\tvalue,\n\tmax = 100,\n\tvariant = 'default',\n\tsize = 'md',\n\tshowLabel = false,\n\tlabel,\n\tanimated = false,\n\tstriped = false,\n\tclassName = ''\n}: ProgressBarProps) {\n\tconst percentage = Math.min(Math.max((value / max) * 100, 0), 100)\n\tconst displayLabel = label || `${Math.round(percentage)}%`\n\n\treturn (\n\t\t<div className={`${styles.container} ${className}`}>\n\t\t\t<div className={`${styles.progressBar} ${styles[size]}`}>\n\t\t\t\t<div\n\t\t\t\t\tclassName={`${styles.fill} ${styles[variant]} ${striped ? styles.striped : ''} ${animated ? styles.animated : ''}`}\n\t\t\t\t\tstyle={{ width: `${percentage}%` }}\n\t\t\t\t>\n\t\t\t\t\t{showLabel && <span className={styles.label}>{displayLabel}</span>}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport interface RadioButtonProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {\n\tlabel?: string\n\tvalue: string\n\tname: string\n\tchecked?: boolean\n\tdisabled?: boolean\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n}\n\nexport function RadioButton({ label, value, name, checked = false, disabled = false, onChange, className = '', ...props }: RadioButtonProps) {\n\treturn (\n\t\t<label className={`${styles.radioButton} ${disabled ? styles.disabled : ''} ${className}`}>\n\t\t\t<input type=\"radio\" name={name} value={value} checked={checked} disabled={disabled} onChange={onChange} className={styles.input} {...props} />\n\t\t\t<span className={styles.radio}></span>\n\t\t\t{label && <span className={styles.label}>{label}</span>}\n\t\t</label>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport interface RangeInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {\n\tlabel?: string\n\tmin?: number\n\tmax?: number\n\tstep?: number\n\tvalue?: number\n\tshowValue?: boolean\n\tshowMinMax?: boolean\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n}\n\nexport function RangeInput({\n\tlabel,\n\tmin = 0,\n\tmax = 100,\n\tstep = 1,\n\tvalue = 50,\n\tshowValue = false,\n\tshowMinMax = false,\n\tonChange,\n\tclassName = '',\n\tdisabled = false,\n\t...props\n}: RangeInputProps) {\n\tconst percentage = ((value - min) / (max - min)) * 100\n\n\treturn (\n\t\t<div className={`${styles.container} ${className}`}>\n\t\t\t{label && <label className={styles.label}>{label}</label>}\n\t\t\t<div className={styles.rangeWrapper}>\n\t\t\t\t{showMinMax && <span className={styles.minMax}>{min}</span>}\n\t\t\t\t<div className={styles.inputWrapper}>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"range\"\n\t\t\t\t\t\tmin={min}\n\t\t\t\t\t\tmax={max}\n\t\t\t\t\t\tstep={step}\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tclassName={`${styles.input} ${disabled ? styles.disabled : ''}`}\n\t\t\t\t\t\tstyle={{ '--percentage': `${percentage}%` } as React.CSSProperties}\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{showMinMax && <span className={styles.minMax}>{max}</span>}\n\t\t\t</div>\n\t\t\t{showValue && <span className={styles.value}>{value}</span>}\n\t\t</div>\n\t)\n}\n","import React, { useState, useRef, useEffect } from 'react'\nimport styles from './styles.module.scss'\n\nexport interface RichSelectOption {\n\tlabel: string\n\tvalue: string\n\tdescription?: string\n\ticon?: React.ReactNode\n\tdisabled?: boolean\n}\n\nexport interface RichSelectProps {\n\toptions: RichSelectOption[]\n\tvalue?: string\n\tonChange?: (value: string) => void\n\tplaceholder?: string\n\tdisabled?: boolean\n\tsearchable?: boolean\n\tclassName?: string\n}\n\nexport function RichSelect({\n\toptions,\n\tvalue,\n\tonChange,\n\tplaceholder = 'Select an option',\n\tdisabled = false,\n\tsearchable = false,\n\tclassName = ''\n}: RichSelectProps) {\n\tconst [isOpen, setIsOpen] = useState(false)\n\tconst [searchQuery, setSearchQuery] = useState('')\n\tconst selectRef = useRef<HTMLDivElement>(null)\n\n\tuseEffect(() => {\n\t\tconst handleClickOutside = (event: MouseEvent) => {\n\t\t\tif (selectRef.current && !selectRef.current.contains(event.target as Node)) {\n\t\t\t\tsetIsOpen(false)\n\t\t\t\tsetSearchQuery('')\n\t\t\t}\n\t\t}\n\n\t\tdocument.addEventListener('mousedown', handleClickOutside)\n\t\treturn () => document.removeEventListener('mousedown', handleClickOutside)\n\t}, [])\n\n\tconst handleSelect = (optionValue: string) => {\n\t\tif (disabled) return\n\t\tonChange?.(optionValue)\n\t\tsetIsOpen(false)\n\t\tsetSearchQuery('')\n\t}\n\n\tconst selectedOption = options.find((opt) => opt.value === value)\n\tconst filteredOptions = searchable ? options.filter((opt) => opt.label.toLowerCase().includes(searchQuery.toLowerCase())) : options\n\n\treturn (\n\t\t<div className={`${styles.richSelect} ${className}`} ref={selectRef}>\n\t\t\t<button\n\t\t\t\tclassName={`${styles.trigger} ${disabled ? styles.disabled : ''}`}\n\t\t\t\tonClick={() => !disabled && setIsOpen(!isOpen)}\n\t\t\t\tdisabled={disabled}\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t{selectedOption ? (\n\t\t\t\t\t<div className={styles.selectedContent}>\n\t\t\t\t\t\t{selectedOption.icon && <span className={styles.icon}>{selectedOption.icon}</span>}\n\t\t\t\t\t\t<div className={styles.textContent}>\n\t\t\t\t\t\t\t<span className={styles.label}>{selectedOption.label}</span>\n\t\t\t\t\t\t\t{selectedOption.description && <span className={styles.description}>{selectedOption.description}</span>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<span className={styles.placeholder}>{placeholder}</span>\n\t\t\t\t)}\n\t\t\t\t<span className={`${styles.arrow} ${isOpen ? styles.open : ''}`}>▼</span>\n\t\t\t</button>\n\t\t\t{isOpen && (\n\t\t\t\t<div className={styles.menu}>\n\t\t\t\t\t{searchable && (\n\t\t\t\t\t\t<div className={styles.searchWrapper}>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\tclassName={styles.searchInput}\n\t\t\t\t\t\t\t\tplaceholder=\"Search...\"\n\t\t\t\t\t\t\t\tvalue={searchQuery}\n\t\t\t\t\t\t\t\tonChange={(e) => setSearchQuery(e.target.value)}\n\t\t\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div className={styles.optionsList}>\n\t\t\t\t\t\t{filteredOptions.map((option) => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\t\t\tclassName={`${styles.option} ${option.value === value ? styles.active : ''} ${option.disabled ? styles.optionDisabled : ''}`}\n\t\t\t\t\t\t\t\tonClick={() => !option.disabled && handleSelect(option.value)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{option.icon && <span className={styles.icon}>{option.icon}</span>}\n\t\t\t\t\t\t\t\t<div className={styles.textContent}>\n\t\t\t\t\t\t\t\t\t<span className={styles.label}>{option.label}</span>\n\t\t\t\t\t\t\t\t\t{option.description && <span className={styles.description}>{option.description}</span>}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{filteredOptions.length === 0 && <div className={styles.noResults}>No results found</div>}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n","import React, { useEffect } from 'react'\nimport styles from './styles.module.scss'\n\nexport type SidePanelPosition = 'left' | 'right'\nexport type SidePanelSize = 'sm' | 'md' | 'lg'\n\nexport interface SidePanelProps {\n\tisOpen: boolean\n\tonClose: () => void\n\ttitle?: string\n\tchildren: React.ReactNode\n\tfooter?: React.ReactNode\n\tposition?: SidePanelPosition\n\tsize?: SidePanelSize\n\tcloseOnOverlayClick?: boolean\n\tshowCloseButton?: boolean\n\tclassName?: string\n}\n\nexport function SidePanel({\n\tisOpen,\n\tonClose,\n\ttitle,\n\tchildren,\n\tfooter,\n\tposition = 'right',\n\tsize = 'md',\n\tcloseOnOverlayClick = true,\n\tshowCloseButton = true,\n\tclassName = ''\n}: SidePanelProps) {\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\tdocument.body.style.overflow = 'hidden'\n\t\t} else {\n\t\t\tdocument.body.style.overflow = ''\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.style.overflow = ''\n\t\t}\n\t}, [isOpen])\n\n\tuseEffect(() => {\n\t\tconst handleEscape = (e: KeyboardEvent) => {\n\t\t\tif (e.key === 'Escape' && isOpen) {\n\t\t\t\tonClose()\n\t\t\t}\n\t\t}\n\t\tdocument.addEventListener('keydown', handleEscape)\n\t\treturn () => document.removeEventListener('keydown', handleEscape)\n\t}, [isOpen, onClose])\n\n\tif (!isOpen) return null\n\n\treturn (\n\t\t<div className={styles.overlay} onClick={closeOnOverlayClick ? onClose : undefined}>\n\t\t\t<div className={`${styles.sidePanel} ${styles[position]} ${styles[size]} ${className}`} onClick={(e) => e.stopPropagation()}>\n\t\t\t\t{(title || showCloseButton) && (\n\t\t\t\t\t<div className={styles.header}>\n\t\t\t\t\t\t{title && <h2 className={styles.title}>{title}</h2>}\n\t\t\t\t\t\t{showCloseButton && (\n\t\t\t\t\t\t\t<button className={styles.closeButton} onClick={onClose} type=\"button\">\n\t\t\t\t\t\t\t\t×\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<div className={styles.content}>{children}</div>\n\t\t\t\t{footer && <div className={styles.footer}>{footer}</div>}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n","import React, { useState, useRef, useEffect } from 'react'\nimport styles from './styles.module.scss'\n\nexport type SignpostPosition = 'top' | 'bottom' | 'left' | 'right'\n\nexport interface SignpostProps {\n\ttrigger: React.ReactNode\n\tchildren: React.ReactNode\n\tposition?: SignpostPosition\n\tclassName?: string\n}\n\nexport function Signpost({ trigger, children, position = 'top', className = '' }: SignpostProps) {\n\tconst [isOpen, setIsOpen] = useState(false)\n\tconst signpostRef = useRef<HTMLDivElement>(null)\n\n\tuseEffect(() => {\n\t\tconst handleClickOutside = (event: MouseEvent) => {\n\t\t\tif (signpostRef.current && !signpostRef.current.contains(event.target as Node)) {\n\t\t\t\tsetIsOpen(false)\n\t\t\t}\n\t\t}\n\n\t\tif (isOpen) {\n\t\t\tdocument.addEventListener('mousedown', handleClickOutside)\n\t\t}\n\t\treturn () => document.removeEventListener('mousedown', handleClickOutside)\n\t}, [isOpen])\n\n\treturn (\n\t\t<div className={`${styles.signpost} ${className}`} ref={signpostRef}>\n\t\t\t<div className={styles.trigger} onClick={() => setIsOpen(!isOpen)}>\n\t\t\t\t{trigger}\n\t\t\t</div>\n\t\t\t{isOpen && (\n\t\t\t\t<div className={`${styles.content} ${styles[position]}`}>\n\t\t\t\t\t<div className={styles.arrow}></div>\n\t\t\t\t\t<div className={styles.inner}>{children}</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type SpinnerSize = 'sm' | 'md' | 'lg'\nexport type SpinnerVariant = 'default' | 'primary' | 'secondary'\n\nexport interface SpinnerProps {\n\tsize?: SpinnerSize\n\tvariant?: SpinnerVariant\n\tclassName?: string\n\tlabel?: string\n}\n\nexport function Spinner({ size = 'md', variant = 'default', className = '', label }: SpinnerProps) {\n\treturn (\n\t\t<div className={`${styles.spinnerWrapper} ${className}`}>\n\t\t\t<div className={`${styles.spinner} ${styles[size]} ${styles[variant]}`} role=\"status\" aria-label={label || 'Loading'}>\n\t\t\t\t<div className={styles.circle}></div>\n\t\t\t</div>\n\t\t\t{label && <span className={styles.label}>{label}</span>}\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type StackViewDirection = 'horizontal' | 'vertical'\nexport type StackViewAlign = 'start' | 'center' | 'end' | 'stretch'\nexport type StackViewJustify = 'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'\nexport type StackViewSpacing = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n\nexport interface StackViewProps {\n\tchildren: React.ReactNode\n\tdirection?: StackViewDirection\n\talign?: StackViewAlign\n\tjustify?: StackViewJustify\n\tspacing?: StackViewSpacing\n\twrap?: boolean\n\tclassName?: string\n\tstyle?: React.CSSProperties\n}\n\nexport function StackView({\n\tchildren,\n\tdirection = 'horizontal',\n\talign = 'start',\n\tjustify = 'start',\n\tspacing = 'md',\n\twrap = false,\n\tclassName = '',\n\tstyle\n}: StackViewProps) {\n\treturn (\n\t\t<div\n\t\t\tclassName={`${styles.stackView} ${styles[direction]} ${styles[`align-${align}`]} ${styles[`justify-${justify}`]} ${styles[`spacing-${spacing}`]} ${wrap ? styles.wrap : ''} ${className}`}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type StepperOrientation = 'horizontal' | 'vertical'\n\nexport interface StepperStep {\n\tlabel: string\n\tdescription?: string\n\ticon?: React.ReactNode\n}\n\nexport interface StepperProps {\n\tsteps: StepperStep[]\n\tcurrentStep: number\n\torientation?: StepperOrientation\n\tonStepClick?: (index: number) => void\n\tclassName?: string\n}\n\nexport function Stepper({ steps, currentStep, orientation = 'horizontal', onStepClick, className = '' }: StepperProps) {\n\treturn (\n\t\t<div className={`${styles.stepper} ${styles[orientation]} ${className}`}>\n\t\t\t{steps.map((step, index) => {\n\t\t\t\tconst isCompleted = index < currentStep\n\t\t\t\tconst isCurrent = index === currentStep\n\t\t\t\tconst isClickable = onStepClick && (isCompleted || isCurrent)\n\n\t\t\t\treturn (\n\t\t\t\t\t<React.Fragment key={index}>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={`${styles.step} ${isCompleted ? styles.completed : ''} ${isCurrent ? styles.current : ''} ${isClickable ? styles.clickable : ''}`}\n\t\t\t\t\t\t\tonClick={() => isClickable && onStepClick(index)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className={styles.stepIndicator}>\n\t\t\t\t\t\t\t\t{isCompleted ? (\n\t\t\t\t\t\t\t\t\t<span className={styles.checkmark}>✓</span>\n\t\t\t\t\t\t\t\t) : step.icon ? (\n\t\t\t\t\t\t\t\t\tstep.icon\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<span className={styles.stepNumber}>{index + 1}</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className={styles.stepContent}>\n\t\t\t\t\t\t\t\t<div className={styles.stepLabel}>{step.label}</div>\n\t\t\t\t\t\t\t\t{step.description && <div className={styles.stepDescription}>{step.description}</div>}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{index < steps.length - 1 && <div className={`${styles.connector} ${isCompleted ? styles.completed : ''}`}></div>}\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t)\n\t\t\t})}\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport interface TableColumn<T = any> {\n\tkey: string\n\theader: string\n\twidth?: string\n\trender?: (value: any, row: T) => React.ReactNode\n}\n\nexport interface TableProps<T = any> {\n\tcolumns: TableColumn<T>[]\n\tdata: T[]\n\tstriped?: boolean\n\thoverable?: boolean\n\tbordered?: boolean\n\tcompact?: boolean\n\tonRowClick?: (row: T) => void\n\tclassName?: string\n}\n\nexport function Table<T = any>({\n\tcolumns,\n\tdata,\n\tstriped = false,\n\thoverable = false,\n\tbordered = false,\n\tcompact = false,\n\tonRowClick,\n\tclassName = ''\n}: TableProps<T>) {\n\treturn (\n\t\t<div className={`${styles.tableWrapper} ${className}`}>\n\t\t\t<table\n\t\t\t\tclassName={`${styles.table} ${striped ? styles.striped : ''} ${hoverable ? styles.hoverable : ''} ${bordered ? styles.bordered : ''} ${compact ? styles.compact : ''}`}\n\t\t\t>\n\t\t\t\t<thead className={styles.thead}>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t{columns.map((column) => (\n\t\t\t\t\t\t\t<th key={column.key} className={styles.th} style={{ width: column.width }}>\n\t\t\t\t\t\t\t\t{column.header}\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody className={styles.tbody}>\n\t\t\t\t\t{data.map((row, index) => (\n\t\t\t\t\t\t<tr key={index} className={`${styles.tr} ${onRowClick ? styles.clickable : ''}`} onClick={() => onRowClick?.(row)}>\n\t\t\t\t\t\t\t{columns.map((column) => (\n\t\t\t\t\t\t\t\t<td key={column.key} className={styles.td}>\n\t\t\t\t\t\t\t\t\t{column.render ? column.render(row[column.key as keyof T], row) : String(row[column.key as keyof T] ?? '')}\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t))}\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t{data.length === 0 && <div className={styles.empty}>No data available</div>}\n\t\t</div>\n\t)\n}\n","import React, { useState } from 'react'\nimport styles from './styles.module.scss'\n\nexport interface TabItem {\n\tid: string\n\tlabel: string\n\tcontent: React.ReactNode\n\tdisabled?: boolean\n\ticon?: React.ReactNode\n}\n\nexport type TabsVariant = 'default' | 'pills' | 'underline'\n\nexport interface TabsProps {\n\titems: TabItem[]\n\tdefaultActiveId?: string\n\tvariant?: TabsVariant\n\tfullWidth?: boolean\n\tonChange?: (id: string) => void\n\tclassName?: string\n}\n\nexport function Tabs({ items, defaultActiveId, variant = 'default', fullWidth = false, onChange, className = '' }: TabsProps) {\n\tconst [activeId, setActiveId] = useState(defaultActiveId || items[0]?.id)\n\n\tconst handleTabClick = (id: string, disabled?: boolean) => {\n\t\tif (disabled) return\n\t\tsetActiveId(id)\n\t\tonChange?.(id)\n\t}\n\n\tconst activeItem = items.find((item) => item.id === activeId)\n\n\treturn (\n\t\t<div className={`${styles.tabsContainer} ${className}`}>\n\t\t\t<div className={`${styles.tabsList} ${styles[variant]} ${fullWidth ? styles.fullWidth : ''}`} role=\"tablist\">\n\t\t\t\t{items.map((item) => (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\taria-selected={item.id === activeId}\n\t\t\t\t\t\taria-disabled={item.disabled}\n\t\t\t\t\t\tclassName={`${styles.tab} ${item.id === activeId ? styles.active : ''} ${item.disabled ? styles.disabled : ''}`}\n\t\t\t\t\t\tonClick={() => handleTabClick(item.id, item.disabled)}\n\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t{item.icon && <span className={styles.icon}>{item.icon}</span>}\n\t\t\t\t\t\t<span>{item.label}</span>\n\t\t\t\t\t</button>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t<div className={styles.tabContent} role=\"tabpanel\">\n\t\t\t\t{activeItem?.content}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type TextareaSize = 'sm' | 'md' | 'lg'\nexport type TextareaVariant = 'default' | 'success' | 'error'\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n\tlabel?: string\n\thelperText?: string\n\terror?: string\n\tsize?: TextareaSize\n\tvariant?: TextareaVariant\n\tfullWidth?: boolean\n\tresize?: 'none' | 'vertical' | 'horizontal' | 'both'\n}\n\nexport const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n\t({ label, helperText, error, size = 'md', variant = 'default', fullWidth = false, resize = 'vertical', className = '', disabled, ...rest }, ref) => {\n\t\tconst computedVariant = error ? 'error' : variant\n\n\t\treturn (\n\t\t\t<div className={`${styles.textareaWrapper} ${fullWidth ? styles.fullWidth : ''} ${className}`}>\n\t\t\t\t{label && <label className={styles.label}>{label}</label>}\n\t\t\t\t<textarea\n\t\t\t\t\tref={ref}\n\t\t\t\t\tclassName={`${styles.textarea} ${styles[size]} ${styles[computedVariant]} ${styles[`resize-${resize}`]} ${disabled ? styles.disabled : ''}`}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t\t{error && <span className={styles.errorText}>{error}</span>}\n\t\t\t\t{!error && helperText && <span className={styles.helperText}>{helperText}</span>}\n\t\t\t</div>\n\t\t)\n\t}\n)\n\nTextarea.displayName = 'Textarea'\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport interface TimelineItem {\n\tid: string\n\ttitle: string\n\tdescription?: string\n\tdate?: string\n\ticon?: React.ReactNode\n\tcolor?: 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info'\n}\n\nexport type TimelineOrientation = 'vertical' | 'horizontal'\n\nexport interface TimelineProps {\n\titems: TimelineItem[]\n\torientation?: TimelineOrientation\n\tclassName?: string\n}\n\nexport function Timeline({ items, orientation = 'vertical', className = '' }: TimelineProps) {\n\treturn (\n\t\t<div className={`${styles.timeline} ${styles[orientation]} ${className}`}>\n\t\t\t{items.map((item, index) => (\n\t\t\t\t<div key={item.id} className={styles.timelineItem}>\n\t\t\t\t\t<div className={`${styles.timelineMarker} ${item.color ? styles[item.color] : styles.default}`}>\n\t\t\t\t\t\t{item.icon ? <span className={styles.icon}>{item.icon}</span> : <span className={styles.dot}></span>}\n\t\t\t\t\t</div>\n\t\t\t\t\t{index < items.length - 1 && <div className={`${styles.timelineConnector} ${item.color ? styles[item.color] : styles.default}`}></div>}\n\t\t\t\t\t<div className={styles.timelineContent}>\n\t\t\t\t\t\t{item.date && <span className={styles.date}>{item.date}</span>}\n\t\t\t\t\t\t<h4 className={styles.title}>{item.title}</h4>\n\t\t\t\t\t\t{item.description && <p className={styles.description}>{item.description}</p>}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</div>\n\t)\n}\n","import React from 'react'\nimport styles from './styles.module.scss'\n\nexport type ToggleSwitchSize = 'sm' | 'md' | 'lg'\n\nexport interface ToggleSwitchProps {\n\tchecked?: boolean\n\tdefaultChecked?: boolean\n\tonChange?: (checked: boolean) => void\n\tlabel?: string\n\tdisabled?: boolean\n\tsize?: ToggleSwitchSize\n\tclassName?: string\n}\n\nexport function ToggleSwitch({ checked, defaultChecked = false, onChange, label, disabled = false, size = 'md', className = '' }: ToggleSwitchProps) {\n\tconst [internalChecked, setInternalChecked] = React.useState(defaultChecked)\n\tconst isControlled = checked !== undefined\n\tconst isChecked = isControlled ? checked : internalChecked\n\n\tconst handleChange = () => {\n\t\tif (disabled) return\n\n\t\tconst newChecked = !isChecked\n\t\tif (!isControlled) {\n\t\t\tsetInternalChecked(newChecked)\n\t\t}\n\t\tonChange?.(newChecked)\n\t}\n\n\treturn (\n\t\t<label className={`${styles.toggleSwitch} ${disabled ? styles.disabled : ''} ${className}`}>\n\t\t\t<input type=\"checkbox\" checked={isChecked} onChange={handleChange} disabled={disabled} className={styles.input} />\n\t\t\t<span className={`${styles.switch} ${styles[size]} ${isChecked ? styles.checked : ''}`}>\n\t\t\t\t<span className={styles.slider}></span>\n\t\t\t</span>\n\t\t\t{label && <span className={styles.label}>{label}</span>}\n\t\t</label>\n\t)\n}\n","import React, { useState, useRef, useEffect } from 'react'\nimport styles from './styles.module.scss'\n\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right'\n\nexport interface TooltipProps {\n\tchildren: React.ReactElement\n\tcontent: React.ReactNode\n\tposition?: TooltipPosition\n\tdelay?: number\n\tclassName?: string\n}\n\nexport function Tooltip({ children, content, position = 'top', delay = 200, className = '' }: TooltipProps) {\n\tconst [isVisible, setIsVisible] = useState(false)\n\tconst timeoutRef = useRef<NodeJS.Timeout>()\n\tconst triggerRef = useRef<HTMLDivElement>(null)\n\n\tconst showTooltip = () => {\n\t\ttimeoutRef.current = setTimeout(() => {\n\t\t\tsetIsVisible(true)\n\t\t}, delay)\n\t}\n\n\tconst hideTooltip = () => {\n\t\tif (timeoutRef.current) {\n\t\t\tclearTimeout(timeoutRef.current)\n\t\t}\n\t\tsetIsVisible(false)\n\t}\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (timeoutRef.current) {\n\t\t\t\tclearTimeout(timeoutRef.current)\n\t\t\t}\n\t\t}\n\t}, [])\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`${styles.tooltipWrapper} ${className}`}\n\t\t\tref={triggerRef}\n\t\t\tonMouseEnter={showTooltip}\n\t\t\tonMouseLeave={hideTooltip}\n\t\t\tonFocus={showTooltip}\n\t\t\tonBlur={hideTooltip}\n\t\t>\n\t\t\t{children}\n\t\t\t{isVisible && (\n\t\t\t\t<div className={`${styles.tooltip} ${styles[position]}`} role=\"tooltip\">\n\t\t\t\t\t<div className={styles.tooltipContent}>{content}</div>\n\t\t\t\t\t<div className={styles.tooltipArrow}></div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n","import React, { createContext, useContext, useState, useCallback, useEffect } from 'react'\nimport styles from './styles.module.scss'\n\nexport type ToastVariant = 'info' | 'success' | 'warning' | 'error'\nexport type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'\n\nexport interface ToastOptions {\n\tvariant?: ToastVariant\n\tduration?: number\n\tdismissible?: boolean\n}\n\ninterface ToastItem extends ToastOptions {\n\tid: string\n\tmessage: string\n}\n\ninterface ToastContextValue {\n\tshowToast: (message: string, options?: ToastOptions) => void\n}\n\nconst ToastContext = createContext<ToastContextValue | undefined>(undefined)\n\nexport interface ToastProviderProps {\n\tchildren: React.ReactNode\n\tposition?: ToastPosition\n\tmaxToasts?: number\n}\n\nexport function ToastProvider({ children, position = 'top-right', maxToasts = 5 }: ToastProviderProps) {\n\tconst [toasts, setToasts] = useState<ToastItem[]>([])\n\n\tconst showToast = useCallback(\n\t\t(message: string, options: ToastOptions = {}) => {\n\t\t\tconst id = Math.random().toString(36).substring(2, 9)\n\t\t\tconst newToast: ToastItem = {\n\t\t\t\tid,\n\t\t\t\tmessage,\n\t\t\t\tvariant: options.variant || 'info',\n\t\t\t\tduration: options.duration ?? 5000,\n\t\t\t\tdismissible: options.dismissible ?? true\n\t\t\t}\n\n\t\t\tsetToasts((prev) => {\n\t\t\t\tconst updated = [...prev, newToast]\n\t\t\t\treturn updated.slice(-maxToasts)\n\t\t\t})\n\n\t\t\tif (newToast.duration && newToast.duration > 0) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tremoveToast(id)\n\t\t\t\t}, newToast.duration)\n\t\t\t}\n\t\t},\n\t\t[maxToasts]\n\t)\n\n\tconst removeToast = useCallback((id: string) => {\n\t\tsetToasts((prev) => prev.filter((toast) => toast.id !== id))\n\t}, [])\n\n\tconst getPositionClasses = () => {\n\t\tconst positionMap: Record<ToastPosition, string> = {\n\t\t\t'top-left': styles.topLeft,\n\t\t\t'top-center': styles.topCenter,\n\t\t\t'top-right': styles.topRight,\n\t\t\t'bottom-left': styles.bottomLeft,\n\t\t\t'bottom-center': styles.bottomCenter,\n\t\t\t'bottom-right': styles.bottomRight\n\t\t}\n\t\treturn positionMap[position]\n\t}\n\n\tconst getIcon = (variant: ToastVariant) => {\n\t\tconst icons = {\n\t\t\tinfo: 'ℹ',\n\t\t\tsuccess: '✓',\n\t\t\twarning: '⚠',\n\t\t\terror: '✕'\n\t\t}\n\t\treturn icons[variant]\n\t}\n\n\treturn (\n\t\t<ToastContext.Provider value={{ showToast }}>\n\t\t\t{children}\n\t\t\t<div className={`${styles.toastContainer} ${getPositionClasses()}`}>\n\t\t\t\t{toasts.map((toast) => (\n\t\t\t\t\t<div key={toast.id} className={`${styles.toast} ${styles[toast.variant || 'info']}`} role=\"alert\" aria-live=\"polite\">\n\t\t\t\t\t\t<div className={styles.icon}>{getIcon(toast.variant || 'info')}</div>\n\t\t\t\t\t\t<div className={styles.message}>{toast.message}</div>\n\t\t\t\t\t\t{toast.dismissible && (\n\t\t\t\t\t\t\t<button className={styles.closeButton} onClick={() => removeToast(toast.id)} aria-label=\"Close\">\n\t\t\t\t\t\t\t\t✕\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</ToastContext.Provider>\n\t)\n}\n\nexport function useToast() {\n\tconst context = useContext(ToastContext)\n\tif (!context) {\n\t\tthrow new Error('useToast must be used within a ToastProvider')\n\t}\n\treturn context\n}\n","import React, { useState } from 'react'\nimport styles from './styles.module.scss'\n\nexport interface TreeNode {\n\tid: string\n\tlabel: string\n\ticon?: React.ReactNode\n\tchildren?: TreeNode[]\n\tdisabled?: boolean\n}\n\nexport interface TreeViewProps {\n\tdata: TreeNode[]\n\tdefaultExpandedIds?: string[]\n\tonNodeClick?: (node: TreeNode) => void\n\tclassName?: string\n}\n\ninterface TreeNodeItemProps {\n\tnode: TreeNode\n\tlevel: number\n\texpandedIds: Set<string>\n\tonToggle: (id: string) => void\n\tonNodeClick?: (node: TreeNode) => void\n}\n\nfunction TreeNodeItem({ node, level, expandedIds, onToggle, onNodeClick }: TreeNodeItemProps) {\n\tconst hasChildren = node.children && node.children.length > 0\n\tconst isExpanded = expandedIds.has(node.id)\n\n\tconst handleClick = () => {\n\t\tif (node.disabled) return\n\t\tif (hasChildren) {\n\t\t\tonToggle(node.id)\n\t\t}\n\t\tonNodeClick?.(node)\n\t}\n\n\treturn (\n\t\t<div className={styles.treeNodeWrapper}>\n\t\t\t<div className={`${styles.treeNode} ${node.disabled ? styles.disabled : ''}`} style={{ paddingLeft: `${level * 1.5}rem` }} onClick={handleClick}>\n\t\t\t\t{hasChildren && <span className={`${styles.expandIcon} ${isExpanded ? styles.expanded : ''}`}>▶</span>}\n\t\t\t\t{!hasChildren && <span className={styles.spacer}></span>}\n\t\t\t\t{node.icon && <span className={styles.icon}>{node.icon}</span>}\n\t\t\t\t<span className={styles.label}>{node.label}</span>\n\t\t\t</div>\n\t\t\t{hasChildren && isExpanded && (\n\t\t\t\t<div className={styles.children}>\n\t\t\t\t\t{node.children!.map((child) => (\n\t\t\t\t\t\t<TreeNodeItem key={child.id} node={child} level={level + 1} expandedIds={expandedIds} onToggle={onToggle} onNodeClick={onNodeClick} />\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nexport function TreeView({ data, defaultExpandedIds = [], onNodeClick, className = '' }: TreeViewProps) {\n\tconst [expandedIds, setExpandedIds] = useState<Set<string>>(new Set(defaultExpandedIds))\n\n\tconst handleToggle = (id: string) => {\n\t\tsetExpandedIds((prev) => {\n\t\t\tconst next = new Set(prev)\n\t\t\tif (next.has(id)) {\n\t\t\t\tnext.delete(id)\n\t\t\t} else {\n\t\t\t\tnext.add(id)\n\t\t\t}\n\t\t\treturn next\n\t\t})\n\t}\n\n\treturn (\n\t\t<div className={`${styles.treeView} ${className}`}>\n\t\t\t{data.map((node) => (\n\t\t\t\t<TreeNodeItem key={node.id} node={node} level={0} expandedIds={expandedIds} onToggle={handleToggle} onNodeClick={onNodeClick} />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n","import React, { useState } from 'react'\nimport styles from './styles.module.scss'\n\nexport interface NavItem {\n\tid: string\n\tlabel: string\n\ticon?: React.ReactNode\n\thref?: string\n\tonClick?: () => void\n\tchildren?: NavItem[]\n\tdisabled?: boolean\n\tbadge?: React.ReactNode\n\tmegaMenu?: boolean\n}\n\nexport type NavOrientation = 'vertical' | 'horizontal'\n\nexport interface VerticalNavProps {\n\titems: NavItem[]\n\torientation?: NavOrientation\n\tdefaultExpandedIds?: string[]\n\tonItemClick?: (item: NavItem) => void\n\tclassName?: string\n\tcollapsed?: boolean\n}\n\ninterface NavItemComponentProps {\n\titem: NavItem\n\tlevel: number\n\texpandedIds: Set<string>\n\tonToggle: (id: string) => void\n\tonItemClick?: (item: NavItem) => void\n\torientation: NavOrientation\n\tcollapsed?: boolean\n}\n\nfunction NavItemComponent({ item, level, expandedIds, onToggle, onItemClick, orientation, collapsed }: NavItemComponentProps) {\n\tconst hasChildren = item.children && item.children.length > 0\n\tconst isExpanded = expandedIds.has(item.id)\n\tconst isMegaMenu = item.megaMenu && hasChildren\n\n\tconst handleClick = (e: React.MouseEvent) => {\n\t\tif (item.disabled) return\n\n\t\tif (hasChildren && orientation === 'vertical') {\n\t\t\te.preventDefault()\n\t\t\tonToggle(item.id)\n\t\t}\n\n\t\tif (item.onClick) {\n\t\t\titem.onClick()\n\t\t}\n\n\t\tonItemClick?.(item)\n\t}\n\n\tconst renderContent = () => (\n\t\t<>\n\t\t\t{item.icon && <span className={styles.icon}>{item.icon}</span>}\n\t\t\t{!collapsed && <span className={styles.label}>{item.label}</span>}\n\t\t\t{!collapsed && item.badge && <span className={styles.badge}>{item.badge}</span>}\n\t\t\t{!collapsed && hasChildren && orientation === 'vertical' && <span className={`${styles.expandIcon} ${isExpanded ? styles.expanded : ''}`}>▶</span>}\n\t\t\t{!collapsed && hasChildren && orientation === 'horizontal' && <span className={styles.dropdownIcon}>▼</span>}\n\t\t</>\n\t)\n\n\tconst content = item.href ? (\n\t\t<a href={item.href} className={`${styles.navItem} ${item.disabled ? styles.disabled : ''} ${level > 0 ? styles.nested : ''}`} onClick={handleClick}>\n\t\t\t{renderContent()}\n\t\t</a>\n\t) : (\n\t\t<button type=\"button\" className={`${styles.navItem} ${item.disabled ? styles.disabled : ''} ${level > 0 ? styles.nested : ''}`} onClick={handleClick}>\n\t\t\t{renderContent()}\n\t\t</button>\n\t)\n\n\treturn (\n\t\t<div className={`${styles.navItemWrapper} ${isMegaMenu ? styles.megaMenuWrapper : ''}`}>\n\t\t\t{content}\n\t\t\t{hasChildren && (\n\t\t\t\t<>\n\t\t\t\t\t{orientation === 'vertical' && isExpanded && (\n\t\t\t\t\t\t<div className={styles.children}>\n\t\t\t\t\t\t\t{item.children!.map((child) => (\n\t\t\t\t\t\t\t\t<NavItemComponent\n\t\t\t\t\t\t\t\t\tkey={child.id}\n\t\t\t\t\t\t\t\t\titem={child}\n\t\t\t\t\t\t\t\t\tlevel={level + 1}\n\t\t\t\t\t\t\t\t\texpandedIds={expandedIds}\n\t\t\t\t\t\t\t\t\tonToggle={onToggle}\n\t\t\t\t\t\t\t\t\tonItemClick={onItemClick}\n\t\t\t\t\t\t\t\t\torientation={orientation}\n\t\t\t\t\t\t\t\t\tcollapsed={collapsed}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{orientation === 'horizontal' && (\n\t\t\t\t\t\t<div className={`${styles.dropdown} ${isMegaMenu ? styles.megaMenu : ''}`}>\n\t\t\t\t\t\t\t{isMegaMenu ? (\n\t\t\t\t\t\t\t\t<div className={styles.megaMenuGrid}>\n\t\t\t\t\t\t\t\t\t{item.children!.map((child) => (\n\t\t\t\t\t\t\t\t\t\t<div key={child.id} className={styles.megaMenuColumn}>\n\t\t\t\t\t\t\t\t\t\t\t<NavItemComponent\n\t\t\t\t\t\t\t\t\t\t\t\titem={child}\n\t\t\t\t\t\t\t\t\t\t\t\tlevel={level + 1}\n\t\t\t\t\t\t\t\t\t\t\t\texpandedIds={expandedIds}\n\t\t\t\t\t\t\t\t\t\t\t\tonToggle={onToggle}\n\t\t\t\t\t\t\t\t\t\t\t\tonItemClick={onItemClick}\n\t\t\t\t\t\t\t\t\t\t\t\torientation={orientation}\n\t\t\t\t\t\t\t\t\t\t\t\tcollapsed={collapsed}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\titem.children!.map((child) => (\n\t\t\t\t\t\t\t\t\t<NavItemComponent\n\t\t\t\t\t\t\t\t\t\tkey={child.id}\n\t\t\t\t\t\t\t\t\t\titem={child}\n\t\t\t\t\t\t\t\t\t\tlevel={level + 1}\n\t\t\t\t\t\t\t\t\t\texpandedIds={expandedIds}\n\t\t\t\t\t\t\t\t\t\tonToggle={onToggle}\n\t\t\t\t\t\t\t\t\t\tonItemClick={onItemClick}\n\t\t\t\t\t\t\t\t\t\torientation={orientation}\n\t\t\t\t\t\t\t\t\t\tcollapsed={collapsed}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nexport function VerticalNav({ items, orientation = 'vertical', defaultExpandedIds = [], onItemClick, className = '', collapsed = false }: VerticalNavProps) {\n\tconst [expandedIds, setExpandedIds] = useState<Set<string>>(new Set(defaultExpandedIds))\n\n\tconst handleToggle = (id: string) => {\n\t\tsetExpandedIds((prev) => {\n\t\t\tconst next = new Set(prev)\n\t\t\tif (next.has(id)) {\n\t\t\t\tnext.delete(id)\n\t\t\t} else {\n\t\t\t\tnext.add(id)\n\t\t\t}\n\t\t\treturn next\n\t\t})\n\t}\n\n\treturn (\n\t\t<nav className={`${styles.nav} ${styles[orientation]} ${collapsed ? styles.collapsed : ''} ${className}`}>\n\t\t\t{items.map((item) => (\n\t\t\t\t<NavItemComponent\n\t\t\t\t\tkey={item.id}\n\t\t\t\t\titem={item}\n\t\t\t\t\tlevel={0}\n\t\t\t\t\texpandedIds={expandedIds}\n\t\t\t\t\tonToggle={handleToggle}\n\t\t\t\t\tonItemClick={onItemClick}\n\t\t\t\t\torientation={orientation}\n\t\t\t\t\tcollapsed={collapsed}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</nav>\n\t)\n}\n"],"names":["Accordion","items","allowMultiple","defaultOpenIds","className","openIds","setOpenIds","useState","toggleItem","id","prev","newSet","jsx","styles","item","AccordionItem","isOpen","onToggle","jsxs","Alert","variant","title","message","dismissible","onDismiss","icons","Avatar","src","alt","initials","size","status","getInitials","words","Badge","children","dot","Breadcrumbs","separator","index","isLast","Button","fullWidth","loading","disabled","props","ButtonGroup","orientation","Card","subtitle","footer","image","hoverable","onClick","isClickable","Checkbox","label","indeterminate","checkboxRef","React","Combobox","options","controlledValue","defaultValue","onChange","placeholder","allowCustomValue","filterFunction","inputValue","setInputValue","setIsOpen","highlightedIndex","setHighlightedIndex","inputRef","useRef","listRef","wrapperRef","isControlled","currentValue","filterFunc","option","searchTerm","filteredOptions","useEffect","handleClickOutside","e","highlightedElement","handleInputChange","newValue","handleOptionClick","handleKeyDown","maxIndex","nextIndex","prevIndex","handleInputFocus","selectedOption","opt","displayValue","Datagrid","columns","data","onRowClick","striped","column","row","rowIndex","DatePicker","value","minDate","maxDate","formatDate","handleChange","dateValue","date","year","month","day","DateRangePicker","startValue","setStartValue","endValue","setEndValue","handleStartChange","startDate","endDate","handleEndChange","Divider","dividerClass","Dropdown","selectedValue","setSelectedValue","dropdownRef","event","handleSelect","optionValue","displayText","FilePicker","accept","multiple","maxSize","onUpload","files","setFiles","handleFileSelect","selectedFiles","newFiles","file","fileItem","processFile","updateFileStatus","error","fileName","f","removeFile","getStatusIcon","Header","logo","actions","sticky","Input","forwardRef","helperText","icon","ref","finalVariant","containerClass","inputClass","Label","required","List","dividers","Modal","onClose","closeOnOverlayClick","showCloseButton","handleEscape","Pagination","currentPage","totalPages","onPageChange","showFirstLast","siblingCount","range","start","end","_","i","paginationRange","totalPageNumbers","leftSiblingIndex","rightSiblingIndex","showLeftDots","showRightDots","handlePrevious","handleNext","pageNumber","ProgressBar","max","showLabel","animated","percentage","displayLabel","RadioButton","name","checked","RangeInput","min","step","showValue","showMinMax","RichSelect","searchable","searchQuery","setSearchQuery","selectRef","SidePanel","position","Signpost","trigger","signpostRef","Spinner","StackView","direction","align","justify","spacing","wrap","style","Stepper","steps","currentStep","onStepClick","isCompleted","isCurrent","Table","bordered","compact","Tabs","defaultActiveId","activeId","setActiveId","handleTabClick","activeItem","Textarea","resize","rest","computedVariant","Timeline","ToggleSwitch","defaultChecked","internalChecked","setInternalChecked","isChecked","newChecked","Tooltip","content","delay","isVisible","setIsVisible","timeoutRef","triggerRef","showTooltip","hideTooltip","ToastContext","createContext","ToastProvider","maxToasts","toasts","setToasts","showToast","useCallback","newToast","removeToast","toast","getPositionClasses","getIcon","useToast","context","useContext","TreeNodeItem","node","level","expandedIds","onNodeClick","hasChildren","isExpanded","handleClick","child","TreeView","defaultExpandedIds","setExpandedIds","handleToggle","next","NavItemComponent","onItemClick","collapsed","isMegaMenu","renderContent","Fragment","VerticalNav"],"mappings":"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"}
|
package/dist/ui.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.styles-module__accordion__gf0fR{display:flex;flex-direction:column;gap:.5rem;width:100%}.styles-module__item__KZ8v2{border-radius:.75rem;overflow:hidden;transition:all .3s ease;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.styles-module__item__KZ8v2:hover{background:#ffffff14}.styles-module__header__wApZ8{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:transparent;border:none;cursor:pointer;color:#e0e0e0;font-size:1rem;font-weight:500;text-align:left;transition:all .2s ease}.styles-module__header__wApZ8:hover{color:#fff}.styles-module__title__yCYjK{flex:1}.styles-module__icon__8N04V{font-size:.75rem;transition:transform .3s ease;color:#9ca3af}.styles-module__iconOpen__PXmc8{transform:rotate(180deg)}.styles-module__content__WKJF6{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}.styles-module__contentOpen__l7aJG{max-height:500px}.styles-module__contentInner__Co6a-{padding:0 1.25rem 1rem;color:#b0b0b0;line-height:1.6}.light-mode .styles-module__item__KZ8v2{background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.08)}.light-mode .styles-module__item__KZ8v2:hover{background:#ffffffd9}.light-mode .styles-module__header__wApZ8{color:#374151}.light-mode .styles-module__header__wApZ8:hover{color:#111827}.light-mode .styles-module__icon__8N04V{color:#6b7280}.light-mode .styles-module__contentInner__Co6a-{color:#4b5563}.styles-module__alert__EMa3w{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;border-radius:.75rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid;transition:all .2s ease}.styles-module__icon__7XvtI{font-size:1.25rem;font-weight:700;flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center}.styles-module__content__qU8OK{flex:1}.styles-module__title__Jui7D{font-weight:600;font-size:.95rem;margin-bottom:.25rem}.styles-module__message__cazZX{font-size:.9rem;line-height:1.5}.styles-module__dismissButton__RhF19{background:none;border:none;cursor:pointer;font-size:1.25rem;padding:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s ease;flex-shrink:0;opacity:.7}.styles-module__dismissButton__RhF19:hover{opacity:1;background:#0000001a}.styles-module__info__Rb2nq{background:#3b82f626;border-color:#3b82f64d;color:#93c5fd}.styles-module__info__Rb2nq .styles-module__icon__7XvtI{color:#60a5fa}.styles-module__success__sQGN5{background:#22c55e26;border-color:#22c55e4d;color:#86efac}.styles-module__success__sQGN5 .styles-module__icon__7XvtI{color:#4ade80}.styles-module__warning__Ev8EY{background:#fbbf2426;border-color:#fbbf244d;color:#fcd34d}.styles-module__warning__Ev8EY .styles-module__icon__7XvtI{color:#fbbf24}.styles-module__error__plkoU{background:#ef444426;border-color:#ef44444d;color:#fca5a5}.styles-module__error__plkoU .styles-module__icon__7XvtI{color:#f87171}.light-mode .styles-module__alert__EMa3w{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.light-mode .styles-module__info__Rb2nq{background:#3b82f61f;border-color:#3b82f640;color:#1e40af}.light-mode .styles-module__info__Rb2nq .styles-module__icon__7XvtI{color:#2563eb}.light-mode .styles-module__success__sQGN5{background:#22c55e1f;border-color:#22c55e40;color:#15803d}.light-mode .styles-module__success__sQGN5 .styles-module__icon__7XvtI{color:#16a34a}.light-mode .styles-module__warning__Ev8EY{background:#fbbf241f;border-color:#fbbf2440;color:#a16207}.light-mode .styles-module__warning__Ev8EY .styles-module__icon__7XvtI{color:#ca8a04}.light-mode .styles-module__error__plkoU{background:#ef44441f;border-color:#ef444440;color:#b91c1c}.light-mode .styles-module__error__plkoU .styles-module__icon__7XvtI{color:#dc2626}.light-mode .styles-module__dismissButton__RhF19:hover{background:#0000000d}.styles-module__avatar__xMx8n{position:relative;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:#ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.1);transition:all .2s ease}.styles-module__avatar__xMx8n:hover{border-color:#fff3}.styles-module__image__rl-6T{width:100%;height:100%;object-fit:cover}.styles-module__initials__d0Z0v{font-weight:600;color:#e0e0e0;-webkit-user-select:none;user-select:none}.styles-module__sm__YBcEp{width:2rem;height:2rem}.styles-module__sm__YBcEp .styles-module__initials__d0Z0v{font-size:.75rem}.styles-module__md__4GVi1{width:2.5rem;height:2.5rem}.styles-module__md__4GVi1 .styles-module__initials__d0Z0v{font-size:.875rem}.styles-module__lg__bEtEd{width:3.5rem;height:3.5rem}.styles-module__lg__bEtEd .styles-module__initials__d0Z0v{font-size:1.125rem}.styles-module__xl__WBAtD{width:5rem;height:5rem}.styles-module__xl__WBAtD .styles-module__initials__d0Z0v{font-size:1.5rem}.styles-module__status__8qwum{position:absolute;bottom:0;right:0;width:25%;height:25%;border-radius:50%;border:2px solid #1a1a1a;transition:all .2s ease}.styles-module__online__9lOl6{background:#22c55e}.styles-module__offline__pi-XT{background:#6b7280}.styles-module__busy__Cer8C{background:#ef4444}.styles-module__away__zT9iM{background:#f59e0b}.light-mode .styles-module__avatar__xMx8n{background:#ffffffb3;border-color:#0000001a}.light-mode .styles-module__avatar__xMx8n:hover{border-color:#0003}.light-mode .styles-module__initials__d0Z0v{color:#374151}.light-mode .styles-module__status__8qwum{border-color:#f5f5f5}.styles-module__badge__d6igj{display:inline-flex;align-items:center;gap:.375rem;font-weight:500;border-radius:.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid;transition:all .2s ease}.styles-module__dot__lsgxk{width:.5rem;height:.5rem;border-radius:50%;background:currentColor;flex-shrink:0}.styles-module__sm__rstsk{padding:.125rem .5rem;font-size:.75rem}.styles-module__md__o-6j3{padding:.25rem .75rem;font-size:.875rem}.styles-module__lg__EXM1E{padding:.375rem 1rem;font-size:1rem}.styles-module__default__lOwCs{background:#9ca3af26;border-color:#9ca3af4d;color:#d1d5db}.styles-module__primary__tHsyl{background:#6366f126;border-color:#6366f14d;color:#c7d2fe}.styles-module__success__okGOk{background:#22c55e26;border-color:#22c55e4d;color:#86efac}.styles-module__warning__W-psO{background:#fbbf2426;border-color:#fbbf244d;color:#fcd34d}.styles-module__error__300RS{background:#ef444426;border-color:#ef44444d;color:#fca5a5}.styles-module__info__Qec-V{background:#3b82f626;border-color:#3b82f64d;color:#93c5fd}.light-mode .styles-module__default__lOwCs{background:#9ca3af26;border-color:#9ca3af4d;color:#4b5563}.light-mode .styles-module__primary__tHsyl{background:#6366f11f;border-color:#6366f140;color:#4338ca}.light-mode .styles-module__success__okGOk{background:#22c55e1f;border-color:#22c55e40;color:#15803d}.light-mode .styles-module__warning__W-psO{background:#fbbf241f;border-color:#fbbf2440;color:#a16207}.light-mode .styles-module__error__300RS{background:#ef44441f;border-color:#ef444440;color:#b91c1c}.light-mode .styles-module__info__Qec-V{background:#3b82f61f;border-color:#3b82f640;color:#1e40af}.styles-module__breadcrumbs__jVeyK{display:inline-block}.styles-module__list__IBUYZ{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}.styles-module__item__unpP2{display:flex;align-items:center;gap:.5rem}.styles-module__link__n-LMO,.styles-module__button__MamiK{color:#9ca3af;text-decoration:none;font-size:.875rem;transition:all .2s ease;background:transparent;border:none;cursor:pointer;padding:.25rem .5rem;border-radius:.375rem;font-family:inherit}.styles-module__link__n-LMO:hover,.styles-module__button__MamiK:hover{color:#e0e0e0;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.styles-module__text__xQt-q{font-size:.875rem;color:#6b7280;padding:.25rem .5rem}.styles-module__current__vuaM0{color:#e0e0e0;font-weight:500;background:#ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.375rem;border:1px solid rgba(255,255,255,.1)}.styles-module__separator__81mEk{color:#6b7280;font-size:.875rem;-webkit-user-select:none;user-select:none}.light-mode .styles-module__link__n-LMO,.light-mode .styles-module__button__MamiK{color:#6b7280}.light-mode .styles-module__link__n-LMO:hover,.light-mode .styles-module__button__MamiK:hover{color:#111827;background:#0000000d}.light-mode .styles-module__text__xQt-q{color:#9ca3af}.light-mode .styles-module__current__vuaM0{color:#111827;background:#ffffffb3;border-color:#0000001a}.light-mode .styles-module__separator__81mEk{color:#9ca3af}.styles-module__button__Sh-fr{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:500;border-radius:.5rem;border:1px solid;cursor:pointer;transition:all .2s ease;font-family:inherit;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.styles-module__button__Sh-fr:disabled{opacity:.5;cursor:not-allowed}.styles-module__button__Sh-fr:focus-visible{outline:2px solid;outline-offset:2px}.styles-module__sm__TZ7PA{padding:.375rem .75rem;font-size:.875rem}.styles-module__md__MdfAS{padding:.5rem 1rem;font-size:.95rem}.styles-module__lg__zhBVx{padding:.625rem 1.5rem;font-size:1rem}.styles-module__fullWidth__KAUu7{width:100%}.styles-module__loading__jL3RT{pointer-events:none}.styles-module__spinner__cTprF{position:absolute;width:1rem;height:1rem;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:styles-module__spin__aE1Nk .6s linear infinite}.styles-module__hiddenContent__lbKDI{opacity:0}@keyframes styles-module__spin__aE1Nk{to{transform:rotate(360deg)}}.styles-module__primary__TRNPt{background:#6366f133;border-color:#6366f166;color:#c7d2fe}.styles-module__primary__TRNPt:hover:not(:disabled){background:#6366f14d;border-color:#6366f180}.styles-module__primary__TRNPt:focus-visible{outline-color:#6366f180}.styles-module__secondary__QKgly{background:#9ca3af26;border-color:#9ca3af4d;color:#d1d5db}.styles-module__secondary__QKgly:hover:not(:disabled){background:#9ca3af40}.styles-module__success__DI2AT{background:#22c55e33;border-color:#22c55e66;color:#86efac}.styles-module__success__DI2AT:hover:not(:disabled){background:#22c55e4d}.styles-module__danger__dnMp7{background:#ef444433;border-color:#ef444466;color:#fca5a5}.styles-module__danger__dnMp7:hover:not(:disabled){background:#ef44444d}.styles-module__outline__-o6rL{background:transparent;border-color:#fff3;color:#e0e0e0}.styles-module__outline__-o6rL:hover:not(:disabled){background:#ffffff0d;border-color:#ffffff4d}.styles-module__ghost__lca2R{background:transparent;border-color:transparent;color:#e0e0e0}.styles-module__ghost__lca2R:hover:not(:disabled){background:#ffffff14}.light-mode .styles-module__primary__TRNPt{background:#6366f126;border-color:#6366f14d;color:#4338ca}.light-mode .styles-module__primary__TRNPt:hover:not(:disabled){background:#6366f140}.light-mode .styles-module__secondary__QKgly{background:#9ca3af26;border-color:#9ca3af4d;color:#4b5563}.light-mode .styles-module__secondary__QKgly:hover:not(:disabled){background:#9ca3af40}.light-mode .styles-module__success__DI2AT{background:#22c55e26;border-color:#22c55e4d;color:#15803d}.light-mode .styles-module__success__DI2AT:hover:not(:disabled){background:#22c55e40}.light-mode .styles-module__danger__dnMp7{background:#ef444426;border-color:#ef44444d;color:#b91c1c}.light-mode .styles-module__danger__dnMp7:hover:not(:disabled){background:#ef444440}.light-mode .styles-module__outline__-o6rL{background:transparent;border-color:#0003;color:#374151}.light-mode .styles-module__outline__-o6rL:hover:not(:disabled){background:#0000000d}.light-mode .styles-module__ghost__lca2R{background:transparent;border-color:transparent;color:#374151}.light-mode .styles-module__ghost__lca2R:hover:not(:disabled){background:#0000000d}.styles-module__buttonGroup__Uqp-x{display:inline-flex;background:#ffffff08;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;padding:.25rem;gap:.25rem;border:1px solid rgba(255,255,255,.1)}.styles-module__buttonGroup__Uqp-x button{flex-shrink:0;min-width:auto}.styles-module__horizontal__oeLpW{flex-direction:row}.styles-module__horizontal__oeLpW button:first-child{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.styles-module__horizontal__oeLpW button:last-child{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.styles-module__horizontal__oeLpW button:not(:first-child):not(:last-child){border-radius:.375rem}.styles-module__vertical__ZrJkT{flex-direction:column}.styles-module__vertical__ZrJkT button:first-child{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.styles-module__vertical__ZrJkT button:last-child{border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem}.styles-module__vertical__ZrJkT button:not(:first-child):not(:last-child){border-radius:.375rem}.styles-module__fullWidth__sxqJJ{width:100%}.styles-module__fullWidth__sxqJJ button{flex:1}.light-mode .styles-module__buttonGroup__Uqp-x{background:#ffffff80;border-color:#0000001a}.styles-module__card__0iVez{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:.75rem;overflow:hidden;transition:all .3s ease}.styles-module__hoverable__7-MZP:hover{transform:translateY(-2px);border-color:#fff3;box-shadow:0 8px 16px #0003}.styles-module__clickable__WiARM{cursor:pointer}.styles-module__clickable__WiARM:focus{outline:2px solid rgba(99,102,241,.5);outline-offset:2px}.styles-module__imageWrapper__LlBXL{width:100%;aspect-ratio:16/9;overflow:hidden;background:#0003}.styles-module__image__5KApl{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.styles-module__hoverable__7-MZP:hover .styles-module__image__5KApl{transform:scale(1.05)}.styles-module__content__-0XZZ{padding:1.25rem}.styles-module__header__WVGN7{margin-bottom:1rem}.styles-module__title__-Th-m{font-size:1.25rem;font-weight:600;color:#e0e0e0;margin:0 0 .5rem}.styles-module__subtitle__VDwvc{font-size:.875rem;color:#9ca3af;margin:0}.styles-module__body__iaDKl{color:#b0b0b0;line-height:1.6;font-size:.95rem}.styles-module__footer__b10VS{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);color:#9ca3af;font-size:.875rem}.light-mode .styles-module__card__0iVez{background:#ffffffb3;border-color:#0000001a}.light-mode .styles-module__hoverable__7-MZP:hover{border-color:#0003;box-shadow:0 8px 16px #0000001a}.light-mode .styles-module__imageWrapper__LlBXL{background:#0000000d}.light-mode .styles-module__title__-Th-m{color:#111827}.light-mode .styles-module__subtitle__VDwvc{color:#6b7280}.light-mode .styles-module__body__iaDKl{color:#4b5563}.light-mode .styles-module__footer__b10VS{border-top-color:#0000001a;color:#6b7280}.styles-module__checkboxWrapper__5ECcg{display:inline-flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.styles-module__checkbox__AVGTi{position:absolute;opacity:0;width:0;height:0}.styles-module__checkbox__AVGTi:focus-visible+.styles-module__checkmark__xfDiG{outline:2px solid rgba(99,102,241,.5);outline-offset:2px}.styles-module__checkbox__AVGTi:disabled+.styles-module__checkmark__xfDiG{opacity:.5;cursor:not-allowed}.styles-module__checkbox__AVGTi:disabled~.styles-module__label__56KkR{opacity:.5;cursor:not-allowed}.styles-module__checkbox__AVGTi:checked+.styles-module__checkmark__xfDiG{background:#6366f14d;border-color:#6366f180}.styles-module__checkbox__AVGTi:checked+.styles-module__checkmark__xfDiG .styles-module__checkIcon__B246P{opacity:1;transform:scale(1)}.styles-module__checkbox__AVGTi:indeterminate+.styles-module__checkmark__xfDiG{background:#6366f14d;border-color:#6366f180}.styles-module__checkbox__AVGTi:indeterminate+.styles-module__checkmark__xfDiG .styles-module__indeterminateIcon__L9Kf-{opacity:1;transform:scale(1)}.styles-module__checkmark__xfDiG{position:relative;width:1.25rem;height:1.25rem;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.2);border-radius:.25rem;transition:all .2s ease;flex-shrink:0;display:flex;align-items:center;justify-content:center}.styles-module__checkmark__xfDiG:hover{border-color:#ffffff4d;background:#ffffff14}.styles-module__checkIcon__B246P,.styles-module__indeterminateIcon__L9Kf-{color:#c7d2fe;font-size:.875rem;font-weight:700;opacity:0;transform:scale(.5);transition:all .2s ease}.styles-module__indeterminateIcon__L9Kf-{font-size:1rem}.styles-module__label__56KkR{color:#e0e0e0;font-size:.95rem;line-height:1.5;cursor:pointer}.light-mode .styles-module__checkmark__xfDiG{background:#ffffffb3;border-color:#0003}.light-mode .styles-module__checkmark__xfDiG:hover{border-color:#0000004d;background:#ffffffe6}.light-mode .styles-module__checkbox__AVGTi:checked+.styles-module__checkmark__xfDiG{background:#6366f133;border-color:#6366f180}.light-mode .styles-module__checkbox__AVGTi:indeterminate+.styles-module__checkmark__xfDiG{background:#6366f133;border-color:#6366f180}.light-mode .styles-module__checkIcon__B246P,.light-mode .styles-module__indeterminateIcon__L9Kf-{color:#4338ca}.light-mode .styles-module__label__56KkR{color:#111827}.styles-module__combobox__YH03u{position:relative;width:100%;max-width:300px}.styles-module__inputWrapper__UsIYk{position:relative;display:flex;align-items:center}.styles-module__input__F-6BL{width:100%;padding:.5rem 2.5rem .5rem 1rem;font-size:.95rem;color:#e0e0e0;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;transition:all .2s ease;font-family:inherit}.styles-module__input__F-6BL:hover:not(.styles-module__disabled__UR9gQ){border-color:#ffffff4d;background:#ffffff14}.styles-module__input__F-6BL:focus{outline:2px solid rgba(99,102,241,.5);outline-offset:2px;border-color:#6366f166;background:#ffffff14}.styles-module__input__F-6BL.styles-module__disabled__UR9gQ{opacity:.5;cursor:not-allowed}.styles-module__input__F-6BL::placeholder{color:#9ca3af}.styles-module__arrow__LV12a{position:absolute;right:.75rem;font-size:.7rem;color:#9ca3af;transition:transform .2s ease;pointer-events:none}.styles-module__arrow__LV12a.styles-module__open__-bJ28{transform:rotate(180deg)}.styles-module__menu__twpPT{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:#ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;max-height:250px;overflow-y:auto;z-index:1000;box-shadow:0 4px 6px #0003;list-style:none;margin:0;padding:.5rem 0}.styles-module__option__v6IYz{padding:.65rem 1rem;color:#e0e0e0;cursor:pointer;transition:all .15s ease;font-size:.95rem}.styles-module__option__v6IYz:hover:not(.styles-module__optionDisabled__vOMRI){background:#ffffff1a}.styles-module__option__v6IYz.styles-module__highlighted__pxy-X{background:#6366f133;color:#c7d2fe}.styles-module__option__v6IYz.styles-module__optionDisabled__vOMRI{opacity:.5;cursor:not-allowed}.styles-module__noResults__-sgTv{position:absolute;top:calc(100% + .5rem);left:0;right:0;padding:1rem;background:#ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;color:#9ca3af;font-size:.9rem;text-align:center;z-index:1000;box-shadow:0 4px 6px #0003}.light-mode .styles-module__input__F-6BL{background:#ffffffb3;border-color:#0003;color:#111827}.light-mode .styles-module__input__F-6BL:hover:not(.styles-module__disabled__UR9gQ){border-color:#0000004d;background:#ffffffe6}.light-mode .styles-module__input__F-6BL:focus{border-color:#6366f166;background:#ffffffe6}.light-mode .styles-module__input__F-6BL::placeholder{color:#6b7280}.light-mode .styles-module__arrow__LV12a{color:#6b7280}.light-mode .styles-module__menu__twpPT{background:#fffffff2;border-color:#00000026;box-shadow:0 4px 6px #0000001a}.light-mode .styles-module__option__v6IYz{color:#111827}.light-mode .styles-module__option__v6IYz:hover:not(.styles-module__optionDisabled__vOMRI){background:#0000000d}.light-mode .styles-module__option__v6IYz.styles-module__highlighted__pxy-X{background:#6366f126;color:#4338ca}.light-mode .styles-module__noResults__-sgTv{background:#fffffff2;border-color:#00000026;color:#6b7280;box-shadow:0 4px 6px #0000001a}.styles-module__datagridWrapper__rcPKe{width:100%;overflow-x:auto;background:#ffffff08;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:.75rem}.styles-module__datagrid__2KTB3{width:100%;border-collapse:collapse;font-size:.95rem}.styles-module__thead__VLK3H{background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1)}.styles-module__th__GVqEG{padding:1rem 1.25rem;text-align:left;font-weight:600;color:#e0e0e0;white-space:nowrap}.styles-module__tbody__vIVcl .styles-module__tr__Qn6CH{border-bottom:1px solid rgba(255,255,255,.05);transition:all .2s ease}.styles-module__tbody__vIVcl .styles-module__tr__Qn6CH:last-child{border-bottom:none}.styles-module__td__UsBhW{padding:1rem 1.25rem;color:#b0b0b0}.styles-module__hoverable__6H3Yy:hover{background:#ffffff0d}.styles-module__clickable__acA9M{cursor:pointer}.styles-module__clickable__acA9M:hover{background:#ffffff14}.styles-module__striped__1a6NP{background:#ffffff05}.light-mode .styles-module__datagridWrapper__rcPKe{background:#ffffffb3;border-color:#0000001a}.light-mode .styles-module__thead__VLK3H{background:#00000008;border-bottom-color:#0000001a}.light-mode .styles-module__th__GVqEG{color:#111827}.light-mode .styles-module__tbody__vIVcl .styles-module__tr__Qn6CH{border-bottom-color:#0000000d}.light-mode .styles-module__td__UsBhW{color:#4b5563}.light-mode .styles-module__hoverable__6H3Yy:hover{background:#00000005}.light-mode .styles-module__clickable__acA9M:hover{background:#0000000a}.light-mode .styles-module__striped__1a6NP{background:#00000004}.styles-module__datePicker__uLxOg{position:relative;display:inline-flex;align-items:center;width:100%;max-width:300px}.styles-module__input__0m5L3{width:100%;padding:.5rem 2.5rem .5rem 1rem;font-size:.95rem;color:#e0e0e0;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;transition:all .2s ease;font-family:inherit}.styles-module__input__0m5L3:hover{border-color:#ffffff4d;background:#ffffff14}.styles-module__input__0m5L3:focus{outline:2px solid rgba(99,102,241,.5);outline-offset:2px;border-color:#6366f166;background:#ffffff14}.styles-module__input__0m5L3:disabled{opacity:.5;cursor:not-allowed}.styles-module__input__0m5L3::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;position:absolute;right:0;width:100%;height:100%}.styles-module__icon__0-EVW{position:absolute;right:.75rem;pointer-events:none;font-size:1.125rem;color:#9ca3af}.light-mode .styles-module__input__0m5L3{color:#111827;background:#ffffffb3;border-color:#0003}.light-mode .styles-module__input__0m5L3:hover{border-color:#0000004d;background:#ffffffe6}.light-mode .styles-module__input__0m5L3:focus{border-color:#6366f166;background:#ffffffe6}.light-mode .styles-module__icon__0-EVW{color:#6b7280}.styles-module__dateRangePicker__2-ckk{display:inline-flex;align-items:center;gap:.75rem;width:100%;max-width:600px}.styles-module__inputWrapper__gXzep{position:relative;display:inline-flex;align-items:center;flex:1}.styles-module__input__yirN1{width:100%;padding:.5rem 2.5rem .5rem 1rem;font-size:.95rem;color:#e0e0e0;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;transition:all .2s ease;font-family:inherit}.styles-module__input__yirN1:hover{border-color:#ffffff4d;background:#ffffff14}.styles-module__input__yirN1:focus{outline:2px solid rgba(99,102,241,.5);outline-offset:2px;border-color:#6366f166;background:#ffffff14}.styles-module__input__yirN1:disabled{opacity:.5;cursor:not-allowed}.styles-module__input__yirN1::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;position:absolute;right:0;width:100%;height:100%}.styles-module__icon__k-Xdp{position:absolute;right:.75rem;pointer-events:none;font-size:1.125rem;color:#9ca3af}.styles-module__separator__Lxjed{color:#9ca3af;font-size:1.25rem;flex-shrink:0}.light-mode .styles-module__input__yirN1{color:#111827;background:#ffffffb3;border-color:#0003}.light-mode .styles-module__input__yirN1:hover{border-color:#0000004d;background:#ffffffe6}.light-mode .styles-module__input__yirN1:focus{border-color:#6366f166;background:#ffffffe6}.light-mode .styles-module__icon__k-Xdp,.light-mode .styles-module__separator__Lxjed{color:#6b7280}.styles-module__divider__I6KTc{display:flex;align-items:center;border:none;margin:1rem 0}.styles-module__horizontal__rrjPy{width:100%;height:1px;background:#fff3}.styles-module__horizontal__rrjPy.styles-module__solid__LhHPX{background:#fff3}.styles-module__horizontal__rrjPy.styles-module__dashed__2ZL2z{background:none;border-top:1px dashed rgba(255,255,255,.2)}.styles-module__horizontal__rrjPy.styles-module__dotted__N8tLr{background:none;border-top:1px dotted rgba(255,255,255,.2)}.styles-module__horizontal__rrjPy .styles-module__line__ff0dO{flex:1;height:1px;background:#fff3}.styles-module__horizontal__rrjPy .styles-module__label__izE2E{padding:0 1rem;font-size:.875rem;color:#9ca3af;white-space:nowrap}.styles-module__vertical__RBm03{width:1px;height:100%;min-height:2rem;margin:0 1rem;background:#fff3}.styles-module__vertical__RBm03.styles-module__solid__LhHPX{background:#fff3}.styles-module__vertical__RBm03.styles-module__dashed__2ZL2z{background:none;border-left:1px dashed rgba(255,255,255,.2)}.styles-module__vertical__RBm03.styles-module__dotted__N8tLr{background:none;border-left:1px dotted rgba(255,255,255,.2)}.light-mode .styles-module__horizontal__rrjPy,.light-mode .styles-module__horizontal__rrjPy.styles-module__solid__LhHPX{background:#00000026}.light-mode .styles-module__horizontal__rrjPy.styles-module__dashed__2ZL2z,.light-mode .styles-module__horizontal__rrjPy.styles-module__dotted__N8tLr{background:none;border-top-color:#00000026}.light-mode .styles-module__horizontal__rrjPy .styles-module__line__ff0dO{background:#00000026}.light-mode .styles-module__horizontal__rrjPy .styles-module__label__izE2E{color:#6b7280}.light-mode .styles-module__vertical__RBm03,.light-mode .styles-module__vertical__RBm03.styles-module__solid__LhHPX{background:#00000026}.light-mode .styles-module__vertical__RBm03.styles-module__dashed__2ZL2z,.light-mode .styles-module__vertical__RBm03.styles-module__dotted__N8tLr{background:none;border-left-color:#00000026}.styles-module__dropdown__uiKSF{position:relative;width:100%;max-width:300px}.styles-module__trigger__tVV7I{width:100%;padding:.5rem 1rem;display:flex;align-items:center;justify-content:space-between;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;color:#e0e0e0;cursor:pointer;transition:all .2s ease;font-size:.95rem;font-family:inherit}.styles-module__trigger__tVV7I:hover:not(.styles-module__disabled__Xy0oo){border-color:#ffffff4d;background:#ffffff14}.styles-module__trigger__tVV7I:focus{outline:2px solid rgba(99,102,241,.5);outline-offset:2px;border-color:#6366f166}.styles-module__trigger__tVV7I.styles-module__disabled__Xy0oo{opacity:.5;cursor:not-allowed}.styles-module__selected__RnAL-{color:#e0e0e0}.styles-module__placeholder__aePOZ{color:#9ca3af}.styles-module__arrow__QYBcO{font-size:.7rem;color:#9ca3af;transition:transform .2s ease}.styles-module__arrow__QYBcO.styles-module__open__huthl{transform:rotate(180deg)}.styles-module__menu__Fvg4d{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:#ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;max-height:250px;overflow-y:auto;z-index:1000;box-shadow:0 4px 6px #0003}.styles-module__option__OLwBz{padding:.65rem 1rem;color:#e0e0e0;cursor:pointer;transition:all .15s ease;font-size:.95rem}.styles-module__option__OLwBz:hover:not(.styles-module__optionDisabled__n9Gdm){background:#ffffff1a}.styles-module__option__OLwBz.styles-module__active__W7XbV{background:#6366f133;color:#c7d2fe}.styles-module__option__OLwBz.styles-module__optionDisabled__n9Gdm{opacity:.5;cursor:not-allowed}.light-mode .styles-module__trigger__tVV7I{background:#ffffffb3;border-color:#0003;color:#111827}.light-mode .styles-module__trigger__tVV7I:hover:not(.styles-module__disabled__Xy0oo){border-color:#0000004d;background:#ffffffe6}.light-mode .styles-module__selected__RnAL-{color:#111827}.light-mode .styles-module__menu__Fvg4d{background:#fffffff2;border-color:#00000026;box-shadow:0 4px 6px #0000001a}.light-mode .styles-module__option__OLwBz{color:#111827}.light-mode .styles-module__option__OLwBz:hover:not(.styles-module__optionDisabled__n9Gdm){background:#0000000d}.light-mode .styles-module__option__OLwBz.styles-module__active__W7XbV{background:#6366f126;color:#4338ca}.styles-module__filePicker__mq8yj{width:100%;max-width:600px}.styles-module__dropzone__DdFZi{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px dashed rgba(255,255,255,.2);border-radius:.5rem;cursor:pointer;transition:all .2s ease}.styles-module__dropzone__DdFZi:hover:not(.styles-module__disabled__PEgD4){border-color:#ffffff4d;background:#ffffff14}.styles-module__dropzone__DdFZi.styles-module__disabled__PEgD4{opacity:.5;cursor:not-allowed}.styles-module__icon__lgApu{font-size:2.5rem;margin-bottom:.5rem}.styles-module__text__Djodx{color:#9ca3af;font-size:.95rem}.styles-module__input__3Edc4{display:none}.styles-module__fileList__mG9O1{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.styles-module__fileItem__NB3Uq{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;transition:all .2s ease}.styles-module__fileItem__NB3Uq.styles-module__processing__R-ZHY{border-color:#3b82f666;background:#3b82f61a}.styles-module__fileItem__NB3Uq.styles-module__uploaded__gJ1od{border-color:#22c55e66;background:#22c55e1a}.styles-module__fileItem__NB3Uq.styles-module__failed__MlKNj{border-color:#ef444466;background:#ef44441a}.styles-module__fileIcon__IUNOU{font-size:1.25rem;flex-shrink:0}.styles-module__fileName__E1M5I{flex:1;color:#e0e0e0;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.styles-module__fileSize__Yiown{color:#9ca3af;font-size:.85rem;flex-shrink:0}.styles-module__error__KmdmE{color:#fca5a5;font-size:.85rem;flex-shrink:0}.styles-module__remove__JiGmS{background:none;border:none;color:#9ca3af;font-size:1.5rem;cursor:pointer;padding:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .2s ease}.styles-module__remove__JiGmS:hover{color:#ef4444}.light-mode .styles-module__dropzone__DdFZi{background:#ffffffb3;border-color:#0003}.light-mode .styles-module__dropzone__DdFZi:hover:not(.styles-module__disabled__PEgD4){border-color:#0000004d;background:#ffffffe6}.light-mode .styles-module__text__Djodx{color:#6b7280}.light-mode .styles-module__fileItem__NB3Uq{background:#ffffffb3;border-color:#00000026}.light-mode .styles-module__fileItem__NB3Uq.styles-module__processing__R-ZHY{border-color:#3b82f680;background:#3b82f626}.light-mode .styles-module__fileItem__NB3Uq.styles-module__uploaded__gJ1od{border-color:#22c55e80;background:#22c55e26}.light-mode .styles-module__fileItem__NB3Uq.styles-module__failed__MlKNj{border-color:#ef444480;background:#ef444426}.light-mode .styles-module__fileName__E1M5I{color:#111827}.light-mode .styles-module__error__KmdmE,.light-mode .styles-module__remove__JiGmS:hover{color:#dc2626}.styles-module__header__9QAJF{width:100%;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);transition:all .2s ease}.styles-module__header__9QAJF.styles-module__sticky__wm-sd{position:sticky;top:0;z-index:100;box-shadow:0 4px 6px #0003}.styles-module__content__ZPdW7{max-width:1400px;margin:0 auto;padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.styles-module__brand__-0bx7{display:flex;align-items:center;gap:1rem;flex-shrink:0}.styles-module__logo__3KpY5{display:flex;align-items:center;justify-content:center;font-size:1.5rem}.styles-module__title__yDhEG{font-size:1.25rem;font-weight:600;color:#e0e0e0;margin:0;white-space:nowrap}.styles-module__nav__6MmHf{flex:1;display:flex;align-items:center;gap:1.5rem;overflow-x:auto;scrollbar-width:none}.styles-module__nav__6MmHf::-webkit-scrollbar{display:none}.styles-module__actions__yTPsJ{display:flex;align-items:center;gap:1rem;flex-shrink:0}.light-mode .styles-module__header__9QAJF{background:#fffc;border-bottom-color:#0000001a}.light-mode .styles-module__header__9QAJF.styles-module__sticky__wm-sd{box-shadow:0 4px 6px #0000001a}.light-mode .styles-module__title__yDhEG{color:#111827}.styles-module__inputContainer__KSDK-{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:300px}.styles-module__inputContainer__KSDK-.styles-module__fullWidth__rLaUj{max-width:none}.styles-module__label__-uPCz{font-size:.875rem;font-weight:500;color:#e0e0e0}.styles-module__wrapper__JTZMt{position:relative;display:flex;align-items:center}.styles-module__input__KRJnF{width:100%;padding:.5rem 1rem;font-size:.95rem;color:#e0e0e0;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;transition:all .2s ease;font-family:inherit}.styles-module__input__KRJnF::placeholder{color:#9ca3af}.styles-module__input__KRJnF:hover:not(:disabled){border-color:#ffffff4d;background:#ffffff14}.styles-module__input__KRJnF:focus{outline:2px solid rgba(99,102,241,.5);outline-offset:2px;border-color:#6366f166;background:#ffffff14}.styles-module__input__KRJnF.styles-module__withIcon__mikvP{padding-left:2.5rem}.styles-module__input__KRJnF.styles-module__disabled__NjJFs{opacity:.5;cursor:not-allowed}.styles-module__input__KRJnF.styles-module__sm__cr6Ko{padding:.375rem .75rem;font-size:.875rem}.styles-module__input__KRJnF.styles-module__sm__cr6Ko.styles-module__withIcon__mikvP{padding-left:2.25rem}.styles-module__input__KRJnF.styles-module__lg__geHP2{padding:.75rem 1.25rem;font-size:1.05rem}.styles-module__input__KRJnF.styles-module__lg__geHP2.styles-module__withIcon__mikvP{padding-left:3rem}.styles-module__input__KRJnF.styles-module__error__UCrFp{border-color:#ef444466}.styles-module__input__KRJnF.styles-module__error__UCrFp:focus{outline-color:#ef444480;border-color:#ef444499}.styles-module__input__KRJnF.styles-module__success__fKUT8{border-color:#22c55e66}.styles-module__input__KRJnF.styles-module__success__fKUT8:focus{outline-color:#22c55e80;border-color:#22c55e99}.styles-module__icon__qopq-{position:absolute;left:.75rem;display:flex;align-items:center;color:#9ca3af;font-size:1rem;pointer-events:none}.styles-module__helperText__9ULK8{font-size:.8rem;color:#9ca3af}.styles-module__errorText__JTsOi{color:#fca5a5}.light-mode .styles-module__label__-uPCz{color:#111827}.light-mode .styles-module__input__KRJnF{color:#111827;background:#ffffffb3;border-color:#0003}.light-mode .styles-module__input__KRJnF::placeholder{color:#6b7280}.light-mode .styles-module__input__KRJnF:hover:not(:disabled){border-color:#0000004d;background:#ffffffe6}.light-mode .styles-module__input__KRJnF:focus{background:#ffffffe6}.light-mode .styles-module__input__KRJnF.styles-module__error__UCrFp{border-color:#ef444480}.light-mode .styles-module__input__KRJnF.styles-module__error__UCrFp:focus{border-color:#ef4444b3}.light-mode .styles-module__input__KRJnF.styles-module__success__fKUT8{border-color:#22c55e80}.light-mode .styles-module__input__KRJnF.styles-module__success__fKUT8:focus{border-color:#22c55eb3}.light-mode .styles-module__icon__qopq-{color:#6b7280}.light-mode .styles-module__errorText__JTsOi{color:#dc2626}.styles-module__label__QjEAd{display:inline-flex;align-items:center;gap:.25rem;font-weight:500;color:#e0e0e0;cursor:pointer;transition:color .2s ease}.styles-module__label__QjEAd:hover:not(.styles-module__disabled__yJ4NK){color:#f0f0f0}.styles-module__label__QjEAd.styles-module__disabled__yJ4NK{opacity:.5;cursor:not-allowed}.styles-module__label__QjEAd.styles-module__sm__KnRgV{font-size:.8rem}.styles-module__label__QjEAd.styles-module__md__z8a54{font-size:.875rem}.styles-module__label__QjEAd.styles-module__lg__KOzy-{font-size:1rem}.styles-module__required__ZBqbG{color:#ef4444;font-weight:600}.light-mode .styles-module__label__QjEAd{color:#111827}.light-mode .styles-module__label__QjEAd:hover:not(.styles-module__disabled__yJ4NK){color:#000}.light-mode .styles-module__required__ZBqbG{color:#dc2626}.styles-module__list__i-PH3{list-style:none;padding:0;margin:0;width:100%;max-width:600px;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;overflow:hidden}.styles-module__list__i-PH3.styles-module__dividers__klcR- .styles-module__item__hLR7A:not(:last-child){border-bottom:1px solid rgba(255,255,255,.1)}.styles-module__item__hLR7A{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;color:#e0e0e0;transition:all .2s ease}.styles-module__item__hLR7A.styles-module__hoverable__6FbJF{cursor:pointer}.styles-module__item__hLR7A.styles-module__hoverable__6FbJF:hover{background:#ffffff14}.styles-module__item__hLR7A.styles-module__clickable__ahnDb{cursor:pointer}.styles-module__item__hLR7A.styles-module__clickable__ahnDb:active{background:#ffffff1f}.styles-module__item__hLR7A.styles-module__disabled__W5Z3Y{opacity:.5;cursor:not-allowed}.styles-module__icon__fSr06{display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0;color:#9ca3af}.styles-module__content__ujdaE{flex:1;font-size:.95rem}.styles-module__badge__dwlRk{flex-shrink:0}.light-mode .styles-module__list__i-PH3{background:#ffffffb3;border-color:#00000026}.light-mode .styles-module__list__i-PH3.styles-module__dividers__klcR- .styles-module__item__hLR7A:not(:last-child){border-bottom-color:#0000001a}.light-mode .styles-module__item__hLR7A{color:#111827}.light-mode .styles-module__item__hLR7A.styles-module__hoverable__6FbJF:hover{background:#0000000d}.light-mode .styles-module__item__hLR7A.styles-module__clickable__ahnDb:active{background:#0000001a}.light-mode .styles-module__icon__fSr06{color:#6b7280}.styles-module__overlay__Ty-He{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:styles-module__fadeIn__vywQ8 .2s ease}@keyframes styles-module__fadeIn__vywQ8{0%{opacity:0}to{opacity:1}}.styles-module__modal__bC015{background:#1e1e28f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:.75rem;box-shadow:0 20px 25px -5px #0000004d;display:flex;flex-direction:column;max-height:90vh;animation:styles-module__slideUp__i-uri .3s ease}.styles-module__modal__bC015.styles-module__sm__HasCZ{width:100%;max-width:400px}.styles-module__modal__bC015.styles-module__md__y-51k{width:100%;max-width:600px}.styles-module__modal__bC015.styles-module__lg__bXotd{width:100%;max-width:800px}.styles-module__modal__bC015.styles-module__xl__wKYbR{width:100%;max-width:1000px}@keyframes styles-module__slideUp__i-uri{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.styles-module__header__agEZy{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.styles-module__title__91HGo{margin:0;font-size:1.25rem;font-weight:600;color:#e0e0e0}.styles-module__closeButton__u-naO{background:none;border:none;color:#9ca3af;font-size:2rem;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s ease;line-height:1}.styles-module__closeButton__u-naO:hover{background:#ffffff1a;color:#e0e0e0}.styles-module__content__1xlis{padding:1.5rem;overflow-y:auto;flex:1;color:#e0e0e0}.styles-module__footer__m3SbZ{padding:1.5rem;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.light-mode .styles-module__overlay__Ty-He{background:#0006}.light-mode .styles-module__modal__bC015{background:#fffffff2;border-color:#00000026;box-shadow:0 20px 25px -5px #00000026}.light-mode .styles-module__header__agEZy{border-bottom-color:#0000001a}.light-mode .styles-module__title__91HGo{color:#111827}.light-mode .styles-module__closeButton__u-naO{color:#6b7280}.light-mode .styles-module__closeButton__u-naO:hover{background:#0000000d;color:#111827}.light-mode .styles-module__content__1xlis{color:#111827}.light-mode .styles-module__footer__m3SbZ{border-top-color:#0000001a}.styles-module__pagination__P-TuL{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.styles-module__pageButton__saWQq{min-width:2.5rem;height:2.5rem;padding:.5rem;display:flex;align-items:center;justify-content:center;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;color:#e0e0e0;font-size:.95rem;font-family:inherit;cursor:pointer;transition:all .2s ease}.styles-module__pageButton__saWQq:hover:not(:disabled):not(.styles-module__active__6G9dp){background:#ffffff14;border-color:#ffffff4d}.styles-module__pageButton__saWQq:active:not(:disabled){transform:scale(.95)}.styles-module__pageButton__saWQq.styles-module__active__6G9dp{background:#6366f133;border-color:#6366f166;color:#c7d2fe;font-weight:600}.styles-module__pageButton__saWQq:disabled{opacity:.4;cursor:not-allowed}.styles-module__dots__HNsj1{min-width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:.95rem}.light-mode .styles-module__pageButton__saWQq{background:#ffffffb3;border-color:#0003;color:#111827}.light-mode .styles-module__pageButton__saWQq:hover:not(:disabled):not(.styles-module__active__6G9dp){background:#ffffffe6;border-color:#0000004d}.light-mode .styles-module__pageButton__saWQq.styles-module__active__6G9dp{background:#6366f126;border-color:#6366f166;color:#4338ca}.light-mode .styles-module__dots__HNsj1{color:#6b7280}.styles-module__container__u4q5n{width:100%;max-width:600px}.styles-module__progressBar__wAUjD{width:100%;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;overflow:hidden}.styles-module__progressBar__wAUjD.styles-module__sm__ZBiyl{height:.5rem}.styles-module__progressBar__wAUjD.styles-module__md__oXZzu{height:1rem}.styles-module__progressBar__wAUjD.styles-module__lg__JmNO0{height:1.5rem}.styles-module__fill__bDflZ{height:100%;display:flex;align-items:center;justify-content:center;transition:width .3s ease;border-radius:.5rem}.styles-module__fill__bDflZ.styles-module__default__7qIAE{background:linear-gradient(90deg,#6366f1cc,#8b5cf6cc)}.styles-module__fill__bDflZ.styles-module__success__drT36{background:linear-gradient(90deg,#22c55ecc,#16a34acc)}.styles-module__fill__bDflZ.styles-module__warning__p-mHQ{background:linear-gradient(90deg,#fb923ccc,#f97316cc)}.styles-module__fill__bDflZ.styles-module__error__ecpJB{background:linear-gradient(90deg,#ef4444cc,#dc2626cc)}.styles-module__fill__bDflZ.styles-module__info__vfjga{background:linear-gradient(90deg,#3b82f6cc,#2563ebcc)}.styles-module__fill__bDflZ.styles-module__striped__El9o5{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.styles-module__fill__bDflZ.styles-module__animated__9FN7u{animation:styles-module__progress-stripes__etVVj 1s linear infinite}@keyframes styles-module__progress-stripes__etVVj{0%{background-position:0 0}to{background-position:1rem 0}}.styles-module__label__TpB8Q{font-size:.75rem;font-weight:600;color:#fff;padding:0 .5rem;text-shadow:0 1px 2px rgba(0,0,0,.3)}.light-mode .styles-module__progressBar__wAUjD{background:#0000000d;border-color:#00000026}.light-mode .styles-module__fill__bDflZ.styles-module__default__7qIAE{background:linear-gradient(90deg,#6366f1e6,#8b5cf6e6)}.light-mode .styles-module__fill__bDflZ.styles-module__success__drT36{background:linear-gradient(90deg,#22c55ee6,#16a34ae6)}.light-mode .styles-module__fill__bDflZ.styles-module__warning__p-mHQ{background:linear-gradient(90deg,#fb923ce6,#f97316e6)}.light-mode .styles-module__fill__bDflZ.styles-module__error__ecpJB{background:linear-gradient(90deg,#ef4444e6,#dc2626e6)}.light-mode .styles-module__fill__bDflZ.styles-module__info__vfjga{background:linear-gradient(90deg,#3b82f6e6,#2563ebe6)}.styles-module__radioButton__30HVZ{display:inline-flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.styles-module__radioButton__30HVZ.styles-module__disabled__TuSU6{opacity:.5;cursor:not-allowed}.styles-module__input__-NkgJ{position:absolute;opacity:0;width:0;height:0}.styles-module__input__-NkgJ:checked+.styles-module__radio__dKOL5:after{opacity:1;transform:scale(1)}.styles-module__input__-NkgJ:focus+.styles-module__radio__dKOL5{outline:2px solid rgba(99,102,241,.5);outline-offset:2px}.styles-module__radio__dKOL5{position:relative;width:1.25rem;height:1.25rem;border-radius:50%;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3);transition:all .2s ease;flex-shrink:0}.styles-module__radio__dKOL5:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);width:.625rem;height:.625rem;border-radius:50%;background:#6366f1e6;opacity:0;transition:all .2s ease}.styles-module__radioButton__30HVZ:hover:not(.styles-module__disabled__TuSU6) .styles-module__radio__dKOL5{border-color:#fff6;background:#ffffff14}.styles-module__input__-NkgJ:checked+.styles-module__radio__dKOL5{border-color:#6366f199;background:#6366f11a}.styles-module__label__M94so{font-size:.95rem;color:#e0e0e0;transition:color .2s ease}.styles-module__radioButton__30HVZ:hover:not(.styles-module__disabled__TuSU6) .styles-module__label__M94so{color:#f0f0f0}.light-mode .styles-module__radio__dKOL5{background:#ffffffb3;border-color:#0000004d}.light-mode .styles-module__radio__dKOL5:after{background:#6366f1}.styles-module__radioButton__30HVZ:hover:not(.styles-module__disabled__TuSU6) .light-mode .styles-module__radio__dKOL5{border-color:#0006;background:#ffffffe6}.styles-module__input__-NkgJ:checked+.light-mode .styles-module__radio__dKOL5{border-color:#6366f1b3;background:#6366f126}.light-mode .styles-module__label__M94so{color:#111827}.styles-module__radioButton__30HVZ:hover:not(.styles-module__disabled__TuSU6) .light-mode .styles-module__label__M94so{color:#000}.styles-module__container__KhKB7{width:100%;max-width:400px;display:flex;flex-direction:column;gap:.5rem}.styles-module__label__nGyr8{font-size:.875rem;font-weight:500;color:#e0e0e0}.styles-module__rangeWrapper__dnhOv{display:flex;align-items:center;gap:1rem}.styles-module__inputWrapper__vVIhy{flex:1;display:flex;align-items:center}.styles-module__input__C9H5I{width:100%;height:.5rem;appearance:none;background:transparent;cursor:pointer;transition:all .2s ease}.styles-module__input__C9H5I::-webkit-slider-track{width:100%;height:.5rem;background:linear-gradient(to right,rgba(99,102,241,.8) 0%,rgba(99,102,241,.8) var(--percentage),rgba(255,255,255,.1) var(--percentage),rgba(255,255,255,.1) 100%);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.styles-module__input__C9H5I::-webkit-slider-thumb{appearance:none;width:1.25rem;height:1.25rem;background:#6366f1e6;border:2px solid rgba(255,255,255,.3);border-radius:50%;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000004d}.styles-module__input__C9H5I::-webkit-slider-thumb:hover{transform:scale(1.1);background:#6366f1;box-shadow:0 4px 8px #6366f166}.styles-module__input__C9H5I::-webkit-slider-thumb:active{transform:scale(1.05)}.styles-module__input__C9H5I::-moz-range-track{width:100%;height:.5rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.styles-module__input__C9H5I::-moz-range-progress{height:.5rem;background:#6366f1cc;border-radius:.5rem}.styles-module__input__C9H5I::-moz-range-thumb{width:1.25rem;height:1.25rem;background:#6366f1e6;border:2px solid rgba(255,255,255,.3);border-radius:50%;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000004d}.styles-module__input__C9H5I::-moz-range-thumb:hover{transform:scale(1.1);background:#6366f1;box-shadow:0 4px 8px #6366f166}.styles-module__input__C9H5I::-moz-range-thumb:active{transform:scale(1.05)}.styles-module__input__C9H5I:focus{outline:none}.styles-module__input__C9H5I:focus::-webkit-slider-thumb{box-shadow:0 0 0 4px #6366f133}.styles-module__input__C9H5I:focus::-moz-range-thumb{box-shadow:0 0 0 4px #6366f133}.styles-module__input__C9H5I.styles-module__disabled__8xB9M{opacity:.5;cursor:not-allowed}.styles-module__input__C9H5I.styles-module__disabled__8xB9M::-webkit-slider-thumb{cursor:not-allowed}.styles-module__input__C9H5I.styles-module__disabled__8xB9M::-moz-range-thumb{cursor:not-allowed}.styles-module__minMax__5jVHq{font-size:.875rem;color:#9ca3af;flex-shrink:0}.styles-module__value__4hZJK{font-size:.95rem;font-weight:600;color:#c7d2fe;text-align:center}.light-mode .styles-module__label__nGyr8{color:#111827}.light-mode .styles-module__input__C9H5I::-webkit-slider-track{background:linear-gradient(to right,rgba(99,102,241,.9) 0%,rgba(99,102,241,.9) var(--percentage),rgba(0,0,0,.1) var(--percentage),rgba(0,0,0,.1) 100%);border-color:#00000026}.light-mode .styles-module__input__C9H5I::-webkit-slider-thumb{background:#6366f1;border-color:#fffc}.light-mode .styles-module__input__C9H5I::-moz-range-track{background:#0000001a;border-color:#00000026}.light-mode .styles-module__input__C9H5I::-moz-range-progress{background:#6366f1e6}.light-mode .styles-module__input__C9H5I::-moz-range-thumb{background:#6366f1;border-color:#fffc}.light-mode .styles-module__minMax__5jVHq{color:#6b7280}.light-mode .styles-module__value__4hZJK{color:#4338ca}.styles-module__richSelect__xtDdz{position:relative;width:100%;max-width:400px}.styles-module__trigger__nkuFi{width:100%;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;color:#e0e0e0;cursor:pointer;transition:all .2s ease;font-family:inherit;gap:1rem}.styles-module__trigger__nkuFi:hover:not(.styles-module__disabled__aRnNR){border-color:#ffffff4d;background:#ffffff14}.styles-module__trigger__nkuFi:focus{outline:2px solid rgba(99,102,241,.5);outline-offset:2px;border-color:#6366f166}.styles-module__trigger__nkuFi.styles-module__disabled__aRnNR{opacity:.5;cursor:not-allowed}.styles-module__selectedContent__1YUDI{display:flex;align-items:center;gap:.75rem;flex:1}.styles-module__textContent__sVML5{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;flex:1}.styles-module__label__DYAVs{font-size:.95rem;color:#e0e0e0;font-weight:500}.styles-module__description__-NG4t{font-size:.8rem;color:#9ca3af}.styles-module__placeholder__83U0w{color:#9ca3af;font-size:.95rem}.styles-module__icon__v-J2b{font-size:1.25rem;flex-shrink:0;color:#9ca3af}.styles-module__arrow__m-D1Y{font-size:.7rem;color:#9ca3af;transition:transform .2s ease;flex-shrink:0}.styles-module__arrow__m-D1Y.styles-module__open__gZef9{transform:rotate(180deg)}.styles-module__menu__zMZHy{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:#ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;max-height:300px;overflow:hidden;z-index:1000;box-shadow:0 4px 6px #0003;display:flex;flex-direction:column}.styles-module__searchWrapper__yPXor{padding:.75rem;border-bottom:1px solid rgba(255,255,255,.1)}.styles-module__searchInput__Vq3C6{width:100%;padding:.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.2);border-radius:.375rem;color:#e0e0e0;font-size:.875rem;font-family:inherit}.styles-module__searchInput__Vq3C6::placeholder{color:#6b7280}.styles-module__searchInput__Vq3C6:focus{outline:none;border-color:#6366f166}.styles-module__optionsList__OAhYK{overflow-y:auto;flex:1}.styles-module__option__vTDi0{padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:all .15s ease}.styles-module__option__vTDi0:hover:not(.styles-module__optionDisabled__spphz){background:#ffffff1a}.styles-module__option__vTDi0.styles-module__active__FRlKy{background:#6366f133}.styles-module__option__vTDi0.styles-module__active__FRlKy .styles-module__label__DYAVs{color:#c7d2fe}.styles-module__option__vTDi0.styles-module__optionDisabled__spphz{opacity:.5;cursor:not-allowed}.styles-module__noResults__DsPu8{padding:1rem;text-align:center;color:#9ca3af;font-size:.875rem}.light-mode .styles-module__trigger__nkuFi{background:#ffffffb3;border-color:#0003;color:#111827}.light-mode .styles-module__trigger__nkuFi:hover:not(.styles-module__disabled__aRnNR){border-color:#0000004d;background:#ffffffe6}.light-mode .styles-module__label__DYAVs{color:#111827}.light-mode .styles-module__description__-NG4t{color:#6b7280}.light-mode .styles-module__menu__zMZHy{background:#fffffff2;border-color:#00000026;box-shadow:0 4px 6px #0000001a}.light-mode .styles-module__searchWrapper__yPXor{border-bottom-color:#0000001a}.light-mode .styles-module__searchInput__Vq3C6{background:#0000000d;border-color:#0003;color:#111827}.light-mode .styles-module__option__vTDi0:hover:not(.styles-module__optionDisabled__spphz){background:#0000000d}.light-mode .styles-module__option__vTDi0.styles-module__active__FRlKy{background:#6366f126}.light-mode .styles-module__option__vTDi0.styles-module__active__FRlKy .styles-module__label__DYAVs{color:#4338ca}.light-mode .styles-module__icon__v-J2b{color:#6b7280}.styles-module__overlay__tP-g3{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;z-index:1000;animation:styles-module__fadeIn__MKn3S .2s ease}@keyframes styles-module__fadeIn__MKn3S{0%{opacity:0}to{opacity:1}}.styles-module__sidePanel__bfmoW{background:#1e1e28f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);box-shadow:0 20px 25px -5px #0000004d;display:flex;flex-direction:column;height:100%;overflow:hidden}.styles-module__sidePanel__bfmoW.styles-module__left__X7-S4{border-left:none;border-top-right-radius:.75rem;border-bottom-right-radius:.75rem;animation:styles-module__slideInLeft__nE6Ff .3s ease}.styles-module__sidePanel__bfmoW.styles-module__right__Fvefe{margin-left:auto;border-right:none;border-top-left-radius:.75rem;border-bottom-left-radius:.75rem;animation:styles-module__slideInRight__bvjTy .3s ease}.styles-module__sidePanel__bfmoW.styles-module__sm__CHsFH{width:320px;max-width:90vw}.styles-module__sidePanel__bfmoW.styles-module__md__17Q10{width:480px;max-width:90vw}.styles-module__sidePanel__bfmoW.styles-module__lg__8XCJd{width:640px;max-width:90vw}@keyframes styles-module__slideInLeft__nE6Ff{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes styles-module__slideInRight__bvjTy{0%{transform:translate(100%)}to{transform:translate(0)}}.styles-module__header__-AKr-{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.styles-module__title__8S4yp{margin:0;font-size:1.25rem;font-weight:600;color:#e0e0e0}.styles-module__closeButton__DQgJe{background:none;border:none;color:#9ca3af;font-size:2rem;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s ease;line-height:1;flex-shrink:0}.styles-module__closeButton__DQgJe:hover{background:#ffffff1a;color:#e0e0e0}.styles-module__content__XGAif{padding:1.5rem;overflow-y:auto;flex:1;color:#e0e0e0}.styles-module__footer__cX66N{padding:1.5rem;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-shrink:0}.light-mode .styles-module__overlay__tP-g3{background:#0006}.light-mode .styles-module__sidePanel__bfmoW{background:#fffffff2;border-color:#00000026;box-shadow:0 20px 25px -5px #00000026}.light-mode .styles-module__header__-AKr-{border-bottom-color:#0000001a}.light-mode .styles-module__title__8S4yp{color:#111827}.light-mode .styles-module__closeButton__DQgJe{color:#6b7280}.light-mode .styles-module__closeButton__DQgJe:hover{background:#0000000d;color:#111827}.light-mode .styles-module__content__XGAif{color:#111827}.light-mode .styles-module__footer__cX66N{border-top-color:#0000001a}.styles-module__signpost__tLnmc{position:relative;display:inline-block}.styles-module__trigger__25KnS{cursor:pointer;display:inline-flex}.styles-module__content__z4pUG{position:absolute;z-index:1000;animation:styles-module__fadeIn__0jB27 .2s ease}.styles-module__content__z4pUG.styles-module__top__Jn5XX{bottom:calc(100% + .5rem);left:50%;transform:translate(-50%)}.styles-module__content__z4pUG.styles-module__bottom__CGe3J{top:calc(100% + .5rem);left:50%;transform:translate(-50%)}.styles-module__content__z4pUG.styles-module__left__zuDmF{right:calc(100% + .5rem);top:50%;transform:translateY(-50%)}.styles-module__content__z4pUG.styles-module__right__xnSw3{left:calc(100% + .5rem);top:50%;transform:translateY(-50%)}@keyframes styles-module__fadeIn__0jB27{0%{opacity:0;transform:translate(-50%) translateY(-4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.styles-module__inner__7euCB{background:#1e1e28f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;padding:.75rem 1rem;color:#e0e0e0;box-shadow:0 4px 6px #0000004d;min-width:200px;max-width:300px;font-size:.875rem;line-height:1.5}.styles-module__arrow__mGVpk{position:absolute;width:0;height:0}.styles-module__content__z4pUG.styles-module__top__Jn5XX .styles-module__arrow__mGVpk{bottom:-.5rem;left:50%;transform:translate(-50%);border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-top:.5rem solid rgba(30,30,40,.95);filter:drop-shadow(0 2px 1px rgba(0,0,0,.2))}.styles-module__content__z4pUG.styles-module__bottom__CGe3J .styles-module__arrow__mGVpk{top:-.5rem;left:50%;transform:translate(-50%);border-left:.5rem solid transparent;border-right:.5rem solid transparent;border-bottom:.5rem solid rgba(30,30,40,.95);filter:drop-shadow(0 -2px 1px rgba(0,0,0,.2))}.styles-module__content__z4pUG.styles-module__left__zuDmF .styles-module__arrow__mGVpk{right:-.5rem;top:50%;transform:translateY(-50%);border-top:.5rem solid transparent;border-bottom:.5rem solid transparent;border-left:.5rem solid rgba(30,30,40,.95);filter:drop-shadow(2px 0 1px rgba(0,0,0,.2))}.styles-module__content__z4pUG.styles-module__right__xnSw3 .styles-module__arrow__mGVpk{left:-.5rem;top:50%;transform:translateY(-50%);border-top:.5rem solid transparent;border-bottom:.5rem solid transparent;border-right:.5rem solid rgba(30,30,40,.95);filter:drop-shadow(-2px 0 1px rgba(0,0,0,.2))}.light-mode .styles-module__inner__7euCB{background:#fffffff2;border-color:#00000026;color:#111827;box-shadow:0 4px 6px #0000001a}.styles-module__content__z4pUG.styles-module__top__Jn5XX .light-mode .styles-module__arrow__mGVpk{border-top-color:#fffffff2}.styles-module__content__z4pUG.styles-module__bottom__CGe3J .light-mode .styles-module__arrow__mGVpk{border-bottom-color:#fffffff2}.styles-module__content__z4pUG.styles-module__left__zuDmF .light-mode .styles-module__arrow__mGVpk{border-left-color:#fffffff2}.styles-module__content__z4pUG.styles-module__right__xnSw3 .light-mode .styles-module__arrow__mGVpk{border-right-color:#fffffff2}.styles-module__spinnerWrapper__ht5E9{display:inline-flex;flex-direction:column;align-items:center;gap:.5rem}.styles-module__spinner__D8f-h{display:inline-block;position:relative}.styles-module__circle__z537L{box-sizing:border-box;display:block;width:100%;height:100%;border-radius:50%;border-width:3px;border-style:solid;border-color:#fff3;border-top-color:#3b82f6;animation:styles-module__spin__Gt3A- .8s linear infinite}@keyframes styles-module__spin__Gt3A-{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.styles-module__spinner__D8f-h.styles-module__sm__Ukc8Q{width:1rem;height:1rem}.styles-module__spinner__D8f-h.styles-module__sm__Ukc8Q .styles-module__circle__z537L{border-width:2px}.styles-module__spinner__D8f-h.styles-module__md__Hg7EK{width:2rem;height:2rem}.styles-module__spinner__D8f-h.styles-module__lg__ac6jQ{width:3rem;height:3rem}.styles-module__spinner__D8f-h.styles-module__lg__ac6jQ .styles-module__circle__z537L{border-width:4px}.styles-module__spinner__D8f-h.styles-module__default__X7JGx .styles-module__circle__z537L{border-top-color:#3b82f6}.styles-module__spinner__D8f-h.styles-module__primary__Pah-x .styles-module__circle__z537L{border-top-color:#8b5cf6}.styles-module__spinner__D8f-h.styles-module__secondary__D29qO .styles-module__circle__z537L{border-top-color:#ec4899}.styles-module__label__nc2IY{color:#e0e0e0;font-size:.875rem;font-weight:500}.light-mode .styles-module__circle__z537L{border-color:#0000001a}.light-mode .styles-module__spinner__D8f-h.styles-module__default__X7JGx .styles-module__circle__z537L{border-top-color:#3b82f6}.light-mode .styles-module__spinner__D8f-h.styles-module__primary__Pah-x .styles-module__circle__z537L{border-top-color:#8b5cf6}.light-mode .styles-module__spinner__D8f-h.styles-module__secondary__D29qO .styles-module__circle__z537L{border-top-color:#ec4899}.light-mode .styles-module__label__nc2IY{color:#111827}.styles-module__stackView__wGZRw{display:flex}.styles-module__horizontal__MCJ8E{flex-direction:row}.styles-module__vertical__INW6v{flex-direction:column}.styles-module__wrap__wvZPS{flex-wrap:wrap}.styles-module__align-start__TeH6Z{align-items:flex-start}.styles-module__align-center__DWOt-{align-items:center}.styles-module__align-end__9Xsx4{align-items:flex-end}.styles-module__align-stretch__raPvB{align-items:stretch}.styles-module__justify-start__YVdZp{justify-content:flex-start}.styles-module__justify-center__VKg8-{justify-content:center}.styles-module__justify-end__kVPBC{justify-content:flex-end}.styles-module__justify-space-between__z5-wE{justify-content:space-between}.styles-module__justify-space-around__FP-0m{justify-content:space-around}.styles-module__justify-space-evenly__v5xco{justify-content:space-evenly}.styles-module__spacing-none__M23xt{gap:0}.styles-module__spacing-xs__zdXjS{gap:.25rem}.styles-module__spacing-sm__G-5sR{gap:.5rem}.styles-module__spacing-md__oa-Jw{gap:1rem}.styles-module__spacing-lg__5zhiQ{gap:1.5rem}.styles-module__spacing-xl__qSFPT{gap:2rem}.styles-module__stepper__NUsL2{display:flex;align-items:flex-start}.styles-module__stepper__NUsL2.styles-module__horizontal__wW8by{flex-direction:row;align-items:center}.styles-module__stepper__NUsL2.styles-module__vertical__UqRFo{flex-direction:column;align-items:flex-start}.styles-module__step__lmR8-{display:flex;align-items:center;gap:.75rem;position:relative;flex-shrink:0}.styles-module__step__lmR8-.styles-module__clickable__-O5QE{cursor:pointer}.styles-module__stepIndicator__GbO4U{width:2.5rem;height:2.5rem;border-radius:50%;background:#3c3c46f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;color:#9ca3af;font-weight:600;transition:all .3s ease;flex-shrink:0}.styles-module__step__lmR8-.styles-module__current__LW7L4 .styles-module__stepIndicator__GbO4U{background:#3b82f633;border-color:#3b82f6;color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a}.styles-module__step__lmR8-.styles-module__completed__MC9gq .styles-module__stepIndicator__GbO4U{background:#10b98133;border-color:#10b981;color:#10b981}.styles-module__checkmark__GAoUn{font-size:1.25rem;line-height:1}.styles-module__stepNumber__qLNDJ{font-size:1rem}.styles-module__stepContent__pKC94{display:flex;flex-direction:column;gap:.25rem}.styles-module__stepLabel__JK-4j{font-size:.875rem;font-weight:600;color:#e0e0e0;transition:color .3s ease}.styles-module__step__lmR8-.styles-module__current__LW7L4 .styles-module__stepLabel__JK-4j{color:#3b82f6}.styles-module__step__lmR8-.styles-module__completed__MC9gq .styles-module__stepLabel__JK-4j{color:#10b981}.styles-module__stepDescription__hlARr{font-size:.75rem;color:#9ca3af}.styles-module__connector__76Rsb{flex:1;height:2px;background:#fff3;transition:background .3s ease;margin:0 .5rem}.styles-module__stepper__NUsL2.styles-module__horizontal__wW8by .styles-module__connector__76Rsb{min-width:2rem}.styles-module__stepper__NUsL2.styles-module__vertical__UqRFo .styles-module__connector__76Rsb{width:2px;height:2rem;margin:.5rem 0 .5rem 1.2rem}.styles-module__connector__76Rsb.styles-module__completed__MC9gq{background:#10b981}.light-mode .styles-module__stepIndicator__GbO4U{background:#fffffff2;border-color:#00000026;color:#6b7280}.light-mode .styles-module__step__lmR8-.styles-module__current__LW7L4 .styles-module__stepIndicator__GbO4U{background:#3b82f61a;border-color:#3b82f6;color:#3b82f6;box-shadow:0 0 0 4px #3b82f60d}.light-mode .styles-module__step__lmR8-.styles-module__completed__MC9gq .styles-module__stepIndicator__GbO4U{background:#10b9811a;border-color:#10b981;color:#10b981}.light-mode .styles-module__stepLabel__JK-4j{color:#111827}.light-mode .styles-module__step__lmR8-.styles-module__current__LW7L4 .styles-module__stepLabel__JK-4j{color:#3b82f6}.light-mode .styles-module__step__lmR8-.styles-module__completed__MC9gq .styles-module__stepLabel__JK-4j{color:#10b981}.light-mode .styles-module__stepDescription__hlARr{color:#6b7280}.light-mode .styles-module__connector__76Rsb{background:#0000001a}.light-mode .styles-module__connector__76Rsb.styles-module__completed__MC9gq{background:#10b981}.styles-module__tableWrapper__7pbjW{width:100%;overflow-x:auto;background:#1e1e28f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem}.styles-module__table__G-UMw{width:100%;border-collapse:collapse;font-size:.875rem}.styles-module__thead__uTTEj{background:#32323c80;border-bottom:2px solid rgba(255,255,255,.2)}.styles-module__th__tBFLB{padding:1rem;text-align:left;font-weight:600;color:#e0e0e0;white-space:nowrap}.styles-module__tbody__-OiiP{color:#e0e0e0}.styles-module__tr__ioLC7{border-bottom:1px solid rgba(255,255,255,.1);transition:background .2s ease}.styles-module__tr__ioLC7:last-child{border-bottom:none}.styles-module__td__mjOQt{padding:1rem}.styles-module__table__G-UMw.styles-module__striped__iZ3bT .styles-module__tr__ioLC7:nth-child(2n){background:#ffffff05}.styles-module__table__G-UMw.styles-module__hoverable__ewlPb .styles-module__tr__ioLC7:hover{background:#ffffff0d}.styles-module__table__G-UMw.styles-module__bordered__IB5cr .styles-module__th__tBFLB,.styles-module__table__G-UMw.styles-module__bordered__IB5cr .styles-module__td__mjOQt{border-right:1px solid rgba(255,255,255,.1)}.styles-module__table__G-UMw.styles-module__bordered__IB5cr .styles-module__th__tBFLB:last-child,.styles-module__table__G-UMw.styles-module__bordered__IB5cr .styles-module__td__mjOQt:last-child{border-right:none}.styles-module__table__G-UMw.styles-module__compact__JfcIE .styles-module__th__tBFLB,.styles-module__table__G-UMw.styles-module__compact__JfcIE .styles-module__td__mjOQt{padding:.5rem}.styles-module__tr__ioLC7.styles-module__clickable__URnJc{cursor:pointer}.styles-module__empty__Xo2NZ{padding:2rem;text-align:center;color:#9ca3af;font-size:.875rem}.light-mode .styles-module__tableWrapper__7pbjW{background:#fffffff2;border-color:#00000026}.light-mode .styles-module__thead__uTTEj{background:#f0f0f0cc;border-bottom-color:#00000026}.light-mode .styles-module__th__tBFLB,.light-mode .styles-module__tbody__-OiiP{color:#111827}.light-mode .styles-module__tr__ioLC7{border-bottom-color:#0000001a}.light-mode .styles-module__table__G-UMw.styles-module__striped__iZ3bT .styles-module__tr__ioLC7:nth-child(2n){background:#00000005}.light-mode .styles-module__table__G-UMw.styles-module__hoverable__ewlPb .styles-module__tr__ioLC7:hover{background:#0000000d}.light-mode .styles-module__table__G-UMw.styles-module__bordered__IB5cr .styles-module__th__tBFLB,.light-mode .styles-module__table__G-UMw.styles-module__bordered__IB5cr .styles-module__td__mjOQt{border-right-color:#0000001a}.light-mode .styles-module__empty__Xo2NZ{color:#6b7280}.styles-module__tabsContainer__Jv3WS{width:100%}.styles-module__tabsList__G5a9Z{display:flex;gap:.5rem;border-bottom:2px solid rgba(255,255,255,.1);margin-bottom:1.5rem}.styles-module__tabsList__G5a9Z.styles-module__fullWidth__IiyGO .styles-module__tab__Veki-{flex:1}.styles-module__tab__Veki-{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:transparent;border:none;color:#9ca3af;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;position:relative;white-space:nowrap}.styles-module__tab__Veki-:hover:not(.styles-module__disabled__M9qZK){color:#e0e0e0}.styles-module__tab__Veki-.styles-module__active__PVi-W{color:#3b82f6}.styles-module__tab__Veki-.styles-module__disabled__M9qZK{color:#6b7280;cursor:not-allowed;opacity:.5}.styles-module__icon__4sTw8{font-size:1rem;display:flex;align-items:center}.styles-module__tabsList__G5a9Z.styles-module__default__02SGT .styles-module__tab__Veki-{border-bottom:2px solid transparent;margin-bottom:-2px}.styles-module__tabsList__G5a9Z.styles-module__default__02SGT .styles-module__tab__Veki-.styles-module__active__PVi-W{border-bottom-color:#3b82f6}.styles-module__tabsList__G5a9Z.styles-module__pills__VlbD0{border-bottom:none;gap:.5rem}.styles-module__tabsList__G5a9Z.styles-module__pills__VlbD0 .styles-module__tab__Veki-{background:#3c3c46f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:.5rem}.styles-module__tabsList__G5a9Z.styles-module__pills__VlbD0 .styles-module__tab__Veki-:hover:not(.styles-module__disabled__M9qZK){background:#464650f2;border-color:#fff3}.styles-module__tabsList__G5a9Z.styles-module__pills__VlbD0 .styles-module__tab__Veki-.styles-module__active__PVi-W{background:#3b82f633;border-color:#3b82f6;color:#3b82f6}.styles-module__tabsList__G5a9Z.styles-module__underline__Jdu1g{border-bottom:2px solid rgba(255,255,255,.1);gap:1rem}.styles-module__tabsList__G5a9Z.styles-module__underline__Jdu1g .styles-module__tab__Veki-{padding-bottom:1rem;position:relative}.styles-module__tabsList__G5a9Z.styles-module__underline__Jdu1g .styles-module__tab__Veki-:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:transparent;transition:background .2s ease}.styles-module__tabsList__G5a9Z.styles-module__underline__Jdu1g .styles-module__tab__Veki-.styles-module__active__PVi-W:after{background:#3b82f6}.styles-module__tabContent__bSDk7{color:#e0e0e0;font-size:.875rem;animation:styles-module__fadeIn__sgbzQ .2s ease}@keyframes styles-module__fadeIn__sgbzQ{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.light-mode .styles-module__tabsList__G5a9Z{border-bottom-color:#0000001a}.light-mode .styles-module__tab__Veki-{color:#6b7280}.light-mode .styles-module__tab__Veki-:hover:not(.styles-module__disabled__M9qZK){color:#111827}.light-mode .styles-module__tab__Veki-.styles-module__active__PVi-W{color:#3b82f6}.light-mode .styles-module__tab__Veki-.styles-module__disabled__M9qZK{color:#d1d5db}.light-mode .styles-module__tabsList__G5a9Z.styles-module__pills__VlbD0 .styles-module__tab__Veki-{background:#fffffff2;border-color:#0000001a}.light-mode .styles-module__tabsList__G5a9Z.styles-module__pills__VlbD0 .styles-module__tab__Veki-:hover:not(.styles-module__disabled__M9qZK){background:#f0f0f0f2;border-color:#00000026}.light-mode .styles-module__tabsList__G5a9Z.styles-module__pills__VlbD0 .styles-module__tab__Veki-.styles-module__active__PVi-W{background:#3b82f61a;border-color:#3b82f6;color:#3b82f6}.light-mode .styles-module__tabsList__G5a9Z.styles-module__underline__Jdu1g{border-bottom-color:#0000001a}.light-mode .styles-module__tabContent__bSDk7{color:#111827}.styles-module__textareaWrapper__xo-uo{display:inline-flex;flex-direction:column;gap:.5rem}.styles-module__textareaWrapper__xo-uo.styles-module__fullWidth__y5-Ce{width:100%}.styles-module__label__xONj0{font-size:.875rem;font-weight:500;color:#e0e0e0}.styles-module__textarea__LmnbQ{width:100%;padding:.75rem 1rem;background:#3c3c46f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;color:#e0e0e0;font-size:.875rem;font-family:inherit;line-height:1.5;transition:all .2s ease;outline:none;min-height:100px}.styles-module__textarea__LmnbQ::placeholder{color:#9ca3af}.styles-module__textarea__LmnbQ:hover:not(:disabled){border-color:#ffffff4d}.styles-module__textarea__LmnbQ:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.styles-module__textarea__LmnbQ:disabled{opacity:.5;cursor:not-allowed}.styles-module__textarea__LmnbQ.styles-module__sm__uIQkQ{padding:.5rem .75rem;font-size:.8125rem;min-height:80px}.styles-module__textarea__LmnbQ.styles-module__md__qfL-2{padding:.75rem 1rem;font-size:.875rem;min-height:100px}.styles-module__textarea__LmnbQ.styles-module__lg__s6Iey{padding:1rem 1.25rem;font-size:1rem;min-height:120px}.styles-module__textarea__LmnbQ.styles-module__default__jlE7o{border-color:#fff3}.styles-module__textarea__LmnbQ.styles-module__success__ehWww{border-color:#10b981}.styles-module__textarea__LmnbQ.styles-module__success__ehWww:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.styles-module__textarea__LmnbQ.styles-module__error__h9V4X{border-color:#ef4444}.styles-module__textarea__LmnbQ.styles-module__error__h9V4X:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.styles-module__textarea__LmnbQ.styles-module__resize-none__w4h2b{resize:none}.styles-module__textarea__LmnbQ.styles-module__resize-vertical__4lTu1{resize:vertical}.styles-module__textarea__LmnbQ.styles-module__resize-horizontal__3Fdb7{resize:horizontal}.styles-module__textarea__LmnbQ.styles-module__resize-both__07ghL{resize:both}.styles-module__helperText__Zaq6O{font-size:.75rem;color:#9ca3af}.styles-module__errorText__RI-rl{font-size:.75rem;color:#ef4444}.light-mode .styles-module__label__xONj0{color:#111827}.light-mode .styles-module__textarea__LmnbQ{background:#fffffff2;border-color:#00000026;color:#111827}.light-mode .styles-module__textarea__LmnbQ::placeholder{color:#6b7280}.light-mode .styles-module__textarea__LmnbQ:hover:not(:disabled){border-color:#00000040}.light-mode .styles-module__textarea__LmnbQ:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.light-mode .styles-module__textarea__LmnbQ.styles-module__success__ehWww{border-color:#10b981}.light-mode .styles-module__textarea__LmnbQ.styles-module__success__ehWww:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.light-mode .styles-module__textarea__LmnbQ.styles-module__error__h9V4X{border-color:#ef4444}.light-mode .styles-module__textarea__LmnbQ.styles-module__error__h9V4X:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.light-mode .styles-module__helperText__Zaq6O{color:#6b7280}.light-mode .styles-module__errorText__RI-rl{color:#ef4444}.styles-module__timeline__khbcN{display:flex;position:relative}.styles-module__timeline__khbcN.styles-module__vertical__EcI8f{flex-direction:column;gap:0}.styles-module__timeline__khbcN.styles-module__horizontal__kv46j{flex-direction:row;align-items:flex-start;gap:0;overflow-x:auto;padding-bottom:1rem}.styles-module__timelineItem__j0IQ5{position:relative;display:flex}.styles-module__timeline__khbcN.styles-module__vertical__EcI8f .styles-module__timelineItem__j0IQ5{flex-direction:row;padding-bottom:2rem}.styles-module__timeline__khbcN.styles-module__vertical__EcI8f .styles-module__timelineItem__j0IQ5:last-child{padding-bottom:0}.styles-module__timeline__khbcN.styles-module__horizontal__kv46j .styles-module__timelineItem__j0IQ5{flex-direction:column;min-width:250px;padding-right:2rem}.styles-module__timeline__khbcN.styles-module__horizontal__kv46j .styles-module__timelineItem__j0IQ5:last-child{padding-right:0}.styles-module__timelineMarker__qk22j{position:relative;flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:50%;background:#3c3c46f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;z-index:2;transition:all .3s ease}.styles-module__timeline__khbcN.styles-module__vertical__EcI8f .styles-module__timelineMarker__qk22j{margin-right:1.5rem}.styles-module__timeline__khbcN.styles-module__horizontal__kv46j .styles-module__timelineMarker__qk22j{margin-bottom:1rem}.styles-module__dot__gfgUf{width:.75rem;height:.75rem;border-radius:50%;background:#9ca3af;transition:all .3s ease}.styles-module__icon__hWWJd{font-size:1.25rem;display:flex;align-items:center;justify-content:center;color:#9ca3af;transition:all .3s ease}.styles-module__timelineMarker__qk22j.styles-module__default__QmROp{border-color:#fff3}.styles-module__timelineMarker__qk22j.styles-module__default__QmROp .styles-module__dot__gfgUf{background:#9ca3af}.styles-module__timelineMarker__qk22j.styles-module__default__QmROp .styles-module__icon__hWWJd{color:#9ca3af}.styles-module__timelineMarker__qk22j.styles-module__primary__t4Cyx{border-color:#3b82f6;background:#3b82f61a}.styles-module__timelineMarker__qk22j.styles-module__primary__t4Cyx .styles-module__dot__gfgUf{background:#3b82f6}.styles-module__timelineMarker__qk22j.styles-module__primary__t4Cyx .styles-module__icon__hWWJd{color:#3b82f6}.styles-module__timelineMarker__qk22j.styles-module__success__NWp7i{border-color:#10b981;background:#10b9811a}.styles-module__timelineMarker__qk22j.styles-module__success__NWp7i .styles-module__dot__gfgUf{background:#10b981}.styles-module__timelineMarker__qk22j.styles-module__success__NWp7i .styles-module__icon__hWWJd{color:#10b981}.styles-module__timelineMarker__qk22j.styles-module__warning__mfRNM{border-color:#f59e0b;background:#f59e0b1a}.styles-module__timelineMarker__qk22j.styles-module__warning__mfRNM .styles-module__dot__gfgUf{background:#f59e0b}.styles-module__timelineMarker__qk22j.styles-module__warning__mfRNM .styles-module__icon__hWWJd{color:#f59e0b}.styles-module__timelineMarker__qk22j.styles-module__error__AwsC3{border-color:#ef4444;background:#ef44441a}.styles-module__timelineMarker__qk22j.styles-module__error__AwsC3 .styles-module__dot__gfgUf{background:#ef4444}.styles-module__timelineMarker__qk22j.styles-module__error__AwsC3 .styles-module__icon__hWWJd{color:#ef4444}.styles-module__timelineMarker__qk22j.styles-module__info__QaR5w{border-color:#06b6d4;background:#06b6d41a}.styles-module__timelineMarker__qk22j.styles-module__info__QaR5w .styles-module__dot__gfgUf{background:#06b6d4}.styles-module__timelineMarker__qk22j.styles-module__info__QaR5w .styles-module__icon__hWWJd{color:#06b6d4}.styles-module__timelineConnector__deWEH{position:absolute;background:#fff3;transition:all .3s ease}.styles-module__timeline__khbcN.styles-module__vertical__EcI8f .styles-module__timelineConnector__deWEH{left:1.25rem;top:2.5rem;width:2px;height:calc(100% - 1.5rem)}.styles-module__timeline__khbcN.styles-module__horizontal__kv46j .styles-module__timelineConnector__deWEH{top:1.25rem;left:2.5rem;height:2px;width:calc(100% - 1.5rem)}.styles-module__timelineConnector__deWEH.styles-module__primary__t4Cyx{background:#3b82f6}.styles-module__timelineConnector__deWEH.styles-module__success__NWp7i{background:#10b981}.styles-module__timelineConnector__deWEH.styles-module__warning__mfRNM{background:#f59e0b}.styles-module__timelineConnector__deWEH.styles-module__error__AwsC3{background:#ef4444}.styles-module__timelineConnector__deWEH.styles-module__info__QaR5w{background:#06b6d4}.styles-module__timelineContent__Yzy-t{flex:1;display:flex;flex-direction:column;gap:.25rem}.styles-module__timeline__khbcN.styles-module__vertical__EcI8f .styles-module__timelineContent__Yzy-t{padding-top:.25rem}.styles-module__timeline__khbcN.styles-module__horizontal__kv46j .styles-module__timelineContent__Yzy-t{min-height:100px}.styles-module__date__OIOdY{font-size:.75rem;color:#9ca3af;font-weight:500}.styles-module__title__PZb8L{font-size:.9375rem;font-weight:600;color:#e0e0e0;margin:0}.styles-module__description__LesWv{font-size:.875rem;color:#9ca3af;margin:0;line-height:1.5}.light-mode .styles-module__timelineMarker__qk22j{background:#fffffff2;border-color:#00000026}.light-mode .styles-module__dot__gfgUf{background:#6b7280}.light-mode .styles-module__icon__hWWJd{color:#6b7280}.light-mode .styles-module__timelineMarker__qk22j.styles-module__default__QmROp{border-color:#00000026}.light-mode .styles-module__timelineMarker__qk22j.styles-module__default__QmROp .styles-module__dot__gfgUf{background:#6b7280}.light-mode .styles-module__timelineMarker__qk22j.styles-module__default__QmROp .styles-module__icon__hWWJd{color:#6b7280}.light-mode .styles-module__timelineMarker__qk22j.styles-module__primary__t4Cyx{border-color:#3b82f6;background:#3b82f61a}.light-mode .styles-module__timelineMarker__qk22j.styles-module__primary__t4Cyx .styles-module__dot__gfgUf{background:#3b82f6}.light-mode .styles-module__timelineMarker__qk22j.styles-module__primary__t4Cyx .styles-module__icon__hWWJd{color:#3b82f6}.light-mode .styles-module__timelineMarker__qk22j.styles-module__success__NWp7i{border-color:#10b981;background:#10b9811a}.light-mode .styles-module__timelineMarker__qk22j.styles-module__success__NWp7i .styles-module__dot__gfgUf{background:#10b981}.light-mode .styles-module__timelineMarker__qk22j.styles-module__success__NWp7i .styles-module__icon__hWWJd{color:#10b981}.light-mode .styles-module__timelineMarker__qk22j.styles-module__warning__mfRNM{border-color:#f59e0b;background:#f59e0b1a}.light-mode .styles-module__timelineMarker__qk22j.styles-module__warning__mfRNM .styles-module__dot__gfgUf{background:#f59e0b}.light-mode .styles-module__timelineMarker__qk22j.styles-module__warning__mfRNM .styles-module__icon__hWWJd{color:#f59e0b}.light-mode .styles-module__timelineMarker__qk22j.styles-module__error__AwsC3{border-color:#ef4444;background:#ef44441a}.light-mode .styles-module__timelineMarker__qk22j.styles-module__error__AwsC3 .styles-module__dot__gfgUf{background:#ef4444}.light-mode .styles-module__timelineMarker__qk22j.styles-module__error__AwsC3 .styles-module__icon__hWWJd{color:#ef4444}.light-mode .styles-module__timelineMarker__qk22j.styles-module__info__QaR5w{border-color:#06b6d4;background:#06b6d41a}.light-mode .styles-module__timelineMarker__qk22j.styles-module__info__QaR5w .styles-module__dot__gfgUf{background:#06b6d4}.light-mode .styles-module__timelineMarker__qk22j.styles-module__info__QaR5w .styles-module__icon__hWWJd{color:#06b6d4}.light-mode .styles-module__timelineConnector__deWEH{background:#00000026}.light-mode .styles-module__timelineConnector__deWEH.styles-module__primary__t4Cyx{background:#3b82f6}.light-mode .styles-module__timelineConnector__deWEH.styles-module__success__NWp7i{background:#10b981}.light-mode .styles-module__timelineConnector__deWEH.styles-module__warning__mfRNM{background:#f59e0b}.light-mode .styles-module__timelineConnector__deWEH.styles-module__error__AwsC3{background:#ef4444}.light-mode .styles-module__timelineConnector__deWEH.styles-module__info__QaR5w{background:#06b6d4}.light-mode .styles-module__date__OIOdY{color:#6b7280}.light-mode .styles-module__title__PZb8L{color:#111827}.light-mode .styles-module__description__LesWv{color:#6b7280}.styles-module__toggleSwitch__HDqFP{display:inline-flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.styles-module__toggleSwitch__HDqFP.styles-module__disabled__tbXNT{cursor:not-allowed;opacity:.5}.styles-module__input__oBVdg{position:absolute;opacity:0;width:0;height:0}.styles-module__switch__4NsVE{position:relative;display:inline-block;background:#3c3c46f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.2);border-radius:2rem;transition:all .3s ease;flex-shrink:0}.styles-module__switch__4NsVE.styles-module__sm__O8zA8{width:2.5rem;height:1.25rem}.styles-module__switch__4NsVE.styles-module__md__2vfHI{width:3rem;height:1.5rem}.styles-module__switch__4NsVE.styles-module__lg__S65-b{width:3.5rem;height:1.75rem}.styles-module__slider__gYGJ6{position:absolute;top:50%;transform:translateY(-50%);background:#9ca3af;border-radius:50%;transition:all .3s ease;box-shadow:0 2px 4px #0003}.styles-module__switch__4NsVE.styles-module__sm__O8zA8 .styles-module__slider__gYGJ6{left:.125rem;width:.875rem;height:.875rem}.styles-module__switch__4NsVE.styles-module__md__2vfHI .styles-module__slider__gYGJ6{left:.15rem;width:1.05rem;height:1.05rem}.styles-module__switch__4NsVE.styles-module__lg__S65-b .styles-module__slider__gYGJ6{left:.175rem;width:1.225rem;height:1.225rem}.styles-module__switch__4NsVE.styles-module__checked__-4pJ2{background:#3b82f633;border-color:#3b82f6}.styles-module__switch__4NsVE.styles-module__checked__-4pJ2 .styles-module__slider__gYGJ6{background:#3b82f6}.styles-module__switch__4NsVE.styles-module__sm__O8zA8.styles-module__checked__-4pJ2 .styles-module__slider__gYGJ6{left:calc(100% - .125rem);transform:translate(-100%,-50%)}.styles-module__switch__4NsVE.styles-module__md__2vfHI.styles-module__checked__-4pJ2 .styles-module__slider__gYGJ6{left:calc(100% - .15rem);transform:translate(-100%,-50%)}.styles-module__switch__4NsVE.styles-module__lg__S65-b.styles-module__checked__-4pJ2 .styles-module__slider__gYGJ6{left:calc(100% - .175rem);transform:translate(-100%,-50%)}.styles-module__toggleSwitch__HDqFP:not(.styles-module__disabled__tbXNT):hover .styles-module__switch__4NsVE{border-color:#ffffff4d}.styles-module__toggleSwitch__HDqFP:not(.styles-module__disabled__tbXNT):hover .styles-module__switch__4NsVE.styles-module__checked__-4pJ2{border-color:#60a5fa}.styles-module__label__xIgTV{font-size:.875rem;color:#e0e0e0;font-weight:500}.light-mode .styles-module__switch__4NsVE{background:#fffffff2;border-color:#00000026}.light-mode .styles-module__slider__gYGJ6{background:#6b7280}.light-mode .styles-module__switch__4NsVE.styles-module__checked__-4pJ2{background:#3b82f61a;border-color:#3b82f6}.light-mode .styles-module__switch__4NsVE.styles-module__checked__-4pJ2 .styles-module__slider__gYGJ6{background:#3b82f6}.light-mode .styles-module__toggleSwitch__HDqFP:not(.styles-module__disabled__tbXNT):hover .styles-module__switch__4NsVE{border-color:#00000040}.light-mode .styles-module__toggleSwitch__HDqFP:not(.styles-module__disabled__tbXNT):hover .styles-module__switch__4NsVE.styles-module__checked__-4pJ2{border-color:#60a5fa}.light-mode .styles-module__label__xIgTV{color:#111827}.styles-module__tooltipWrapper__jXXEP{position:relative;display:inline-flex;width:fit-content}.styles-module__tooltip__NP2ZM{position:absolute;z-index:1000;pointer-events:none;animation:styles-module__fadeIn__5hHms .2s ease}@keyframes styles-module__fadeIn__5hHms{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.styles-module__tooltip__NP2ZM.styles-module__top__kvf2D{bottom:100%;left:50%;transform:translate(-50%) translateY(-.5rem);margin-bottom:.5rem}.styles-module__tooltip__NP2ZM.styles-module__bottom__vkl92{top:100%;left:50%;transform:translate(-50%) translateY(.5rem);margin-top:.5rem}.styles-module__tooltip__NP2ZM.styles-module__left__q2e3D{right:100%;top:50%;transform:translateY(-50%) translate(-.5rem);margin-right:.5rem}.styles-module__tooltip__NP2ZM.styles-module__right__FRcXP{left:100%;top:50%;transform:translateY(-50%) translate(.5rem);margin-left:.5rem}.styles-module__tooltipContent__3R4WL{background:#1e1e28fa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:.375rem;padding:.5rem .75rem;font-size:.8125rem;color:#e0e0e0;white-space:nowrap;box-shadow:0 4px 12px #0000004d}.styles-module__tooltipArrow__11JdT{position:absolute;width:0;height:0;border-style:solid}.styles-module__tooltip__NP2ZM.styles-module__top__kvf2D .styles-module__tooltipArrow__11JdT{bottom:-.375rem;left:50%;transform:translate(-50%);border-width:.375rem .375rem 0 .375rem;border-color:rgba(30,30,40,.98) transparent transparent transparent}.styles-module__tooltip__NP2ZM.styles-module__bottom__vkl92 .styles-module__tooltipArrow__11JdT{top:-.375rem;left:50%;transform:translate(-50%);border-width:0 .375rem .375rem .375rem;border-color:transparent transparent rgba(30,30,40,.98) transparent}.styles-module__tooltip__NP2ZM.styles-module__left__q2e3D .styles-module__tooltipArrow__11JdT{right:-.375rem;top:50%;transform:translateY(-50%);border-width:.375rem 0 .375rem .375rem;border-color:transparent transparent transparent rgba(30,30,40,.98)}.styles-module__tooltip__NP2ZM.styles-module__right__FRcXP .styles-module__tooltipArrow__11JdT{left:-.375rem;top:50%;transform:translateY(-50%);border-width:.375rem .375rem .375rem 0;border-color:transparent rgba(30,30,40,.98) transparent transparent}.light-mode .styles-module__tooltipContent__3R4WL{background:#282832fa;border-color:#0003;color:#fff;box-shadow:0 4px 12px #00000026}.light-mode .styles-module__tooltip__NP2ZM.styles-module__top__kvf2D .styles-module__tooltipArrow__11JdT{border-color:rgba(40,40,50,.98) transparent transparent transparent}.light-mode .styles-module__tooltip__NP2ZM.styles-module__bottom__vkl92 .styles-module__tooltipArrow__11JdT{border-color:transparent transparent rgba(40,40,50,.98) transparent}.light-mode .styles-module__tooltip__NP2ZM.styles-module__left__q2e3D .styles-module__tooltipArrow__11JdT{border-color:transparent transparent transparent rgba(40,40,50,.98)}.light-mode .styles-module__tooltip__NP2ZM.styles-module__right__FRcXP .styles-module__tooltipArrow__11JdT{border-color:transparent rgba(40,40,50,.98) transparent transparent}.styles-module__toastContainer__-uOPe{position:fixed;z-index:9999;display:flex;flex-direction:column;gap:.75rem;padding:1rem;max-width:400px;pointer-events:none}.styles-module__topLeft__MCDhr{top:0;left:0}.styles-module__topCenter__loC-J{top:0;left:50%;transform:translate(-50%)}.styles-module__topRight__alKSR{top:0;right:0}.styles-module__bottomLeft__sPZ6I{bottom:0;left:0}.styles-module__bottomCenter__12yLT{bottom:0;left:50%;transform:translate(-50%)}.styles-module__bottomRight__EdLbD{bottom:0;right:0}.styles-module__toast__q9A3H{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;background:#1e1e28f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid;border-radius:.5rem;box-shadow:0 10px 25px #0000004d;pointer-events:auto;animation:styles-module__slideIn__-Mhbw .3s ease,styles-module__fadeIn__I0huT .3s ease;min-width:300px;max-width:400px;transition:all .2s ease}.styles-module__toast__q9A3H:hover{transform:translateY(-2px);box-shadow:0 12px 30px #0006}@keyframes styles-module__slideIn__-Mhbw{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.styles-module__topLeft__MCDhr .styles-module__toast__q9A3H,.styles-module__bottomLeft__sPZ6I .styles-module__toast__q9A3H{animation:styles-module__slideInLeft__Bs5x3 .3s ease,styles-module__fadeIn__I0huT .3s ease}@keyframes styles-module__slideInLeft__Bs5x3{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.styles-module__topCenter__loC-J .styles-module__toast__q9A3H,.styles-module__bottomCenter__12yLT .styles-module__toast__q9A3H{animation:styles-module__slideInDown__OUDGH .3s ease,styles-module__fadeIn__I0huT .3s ease}@keyframes styles-module__slideInDown__OUDGH{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes styles-module__fadeIn__I0huT{0%{opacity:0}to{opacity:1}}.styles-module__icon__iRAEt{font-size:1.25rem;font-weight:700;flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center}.styles-module__message__id55d{flex:1;color:#e0e0e0;font-size:.9rem;line-height:1.5}.styles-module__closeButton__vnBxf{background:none;border:none;color:#fff9;cursor:pointer;font-size:1.25rem;padding:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s ease;flex-shrink:0}.styles-module__closeButton__vnBxf:hover{background:#ffffff1a;color:#ffffffe6}.styles-module__info__RjsXR{border-color:#3b82f64d;background:#3b82f626}.styles-module__info__RjsXR .styles-module__icon__iRAEt{color:#60a5fa}.styles-module__success__1qQf4{border-color:#22c55e4d;background:#22c55e26}.styles-module__success__1qQf4 .styles-module__icon__iRAEt{color:#4ade80}.styles-module__warning__UhEF-{border-color:#fbbf244d;background:#fbbf2426}.styles-module__warning__UhEF- .styles-module__icon__iRAEt{color:#fbbf24}.styles-module__error__sOYOC{border-color:#ef44444d;background:#ef444426}.styles-module__error__sOYOC .styles-module__icon__iRAEt{color:#f87171}.light-mode .styles-module__toast__q9A3H{background:#fffffff2;box-shadow:0 10px 25px #00000026}.light-mode .styles-module__toast__q9A3H:hover{box-shadow:0 12px 30px #0003}.light-mode .styles-module__message__id55d{color:#111827}.light-mode .styles-module__closeButton__vnBxf{color:#0006}.light-mode .styles-module__closeButton__vnBxf:hover{background:#0000000d;color:#000000b3}.light-mode .styles-module__info__RjsXR{border-color:#3b82f640;background:#3b82f61f}.light-mode .styles-module__info__RjsXR .styles-module__icon__iRAEt{color:#2563eb}.light-mode .styles-module__success__1qQf4{border-color:#22c55e40;background:#22c55e1f}.light-mode .styles-module__success__1qQf4 .styles-module__icon__iRAEt{color:#16a34a}.light-mode .styles-module__warning__UhEF-{border-color:#fbbf2440;background:#fbbf241f}.light-mode .styles-module__warning__UhEF- .styles-module__icon__iRAEt{color:#ca8a04}.light-mode .styles-module__error__sOYOC{border-color:#ef444440;background:#ef44441f}.light-mode .styles-module__error__sOYOC .styles-module__icon__iRAEt{color:#dc2626}@media (max-width: 640px){.styles-module__toastContainer__-uOPe{max-width:calc(100vw - 2rem);left:1rem!important;right:1rem!important;transform:none!important}.styles-module__toast__q9A3H{min-width:auto;max-width:100%}}.styles-module__treeView__qtZfC{background:#1e1e28f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;padding:.5rem;min-width:250px}.styles-module__treeNodeWrapper__6m8CE{-webkit-user-select:none;user-select:none}.styles-module__treeNode__xhhOE{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;border-radius:.375rem;transition:all .2s ease;color:#e0e0e0;font-size:.875rem;position:relative}.styles-module__treeNode__xhhOE:hover{background:#ffffff0d}.styles-module__treeNode__xhhOE:active{background:#ffffff14}.styles-module__treeNode__xhhOE.styles-module__disabled__-brxQ{opacity:.5;cursor:not-allowed}.styles-module__treeNode__xhhOE.styles-module__disabled__-brxQ:hover{background:transparent}.styles-module__expandIcon__Zp-Yb{font-size:.625rem;color:#9ca3af;transition:transform .2s ease;flex-shrink:0;width:1rem;display:flex;align-items:center;justify-content:center}.styles-module__expandIcon__Zp-Yb.styles-module__expanded__A4kyH{transform:rotate(90deg)}.styles-module__spacer__56WdM{width:1rem;flex-shrink:0}.styles-module__icon__AIE-i{font-size:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#9ca3af}.styles-module__label__XDGcT{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.styles-module__children__N1c5Z{animation:styles-module__slideDown__OJJ7x .2s ease}@keyframes styles-module__slideDown__OJJ7x{0%{opacity:0;transform:translateY(-.25rem)}to{opacity:1;transform:translateY(0)}}.light-mode .styles-module__treeView__qtZfC{background:#fffffff2;border-color:#00000026}.light-mode .styles-module__treeNode__xhhOE{color:#111827}.light-mode .styles-module__treeNode__xhhOE:hover{background:#0000000d}.light-mode .styles-module__treeNode__xhhOE:active{background:#00000014}.light-mode .styles-module__expandIcon__Zp-Yb,.light-mode .styles-module__icon__AIE-i{color:#6b7280}.styles-module__nav__sMQSv{background:#1e1e28f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;padding:.5rem}.styles-module__nav__sMQSv.styles-module__vertical__6EFeu{min-width:250px;max-width:300px;display:flex;flex-direction:column}.styles-module__nav__sMQSv.styles-module__vertical__6EFeu.styles-module__collapsed__eIVC7{min-width:auto;max-width:70px}.styles-module__nav__sMQSv.styles-module__horizontal__5UU20{display:flex;flex-direction:row;width:100%;padding:.5rem 1rem;gap:.5rem}.styles-module__navItemWrapper__Sc9wi{position:relative}.styles-module__navItem__7O2YX{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;width:100%;border:none;background:transparent;color:#e0e0e0;font-size:.875rem;font-weight:500;text-decoration:none;border-radius:.375rem;cursor:pointer;transition:all .2s ease;position:relative}.styles-module__navItem__7O2YX:hover:not(.styles-module__disabled__hvWkN){background:#ffffff14;color:#3b82f6}.styles-module__navItem__7O2YX.styles-module__disabled__hvWkN{opacity:.5;cursor:not-allowed}.styles-module__navItem__7O2YX.styles-module__nested__oejUs{padding-left:2.5rem}.styles-module__nav__sMQSv.styles-module__horizontal__5UU20 .styles-module__navItem__7O2YX{padding:.75rem 1rem;white-space:nowrap}.styles-module__nav__sMQSv.styles-module__collapsed__eIVC7 .styles-module__navItem__7O2YX{justify-content:center;padding:.75rem}.styles-module__icon__SLdZe{font-size:1.125rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#9ca3af;transition:color .2s ease}.styles-module__navItem__7O2YX:hover:not(.styles-module__disabled__hvWkN) .styles-module__icon__SLdZe{color:#3b82f6}.styles-module__label__pji80{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.styles-module__badge__03qDH{margin-left:auto;font-size:.75rem;padding:.125rem .5rem;background:#3b82f633;border:1px solid #3b82f6;border-radius:1rem;color:#3b82f6;font-weight:600}.styles-module__expandIcon__bGlQG,.styles-module__dropdownIcon__uf35v{font-size:.625rem;color:#9ca3af;transition:transform .2s ease;margin-left:auto;flex-shrink:0}.styles-module__expandIcon__bGlQG.styles-module__expanded__2R6-v{transform:rotate(90deg)}.styles-module__children__sfAGb{margin-top:.25rem;animation:styles-module__slideDown__xKrR1 .2s ease}@keyframes styles-module__slideDown__xKrR1{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}.styles-module__nav__sMQSv.styles-module__horizontal__5UU20 .styles-module__navItemWrapper__Sc9wi{position:relative}.styles-module__nav__sMQSv.styles-module__horizontal__5UU20 .styles-module__navItemWrapper__Sc9wi:hover>.styles-module__dropdown__LuTLW{opacity:1;visibility:visible;transform:translateY(0)}.styles-module__dropdown__LuTLW{position:absolute;top:100%;left:0;margin-top:.5rem;min-width:200px;background:#1e1e28fa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);border-radius:.5rem;padding:.5rem;box-shadow:0 10px 25px #0000004d;opacity:0;visibility:hidden;transform:translateY(-.5rem);transition:all .2s ease;z-index:1000}.styles-module__dropdown__LuTLW .styles-module__navItem__7O2YX{padding:.75rem 1rem}.styles-module__megaMenu__02Wp7{min-width:600px;max-width:900px;left:50%;transform:translate(-50%) translateY(-.5rem)}.styles-module__nav__sMQSv.styles-module__horizontal__5UU20 .styles-module__megaMenuWrapper__yLvBH:hover>.styles-module__megaMenu__02Wp7{transform:translate(-50%) translateY(0)}.styles-module__megaMenuGrid__4FrxU{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;padding:.5rem}.styles-module__megaMenuColumn__DI0z2{display:flex;flex-direction:column}@media (max-width: 768px){.styles-module__nav__sMQSv.styles-module__horizontal__5UU20{flex-direction:column;padding:.5rem}.styles-module__dropdown__LuTLW{position:static;opacity:1;visibility:visible;transform:none;margin-top:.25rem;box-shadow:none;background:#28283280}.styles-module__megaMenu__02Wp7{min-width:auto;max-width:none;left:auto;transform:none}.styles-module__megaMenuGrid__4FrxU{grid-template-columns:1fr}}.light-mode .styles-module__nav__sMQSv{background:#fffffff2;border-color:#00000026}.light-mode .styles-module__navItem__7O2YX{color:#111827}.light-mode .styles-module__navItem__7O2YX:hover:not(.styles-module__disabled__hvWkN){background:#0000000d;color:#3b82f6}.light-mode .styles-module__icon__SLdZe{color:#6b7280}.light-mode .styles-module__navItem__7O2YX:hover:not(.styles-module__disabled__hvWkN) .styles-module__icon__SLdZe{color:#3b82f6}.light-mode .styles-module__badge__03qDH{background:#3b82f61a}.light-mode .styles-module__expandIcon__bGlQG,.light-mode .styles-module__dropdownIcon__uf35v{color:#6b7280}.light-mode .styles-module__dropdown__LuTLW{background:#fffffffa;border-color:#00000026;box-shadow:0 10px 25px #0000001a}@media (max-width: 768px){.light-mode .styles-module__dropdown__LuTLW{background:#f0f0f5cc}}
|