@octaviaflow/core 0.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ActionDrawer/ActionDrawer.d.ts +19 -0
- package/dist/components/ActionDrawer/ActionDrawer.d.ts.map +1 -0
- package/dist/components/ActionDrawer/index.d.ts +3 -0
- package/dist/components/ActionDrawer/index.d.ts.map +1 -0
- package/dist/components/AuthCard/AuthCard.d.ts +48 -0
- package/dist/components/AuthCard/AuthCard.d.ts.map +1 -0
- package/dist/components/AuthCard/index.d.ts +2 -0
- package/dist/components/AuthCard/index.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.d.ts +20 -0
- package/dist/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Avatar/index.d.ts.map +1 -0
- package/dist/components/Badge/Badge.d.ts +13 -0
- package/dist/components/Badge/Badge.d.ts.map +1 -0
- package/dist/components/Badge/index.d.ts +2 -0
- package/dist/components/Badge/index.d.ts.map +1 -0
- package/dist/components/Banner/Banner.d.ts +14 -0
- package/dist/components/Banner/Banner.d.ts.map +1 -0
- package/dist/components/Banner/index.d.ts +2 -0
- package/dist/components/Banner/index.d.ts.map +1 -0
- package/dist/components/BarChart/BarChart.d.ts +17 -0
- package/dist/components/BarChart/BarChart.d.ts.map +1 -0
- package/dist/components/BarChart/index.d.ts +2 -0
- package/dist/components/BarChart/index.d.ts.map +1 -0
- package/dist/components/BlogCard/BlogCard.d.ts +13 -0
- package/dist/components/BlogCard/BlogCard.d.ts.map +1 -0
- package/dist/components/BlogCard/index.d.ts +2 -0
- package/dist/components/BlogCard/index.d.ts.map +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.d.ts +13 -0
- package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/components/Breadcrumb/index.d.ts +2 -0
- package/dist/components/Breadcrumb/index.d.ts.map +1 -0
- package/dist/components/Button/Button.d.ts +12 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Calendar/Calendar.d.ts +17 -0
- package/dist/components/Calendar/Calendar.d.ts.map +1 -0
- package/dist/components/Calendar/index.d.ts +2 -0
- package/dist/components/Calendar/index.d.ts.map +1 -0
- package/dist/components/Callout/Callout.d.ts +10 -0
- package/dist/components/Callout/Callout.d.ts.map +1 -0
- package/dist/components/Callout/index.d.ts +2 -0
- package/dist/components/Callout/index.d.ts.map +1 -0
- package/dist/components/Card/Card.d.ts +11 -0
- package/dist/components/Card/Card.d.ts.map +1 -0
- package/dist/components/Card/index.d.ts +2 -0
- package/dist/components/Card/index.d.ts.map +1 -0
- package/dist/components/ChatBubble/ChatBubble.d.ts +13 -0
- package/dist/components/ChatBubble/ChatBubble.d.ts.map +1 -0
- package/dist/components/ChatBubble/index.d.ts +2 -0
- package/dist/components/ChatBubble/index.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +13 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/Checkbox/index.d.ts.map +1 -0
- package/dist/components/Chip/Chip.d.ts +15 -0
- package/dist/components/Chip/Chip.d.ts.map +1 -0
- package/dist/components/Chip/index.d.ts +2 -0
- package/dist/components/Chip/index.d.ts.map +1 -0
- package/dist/components/ChoiceCard/ChoiceCard.d.ts +13 -0
- package/dist/components/ChoiceCard/ChoiceCard.d.ts.map +1 -0
- package/dist/components/ChoiceCard/index.d.ts +2 -0
- package/dist/components/ChoiceCard/index.d.ts.map +1 -0
- package/dist/components/ColorPicker/ColorPicker.d.ts +14 -0
- package/dist/components/ColorPicker/ColorPicker.d.ts.map +1 -0
- package/dist/components/ColorPicker/index.d.ts +2 -0
- package/dist/components/ColorPicker/index.d.ts.map +1 -0
- package/dist/components/ConditionBuilder/ConditionBuilder.d.ts +37 -0
- package/dist/components/ConditionBuilder/ConditionBuilder.d.ts.map +1 -0
- package/dist/components/ConditionBuilder/index.d.ts +2 -0
- package/dist/components/ConditionBuilder/index.d.ts.map +1 -0
- package/dist/components/ConfigPanel/ConfigPanel.d.ts +13 -0
- package/dist/components/ConfigPanel/ConfigPanel.d.ts.map +1 -0
- package/dist/components/ConfigPanel/index.d.ts +3 -0
- package/dist/components/ConfigPanel/index.d.ts.map +1 -0
- package/dist/components/DataMapper/DataMapper.d.ts +19 -0
- package/dist/components/DataMapper/DataMapper.d.ts.map +1 -0
- package/dist/components/DataMapper/index.d.ts +2 -0
- package/dist/components/DataMapper/index.d.ts.map +1 -0
- package/dist/components/DatePicker/DatePicker.d.ts +17 -0
- package/dist/components/DatePicker/DatePicker.d.ts.map +1 -0
- package/dist/components/DatePicker/index.d.ts +2 -0
- package/dist/components/DatePicker/index.d.ts.map +1 -0
- package/dist/components/DescriptionList/DescriptionList.d.ts +16 -0
- package/dist/components/DescriptionList/DescriptionList.d.ts.map +1 -0
- package/dist/components/DescriptionList/index.d.ts +2 -0
- package/dist/components/DescriptionList/index.d.ts.map +1 -0
- package/dist/components/Dialog/Dialog.d.ts +15 -0
- package/dist/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/components/Dialog/index.d.ts +2 -0
- package/dist/components/Dialog/index.d.ts.map +1 -0
- package/dist/components/DonutChart/DonutChart.d.ts +17 -0
- package/dist/components/DonutChart/DonutChart.d.ts.map +1 -0
- package/dist/components/DonutChart/index.d.ts +2 -0
- package/dist/components/DonutChart/index.d.ts.map +1 -0
- package/dist/components/Drawer/Drawer.d.ts +17 -0
- package/dist/components/Drawer/Drawer.d.ts.map +1 -0
- package/dist/components/Drawer/index.d.ts +2 -0
- package/dist/components/Drawer/index.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +17 -0
- package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -0
- package/dist/components/DropdownMenu/index.d.ts +2 -0
- package/dist/components/DropdownMenu/index.d.ts.map +1 -0
- package/dist/components/EmptyState/EmptyState.d.ts +10 -0
- package/dist/components/EmptyState/EmptyState.d.ts.map +1 -0
- package/dist/components/EmptyState/index.d.ts +2 -0
- package/dist/components/EmptyState/index.d.ts.map +1 -0
- package/dist/components/ExecutionConsole/ExecutionConsole.d.ts +24 -0
- package/dist/components/ExecutionConsole/ExecutionConsole.d.ts.map +1 -0
- package/dist/components/ExecutionConsole/index.d.ts +3 -0
- package/dist/components/ExecutionConsole/index.d.ts.map +1 -0
- package/dist/components/FeatureCard/FeatureCard.d.ts +15 -0
- package/dist/components/FeatureCard/FeatureCard.d.ts.map +1 -0
- package/dist/components/FeatureCard/index.d.ts +2 -0
- package/dist/components/FeatureCard/index.d.ts.map +1 -0
- package/dist/components/FlowCanvas/CanvasToolbar.d.ts +25 -0
- package/dist/components/FlowCanvas/CanvasToolbar.d.ts.map +1 -0
- package/dist/components/FlowCanvas/FlowCanvas.d.ts +52 -0
- package/dist/components/FlowCanvas/FlowCanvas.d.ts.map +1 -0
- package/dist/components/FlowCanvas/index.d.ts +2 -0
- package/dist/components/FlowCanvas/index.d.ts.map +1 -0
- package/dist/components/FlowEdge/FlowEdge.d.ts +22 -0
- package/dist/components/FlowEdge/FlowEdge.d.ts.map +1 -0
- package/dist/components/FlowEdge/index.d.ts +2 -0
- package/dist/components/FlowEdge/index.d.ts.map +1 -0
- package/dist/components/FlowMinimap/FlowMinimap.d.ts +35 -0
- package/dist/components/FlowMinimap/FlowMinimap.d.ts.map +1 -0
- package/dist/components/FlowMinimap/index.d.ts +3 -0
- package/dist/components/FlowMinimap/index.d.ts.map +1 -0
- package/dist/components/FlowNode/FlowNode.d.ts +57 -0
- package/dist/components/FlowNode/FlowNode.d.ts.map +1 -0
- package/dist/components/FlowNode/index.d.ts +2 -0
- package/dist/components/FlowNode/index.d.ts.map +1 -0
- package/dist/components/FlowToolbar/FlowToolbar.d.ts +55 -0
- package/dist/components/FlowToolbar/FlowToolbar.d.ts.map +1 -0
- package/dist/components/FlowToolbar/index.d.ts +2 -0
- package/dist/components/FlowToolbar/index.d.ts.map +1 -0
- package/dist/components/FormSection/FormSection.d.ts +11 -0
- package/dist/components/FormSection/FormSection.d.ts.map +1 -0
- package/dist/components/FormSection/index.d.ts +2 -0
- package/dist/components/FormSection/index.d.ts.map +1 -0
- package/dist/components/HoverCard/HoverCard.d.ts +13 -0
- package/dist/components/HoverCard/HoverCard.d.ts.map +1 -0
- package/dist/components/HoverCard/index.d.ts +2 -0
- package/dist/components/HoverCard/index.d.ts.map +1 -0
- package/dist/components/IconCard/IconCard.d.ts +12 -0
- package/dist/components/IconCard/IconCard.d.ts.map +1 -0
- package/dist/components/IconCard/index.d.ts +2 -0
- package/dist/components/IconCard/index.d.ts.map +1 -0
- package/dist/components/Input/Input.d.ts +13 -0
- package/dist/components/Input/Input.d.ts.map +1 -0
- package/dist/components/Input/index.d.ts +2 -0
- package/dist/components/Input/index.d.ts.map +1 -0
- package/dist/components/KanbanCard/KanbanCard.d.ts +13 -0
- package/dist/components/KanbanCard/KanbanCard.d.ts.map +1 -0
- package/dist/components/KanbanCard/index.d.ts +2 -0
- package/dist/components/KanbanCard/index.d.ts.map +1 -0
- package/dist/components/Kbd/Kbd.d.ts +15 -0
- package/dist/components/Kbd/Kbd.d.ts.map +1 -0
- package/dist/components/Kbd/index.d.ts +2 -0
- package/dist/components/Kbd/index.d.ts.map +1 -0
- package/dist/components/LineChart/LineChart.d.ts +17 -0
- package/dist/components/LineChart/LineChart.d.ts.map +1 -0
- package/dist/components/LineChart/index.d.ts +2 -0
- package/dist/components/LineChart/index.d.ts.map +1 -0
- package/dist/components/LinkButton/LinkButton.d.ts +11 -0
- package/dist/components/LinkButton/LinkButton.d.ts.map +1 -0
- package/dist/components/LinkButton/index.d.ts +2 -0
- package/dist/components/LinkButton/index.d.ts.map +1 -0
- package/dist/components/MultiSelect/MultiSelect.d.ts +29 -0
- package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -0
- package/dist/components/MultiSelect/index.d.ts +2 -0
- package/dist/components/MultiSelect/index.d.ts.map +1 -0
- package/dist/components/NumberInput/NumberInput.d.ts +20 -0
- package/dist/components/NumberInput/NumberInput.d.ts.map +1 -0
- package/dist/components/NumberInput/index.d.ts +2 -0
- package/dist/components/NumberInput/index.d.ts.map +1 -0
- package/dist/components/OTPInput/OTPInput.d.ts +16 -0
- package/dist/components/OTPInput/OTPInput.d.ts.map +1 -0
- package/dist/components/OTPInput/index.d.ts +2 -0
- package/dist/components/OTPInput/index.d.ts.map +1 -0
- package/dist/components/PageHeader/PageHeader.d.ts +16 -0
- package/dist/components/PageHeader/PageHeader.d.ts.map +1 -0
- package/dist/components/PageHeader/index.d.ts +2 -0
- package/dist/components/PageHeader/index.d.ts.map +1 -0
- package/dist/components/PasswordInput/PasswordInput.d.ts +17 -0
- package/dist/components/PasswordInput/PasswordInput.d.ts.map +1 -0
- package/dist/components/PasswordInput/index.d.ts +2 -0
- package/dist/components/PasswordInput/index.d.ts.map +1 -0
- package/dist/components/PhoneInput/PhoneInput.d.ts +23 -0
- package/dist/components/PhoneInput/PhoneInput.d.ts.map +1 -0
- package/dist/components/PhoneInput/index.d.ts +2 -0
- package/dist/components/PhoneInput/index.d.ts.map +1 -0
- package/dist/components/Popover/Popover.d.ts +18 -0
- package/dist/components/Popover/Popover.d.ts.map +1 -0
- package/dist/components/Popover/index.d.ts +2 -0
- package/dist/components/Popover/index.d.ts.map +1 -0
- package/dist/components/PricingCard/PricingCard.d.ts +14 -0
- package/dist/components/PricingCard/PricingCard.d.ts.map +1 -0
- package/dist/components/PricingCard/index.d.ts +2 -0
- package/dist/components/PricingCard/index.d.ts.map +1 -0
- package/dist/components/ProductCard/ProductCard.d.ts +13 -0
- package/dist/components/ProductCard/ProductCard.d.ts.map +1 -0
- package/dist/components/ProductCard/index.d.ts +2 -0
- package/dist/components/ProductCard/index.d.ts.map +1 -0
- package/dist/components/ProgressRing/ProgressRing.d.ts +16 -0
- package/dist/components/ProgressRing/ProgressRing.d.ts.map +1 -0
- package/dist/components/ProgressRing/index.d.ts +2 -0
- package/dist/components/ProgressRing/index.d.ts.map +1 -0
- package/dist/components/Quote/Quote.d.ts +11 -0
- package/dist/components/Quote/Quote.d.ts.map +1 -0
- package/dist/components/Quote/index.d.ts +2 -0
- package/dist/components/Quote/index.d.ts.map +1 -0
- package/dist/components/Radio/Radio.d.ts +8 -0
- package/dist/components/Radio/Radio.d.ts.map +1 -0
- package/dist/components/Radio/RadioGroup.d.ts +16 -0
- package/dist/components/Radio/RadioGroup.d.ts.map +1 -0
- package/dist/components/Radio/index.d.ts +3 -0
- package/dist/components/Radio/index.d.ts.map +1 -0
- package/dist/components/RangeSlider/RangeSlider.d.ts +16 -0
- package/dist/components/RangeSlider/RangeSlider.d.ts.map +1 -0
- package/dist/components/RangeSlider/index.d.ts +2 -0
- package/dist/components/RangeSlider/index.d.ts.map +1 -0
- package/dist/components/Rating/Rating.d.ts +16 -0
- package/dist/components/Rating/Rating.d.ts.map +1 -0
- package/dist/components/Rating/index.d.ts +2 -0
- package/dist/components/Rating/index.d.ts.map +1 -0
- package/dist/components/Ribbon/Ribbon.d.ts +10 -0
- package/dist/components/Ribbon/Ribbon.d.ts.map +1 -0
- package/dist/components/Ribbon/index.d.ts +2 -0
- package/dist/components/Ribbon/index.d.ts.map +1 -0
- package/dist/components/Select/Select.d.ts +26 -0
- package/dist/components/Select/Select.d.ts.map +1 -0
- package/dist/components/Select/index.d.ts +2 -0
- package/dist/components/Select/index.d.ts.map +1 -0
- package/dist/components/SettingsRow/SettingsRow.d.ts +11 -0
- package/dist/components/SettingsRow/SettingsRow.d.ts.map +1 -0
- package/dist/components/SettingsRow/index.d.ts +2 -0
- package/dist/components/SettingsRow/index.d.ts.map +1 -0
- package/dist/components/Sheet/Sheet.d.ts +18 -0
- package/dist/components/Sheet/Sheet.d.ts.map +1 -0
- package/dist/components/Sheet/index.d.ts +2 -0
- package/dist/components/Sheet/index.d.ts.map +1 -0
- package/dist/components/Sidebar/Sidebar.d.ts +60 -0
- package/dist/components/Sidebar/Sidebar.d.ts.map +1 -0
- package/dist/components/Sidebar/index.d.ts +2 -0
- package/dist/components/Sidebar/index.d.ts.map +1 -0
- package/dist/components/Skeleton/Skeleton.d.ts +9 -0
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/components/Skeleton/index.d.ts +2 -0
- package/dist/components/Skeleton/index.d.ts.map +1 -0
- package/dist/components/SlideoutPanel/SlideoutPanel.d.ts +13 -0
- package/dist/components/SlideoutPanel/SlideoutPanel.d.ts.map +1 -0
- package/dist/components/SlideoutPanel/index.d.ts +2 -0
- package/dist/components/SlideoutPanel/index.d.ts.map +1 -0
- package/dist/components/Slider/Slider.d.ts +18 -0
- package/dist/components/Slider/Slider.d.ts.map +1 -0
- package/dist/components/Slider/index.d.ts +2 -0
- package/dist/components/Slider/index.d.ts.map +1 -0
- package/dist/components/SocialButton/SocialButton.d.ts +11 -0
- package/dist/components/SocialButton/SocialButton.d.ts.map +1 -0
- package/dist/components/SocialButton/index.d.ts +2 -0
- package/dist/components/SocialButton/index.d.ts.map +1 -0
- package/dist/components/Sparkline/Sparkline.d.ts +12 -0
- package/dist/components/Sparkline/Sparkline.d.ts.map +1 -0
- package/dist/components/Sparkline/index.d.ts +2 -0
- package/dist/components/Sparkline/index.d.ts.map +1 -0
- package/dist/components/Spinner/Spinner.d.ts +7 -0
- package/dist/components/Spinner/Spinner.d.ts.map +1 -0
- package/dist/components/Spinner/index.d.ts +2 -0
- package/dist/components/Spinner/index.d.ts.map +1 -0
- package/dist/components/Stat/Stat.d.ts +13 -0
- package/dist/components/Stat/Stat.d.ts.map +1 -0
- package/dist/components/Stat/index.d.ts +2 -0
- package/dist/components/Stat/index.d.ts.map +1 -0
- package/dist/components/Switch/Switch.d.ts +12 -0
- package/dist/components/Switch/Switch.d.ts.map +1 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switch/index.d.ts.map +1 -0
- package/dist/components/Table/Table.d.ts +25 -0
- package/dist/components/Table/Table.d.ts.map +1 -0
- package/dist/components/Table/index.d.ts +2 -0
- package/dist/components/Table/index.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.d.ts +18 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs/index.d.ts +2 -0
- package/dist/components/Tabs/index.d.ts.map +1 -0
- package/dist/components/TagsInput/TagsInput.d.ts +17 -0
- package/dist/components/TagsInput/TagsInput.d.ts.map +1 -0
- package/dist/components/TagsInput/index.d.ts +2 -0
- package/dist/components/TagsInput/index.d.ts.map +1 -0
- package/dist/components/TestimonialCard/TestimonialCard.d.ts +12 -0
- package/dist/components/TestimonialCard/TestimonialCard.d.ts.map +1 -0
- package/dist/components/TestimonialCard/index.d.ts +2 -0
- package/dist/components/TestimonialCard/index.d.ts.map +1 -0
- package/dist/components/Textarea/Textarea.d.ts +12 -0
- package/dist/components/Textarea/Textarea.d.ts.map +1 -0
- package/dist/components/Textarea/index.d.ts +2 -0
- package/dist/components/Textarea/index.d.ts.map +1 -0
- package/dist/components/TimePicker/TimePicker.d.ts +23 -0
- package/dist/components/TimePicker/TimePicker.d.ts.map +1 -0
- package/dist/components/TimePicker/index.d.ts +2 -0
- package/dist/components/TimePicker/index.d.ts.map +1 -0
- package/dist/components/Timeline/Timeline.d.ts +17 -0
- package/dist/components/Timeline/Timeline.d.ts.map +1 -0
- package/dist/components/Timeline/index.d.ts +2 -0
- package/dist/components/Timeline/index.d.ts.map +1 -0
- package/dist/components/TimezonePicker/TimezonePicker.d.ts +25 -0
- package/dist/components/TimezonePicker/TimezonePicker.d.ts.map +1 -0
- package/dist/components/TimezonePicker/index.d.ts +2 -0
- package/dist/components/TimezonePicker/index.d.ts.map +1 -0
- package/dist/components/Toast/Toast.d.ts +39 -0
- package/dist/components/Toast/Toast.d.ts.map +1 -0
- package/dist/components/Toast/index.d.ts +2 -0
- package/dist/components/Toast/index.d.ts.map +1 -0
- package/dist/components/Toggle/Toggle.d.ts +18 -0
- package/dist/components/Toggle/Toggle.d.ts.map +1 -0
- package/dist/components/Toggle/index.d.ts +2 -0
- package/dist/components/Toggle/index.d.ts.map +1 -0
- package/dist/components/Toolbar/Toolbar.d.ts +20 -0
- package/dist/components/Toolbar/Toolbar.d.ts.map +1 -0
- package/dist/components/Toolbar/index.d.ts +2 -0
- package/dist/components/Toolbar/index.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +11 -0
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip/index.d.ts +2 -0
- package/dist/components/Tooltip/index.d.ts.map +1 -0
- package/dist/components/TopBar/TopBar.d.ts +16 -0
- package/dist/components/TopBar/TopBar.d.ts.map +1 -0
- package/dist/components/TopBar/index.d.ts +2 -0
- package/dist/components/TopBar/index.d.ts.map +1 -0
- package/dist/components/UserCard/UserCard.d.ts +16 -0
- package/dist/components/UserCard/UserCard.d.ts.map +1 -0
- package/dist/components/UserCard/index.d.ts +2 -0
- package/dist/components/UserCard/index.d.ts.map +1 -0
- package/dist/components/WorkflowEditor/WorkflowEditor.d.ts +43 -0
- package/dist/components/WorkflowEditor/WorkflowEditor.d.ts.map +1 -0
- package/dist/components/WorkflowEditor/index.d.ts +2 -0
- package/dist/components/WorkflowEditor/index.d.ts.map +1 -0
- package/dist/hooks/useWorkflow.d.ts +42 -0
- package/dist/hooks/useWorkflow.d.ts.map +1 -0
- package/dist/index.cjs +10553 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +93 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10460 -0
- package/dist/index.js.map +1 -0
- package/dist/provider/OdsProvider.d.ts +13 -0
- package/dist/provider/OdsProvider.d.ts.map +1 -0
- package/dist/stories/_shared/Showcase.d.ts +25 -0
- package/dist/stories/_shared/Showcase.d.ts.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/utils/cn.d.ts +3 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/motion.d.ts +78 -0
- package/dist/utils/motion.d.ts.map +1 -0
- package/dist/workflow/configStatus.d.ts +36 -0
- package/dist/workflow/configStatus.d.ts.map +1 -0
- package/dist/workflow/layout.d.ts +17 -0
- package/dist/workflow/layout.d.ts.map +1 -0
- package/dist/workflow/types.d.ts +272 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workflow/validator.d.ts +8 -0
- package/dist/workflow/validator.d.ts.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DeepPartial, OdsConfig } from "@octaviaflow/config";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
type OdsProviderProps = {
|
|
4
|
+
config?: DeepPartial<OdsConfig>;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
};
|
|
7
|
+
export declare function OdsProvider({ config: userConfig, children }: OdsProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare function useOds(): OdsConfig;
|
|
9
|
+
type MotionPreset = Record<string, unknown>;
|
|
10
|
+
type MotionPresets = Record<string, MotionPreset>;
|
|
11
|
+
export declare function useOdsMotion(): MotionPresets;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=OdsProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OdsProvider.d.ts","sourceRoot":"","sources":["../../src/provider/OdsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAiB,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAC;AAUtF,KAAK,gBAAgB,GAAG;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CA4B7E;AAED,wBAAgB,MAAM,IAAI,SAAS,CAMlC;AAED,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAWlD,wBAAgB,YAAY,IAAI,aAAa,CAsB5C"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
/** Grid of named visual samples */
|
|
3
|
+
export declare function Grid({ children, cols }: {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
cols?: number;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
/** Single swatch block (colors, radius, etc.) */
|
|
8
|
+
export declare function Swatch({ label, value, children, height, }: {
|
|
9
|
+
label: string;
|
|
10
|
+
value?: string;
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
height?: number;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
/** Labeled section header */
|
|
15
|
+
export declare function Section({ title, children }: {
|
|
16
|
+
title: string;
|
|
17
|
+
children: ReactNode;
|
|
18
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
/** Utility class demo row: class name + visual example */
|
|
20
|
+
export declare function UtilRow({ className, description, preview, }: {
|
|
21
|
+
className: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
preview: ReactNode;
|
|
24
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
//# sourceMappingURL=Showcase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Showcase.d.ts","sourceRoot":"","sources":["../../../src/stories/_shared/Showcase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,mCAAmC;AACnC,wBAAgB,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,2CAYlF;AAED,iDAAiD;AACjD,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAAW,GACZ,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,2CA6BA;AAED,6BAA6B;AAC7B,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAkBlF;AAED,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,EACtB,SAAS,EACT,WAAW,EACX,OAAO,GACR,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;CACpB,2CAiCA"}
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{font-family:"Outfit","Lufga",-apple-system,BlinkMacSystemFont,sans-serif;font-size:13px;line-height:1.5;color:#1e1b4b;background:linear-gradient(135deg, #f0f4ff 0%, #faf5ff 100%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code,pre,.font-mono{font-family:"JetBrains Mono",monospace !important}::selection{background:rgba(99,102,241,.15);color:#1e1b4b}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:rgba(99,102,241,.2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:rgba(99,102,241,.4)}.ods-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--ods-space-2);border:none;border-radius:var(--ods-radius);font-family:var(--ods-font-body);font-weight:var(--ods-font-medium);line-height:var(--ods-leading-none);cursor:pointer;transition:background var(--ods-duration-base) var(--ods-ease-in-out),color var(--ods-duration-base) var(--ods-ease-in-out),border-color var(--ods-duration-base) var(--ods-ease-in-out),box-shadow var(--ods-duration-base) var(--ods-ease-in-out),transform var(--ods-duration-base) var(--ods-ease-in-out);user-select:none;white-space:nowrap;overflow:hidden;outline:none}.ods-btn:focus-visible{outline:2px solid var(--ods-color-brand-500);outline-offset:2px}.ods-btn:disabled,.ods-btn[aria-disabled=true]{cursor:not-allowed;opacity:.6;pointer-events:none}.ods-btn__content{display:inline-flex;align-items:center;gap:var(--ods-space-2);transition:opacity var(--ods-duration-fast) var(--ods-ease-in-out)}.ods-btn__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ods-btn__icon svg{display:block;width:1em;height:1em}.ods-btn__label{display:inline-block}.ods-btn--loading .ods-btn__content{opacity:0}.ods-btn__spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:inherit}.ods-btn__spinner svg{animation:ods-btn-spin .8s linear infinite}.ods-btn--primary{background:var(--ods-gradient-primary);color:var(--ods-color-neutral-0)}.ods-btn--primary:hover:not(:disabled){box-shadow:var(--ods-shadow-brand);transform:translateY(-1px)}.ods-btn--secondary{background:var(--ods-color-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--ods-color-glass-border);color:var(--ods-color-neutral-900)}.ods-btn--secondary:hover:not(:disabled){box-shadow:var(--ods-shadow-xl);transform:translateY(-2px)}.ods-btn--ghost{background:rgba(0,0,0,0);color:var(--ods-color-brand-500)}.ods-btn--ghost:hover:not(:disabled){background:rgba(99,102,241,.08)}.ods-btn--danger{background:var(--ods-gradient-danger);color:var(--ods-color-neutral-0)}.ods-btn--danger:hover:not(:disabled){box-shadow:0 8px 24px -4px rgba(239,68,68,.4);transform:translateY(-1px)}.ods-btn--icon{background:rgba(0,0,0,0);color:var(--ods-color-neutral-500);aspect-ratio:1/1}.ods-btn--icon:hover:not(:disabled){background:rgba(99,102,241,.08);color:var(--ods-color-brand-500)}.ods-btn--sm{height:32px;padding:0 var(--ods-space-3);font-size:var(--ods-text-sm);border-radius:var(--ods-radius-md)}.ods-btn--sm .ods-btn__icon svg{width:14px;height:14px}.ods-btn--sm.ods-btn--icon{width:32px;padding:0}.ods-btn--md{height:40px;padding:0 var(--ods-space-5);font-size:var(--ods-text-md)}.ods-btn--md .ods-btn__icon svg{width:16px;height:16px}.ods-btn--md.ods-btn--icon{width:40px;padding:0}.ods-btn--lg{height:48px;padding:0 var(--ods-space-7);font-size:var(--ods-text-lg)}.ods-btn--lg .ods-btn__icon svg{width:18px;height:18px}.ods-btn--lg.ods-btn--icon{width:48px;padding:0}.ods-btn--full{width:100%}@keyframes ods-btn-spin{to{transform:rotate(360deg)}}.ods-input{display:flex;flex-direction:column;width:100%}.ods-input__label{font-size:12px;font-weight:500;color:#6b7280;display:block;margin-bottom:4px}.ods-input__wrapper{position:relative;display:flex;align-items:center;width:100%}.ods-input__field{width:100%;padding:10px 12px;border-radius:10px;font-family:inherit;font-size:13px;color:#1e1b4b;outline:none;background:hsla(0,0%,100%,.7);backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.8);transition:all .2s ease}.ods-input__field:hover{border-color:rgba(99,102,241,.2)}.ods-input__field:focus{border-color:rgba(99,102,241,.3);box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-input__field::placeholder{color:#9ca3af}.ods-input__field:disabled{opacity:.6;cursor:not-allowed}.ods-input--error .ods-input__field{border-color:#ef4444}.ods-input--error .ods-input__field:focus{box-shadow:0 0 0 3px rgba(239,68,68,.15)}.ods-input__error-message{font-size:12px;color:#ef4444;margin-top:4px}.ods-input__helper{font-size:12px;color:#6b7280;margin-top:4px}.ods-input__icon--left,.ods-input__icon--right{position:absolute;color:#6b7280;display:inline-flex;align-items:center}.ods-input__icon--left{left:12px;top:50%;transform:translateY(-50%)}.ods-input__icon--right{right:12px;top:50%;transform:translateY(-50%)}.ods-input__field--with-left-icon{padding-left:36px}.ods-input__field--with-right-icon{padding-right:36px}.ods-input--sm .ods-input__field{padding:8px 10px;font-size:12px}.ods-input--lg .ods-input__field{padding:12px 14px;font-size:14px}.ods-input--disabled{opacity:.6;pointer-events:none}.ods-textarea{display:flex;flex-direction:column;width:100%}.ods-textarea__label{font-size:12px;font-weight:500;color:#6b7280;display:block;margin-bottom:4px}.ods-textarea__wrapper{position:relative;width:100%}.ods-textarea__field{width:100%;min-height:80px;padding:10px 12px;border-radius:10px;font-family:inherit;font-size:13px;line-height:1.5;color:#1e1b4b;outline:none;background:hsla(0,0%,100%,.7);backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.8);transition:all .2s ease;resize:vertical}.ods-textarea__field:hover{border-color:rgba(99,102,241,.2)}.ods-textarea__field:focus{border-color:rgba(99,102,241,.3);box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-textarea__field::placeholder{color:#9ca3af}.ods-textarea__field:disabled{opacity:.6;cursor:not-allowed}.ods-textarea__field--no-resize{resize:none}.ods-textarea__count{font-size:11px;color:#9ca3af;text-align:right;margin-top:4px;user-select:none}.ods-textarea--error .ods-textarea__field{border-color:#ef4444}.ods-textarea--error .ods-textarea__field:focus{box-shadow:0 0 0 3px rgba(239,68,68,.15)}.ods-textarea__error-message{font-size:12px;color:#ef4444;margin-top:4px}.ods-textarea--disabled{opacity:.6;pointer-events:none}.ods-textarea--sm .ods-textarea__field{padding:8px 10px;font-size:12px}.ods-textarea--lg .ods-textarea__field{padding:12px 14px;font-size:14px}@keyframes ods-spin{to{transform:rotate(360deg)}}.ods-spinner{display:inline-block;animation:ods-spin .8s linear infinite;color:currentColor}.ods-spinner__circle{stroke:currentColor}.ods-spinner--sm{width:16px;height:16px}.ods-spinner--md{width:24px;height:24px}.ods-spinner--lg{width:32px;height:32px}.ods-spinner--xl{width:48px;height:48px}.ods-spinner--primary{color:#6366f1}.ods-checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;position:relative}.ods-checkbox--disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.ods-checkbox__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.ods-checkbox__box{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:2px solid #d1d5db;border-radius:4px;background:#fff;transition:all .2s ease;flex-shrink:0}.ods-checkbox__input:focus-visible+.ods-checkbox__box{outline:2px solid #6366f1;outline-offset:2px}.ods-checkbox__box--checked{background:#6366f1;border-color:#6366f1}.ods-checkbox__box--indeterminate{background:#6366f1;border-color:#6366f1}.ods-checkbox__checkmark{width:12px;height:12px}.ods-checkbox__checkmark path{stroke-dasharray:16;stroke-dashoffset:16;transition:stroke-dashoffset .2s ease}.ods-checkbox__checkmark--checked path{stroke-dashoffset:0}.ods-checkbox__dash{width:12px;height:12px}.ods-checkbox__label{font-family:inherit;font-size:13px;color:#1e1b4b;line-height:1.4}.ods-checkbox--sm{gap:4px}.ods-checkbox--sm .ods-checkbox__box{width:14px;height:14px}.ods-checkbox--sm .ods-checkbox__checkmark,.ods-checkbox--sm .ods-checkbox__dash{width:10px;height:10px}.ods-checkbox--sm .ods-checkbox__label{font-size:12px}.ods-radio-group{display:flex;flex-direction:column;gap:8px}.ods-radio-group__label{font-family:inherit;font-size:12px;font-weight:500;color:#6b7280;margin-bottom:4px}.ods-radio-group__items{display:flex;flex-direction:column;gap:8px}.ods-radio-group--horizontal .ods-radio-group__items{flex-direction:row;gap:16px}.ods-radio-group--disabled{opacity:.6;pointer-events:none}.ods-radio{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;position:relative}.ods-radio--disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.ods-radio__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.ods-radio__circle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:2px solid #d1d5db;border-radius:50%;background:#fff;transition:all .2s ease;flex-shrink:0}.ods-radio__input:focus-visible+.ods-radio__circle{outline:2px solid #6366f1;outline-offset:2px}.ods-radio--selected .ods-radio__circle{border-color:#6366f1}.ods-radio__dot{width:8px;height:8px;border-radius:50%;background:#6366f1;transform:scale(0);transition:transform .2s ease}.ods-radio__dot--visible{transform:scale(1)}.ods-radio__label{font-family:inherit;font-size:13px;color:#1e1b4b;line-height:1.4}.ods-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;position:relative}.ods-switch--disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.ods-switch__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.ods-switch__track{position:relative;display:flex;align-items:center;width:44px;height:24px;border-radius:99px;background:#d1d5db;transition:background 180ms cubic-bezier(0.4, 0, 0.2, 1);flex-shrink:0;padding:2px;will-change:background}.ods-switch__input:focus-visible+.ods-switch__track{outline:2px solid #6366f1;outline-offset:2px}.ods-switch__track--on{background:linear-gradient(135deg, #6366f1, #8b5cf6)}.ods-switch__thumb{width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.08);transition:transform 180ms cubic-bezier(0.32, 0.72, 0, 1);transform:translateX(0);will-change:transform}.ods-switch__track--on .ods-switch__thumb{transform:translateX(20px)}.ods-switch__label{font-family:inherit;font-size:13px;color:#1e1b4b;line-height:1.4}.ods-switch--sm .ods-switch__track{width:36px;height:20px;padding:2px}.ods-switch--sm .ods-switch__thumb{width:16px;height:16px}.ods-switch--sm .ods-switch__track--on .ods-switch__thumb{transform:translateX(16px)}.ods-switch--sm .ods-switch__label{font-size:12px}.ods-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;padding:2px 8px;border-radius:99px;white-space:nowrap}.ods-badge--success{color:#10b981;background:rgba(16,185,129,.1)}.ods-badge--warning{color:#f59e0b;background:rgba(245,158,11,.1)}.ods-badge--error{color:#ef4444;background:rgba(239,68,68,.1)}.ods-badge--info{color:#6366f1;background:rgba(99,102,241,.1)}.ods-badge--neutral{color:#6b7280;background:#f3f4f6}.ods-badge--outlined{background:rgba(0,0,0,0);border:1px solid}.ods-badge--outlined.ods-badge--success{border-color:rgba(16,185,129,.3)}.ods-badge--outlined.ods-badge--warning{border-color:rgba(245,158,11,.3)}.ods-badge--outlined.ods-badge--error{border-color:rgba(239,68,68,.3)}.ods-badge--outlined.ods-badge--info{border-color:rgba(99,102,241,.3)}.ods-badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor}.ods-badge__text{display:inline-block}.ods-badge__close{width:14px;height:14px;cursor:pointer;opacity:.6;border:none;background:rgba(0,0,0,0);color:currentColor}.ods-badge__close:hover{opacity:1}.ods-badge--sm{font-size:10px;padding:1px 6px}.ods-avatar{position:relative;display:inline-flex;flex-shrink:0}.ods-avatar--xs{width:24px;height:24px;font-size:10px}.ods-avatar--sm{width:32px;height:32px;font-size:12px}.ods-avatar--md{width:40px;height:40px;font-size:14px}.ods-avatar--lg{width:48px;height:48px;font-size:16px}.ods-avatar--xl{width:64px;height:64px;font-size:20px}.ods-avatar__inner{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;overflow:hidden;background:rgba(99,102,241,.1)}.ods-avatar__image{width:100%;height:100%;object-fit:cover}.ods-avatar__initials{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-family:inherit;font-weight:600;color:#6366f1;background:rgba(99,102,241,.1);text-transform:uppercase;line-height:1}.ods-avatar__status{position:absolute;bottom:0;right:0;width:28%;height:28%;min-width:8px;min-height:8px;border-radius:50%;border:2px solid #fff;box-sizing:content-box}.ods-avatar__status--online{background:#10b981}.ods-avatar__status--offline{background:#d1d5db}.ods-avatar__status--busy{background:#ef4444}.ods-avatar__status--away{background:#f59e0b}.ods-avatar-stack{display:inline-flex;align-items:center}.ods-avatar-stack>.ods-avatar{margin-left:-8px}.ods-avatar-stack>.ods-avatar>.ods-avatar__inner{box-shadow:0 0 0 2px #fff}.ods-avatar-stack>.ods-avatar:first-child{margin-left:0}.ods-avatar-stack>.ods-avatar:nth-child(1){z-index:6}.ods-avatar-stack>.ods-avatar:nth-child(2){z-index:5}.ods-avatar-stack>.ods-avatar:nth-child(3){z-index:4}.ods-avatar-stack>.ods-avatar:nth-child(4){z-index:3}.ods-avatar-stack>.ods-avatar:nth-child(5){z-index:2}.ods-avatar-stack>.ods-avatar:nth-child(6){z-index:1}.ods-avatar-stack__overflow>.ods-avatar__inner{background:#eef0f7}.ods-avatar-stack__overflow .ods-avatar__initials{background:#eef0f7;color:#4d5768;font-size:12px}.ods-tooltip{position:relative;background:rgba(30,27,75,.95);color:#fff;font-family:"Lufga","Outfit",-apple-system,sans-serif;font-size:12px;font-weight:500;line-height:1.4;padding:6px 12px;border-radius:8px;max-width:240px;word-wrap:break-word;pointer-events:none;box-shadow:0 8px 24px rgba(30,27,75,.2)}.ods-tooltip__arrow{position:absolute;width:8px;height:8px;background:rgba(30,27,75,.95);transform:rotate(45deg);pointer-events:none;z-index:-1}.ods-tooltip[data-position=top] .ods-tooltip__arrow{bottom:-4px;left:50%;margin-left:-4px}.ods-tooltip[data-position=bottom] .ods-tooltip__arrow{top:-4px;left:50%;margin-left:-4px}.ods-tooltip[data-position=left] .ods-tooltip__arrow{right:-4px;top:50%;margin-top:-4px}.ods-tooltip[data-position=right] .ods-tooltip__arrow{left:-4px;top:50%;margin-top:-4px}.ods-select{position:relative;display:flex;flex-direction:column;gap:4px;font-family:inherit}.ods-select--disabled{opacity:.6;pointer-events:none}.ods-select__label{font-size:12px;font-weight:500;color:#6b7280;margin-bottom:2px}.ods-select__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;background:hsla(0,0%,100%,.7);backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.8);border-radius:10px;color:#1e1b4b;font-family:inherit;font-size:13px;cursor:pointer;transition:all .2s ease}.ods-select__trigger:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.ods-select__trigger:hover:not([disabled]):not([aria-disabled=true]){border-color:rgba(99,102,241,.2)}.ods-select__trigger--open{border-color:rgba(99,102,241,.3);box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-select__value{display:flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:left}.ods-select__value-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.ods-select__placeholder{color:#9ca3af}.ods-select__chevron{flex-shrink:0;color:#9ca3af;transition:transform .2s ease}.ods-select__chevron--open{transform:rotate(180deg)}.ods-select__dropdown{z-index:500;background:hsla(0,0%,100%,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.8);border-radius:12px;box-shadow:0 20px 40px -12px rgba(99,102,241,.18);max-height:280px;overflow-y:auto;padding:4px}.ods-select__dropdown::-webkit-scrollbar{width:6px;height:6px}.ods-select__dropdown::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.ods-select__dropdown::-webkit-scrollbar-thumb{background:rgba(99,102,241,.2);border-radius:3px}.ods-select__dropdown::-webkit-scrollbar-thumb:hover{background:rgba(99,102,241,.4)}.ods-select__search-wrap{padding:4px 4px 0;margin-bottom:4px}.ods-select__search{width:100%;padding:6px 10px;background:hsla(0,0%,100%,.7);backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.8);border-radius:8px;font-size:13px;font-family:inherit;color:#1e1b4b;outline:none;transition:border-color .2s ease}.ods-select__search::placeholder{color:#9ca3af}.ods-select__search:focus{border-color:rgba(99,102,241,.3)}.ods-select__options{list-style:none;margin:0;padding:0}.ods-select__option{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;cursor:pointer;transition:background-color .2s ease;user-select:none}.ods-select__option:hover{background:rgba(99,102,241,.05)}.ods-select__option--highlighted{background:rgba(99,102,241,.08)}.ods-select__option--selected{background:rgba(99,102,241,.1);font-weight:500}.ods-select__option--disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.ods-select__option-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;flex-shrink:0}.ods-select__option-text{display:flex;flex-direction:column;flex:1;min-width:0}.ods-select__option-label{font-size:13px;color:#1e1b4b}.ods-select__option-desc{font-size:11px;color:#6b7280;margin-top:1px}.ods-select__check{display:flex;align-items:center;flex-shrink:0;color:#6366f1;margin-left:auto}.ods-select__empty{padding:12px 16px;text-align:center;font-size:13px;color:#9ca3af}.ods-select--error .ods-select__trigger{border-color:#ef4444}.ods-select--error .ods-select__trigger--open{box-shadow:0 0 0 3px rgba(239,68,68,.15)}.ods-select__error{font-size:12px;color:#ef4444;margin-top:2px}.ods-select--sm .ods-select__trigger{height:32px;padding:0 8px 0 12px;font-size:12px}.ods-select--md .ods-select__trigger{height:36px;padding:0 12px 0 12px;font-size:13px}.ods-select--lg .ods-select__trigger{height:44px;padding:0 16px 0 16px;font-size:14px}.ods-multiselect{position:relative;display:flex;flex-direction:column;gap:4px;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-multiselect--disabled{opacity:.6;pointer-events:none}.ods-multiselect__label{font-size:12px;font-weight:600;color:#1a1633;margin-bottom:2px}.ods-multiselect__input-wrap{position:relative;display:flex;align-items:center;gap:6px;min-height:40px;padding:4px 8px 4px 10px;background:#fff;border:1px solid #e8e5f0;border-radius:10px;cursor:pointer;transition:border-color 150ms,box-shadow 150ms}.ods-multiselect__input-wrap:hover{border-color:#c4b5fe}.ods-multiselect__input-wrap--open{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-multiselect__tags{position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center;flex-wrap:nowrap;gap:6px;overflow:hidden}.ods-multiselect__measure{position:absolute;visibility:hidden;pointer-events:none;white-space:nowrap;display:flex;gap:6px;height:0;overflow:hidden}.ods-multiselect__placeholder{font-size:13px;color:#9ca3af;padding:0 2px}.ods-multiselect__tag{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 8px;background:#f0edff;color:#5b4bd1;border-radius:6px;font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap;max-width:200px}.ods-multiselect__tag>span:first-child+span,.ods-multiselect__tag>span:only-child{overflow:hidden;text-overflow:ellipsis}.ods-multiselect__tag--overflow{background:#e8e5f0;color:#4d5768;padding:3px 8px;cursor:help}.ods-multiselect__tag-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0}.ods-multiselect__tag-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:0;background:rgba(0,0,0,0);color:currentColor;opacity:.7;cursor:pointer;border-radius:4px;flex-shrink:0;transition:background 120ms,opacity 120ms}.ods-multiselect__tag-remove:hover{opacity:1;background:rgba(99,102,241,.18)}.ods-multiselect__tag-remove-spacer{width:16px;height:16px;display:inline-block}.ods-multiselect__chevron{flex-shrink:0;color:#9aa3b3;transition:transform 150ms}.ods-multiselect__chevron--open{transform:rotate(180deg)}.ods-multiselect__clear{border:0;background:rgba(0,0,0,0);font-family:inherit;font-size:11px;color:#6b7280;cursor:pointer;padding:2px 6px;border-radius:4px;flex-shrink:0}.ods-multiselect__clear:hover{background:#fef2f2;color:#dc2626}.ods-multiselect__dropdown{z-index:500;background:#fff;border:1px solid #e8e5f0;border-radius:12px;box-shadow:0 12px 32px rgba(108,92,231,.18);max-height:320px;display:flex;flex-direction:column;overflow:hidden}.ods-multiselect__search{display:flex;align-items:center;gap:8px;padding:10px 12px;color:#9ca3af;border-bottom:1px solid #f0eef5;flex-shrink:0}.ods-multiselect__search-input{flex:1 1 auto;min-width:0;border:0;outline:none;background:rgba(0,0,0,0);font-family:inherit;font-size:13px;color:#1a1633}.ods-multiselect__search-input::placeholder{color:#9ca3af}.ods-multiselect__search-input:focus,.ods-multiselect__search-input:focus-visible{outline:none;box-shadow:none;border:0}.ods-multiselect__list{flex:1 1 auto;overflow-y:auto;padding:6px}.ods-multiselect__option{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13px;color:#1a1633;transition:background 120ms}.ods-multiselect__option:hover{background:#f3f1ff}.ods-multiselect__option--highlighted{background:#f0edff}.ods-multiselect__option-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;color:#6c5ce7}.ods-multiselect__option-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.ods-multiselect__option-desc{font-size:11px;color:#9aa3b3}.ods-multiselect__empty{padding:14px;text-align:center;font-size:12px;color:#9aa3b3}.ods-multiselect--error .ods-multiselect__input-wrap{border-color:#ef4444}.ods-multiselect__error{font-size:12px;color:#dc2626;margin-top:2px}.ods-multiselect--sm .ods-multiselect__input-wrap{min-height:32px;padding:2px 6px 2px 8px;border-radius:8px}.ods-multiselect--sm .ods-multiselect__tag{font-size:11px;padding:2px 4px 2px 6px}.ods-multiselect--md .ods-multiselect__input-wrap{min-height:40px}.ods-card{position:relative;transition:background var(--ods-duration-base) var(--ods-ease-in-out),border-color var(--ods-duration-base) var(--ods-ease-in-out),box-shadow var(--ods-duration-base) var(--ods-ease-in-out),transform var(--ods-duration-base) var(--ods-ease-in-out)}.ods-card:focus-visible{outline:2px solid var(--ods-color-brand-500);outline-offset:2px}.ods-card--default{background:var(--ods-color-neutral-0);border:1px solid var(--ods-color-neutral-200);box-shadow:var(--ods-shadow-xs)}.ods-card--glass{background:var(--ods-color-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--ods-color-glass-border)}.ods-card--elevated{background:var(--ods-color-neutral-0);border:1px solid rgba(0,0,0,0);box-shadow:var(--ods-shadow-md)}.ods-card--outlined{background:rgba(0,0,0,0);border:1px solid var(--ods-color-neutral-200)}.ods-card--selected{background:var(--ods-color-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:2px solid var(--ods-color-brand-500);box-shadow:0 0 0 3px rgba(99,102,241,.12)}.ods-card--hoverable:hover{box-shadow:var(--ods-shadow-lift)}.ods-card--clickable{cursor:pointer;user-select:none}.ods-card--pad-none{padding:0}.ods-card--pad-sm{padding:var(--ods-space-3)}.ods-card--pad-md{padding:var(--ods-space-5)}.ods-card--pad-lg{padding:var(--ods-space-6)}.ods-card--pad-xl{padding:var(--ods-space-8)}.ods-card--radius-sm{border-radius:var(--ods-radius-sm)}.ods-card--radius-md{border-radius:var(--ods-radius-md)}.ods-card--radius-lg{border-radius:var(--ods-radius-lg)}.ods-card--radius-xl{border-radius:var(--ods-radius-xl)}.ods-card--radius-2xl{border-radius:var(--ods-radius-2xl)}.ods-dialog{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(30,27,75,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.ods-dialog__card{position:relative;display:flex;flex-direction:column;max-height:90vh;overflow-y:auto;border-radius:24px;background:hsla(0,0%,100%,.88);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid hsla(0,0%,100%,.9);box-shadow:0 32px 64px -16px rgba(30,27,75,.2);font-family:"Outfit","Lufga",sans-serif;transform:scale(1);opacity:1;transition:transform .35s cubic-bezier(0.34, 1.56, 0.64, 1),opacity .35s cubic-bezier(0.34, 1.56, 0.64, 1)}.ods-dialog__card--entering{transform:scale(0.95);opacity:0}.ods-dialog__card--sm{width:100%;max-width:380px}.ods-dialog__card--md{width:100%;max-width:520px}.ods-dialog__card--lg{width:100%;max-width:720px}.ods-dialog__card--xl{width:100%;max-width:900px}.ods-dialog__card--full{width:100%;max-width:calc(100vw - 120px);height:calc(100vh - 120px);max-height:calc(100vh - 120px)}.ods-dialog__header{display:flex;flex-direction:column;gap:4px;padding:24px 24px 0}.ods-dialog__title{margin:0;font-size:18px;font-weight:600;color:#1e1b4b;line-height:1.4}.ods-dialog__description{margin:0;font-size:13px;color:#6b7280;line-height:1.5}.ods-dialog__close{position:absolute;top:16px;right:16px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:9999px;background:hsla(0,0%,100%,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#6b7280;cursor:pointer;transition:all .2s ease}.ods-dialog__close:hover{background:rgba(239,68,68,.1);color:#ef4444;transform:rotate(90deg)}.ods-dialog__close:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-dialog__body{flex:1;padding:16px 24px;overflow-y:auto}.ods-dialog__footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid rgba(0,0,0,.06)}.ods-sidebar{display:flex;flex-direction:column;background:#fff;border:1px solid #e8e5f0;border-radius:12px;font-family:"Lufga","Outfit",-apple-system,BlinkMacSystemFont,sans-serif;box-shadow:0 4px 16px rgba(108,92,231,.1);overflow:hidden;transition:width 260ms cubic-bezier(0.32, 0.72, 0, 1);position:relative}.ods-sidebar--rail{width:64px;align-items:center;padding:12px 0;gap:8px}.ods-sidebar--expanded{width:260px}.ods-sidebar--auto{overflow:visible}.ods-sidebar__overlay{position:absolute;top:0;left:calc(100% + 8px);width:260px;height:100%;display:flex;flex-direction:column;background:#fff;border:1px solid #e8e5f0;border-radius:12px;box-shadow:0 12px 40px rgba(108,92,231,.22),0 2px 8px rgba(108,92,231,.1);z-index:1000;animation:ods-sidebar-overlay-in 180ms cubic-bezier(0.32, 0.72, 0, 1)}@keyframes ods-sidebar-overlay-in{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}.ods-sidebar__logo-rail{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);color:#fff;font-size:20px;font-weight:700;margin-bottom:8px;flex-shrink:0}.ods-sidebar__nav-rail,.ods-sidebar__footer-rail{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.ods-sidebar__spacer{flex:1 1 auto}.ods-sidebar__rail-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;overflow:visible}.ods-sidebar__rail-item{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;background:rgba(0,0,0,0);border-radius:10px;color:#6b7280;cursor:pointer;text-decoration:none;transition:background 150ms,color 150ms}.ods-sidebar__rail-item:hover{background:#f3f1ff;color:#1a1633}.ods-sidebar__rail-item--active{background:#eef2ff;color:#6366f1;border:1px solid #c7d2fe}.ods-sidebar__rail-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px}.ods-sidebar__rail-tooltip{position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%);display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;background:#1e1b4b;color:#fff;font-size:12px;font-weight:600;white-space:nowrap;box-shadow:0 6px 20px rgba(30,27,75,.24);z-index:1100;pointer-events:none;animation:ods-sidebar-tooltip-in 120ms ease-out}@keyframes ods-sidebar-tooltip-in{from{opacity:0;transform:translate(-4px, -50%)}to{opacity:1;transform:translate(0, -50%)}}.ods-sidebar__rail-tooltip-label{color:#fff}.ods-sidebar__rail-kbd{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;background:hsla(0,0%,100%,.12);color:#e2e8f0;font-size:10px;font-family:inherit;font-weight:600}.ods-sidebar__expand-rail{display:inline-flex;align-items:center;justify-content:center;width:36px;height:28px;padding:0;border:1px solid #eef0f7;background:#fff;border-radius:8px;color:#6b7280;cursor:pointer;transition:background 150ms,color 150ms,border-color 150ms}.ods-sidebar__expand-rail:hover{background:#f3f1ff;color:#1a1633;border-color:#c7d2fe}.ods-sidebar__user-rail{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:18px;cursor:pointer;margin-top:4px;background:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);color:#fff;font-size:14px;font-weight:600;overflow:hidden}.ods-sidebar__header{display:flex;align-items:center;gap:12px;padding:14px 14px;border-bottom:1px solid #eef0f7;flex-shrink:0}.ods-sidebar__logo{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);color:#fff;font-size:17px;font-weight:700;flex-shrink:0}.ods-sidebar__brand{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.ods-sidebar__brand-name{font-size:14px;font-weight:700;color:#1e1b4b;line-height:1.2}.ods-sidebar__brand-sub{font-size:11px;color:#8b8ca0;line-height:1.2}.ods-sidebar__collapse,.ods-sidebar__pin{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid rgba(0,0,0,0);background:rgba(0,0,0,0);border-radius:6px;color:#6b7280;cursor:pointer;transition:background 150ms,color 150ms,border-color 150ms}.ods-sidebar__collapse:hover,.ods-sidebar__pin:hover{background:#f3f1ff;color:#1a1633}.ods-sidebar__pin--pinned{background:#eef2ff;color:#6366f1;border-color:#c7d2fe}.ods-sidebar__pin--pinned:hover{background:#e0e7ff;color:#4338ca}.ods-sidebar__body{flex:1 1 auto;display:flex;flex-direction:column;gap:16px;padding:12px;overflow-y:auto}.ods-sidebar__section{display:flex;flex-direction:column;gap:2px}.ods-sidebar__section-label{font-size:10px;font-weight:700;letter-spacing:.8px;color:#9ca3af;padding:6px 10px 4px}.ods-sidebar__item{display:flex;align-items:center;gap:12px;width:100%;height:36px;padding:0 10px;border:0;background:rgba(0,0,0,0);border-radius:8px;color:#374151;font-family:inherit;font-size:13px;font-weight:500;text-align:left;text-decoration:none;cursor:pointer;transition:background 120ms,color 120ms}.ods-sidebar__item:hover{background:#f3f1ff;color:#1a1633}.ods-sidebar__item--active{background:linear-gradient(270deg, #f5f3ff 0%, #eef2ff 100%);border:1px solid #c7d2fe;color:#4338ca;font-weight:600}.ods-sidebar__item--active .ods-sidebar__icon{color:#6366f1}.ods-sidebar__item--open{color:#1a1633}.ods-sidebar__item--l2{height:32px;font-size:12px;padding-left:10px}.ods-sidebar__item--l3{height:30px;font-size:12px;padding-left:10px;color:#4d5768}.ods-sidebar__chevron{flex-shrink:0;color:#9ca3af;transition:transform 180ms ease-out}.ods-sidebar__chevron--open{transform:rotate(90deg);color:#6366f1}.ods-sidebar__subtree{display:flex;flex-direction:column;gap:2px;margin-top:2px;padding:2px 0 4px 10px;margin-left:16px;border-left:1px solid #e8e5f0;animation:ods-sidebar-subtree-in 180ms ease-out}.ods-sidebar__subtree--l2{border-left-color:#c7d2fe}.ods-sidebar__subtree--l3{border-left-color:#a5b4fc;margin-left:12px}@keyframes ods-sidebar-subtree-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ods-sidebar__icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:#6b7280}.ods-sidebar__label{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ods-sidebar__badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;background:#ede9fe;color:#7c3aed;font-size:10px;font-weight:600;flex-shrink:0}.ods-sidebar__tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;background:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);color:#fff;font-size:9px;font-weight:700;letter-spacing:.5px;flex-shrink:0}.ods-sidebar__footer{border-top:1px solid #eef0f7;display:flex;flex-direction:column;gap:8px;padding:12px}.ods-sidebar__footer-list{display:flex;flex-direction:column;gap:2px}.ods-sidebar__user-card{display:flex;align-items:center;gap:10px;width:100%;padding:10px;border:1px solid #eef0f7;background:hsla(0,0%,100%,.8);border-radius:10px;cursor:pointer;font-family:inherit;text-align:left;color:#4d5768;transition:background 150ms,border-color 150ms}.ods-sidebar__user-card:hover{background:#fff;border-color:#c7d2fe}.ods-sidebar__user-avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:17px;flex-shrink:0;overflow:hidden;background:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);color:#fff;font-size:13px;font-weight:600}.ods-sidebar__user-avatar img{width:100%;height:100%;object-fit:cover}.ods-sidebar__user-info{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.ods-sidebar__user-name{font-size:12px;font-weight:600;color:#1e1b4b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ods-sidebar__user-email{font-size:10px;color:#8b8ca0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ods-topbar{position:sticky;top:0;z-index:800;display:flex;align-items:center;justify-content:space-between;gap:16px;height:56px;padding:0 20px;background:hsla(0,0%,100%,.6);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid hsla(0,0%,100%,.8);border-bottom:1px solid hsla(0,0%,100%,.8);font-family:"Outfit","Lufga",sans-serif}.ods-topbar__left{display:flex;align-items:center;gap:16px;min-width:0}.ods-topbar__title{margin:0;font-size:20px;font-weight:600;color:#1e1b4b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ods-topbar__breadcrumbs ol{display:flex;align-items:center;list-style:none;margin:0;padding:0;gap:0}.ods-topbar__crumb{display:flex;align-items:center;font-size:13px;color:#9ca3af}.ods-topbar__crumb a{color:#6b7280;text-decoration:none;transition:all .2s ease}.ods-topbar__crumb a:hover{color:#1e1b4b}.ods-topbar__crumb [aria-current=page]{color:#1e1b4b;font-weight:500}.ods-topbar__separator{margin:0 8px;color:#9ca3af;font-size:12px}.ods-topbar__center{display:flex;align-items:center;flex:1;justify-content:center}.ods-topbar__right{display:flex;align-items:center;gap:12px;margin-left:auto}.ods-topbar__search{position:relative;display:flex;align-items:center}.ods-topbar__search-icon{position:absolute;left:12px;color:#9ca3af;pointer-events:none}.ods-topbar__search-input{width:320px;padding:6px 16px 6px 34px;border:1px solid hsla(0,0%,100%,.8);border-radius:999px;background:hsla(0,0%,100%,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:13px;color:#1e1b4b;transition:all .2s ease}.ods-topbar__search-input::placeholder{color:#9ca3af}.ods-topbar__search-input:focus{outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-topbar__actions{display:flex;align-items:center;gap:8px}.ods-tabs{display:flex;flex-direction:column;width:100%;font-family:"Outfit","Lufga",sans-serif}.ods-tabs--vertical{flex-direction:row}.ods-tabs__list{display:flex;position:relative;gap:0}.ods-tabs--horizontal .ods-tabs__list{flex-direction:row;border-bottom:1px solid rgba(0,0,0,.06)}.ods-tabs--vertical .ods-tabs__list{flex-direction:column;border-right:1px solid rgba(0,0,0,.06);min-width:160px}.ods-tabs__tab{position:relative;display:flex;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:500;color:#6b7280;cursor:pointer;user-select:none;white-space:nowrap;border:none;background:none;transition:all .2s ease;outline:none}.ods-tabs__tab:hover:not(.ods-tabs__tab--disabled){color:#1e1b4b}.ods-tabs__tab:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-tabs__tab--selected{color:#6366f1;font-weight:600}.ods-tabs__tab--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ods-tabs__icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.ods-tabs__indicator{position:absolute;transition:all .2s ease}.ods-tabs--horizontal .ods-tabs__indicator{bottom:-1px;left:0;right:0;height:2px;background:linear-gradient(135deg, #6366f1, #8b5cf6);border-radius:1px}.ods-tabs--vertical .ods-tabs__indicator{right:-1px;top:0;bottom:0;width:2px;background:linear-gradient(135deg, #6366f1, #8b5cf6);border-radius:1px}.ods-tabs__panel{padding:16px 0}.ods-tabs--vertical .ods-tabs__panel{padding:0 16px;flex:1}.ods-tabs__panel:focus{outline:none}.ods-breadcrumb{display:inline-flex;align-items:center;font-family:"Outfit","Lufga",sans-serif}.ods-breadcrumb__list{display:inline-flex;align-items:center;list-style:none;margin:0;padding:0;gap:8px;font-size:13px}.ods-breadcrumb__item{display:flex;align-items:center;font-size:13px;line-height:1}.ods-breadcrumb__separator{display:flex;align-items:center;color:#9ca3af;font-size:12px;flex-shrink:0}.ods-breadcrumb__link{display:inline-flex;align-items:center;gap:4px;color:#6b7280;text-decoration:none;transition:all .2s ease;white-space:nowrap}.ods-breadcrumb__link:hover:not(.ods-breadcrumb__link--current){color:#1e1b4b}.ods-breadcrumb__link:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-breadcrumb__link--current{color:#1e1b4b;font-weight:500;cursor:default}.ods-breadcrumb__icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.ods-dropdown__trigger{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:rgba(0,0,0,0);cursor:pointer}.ods-dropdown__trigger:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-dropdown{position:fixed;list-style:none;margin:0;padding:6px;width:200px;border-radius:16px;background:hsla(0,0%,100%,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid hsla(0,0%,100%,.8);box-shadow:0 20px 40px -8px rgba(99,102,241,.15);z-index:500;outline:none;font-family:"Outfit","Lufga",sans-serif}.ods-dropdown:focus{outline:none}.ods-dropdown__item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;font-size:13px;color:#1e1b4b;cursor:pointer;transition:all .2s ease;outline:none;user-select:none}.ods-dropdown__item:hover,.ods-dropdown__item:focus{background:rgba(99,102,241,.08)}.ods-dropdown__item[data-focused=true]{background:rgba(99,102,241,.08)}.ods-dropdown__item--danger{color:#ef4444}.ods-dropdown__item--danger:hover,.ods-dropdown__item--danger:focus{background:rgba(239,68,68,.08)}.ods-dropdown__item--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ods-dropdown__icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:#6b7280}.ods-dropdown__separator{height:1px;margin:4px 0;background:rgba(0,0,0,.06);list-style:none}.ods-slideout__backdrop{position:fixed;inset:0;z-index:600;background:rgba(30,27,75,.3);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.ods-slideout__panel{position:fixed;top:0;right:0;bottom:0;z-index:601;display:flex;flex-direction:column;width:360px;max-width:100vw;padding:24px;background:hsla(0,0%,100%,.96);border-left:1px solid rgba(232,229,240,.9);box-shadow:-16px 0 40px rgba(108,92,231,.15);font-family:"Lufga","Outfit",sans-serif;outline:none;will-change:transform}.ods-slideout__panel--right{right:0}.ods-slideout__panel--left{left:0;right:auto;border-left:none;border-right:1px solid rgba(232,229,240,.9);box-shadow:16px 0 40px rgba(108,92,231,.15)}.ods-slideout__header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.ods-slideout__title{margin:0;font-size:18px;font-weight:600;color:#1e1b4b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ods-slideout__close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;padding:0;border:none;border-radius:9999px;background:hsla(0,0%,100%,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#6b7280;cursor:pointer;transition:all .2s ease}.ods-slideout__close:hover{background:rgba(239,68,68,.1);color:#ef4444}.ods-slideout__close:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-slideout__body{flex:1;overflow-y:auto;margin-top:16px}.ods-slideout__footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:16px;border-top:1px solid rgba(0,0,0,.06);flex-shrink:0}.ods-table-wrapper{width:100%;overflow-x:auto;border-radius:12px;overflow:hidden;font-family:"Outfit","Lufga",sans-serif}.ods-table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.5}.ods-table__header{background:rgba(99,102,241,.04);border-bottom:1px solid rgba(0,0,0,.06)}.ods-table__header th{padding:8px 12px;text-align:left;font-weight:600;font-size:12px;color:#6b7280;white-space:nowrap;user-select:none}.ods-table__header-content{display:inline-flex;align-items:center;gap:4px}.ods-table__cell--sortable{cursor:pointer;transition:all .2s ease}.ods-table__cell--sortable:hover{background:rgba(99,102,241,.04)}.ods-table__sort-icon{display:inline-flex;align-items:center;font-size:10px;opacity:.3;transition:all .2s ease}.ods-table__sort-icon--active{opacity:1;color:#6366f1}.ods-table__sort-icon--desc{transform:rotate(180deg)}.ods-table__row{border-bottom:1px solid rgba(0,0,0,.04);transition:all .2s ease}.ods-table__row:hover{background:rgba(99,102,241,.04)}.ods-table__row:last-child{border-bottom:none}.ods-table__row--selected{background:rgba(99,102,241,.06) !important}.ods-table__row--expanded{background:rgba(99,102,241,.04);border-bottom:1px solid rgba(0,0,0,.04)}.ods-table__cell{padding:12px;color:#1e1b4b;font-size:13px;vertical-align:middle}.ods-table__cell--checkbox{width:40px;padding:12px;text-align:center}.ods-table__cell--checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#6366f1}.ods-table__cell--expand{width:40px;padding:12px;text-align:center}.ods-table__expand-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:rgba(0,0,0,0);color:#6b7280;font-size:14px;cursor:pointer;border-radius:6px;transition:all .2s ease}.ods-table__expand-btn:hover{background:rgba(99,102,241,.08)}.ods-table__expand-btn--open{transform:rotate(90deg)}.ods-table__expanded-cell{padding:16px 24px;background:rgba(99,102,241,.04)}.ods-table__empty{padding:32px 16px;text-align:center;color:#9ca3af;font-style:italic}.ods-table__loading{padding:0;position:relative;height:2px}.ods-table__loading-bar{position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg, transparent 0%, #6366f1 50%, transparent 100%);background-size:200% 100%;animation:ods-table-loading 1.5s ease-in-out infinite}@keyframes ods-table-loading{0%{background-position:200% 0}100%{background-position:-200% 0}}.ods-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center;font-family:"Outfit","Lufga",sans-serif}.ods-empty-state__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-bottom:16px;color:#9ca3af}.ods-empty-state__icon svg{width:48px;height:48px}.ods-empty-state__title{margin:0;font-size:16px;font-weight:600;color:#1e1b4b;line-height:1.3}.ods-empty-state__description{margin:0;margin-top:4px;font-size:13px;color:#6b7280;line-height:1.5;max-width:360px}.ods-empty-state__action{margin-top:20px}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.ods-skeleton{display:block;background:linear-gradient(90deg, rgba(99, 102, 241, 0.05) 25%, rgba(99, 102, 241, 0.1) 50%, rgba(99, 102, 241, 0.05) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px;overflow:hidden;position:relative}.ods-skeleton--text{height:12px;width:100%;margin-bottom:8px}.ods-skeleton--text:last-child{width:75%}.ods-skeleton--circular{width:40px;height:40px;border-radius:9999px}.ods-skeleton--rectangular{width:100%;height:120px;border-radius:8px}.ods-skeleton__group{display:flex;flex-direction:column;gap:8px;width:100%}.ods-toast-stack{position:fixed;z-index:9999;padding:24px;max-width:100vw;pointer-events:none}.ods-toast-stack>*{pointer-events:auto}.ods-toast-stack--top-left{top:0;left:0}.ods-toast-stack--top-center{top:0;left:50%;transform:translateX(-50%)}.ods-toast-stack--top-right{top:0;right:0}.ods-toast-stack--bottom-left{bottom:0;left:0}.ods-toast-stack--bottom-center{bottom:0;left:50%;transform:translateX(-50%)}.ods-toast-stack--bottom-right{bottom:0;right:0}.ods-toast-stack--expanded{pointer-events:auto}.ods-toast-stack__scroll{position:relative;display:flex;flex-direction:column-reverse;gap:0;width:380px;max-width:calc(100vw - 32px)}.ods-toast-stack__scroll>.ods-toast{position:absolute;left:0;right:0;width:100%}.ods-toast-stack--bottom-left .ods-toast-stack__scroll>.ods-toast,.ods-toast-stack--bottom-center .ods-toast-stack__scroll>.ods-toast,.ods-toast-stack--bottom-right .ods-toast-stack__scroll>.ods-toast{bottom:0}.ods-toast-stack--top-left .ods-toast-stack__scroll>.ods-toast,.ods-toast-stack--top-center .ods-toast-stack__scroll>.ods-toast,.ods-toast-stack--top-right .ods-toast-stack__scroll>.ods-toast{top:0}.ods-toast-stack__scroll{min-height:76px}.ods-toast-stack__scroll--expanded{position:relative;display:flex;gap:10px;max-height:70vh;overflow-y:auto;padding:4px;min-height:0}.ods-toast-stack__scroll--expanded>.ods-toast{position:relative;left:auto;right:auto;top:auto;bottom:auto}.ods-toast{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:#fff;border:1px solid #f0eef5;border-radius:14px;box-shadow:0 12px 32px rgba(108,92,231,.12),0 2px 6px rgba(0,0,0,.04);font-family:"Lufga","Outfit",-apple-system,sans-serif;will-change:transform,opacity;cursor:default;user-select:none}.ods-toast--stacked{cursor:pointer}.ods-toast__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;margin-top:1px}.ods-toast__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}.ods-toast__title{font-size:14px;font-weight:600;color:#1a1633;line-height:1.35}.ods-toast__desc{font-size:12px;color:#6b7280;line-height:1.45}.ods-toast__action{flex-shrink:0;display:flex;align-items:center;margin-top:-2px}.ods-toast__close{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;background:rgba(0,0,0,0);border-radius:6px;color:#9aa3b3;cursor:pointer;flex-shrink:0;transition:background 150ms,color 150ms}.ods-toast__close:hover{background:#f3f1ff;color:#1a1633}.ods-toast-stack__collapse{align-self:flex-end;margin-top:6px;padding:5px 10px;border:0;background:rgba(30,27,75,.9);color:#fff;border-radius:999px;font-family:inherit;font-size:11px;font-weight:600;cursor:pointer;opacity:.85;transition:opacity 150ms}.ods-toast-stack__collapse:hover{opacity:1}.ods-condition-builder{display:flex;flex-direction:column;gap:0;font-family:"Outfit","Lufga",sans-serif}.ods-condition-builder__join{display:flex;align-items:center;justify-content:flex-start;padding:4px 0;padding-left:16px}.ods-condition-builder__join-btn{display:inline-flex;align-items:center;justify-content:center;padding:4px 12px;font-size:12px;font-weight:600;color:#6366f1;background:hsla(0,0%,100%,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.8);border-radius:8px;cursor:default}.ods-condition-builder__join-btn--clickable{cursor:pointer;transition:all .2s ease}.ods-condition-builder__join-btn--clickable:hover{background:rgba(99,102,241,.1)}.ods-condition-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.ods-condition-row__value{flex:1 1 0;min-width:0;height:32px;padding:0 10px;margin:0;border:1px solid rgba(232,229,240,.9);border-radius:8px;background:hsla(0,0%,100%,.85);color:#1e1b4b;font-family:inherit;font-size:12px;line-height:1;outline:none;transition:border-color 150ms,box-shadow 150ms,background 150ms}.ods-condition-row__value:hover{background:#fff;border-color:#c7d2fe}.ods-condition-row__value:focus,.ods-condition-row__value:focus-visible{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.15);background:#fff}.ods-condition-row__value::placeholder{color:#9ca3af}.ods-condition-row__remove{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:rgba(0,0,0,0);color:#9ca3af;border-radius:9999px;cursor:pointer;transition:background 150ms,color 150ms;flex-shrink:0}.ods-condition-row__remove:hover{background:rgba(239,68,68,.1);color:#ef4444}.ods-condition-builder__actions{padding-top:8px}.ods-condition-builder__add{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;border:1px dashed rgba(99,102,241,.3);border-radius:8px;background:rgba(0,0,0,0);color:#6b7280;font-size:13px;font-family:"Outfit","Lufga",sans-serif;cursor:pointer;transition:all .2s ease}.ods-condition-builder__add:hover{border-color:#6366f1;color:#6366f1;background:rgba(99,102,241,.06)}.ods-condition-group{margin-left:12px;padding-left:16px;border-left:3px solid rgba(99,102,241,.3)}.ods-cb-dd{position:relative;display:inline-flex;flex-shrink:0}.ods-cb-dd__trigger{display:inline-flex;align-items:center;gap:6px;width:100%;height:32px;padding:0 10px;border:1px solid rgba(232,229,240,.9);border-radius:8px;background:hsla(0,0%,100%,.85);color:#1e1b4b;font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;transition:border-color 150ms,box-shadow 150ms,background 150ms}.ods-cb-dd__trigger:hover{background:#fff;border-color:#c7d2fe}.ods-cb-dd__trigger:focus-visible,.ods-cb-dd__trigger--open{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-cb-dd__icon,.ods-cb-dd__symbol{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ods-cb-dd__icon{width:14px;height:14px;color:#6366f1}.ods-cb-dd__symbol{font-weight:700;color:#6366f1;min-width:14px}.ods-cb-dd__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ods-cb-dd__label--placeholder{color:#9ca3af;font-weight:400}.ods-cb-dd__chev{color:#9ca3af;flex-shrink:0}.ods-cb-dd__panel{position:absolute;top:calc(100% + 4px);left:0;z-index:50;min-width:100%;max-width:280px;display:flex;flex-direction:column;background:#fff;border:1px solid #e8e5f0;border-radius:10px;box-shadow:0 12px 32px rgba(108,92,231,.18);overflow:hidden}.ods-cb-dd__search{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid #f0eef5;color:#9ca3af}.ods-cb-dd__search input{flex:1 1 auto;min-width:0;border:0;outline:none;background:rgba(0,0,0,0);font-family:inherit;font-size:12px;color:#1e1b4b}.ods-cb-dd__search input::placeholder{color:#9ca3af}.ods-cb-dd__list{list-style:none;margin:0;padding:4px;max-height:240px;overflow-y:auto}.ods-cb-dd__opt{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border:0;background:rgba(0,0,0,0);border-radius:6px;font-size:12px;font-family:inherit;color:#1e1b4b;cursor:pointer;text-align:left;transition:background 100ms}.ods-cb-dd__opt--active{background:#f3f1ff}.ods-cb-dd__opt--selected{color:#4338ca;font-weight:600}.ods-cb-dd__opt-icon{display:inline-flex;width:14px;height:14px;color:#6366f1;flex-shrink:0}.ods-cb-dd__opt-symbol{font-weight:700;color:#6366f1;min-width:14px}.ods-cb-dd__opt-text{display:flex;flex-direction:column;gap:1px;flex:1 1 auto;min-width:0}.ods-cb-dd__opt-label{line-height:1.3}.ods-cb-dd__opt-desc{font-size:11px;color:#9ca3af;line-height:1.3}.ods-cb-dd__opt-check{color:#6366f1;flex-shrink:0}.ods-cb-dd__empty{list-style:none;padding:14px 12px;font-size:12px;color:#9ca3af;text-align:center}.ods-data-mapper{display:flex;gap:0;position:relative;font-family:"Outfit","Lufga",sans-serif;min-height:400px}.ods-data-mapper__source,.ods-data-mapper__target{display:flex;flex-direction:column;width:320px;overflow-y:auto;background:hsla(0,0%,100%,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.8);border-radius:14px;padding:16px}.ods-data-mapper__panel-header{padding:12px 0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;border-bottom:1px solid rgba(0,0,0,.06)}.ods-data-mapper__svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.ods-data-mapper__svg g{pointer-events:auto}.ods-data-mapper__line{fill:none;stroke:rgba(99,102,241,.4);stroke-width:2;transition:all .2s ease}.ods-data-mapper__line:hover{stroke:#6366f1;stroke-opacity:1}.ods-data-mapper__field{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;font-size:13px;color:#1e1b4b;transition:all .2s ease;position:relative}.ods-data-mapper__field:hover{background:rgba(99,102,241,.04)}.ods-data-mapper__field--mapped{background:rgba(99,102,241,.06)}.ods-data-mapper__field--pending{background:rgba(99,102,241,.06);box-shadow:inset 0 0 0 1px rgba(99,102,241,.3)}.ods-data-mapper__field-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ods-data-mapper__field-type{flex-shrink:0;font-size:10px;padding:1px 6px;border-radius:99px}.ods-data-mapper__field-type--string{color:#3b82f6;background:rgba(59,130,246,.1)}.ods-data-mapper__field-type--integer{color:#10b981;background:rgba(16,185,129,.1)}.ods-data-mapper__field-type--datetime{color:#8b5cf6;background:rgba(139,92,246,.1)}.ods-data-mapper__tree-toggle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:rgba(0,0,0,0);color:#6b7280;font-size:8px;cursor:pointer;border-radius:6px;flex-shrink:0;transition:all .2s ease}.ods-data-mapper__tree-toggle:hover{background:rgba(99,102,241,.08)}.ods-data-mapper__tree-toggle--open{transform:rotate(90deg)}.ods-data-mapper__tree-spacer{display:inline-block;width:18px;flex-shrink:0}.ods-data-mapper__dot{width:12px;height:12px;border-radius:9999px;border:2px solid #6366f1;background:#fff;cursor:pointer;flex-shrink:0;padding:0;transition:all .2s ease;position:relative;z-index:2}.ods-data-mapper__dot:hover{background:#6366f1;box-shadow:0 0 0 4px rgba(99,102,241,.2)}.ods-data-mapper__dot--source{margin-left:auto}.ods-data-mapper__dot--target{margin-right:auto}.ods-data-mapper__dot--connected{background:#6366f1;border-color:#6366f1}.ods-data-mapper__dot--active{background:#6366f1;border-color:#6366f1;box-shadow:0 0 0 4px rgba(99,102,241,.3)}.ods-data-mapper__dot--receptive{animation:ods-dot-pulse 1s ease-in-out infinite}@keyframes ods-dot-pulse{0%,100%{box-shadow:0 0 0 0 rgba(99,102,241,.2)}50%{box-shadow:0 0 0 4px rgba(99,102,241,.2)}}.ods-flow-canvas{position:relative;width:100%;height:100%;background:var(--ods-color-background-primary);cursor:grab;touch-action:none;transition:box-shadow .2s ease,outline .2s ease;transform:translateZ(0);will-change:transform;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:geometricPrecision;image-rendering:crisp-edges;-webkit-transform:translateZ(0);transform:translateZ(0)}.ods-flow-canvas--panning{cursor:grabbing}.ods-flow-canvas--space-panning{cursor:grab}.ods-flow-canvas--space-panning .ods-flow-node{cursor:grab}.ods-flow-canvas [data-canvas-overlay]{cursor:default}[data-dragging=true][data-over-canvas=true] .ods-flow-canvas{outline:3px solid var(--ods-color-support-success);outline-offset:-3px;box-shadow:inset 0 0 0 3px rgba(36,161,72,.1)}[data-dragging=true][data-over-canvas=false] .ods-flow-canvas{outline:3px solid var(--ods-color-support-error);outline-offset:-3px;box-shadow:inset 0 0 0 3px rgba(218,30,40,.1)}.ods-flow-canvas__grid{position:absolute;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(to right, var(--ods-color-border-subtle) 1px, transparent 1px),linear-gradient(to bottom, var(--ods-color-border-subtle) 1px, transparent 1px);background-size:20px 20px;background-position:0 0;pointer-events:none;will-change:background-position,background-size;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(0);-webkit-transform:translateZ(0)}.ods-flow-canvas__viewport{position:absolute;inset:0;overflow:hidden}.ods-flow-canvas__content{position:absolute;top:0;left:0;width:100%;height:100%;will-change:transform;cursor:inherit;transform-origin:0 0;backface-visibility:hidden;-webkit-backface-visibility:hidden;perspective:1000px;-webkit-perspective:1000px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:geometricPrecision;image-rendering:crisp-edges;transform:translateZ(0);-webkit-transform:translateZ(0)}.ods-flow-canvas__toolbar{position:absolute;top:var(--ods-spacing-05);left:var(--ods-spacing-05);display:flex;flex-direction:column;align-items:center;gap:0;background:var(--ods-color-background-primary);box-shadow:0 2px 6px rgba(0,0,0,.3);z-index:10}.ods-flow-canvas__toolbar-btn{display:flex;align-items:center;justify-content:center;width:40px;height:41px;padding:0;background:rgba(0,0,0,0);border:none;color:var(--ods-color-icon-primary);cursor:pointer;transition:all .15s cubic-bezier(0.4, 0, 0.2, 1);position:relative}.ods-flow-canvas__toolbar-btn:hover{background:var(--ods-color-background-hover);color:var(--ods-color-icon-primary)}.ods-flow-canvas__toolbar-btn:active{background:var(--ods-color-background-active)}.ods-flow-canvas__toolbar-btn:focus-visible{outline:2px solid var(--ods-color-border-focus);outline-offset:-2px}.ods-flow-canvas__toolbar-btn svg{flex-shrink:0}.ods-flow-canvas__toolbar-divider{width:24px;height:1px;background:var(--ods-color-border-subtle);margin:var(--ods-spacing-02) 0}.ods-flow-canvas__toolbar-btn-wrapper{position:relative}.ods-flow-canvas__toolbar-btn-wrapper::after{content:attr(data-tooltip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);padding:var(--ods-spacing-02) var(--ods-spacing-03);background:var(--ods-color-background-primary) -inverse;color:var(--ods-color-text-inverse);font:var(--ods-font-label_01);font-size:12px;white-space:nowrap;border-radius:4px;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:1000}.ods-flow-canvas__toolbar-btn-wrapper:hover::after{opacity:1}.ods-flow-canvas__toolbar-btn-wrapper--pulse .ods-flow-canvas__toolbar-btn{animation:lockPulse .6s ease-out}@keyframes lockPulse{0%{background:rgba(0,0,0,0);box-shadow:0 0 0 0 rgba(218,30,40,.7)}50%{background:rgba(218,30,40,.2);box-shadow:0 0 0 8px rgba(218,30,40,0)}100%{background:rgba(0,0,0,0);box-shadow:0 0 0 0 rgba(218,30,40,0)}}.ods-flow-canvas__toolbar-zoom{font:var(--ods-font-label_01);display:flex;align-items:center;justify-content:center;width:40px;height:41px;color:var(--ods-color-text-secondary);font-size:11px;font-weight:600}.ods-flow-canvas__empty{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);display:flex;flex-direction:column;align-items:center;gap:var(--ods-spacing-04);text-align:center;color:var(--ods-color-text-secondary);pointer-events:none}.ods-flow-canvas__empty svg{color:var(--ods-color-icon-secondary)}.ods-flow-canvas__empty h3{font:var(--ods-font-heading_03);color:var(--ods-color-text-primary);margin:0}.ods-flow-canvas__empty p{font:var(--ods-font-body_01);margin:0}.ods-flow-canvas__drag-preview{display:flex;align-items:center;gap:var(--ods-spacing-03);padding:var(--ods-spacing-04);background:var(--ods-color-background-secondary);border:1px solid var(--ods-color-border-subtle);border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.2);cursor:grabbing;pointer-events:none;font:var(--ods-font-body_compact_01);font-weight:600;color:var(--ods-color-text-primary)}.ods-flow-canvas__drag-preview-icon{display:flex;align-items:center;justify-content:center;color:var(--ods-color-icon-primary)}.ods-flow-node{position:absolute;width:368px;background:var(--ods-color-background-primary);border:1px solid var(--ods-color-border-subtle);cursor:grab;user-select:none;box-shadow:0 2px 8px rgba(0,0,0,.2);transition:box-shadow .2s ease,transform .2s ease;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:geometricPrecision;image-rendering:crisp-edges;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(0);-webkit-transform:translateZ(0);will-change:transform;perspective:1000px;-webkit-perspective:1000px}.ods-flow-node:hover{box-shadow:0 4px 16px rgba(0,0,0,.3)}.ods-flow-node--dragging{opacity:.8;cursor:grabbing;box-shadow:0 8px 24px rgba(0,0,0,.4)}.ods-flow-node--config-open{border-color:var(--ods-color-icon-primary)}.ods-flow-node__status{position:absolute;top:var(--ods-spacing-03);right:var(--ods-spacing-03);display:flex;align-items:center;justify-content:center;padding:2px 4px;border-radius:2px;color:var(--ods-color-support-warning)}.ods-flow-node__status svg{flex-shrink:0}.ods-flow-node__status--valid{color:var(--ods-color-support-success)}.ods-flow-node__status--warning{color:var(--ods-color-support-warning)}.ods-flow-node__status--error{color:var(--ods-color-support-error)}.ods-flow-node__status--unconfigured{color:var(--ods-color-text-secondary)}.ods-flow-node__header{position:absolute;top:-18px;left:0;display:flex;align-items:center;justify-content:space-between;width:155px;height:18px;padding:0 var(--ods-spacing-03);background:var(--ods-color-support-success);cursor:grab;color:var(--ods-color-text-on-color);font:var(--ods-font-label_01);font-weight:600}.ods-flow-node__header:active{cursor:grabbing}.ods-flow-node__header-left{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.ods-flow-node__header-right{display:flex;align-items:center;gap:4px;flex-shrink:0}.ods-flow-node__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--ods-color-text-on-color)}.ods-flow-node__icon svg{width:12px;height:12px;shape-rendering:crispEdges;vector-effect:non-scaling-stroke;image-rendering:crisp-edges;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ods-flow-node__title{flex:1;min-width:0;display:flex;align-items:center;gap:4px}.ods-flow-node__label{font:var(--ods-font-label_01);font-weight:600;color:var(--ods-color-text-on-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;line-height:1}.ods-flow-node__action-btn{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:rgba(0,0,0,0);border:none;color:var(--ods-color-text-on-color);cursor:pointer;transition:all .15s ease;opacity:.8}.ods-flow-node__action-btn:hover{opacity:1;transform:scale(1.1)}.ods-flow-node__action-btn:active{transform:scale(0.95)}.ods-flow-node__action-btn svg{width:14px;height:14px}.ods-flow-node__delete-btn{position:absolute;bottom:var(--ods-spacing-03);right:var(--ods-spacing-03);display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:rgba(0,0,0,0);border:none;color:var(--ods-color-icon-secondary);cursor:pointer;transition:all .15s ease;opacity:.6;z-index:2}.ods-flow-node__delete-btn:hover{opacity:1;color:var(--ods-color-support-error);transform:scale(1.1)}.ods-flow-node__delete-btn:active{transform:scale(0.95)}.ods-flow-node__delete-btn svg{width:16px;height:16px}.ods-flow-node__badge{display:none}.ods-flow-node__actions{display:none}.ods-flow-node__body{position:relative;padding:var(--ods-spacing-05);min-height:108px;display:flex;flex-direction:column;gap:var(--ods-spacing-04);overflow:hidden}.ods-flow-node__content{display:flex;align-items:flex-start;gap:var(--ods-spacing-04);margin-bottom:var(--ods-spacing-04)}.ods-flow-node__content-icon{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--ods-color-background-secondary);border-radius:50%;color:var(--ods-color-text-primary)}.ods-flow-node__content-icon svg{shape-rendering:crispEdges;vector-effect:non-scaling-stroke;image-rendering:crisp-edges;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ods-flow-node__content-text{flex:1;min-width:0}.ods-flow-node__content-title{font:var(--ods-font-heading_compact_01);font-weight:600;color:var(--ods-color-text-primary);margin-bottom:4px}.ods-flow-node__content-subtitle{font:var(--ods-font-label_01);color:var(--ods-color-text-secondary);margin-bottom:4px}.ods-flow-node__content-info{font:var(--ods-font-label_01);color:var(--ods-color-text-primary);display:flex;align-items:center;gap:4px}.ods-flow-node__content-info svg{width:14px;height:14px}.ods-flow-node__description{font:var(--ods-font-body_compact_01);color:var(--ods-color-text-secondary);font-size:12px;line-height:1.4}.ods-flow-node__validation{display:flex;align-items:center;gap:var(--ods-spacing-02);padding:var(--ods-spacing-03);background:var(--ods-color-support-warning) -inverse;color:var(--ods-color-text-primary);border-radius:2px;font:var(--ods-font-label_01)}.ods-flow-node__validation svg{flex-shrink:0;fill:var(--ods-color-support-warning)}.ods-flow-node__ports{position:absolute;display:flex;justify-content:center;align-items:center;gap:var(--ods-spacing-03)}.ods-flow-node__ports--input{left:50%;top:-8px;transform:translateX(-50%)}.ods-flow-node__ports--output{left:50%;bottom:-8px;transform:translateX(-50%)}.ods-flow-node__ports--branching{gap:var(--ods-spacing-06);bottom:-10px}.ods-flow-node__port-label{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-size:9px;font-weight:600;letter-spacing:.3px;white-space:nowrap;color:#8a9bb5;pointer-events:none;margin-bottom:2px;text-transform:uppercase}.ods-flow-node__port{position:relative;width:16px;height:16px;cursor:crosshair}.ods-flow-node__port--labeled{display:flex;flex-direction:column;align-items:center;width:auto;min-width:16px}.ods-flow-node__port--connecting .ods-flow-node__port-dot{background:var(--ods-color-support-success);border-color:var(--ods-color-support-success);transform:scale(1.3);box-shadow:0 0 0 3px rgba(36,161,72,.3),0 0 12px rgba(36,161,72,.5);animation:pulse 1s ease-in-out infinite}.ods-flow-node__port--connectable .ods-flow-node__port-dot{background:var(--ods-color-support-success);border-color:var(--ods-color-support-success);transform:scale(1.3);box-shadow:0 0 0 3px rgba(36,161,72,.3),0 0 12px rgba(36,161,72,.5);animation:pulse 1s ease-in-out infinite}.ods-flow-node__port--invalid{cursor:not-allowed}.ods-flow-node__port--invalid .ods-flow-node__port-dot{background:var(--ods-color-support-error);border-color:var(--ods-color-support-error);transform:scale(1.2);box-shadow:0 0 0 3px rgba(218,30,40,.3),0 0 12px rgba(218,30,40,.5)}@keyframes pulse{0%,100%{transform:scale(1.3)}50%{transform:scale(1.5)}}.ods-flow-node__port-dot{width:12px;height:12px;background:#0f1118;border:1px solid #3b4049;transition:all .2s ease;box-shadow:none;margin:2px}.ods-flow-node__port:hover .ods-flow-node__port-dot{background:#161a21;border-color:#6f7785;box-shadow:0 0 0 2px rgba(15,98,254,.35)}.ods-flow-node__port--connected .ods-flow-node__port-dot{background:#0f1118;border-color:#8ab6ff}.ods-flow-node__ports--input .ods-flow-node__port-dot{background:#0f1118;border-color:#3b4049;box-shadow:none}.ods-flow-node__ports--output .ods-flow-node__port-dot{background:#0f1118;border-color:#3b4049;box-shadow:none}.ods-flow-node__port--edge-selected .ods-flow-node__port-dot{border-color:#8ab6ff;box-shadow:0 0 0 2px rgba(138,182,255,.6);animation:port-pulse 1.2s ease-in-out infinite}@keyframes port-pulse{0%{box-shadow:0 0 0 2px rgba(138,182,255,.4)}50%{box-shadow:0 0 0 6px rgba(138,182,255,.15)}100%{box-shadow:0 0 0 2px rgba(138,182,255,.4)}}.ods-flow-node__running-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:var(--ods-color-background-primary);opacity:.9;border-radius:4px}.ods-flow-node__running-overlay svg{animation:rotate 1s linear infinite}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.ods-flow-edge{cursor:pointer;shape-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ods-flow-edge__hitbox{cursor:pointer}.ods-flow-edge__path{transition:stroke-width .2s ease,filter .2s ease;vector-effect:non-scaling-stroke}.ods-flow-edge__path--selected{stroke-width:3 !important;filter:drop-shadow(0 0 6px currentColor)}.ods-flow-edge__path--active{stroke-width:2.4;filter:drop-shadow(0 0 4px rgba(0, 0, 0, 0.35))}.ods-flow-edge__arrow{vector-effect:non-scaling-stroke;transition:stroke .2s ease}.ods-flow-edge__handle{fill:#0f1118;stroke:#3b4049;stroke-width:1;vector-effect:non-scaling-stroke;transition:fill .2s ease,stroke .2s ease}.ods-flow-edge__handle:hover{fill:#161a21;stroke:#6f7785}.ods-flow-edge__label{font:var(--ods-font-label_01);font-weight:600;pointer-events:none;user-select:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ods-flow-edge__delete{cursor:pointer;transition:transform .2s ease}.ods-flow-edge__delete:hover{transform:scale(1.1)}.ods-flow-edge__delete:active{transform:scale(0.95)}.ods-flow-edge__delete-bg{transition:fill .2s ease}.ods-flow-edge__delete:hover .ods-flow-edge__delete-bg{fill:#ba1b23}.ods-flow-edge__delete-icon{pointer-events:none;user-select:none}.ods-flow-minimap{position:absolute;bottom:12px;right:12px;width:140px;height:100px;border-radius:10px;overflow:hidden;cursor:pointer;background:hsla(0,0%,100%,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.8)}.ods-flow-minimap svg{display:block;width:100%;height:100%}.ods-flow-minimap__node{opacity:.85;rx:3;ry:3}.ods-flow-minimap__edge{stroke:rgba(99,102,241,.3);stroke-width:.5}.ods-flow-minimap__viewport{fill:rgba(99,102,241,.08);stroke:#6366f1;stroke-width:1}.ods-flow-toolbar{position:absolute;display:inline-flex;align-items:center;gap:2px;padding:4px;background:#fff;border:1px solid #e8e5f0;border-radius:10px;box-shadow:0 6px 20px rgba(108,92,231,.14);z-index:50;overflow:visible}.ods-flow-toolbar--left{top:16px;left:16px;flex-direction:column}.ods-flow-toolbar--right{top:16px;right:16px;flex-direction:column}.ods-flow-toolbar--top{top:16px;left:50%;transform:translateX(-50%);flex-direction:row}.ods-flow-toolbar--bottom{bottom:16px;left:50%;transform:translateX(-50%);flex-direction:row}.ods-flow-toolbar__btn-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center}.ods-flow-toolbar__btn-wrapper[data-tooltip]::after{content:attr(data-tooltip);position:absolute;background:#1e1b4b;color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:9999;will-change:opacity}.ods-flow-toolbar__btn-wrapper[data-tooltip]::before{content:"";position:absolute;border:4px solid rgba(0,0,0,0);opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:9999}.ods-flow-toolbar__btn-wrapper[data-tooltip]:hover::after,.ods-flow-toolbar__btn-wrapper[data-tooltip]:hover::before{opacity:1}.ods-flow-toolbar--left .ods-flow-toolbar__btn-wrapper[data-tooltip]::after{left:calc(100% + 10px);top:50%;transform:translateY(-50%)}.ods-flow-toolbar--left .ods-flow-toolbar__btn-wrapper[data-tooltip]::before{left:calc(100% + 2px);top:50%;transform:translateY(-50%);border-right-color:#1e1b4b}.ods-flow-toolbar--right .ods-flow-toolbar__btn-wrapper[data-tooltip]::after{right:calc(100% + 10px);top:50%;transform:translateY(-50%)}.ods-flow-toolbar--right .ods-flow-toolbar__btn-wrapper[data-tooltip]::before{right:calc(100% + 2px);top:50%;transform:translateY(-50%);border-left-color:#1e1b4b}.ods-flow-toolbar--top .ods-flow-toolbar__btn-wrapper[data-tooltip]::after{top:calc(100% + 10px);left:50%;transform:translateX(-50%)}.ods-flow-toolbar--top .ods-flow-toolbar__btn-wrapper[data-tooltip]::before{top:calc(100% + 2px);left:50%;transform:translateX(-50%);border-bottom-color:#1e1b4b}.ods-flow-toolbar--bottom .ods-flow-toolbar__btn-wrapper[data-tooltip]::after{bottom:calc(100% + 10px);left:50%;transform:translateX(-50%)}.ods-flow-toolbar--bottom .ods-flow-toolbar__btn-wrapper[data-tooltip]::before{bottom:calc(100% + 2px);left:50%;transform:translateX(-50%);border-top-color:#1e1b4b}.ods-flow-toolbar__btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;background:rgba(0,0,0,0);border-radius:6px;color:#4d5768;cursor:pointer;transition:background 120ms,color 120ms}.ods-flow-toolbar__btn:hover:not(:disabled){background:#f3f1ff;color:#1a1633}.ods-flow-toolbar__btn:active:not(:disabled){background:#e9e5ff}.ods-flow-toolbar__btn:focus-visible{outline:2px solid #6366f1;outline-offset:1px}.ods-flow-toolbar__btn:disabled{opacity:.4;cursor:not-allowed}.ods-flow-toolbar__btn--active{background:#eef2ff;color:#4338ca}.ods-flow-toolbar__btn--active:hover{background:#e0e7ff}.ods-flow-toolbar__btn--danger:hover{background:#fef2f2;color:#ef4444}.ods-flow-toolbar__btn-icon{display:inline-flex;align-items:center;justify-content:center}.ods-flow-toolbar__btn-icon svg{display:block}.ods-flow-toolbar__divider{background:#eef0f7;align-self:stretch}.ods-flow-toolbar--top .ods-flow-toolbar__divider,.ods-flow-toolbar--bottom .ods-flow-toolbar__divider{width:1px;height:auto;margin:4px 2px}.ods-flow-toolbar--left .ods-flow-toolbar__divider,.ods-flow-toolbar--right .ods-flow-toolbar__divider{width:auto;height:1px;margin:2px 4px}.ods-flow-toolbar__zoom{display:inline-flex;align-items:center;gap:2px}.ods-flow-toolbar--left .ods-flow-toolbar__zoom,.ods-flow-toolbar--right .ods-flow-toolbar__zoom{flex-direction:column}.ods-flow-toolbar__zoom-label{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:24px;padding:0 6px;border-radius:6px;color:#6b7280;font-family:inherit;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;user-select:none}.ods-workflow-editor{position:relative;display:flex;font-family:"Lufga","Outfit",-apple-system,sans-serif;background:rgba(0,0,0,0)}.ods-workflow-editor__drawer{flex-shrink:0;height:100%;border-right:1px solid #e8e5f0;background:#fff;overflow:hidden;display:flex;flex-direction:column}.ods-workflow-editor__canvas-wrapper{position:relative;flex:1;min-width:0;height:100%}.ods-workflow-editor__minimap{position:absolute;right:16px;bottom:16px;z-index:40}.ods-workflow-editor__console{position:absolute;left:16px;right:16px;bottom:16px;z-index:45;pointer-events:auto}.ods-action-drawer{position:absolute;top:0;left:0;width:240px;height:100%;display:flex;flex-direction:column;z-index:10;background:hsla(0,0%,100%,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.8);border-right:1px solid hsla(0,0%,100%,.8);font-family:"Outfit","Lufga",sans-serif}.ods-action-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(0,0,0,.06)}.ods-action-drawer__title{font-size:14px;font-weight:600;color:#1e1b4b}.ods-action-drawer__toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:rgba(0,0,0,0);color:#6b7280;cursor:pointer;transition:all .2s ease}.ods-action-drawer__toggle:hover{background:rgba(99,102,241,.08)}.ods-action-drawer__toggle:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-action-drawer__search{padding:12px 16px}.ods-action-drawer__input{width:100%;height:32px;padding:0 12px;border:1px solid hsla(0,0%,100%,.8);border-radius:8px;font-size:13px;color:#1e1b4b;background:hsla(0,0%,100%,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);outline:none;transition:all .2s ease}.ods-action-drawer__input::placeholder{color:#9ca3af}.ods-action-drawer__input:focus{box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-action-drawer__list{flex:1;overflow-y:auto;padding:0 12px 12px}.ods-action-drawer__group{margin-bottom:12px}.ods-action-drawer__category{padding:8px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af}.ods-action-drawer__item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;cursor:grab;transition:all .2s ease}.ods-action-drawer__item:hover{background:rgba(99,102,241,.08)}.ods-action-drawer__item:active{cursor:grabbing;background:rgba(99,102,241,.12)}.ods-action-drawer__item:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-action-drawer__item-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;border-radius:9999px;background:rgba(99,102,241,.1);color:#6366f1;font-size:14px}.ods-action-drawer__item-icon svg{width:14px;height:14px}.ods-action-drawer__item-info{flex:1;min-width:0}.ods-action-drawer__item-label{font-size:13px;font-weight:500;color:#1e1b4b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ods-action-drawer__item-desc{font-size:11px;color:#6b7280;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ods-action-drawer__empty{padding:24px 16px;text-align:center;font-size:13px;color:#9ca3af}.ods-config-panel{position:absolute;top:0;right:0;width:320px;height:100%;display:flex;flex-direction:column;z-index:20;background:hsla(0,0%,100%,.6);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid hsla(0,0%,100%,.8);border-left:1px solid hsla(0,0%,100%,.8);font-family:"Outfit","Lufga",sans-serif}.ods-config-panel__header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid rgba(0,0,0,.06)}.ods-config-panel__header-left{display:flex;align-items:center;gap:8px;min-width:0}.ods-config-panel__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;border-radius:10px;background:rgba(99,102,241,.1);color:#6366f1}.ods-config-panel__icon svg{width:16px;height:16px}.ods-config-panel__title{font-size:14px;font-weight:600;color:#1e1b4b;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ods-config-panel__close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:9999px;background:rgba(0,0,0,0);color:#6b7280;cursor:pointer;transition:all .2s ease}.ods-config-panel__close:hover{background:rgba(99,102,241,.08);color:#1e1b4b}.ods-config-panel__close:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-config-panel__body{flex:1;overflow-y:auto;padding:16px}.ods-config-panel__footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid rgba(0,0,0,.06)}.ods-config-panel__btn{height:34px;padding:0 16px;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.ods-config-panel__btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.15)}.ods-config-panel__btn--cancel{background:rgba(0,0,0,0);color:#6b7280}.ods-config-panel__btn--cancel:hover{background:rgba(99,102,241,.08);color:#1e1b4b}.ods-config-panel__btn--save{background:#6366f1;color:#fff}.ods-config-panel__btn--save:hover{background:#8b5cf6}@keyframes ods-console-pulse{0%,100%{opacity:1}50%{opacity:.4}}.ods-console{display:flex;flex-direction:column;overflow:hidden;border-radius:12px;background:hsla(0,0%,100%,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.8);font-family:"Outfit","Lufga",sans-serif}.ods-console__bar{display:flex;align-items:center;justify-content:space-between;gap:8px;height:36px;min-height:36px;padding:0 12px;cursor:pointer;transition:all .2s ease}.ods-console__toggle{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:6px;background:rgba(0,0,0,0);color:#9ca3af;cursor:pointer;transition:all .2s ease}.ods-console__toggle:hover{background:rgba(99,102,241,.08);color:#1e1b4b}.ods-console__label{font-size:12px;font-weight:600;color:#1e1b4b;display:flex;align-items:center;gap:8px}.ods-console__status{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:9999px;background:rgba(99,102,241,.1);color:#4338ca;font-size:11px;font-weight:500;line-height:1}.ods-console__status-dot{width:8px;height:8px;border-radius:9999px;background-color:#6366f1;animation:ods-console-pulse 1.2s ease-in-out infinite;flex-shrink:0}.ods-console__status-text{white-space:nowrap}.ods-console__count{font-size:11px;color:#6b7280;margin-left:auto}.ods-console__actions{display:flex;align-items:center;gap:2px}.ods-console__action{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:6px;background:rgba(0,0,0,0);color:#6b7280;cursor:pointer;transition:background .15s ease,color .15s ease}.ods-console__action:hover{background:rgba(99,102,241,.1);color:#1e1b4b}.ods-console__action:active{background:rgba(99,102,241,.18)}.ods-console__action:focus-visible{outline:2px solid #6366f1;outline-offset:1px}.ods-console__action svg{display:block}.ods-console__action--stop{background:#ef4444;color:#fff}.ods-console__action--stop:hover{background:#dc2626;color:#fff}.ods-console__action-separator{display:inline-block;width:1px;height:16px;margin:0 4px;background:rgba(17,24,39,.12)}.ods-console__logs{flex:1;overflow-y:auto;padding:10px 12px;background:rgba(30,27,75,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(99,102,241,.2);font-family:"SF Mono","Fira Code",monospace;font-size:12px;line-height:1.8}.ods-console__empty{padding:16px;text-align:center;color:#6b7280;font-size:12px}.ods-console__line{display:flex;gap:8px;padding:1px 12px;color:hsla(0,0%,100%,.8);transition:all .2s ease}.ods-console__line:hover{background:hsla(0,0%,100%,.03)}.ods-console__line--error{background:rgba(239,68,68,.08)}.ods-console__line--warn{background:rgba(245,158,11,.06)}.ods-console__timestamp{color:#9ca3af;white-space:nowrap;min-width:70px}.ods-console__level{font-weight:600;white-space:nowrap;min-width:52px}.ods-console__level--info{color:#10b981}.ods-console__level--warn{color:#f59e0b}.ods-console__level--error{color:#ef4444}.ods-console__level--debug{color:#6b7280}.ods-console__level--success{color:#10b981}.ods-console__message{flex:1;word-break:break-all}.ods-banner{display:flex;align-items:center;gap:14px;padding:14px 20px;border-radius:12px;border:1px solid rgba(0,0,0,0);width:100%}.ods-banner__icon{display:inline-flex;flex-shrink:0;width:22px;height:22px;align-items:center;justify-content:center}.ods-banner__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.ods-banner__title{font-size:14px;font-weight:600;color:#1a1633}.ods-banner__description{font-size:12px;color:#6b7280;line-height:1.4}.ods-banner__action{flex-shrink:0}.ods-banner__dismiss{flex-shrink:0;width:24px;height:24px;border:0;background:rgba(0,0,0,0);border-radius:6px;color:#9ca3af;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background 150ms,color 150ms}.ods-banner__dismiss:hover{background:rgba(0,0,0,.04);color:#4b5563}.ods-banner--info{background:linear-gradient(90deg, #f0edff 0%, #e0dbff 100%);border-color:#c4b5fe}.ods-banner--info .ods-banner__icon{color:#6c5ce7}.ods-banner--success{background:#ecfdf5;border-color:rgba(34,197,94,.3)}.ods-banner--success .ods-banner__icon{color:#16a34a}.ods-banner--warning{background:#fffbeb;border-color:rgba(245,158,11,.35)}.ods-banner--warning .ods-banner__icon{color:#d97706}.ods-banner--error{background:#fef2f2;border-color:rgba(239,68,68,.3)}.ods-banner--error .ods-banner__icon{color:#dc2626}.ods-banner--promo{background:linear-gradient(90deg, #f0edff 0%, #fdf2f8 100%);border-color:#c4b5fe}.ods-banner--promo .ods-banner__icon{color:#6c5ce7}.ods-stat{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:12px;background:#fff;border:1px solid #e8e5f0}.ods-stat__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ods-stat__label{font-size:10px;font-weight:700;letter-spacing:1px;color:#9ca3af;text-transform:uppercase}.ods-stat__icon{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:8px;background:#f0edff;color:#6c5ce7}.ods-stat__value{font-size:28px;font-weight:800;color:#1a1633;line-height:1.1}.ods-stat__delta{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700}.ods-stat__delta--up{color:#16a34a}.ods-stat__delta--down{color:#dc2626}.ods-stat__delta--neutral{color:#6b7280}.ods-stat__delta-arrow{font-size:10px}.ods-stat__delta-suffix{font-weight:400;color:#9ca3af;font-size:11px}.ods-stat--sm{padding:14px}.ods-stat--sm .ods-stat__value{font-size:22px}.ods-stat--lg{padding:26px}.ods-stat--lg .ods-stat__value{font-size:36px}.ods-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border-radius:999px;background:#fff;border:1px solid #e8e5f0;font-size:13px;font-weight:500;color:#1a1633;white-space:nowrap;user-select:none;transition:background 150ms,border-color 150ms}.ods-chip--avatar{padding-left:5px}.ods-chip__avatar{display:inline-flex;width:22px;height:22px;border-radius:50%;overflow:hidden;align-items:center;justify-content:center;background:#f0edff;color:#6c5ce7;font-size:10px;font-weight:700;flex-shrink:0}.ods-chip__icon{display:inline-flex;width:14px;height:14px;align-items:center;justify-content:center;color:currentColor;flex-shrink:0}.ods-chip__label{line-height:1.2}.ods-chip__remove{display:inline-flex;width:14px;height:14px;border:0;background:rgba(0,0,0,0);border-radius:50%;color:currentColor;opacity:.6;cursor:pointer;align-items:center;justify-content:center;transition:opacity 150ms,background 150ms}.ods-chip__remove:hover{opacity:1;background:rgba(0,0,0,.08)}.ods-chip--interactive{cursor:pointer}.ods-chip--interactive:hover{background:#f3f1ff;border-color:#c4b5fe}.ods-chip--disabled{opacity:.5;cursor:not-allowed}.ods-chip--primary{background:#f0edff;color:#5b4bd1;border-color:rgba(0,0,0,0)}.ods-chip--success{background:#ecfdf5;color:#16a34a;border-color:rgba(0,0,0,0)}.ods-chip--warning{background:#fffbeb;color:#d97706;border-color:rgba(0,0,0,0)}.ods-chip--error{background:#fef2f2;color:#dc2626;border-color:rgba(0,0,0,0)}.ods-chip--sm{padding:3px 8px;font-size:11px;gap:6px}.ods-chip--sm .ods-chip__avatar{width:18px;height:18px;font-size:9px}.ods-chip--sm .ods-chip__icon,.ods-chip--sm .ods-chip__remove{width:12px;height:12px}.ods-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;padding:4px 8px;border-radius:6px;background:#f0eef5;border:1px solid #e8e5f0;border-bottom-width:2px;color:#4d5768;font-family:"JetBrains Mono","Fira Code",monospace;font-size:12px;font-weight:600;line-height:1;white-space:nowrap}.ods-kbd--sm{min-width:18px;padding:2px 6px;font-size:10px;border-radius:4px}.ods-kbd-group{display:inline-flex;align-items:center;gap:4px}.ods-kbd-group__item{display:inline-flex;align-items:center;gap:4px}.ods-kbd-group__sep{color:#9aa3b3;font-size:11px;font-weight:500}.ods-callout{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;border-radius:12px;border-left:4px solid;background:#f8f7ff}.ods-callout__icon{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;color:currentColor;flex-shrink:0;margin-top:1px}.ods-callout__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.ods-callout__title{font-size:13px;font-weight:700;color:#1a1633}.ods-callout__content{font-size:12px;color:#4d5768;line-height:1.5}.ods-callout--tip{background:#fffbeb;border-left-color:#d97706}.ods-callout--tip .ods-callout__icon{color:#d97706}.ods-callout--info{background:#f0edff;border-left-color:#6c5ce7}.ods-callout--info .ods-callout__icon{color:#6c5ce7}.ods-callout--warning{background:#fff7ed;border-left-color:#ea580c}.ods-callout--warning .ods-callout__icon{color:#ea580c}.ods-callout--danger{background:#fef2f2;border-left-color:#dc2626}.ods-callout--danger .ods-callout__icon{color:#dc2626}.ods-callout--success{background:#ecfdf5;border-left-color:#16a34a}.ods-callout--success .ods-callout__icon{color:#16a34a}.ods-quote{position:relative;display:flex;flex-direction:column;gap:12px;padding:20px 20px 20px 24px;border-left:4px solid #6c5ce7;border-radius:10px;background:#f0edff;margin:0}.ods-quote__mark{position:absolute;top:4px;left:14px;font-size:36px;font-family:"Georgia",serif;color:#c4b5fe;line-height:1;pointer-events:none}.ods-quote__text{margin:0;font-size:14px;line-height:1.5;color:#1a1633;font-style:italic}.ods-quote__footer{display:flex;align-items:center;gap:6px;font-size:12px;color:#6b7280}.ods-quote__author{font-weight:700;font-style:normal;color:#4d5768}.ods-quote__attribution{color:#9aa3b3}.ods-quote--muted{background:#f8f9fb;border-left-color:#9aa3b3}.ods-quote--muted .ods-quote__mark{color:#c8ced8}.ods-quote--primary{background:linear-gradient(135deg, #f0edff 0%, #fdf2f8 100%);border-left-color:#8b5cf6}.ods-quote--sm{padding:14px 16px 14px 20px}.ods-quote--sm .ods-quote__text{font-size:13px}.ods-quote--sm .ods-quote__mark{font-size:28px;top:2px}.ods-quote--lg{padding:28px 28px 28px 32px}.ods-quote--lg .ods-quote__text{font-size:18px;line-height:1.55}.ods-quote--lg .ods-quote__mark{font-size:48px;top:6px;left:18px}.ods-icon-card{display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:12px;background:#fff;border:1px solid #e8e5f0;transition:border-color 150ms,box-shadow 150ms,transform 150ms}.ods-icon-card__icon{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:10px;background:#f0edff;color:#6c5ce7}.ods-icon-card__body{display:flex;flex-direction:column;gap:4px}.ods-icon-card__title{font-size:14px;font-weight:700;color:#1a1633}.ods-icon-card__description{font-size:12px;color:#6b7280;line-height:1.5}.ods-icon-card__action{margin-top:4px}.ods-icon-card--interactive{cursor:pointer}.ods-icon-card--interactive:hover{border-color:#c4b5fe;box-shadow:0 6px 18px rgba(108,92,231,.12);transform:translateY(-1px)}.ods-icon-card--primary .ods-icon-card__icon{background:#f0edff;color:#6c5ce7}.ods-icon-card--success .ods-icon-card__icon{background:#ecfdf5;color:#16a34a}.ods-icon-card--warning .ods-icon-card__icon{background:#fffbeb;color:#d97706}.ods-icon-card--error .ods-icon-card__icon{background:#fef2f2;color:#dc2626}.ods-dl{margin:0;padding:0;border-radius:10px;background:#fff;border:1px solid #e8e5f0;overflow:hidden}.ods-dl__row{display:flex;align-items:flex-start;padding:12px 14px;gap:12px}.ods-dl__label{margin:0;font-size:12px;font-weight:600;color:#6b7280;flex-shrink:0}.ods-dl__value{margin:0;font-size:12px;font-weight:500;color:#1a1633;line-height:1.4;flex:1 1 auto;min-width:0}.ods-dl--stacked .ods-dl__row{flex-direction:column;align-items:stretch;gap:4px}.ods-dl--divided .ods-dl__row+.ods-dl__row{border-top:1px solid #f0eef5}.ods-dl--sm .ods-dl__row{padding:8px 12px}.ods-dl--sm .ods-dl__label,.ods-dl--sm .ods-dl__value{font-size:11px}.ods-ribbon{display:inline-flex;align-items:center;gap:6px;padding:6px 14px 6px 10px;border-radius:999px;color:#fff;font-size:12px;font-weight:700;letter-spacing:.5px;white-space:nowrap;box-shadow:0 2px 6px rgba(108,92,231,.3)}.ods-ribbon__icon{display:inline-flex;width:14px;height:14px;align-items:center;justify-content:center}.ods-ribbon__label{text-transform:uppercase}.ods-ribbon--primary{background:linear-gradient(180deg, #8b5cf6 0%, #5b4bd1 100%);box-shadow:0 2px 8px rgba(108,92,231,.35)}.ods-ribbon--success{background:linear-gradient(180deg, #22c55e 0%, #16a34a 100%);box-shadow:0 2px 8px rgba(34,197,94,.3)}.ods-ribbon--warning{background:linear-gradient(180deg, #f59e0b 0%, #d97706 100%);box-shadow:0 2px 8px rgba(245,158,11,.3)}.ods-ribbon--error{background:linear-gradient(180deg, #ef4444 0%, #dc2626 100%);box-shadow:0 2px 8px rgba(239,68,68,.3)}.ods-ribbon--neutral{background:linear-gradient(180deg, #6b7280 0%, #4b5563 100%);box-shadow:0 2px 8px rgba(0,0,0,.15)}.ods-ribbon--sm{padding:3px 10px 3px 7px;font-size:10px;gap:4px}.ods-ribbon--sm .ods-ribbon__icon{width:10px;height:10px}.ods-link-btn{display:inline-flex;align-items:center;gap:6px;font-weight:600;text-decoration:none;cursor:pointer;transition:color 150ms}.ods-link-btn__icon{display:inline-flex;align-items:center;justify-content:center;transition:transform 150ms}.ods-link-btn__label{line-height:1.2}.ods-link-btn:hover .ods-link-btn__icon--right{transform:translateX(2px)}.ods-link-btn:hover .ods-link-btn__icon--left{transform:translateX(-2px)}.ods-link-btn--underline:hover .ods-link-btn__label{text-decoration:underline}.ods-link-btn--primary{color:#5b4bd1}.ods-link-btn--primary:hover{color:#4c3db8}.ods-link-btn--neutral{color:#4d5768}.ods-link-btn--neutral:hover{color:#1a1633}.ods-link-btn--danger{color:#dc2626}.ods-link-btn--danger:hover{color:#b91c1c}.ods-link-btn--sm{font-size:12px}.ods-link-btn--sm .ods-link-btn__icon{width:12px;height:12px}.ods-link-btn--md{font-size:14px}.ods-link-btn--md .ods-link-btn__icon{width:14px;height:14px}.ods-link-btn--lg{font-size:16px}.ods-link-btn--lg .ods-link-btn__icon{width:18px;height:18px}.ods-toggle{display:inline-flex;padding:3px;gap:2px;border-radius:10px;background:#f3f1ff;border:1px solid #e8e5f0}.ods-toggle--full{display:flex;width:100%}.ods-toggle__opt{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border:0;background:rgba(0,0,0,0);border-radius:7px;font-size:13px;font-weight:500;color:#6b7280;cursor:pointer;flex:1 1 auto;transition:background 150ms,color 150ms,box-shadow 150ms}.ods-toggle__opt:hover:not(.ods-toggle__opt--active):not(:disabled){color:#1a1633}.ods-toggle__opt:disabled{opacity:.5;cursor:not-allowed}.ods-toggle__opt--active{background:#fff;color:#1a1633;font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.1),0 0 0 1px rgba(108,92,231,.08)}.ods-toggle__icon{display:inline-flex;width:14px;height:14px;align-items:center;justify-content:center}.ods-toggle--sm .ods-toggle__opt{padding:5px 10px;font-size:11px}.ods-toggle--lg .ods-toggle__opt{padding:9px 18px;font-size:14px}.ods-num{display:flex;flex-direction:column;gap:6px;width:100%}.ods-num__label{font-size:12px;font-weight:600;color:#1a1633}.ods-num__field{display:flex;height:44px;align-items:stretch;background:#fff;border:1px solid #e8e5f0;border-radius:10px;overflow:hidden;transition:border-color 150ms,box-shadow 150ms}.ods-num__field:focus-within{border-color:#6c5ce7;box-shadow:0 0 0 3px rgba(108,92,231,.1)}.ods-num__step{width:40px;display:inline-flex;align-items:center;justify-content:center;border:0;background:#f3f1ff;color:#4d5768;cursor:pointer;transition:background 150ms,color 150ms}.ods-num__step:hover:not(:disabled){background:#e0dbff;color:#1a1633}.ods-num__step:disabled{opacity:.4;cursor:not-allowed}.ods-num__step--dec{border-right:1px solid #e8e5f0}.ods-num__step--inc{border-left:1px solid #e8e5f0}.ods-num__prefix,.ods-num__suffix{display:inline-flex;align-items:center;padding:0 10px;font-size:13px;color:#9aa3b3;background:rgba(0,0,0,0)}.ods-num__input{flex:1 1 auto;min-width:0;padding:0 14px;border:0;background:rgba(0,0,0,0);font-size:15px;font-weight:600;color:#1a1633;text-align:center;outline:none;font-family:inherit}.ods-num__input::-webkit-outer-spin-button,.ods-num__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ods-num__input[type=number]{-moz-appearance:textfield}.ods-num__hint{font-size:11px;color:#6b7280}.ods-num__hint--error{color:#dc2626}.ods-num--error .ods-num__field{border-color:#ef4444}.ods-num--disabled .ods-num__field{background:#f0f2f5;opacity:.6}.ods-num--sm .ods-num__field{height:36px;border-radius:8px}.ods-num--sm .ods-num__step{width:32px}.ods-num--sm .ods-num__input{font-size:13px}.ods-num--lg .ods-num__field{height:52px;border-radius:12px}.ods-num--lg .ods-num__step{width:48px}.ods-num--lg .ods-num__input{font-size:17px}.ods-otp{display:flex;flex-direction:column;gap:10px}.ods-otp__label{font-size:12px;font-weight:600;color:#1a1633}.ods-otp__row{display:inline-flex;gap:10px}.ods-otp__cell{width:44px;height:52px;border:1px solid #e8e5f0;border-radius:10px;text-align:center;font-size:22px;font-weight:700;color:#1a1633;background:#fff;outline:none;caret-color:#6c5ce7;transition:border-color 150ms,box-shadow 150ms}.ods-otp__cell:focus{border-color:#6c5ce7;border-width:2px;box-shadow:0 0 0 3px rgba(108,92,231,.1)}.ods-otp__cell--filled{border-color:#c4b5fe}.ods-otp__hint{font-size:11px;color:#dc2626}.ods-otp--disabled .ods-otp__cell{background:#f0f2f5;opacity:.6;cursor:not-allowed}.ods-otp--error .ods-otp__cell{border-color:#ef4444}.ods-pwd{display:flex;flex-direction:column;gap:6px;width:100%}.ods-pwd__label{font-size:12px;font-weight:600;color:#1a1633}.ods-pwd__field{display:flex;height:44px;align-items:center;gap:10px;padding:0 14px;background:#fff;border:1px solid #e8e5f0;border-radius:10px;transition:border-color 150ms,box-shadow 150ms}.ods-pwd__field:focus-within{border-color:#6c5ce7;box-shadow:0 0 0 3px rgba(108,92,231,.1)}.ods-pwd__icon{display:inline-flex;width:16px;height:16px;color:#9aa3b3;flex-shrink:0}.ods-pwd__input{flex:1 1 auto;min-width:0;border:0;outline:none;background:rgba(0,0,0,0);font-size:14px;color:#1a1633;font-family:inherit;letter-spacing:1px}.ods-pwd__input:placeholder-shown{letter-spacing:normal}.ods-pwd__toggle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;background:rgba(0,0,0,0);border-radius:6px;color:#6b7280;cursor:pointer;flex-shrink:0;transition:background 150ms,color 150ms}.ods-pwd__toggle:hover:not(:disabled){background:#f3f1ff;color:#1a1633}.ods-pwd__toggle:disabled{opacity:.4;cursor:not-allowed}.ods-pwd__strength{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b7280}.ods-pwd__meter{flex:1 1 auto;height:4px;border-radius:2px;background:#f0f2f5;overflow:hidden}.ods-pwd__bar{display:block;height:100%;border-radius:2px;transition:width 200ms,background 200ms}.ods-pwd__bar--0{width:10%;background:#ef4444}.ods-pwd__bar--1{width:30%;background:#f59e0b}.ods-pwd__bar--2{width:55%;background:#eab308}.ods-pwd__bar--3{width:80%;background:#22c55e}.ods-pwd__bar--4{width:100%;background:#16a34a}.ods-pwd__strength-label{font-weight:600;white-space:nowrap}.ods-pwd__hint{font-size:11px;color:#6b7280}.ods-pwd__hint--error{color:#dc2626}.ods-pwd--error .ods-pwd__field{border-color:#ef4444}.ods-pwd--disabled .ods-pwd__field{background:#f0f2f5;opacity:.6}.ods-pwd--sm .ods-pwd__field{height:36px;border-radius:8px}.ods-pwd--lg .ods-pwd__field{height:52px;border-radius:12px}.ods-pwd--lg .ods-pwd__field .ods-pwd__input{font-size:15px}.ods-rating{display:inline-flex;align-items:center;gap:4px;color:#c8ced8}.ods-rating__item{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:rgba(0,0,0,0);cursor:default;transition:transform 100ms}.ods-rating__half{position:absolute;top:0;height:100%;width:50%;z-index:1}.ods-rating__half--left{left:0}.ods-rating__half--right{right:0}.ods-rating__label{margin-left:8px;font-size:14px;font-weight:600;color:#1a1633}.ods-rating--interactive .ods-rating__item{cursor:pointer}.ods-rating--interactive .ods-rating__item:hover{transform:scale(1.1)}.ods-rating--readonly .ods-rating__half,.ods-rating--disabled .ods-rating__half{pointer-events:none}.ods-rating--disabled{opacity:.5}.ods-rating--sm svg{width:16px;height:16px}.ods-rating--md svg{width:22px;height:22px}.ods-rating--lg svg{width:28px;height:28px}.ods-slider{display:flex;flex-direction:column;gap:10px;width:100%}.ods-slider__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ods-slider__label{font-size:12px;font-weight:600;color:#1a1633}.ods-slider__value{font-size:12px;font-weight:600;color:#5b4bd1}.ods-slider__track{position:relative;height:4px;border-radius:2px;background:#f3f1ff}.ods-slider__fill{position:absolute;top:0;left:0;height:100%;border-radius:2px;background:linear-gradient(90deg, #8b5cf6 0%, #5b4bd1 100%);pointer-events:none;will-change:width}.ods-slider__input{position:absolute;inset:-9px 0;width:100%;height:22px;margin:0;padding:0;background:rgba(0,0,0,0);-webkit-appearance:none;appearance:none;cursor:pointer;opacity:1}.ods-slider__input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #6c5ce7;box-shadow:0 2px 6px rgba(108,92,231,.35);cursor:grab;transition:transform 120ms cubic-bezier(0.4, 0, 0.2, 1);will-change:transform}.ods-slider__input::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #6c5ce7;box-shadow:0 2px 6px rgba(108,92,231,.35);cursor:grab;transition:transform 120ms cubic-bezier(0.4, 0, 0.2, 1)}.ods-slider__input:hover::-webkit-slider-thumb{transform:scale(1.15)}.ods-slider__input:active::-webkit-slider-thumb,.ods-slider__input:focus-visible::-webkit-slider-thumb{transform:scale(1.15);cursor:grabbing}.ods-slider__input:focus,.ods-slider__input:focus-visible{outline:none;box-shadow:none}.ods-slider__input::-moz-focus-outer{border:0}.ods-slider__input:disabled{cursor:not-allowed}.ods-slider--sm .ods-slider__track{height:3px}.ods-slider--lg .ods-slider__track{height:6px}.ods-slider--success .ods-slider__fill{background:linear-gradient(90deg, #22c55e 0%, #16a34a 100%)}.ods-slider--success .ods-slider__input::-webkit-slider-thumb{border-color:#16a34a;box-shadow:0 2px 6px rgba(34,197,94,.35)}.ods-slider--success .ods-slider__value{color:#16a34a}.ods-slider--warning .ods-slider__fill{background:linear-gradient(90deg, #f59e0b 0%, #d97706 100%)}.ods-slider--warning .ods-slider__input::-webkit-slider-thumb{border-color:#d97706;box-shadow:0 2px 6px rgba(245,158,11,.35)}.ods-slider--warning .ods-slider__value{color:#d97706}.ods-slider--error .ods-slider__fill{background:linear-gradient(90deg, #ef4444 0%, #dc2626 100%)}.ods-slider--error .ods-slider__input::-webkit-slider-thumb{border-color:#dc2626;box-shadow:0 2px 6px rgba(239,68,68,.35)}.ods-slider--error .ods-slider__value{color:#dc2626}.ods-slider--disabled{opacity:.55}.ods-slider--disabled .ods-slider__input{cursor:not-allowed}.ods-range-slider{display:flex;flex-direction:column;gap:10px;width:100%}.ods-range-slider__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ods-range-slider__label{font-size:12px;font-weight:600;color:#1a1633}.ods-range-slider__value{font-size:12px;font-weight:600;color:#5b4bd1;font-variant-numeric:tabular-nums}.ods-range-slider__track{position:relative;height:4px;border-radius:2px;background:#f3f1ff}.ods-range-slider__fill{position:absolute;top:0;height:100%;border-radius:2px;background:linear-gradient(90deg, #8b5cf6 0%, #5b4bd1 100%);pointer-events:none;transition:left 100ms,right 100ms}.ods-range-slider__input{position:absolute;inset:-9px 0;width:100%;height:22px;margin:0;padding:0;background:rgba(0,0,0,0);-webkit-appearance:none;appearance:none;pointer-events:none}.ods-range-slider__input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #6c5ce7;box-shadow:0 2px 6px rgba(108,92,231,.35);cursor:pointer;pointer-events:auto;transition:transform 100ms}.ods-range-slider__input::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #6c5ce7;box-shadow:0 2px 6px rgba(108,92,231,.35);cursor:pointer;pointer-events:auto}.ods-range-slider__input:hover::-webkit-slider-thumb{transform:scale(1.1)}.ods-range-slider__input:focus{outline:none}.ods-range-slider__input:focus::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(108,92,231,.2),0 2px 6px rgba(108,92,231,.35)}.ods-range-slider__input:disabled::-webkit-slider-thumb{cursor:not-allowed}.ods-range-slider--sm .ods-range-slider__track{height:3px}.ods-range-slider--lg .ods-range-slider__track{height:6px}.ods-range-slider--disabled{opacity:.55}.ods-tags{display:flex;flex-direction:column;gap:6px;width:100%}.ods-tags__label{font-size:12px;font-weight:600;color:#1a1633}.ods-tags__field{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:44px;padding:6px 10px;background:#fff;border:1px solid #e8e5f0;border-radius:10px;transition:border-color 150ms,box-shadow 150ms;cursor:text}.ods-tags__field:focus-within{border-color:#6c5ce7;box-shadow:0 0 0 3px rgba(108,92,231,.1)}.ods-tags__chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:#f0edff;color:#5b4bd1;border-radius:6px;font-size:12px;font-weight:600;line-height:1.3}.ods-tags__chip-text{line-height:1.2}.ods-tags__chip-x{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;padding:0;border:0;background:rgba(0,0,0,0);color:currentColor;opacity:.7;cursor:pointer;border-radius:2px}.ods-tags__chip-x:hover:not(:disabled){opacity:1}.ods-tags__chip-x:disabled{opacity:.4;cursor:not-allowed}.ods-tags__input{flex:1 1 100px;min-width:80px;border:0;outline:none;background:rgba(0,0,0,0);font-size:13px;color:#1a1633;font-family:inherit}.ods-tags__input::placeholder{color:#9ca3af}.ods-tags__hint{font-size:11px;color:#6b7280}.ods-tags__hint--error{color:#dc2626}.ods-tags--error .ods-tags__field{border-color:#ef4444}.ods-tags--disabled .ods-tags__field{background:#f0f2f5;opacity:.6}.ods-tags--sm .ods-tags__field{min-height:36px;padding:4px 8px;border-radius:8px}.ods-tags--sm .ods-tags__chip{font-size:11px;padding:2px 6px}.ods-tags--sm .ods-tags__input{font-size:12px}.ods-tags--lg .ods-tags__field{min-height:52px;padding:8px 12px;border-radius:12px}.ods-tags--lg .ods-tags__chip{font-size:13px;padding:4px 10px}.ods-tags--lg .ods-tags__input{font-size:14px}.ods-color{display:flex;flex-direction:column;gap:8px;width:100%}.ods-color__label{font-size:12px;font-weight:600;color:#1a1633}.ods-color__field{display:flex;align-items:center;gap:10px;height:44px;padding:0 12px;background:#fff;border:1px solid #e8e5f0;border-radius:10px;transition:border-color 150ms,box-shadow 150ms}.ods-color__field:focus-within{border-color:#6c5ce7;box-shadow:0 0 0 3px rgba(108,92,231,.1)}.ods-color__swatch{width:28px;height:28px;border-radius:6px;border:1px solid rgba(0,0,0,.07);flex-shrink:0}.ods-color__hex{flex:1 1 auto;min-width:0;border:0;outline:none;background:rgba(0,0,0,0);font-family:"JetBrains Mono","Fira Code",monospace;font-size:13px;font-weight:500;color:#1a1633;letter-spacing:.5px;text-transform:uppercase}.ods-color__pick{position:relative;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:#f3f1ff;color:#6c5ce7;cursor:pointer;transition:background 150ms;overflow:hidden}.ods-color__pick:hover{background:#e0dbff}.ods-color__pick input[type=color]{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:0;padding:0;cursor:pointer}.ods-color__swatches{display:flex;gap:6px;align-items:center}.ods-color__sw{width:28px;height:28px;border-radius:6px;border:1px solid rgba(0,0,0,.07);cursor:pointer;padding:0;transition:transform 100ms,box-shadow 150ms}.ods-color__sw:hover:not(:disabled){transform:scale(1.1)}.ods-color__sw--active{box-shadow:0 0 0 2px #fff,0 0 0 4px #6c5ce7;border-color:rgba(0,0,0,0)}.ods-color__sw:disabled{cursor:not-allowed}.ods-color--disabled .ods-color__field{background:#f0f2f5;opacity:.6}.ods-color--sm .ods-color__field{height:36px;border-radius:8px}.ods-color--sm .ods-color__swatch,.ods-color--sm .ods-color__pick,.ods-color--sm .ods-color__sw{width:22px;height:22px}.ods-color--lg .ods-color__field{height:52px;border-radius:12px}.ods-color--lg .ods-color__swatch,.ods-color--lg .ods-color__pick,.ods-color--lg .ods-color__sw{width:32px;height:32px}.ods-phone{position:relative;display:flex;flex-direction:column;gap:6px;width:100%}.ods-phone__label{font-size:12px;font-weight:600;color:#1a1633}.ods-phone__field{position:relative;display:flex;align-items:stretch;height:44px;background:#fff;border:1px solid #e8e5f0;border-radius:10px;overflow:visible;transition:border-color 150ms,box-shadow 150ms}.ods-phone__field:focus-within{border-color:#6c5ce7;box-shadow:0 0 0 3px rgba(108,92,231,.1)}.ods-phone__country{display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:0;border-right:1px solid #e8e5f0;background:rgba(0,0,0,0);cursor:pointer;font-family:inherit;color:#1a1633;font-size:14px;font-weight:600;border-radius:10px 0 0 10px;transition:background 150ms}.ods-phone__country:hover:not(:disabled){background:#f3f1ff}.ods-phone__country:disabled{cursor:not-allowed}.ods-phone__flag{font-size:16px;line-height:1}.ods-phone__dial{font-weight:600}.ods-phone__input{flex:1 1 auto;min-width:0;padding:0 14px;border:0;outline:none;background:rgba(0,0,0,0);font-size:14px;color:#1a1633;font-family:inherit}.ods-phone__input::placeholder{color:#9ca3af}.ods-phone__menu{position:absolute;top:calc(100% + 6px);left:0;z-index:50;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid #e8e5f0;border-radius:10px;box-shadow:0 12px 32px rgba(108,92,231,.18);min-width:240px;max-height:280px;overflow-y:auto}.ods-phone__menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;background:rgba(0,0,0,0);border-radius:6px;font-family:inherit;font-size:13px;color:#1a1633;cursor:pointer;text-align:left;transition:background 100ms}.ods-phone__menu-item:hover{background:#f3f1ff}.ods-phone__menu-item--active{background:#f0edff;color:#5b4bd1;font-weight:600}.ods-phone__menu-name{flex:1 1 auto;min-width:0}.ods-phone__menu-dial{color:#6b7280;font-weight:500;font-variant-numeric:tabular-nums}.ods-phone__hint{font-size:11px;color:#6b7280}.ods-phone__hint--error{color:#dc2626}.ods-phone--error .ods-phone__field{border-color:#ef4444}.ods-phone--disabled .ods-phone__field{background:#f0f2f5;opacity:.6}.ods-phone--sm .ods-phone__field{height:36px;border-radius:8px}.ods-phone--sm .ods-phone__country{font-size:13px}.ods-phone--sm .ods-phone__input{font-size:13px}.ods-phone--lg .ods-phone__field{height:52px;border-radius:12px}.ods-phone--lg .ods-phone__input{font-size:15px}.ods-calendar{display:inline-block;width:320px;padding:16px;background:#fff;border:1px solid #e8e5f0;border-radius:14px;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-calendar__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.ods-calendar__title{font-size:14px;font-weight:600;color:#1e1b4b}.ods-calendar__nav{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;background:#f3f1ff;border-radius:6px;color:#6b7280;cursor:pointer;transition:background 150ms,color 150ms}.ods-calendar__nav:hover{background:#e0dbff;color:#1a1633}.ods-calendar__dow{display:grid;grid-template-columns:repeat(7, 1fr);margin-bottom:4px}.ods-calendar__dow-cell{text-align:center;font-size:11px;font-weight:600;color:#9ca3af;padding:4px 0}.ods-calendar__grid{display:grid;grid-template-columns:repeat(7, 1fr);gap:0}.ods-calendar__cell{height:36px;padding:0;border:0;background:rgba(0,0,0,0);border-radius:8px;color:#1a1633;font-size:13px;font-family:inherit;cursor:pointer;transition:background 100ms,color 100ms}.ods-calendar__cell:hover:not(:disabled):not(.ods-calendar__cell--selected){background:#f3f1ff}.ods-calendar__cell--outside{color:#c8ced8}.ods-calendar__cell--today{font-weight:700;color:#6c5ce7}.ods-calendar__cell--selected,.ods-calendar__cell--start,.ods-calendar__cell--end{background:linear-gradient(180deg, #8b5cf6 0%, #5b4bd1 100%);color:#fff;font-weight:700}.ods-calendar__cell--inrange{background:#f0edff;border-radius:0;color:#4338ca}.ods-calendar__cell--start{border-radius:8px 0 0 8px}.ods-calendar__cell--end{border-radius:0 8px 8px 0}.ods-calendar__cell--start.ods-calendar__cell--end{border-radius:8px}.ods-calendar__cell--disabled{opacity:.35;cursor:not-allowed}.ods-datepicker{position:relative;display:flex;flex-direction:column;gap:6px;width:100%}.ods-datepicker__label{font-size:12px;font-weight:600;color:#1a1633}.ods-datepicker__trigger{display:inline-flex;align-items:center;gap:10px;width:100%;height:44px;padding:0 14px;border:1px solid #e8e5f0;border-radius:10px;background:#fff;color:#1a1633;font-family:inherit;font-size:14px;text-align:left;cursor:pointer;transition:border-color 150ms,box-shadow 150ms}.ods-datepicker__trigger:hover{border-color:#c4b5fe}.ods-datepicker__trigger:focus-visible{outline:none;border-color:#6c5ce7;box-shadow:0 0 0 3px rgba(108,92,231,.15)}.ods-datepicker__trigger>svg:first-child{color:#9aa3b3;flex-shrink:0}.ods-datepicker__value{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ods-datepicker__value--placeholder{color:#9ca3af}.ods-datepicker__chev{color:#9ca3af;flex-shrink:0}.ods-datepicker__popover{position:absolute;top:calc(100% + 6px);left:0;z-index:50;box-shadow:0 12px 32px rgba(108,92,231,.18);border-radius:14px}.ods-datepicker__hint{font-size:11px;color:#6b7280}.ods-datepicker__hint--error{color:#dc2626}.ods-datepicker--error .ods-datepicker__trigger{border-color:#ef4444}.ods-datepicker--disabled .ods-datepicker__trigger{background:#f0f2f5;opacity:.6;cursor:not-allowed}.ods-datepicker--sm .ods-datepicker__trigger{height:36px;border-radius:8px;font-size:13px}.ods-datepicker--lg .ods-datepicker__trigger{height:52px;border-radius:12px;font-size:15px}.ods-timepicker{position:relative;display:flex;flex-direction:column;gap:6px;width:100%}.ods-timepicker__label{font-size:12px;font-weight:600;color:#1a1633}.ods-timepicker__trigger{display:inline-flex;align-items:center;gap:10px;width:100%;height:44px;padding:0 14px;border:1px solid #e8e5f0;border-radius:10px;background:#fff;color:#1a1633;font-family:inherit;font-size:14px;text-align:left;cursor:pointer;transition:border-color 150ms,box-shadow 150ms}.ods-timepicker__trigger>svg:first-child{color:#9aa3b3;flex-shrink:0}.ods-timepicker__trigger:hover{border-color:#c4b5fe}.ods-timepicker__trigger:focus-visible{outline:none;border-color:#6c5ce7;box-shadow:0 0 0 3px rgba(108,92,231,.15)}.ods-timepicker__value{flex:1 1 auto;font-family:"JetBrains Mono","Fira Code",monospace;font-weight:600;letter-spacing:.5px}.ods-timepicker__chev{color:#9ca3af;flex-shrink:0}.ods-timepicker__popover{position:absolute;top:calc(100% + 6px);left:0;z-index:50;width:280px;background:#fff;border:1px solid #e8e5f0;border-radius:12px;box-shadow:0 12px 32px rgba(108,92,231,.18);overflow:hidden}.ods-timepicker__head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #f0eef5}.ods-timepicker__display{display:inline-flex;align-items:center;gap:0;font-family:"JetBrains Mono","Fira Code",monospace}.ods-timepicker__seg{border:0;background:rgba(0,0,0,0);padding:2px 6px;border-radius:4px;font-family:inherit;font-size:22px;font-weight:800;color:#1a1633;cursor:text;transition:background 100ms,color 100ms}.ods-timepicker__seg:hover{background:#f3f1ff}.ods-timepicker__seg--active,.ods-timepicker__seg:focus-visible{outline:none;background:#6c5ce7;color:#fff}.ods-timepicker__display-sep{font-size:22px;font-weight:800;color:#c8ced8;padding:0 1px}.ods-timepicker__period{display:inline-flex;padding:3px;gap:0;background:#f3f1ff;border-radius:6px}.ods-timepicker__period-btn{padding:3px 10px;border:0;background:rgba(0,0,0,0);border-radius:4px;font-family:inherit;font-size:11px;font-weight:500;color:#6b7280;cursor:pointer;transition:background 100ms,color 100ms,box-shadow 150ms}.ods-timepicker__period-btn--active{background:#fff;color:#1a1633;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.1)}.ods-timepicker__body{display:flex;align-items:center;justify-content:center;gap:18px;padding:16px}.ods-timepicker__col{display:flex;flex-direction:column;align-items:center;gap:6px}.ods-timepicker__col-lbl{font-size:9px;font-weight:700;letter-spacing:.8px;color:#9ca3af}.ods-timepicker__col-val{font-size:32px;font-weight:700;color:#4338ca;font-family:"JetBrains Mono","Fira Code",monospace;line-height:1;min-width:48px;text-align:center}.ods-timepicker__step{display:inline-flex;align-items:center;justify-content:center;width:28px;height:22px;padding:0;border:0;background:rgba(0,0,0,0);border-radius:6px;color:#6b7280;cursor:pointer;transition:background 150ms,color 150ms}.ods-timepicker__step:hover{background:#f3f1ff;color:#1a1633}.ods-timepicker__sep{font-size:32px;font-weight:700;color:#c8ced8;line-height:1}.ods-timepicker__hint{font-size:11px;color:#6b7280}.ods-timepicker__hint--error{color:#dc2626}.ods-timepicker--error .ods-timepicker__trigger{border-color:#ef4444}.ods-timepicker--disabled .ods-timepicker__trigger{background:#f0f2f5;opacity:.6;cursor:not-allowed}.ods-timepicker--sm .ods-timepicker__trigger{height:36px;border-radius:8px;font-size:13px}.ods-timepicker--lg .ods-timepicker__trigger{height:52px;border-radius:12px;font-size:15px}.ods-tzpicker{position:relative;display:flex;flex-direction:column;gap:6px;width:100%}.ods-tzpicker__label{font-size:12px;font-weight:600;color:#1a1633}.ods-tzpicker__trigger{display:inline-flex;align-items:center;gap:10px;width:100%;height:44px;padding:0 14px;border:1px solid #e8e5f0;border-radius:10px;background:#fff;color:#1a1633;font-family:inherit;text-align:left;cursor:pointer;transition:border-color 150ms,box-shadow 150ms}.ods-tzpicker__trigger>svg:first-child{color:#9aa3b3;flex-shrink:0}.ods-tzpicker__trigger:hover{border-color:#c4b5fe}.ods-tzpicker__trigger:focus-visible{outline:none;border-color:#6c5ce7;box-shadow:0 0 0 3px rgba(108,92,231,.15)}.ods-tzpicker__info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}.ods-tzpicker__name{font-size:13px;font-weight:600;color:#1a1633;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ods-tzpicker__name--placeholder{color:#9ca3af;font-weight:400}.ods-tzpicker__meta{font-size:11px;color:#9aa3b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ods-tzpicker__chev{color:#9ca3af;flex-shrink:0}.ods-tzpicker__popover{position:absolute;top:calc(100% + 6px);left:0;z-index:50;width:100%;min-width:320px;background:#fff;border:1px solid #e8e5f0;border-radius:12px;box-shadow:0 12px 32px rgba(108,92,231,.18);overflow:hidden}.ods-tzpicker__search{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #f0eef5;color:#9ca3af}.ods-tzpicker__search input{flex:1 1 auto;min-width:0;border:none;outline:none;background:rgba(0,0,0,0);font-family:inherit;font-size:13px;color:#1a1633;box-shadow:none}.ods-tzpicker__search input::placeholder{color:#9ca3af}.ods-tzpicker__search input:focus,.ods-tzpicker__search input:focus-visible{outline:none;box-shadow:none;border:none}.ods-tzpicker__list{list-style:none;margin:0;padding:6px;max-height:280px;overflow-y:auto}.ods-tzpicker__opt{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;background:rgba(0,0,0,0);border-radius:6px;font-family:inherit;color:#1a1633;cursor:pointer;text-align:left;transition:background 100ms}.ods-tzpicker__opt:hover{background:#f3f1ff}.ods-tzpicker__opt--selected{background:#f0edff}.ods-tzpicker__opt--selected .ods-tzpicker__opt-name,.ods-tzpicker__opt--selected .ods-tzpicker__opt-off{color:#4338ca;font-weight:600}.ods-tzpicker__opt-text{display:flex;flex-direction:column;gap:1px;flex:1 1 auto;min-width:0}.ods-tzpicker__opt-name{font-size:13px;font-weight:500}.ods-tzpicker__opt-iana{font-size:11px;color:#9aa3b3;font-family:"JetBrains Mono","Fira Code",monospace}.ods-tzpicker__opt-off{font-size:11px;font-weight:500;color:#6b7280;font-family:"JetBrains Mono","Fira Code",monospace;flex-shrink:0}.ods-tzpicker__opt-check{color:#6c5ce7;flex-shrink:0}.ods-tzpicker__empty{list-style:none;padding:14px 12px;font-size:12px;color:#9ca3af;text-align:center}.ods-tzpicker__hint{font-size:11px;color:#6b7280}.ods-tzpicker__hint--error{color:#dc2626}.ods-tzpicker--error .ods-tzpicker__trigger{border-color:#ef4444}.ods-tzpicker--disabled .ods-tzpicker__trigger{background:#f0f2f5;opacity:.6;cursor:not-allowed}.ods-tzpicker--sm .ods-tzpicker__trigger{height:36px;border-radius:8px}.ods-tzpicker--lg .ods-tzpicker__trigger{height:52px;border-radius:12px}.ods-page-header{display:flex;align-items:center;gap:24px;padding:24px 28px;background:#fff;border:1px solid #e8e5f0;border-radius:14px;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-page-header__main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}.ods-page-header__crumbs{display:flex;align-items:center;gap:6px;font-size:12px;color:#9ca3af;margin-bottom:2px}.ods-page-header__crumb{display:inline-flex;align-items:center;gap:6px;color:inherit}.ods-page-header__crumb a,.ods-page-header__crumb button{color:inherit;text-decoration:none;background:none;border:0;padding:0;cursor:pointer;font:inherit}.ods-page-header__crumb a:hover,.ods-page-header__crumb button:hover{color:#4d5768}.ods-page-header__crumb:last-child a,.ods-page-header__crumb:last-child button,.ods-page-header__crumb:last-child>span{color:#4d5768;font-weight:500}.ods-page-header__title{margin:0;font-size:24px;font-weight:800;color:#1e1b4b;line-height:1.2}.ods-page-header__description{margin:0;font-size:13px;color:#6b7280;line-height:1.5}.ods-page-header__meta{display:flex;align-items:center;gap:12px;margin-top:4px;flex-wrap:wrap}.ods-page-header__actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.ods-settings-row{display:flex;gap:16px;width:100%;padding:18px 20px;background:#fff;border:1px solid #e8e5f0;border-radius:12px;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-settings-row--center{align-items:center}.ods-settings-row--start{align-items:flex-start}.ods-settings-row__icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:#f0edff;color:#6c5ce7;flex-shrink:0}.ods-settings-row__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.ods-settings-row__title{font-size:14px;font-weight:600;color:#1a1633}.ods-settings-row__desc{font-size:12px;color:#6b7280;line-height:1.45}.ods-settings-row__control{flex-shrink:0;display:flex;align-items:center}.ods-form-section{display:flex;flex-direction:column;gap:18px;padding:20px 24px;background:#fff;border:1px solid #e8e5f0;border-radius:14px;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-form-section__head{display:flex;flex-direction:column;gap:4px}.ods-form-section__title{margin:0;font-size:15px;font-weight:700;color:#1e1b4b}.ods-form-section__desc{margin:0;font-size:12px;color:#6b7280;line-height:1.45}.ods-form-section__body{display:flex;flex-direction:column;gap:14px}.ods-form-section__footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:12px}.ods-form-section--divided .ods-form-section__head{padding-bottom:12px;border-bottom:1px solid #f0eef5}.ods-form-section--divided .ods-form-section__footer{border-top:1px solid #f0eef5}.ods-toolbar{display:inline-flex;align-items:center;gap:4px;padding:6px;background:#fff;border:1px solid #e8e5f0;border-radius:10px;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-toolbar__btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 8px;border:0;background:rgba(0,0,0,0);border-radius:6px;color:#4d5768;font-family:inherit;font-size:13px;cursor:pointer;transition:background 120ms,color 120ms}.ods-toolbar__btn:hover:not(:disabled){background:#f3f1ff;color:#1a1633}.ods-toolbar__btn:disabled{opacity:.4;cursor:not-allowed}.ods-toolbar__btn--active{background:#f0edff;color:#6c5ce7;font-weight:600}.ods-toolbar__btn-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px}.ods-toolbar__btn-label{line-height:1}.ods-toolbar__divider{width:1px;height:20px;background:#e8e5f0;margin:0 2px}.ods-toolbar__spacer{flex:1 1 auto}.ods-drawer{display:flex;flex-direction:column;background:#fff;border:1px solid #e8e5f0;border-radius:16px;box-shadow:0 12px 32px rgba(108,92,231,.1);font-family:"Lufga","Outfit",-apple-system,sans-serif;overflow:hidden}.ods-drawer__head{display:flex;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid #f0eef5}.ods-drawer__titles{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.ods-drawer__title{margin:0;font-size:17px;font-weight:700;color:#1e1b4b;line-height:1.2}.ods-drawer__subtitle{margin:0;font-size:12px;color:#6b7280}.ods-drawer__close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;background:#f3f1ff;border-radius:8px;color:#6b7280;cursor:pointer;transition:background 150ms,color 150ms}.ods-drawer__close:hover{background:#e0dbff;color:#1a1633}.ods-drawer__body{flex:1 1 auto;overflow-y:auto;padding:24px}.ods-drawer__footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid #f0eef5}.ods-user-card{display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px;background:#fff;border:1px solid #e8e5f0;border-radius:16px;font-family:"Lufga","Outfit",-apple-system,sans-serif;text-align:center}.ods-user-card__avatar{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:36px;background:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);color:#fff;font-size:28px;font-weight:800;overflow:hidden}.ods-user-card__avatar img{width:100%;height:100%;object-fit:cover}.ods-user-card__name{font-size:16px;font-weight:700;color:#1e1b4b}.ods-user-card__role{font-size:12px;color:#6b7280;margin-top:-8px}.ods-user-card__stats{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding-top:12px;border-top:1px solid #f0eef5;margin-top:4px}.ods-user-card__stat{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;gap:2px}.ods-user-card__stat-value{font-size:16px;font-weight:700;color:#1e1b4b}.ods-user-card__stat-label{font-size:11px;color:#9aa3b3}.ods-user-card__action{width:100%}.ods-product-card{display:flex;flex-direction:column;gap:14px;padding:18px;background:#fff;border:1px solid #e8e5f0;border-radius:16px;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-product-card__image{width:100%;height:160px;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, #e0dbff 0%, #fdf2f8 100%);color:#6c5ce7}.ods-product-card__tag{align-self:flex-start;padding:3px 8px;border-radius:6px;background:#ecfdf5;color:#16a34a;font-size:9px;font-weight:700;letter-spacing:.5px}.ods-product-card__name{font-size:15px;font-weight:700;color:#1a1633}.ods-product-card__desc{font-size:12px;color:#6b7280;line-height:1.5}.ods-product-card__footer{display:flex;align-items:center;justify-content:space-between}.ods-product-card__price-group{display:flex;align-items:baseline;gap:6px}.ods-product-card__price{font-size:18px;font-weight:800;color:#1a1633}.ods-product-card__strike{font-size:12px;color:#9aa3b3;text-decoration:line-through}.ods-product-card__action{display:flex;align-items:center}.ods-blog-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e8e5f0;border-radius:16px;overflow:hidden;font-family:"Lufga","Outfit",-apple-system,sans-serif;text-decoration:none;color:inherit;transition:border-color 150ms,box-shadow 150ms,transform 150ms}.ods-blog-card__cover{width:100%;height:160px;background:linear-gradient(135deg, #8b5cf6 0%, #6c5ce7 50%, #ec4899 100%);display:flex;align-items:center;justify-content:center}.ods-blog-card__body{display:flex;flex-direction:column;gap:10px;padding:18px}.ods-blog-card__meta{display:flex;align-items:center;gap:8px}.ods-blog-card__category{padding:3px 8px;border-radius:6px;background:#f0edff;color:#5b4bd1;font-size:9px;font-weight:700;letter-spacing:.5px}.ods-blog-card__date{font-size:11px;color:#9aa3b3}.ods-blog-card__title{font-size:16px;font-weight:700;color:#1a1633;line-height:1.3}.ods-blog-card__desc{font-size:13px;color:#6b7280;line-height:1.5}.ods-blog-card--interactive{cursor:pointer}.ods-blog-card--interactive:hover{border-color:#c4b5fe;box-shadow:0 8px 24px rgba(108,92,231,.12);transform:translateY(-2px)}.ods-testimonial{display:flex;flex-direction:column;gap:18px;padding:24px;background:linear-gradient(180deg, #f0edff 0%, #ffffff 100%);border:1px solid #c4b5fe;border-radius:16px;font-family:"Lufga","Outfit",-apple-system,sans-serif;margin:0}.ods-testimonial__quote{color:#c4b5fe}.ods-testimonial__text{margin:0;font-size:14px;color:#1a1633;line-height:1.55;font-style:italic}.ods-testimonial__rating{display:flex;gap:2px}.ods-testimonial__star{color:#e1e5eb;font-size:16px;line-height:1}.ods-testimonial__star--on{color:#f59e0b}.ods-testimonial__author{display:flex;align-items:center;gap:12px}.ods-testimonial__avatar{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:22px;background:linear-gradient(135deg, #14b8a6 0%, #0d9488 100%);color:#fff;font-size:17px;font-weight:700;flex-shrink:0;overflow:hidden}.ods-testimonial__avatar img{width:100%;height:100%;object-fit:cover}.ods-testimonial__author-info{display:flex;flex-direction:column;gap:2px}.ods-testimonial__author-name{font-size:14px;font-weight:700;color:#1a1633}.ods-testimonial__author-role{font-size:12px;color:#6b7280}.ods-feature-card{display:flex;flex-direction:column;gap:12px;padding:24px;background:#fff;border:1px solid #e8e5f0;border-radius:16px;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-feature-card__icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg, #8b5cf6 0%, #5b4bd1 100%);color:#fff}.ods-feature-card__title{font-size:16px;font-weight:700;color:#1a1633}.ods-feature-card__desc{font-size:13px;color:#6b7280;line-height:1.5}.ods-feature-card__link{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:4px;border:0;padding:0;background:rgba(0,0,0,0);color:#5b4bd1;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;transition:color 150ms}.ods-feature-card__link svg{transition:transform 150ms}.ods-feature-card__link:hover svg{transform:translateX(2px)}.ods-feature-card--success .ods-feature-card__icon{background:linear-gradient(135deg, #22c55e 0%, #16a34a 100%)}.ods-feature-card--warning .ods-feature-card__icon{background:linear-gradient(135deg, #f59e0b 0%, #d97706 100%)}.ods-feature-card--error .ods-feature-card__icon{background:linear-gradient(135deg, #ef4444 0%, #dc2626 100%)}.ods-feature-card--default .ods-feature-card__icon{background:#f0edff;color:#6c5ce7}.ods-pricing{display:flex;flex-direction:column;gap:16px;padding:28px;background:#fff;border:1px solid #e8e5f0;border-radius:18px;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-pricing--highlighted{border:2px solid #6c5ce7;box-shadow:0 12px 32px rgba(108,92,231,.18)}.ods-pricing__head{display:flex;flex-direction:column;gap:8px}.ods-pricing__badge{align-self:flex-start;padding:3px 10px;border-radius:999px;background:#f0edff;color:#5b4bd1;font-size:10px;font-weight:700;letter-spacing:1px}.ods-pricing__name{margin:0;font-size:24px;font-weight:800;color:#1a1633}.ods-pricing__desc{margin:0;font-size:13px;color:#6b7280;line-height:1.5}.ods-pricing__price{display:flex;align-items:baseline;gap:6px}.ods-pricing__amount{font-size:40px;font-weight:800;color:#1a1633;line-height:1}.ods-pricing__period{font-size:14px;color:#9aa3b3}.ods-pricing__sep{border:0;border-top:1px solid #f0eef5;margin:0}.ods-pricing__features{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.ods-pricing__feature{display:flex;align-items:center;gap:10px;font-size:13px;color:#1a1633}.ods-pricing__cta{display:flex;flex-direction:column}.ods-choice-card{display:flex;flex-direction:column;gap:10px;padding:20px;width:100%;background:#fff;border:1px solid #e8e5f0;border-radius:14px;font-family:"Lufga","Outfit",-apple-system,sans-serif;text-align:left;cursor:pointer;transition:border-color 150ms,background 150ms,box-shadow 150ms}.ods-choice-card:hover:not(.ods-choice-card--disabled){border-color:#c4b5fe}.ods-choice-card--selected{border:2px solid #6c5ce7;background:linear-gradient(180deg, #f0edff 0%, #ffffff 100%);padding:19px}.ods-choice-card--disabled{opacity:.5;cursor:not-allowed}.ods-choice-card__head{display:flex;align-items:flex-start;justify-content:space-between}.ods-choice-card__icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:#f3f1ff;color:#6b7280}.ods-choice-card--selected .ods-choice-card__icon{background:#6c5ce7;color:#fff}.ods-choice-card__check{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:12px;border:1.5px solid #c8ced8;color:rgba(0,0,0,0);transition:background 150ms,border-color 150ms,color 150ms}.ods-choice-card__check--on{background:#6c5ce7;border-color:#6c5ce7;color:#fff}.ods-choice-card__badge{align-self:flex-start;padding:3px 8px;border-radius:999px;background:#ecfdf5;color:#16a34a;font-size:9px;font-weight:700;letter-spacing:.5px}.ods-choice-card__title{font-size:15px;font-weight:700;color:#1a1633}.ods-choice-card__desc{font-size:12px;color:#6b7280;line-height:1.5}.ods-kanban-card{display:flex;flex-direction:column;gap:10px;padding:14px;background:#fff;border:1px solid #e8e5f0;border-left:4px solid rgba(0,0,0,0);border-radius:10px;font-family:"Lufga","Outfit",-apple-system,sans-serif;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:box-shadow 150ms,border-color 150ms}.ods-kanban-card--interactive{cursor:pointer}.ods-kanban-card--interactive:hover{box-shadow:0 4px 12px rgba(108,92,231,.1);border-left-color:#6c5ce7}.ods-kanban-card--low{border-left-color:#22c55e}.ods-kanban-card--medium{border-left-color:#f59e0b}.ods-kanban-card--high{border-left-color:#ef4444}.ods-kanban-card__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ods-kanban-card__tag{padding:2px 6px;border-radius:4px;background:#f0edff;color:#5b4bd1;font-size:9px;font-weight:700;letter-spacing:.5px}.ods-kanban-card__more{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;background:rgba(0,0,0,0);border-radius:4px;color:#9ca3af;cursor:pointer}.ods-kanban-card__more:hover{background:#f3f1ff;color:#1a1633}.ods-kanban-card__title{font-size:13px;font-weight:600;color:#1a1633;line-height:1.35}.ods-kanban-card__footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.ods-kanban-card__meta{display:flex;align-items:center;gap:10px}.ods-kanban-card__date,.ods-kanban-card__comments{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#9aa3b3}.ods-kanban-card__assignee{width:24px;height:24px;border-radius:12px;overflow:hidden;background:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.ods-timeline{list-style:none;margin:0;padding:8px;display:flex;flex-direction:column;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-timeline__item{display:flex;gap:14px;width:100%}.ods-timeline__rail{display:flex;flex-direction:column;align-items:center;width:24px;flex-shrink:0}.ods-timeline__dot{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;border-radius:6px;color:#fff}.ods-timeline__dot--default{background:#6c5ce7;box-shadow:0 0 0 3px #f0edff}.ods-timeline__dot--success{background:#22c55e;box-shadow:0 0 0 3px #ecfdf5}.ods-timeline__dot--warning{background:#f59e0b;box-shadow:0 0 0 3px #fffbeb}.ods-timeline__dot--error{background:#ef4444;box-shadow:0 0 0 3px #fef2f2}.ods-timeline__dot--muted{background:#9aa3b3;box-shadow:0 0 0 3px #f0eef5}.ods-timeline__dot>svg,.ods-timeline__dot>*{width:8px;height:8px}.ods-timeline__line{flex:1 1 auto;width:2px;background:#e8e5f0;min-height:28px}.ods-timeline__body{display:flex;flex-direction:column;gap:4px;padding:0 0 20px;flex:1 1 auto;min-width:0}.ods-timeline .ods-timeline__item:last-child .ods-timeline__body{padding-bottom:0}.ods-timeline__title{font-size:13px;font-weight:600;color:#1a1633;line-height:1.35}.ods-timeline__desc{font-size:12px;color:#6b7280;line-height:1.45}.ods-timeline__meta{font-size:11px;color:#9aa3b3}.ods-timeline--sm .ods-timeline__title{font-size:12px}.ods-timeline--sm .ods-timeline__desc,.ods-timeline--sm .ods-timeline__meta{font-size:11px}.ods-timeline--sm .ods-timeline__dot{width:10px;height:10px}.ods-chat{display:flex;align-items:flex-start;gap:10px;width:100%;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-chat__avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:16px;flex-shrink:0;color:#fff;font-size:13px;font-weight:700;overflow:hidden}.ods-chat__avatar img{width:100%;height:100%;object-fit:cover}.ods-chat__bubble{display:flex;flex-direction:column;gap:4px;max-width:85%;padding:10px 14px;border-radius:16px}.ods-chat__body{font-size:13px;line-height:1.5}.ods-chat__meta{display:flex;align-items:center;gap:6px;font-size:10px;line-height:1}.ods-chat__author{font-weight:600}.ods-chat__time{opacity:.7}.ods-chat--user{flex-direction:row-reverse}.ods-chat--user .ods-chat__avatar{background:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%)}.ods-chat--user .ods-chat__bubble{background:linear-gradient(180deg, #8b5cf6 0%, #5b4bd1 100%);color:#fff}.ods-chat--user .ods-chat__meta{justify-content:flex-end;color:hsla(0,0%,100%,.85)}.ods-chat--bot .ods-chat__avatar{background:#f0edff;color:#6c5ce7}.ods-chat--bot .ods-chat__bubble{background:#f3f1ff;color:#1a1633}.ods-chat--bot .ods-chat__meta{color:#9aa3b3}.ods-chat--system .ods-chat__avatar{background:#f0f2f5;color:#6b7280}.ods-chat--system .ods-chat__bubble{background:#f8f9fb;color:#4d5768;border:1px dashed #e8e5f0}.ods-chat--system .ods-chat__meta{color:#9aa3b3}.ods-progress-ring{position:relative;display:inline-flex;align-items:center;justify-content:center;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-progress-ring__svg{display:block}.ods-progress-ring__fill{transition:stroke-dashoffset 280ms cubic-bezier(0.32, 0.72, 0, 1);will-change:stroke-dashoffset}.ods-progress-ring__center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.ods-progress-ring__value{font-size:22px;font-weight:800;color:#1a1633;font-variant-numeric:tabular-nums}.ods-progress-ring--indeterminate .ods-progress-ring__svg{animation:ods-progress-ring-spin 900ms linear infinite}@keyframes ods-progress-ring-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.ods-popover__anchor{display:inline-flex;align-items:center;cursor:pointer}.ods-popover{min-width:200px;max-width:320px;padding:14px 16px;background:#fff;border:1px solid #e8e5f0;border-radius:12px;box-shadow:0 12px 32px rgba(108,92,231,.18);font-family:"Lufga","Outfit",-apple-system,sans-serif;font-size:13px;color:#1a1633;line-height:1.45}.ods-popover__arrow{position:absolute;width:10px;height:10px;background:#fff;border:1px solid #e8e5f0;transform:rotate(45deg);pointer-events:none;z-index:-1}.ods-popover[data-placement=top] .ods-popover__arrow{bottom:-6px;left:50%;margin-left:-5px;border-top:none;border-left:none}.ods-popover[data-placement=bottom] .ods-popover__arrow{top:-6px;left:50%;margin-left:-5px;border-bottom:none;border-right:none}.ods-popover[data-placement=left] .ods-popover__arrow{right:-6px;top:50%;margin-top:-5px;border-left:none;border-bottom:none}.ods-popover[data-placement=right] .ods-popover__arrow{left:-6px;top:50%;margin-top:-5px;border-right:none;border-top:none}.ods-hover-card__anchor{display:inline-flex;align-items:center}.ods-hover-card{min-width:240px;max-width:320px;padding:16px;background:#fff;border:1px solid #e8e5f0;border-radius:12px;box-shadow:0 12px 32px rgba(108,92,231,.18);font-family:"Lufga","Outfit",-apple-system,sans-serif;font-size:13px;color:#1a1633;line-height:1.5}.ods-sheet__backdrop{position:fixed;inset:0;z-index:900;background:rgba(30,27,75,.3)}.ods-sheet{position:fixed;z-index:901;display:flex;flex-direction:column;background:#fff;font-family:"Lufga","Outfit",-apple-system,sans-serif;will-change:transform;outline:none;box-shadow:0 0 40px rgba(108,92,231,.2)}.ods-sheet--bottom{left:0;right:0;bottom:0;border-radius:20px 20px 0 0;max-height:100vh}.ods-sheet--top{left:0;right:0;top:0;border-radius:0 0 20px 20px;max-height:100vh}.ods-sheet--left{top:0;bottom:0;left:0;border-radius:0 20px 20px 0;max-width:100vw}.ods-sheet--right{top:0;bottom:0;right:0;border-radius:20px 0 0 20px;max-width:100vw}.ods-sheet__handle{width:40px;height:4px;background:#c8ced8;border-radius:2px;margin:10px auto 0;flex-shrink:0}.ods-sheet__head{display:flex;flex-direction:column;gap:4px;padding:16px 24px 12px;border-bottom:1px solid #f0eef5;flex-shrink:0}.ods-sheet__title{margin:0;font-size:17px;font-weight:700;color:#1e1b4b}.ods-sheet__desc{margin:0;font-size:12px;color:#6b7280;line-height:1.45}.ods-sheet__body{flex:1 1 auto;overflow-y:auto;padding:20px 24px}.ods-sheet__footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid #f0eef5;flex-shrink:0}.ods-bar-chart{display:flex;flex-direction:column;gap:14px;padding:20px;background:#fff;border:1px solid #e8e5f0;border-radius:14px;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-bar-chart__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ods-bar-chart__title{font-size:13px;font-weight:700;color:#1a1633}.ods-bar-chart__total{font-size:18px;font-weight:800;color:#1a1633;font-variant-numeric:tabular-nums}.ods-bar-chart__bars{display:flex;align-items:flex-end;gap:8px}.ods-bar-chart__col{flex:1 1 auto;display:flex;align-items:flex-end;height:100%}.ods-bar-chart__bar{width:100%;border-radius:4px;transition:height 240ms cubic-bezier(0.32, 0.72, 0, 1)}.ods-bar-chart__labels{display:flex;gap:8px}.ods-bar-chart__label{flex:1 1 auto;text-align:center;font-size:11px;color:#9aa3b3}.ods-bar-chart__label--hi{color:#5b4bd1;font-weight:700}.ods-line-chart{display:flex;flex-direction:column;gap:14px;padding:20px;background:#fff;border:1px solid #e8e5f0;border-radius:14px;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-line-chart__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ods-line-chart__title{font-size:13px;font-weight:700;color:#1a1633}.ods-line-chart__total{font-size:18px;font-weight:800;color:#1a1633;font-variant-numeric:tabular-nums}.ods-line-chart__svg{width:100%;display:block}.ods-donut{display:flex;flex-direction:column;align-items:center;gap:14px;padding:20px;background:#fff;border:1px solid #e8e5f0;border-radius:14px;font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-donut__title{font-size:13px;font-weight:700;color:#1a1633;align-self:flex-start}.ods-donut__ring{position:relative;display:inline-block}.ods-donut__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;pointer-events:none}.ods-donut__value{font-size:22px;font-weight:800;color:#1a1633;font-variant-numeric:tabular-nums}.ods-donut__small{font-size:11px;color:#9aa3b3}.ods-donut__legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;width:100%}.ods-donut__legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#1a1633}.ods-donut__dot{width:10px;height:10px;border-radius:5px;flex-shrink:0}.ods-donut__legend-label{flex:1 1 auto}.ods-donut__legend-pct{font-weight:600;color:#4d5768;font-variant-numeric:tabular-nums}.ods-sparkline{display:inline-block;vertical-align:middle}.ods-auth-card{display:flex;flex-direction:column;gap:18px;width:420px;max-width:100%;padding:32px;background:#fff;border:1px solid #e8e5f0;border-radius:16px;box-shadow:0 12px 32px rgba(108,92,231,.1);font-family:"Lufga","Outfit",-apple-system,sans-serif}.ods-auth-card__logo{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);color:#fff;font-size:24px;font-weight:800}.ods-auth-card__head{display:flex;flex-direction:column;gap:6px}.ods-auth-card__title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ods-auth-card__title{margin:0;font-size:24px;font-weight:800;color:#1e1b4b;line-height:1.2}.ods-auth-card__scope{display:inline-flex;align-items:center}.ods-auth-card__desc{margin:0;font-size:13px;color:#6b7280;line-height:1.5}.ods-auth-card__body{display:flex;flex-direction:column;gap:14px}.ods-auth-card__divider{display:flex}.ods-auth-card__footer{display:flex;align-items:center;justify-content:center;gap:4px;font-size:13px;color:#6b7280}.ods-auth-divider{display:flex;align-items:center;gap:12px}.ods-auth-divider__line{flex:1 1 auto;height:1px;background:#e8e5f0}.ods-auth-divider__label{font-size:11px;font-weight:700;color:#9ca3af;letter-spacing:1px}.ods-auth-section{display:flex;flex-direction:column;gap:10px}.ods-auth-section__head{display:flex;flex-direction:column;gap:2px}.ods-auth-section__label{font-size:11px;font-weight:700;letter-spacing:.6px;color:#4d5768;text-transform:uppercase}.ods-auth-section__desc{font-size:12px;color:#8b8ca0;line-height:1.4}.ods-auth-section__body{display:flex;flex-direction:column;gap:10px}.ods-auth-section+.ods-auth-section{margin-top:4px;padding-top:14px;border-top:1px solid #eef0f7}.ods-auth-tabs{display:flex;flex-direction:column;gap:16px}.ods-auth-tabs__list{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;padding:6px;background:#f7f6fb;border:1px solid #eef0f7;border-radius:12px}.ods-auth-tabs__tab{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:10px 12px;border:0;background:rgba(0,0,0,0);border-radius:8px;cursor:pointer;text-align:left;font-family:inherit;color:#4d5768;transition:background 150ms,color 150ms,box-shadow 150ms}.ods-auth-tabs__tab:hover{color:#1a1633}.ods-auth-tabs__tab--active{background:#fff;color:#1a1633;box-shadow:0 1px 2px rgba(108,92,231,.1),0 0 0 1px #e8e5f0}.ods-auth-tabs__icon{display:inline-flex;align-items:center;margin-bottom:2px;color:#6366f1}.ods-auth-tabs__label{font-size:13px;font-weight:600}.ods-auth-tabs__desc{font-size:11px;color:#8b8ca0;line-height:1.3}.ods-auth-tabs__panel{display:flex;flex-direction:column;gap:14px}.ods-auth-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}.ods-auth-badge--neutral{background:#eef0f7;color:#4d5768}.ods-auth-badge--org{background:linear-gradient(135deg, #eef2ff 0%, #f5f3ff 100%);color:#4338ca;border:1px solid #c7d2fe}.ods-auth-badge--personal{background:linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);color:#92400e;border:1px solid #fcd34d}.ods-auth-badge--developer{background:linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%);color:#166534;border:1px solid #86efac}.ods-social-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:44px;padding:0 16px;border:1px solid #e8e5f0;background:#fff;color:#1a1633;border-radius:10px;font-family:"Lufga","Outfit",-apple-system,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:background 150ms,border-color 150ms}.ods-social-btn:hover{background:#f8f9fb;border-color:#c4b5fe}.ods-social-btn:focus-visible{outline:none;border-color:#6c5ce7;box-shadow:0 0 0 3px rgba(108,92,231,.15)}.ods-social-btn:disabled{opacity:.55;cursor:not-allowed}.ods-social-btn--full{width:100%}.ods-social-btn__icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0}.ods-social-btn--github,.ods-social-btn--apple,.ods-social-btn--twitter{background:#1e1b4b;border-color:#1e1b4b;color:#fff}.ods-social-btn--github:hover,.ods-social-btn--apple:hover,.ods-social-btn--twitter:hover{background:#14113a;border-color:#14113a}.ods-social-btn--sm{height:36px;font-size:13px;border-radius:8px}.ods-social-btn--lg{height:52px;font-size:15px;border-radius:12px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAE7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAElD"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
export declare const odsMotion: {
|
|
2
|
+
fadeIn: {
|
|
3
|
+
initial: {
|
|
4
|
+
opacity: number;
|
|
5
|
+
};
|
|
6
|
+
animate: {
|
|
7
|
+
opacity: number;
|
|
8
|
+
};
|
|
9
|
+
exit: {
|
|
10
|
+
opacity: number;
|
|
11
|
+
};
|
|
12
|
+
transition: {
|
|
13
|
+
duration: number;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
scaleIn: {
|
|
17
|
+
initial: {
|
|
18
|
+
opacity: number;
|
|
19
|
+
scale: number;
|
|
20
|
+
};
|
|
21
|
+
animate: {
|
|
22
|
+
opacity: number;
|
|
23
|
+
scale: number;
|
|
24
|
+
};
|
|
25
|
+
exit: {
|
|
26
|
+
opacity: number;
|
|
27
|
+
scale: number;
|
|
28
|
+
};
|
|
29
|
+
transition: {
|
|
30
|
+
duration: number;
|
|
31
|
+
ease: number[];
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
slideRight: {
|
|
35
|
+
initial: {
|
|
36
|
+
x: string;
|
|
37
|
+
};
|
|
38
|
+
animate: {
|
|
39
|
+
x: number;
|
|
40
|
+
};
|
|
41
|
+
exit: {
|
|
42
|
+
x: string;
|
|
43
|
+
};
|
|
44
|
+
transition: {
|
|
45
|
+
duration: number;
|
|
46
|
+
ease: number[];
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
slideUp: {
|
|
50
|
+
initial: {
|
|
51
|
+
opacity: number;
|
|
52
|
+
y: number;
|
|
53
|
+
};
|
|
54
|
+
animate: {
|
|
55
|
+
opacity: number;
|
|
56
|
+
y: number;
|
|
57
|
+
};
|
|
58
|
+
exit: {
|
|
59
|
+
opacity: number;
|
|
60
|
+
y: number;
|
|
61
|
+
};
|
|
62
|
+
transition: {
|
|
63
|
+
duration: number;
|
|
64
|
+
ease: number[];
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
tap: {
|
|
68
|
+
whileTap: {
|
|
69
|
+
scale: number;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
hover: {
|
|
73
|
+
whileHover: {
|
|
74
|
+
y: number;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=motion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../../src/utils/motion.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCrB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ConfigStatus, WorkflowNode } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Lightweight field schema type the DS uses to compute config status.
|
|
4
|
+
* Consumers map their own schemas (zod, yup, custom) to this shape.
|
|
5
|
+
*/
|
|
6
|
+
export interface FieldConditional {
|
|
7
|
+
action: "show" | "hide" | "require" | "disable";
|
|
8
|
+
field: string;
|
|
9
|
+
operator: "==" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "contains";
|
|
10
|
+
value: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface FieldSchema {
|
|
13
|
+
key: string;
|
|
14
|
+
required?: boolean;
|
|
15
|
+
defaultValue?: unknown;
|
|
16
|
+
hidden?: boolean;
|
|
17
|
+
conditional?: FieldConditional[];
|
|
18
|
+
}
|
|
19
|
+
export interface ConfigStatusResult {
|
|
20
|
+
status: ConfigStatus;
|
|
21
|
+
requiredTotal: number;
|
|
22
|
+
requiredFilled: number;
|
|
23
|
+
optionalTotal: number;
|
|
24
|
+
optionalFilled: number;
|
|
25
|
+
missingRequired: string[];
|
|
26
|
+
filledOptional: string[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Compute the config status of a node, given its fields schema.
|
|
30
|
+
* Returns "hidden" if no schema is provided — caller can wrap this and
|
|
31
|
+
* apply their own registry lookup.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getNodeConfigStatus(node: WorkflowNode, fields: FieldSchema[] | undefined, options?: {
|
|
34
|
+
hiddenActionIds?: Set<string>;
|
|
35
|
+
}): ConfigStatusResult;
|
|
36
|
+
//# sourceMappingURL=configStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configStatus.d.ts","sourceRoot":"","sources":["../../src/workflow/configStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC/E,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AA0CD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EACjC,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAO,GAC9C,kBAAkB,CAkEpB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { WorkflowEdge, WorkflowNode } from "./types";
|
|
2
|
+
export interface LayoutResult {
|
|
3
|
+
nodes: WorkflowNode[];
|
|
4
|
+
}
|
|
5
|
+
export interface LayoutOptions {
|
|
6
|
+
direction?: "horizontal" | "vertical";
|
|
7
|
+
nodeSpacing?: number;
|
|
8
|
+
rankSpacing?: number;
|
|
9
|
+
startX?: number;
|
|
10
|
+
startY?: number;
|
|
11
|
+
nodeWidth?: number;
|
|
12
|
+
nodeHeight?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function applyLayout(nodes: WorkflowNode[], edges: WorkflowEdge[], options?: LayoutOptions): LayoutResult;
|
|
15
|
+
export declare function applyHorizontalLayout(nodes: WorkflowNode[], edges: WorkflowEdge[]): LayoutResult;
|
|
16
|
+
export declare function applyVerticalLayout(nodes: WorkflowNode[], edges: WorkflowEdge[]): LayoutResult;
|
|
17
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/workflow/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK1D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAiDD,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,EAAE,EACrB,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,GAAE,aAAkB,GAC1B,YAAY,CA0Cd;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EAAE,EACrB,KAAK,EAAE,YAAY,EAAE,GACpB,YAAY,CAEd;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,YAAY,EAAE,EACrB,KAAK,EAAE,YAAY,EAAE,GACpB,YAAY,CAEd"}
|