@shadow-library/ui 0.1.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -23
- package/components/Accordion/Accordion.context.d.ts +7 -0
- package/components/Accordion/Accordion.context.js +6 -0
- package/components/Accordion/Accordion.context.js.map +1 -0
- package/components/Accordion/Accordion.d.ts +12 -0
- package/components/Accordion/Accordion.js +34 -0
- package/components/Accordion/Accordion.js.map +1 -0
- package/components/Accordion/Accordion.module.css.js +4 -0
- package/components/Accordion/Accordion.module.css.js.map +1 -0
- package/components/Accordion/Accordion.types.d.ts +39 -0
- package/components/Accordion/index.d.ts +2 -0
- package/components/Alert/Alert.d.ts +8 -0
- package/components/Alert/Alert.js +26 -0
- package/components/Alert/Alert.js.map +1 -0
- package/components/Alert/Alert.module.css.js +4 -0
- package/components/Alert/Alert.module.css.js.map +1 -0
- package/components/Alert/Alert.types.d.ts +22 -0
- package/components/Alert/index.d.ts +2 -0
- package/components/Avatar/Avatar.context.d.ts +9 -0
- package/components/Avatar/Avatar.context.js +6 -0
- package/components/Avatar/Avatar.context.js.map +1 -0
- package/components/Avatar/Avatar.d.ts +13 -0
- package/components/Avatar/Avatar.js +66 -0
- package/components/Avatar/Avatar.js.map +1 -0
- package/components/Avatar/Avatar.module.css.js +4 -0
- package/components/Avatar/Avatar.module.css.js.map +1 -0
- package/components/Avatar/Avatar.types.d.ts +32 -0
- package/components/Avatar/index.d.ts +2 -0
- package/components/Badge/Badge.d.ts +8 -0
- package/components/Badge/Badge.js +23 -0
- package/components/Badge/Badge.js.map +1 -0
- package/components/Badge/Badge.module.css.js +4 -0
- package/components/Badge/Badge.module.css.js.map +1 -0
- package/components/Badge/Badge.types.d.ts +25 -0
- package/components/Badge/index.d.ts +2 -0
- package/components/Banner/Banner.d.ts +8 -0
- package/components/Banner/Banner.js +74 -0
- package/components/Banner/Banner.js.map +1 -0
- package/components/Banner/Banner.module.css.js +4 -0
- package/components/Banner/Banner.module.css.js.map +1 -0
- package/components/Banner/Banner.provider.d.ts +20 -0
- package/components/Banner/Banner.provider.js +34 -0
- package/components/Banner/Banner.provider.js.map +1 -0
- package/components/Banner/Banner.store.d.ts +18 -0
- package/components/Banner/Banner.store.js +62 -0
- package/components/Banner/Banner.store.js.map +1 -0
- package/components/Banner/Banner.types.d.ts +42 -0
- package/components/Banner/index.d.ts +4 -0
- package/components/BottomSheet/BottomSheet.d.ts +8 -0
- package/components/BottomSheet/BottomSheet.js +127 -0
- package/components/BottomSheet/BottomSheet.js.map +1 -0
- package/components/BottomSheet/BottomSheet.module.css.js +4 -0
- package/components/BottomSheet/BottomSheet.module.css.js.map +1 -0
- package/components/BottomSheet/BottomSheet.types.d.ts +34 -0
- package/components/BottomSheet/index.d.ts +2 -0
- package/components/Breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/components/Breadcrumbs/Breadcrumbs.js +39 -0
- package/components/Breadcrumbs/Breadcrumbs.js.map +1 -0
- package/components/Breadcrumbs/Breadcrumbs.module.css.js +4 -0
- package/components/Breadcrumbs/Breadcrumbs.module.css.js.map +1 -0
- package/components/Breadcrumbs/Breadcrumbs.types.d.ts +17 -0
- package/components/Breadcrumbs/index.d.ts +2 -0
- package/components/Button/Button.d.ts +12 -0
- package/components/Button/Button.js +52 -0
- package/components/Button/Button.js.map +1 -0
- package/components/Button/Button.module.css.js +4 -0
- package/components/Button/Button.module.css.js.map +1 -0
- package/components/Button/Button.types.d.ts +34 -0
- package/components/Button/index.d.ts +2 -0
- package/components/ButtonGroup/ButtonGroup.context.d.ts +23 -0
- package/components/ButtonGroup/ButtonGroup.context.js +9 -0
- package/components/ButtonGroup/ButtonGroup.context.js.map +1 -0
- package/components/ButtonGroup/ButtonGroup.d.ts +7 -0
- package/components/ButtonGroup/ButtonGroup.js +92 -0
- package/components/ButtonGroup/ButtonGroup.js.map +1 -0
- package/components/ButtonGroup/ButtonGroup.module.css.js +4 -0
- package/components/ButtonGroup/ButtonGroup.module.css.js.map +1 -0
- package/components/ButtonGroup/ButtonGroup.types.d.ts +28 -0
- package/components/ButtonGroup/index.d.ts +3 -0
- package/components/Calendar/Calendar.d.ts +8 -0
- package/components/Calendar/Calendar.js +197 -0
- package/components/Calendar/Calendar.js.map +1 -0
- package/components/Calendar/Calendar.module.css.js +4 -0
- package/components/Calendar/Calendar.module.css.js.map +1 -0
- package/components/Calendar/Calendar.types.d.ts +32 -0
- package/components/Calendar/index.d.ts +2 -0
- package/components/Card/Card.d.ts +6 -0
- package/components/Card/Card.js +36 -0
- package/components/Card/Card.js.map +1 -0
- package/components/Card/Card.module.css.js +4 -0
- package/components/Card/Card.module.css.js.map +1 -0
- package/components/Card/Card.types.d.ts +30 -0
- package/components/Card/index.d.ts +2 -0
- package/components/Checkbox/Checkbox.d.ts +7 -0
- package/components/Checkbox/Checkbox.js +46 -0
- package/components/Checkbox/Checkbox.js.map +1 -0
- package/components/Checkbox/Checkbox.module.css.js +4 -0
- package/components/Checkbox/Checkbox.module.css.js.map +1 -0
- package/components/Checkbox/Checkbox.types.d.ts +19 -0
- package/components/Checkbox/index.d.ts +2 -0
- package/components/ColorPicker/ColorPicker.d.ts +10 -0
- package/components/ColorPicker/ColorPicker.js +340 -0
- package/components/ColorPicker/ColorPicker.js.map +1 -0
- package/components/ColorPicker/ColorPicker.module.css.js +4 -0
- package/components/ColorPicker/ColorPicker.module.css.js.map +1 -0
- package/components/ColorPicker/ColorPicker.types.d.ts +33 -0
- package/components/ColorPicker/index.d.ts +2 -0
- package/components/Combobox/Combobox.d.ts +9 -0
- package/components/Combobox/Combobox.js +316 -0
- package/components/Combobox/Combobox.js.map +1 -0
- package/components/Combobox/Combobox.module.css.js +4 -0
- package/components/Combobox/Combobox.module.css.js.map +1 -0
- package/components/Combobox/Combobox.types.d.ts +57 -0
- package/components/Combobox/index.d.ts +2 -0
- package/components/CommandPalette/CommandPalette.d.ts +9 -0
- package/components/CommandPalette/CommandPalette.js +197 -0
- package/components/CommandPalette/CommandPalette.js.map +1 -0
- package/components/CommandPalette/CommandPalette.module.css.js +4 -0
- package/components/CommandPalette/CommandPalette.module.css.js.map +1 -0
- package/components/CommandPalette/CommandPalette.types.d.ts +41 -0
- package/components/CommandPalette/index.d.ts +2 -0
- package/components/ContextMenu/ContextMenu.d.ts +34 -0
- package/components/ContextMenu/ContextMenu.js +98 -0
- package/components/ContextMenu/ContextMenu.js.map +1 -0
- package/components/ContextMenu/ContextMenu.types.d.ts +30 -0
- package/components/ContextMenu/index.d.ts +2 -0
- package/components/DataGrid/DataGrid.d.ts +8 -0
- package/components/DataGrid/DataGrid.js +192 -0
- package/components/DataGrid/DataGrid.js.map +1 -0
- package/components/DataGrid/DataGrid.module.css.js +4 -0
- package/components/DataGrid/DataGrid.module.css.js.map +1 -0
- package/components/DataGrid/DataGrid.types.d.ts +43 -0
- package/components/DataGrid/index.d.ts +2 -0
- package/components/DatePicker/DatePicker.d.ts +9 -0
- package/components/DatePicker/DatePicker.js +218 -0
- package/components/DatePicker/DatePicker.js.map +1 -0
- package/components/DatePicker/DatePicker.module.css.js +4 -0
- package/components/DatePicker/DatePicker.module.css.js.map +1 -0
- package/components/DatePicker/DatePicker.types.d.ts +39 -0
- package/components/DatePicker/index.d.ts +2 -0
- package/components/DateRangePicker/DateRangePicker.d.ts +8 -0
- package/components/DateRangePicker/DateRangePicker.js +139 -0
- package/components/DateRangePicker/DateRangePicker.js.map +1 -0
- package/components/DateRangePicker/DateRangePicker.module.css.js +4 -0
- package/components/DateRangePicker/DateRangePicker.module.css.js.map +1 -0
- package/components/DateRangePicker/DateRangePicker.types.d.ts +34 -0
- package/components/DateRangePicker/index.d.ts +2 -0
- package/components/DescriptionList/DescriptionList.d.ts +12 -0
- package/components/DescriptionList/DescriptionList.js +96 -0
- package/components/DescriptionList/DescriptionList.js.map +1 -0
- package/components/DescriptionList/DescriptionList.module.css.js +4 -0
- package/components/DescriptionList/DescriptionList.module.css.js.map +1 -0
- package/components/DescriptionList/DescriptionList.types.d.ts +35 -0
- package/components/DescriptionList/index.d.ts +2 -0
- package/components/Dialog/Dialog.d.ts +30 -0
- package/components/Dialog/Dialog.js +89 -0
- package/components/Dialog/Dialog.js.map +1 -0
- package/components/Dialog/Dialog.module.css.js +4 -0
- package/components/Dialog/Dialog.module.css.js.map +1 -0
- package/components/Dialog/Dialog.types.d.ts +59 -0
- package/components/Dialog/index.d.ts +2 -0
- package/components/Drawer/Drawer.context.d.ts +9 -0
- package/components/Drawer/Drawer.context.js +7 -0
- package/components/Drawer/Drawer.context.js.map +1 -0
- package/components/Drawer/Drawer.d.ts +20 -0
- package/components/Drawer/Drawer.js +63 -0
- package/components/Drawer/Drawer.js.map +1 -0
- package/components/Drawer/Drawer.module.css.js +4 -0
- package/components/Drawer/Drawer.module.css.js.map +1 -0
- package/components/Drawer/Drawer.types.d.ts +42 -0
- package/components/Drawer/index.d.ts +2 -0
- package/components/DropdownMenu/DropdownMenu.d.ts +33 -0
- package/components/DropdownMenu/DropdownMenu.js +98 -0
- package/components/DropdownMenu/DropdownMenu.js.map +1 -0
- package/components/DropdownMenu/DropdownMenu.module.css.js +4 -0
- package/components/DropdownMenu/DropdownMenu.module.css.js.map +1 -0
- package/components/DropdownMenu/DropdownMenu.types.d.ts +34 -0
- package/components/DropdownMenu/index.d.ts +2 -0
- package/components/EmptyState/EmptyState.d.ts +8 -0
- package/components/EmptyState/EmptyState.js +24 -0
- package/components/EmptyState/EmptyState.js.map +1 -0
- package/components/EmptyState/EmptyState.module.css.js +4 -0
- package/components/EmptyState/EmptyState.module.css.js.map +1 -0
- package/components/EmptyState/EmptyState.types.d.ts +26 -0
- package/components/EmptyState/index.d.ts +2 -0
- package/components/FileUpload/FileUpload.d.ts +9 -0
- package/components/FileUpload/FileUpload.js +174 -0
- package/components/FileUpload/FileUpload.js.map +1 -0
- package/components/FileUpload/FileUpload.module.css.js +4 -0
- package/components/FileUpload/FileUpload.module.css.js.map +1 -0
- package/components/FileUpload/FileUpload.types.d.ts +41 -0
- package/components/FileUpload/index.d.ts +2 -0
- package/components/FormField/FormField.context.d.ts +22 -0
- package/components/FormField/FormField.context.js +9 -0
- package/components/FormField/FormField.context.js.map +1 -0
- package/components/FormField/FormField.d.ts +8 -0
- package/components/FormField/FormField.js +44 -0
- package/components/FormField/FormField.js.map +1 -0
- package/components/FormField/FormField.module.css.js +4 -0
- package/components/FormField/FormField.module.css.js.map +1 -0
- package/components/FormField/FormField.types.d.ts +28 -0
- package/components/FormField/index.d.ts +3 -0
- package/components/HoverCard/HoverCard.d.ts +10 -0
- package/components/HoverCard/HoverCard.js +59 -0
- package/components/HoverCard/HoverCard.js.map +1 -0
- package/components/HoverCard/HoverCard.module.css.js +4 -0
- package/components/HoverCard/HoverCard.module.css.js.map +1 -0
- package/components/HoverCard/HoverCard.types.d.ts +35 -0
- package/components/HoverCard/index.d.ts +2 -0
- package/components/IconButton/IconButton.d.ts +13 -0
- package/components/IconButton/IconButton.js +44 -0
- package/components/IconButton/IconButton.js.map +1 -0
- package/components/IconButton/IconButton.module.css.js +4 -0
- package/components/IconButton/IconButton.module.css.js.map +1 -0
- package/components/IconButton/IconButton.types.d.ts +29 -0
- package/components/IconButton/index.d.ts +2 -0
- package/components/Input/Input.d.ts +9 -0
- package/components/Input/Input.js +102 -0
- package/components/Input/Input.js.map +1 -0
- package/components/Input/Input.module.css.js +4 -0
- package/components/Input/Input.module.css.js.map +1 -0
- package/components/Input/Input.types.d.ts +32 -0
- package/components/Input/index.d.ts +2 -0
- package/components/Kbd/Kbd.d.ts +9 -0
- package/components/Kbd/Kbd.js +65 -0
- package/components/Kbd/Kbd.js.map +1 -0
- package/components/Kbd/Kbd.module.css.js +4 -0
- package/components/Kbd/Kbd.module.css.js.map +1 -0
- package/components/Kbd/Kbd.types.d.ts +15 -0
- package/components/Kbd/index.d.ts +2 -0
- package/components/MultiSelect/MultiSelect.d.ts +7 -0
- package/components/MultiSelect/MultiSelect.js +297 -0
- package/components/MultiSelect/MultiSelect.js.map +1 -0
- package/components/MultiSelect/MultiSelect.module.css.js +4 -0
- package/components/MultiSelect/MultiSelect.module.css.js.map +1 -0
- package/components/MultiSelect/MultiSelect.types.d.ts +60 -0
- package/components/MultiSelect/index.d.ts +2 -0
- package/components/NotificationCenter/NotificationCenter.d.ts +9 -0
- package/components/NotificationCenter/NotificationCenter.js +83 -0
- package/components/NotificationCenter/NotificationCenter.js.map +1 -0
- package/components/NotificationCenter/NotificationCenter.module.css.js +4 -0
- package/components/NotificationCenter/NotificationCenter.module.css.js.map +1 -0
- package/components/NotificationCenter/NotificationCenter.types.d.ts +95 -0
- package/components/NotificationCenter/NotificationList.d.ts +8 -0
- package/components/NotificationCenter/NotificationList.js +105 -0
- package/components/NotificationCenter/NotificationList.js.map +1 -0
- package/components/NotificationCenter/index.d.ts +3 -0
- package/components/NumberStepper/NumberStepper.d.ts +9 -0
- package/components/NumberStepper/NumberStepper.js +184 -0
- package/components/NumberStepper/NumberStepper.js.map +1 -0
- package/components/NumberStepper/NumberStepper.module.css.js +4 -0
- package/components/NumberStepper/NumberStepper.module.css.js.map +1 -0
- package/components/NumberStepper/NumberStepper.types.d.ts +36 -0
- package/components/NumberStepper/index.d.ts +2 -0
- package/components/OtpInput/OtpInput.d.ts +11 -0
- package/components/OtpInput/OtpInput.js +143 -0
- package/components/OtpInput/OtpInput.js.map +1 -0
- package/components/OtpInput/OtpInput.module.css.js +4 -0
- package/components/OtpInput/OtpInput.module.css.js.map +1 -0
- package/components/OtpInput/OtpInput.types.d.ts +45 -0
- package/components/OtpInput/index.d.ts +2 -0
- package/components/Pagination/Pagination.d.ts +8 -0
- package/components/Pagination/Pagination.js +100 -0
- package/components/Pagination/Pagination.js.map +1 -0
- package/components/Pagination/Pagination.module.css.js +4 -0
- package/components/Pagination/Pagination.module.css.js.map +1 -0
- package/components/Pagination/Pagination.types.d.ts +32 -0
- package/components/Pagination/index.d.ts +2 -0
- package/components/Popover/Popover.d.ts +22 -0
- package/components/Popover/Popover.js +48 -0
- package/components/Popover/Popover.js.map +1 -0
- package/components/Popover/Popover.module.css.js +4 -0
- package/components/Popover/Popover.module.css.js.map +1 -0
- package/components/Popover/Popover.types.d.ts +23 -0
- package/components/Popover/index.d.ts +2 -0
- package/components/Progress/Progress.d.ts +7 -0
- package/components/Progress/Progress.js +36 -0
- package/components/Progress/Progress.js.map +1 -0
- package/components/Progress/Progress.module.css.js +4 -0
- package/components/Progress/Progress.module.css.js.map +1 -0
- package/components/Progress/Progress.types.d.ts +23 -0
- package/components/Progress/index.d.ts +2 -0
- package/components/RTEField/RTEField.d.ts +23 -0
- package/components/RTEField/RTEField.js +152 -0
- package/components/RTEField/RTEField.js.map +1 -0
- package/components/RTEField/RTEField.module.css.js +4 -0
- package/components/RTEField/RTEField.module.css.js.map +1 -0
- package/components/RTEField/RTEField.types.d.ts +61 -0
- package/components/RTEField/index.d.ts +2 -0
- package/components/RadioGroup/RadioGroup.context.d.ts +15 -0
- package/components/RadioGroup/RadioGroup.context.js +9 -0
- package/components/RadioGroup/RadioGroup.context.js.map +1 -0
- package/components/RadioGroup/RadioGroup.d.ts +7 -0
- package/components/RadioGroup/RadioGroup.js +43 -0
- package/components/RadioGroup/RadioGroup.js.map +1 -0
- package/components/RadioGroup/RadioGroup.module.css.js +4 -0
- package/components/RadioGroup/RadioGroup.module.css.js.map +1 -0
- package/components/RadioGroup/RadioGroup.types.d.ts +23 -0
- package/components/RadioGroup/index.d.ts +3 -0
- package/components/Rating/Rating.d.ts +8 -0
- package/components/Rating/Rating.js +101 -0
- package/components/Rating/Rating.js.map +1 -0
- package/components/Rating/Rating.module.css.js +4 -0
- package/components/Rating/Rating.module.css.js.map +1 -0
- package/components/Rating/Rating.types.d.ts +28 -0
- package/components/Rating/index.d.ts +2 -0
- package/components/SegmentedControl/SegmentedControl.d.ts +8 -0
- package/components/SegmentedControl/SegmentedControl.js +20 -0
- package/components/SegmentedControl/SegmentedControl.js.map +1 -0
- package/components/SegmentedControl/SegmentedControl.module.css.js +4 -0
- package/components/SegmentedControl/SegmentedControl.module.css.js.map +1 -0
- package/components/SegmentedControl/SegmentedControl.types.d.ts +16 -0
- package/components/SegmentedControl/index.d.ts +2 -0
- package/components/Select/Select.d.ts +22 -0
- package/components/Select/Select.js +102 -0
- package/components/Select/Select.js.map +1 -0
- package/components/Select/Select.module.css.js +4 -0
- package/components/Select/Select.module.css.js.map +1 -0
- package/components/Select/Select.types.d.ts +45 -0
- package/components/Select/index.d.ts +2 -0
- package/components/Shell/Shell.d.ts +13 -0
- package/components/Shell/Shell.js +37 -0
- package/components/Shell/Shell.js.map +1 -0
- package/components/Shell/Shell.module.css.js +4 -0
- package/components/Shell/Shell.module.css.js.map +1 -0
- package/components/Shell/Shell.types.d.ts +31 -0
- package/components/Shell/index.d.ts +2 -0
- package/components/Sidebar/Sidebar.context.d.ts +6 -0
- package/components/Sidebar/Sidebar.context.js +6 -0
- package/components/Sidebar/Sidebar.context.js.map +1 -0
- package/components/Sidebar/Sidebar.d.ts +13 -0
- package/components/Sidebar/Sidebar.js +102 -0
- package/components/Sidebar/Sidebar.js.map +1 -0
- package/components/Sidebar/Sidebar.module.css.js +4 -0
- package/components/Sidebar/Sidebar.module.css.js.map +1 -0
- package/components/Sidebar/Sidebar.types.d.ts +45 -0
- package/components/Sidebar/index.d.ts +2 -0
- package/components/Skeleton/Skeleton.d.ts +13 -0
- package/components/Skeleton/Skeleton.js +48 -0
- package/components/Skeleton/Skeleton.js.map +1 -0
- package/components/Skeleton/Skeleton.module.css.js +4 -0
- package/components/Skeleton/Skeleton.module.css.js.map +1 -0
- package/components/Skeleton/Skeleton.types.d.ts +26 -0
- package/components/Skeleton/index.d.ts +2 -0
- package/components/Slider/Slider.d.ts +8 -0
- package/components/Slider/Slider.js +84 -0
- package/components/Slider/Slider.js.map +1 -0
- package/components/Slider/Slider.module.css.js +4 -0
- package/components/Slider/Slider.module.css.js.map +1 -0
- package/components/Slider/Slider.types.d.ts +35 -0
- package/components/Slider/index.d.ts +2 -0
- package/components/Spinner/Spinner.d.ts +7 -0
- package/components/Spinner/Spinner.js +16 -0
- package/components/Spinner/Spinner.js.map +1 -0
- package/components/Spinner/Spinner.module.css.js +4 -0
- package/components/Spinner/Spinner.module.css.js.map +1 -0
- package/components/Spinner/Spinner.types.d.ts +14 -0
- package/components/Spinner/index.d.ts +2 -0
- package/components/SplitPane/SplitPane.d.ts +18 -0
- package/components/SplitPane/SplitPane.js +169 -0
- package/components/SplitPane/SplitPane.js.map +1 -0
- package/components/SplitPane/SplitPane.module.css.js +4 -0
- package/components/SplitPane/SplitPane.module.css.js.map +1 -0
- package/components/SplitPane/SplitPane.types.d.ts +40 -0
- package/components/SplitPane/index.d.ts +2 -0
- package/components/Statistic/Statistic.d.ts +8 -0
- package/components/Statistic/Statistic.js +106 -0
- package/components/Statistic/Statistic.js.map +1 -0
- package/components/Statistic/Statistic.module.css.js +4 -0
- package/components/Statistic/Statistic.module.css.js.map +1 -0
- package/components/Statistic/Statistic.types.d.ts +42 -0
- package/components/Statistic/index.d.ts +2 -0
- package/components/Stepper/Stepper.d.ts +15 -0
- package/components/Stepper/Stepper.js +148 -0
- package/components/Stepper/Stepper.js.map +1 -0
- package/components/Stepper/Stepper.module.css.js +4 -0
- package/components/Stepper/Stepper.module.css.js.map +1 -0
- package/components/Stepper/Stepper.types.d.ts +48 -0
- package/components/Stepper/index.d.ts +2 -0
- package/components/Switch/Switch.d.ts +10 -0
- package/components/Switch/Switch.js +37 -0
- package/components/Switch/Switch.js.map +1 -0
- package/components/Switch/Switch.module.css.js +4 -0
- package/components/Switch/Switch.module.css.js.map +1 -0
- package/components/Switch/Switch.types.d.ts +19 -0
- package/components/Switch/index.d.ts +2 -0
- package/components/Table/Table.d.ts +14 -0
- package/components/Table/Table.js +131 -0
- package/components/Table/Table.js.map +1 -0
- package/components/Table/Table.module.css.js +4 -0
- package/components/Table/Table.module.css.js.map +1 -0
- package/components/Table/Table.types.d.ts +62 -0
- package/components/Table/index.d.ts +2 -0
- package/components/Tabs/Tabs.d.ts +18 -0
- package/components/Tabs/Tabs.js +32 -0
- package/components/Tabs/Tabs.js.map +1 -0
- package/components/Tabs/Tabs.module.css.js +4 -0
- package/components/Tabs/Tabs.module.css.js.map +1 -0
- package/components/Tabs/Tabs.types.d.ts +20 -0
- package/components/Tabs/index.d.ts +2 -0
- package/components/Tag/Tag.d.ts +8 -0
- package/components/Tag/Tag.js +25 -0
- package/components/Tag/Tag.js.map +1 -0
- package/components/Tag/Tag.module.css.js +4 -0
- package/components/Tag/Tag.module.css.js.map +1 -0
- package/components/Tag/Tag.types.d.ts +18 -0
- package/components/Tag/index.d.ts +2 -0
- package/components/Textarea/Textarea.d.ts +9 -0
- package/components/Textarea/Textarea.js +86 -0
- package/components/Textarea/Textarea.js.map +1 -0
- package/components/Textarea/Textarea.module.css.js +4 -0
- package/components/Textarea/Textarea.module.css.js.map +1 -0
- package/components/Textarea/Textarea.types.d.ts +27 -0
- package/components/Textarea/index.d.ts +2 -0
- package/components/TimePicker/TimePicker.d.ts +8 -0
- package/components/TimePicker/TimePicker.js +220 -0
- package/components/TimePicker/TimePicker.js.map +1 -0
- package/components/TimePicker/TimePicker.module.css.js +4 -0
- package/components/TimePicker/TimePicker.module.css.js.map +1 -0
- package/components/TimePicker/TimePicker.types.d.ts +29 -0
- package/components/TimePicker/index.d.ts +2 -0
- package/components/Timeline/Timeline.d.ts +6 -0
- package/components/Timeline/Timeline.js +49 -0
- package/components/Timeline/Timeline.js.map +1 -0
- package/components/Timeline/Timeline.module.css.js +4 -0
- package/components/Timeline/Timeline.module.css.js.map +1 -0
- package/components/Timeline/Timeline.types.d.ts +19 -0
- package/components/Timeline/index.d.ts +2 -0
- package/components/Toast/Toast.d.ts +11 -0
- package/components/Toast/Toast.js +75 -0
- package/components/Toast/Toast.js.map +1 -0
- package/components/Toast/Toast.module.css.js +4 -0
- package/components/Toast/Toast.module.css.js.map +1 -0
- package/components/Toast/Toast.store.d.ts +29 -0
- package/components/Toast/Toast.store.js +53 -0
- package/components/Toast/Toast.store.js.map +1 -0
- package/components/Toast/Toast.types.d.ts +40 -0
- package/components/Toast/index.d.ts +3 -0
- package/components/TokenInput/TokenInput.d.ts +8 -0
- package/components/TokenInput/TokenInput.js +206 -0
- package/components/TokenInput/TokenInput.js.map +1 -0
- package/components/TokenInput/TokenInput.module.css.js +4 -0
- package/components/TokenInput/TokenInput.module.css.js.map +1 -0
- package/components/TokenInput/TokenInput.types.d.ts +38 -0
- package/components/TokenInput/index.d.ts +2 -0
- package/components/Tooltip/Tooltip.d.ts +17 -0
- package/components/Tooltip/Tooltip.js +32 -0
- package/components/Tooltip/Tooltip.js.map +1 -0
- package/components/Tooltip/Tooltip.module.css.js +4 -0
- package/components/Tooltip/Tooltip.module.css.js.map +1 -0
- package/components/Tooltip/Tooltip.types.d.ts +38 -0
- package/components/Tooltip/index.d.ts +2 -0
- package/components/TopNavigation/TopNavigation.d.ts +4 -0
- package/components/TopNavigation/TopNavigation.js +46 -0
- package/components/TopNavigation/TopNavigation.js.map +1 -0
- package/components/TopNavigation/TopNavigation.module.css.js +4 -0
- package/components/TopNavigation/TopNavigation.module.css.js.map +1 -0
- package/components/TopNavigation/TopNavigation.types.d.ts +23 -0
- package/components/TopNavigation/index.d.ts +2 -0
- package/components/TreeView/TreeView.d.ts +8 -0
- package/components/TreeView/TreeView.js +224 -0
- package/components/TreeView/TreeView.js.map +1 -0
- package/components/TreeView/TreeView.module.css.js +4 -0
- package/components/TreeView/TreeView.module.css.js.map +1 -0
- package/components/TreeView/TreeView.types.d.ts +34 -0
- package/components/TreeView/index.d.ts +2 -0
- package/components/index.d.ts +62 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/useDeferredLoading.d.ts +16 -0
- package/hooks/useDeferredLoading.js +26 -0
- package/hooks/useDeferredLoading.js.map +1 -0
- package/index.d.ts +2 -3
- package/index.js +73 -4
- package/index.js.map +1 -1
- package/lib/api-request.js +5 -3
- package/lib/api-request.js.map +1 -1
- package/lib/cn.d.ts +19 -0
- package/lib/cn.js +8 -0
- package/lib/cn.js.map +1 -0
- package/lib/date.d.ts +17 -0
- package/lib/date.js +54 -0
- package/lib/date.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/merge-refs.d.ts +15 -0
- package/lib/merge-refs.js +11 -0
- package/lib/merge-refs.js.map +1 -0
- package/package.json +34 -12
- package/styles.css +1 -1
- package/styles.css.map +1 -1
- package/styles.layer.css +1 -1
- package/components/AppLayout/AppLayout.d.ts +0 -21
- package/components/AppLayout/AppLayout.js +0 -34
- package/components/AppLayout/AppLayout.js.map +0 -1
- package/components/AppLayout/AppLayout.module.css.js +0 -4
- package/components/AppLayout/AppLayout.module.css.js.map +0 -1
- package/components/AppLayout/ContentFooter.d.ts +0 -12
- package/components/AppLayout/ContentFooter.js +0 -11
- package/components/AppLayout/ContentFooter.js.map +0 -1
- package/components/AppLayout/SideNavbar.d.ts +0 -21
- package/components/AppLayout/SideNavbar.js +0 -43
- package/components/AppLayout/SideNavbar.js.map +0 -1
- package/components/AppLayout/SideNavbarGroup.d.ts +0 -19
- package/components/AppLayout/SideNavbarGroup.js +0 -16
- package/components/AppLayout/SideNavbarGroup.js.map +0 -1
- package/components/AppLayout/SideNavbarItem.d.ts +0 -19
- package/components/AppLayout/SideNavbarItem.js +0 -74
- package/components/AppLayout/SideNavbarItem.js.map +0 -1
- package/components/AppLayout/TopNavbar.d.ts +0 -20
- package/components/AppLayout/TopNavbar.js +0 -38
- package/components/AppLayout/TopNavbar.js.map +0 -1
- package/components/AppLayout/app-layout.utils.d.ts +0 -14
- package/components/AppLayout/app-layout.utils.js +0 -6
- package/components/AppLayout/app-layout.utils.js.map +0 -1
- package/components/AppLayout/hooks/use-active-nav-label.d.ts +0 -2
- package/components/AppLayout/hooks/use-active-nav-label.js +0 -29
- package/components/AppLayout/hooks/use-active-nav-label.js.map +0 -1
- package/components/AppLayout/hooks/use-layout-state.d.ts +0 -20
- package/components/AppLayout/hooks/use-layout-state.js +0 -14
- package/components/AppLayout/hooks/use-layout-state.js.map +0 -1
- package/components/AppLayout/hooks/use-side-navbar-item.d.ts +0 -11
- package/components/AppLayout/hooks/use-side-navbar-item.js +0 -26
- package/components/AppLayout/hooks/use-side-navbar-item.js.map +0 -1
- package/components/AppLayout/index.d.ts +0 -2
- package/components/AppLayout/layout.types.d.ts +0 -59
- package/components/Logo/Alphabets.d.ts +0 -39
- package/components/Logo/Alphabets.js +0 -119
- package/components/Logo/Alphabets.js.map +0 -1
- package/components/Logo/BrandMark.d.ts +0 -16
- package/components/Logo/BrandMark.js +0 -39
- package/components/Logo/BrandMark.js.map +0 -1
- package/components/Logo/Logo.d.ts +0 -17
- package/components/Logo/Logo.js +0 -22
- package/components/Logo/Logo.js.map +0 -1
- package/components/Logo/Logo.module.css.js +0 -4
- package/components/Logo/Logo.module.css.js.map +0 -1
- package/components/Logo/hooks/use-logo.d.ts +0 -9
- package/components/Logo/hooks/use-logo.js +0 -16
- package/components/Logo/hooks/use-logo.js.map +0 -1
- package/components/Logo/index.d.ts +0 -2
- package/styles/AppLayout.module.css +0 -82
- package/styles/Logo.module.css +0 -51
- package/theme.d.ts +0 -161
- package/theme.js +0 -112
- package/theme.js.map +0 -1
package/styles.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["AppLayout.module.css","Logo.module.css"],"names":[],"mappings":"AACA,8BAIE,8EAAgF,CAHhF,YAAa,CACb,qBAAsB,CACtB,iBAEF,CAEA,qCACE,MACF,CAGA,qCAEE,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CAGvB,iBAAkB,CAFlB,eAAgB,CAChB,iBAEF,CAEA,2CAQE,8EAAgF,CALhF,QAAS,CAFT,UAAW,CAMX,UAAW,CAHX,QAAS,CAFT,iBAAkB,CAGlB,0BAA2B,CAC3B,uBAGF,CAEA,mCAGE,aAAc,CAFd,WAAY,CACZ,UAEF,CAGA,0CACE,uGAA0G,CAC1G,YAAa,CACb,wBACF,CAEA,mDACE,sBACF,CAGA,yCAEE,iBAAkB,CAClB,gBAAiB,CAFjB,SAGF,CAGA,uCAEE,sCAAuC,CADvC,UAEF,CAEA,sCACE,8EAAgF,CAEhF,eAEE,mBAAoB,CACpB,8EAAgF,CAChF,8CAA+C,CAH/C,eAAgB,CAKhB,IACE,gBACF,CACF,CACF,CAGA,gCACE,wFACF,CCjFA,yCACE,MAEE,iDACF,CACA,IACE,mDACF,CACF,CAEA,6BAIE,kBAAmB,CADnB,YAAa,CAGb,OAAQ,CALR,WAAY,CAIZ,6BAA8B,CAH9B,UAAW,CAMX,IAEE,iBAAkB,CADlB,WAEF,CAEA,4BACE,sBACF,CACF,CAEA,0CAIE,0BAA2B,CAC3B,kCAAmC,CAFnC,iBAAkB,CAFlB,WAAY,CACZ,WAAY,CAKZ,MACE,+DACF,CAEA,uCACE,MACE,cACF,CACF,CACF,CAEA,4BACE,UAAW,CAEX,kBAAmB,CADnB,eAEF","file":"styles.css","sourcesContent":["/* AppLayout */\n.main {\n display: flex;\n flex-direction: column;\n min-height: 100dvh;\n background: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-8));\n}\n\n.mainContent {\n flex: 1;\n}\n\n/* SideNavbar - Logo Section */\n.logoSection {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 56px;\n position: relative;\n margin-bottom: 5px;\n}\n\n.logoSection::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n width: calc(100% - 20px);\n height: 1px;\n background: light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-5));\n}\n\n.brandIcon {\n height: 40px;\n width: 48px;\n flex-shrink: 0;\n}\n\n/* SideNavbar */\n.navToggleSection {\n border-top: 0.5px solid light-dark(var(--mantine-color-shadowSlate-1), var(--mantine-color-shadowSlate-7));\n display: flex;\n justify-content: flex-end;\n}\n\n.navToggleSectionCollapsed {\n justify-content: center;\n}\n\n/* SideNavbar - Group divider */\n.navGroupDivider {\n width: 80%;\n align-self: center;\n margin-block: 4px;\n}\n\n/* SideNavbarItem */\n.collapsedItem {\n width: 100%;\n border-radius: var(--mantine-radius-sm);\n}\n\n.childNavLink {\n --nl-color: light-dark(var(--mantine-color-dark-7), var(--mantine-color-dark-1));\n\n &[data-active] {\n font-weight: 600;\n --nl-bg: transparent;\n --nl-hover: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-6));\n --nl-color: var(--mantine-primary-color-filled);\n\n svg {\n stroke-width: 3px;\n }\n }\n}\n\n/* ContentFooter */\n.footer {\n border-top: 1px solid light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-5));\n}\n","@keyframes glow-pulse {\n 0%,\n 100% {\n filter: drop-shadow(0 0 4px var(--glow-color-low));\n }\n 50% {\n filter: drop-shadow(0 0 10px var(--glow-color-high));\n }\n}\n\n.logoRoot {\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 4px;\n\n svg {\n height: 100%;\n stroke-width: 50px;\n }\n\n &.center {\n justify-content: center;\n }\n}\n\n.compactBrandContainer {\n height: 100%;\n padding: 4px;\n border-radius: 6px;\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n\n & > svg {\n animation: glow-pulse 3s ease-in-out infinite;\n }\n\n @media (prefers-reduced-motion: reduce) {\n & > svg {\n animation: none;\n }\n }\n}\n\n.divider {\n height: 70%;\n margin-top: auto;\n margin-bottom: auto;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["tokens.css","reset.css","Accordion.module.css","Alert.module.css","Avatar.module.css","Badge.module.css","IconButton.module.css","Spinner.module.css","Banner.module.css","BottomSheet.module.css","Popover.module.css","Breadcrumbs.module.css","Button.module.css","ButtonGroup.module.css","Calendar.module.css","Card.module.css","Checkbox.module.css","ColorPicker.module.css","Combobox.module.css","Kbd.module.css","CommandPalette.module.css","DropdownMenu.module.css","DataGrid.module.css","Input.module.css","DatePicker.module.css","DateRangePicker.module.css","Toast.module.css","DescriptionList.module.css","FormField.module.css","Dialog.module.css","Drawer.module.css","EmptyState.module.css","Progress.module.css","FileUpload.module.css","HoverCard.module.css","MultiSelect.module.css","Tabs.module.css","NotificationCenter.module.css","NumberStepper.module.css","OtpInput.module.css","Select.module.css","Pagination.module.css","RadioGroup.module.css","Rating.module.css","Tag.module.css","RTEField.module.css","SegmentedControl.module.css","Shell.module.css","Tooltip.module.css","Sidebar.module.css","Skeleton.module.css","Slider.module.css","SplitPane.module.css","Statistic.module.css","Stepper.module.css","Switch.module.css","Table.module.css","Textarea.module.css","Timeline.module.css","TimePicker.module.css","TokenInput.module.css","TopNavigation.module.css","TreeView.module.css"],"names":[],"mappings":"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","file":"styles.css","sourcesContent":["/*\n * Shadow UI v1.1 — Design Tokens (runtime source of truth)\n *\n * Three tiers per Foundations §01: primitive → semantic → component.\n * Components consume semantic tokens only; they never reference primitives or raw values.\n * Every semantic color declares a light value (:root) and a dark value ([data-theme='dark'], .dark),\n * so theme flips cascade automatically without per-component dark variants.\n *\n * Values are transcribed verbatim from \"Shadow UI — Foundations v1.1\".\n */\n\n:root {\n /* ── Primitive · Neutral ramp ─────────────────────────────── */\n --sh-neutral-white: #ffffff;\n --sh-neutral-50: #fafafb;\n --sh-neutral-100: #f5f6f8;\n --sh-neutral-150: #f0f0f3; /* C1: promoted hover/hairline gray */\n --sh-neutral-200: #e5e7eb;\n --sh-neutral-300: #c8cdd4;\n --sh-neutral-400: #9ca3af;\n --sh-neutral-500: #707784;\n --sh-neutral-600: #525866;\n --sh-neutral-700: #343842;\n --sh-neutral-800: #202226;\n --sh-neutral-850: #17181b;\n --sh-neutral-900: #111214;\n --sh-neutral-950: #09090b;\n\n /* ── Primitive · Indigo (brand) ───────────────────────────── */\n --sh-indigo-50: #f0f1fe;\n --sh-indigo-100: #e1e2fd;\n --sh-indigo-200: #c7c8fa;\n --sh-indigo-300: #a5a6f5;\n --sh-indigo-400: #8283f0;\n --sh-indigo-500: #5b5ceb;\n --sh-indigo-600: #4f46e5;\n --sh-indigo-700: #4338ca;\n --sh-indigo-800: #3730a3;\n --sh-indigo-900: #312e81;\n --sh-indigo-950: #1e1b4e;\n\n /* ── Primitive · Green (success) ──────────────────────────── */\n --sh-green-50: #f0fdf4;\n --sh-green-100: #dcfce7;\n --sh-green-200: #bbf7d0;\n --sh-green-300: #86efac;\n --sh-green-400: #4ade80;\n --sh-green-500: #22c55e;\n --sh-green-600: #16a34a;\n --sh-green-700: #15803d;\n --sh-green-800: #166534;\n --sh-green-900: #14532d;\n\n /* ── Primitive · Amber (warning) ──────────────────────────── */\n --sh-amber-50: #fffbeb;\n --sh-amber-100: #fef3c7;\n --sh-amber-200: #fde68a;\n --sh-amber-300: #fcd34d;\n --sh-amber-400: #fbbf24;\n --sh-amber-500: #f59e0b;\n --sh-amber-600: #d97706;\n --sh-amber-700: #b45309;\n --sh-amber-800: #92400e;\n --sh-amber-900: #78350f;\n\n /* ── Primitive · Red (danger) ─────────────────────────────── */\n --sh-red-50: #fef2f2;\n --sh-red-100: #fee2e2;\n --sh-red-200: #fecaca;\n --sh-red-300: #fca5a5;\n --sh-red-400: #f87171;\n --sh-red-500: #ef4444;\n --sh-red-600: #dc2626;\n --sh-red-700: #b91c1c;\n --sh-red-800: #991b1b;\n --sh-red-900: #7f1d1d;\n\n /* ── Semantic · Surfaces (light) ──────────────────────────── */\n /* Paper canvas: a tinted grey below white cards/controls so secondary buttons and\n cards read against the background instead of vanishing into near-white. The\n elevation order is well (recessed) < app (canvas) < card/raised (white). */\n --sh-surface-app: var(--sh-neutral-100);\n --sh-surface-card: var(--sh-neutral-white);\n --sh-surface-well: var(--sh-neutral-150);\n --sh-surface-raised: var(--sh-neutral-white);\n --sh-surface-tooltip: var(--sh-neutral-800);\n /* Raised \"thumb\" resting on a well (segmented control): white + e1 in light; a lighter surface,\n no shadow, in dark (elevation by surface, Foundations §08). */\n --sh-surface-thumb: var(--sh-neutral-white);\n\n /* ── Semantic · Interactive backgrounds (light) ───────────── */\n --sh-bg-hover: var(--sh-neutral-150);\n --sh-bg-pressed: var(--sh-neutral-200);\n\n /* ── Semantic · Text (light) ──────────────────────────────── */\n --sh-text-primary: var(--sh-neutral-900);\n --sh-text-secondary: var(--sh-neutral-600);\n --sh-text-tertiary: var(--sh-neutral-500);\n --sh-text-placeholder: var(--sh-neutral-400);\n --sh-text-on-tooltip: var(--sh-neutral-50);\n\n /* ── Semantic · Brand / accent (light) ────────────────────── */\n --sh-accent: var(--sh-indigo-600);\n --sh-accent-hover: var(--sh-indigo-700);\n --sh-accent-active: var(--sh-indigo-800);\n --sh-accent-soft: var(--sh-indigo-50);\n --sh-on-accent: var(--sh-neutral-white);\n\n /* ── Semantic · Borders (light) ───────────────────────────── */\n --sh-border-subtle: var(--sh-neutral-150);\n --sh-border-default: var(--sh-neutral-200);\n --sh-border-strong: var(--sh-neutral-300);\n --sh-border-interactive: var(--sh-neutral-400);\n --sh-border-focus: var(--sh-indigo-500);\n\n /* ── Semantic · Intent · Neutral (light) ──────────────────── */\n --sh-neutral-solid: var(--sh-neutral-800);\n --sh-neutral-solid-hover: var(--sh-neutral-700);\n --sh-neutral-solid-active: var(--sh-neutral-900);\n --sh-neutral-on-solid: var(--sh-neutral-white);\n --sh-neutral-bg-subtle: var(--sh-neutral-100);\n --sh-neutral-text-on-subtle: var(--sh-neutral-700);\n --sh-neutral-text: var(--sh-neutral-600);\n --sh-neutral-border: var(--sh-neutral-200);\n\n /* ── Semantic · Intent · Success (light) ──────────────────── */\n --sh-success-solid: var(--sh-green-600);\n --sh-success-solid-hover: var(--sh-green-700);\n --sh-success-solid-active: var(--sh-green-800);\n --sh-success-on-solid: var(--sh-neutral-white);\n --sh-success-bg-subtle: var(--sh-green-50);\n --sh-success-text-on-subtle: var(--sh-green-700);\n --sh-success-text: var(--sh-green-600);\n --sh-success-border: var(--sh-green-200);\n\n /* ── Semantic · Intent · Warning (light) ──────────────────── */\n --sh-warning-solid: var(--sh-amber-600);\n --sh-warning-solid-hover: var(--sh-amber-700);\n --sh-warning-solid-active: var(--sh-amber-800);\n --sh-warning-on-solid: var(--sh-neutral-white);\n --sh-warning-bg-subtle: var(--sh-amber-50);\n --sh-warning-text-on-subtle: var(--sh-amber-700);\n --sh-warning-text: var(--sh-amber-600);\n --sh-warning-border: var(--sh-amber-200);\n\n /* ── Semantic · Intent · Danger (light) ───────────────────── */\n --sh-danger-solid: var(--sh-red-600);\n --sh-danger-solid-hover: var(--sh-red-700);\n --sh-danger-solid-active: var(--sh-red-800);\n --sh-danger-on-solid: var(--sh-neutral-white);\n --sh-danger-bg-subtle: var(--sh-red-50);\n --sh-danger-text-on-subtle: var(--sh-red-700);\n --sh-danger-text: var(--sh-red-600);\n --sh-danger-border: var(--sh-red-200);\n\n /* ── Semantic · Intent · Info (alias of indigo, light) ────── */\n --sh-info-solid: var(--sh-indigo-600);\n --sh-info-solid-hover: var(--sh-indigo-700);\n --sh-info-solid-active: var(--sh-indigo-800);\n --sh-info-on-solid: var(--sh-neutral-white);\n --sh-info-bg-subtle: var(--sh-indigo-50);\n --sh-info-text-on-subtle: var(--sh-indigo-700);\n --sh-info-text: var(--sh-indigo-600);\n --sh-info-border: var(--sh-indigo-200);\n\n /* ── Semantic · Focus (light) ─────────────────────────────── */\n --sh-focus-ring: var(--sh-indigo-500);\n --sh-focus-ring-width: 2px;\n --sh-focus-ring-offset: 2px;\n --sh-focus-field-ring: rgb(91 92 235 / 0.15);\n --sh-focus-field-ring-error: rgb(220 38 38 / 0.12);\n\n /* ── Semantic · Scrim (light) ─────────────────────────────── */\n --sh-scrim: rgb(9 9 11 / 0.4);\n\n /* ── Elevation · Shadows (light) ──────────────────────────── */\n --sh-shadow-e1: 0 1px 2px rgb(9 9 11 / 0.06), 0 1px 3px rgb(9 9 11 / 0.1);\n --sh-shadow-e2: 0 4px 8px -2px rgb(9 9 11 / 0.1), 0 2px 4px -2px rgb(9 9 11 / 0.06);\n --sh-shadow-e3: 0 12px 24px -6px rgb(9 9 11 / 0.12), 0 4px 8px -4px rgb(9 9 11 / 0.08);\n\n /* ── Typography ───────────────────────────────────────────── */\n --sh-font-sans: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;\n --sh-font-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;\n\n --sh-text-display: 2rem; /* 32/40 · 700 · -0.02em */\n --sh-text-display--line-height: 2.5rem;\n --sh-text-h1: 1.5rem; /* 24/32 · 600 · -0.01em */\n --sh-text-h1--line-height: 2rem;\n --sh-text-h2: 1.25rem; /* 20/28 · 600 · -0.01em */\n --sh-text-h2--line-height: 1.75rem;\n --sh-text-h3: 1rem; /* 16/24 · 600 */\n --sh-text-h3--line-height: 1.5rem;\n --sh-text-body-lg: 1rem; /* 16/24 · 400 */\n --sh-text-body-lg--line-height: 1.5rem;\n --sh-text-body: 0.875rem; /* 14/22 · 400 · default */\n --sh-text-body--line-height: 1.375rem;\n --sh-text-body-sm: 0.8125rem; /* 13/20 · 400 */\n --sh-text-body-sm--line-height: 1.25rem;\n --sh-text-caption: 0.75rem; /* 12/16 · 500 */\n --sh-text-caption--line-height: 1rem;\n --sh-text-code: 0.8125rem; /* 13/20 · mono */\n --sh-text-code--line-height: 1.25rem;\n\n /* ── Borders (all borders are 1px — Foundations §06) ──────── */\n --sh-border-width: 1px;\n\n /* ── Radius (Foundations · concentric: inner = outer − padding) */\n --sh-radius-sm: 4px;\n --sh-radius-md: 6px; /* buttons, inputs — default */\n --sh-radius-lg: 8px; /* cards, popovers */\n --sh-radius-xl: 12px; /* modals */\n --sh-radius-2xl: 16px; /* sheets */\n --sh-radius-full: 9999px;\n\n /* ── Motion ───────────────────────────────────────────────── */\n --sh-duration-fast: 150ms;\n --sh-duration-normal: 200ms;\n --sh-duration-slow: 250ms;\n --sh-duration-fast-exit: 100ms;\n --sh-duration-normal-exit: 120ms;\n --sh-duration-slow-exit: 150ms;\n --sh-ease-standard: cubic-bezier(0.2, 0, 0, 1);\n --sh-ease-emphasized: cubic-bezier(0.3, 0, 0, 1);\n\n /* ── Z-index ladder (Foundations §10) ─────────────────────── */\n --sh-z-base: 0;\n --sh-z-sticky: 100;\n --sh-z-shell: 200;\n --sh-z-dropdown: 1000;\n --sh-z-scrim: 1100;\n --sh-z-modal: 1200;\n --sh-z-command-palette: 1250;\n --sh-z-popover: 1300;\n --sh-z-toast: 1400;\n --sh-z-tooltip: 1500;\n --sh-z-dev-overlay: 1600;\n\n /* ── Density · control heights (comfortable default) ──────── */\n --sh-control-height-sm: 28px;\n --sh-control-height-md: 32px;\n --sh-control-height-lg: 40px;\n --sh-row-height: 40px;\n --sh-disabled-opacity: 0.45;\n\n /*\n * Breakpoints (reference) — matching the Foundations grid (xs–2xl).\n * CSS custom properties cannot be used inside media queries, so these document the\n * scale; a component media query uses the literal px value and cites the token name\n * in an adjacent comment (see CLAUDE.md · Design Tokens).\n */\n --sh-breakpoint-sm: 640px;\n --sh-breakpoint-md: 768px;\n --sh-breakpoint-lg: 1024px;\n --sh-breakpoint-xl: 1280px;\n --sh-breakpoint-2xl: 1536px;\n}\n\n/* Compact density — set app-wide via [data-density='compact']; never mixed within a view. */\n[data-density='compact'] {\n --sh-control-height-sm: 24px;\n --sh-control-height-md: 28px;\n --sh-control-height-lg: 32px;\n --sh-row-height: 32px;\n}\n\n/*\n * Dark theme — semantic overrides only. Primitives are theme-independent.\n * Dark elevates with lighter surfaces (neutral-850) instead of shadow (Foundations §08).\n */\n:root[data-theme='dark'],\n.dark {\n color-scheme: dark;\n\n --sh-surface-app: var(--sh-neutral-950);\n --sh-surface-card: var(--sh-neutral-900);\n --sh-surface-well: var(--sh-neutral-850);\n --sh-surface-raised: var(--sh-neutral-850);\n --sh-surface-tooltip: var(--sh-neutral-200);\n --sh-surface-thumb: var(--sh-neutral-700);\n\n --sh-bg-hover: var(--sh-neutral-800);\n --sh-bg-pressed: var(--sh-neutral-700);\n\n --sh-text-primary: var(--sh-neutral-100);\n --sh-text-secondary: var(--sh-neutral-400);\n --sh-text-tertiary: var(--sh-neutral-500);\n --sh-text-placeholder: var(--sh-neutral-500);\n --sh-text-on-tooltip: var(--sh-neutral-900);\n\n --sh-accent: var(--sh-indigo-500);\n --sh-accent-hover: var(--sh-indigo-400);\n --sh-accent-active: var(--sh-indigo-300);\n --sh-accent-soft: rgb(91 92 235 / 0.15);\n\n --sh-border-subtle: var(--sh-neutral-850);\n --sh-border-default: var(--sh-neutral-800);\n --sh-border-strong: var(--sh-neutral-700);\n --sh-border-interactive: var(--sh-neutral-600);\n --sh-border-focus: var(--sh-indigo-400);\n\n --sh-neutral-solid: var(--sh-neutral-200);\n --sh-neutral-solid-hover: var(--sh-neutral-300);\n --sh-neutral-solid-active: var(--sh-neutral-100);\n --sh-neutral-on-solid: var(--sh-neutral-900);\n --sh-neutral-bg-subtle: var(--sh-neutral-800);\n --sh-neutral-text-on-subtle: var(--sh-neutral-300);\n --sh-neutral-text: var(--sh-neutral-400);\n --sh-neutral-border: var(--sh-neutral-700);\n\n --sh-success-solid-hover: var(--sh-green-500);\n --sh-success-solid-active: var(--sh-green-400);\n --sh-success-bg-subtle: rgb(22 163 74 / 0.15);\n --sh-success-text-on-subtle: var(--sh-green-300);\n --sh-success-text: var(--sh-green-400);\n --sh-success-border: rgb(34 197 94 / 0.3);\n\n --sh-warning-solid-hover: var(--sh-amber-500);\n --sh-warning-solid-active: var(--sh-amber-400);\n --sh-warning-bg-subtle: rgb(217 119 6 / 0.15);\n --sh-warning-text-on-subtle: var(--sh-amber-300);\n --sh-warning-text: var(--sh-amber-400);\n --sh-warning-border: rgb(245 158 11 / 0.3);\n\n --sh-danger-solid-hover: var(--sh-red-500);\n --sh-danger-solid-active: var(--sh-red-400);\n --sh-danger-bg-subtle: rgb(220 38 38 / 0.15);\n --sh-danger-text-on-subtle: var(--sh-red-300);\n --sh-danger-text: var(--sh-red-400);\n --sh-danger-border: rgb(239 68 68 / 0.3);\n\n --sh-info-solid-hover: var(--sh-indigo-500);\n --sh-info-solid-active: var(--sh-indigo-400);\n --sh-info-bg-subtle: rgb(91 92 235 / 0.15);\n --sh-info-text-on-subtle: var(--sh-indigo-300);\n --sh-info-text: var(--sh-indigo-400);\n --sh-info-border: rgb(91 92 235 / 0.3);\n\n --sh-focus-ring: var(--sh-indigo-400);\n --sh-focus-field-ring: rgb(130 131 240 / 0.2);\n\n --sh-scrim: rgb(9 9 11 / 0.55);\n\n /* Dark elevates with surface tint, not shadow. */\n --sh-shadow-e1: none;\n --sh-shadow-e2: none;\n --sh-shadow-e3: none;\n}\n","/*\n * Shadow UI — minimal, opinionated reset.\n *\n * Scoped to what the component library actually needs (box-sizing, margin collapse,\n * inheritable typography on form controls, media defaults). It intentionally does not\n * restyle every element the way a full reset would, to avoid clobbering a host app.\n */\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n -webkit-text-size-adjust: 100%;\n text-size-adjust: 100%;\n}\n\nbody {\n margin: 0;\n font-family: var(--sh-font-sans);\n font-size: var(--sh-text-body);\n line-height: var(--sh-text-body--line-height);\n color: var(--sh-text-primary);\n background-color: var(--sh-surface-app);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nfigure {\n margin: 0;\n}\n\nbutton,\ninput,\nselect,\ntextarea {\n font: inherit;\n color: inherit;\n}\n\nimg,\nsvg,\nvideo,\ncanvas {\n display: block;\n max-width: 100%;\n}\n\n/* Collapse all non-opacity motion when the user prefers reduced motion (Foundations §09). */\n@media (prefers-reduced-motion: reduce) {\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n}\n","/*\n * Accordion — page structure, one size. Hairlines border-subtle, hover bg-hover, titles\n * text-secondary → text-primary. Disclosure is not selection: no accent, just weight + chevron. The\n * contained variant borrows Card chrome. Panel height animates via Radix's content-height var.\n */\n\n.item {\n border-bottom: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n.root[data-variant='contained'] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.root[data-variant='contained'] .item {\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n overflow: hidden;\n}\n\n.header {\n margin: 0;\n font: inherit;\n}\n.trigger {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n height: 48px;\n padding: 0 16px;\n border: none;\n background: transparent;\n font: inherit;\n font-size: var(--sh-text-body);\n font-weight: 500;\n color: var(--sh-text-secondary);\n text-align: left;\n cursor: pointer;\n transition:\n background-color var(--sh-duration-fast) var(--sh-ease-standard),\n color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n[data-density='compact'] .trigger {\n height: 40px;\n}\n.trigger:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.trigger:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -2px;\n border-radius: var(--sh-radius-md);\n}\n.trigger[data-state='open'] {\n color: var(--sh-text-primary);\n}\n.trigger[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n.title {\n flex: 1;\n min-width: 0;\n}\n.meta {\n flex-shrink: 0;\n}\n.chevron {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: var(--sh-text-tertiary);\n transition: transform var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.trigger[data-state='open'] .chevron {\n transform: rotate(180deg);\n}\n\n/* ── Content ─────────────────────────────────────────────── */\n.content {\n overflow: hidden;\n}\n.content[data-state='open'] {\n animation: sh-accordion-down var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.content[data-state='closed'] {\n animation: sh-accordion-up var(--sh-duration-fast-exit) var(--sh-ease-standard);\n}\n.contentInner {\n padding: 0 16px 16px;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-secondary);\n}\n\n@keyframes sh-accordion-down {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n@keyframes sh-accordion-up {\n from {\n height: var(--radix-accordion-content-height);\n }\n to {\n height: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .content[data-state='open'],\n .content[data-state='closed'] {\n animation: none;\n }\n .chevron {\n transition: none;\n }\n}\n","/*\n * Alert — the one intent-tinted surface. Each intent binds local custom properties from the semantic\n * role tokens (bg-subtle / border / text-on-subtle / solid), so the whole component recolors by token\n * and dark mode needs no special rules. No left accent bar — the tint + border carry intent.\n */\n\n.root {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n min-height: 44px;\n padding: 12px 14px;\n border: var(--sh-border-width) solid var(--alert-border);\n border-radius: var(--sh-radius-lg);\n background: var(--alert-subtle);\n animation: sh-alert-in var(--sh-duration-fast) var(--sh-ease-standard);\n}\n[data-density='compact'] .root {\n padding: 10px 12px;\n}\n\n.root[data-intent='info'] {\n --alert-subtle: var(--sh-info-bg-subtle);\n --alert-border: var(--sh-info-border);\n --alert-text: var(--sh-info-text-on-subtle);\n --alert-solid: var(--sh-info-solid);\n}\n.root[data-intent='success'] {\n --alert-subtle: var(--sh-success-bg-subtle);\n --alert-border: var(--sh-success-border);\n --alert-text: var(--sh-success-text-on-subtle);\n --alert-solid: var(--sh-success-solid);\n}\n.root[data-intent='warning'] {\n --alert-subtle: var(--sh-warning-bg-subtle);\n --alert-border: var(--sh-warning-border);\n --alert-text: var(--sh-warning-text-on-subtle);\n --alert-solid: var(--sh-warning-solid);\n}\n.root[data-intent='danger'] {\n --alert-subtle: var(--sh-danger-bg-subtle);\n --alert-border: var(--sh-danger-border);\n --alert-text: var(--sh-danger-text-on-subtle);\n --alert-solid: var(--sh-danger-solid);\n}\n\n.icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n margin-top: 1px;\n border-radius: var(--sh-radius-full);\n background: var(--alert-solid);\n color: var(--sh-neutral-white);\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n}\n\n.content {\n flex: 1;\n min-width: 0;\n}\n.title {\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n line-height: 18px;\n color: var(--alert-text);\n}\n.body {\n font-size: var(--sh-text-body-sm);\n line-height: 19px;\n color: var(--alert-text);\n}\n.title + .body {\n margin-top: 2px;\n opacity: 0.85;\n}\n\n.action {\n flex-shrink: 0;\n height: 26px;\n padding: 0 10px;\n border: var(--sh-border-width) solid var(--alert-border);\n border-radius: var(--sh-radius-sm);\n background: transparent;\n color: var(--alert-text);\n font: inherit;\n font-size: var(--sh-text-caption);\n font-weight: 600;\n cursor: pointer;\n transition: background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.action:hover {\n background: color-mix(in srgb, var(--alert-solid) 12%, transparent);\n}\n.action:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 1px;\n}\n\n.dismiss {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--alert-text);\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n opacity: 0.7;\n}\n.dismiss:hover {\n opacity: 1;\n}\n.dismiss:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n.dismiss svg {\n display: block;\n width: 14px;\n height: 14px;\n}\n\n@keyframes sh-alert-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n","/*\n * Avatar — identity primitive. Two muted, theme-aware tints (indigo / neutral) reused from the\n * accent-soft and neutral-subtle tokens; the image and initials clip to the shape, and the presence\n * dot sits outside the frame with a surface-colored keyline. No new tokens.\n */\n\n.root {\n position: relative;\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n overflow: visible;\n border-radius: var(--sh-radius-full);\n font-weight: 600;\n user-select: none;\n}\n.root[data-shape='square'] {\n border-radius: var(--sh-radius-md);\n}\n\n.image,\n.fallback {\n width: 100%;\n height: 100%;\n border-radius: inherit;\n object-fit: cover;\n}\n.fallback {\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n}\n\n/* ── Tints (deterministic per name) ──────────────────────── */\n.root[data-tint='indigo'] .fallback {\n background: var(--sh-accent-soft);\n color: var(--sh-accent);\n}\n.root[data-tint='neutral'] .fallback {\n background: var(--sh-neutral-bg-subtle);\n color: var(--sh-neutral-text-on-subtle);\n}\n\n/* ── Sizes (box + initials type ≈ size / 2.6) ────────────── */\n.root[data-size='xs'] {\n width: 20px;\n height: 20px;\n font-size: 9px;\n}\n.root[data-size='sm'] {\n width: 24px;\n height: 24px;\n font-size: 10px;\n}\n.root[data-size='md'] {\n width: 32px;\n height: 32px;\n font-size: 12px;\n}\n.root[data-size='lg'] {\n width: 40px;\n height: 40px;\n font-size: 14px;\n}\n.root[data-size='xl'] {\n width: 64px;\n height: 64px;\n font-size: 22px;\n}\n\n/* ── Presence dot ────────────────────────────────────────── */\n.presence {\n position: absolute;\n right: 0;\n bottom: 0;\n width: 10px;\n height: 10px;\n border-radius: var(--sh-radius-full);\n border: 2px solid var(--sh-surface-card);\n}\n.root[data-size='xs'] .presence,\n.root[data-size='sm'] .presence {\n width: 8px;\n height: 8px;\n}\n.root[data-size='xl'] .presence {\n width: 14px;\n height: 14px;\n}\n.presence[data-presence='online'] {\n background: var(--sh-success-solid);\n}\n.presence[data-presence='offline'] {\n background: var(--sh-text-tertiary);\n}\n.presence[data-presence='away'] {\n background: var(--sh-warning-solid);\n}\n.presence[data-presence='busy'] {\n background: var(--sh-danger-solid);\n}\n\n/* ── Group ───────────────────────────────────────────────── */\n.group {\n display: inline-flex;\n align-items: center;\n}\n.group > * {\n border: 2px solid var(--sh-surface-card);\n}\n.group > *:not(:first-child) {\n margin-left: -8px;\n}\n.overflow {\n background: var(--sh-neutral-bg-subtle);\n color: var(--sh-neutral-text-on-subtle);\n font-size: 11px;\n}\n","/*\n * Badge — calm status marker. Each intent binds a set of local custom properties from the semantic\n * token layer; the variants (soft/outline/count/dot) consume those, so intent and theme both flow\n * from tokens with no per-intent variant rules.\n */\n\n.root {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n flex-shrink: 0;\n height: 20px;\n padding: 0 8px;\n border: var(--sh-border-width) solid transparent;\n border-radius: var(--sh-radius-full);\n font-size: var(--sh-text-caption);\n font-weight: 500;\n line-height: 1;\n white-space: nowrap;\n}\n.root[data-size='sm'] {\n height: 16px;\n padding: 0 6px;\n}\n\n/* ── Intent → local tokens ───────────────────────────────── */\n.root[data-intent='neutral'] {\n --badge-subtle: var(--sh-neutral-bg-subtle);\n --badge-text: var(--sh-neutral-text-on-subtle);\n --badge-border: var(--sh-neutral-border);\n --badge-solid: var(--sh-neutral-solid);\n --badge-on-solid: var(--sh-neutral-on-solid);\n}\n.root[data-intent='info'] {\n --badge-subtle: var(--sh-info-bg-subtle);\n --badge-text: var(--sh-info-text-on-subtle);\n --badge-border: var(--sh-info-border);\n --badge-solid: var(--sh-info-solid);\n --badge-on-solid: var(--sh-info-on-solid);\n}\n.root[data-intent='success'] {\n --badge-subtle: var(--sh-success-bg-subtle);\n --badge-text: var(--sh-success-text-on-subtle);\n --badge-border: var(--sh-success-border);\n --badge-solid: var(--sh-success-solid);\n --badge-on-solid: var(--sh-success-on-solid);\n}\n.root[data-intent='warning'] {\n --badge-subtle: var(--sh-warning-bg-subtle);\n --badge-text: var(--sh-warning-text-on-subtle);\n --badge-border: var(--sh-warning-border);\n --badge-solid: var(--sh-warning-solid);\n --badge-on-solid: var(--sh-warning-on-solid);\n}\n.root[data-intent='danger'] {\n --badge-subtle: var(--sh-danger-bg-subtle);\n --badge-text: var(--sh-danger-text-on-subtle);\n --badge-border: var(--sh-danger-border);\n --badge-solid: var(--sh-danger-solid);\n --badge-on-solid: var(--sh-danger-on-solid);\n}\n\n/* ── Variants ────────────────────────────────────────────── */\n.root[data-variant='soft'] {\n background: var(--badge-subtle);\n color: var(--badge-text);\n}\n.root[data-variant='outline'] {\n border-color: var(--badge-border);\n color: var(--badge-text);\n}\n.root[data-variant='count'] {\n min-width: 20px;\n padding: 0 6px;\n background: var(--badge-solid);\n color: var(--badge-on-solid);\n font-size: 11px; /* count-only step below caption */\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n}\n.root[data-variant='count'][data-size='sm'] {\n min-width: 16px;\n}\n/* Passive counts read as a quiet neutral chip, not the dark neutral-solid. */\n.root[data-variant='count'][data-intent='neutral'] {\n background: var(--sh-bg-pressed);\n color: var(--sh-neutral-text-on-subtle);\n}\n.root[data-variant='dot'] {\n height: auto;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-secondary);\n}\n\n/* ── Leading dot ─────────────────────────────────────────── */\n.dot {\n width: 6px;\n height: 6px;\n flex-shrink: 0;\n border-radius: var(--sh-radius-full);\n background: var(--badge-solid);\n}\n","/*\n * Icon Button — a square, icon-only Button. Ghost-first; shares Button's tokens.\n */\n\n.root {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border: var(--sh-border-width) solid transparent;\n color: var(--sh-text-secondary);\n cursor: pointer;\n transition:\n background-color var(--sh-duration-fast) var(--sh-ease-standard),\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n\n.root:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: var(--sh-focus-ring-offset);\n}\n\n.root:disabled,\n.root[aria-disabled='true'] {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n.root[data-loading='true'] {\n cursor: wait;\n}\n\n/* ── Sizes (square footprints) ────────────────────────────── */\n.root[data-size='sm'] {\n width: var(--sh-control-height-sm);\n height: var(--sh-control-height-sm);\n border-radius: var(--sh-radius-sm);\n}\n\n.root[data-size='md'] {\n width: var(--sh-control-height-md);\n height: var(--sh-control-height-md);\n border-radius: var(--sh-radius-md);\n}\n\n.root[data-size='lg'] {\n width: var(--sh-control-height-lg);\n height: var(--sh-control-height-lg);\n border-radius: var(--sh-radius-md);\n}\n\n/* ── Variants ─────────────────────────────────────────────── */\n.root[data-variant='ghost'] {\n background-color: transparent;\n}\n.root[data-variant='ghost']:not(:disabled):hover {\n background-color: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.root[data-variant='ghost']:not(:disabled):active {\n background-color: var(--sh-bg-pressed);\n}\n\n.root[data-variant='secondary'] {\n background-color: var(--sh-surface-card);\n border-color: var(--sh-border-default);\n}\n.root[data-variant='secondary']:not(:disabled):hover {\n background-color: var(--sh-surface-well);\n border-color: var(--sh-border-strong);\n color: var(--sh-text-primary);\n}\n.root[data-variant='secondary']:not(:disabled):active {\n background-color: var(--sh-bg-pressed);\n}\n\n.root[data-variant='primary'] {\n background-color: var(--sh-accent);\n color: var(--sh-on-accent);\n}\n.root[data-variant='primary']:not(:disabled):hover {\n background-color: var(--sh-accent-hover);\n}\n.root[data-variant='primary']:not(:disabled):active {\n background-color: var(--sh-accent-active);\n}\n\n/* Danger is a ghost that only reveals a red surface on hover. */\n.root[data-variant='danger'] {\n background-color: transparent;\n}\n.root[data-variant='danger']:not(:disabled):hover {\n background-color: var(--sh-danger-bg-subtle);\n color: var(--sh-danger-text-on-subtle);\n}\n.root[data-variant='danger']:not(:disabled):active {\n background-color: color-mix(in srgb, var(--sh-danger-solid) 18%, transparent);\n color: var(--sh-danger-text-on-subtle);\n}\n\n/* ── Selected (toggle) — overrides the variant fill ───────── */\n.root[data-pressed='true'] {\n background-color: var(--sh-accent-soft);\n border-color: transparent;\n color: var(--sh-accent);\n}\n.root[data-pressed='true']:not(:disabled):hover {\n background-color: color-mix(in srgb, var(--sh-accent) 20%, transparent);\n}\n\n/* ── Icon & spinner ───────────────────────────────────────── */\n.icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.icon svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n.root[data-size='lg'] .icon svg {\n width: 20px;\n height: 20px;\n}\n\n.spinner {\n width: 14px;\n height: 14px;\n border: 2px solid color-mix(in srgb, currentColor 35%, transparent);\n border-top-color: currentColor;\n border-radius: var(--sh-radius-full);\n animation: spin 800ms linear infinite;\n}\n\n.root[data-size='lg'] .spinner {\n width: 16px;\n height: 16px;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n","/*\n * Spinner — a border-ring trick: a 2px track in border-default with the top edge in accent, rotated\n * at the tokenized spin speed. Reduced motion freezes it to a static ring.\n */\n\n.root {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--sh-accent);\n}\n\n.ring {\n border-radius: var(--sh-radius-full);\n border: 2px solid var(--sh-border-default);\n border-top-color: currentColor;\n animation: sh-spinner-spin 800ms linear infinite;\n}\n.root[data-size='sm'] .ring {\n width: 14px;\n height: 14px;\n}\n.root[data-size='md'] .ring {\n width: 20px;\n height: 20px;\n}\n.root[data-size='lg'] .ring {\n width: 24px;\n height: 24px;\n}\n\n.srOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n}\n\n@keyframes sh-spinner-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ring {\n animation: none;\n }\n}\n","/* Height-expanding slot — pushes shell content down instead of covering it */\n.outlet {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.outlet[data-open] {\n grid-template-rows: 1fr;\n}\n.outletInner {\n overflow: hidden;\n}\n\n.strip {\n display: flex;\n align-items: center;\n gap: 10px;\n min-height: 40px;\n padding: 8px 16px;\n font-size: var(--sh-text-body-sm);\n line-height: var(--sh-text-body-sm--line-height);\n}\n.strip[data-intent='info'] {\n background: var(--sh-info-bg-subtle);\n color: var(--sh-info-text-on-subtle);\n}\n.strip[data-intent='success'] {\n background: var(--sh-success-bg-subtle);\n color: var(--sh-success-text-on-subtle);\n}\n.strip[data-intent='warning'] {\n background: var(--sh-warning-bg-subtle);\n color: var(--sh-warning-text-on-subtle);\n}\n.strip[data-intent='danger'] {\n background: var(--sh-danger-bg-subtle);\n color: var(--sh-danger-text-on-subtle);\n}\n\n.icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.message {\n flex: 1;\n min-width: 0;\n}\n\n.lead {\n font-weight: 600;\n}\n\n.action {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n padding: 0;\n border: none;\n background: none;\n font: inherit;\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n text-underline-offset: 2px;\n cursor: pointer;\n}\n.action:hover {\n text-decoration: none;\n}\n.action:focus-visible {\n outline: var(--sh-focus-ring-width) solid currentColor;\n outline-offset: 2px;\n border-radius: var(--sh-radius-sm);\n}\n.action[data-loading] {\n text-decoration: none;\n}\n\n.dismiss {\n flex-shrink: 0;\n margin: -4px -8px -4px 0;\n color: inherit;\n}\n\n.srOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* Below sm the message wraps and the action drops beneath it, left-aligned (breakpoint token 640) */\n@media (max-width: 640px) {\n .strip {\n flex-wrap: wrap;\n }\n .action {\n order: 3;\n flex-basis: 100%;\n margin-left: 26px;\n }\n .dismiss {\n order: 2;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .outlet {\n transition: none;\n }\n}\n",".scrim {\n position: fixed;\n inset: 0;\n z-index: var(--sh-z-scrim);\n background: var(--sh-scrim);\n animation: sh-sheet-scrim-in var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.scrim[data-state='closed'] {\n animation: sh-sheet-scrim-out var(--sh-duration-normal-exit) var(--sh-ease-standard);\n}\n\n.surface {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: var(--sh-z-modal);\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 24px - env(safe-area-inset-top));\n border-top-left-radius: var(--sh-radius-2xl);\n border-top-right-radius: var(--sh-radius-2xl);\n background: var(--sh-surface-raised);\n box-shadow: 0 -12px 24px -6px rgb(9 9 11 / 0.12), 0 -4px 8px -4px rgb(9 9 11 / 0.08);\n transform: translateY(var(--sheet-offset, 0));\n transition: transform var(--sh-duration-fast) var(--sh-ease-standard);\n outline: none;\n}\n.surface[data-dragging] {\n transition: none;\n}\n\n/* Snap heights */\n.surface[data-snap='content'] {\n max-height: 60vh;\n}\n.surface[data-snap='half'] {\n height: 50vh;\n}\n.surface[data-snap='full'] {\n height: calc(100vh - 24px - env(safe-area-inset-top));\n}\n\n/* Centered narrow column on larger screens (direct desktop use; breakpoint token 768) */\n@media (min-width: 768px) {\n .surface {\n left: 50%;\n right: auto;\n width: 480px;\n transform: translateX(-50%) translateY(var(--sheet-offset, 0));\n }\n}\n\n/* Enter/exit travel */\n.surface[data-state='open'] {\n animation: sh-sheet-in var(--sh-duration-normal) var(--sh-ease-emphasized);\n}\n.surface[data-state='closed'] {\n animation: sh-sheet-out var(--sh-duration-normal-exit) var(--sh-ease-standard);\n}\n\n.handle {\n flex-shrink: 0;\n touch-action: none;\n}\n\n.grabber {\n position: relative;\n display: block;\n width: 36px;\n height: 4px;\n margin: 8px auto 4px;\n padding: 0;\n border: none;\n border-radius: var(--sh-radius-full);\n background: var(--sh-border-strong);\n cursor: grab;\n}\n/* 44px hit area without visual bulk */\n.grabber::before {\n content: '';\n position: absolute;\n left: 50%;\n top: 50%;\n width: 44px;\n height: 44px;\n transform: translate(-50%, -50%);\n}\n.grabber:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 6px;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 8px 16px 12px;\n}\n\n.title {\n font-size: var(--sh-text-body);\n font-weight: 600;\n color: var(--sh-text-primary);\n}\n\n.headerAction {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.content {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 0 16px 16px;\n}\n\n.footer {\n flex-shrink: 0;\n padding: 12px 16px calc(12px + env(safe-area-inset-bottom));\n border-top: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n\n.srOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n}\n\n@keyframes sh-sheet-in {\n from {\n transform: translateY(100%);\n }\n}\n@keyframes sh-sheet-out {\n to {\n transform: translateY(100%);\n }\n}\n@keyframes sh-sheet-scrim-in {\n from {\n opacity: 0;\n }\n}\n@keyframes sh-sheet-scrim-out {\n to {\n opacity: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .surface[data-state='open'],\n .surface[data-state='closed'] {\n animation-name: sh-sheet-fade;\n }\n}\n@keyframes sh-sheet-fade {\n from {\n opacity: 0;\n }\n}\n","/*\n * Popover — the shared overlay surface (raised fill, default border, e2 shadow in light / none in\n * dark), radius-lg, hug width clamped 240–360. Enters with a fade + 4px rise from the trigger side\n * using Radix's data-state/data-side hooks; opacity + transform only, never `all`.\n */\n\n.content {\n z-index: var(--sh-z-dropdown);\n min-width: 240px;\n max-width: 360px;\n padding: 16px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n box-shadow: var(--sh-shadow-e2);\n color: var(--sh-text-primary);\n transform-origin: var(--radix-popover-content-transform-origin);\n}\n.content[data-state='open'] {\n animation: sh-popover-in var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.content[data-state='closed'] {\n animation: sh-popover-out var(--sh-duration-normal-exit) var(--sh-ease-standard);\n}\n\n/* ── Header ──────────────────────────────────────────────── */\n.header {\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin-bottom: 12px;\n}\n.title {\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n color: var(--sh-text-primary);\n}\n.description {\n font-size: var(--sh-text-caption);\n line-height: 18px;\n color: var(--sh-text-tertiary);\n}\n\n@keyframes sh-popover-in {\n from {\n opacity: 0;\n transform: translateY(4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n@keyframes sh-popover-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n","/*\n * Breadcrumbs — header chrome, one size (24px pills, body-small). Links are ghost pills (text-secondary\n * → hover bg-hover + text-primary); the current page is plain weight-500 text. Separators are\n * border-strong-toned chevrons. All existing tokens.\n */\n\n.list {\n display: flex;\n align-items: center;\n gap: 4px;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.crumb {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.link,\n.overflow,\n.current {\n display: inline-flex;\n align-items: center;\n height: 24px;\n padding: 0 6px;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n border-radius: var(--sh-radius-sm);\n font-size: var(--sh-text-body-sm);\n}\n\n.link,\n.overflow {\n border: none;\n background: transparent;\n color: var(--sh-text-secondary);\n text-decoration: none;\n cursor: pointer;\n transition:\n background-color var(--sh-duration-fast) var(--sh-ease-standard),\n color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.link:hover,\n.overflow:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.link:focus-visible,\n.overflow:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n\n.current {\n font-weight: 500;\n color: var(--sh-text-primary);\n}\n\n.separator {\n display: block;\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n color: var(--sh-border-strong);\n}\n\n/* ── Overflow menu (inside a Popover surface; padding/min-width set inline to beat .content) ── */\n.overflowMenu {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.overflowItem {\n display: flex;\n align-items: center;\n height: 32px;\n padding: 0 8px;\n border-radius: var(--sh-radius-sm);\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-primary);\n text-decoration: none;\n}\n.overflowItem:hover {\n background: var(--sh-bg-hover);\n}\n","/*\n * Button — the reference implementation. Flat fills, no shadows, one accent.\n * All values are --sh-* tokens; theme and density flip via the token layer.\n */\n\n.root {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: var(--sh-border-width) solid transparent;\n font-family: inherit;\n font-weight: 500;\n line-height: 1;\n white-space: nowrap;\n text-decoration: none;\n user-select: none;\n cursor: pointer;\n transition:\n background-color var(--sh-duration-fast) var(--sh-ease-standard),\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n\n.root:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: var(--sh-focus-ring-offset);\n}\n\n.root:disabled,\n.root[aria-disabled='true'] {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n.root[data-loading='true'] {\n cursor: wait;\n}\n\n.root[data-full-width='true'] {\n width: 100%;\n}\n\n/* ── Sizes ────────────────────────────────────────────────── */\n.root[data-size='sm'] {\n height: var(--sh-control-height-sm);\n padding: 0 10px;\n border-radius: var(--sh-radius-sm);\n font-size: var(--sh-text-body-sm);\n}\n\n.root[data-size='md'] {\n height: var(--sh-control-height-md);\n padding: 0 12px;\n border-radius: var(--sh-radius-md);\n font-size: var(--sh-text-body-sm);\n}\n\n.root[data-size='lg'] {\n height: var(--sh-control-height-lg);\n padding: 0 16px;\n border-radius: var(--sh-radius-md);\n font-size: var(--sh-text-body);\n}\n\n/* ── Variants (after sizes so `text` padding overrides) ───── */\n.root[data-variant='primary'] {\n background-color: var(--sh-accent);\n color: var(--sh-on-accent);\n}\n.root[data-variant='primary']:not(:disabled):hover {\n background-color: var(--sh-accent-hover);\n}\n.root[data-variant='primary']:not(:disabled):active {\n background-color: var(--sh-accent-active);\n}\n\n.root[data-variant='secondary'] {\n background-color: var(--sh-surface-card);\n border-color: var(--sh-border-default);\n color: var(--sh-text-primary);\n}\n.root[data-variant='secondary']:not(:disabled):hover {\n background-color: var(--sh-surface-well);\n border-color: var(--sh-border-strong);\n}\n.root[data-variant='secondary']:not(:disabled):active {\n background-color: var(--sh-bg-pressed);\n}\n\n.root[data-variant='ghost'] {\n background-color: transparent;\n color: var(--sh-text-primary);\n}\n.root[data-variant='ghost']:not(:disabled):hover {\n background-color: var(--sh-bg-hover);\n}\n.root[data-variant='ghost']:not(:disabled):active {\n background-color: var(--sh-bg-pressed);\n}\n\n.root[data-variant='text'] {\n padding-left: 8px;\n padding-right: 8px;\n background-color: transparent;\n color: var(--sh-accent);\n}\n.root[data-variant='text']:not(:disabled):hover {\n color: var(--sh-accent-hover);\n text-decoration: underline;\n}\n.root[data-variant='text']:not(:disabled):active {\n color: var(--sh-accent-active);\n}\n\n.root[data-variant='danger'] {\n background-color: var(--sh-danger-solid);\n color: var(--sh-danger-on-solid);\n}\n.root[data-variant='danger']:not(:disabled):hover {\n background-color: var(--sh-danger-solid-hover);\n}\n.root[data-variant='danger']:not(:disabled):active {\n background-color: var(--sh-danger-solid-active);\n}\n\n/* ── Content & adornments ─────────────────────────────────── */\n.content {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.root[data-size='sm'] .content {\n gap: 6px;\n}\n\n.content[data-hidden='true'] {\n visibility: hidden;\n}\n\n.affix {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.affix svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n/*\n * Loading spinner. Inline by default (sits beside loadingText); with data-overlay it centers\n * over the button while the hidden content preserves the measured width.\n */\n.spinner {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n border: 2px solid color-mix(in srgb, currentColor 35%, transparent);\n border-top-color: currentColor;\n border-radius: var(--sh-radius-full);\n animation: spin 800ms linear infinite;\n}\n\n.spinner[data-overlay='true'] {\n position: absolute;\n top: 50%;\n left: 50%;\n margin: -7px 0 0 -7px;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.srOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n}\n","/*\n * Button Group — pure composition. No colors, heights, or type styles of its own; only the border\n * and radius arithmetic that fuses child Buttons into one control. Members bring their own tokens.\n */\n\n.root {\n display: inline-flex;\n}\n\n.root[data-orientation='vertical'] {\n flex-direction: column;\n}\n\n/* ── Spaced cluster (toolbars, related-but-separate actions) ─ */\n.root[data-attached='false'] {\n gap: 4px;\n}\n\n/*\n * Attached (fused) — horizontal. Every member after the first overlaps the shared border by 1px\n * and squares its leading corners; every member but the last squares its trailing corners. The net\n * divider between two members stays a single 1px line.\n */\n.root[data-attached='true'][data-orientation='horizontal'] > *:not(:first-child) {\n margin-left: calc(-1 * var(--sh-border-width));\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.root[data-attached='true'][data-orientation='horizontal'] > *:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n/* Attached — vertical. */\n.root[data-attached='true'][data-orientation='vertical'] > *:not(:first-child) {\n margin-top: calc(-1 * var(--sh-border-width));\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.root[data-attached='true'][data-orientation='vertical'] > *:not(:last-child) {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n/*\n * Raise the hovered/focused member so its full border — and the focus ring's four sides — paint\n * above the neighbours it overlaps.\n */\n.root[data-attached='true'] > *:hover,\n.root[data-attached='true'] > *:focus-visible {\n position: relative;\n z-index: 1;\n}\n\n/* Whole-group disable: dim once here; children are made inert by the component, not re-dimmed. */\n.root[data-disabled='true'] {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n","/*\n * Calendar — 36px day cells (30px visual target), fixed 6-week height so adjacent UI never shifts.\n * Day states map to tokens: selected accent + on-accent, in-range accent-soft band (square edges),\n * today accent inset, outside text-tertiary. Reuses the Date Picker day grammar.\n */\n\n.root {\n display: inline-block;\n}\n.months {\n display: flex;\n gap: 24px;\n}\n.months[data-count='1'] {\n display: block;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n}\n.monthLabel {\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n color: var(--sh-text-primary);\n}\n.nav {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-secondary);\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n}\n.nav:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.nav:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -2px;\n}\n.nav svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n.navSpacer {\n width: 28px;\n height: 28px;\n}\n\n.grid {\n border-collapse: collapse;\n table-layout: fixed;\n}\n.weekday {\n width: 36px;\n height: 32px;\n font-size: var(--sh-text-caption);\n font-weight: 500;\n color: var(--sh-text-tertiary);\n}\n.cell {\n width: 36px;\n height: 36px;\n padding: 0;\n text-align: center;\n}\n.cell[data-in-range] {\n background: var(--sh-accent-soft);\n}\n/* Endpoint cells paint the band on the side facing the range so the selected pill joins the strip with no gap. */\n.cell[data-range-edge='start'] {\n background: linear-gradient(to right, transparent 0 50%, var(--sh-accent-soft) 50% 100%);\n}\n.cell[data-range-edge='end'] {\n background: linear-gradient(to left, transparent 0 50%, var(--sh-accent-soft) 50% 100%);\n}\n\n.day {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n border: 1px solid transparent;\n background: transparent;\n border-radius: var(--sh-radius-md);\n font: inherit;\n font-size: 12px;\n color: var(--sh-text-primary);\n cursor: pointer;\n transition: background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.day:hover:not(:disabled):not([data-selected]) {\n background: var(--sh-bg-hover);\n}\n.day[data-outside] {\n color: var(--sh-text-tertiary);\n}\n.day[data-in-range] {\n border-radius: 0;\n}\n.day[data-today] {\n border-color: var(--sh-accent);\n}\n.day[data-selected] {\n background: var(--sh-accent);\n color: var(--sh-on-accent);\n border-color: var(--sh-accent);\n border-radius: var(--sh-radius-md);\n}\n.day:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 1px;\n}\n.day:disabled {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n@media (max-width: 768px) {\n .months {\n flex-direction: column;\n }\n}\n","/*\n * Card — bounded content surface. White fill, 1px default border, radius-lg, no resting shadow (e0).\n * The root clips (overflow hidden) so section hairlines meet the rounded corners cleanly. Sections\n * carry their own padding from the shared scale; the root is unpadded so hairlines run full-bleed.\n */\n\n.root {\n overflow: hidden;\n background: var(--sh-surface-card);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n color: var(--sh-text-primary);\n}\n\n/* ── Interactive (whole card is a link/button) ───────────── */\n.root[data-interactive] {\n cursor: pointer;\n text-decoration: none;\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.root[data-interactive]:hover {\n border-color: var(--sh-border-strong);\n box-shadow: var(--sh-shadow-e1);\n}\n.root[data-interactive]:active {\n box-shadow: none;\n}\n.root[data-interactive]:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: var(--sh-focus-ring-offset);\n}\n\n/* ── Selected (card radio / pickers) ─────────────────────── */\n.root[data-selected] {\n border-color: var(--sh-accent);\n}\n\n/* ── Header ──────────────────────────────────────────────── */\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n border-bottom: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n.title {\n font-size: var(--sh-text-body);\n font-weight: 600;\n color: var(--sh-text-primary);\n}\n.action {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* ── Body ────────────────────────────────────────────────── */\n.body {\n min-width: 0;\n}\n\n/* ── Footer ──────────────────────────────────────────────── */\n.footer {\n border-top: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n\n/* ── Padding scale (16 / 20 / 24) ────────────────────────── */\n.header[data-padding='sm'] {\n padding: 12px 16px;\n}\n.header[data-padding='md'] {\n padding: 16px 20px;\n}\n.header[data-padding='lg'] {\n padding: 16px 24px;\n}\n.body[data-padding='sm'] {\n padding: 16px;\n}\n.body[data-padding='md'] {\n padding: 20px;\n}\n.body[data-padding='lg'] {\n padding: 24px;\n}\n.footer[data-padding='sm'] {\n padding: 10px 16px;\n}\n.footer[data-padding='md'] {\n padding: 12px 20px;\n}\n.footer[data-padding='lg'] {\n padding: 12px 24px;\n}\n","/*\n * Checkbox — the system selection control. 16px box, 4px radius, accent fill; reused by Multi\n * Select, tables, and Tree. Uses the offset focus-ring (non-text control), not the field ring.\n */\n\n.root {\n display: inline-flex;\n align-items: flex-start;\n gap: 8px;\n}\n.root[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n.box {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n margin-top: 2px;\n padding: 0;\n border: var(--sh-border-width) solid var(--sh-border-strong);\n border-radius: var(--sh-radius-sm);\n background: var(--sh-surface-raised);\n color: var(--sh-on-accent);\n cursor: pointer;\n transition:\n background-color var(--sh-duration-fast) var(--sh-ease-standard),\n border-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.box:not(:disabled):hover {\n border-color: var(--sh-border-interactive);\n}\n.box:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: var(--sh-focus-ring-offset);\n}\n/* Invalid border applies to the unchecked box; the checked/indeterminate fill overrides it. */\n.box[data-invalid='true'] {\n border-color: var(--sh-danger-solid);\n}\n.box[data-state='checked'],\n.box[data-state='indeterminate'] {\n background: var(--sh-accent);\n border-color: var(--sh-accent);\n}\n.box:disabled {\n cursor: not-allowed;\n}\n\n.indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n.indicator svg {\n display: block;\n width: 11px;\n height: 11px;\n}\n\n.text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.label {\n font-size: var(--sh-text-body-sm);\n line-height: 20px;\n font-weight: 500;\n color: var(--sh-text-primary);\n cursor: pointer;\n}\n.description {\n font-size: var(--sh-text-caption);\n line-height: 18px;\n color: var(--sh-text-tertiary);\n}\n","/*\n * Color Picker — Input trigger surface with a committed-value swatch; a fixed 232px palette panel.\n * Selected swatch gets an accent outline + luminance-aware check. No new tokens.\n */\n\n.trigger {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n min-width: 132px;\n height: var(--sh-control-height-md);\n padding: 0 8px 0 6px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n border-radius: var(--sh-radius-md);\n font: inherit;\n font-family: var(--sh-font-mono);\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-primary);\n cursor: pointer;\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.trigger[data-size='sm'] {\n height: var(--sh-control-height-sm);\n}\n.trigger[data-size='lg'] {\n height: var(--sh-control-height-lg);\n}\n.trigger:not(:disabled):hover {\n border-color: var(--sh-border-interactive);\n}\n.trigger:focus-visible {\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n outline: none;\n}\n.trigger:disabled {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n.triggerSwatch {\n width: 20px;\n height: 20px;\n border-radius: var(--sh-radius-sm);\n box-shadow: inset 0 0 0 1px rgb(9 9 11 / 0.1);\n}\n.triggerHex {\n flex: 1;\n text-align: left;\n text-transform: uppercase;\n}\n.triggerChevron {\n display: inline-flex;\n flex-shrink: 0;\n color: var(--sh-text-tertiary);\n}\n.triggerChevron svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n/* ── Panel ───────────────────────────────────────────────── */\n.content {\n z-index: var(--sh-z-dropdown);\n width: 232px;\n padding: 12px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n box-shadow: var(--sh-shadow-e2);\n}\n\n.palette {\n display: grid;\n grid-template-columns: repeat(8, 1fr);\n gap: 6px;\n}\n.swatch {\n position: relative;\n aspect-ratio: 1;\n padding: 0;\n border: none;\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n box-shadow: inset 0 0 0 1px rgb(9 9 11 / 0.1);\n}\n.swatch[data-selected] {\n outline: 2px solid var(--sh-accent);\n outline-offset: 1px;\n}\n.swatch:focus-visible {\n outline: 2px solid var(--sh-accent);\n outline-offset: 1px;\n}\n.swatchCheck {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.swatchCheck svg {\n width: 12px;\n height: 12px;\n}\n\n/* ── Custom disclosure + spectrum ────────────────────────── */\n.customToggle {\n align-self: flex-start;\n padding: 0;\n border: none;\n background: transparent;\n font: inherit;\n font-size: var(--sh-text-body-sm);\n font-weight: 500;\n color: var(--sh-accent);\n cursor: pointer;\n}\n.customToggle:hover {\n color: var(--sh-accent-hover);\n}\n.customToggle:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 2px;\n border-radius: var(--sh-radius-sm);\n}\n\n.spectrum {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n.field2d {\n position: relative;\n width: 100%;\n height: 88px;\n border-radius: var(--sh-radius-md);\n background-image:\n linear-gradient(to top, #000, rgb(0 0 0 / 0)),\n linear-gradient(to right, #fff, rgb(255 255 255 / 0));\n box-shadow: inset 0 0 0 1px rgb(9 9 11 / 0.1);\n cursor: crosshair;\n touch-action: none;\n}\n.field2d:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 2px;\n}\n.field2dThumb {\n position: absolute;\n width: 14px;\n height: 14px;\n border-radius: var(--sh-radius-full);\n border: 2px solid #fff;\n box-shadow: 0 0 0 1px rgb(9 9 11 / 0.35);\n transform: translate(-50%, -50%);\n pointer-events: none;\n}\n\n.hue {\n position: relative;\n width: 100%;\n height: 10px;\n border-radius: var(--sh-radius-full);\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n cursor: pointer;\n touch-action: none;\n}\n.hue:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 2px;\n}\n.hueThumb {\n position: absolute;\n top: 50%;\n width: 14px;\n height: 14px;\n border-radius: var(--sh-radius-full);\n border: 2px solid #fff;\n box-shadow: 0 0 0 1px rgb(9 9 11 / 0.35);\n transform: translate(-50%, -50%);\n pointer-events: none;\n}\n\n.contrast {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--sh-text-caption);\n font-variant-numeric: tabular-nums;\n color: var(--sh-text-secondary);\n}\n.contrast[data-verdict='pass'] {\n color: var(--sh-success-text);\n}\n.contrast[data-verdict='fail'] {\n color: var(--sh-danger-text);\n}\n.contrast[data-verdict='large'] {\n color: var(--sh-warning-text);\n}\n.contrastDot {\n width: 12px;\n height: 12px;\n flex-shrink: 0;\n border-radius: var(--sh-radius-full);\n box-shadow: inset 0 0 0 1px rgb(9 9 11 / 0.15);\n}\n\n.hexRow {\n display: flex;\n align-items: center;\n gap: 8px;\n height: var(--sh-control-height-md);\n padding: 0 8px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n border-radius: var(--sh-radius-md);\n}\n.hexRow:focus-within {\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n}\n.hexRow:has([data-invalid]) {\n border-color: var(--sh-danger-solid);\n}\n.hexPreview {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n border-radius: var(--sh-radius-sm);\n box-shadow: inset 0 0 0 1px rgb(9 9 11 / 0.1);\n}\n.hexInput {\n flex: 1;\n min-width: 0;\n border: none;\n background: transparent;\n font-family: var(--sh-font-mono);\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-primary);\n text-transform: uppercase;\n outline: none;\n}\n\n.recent {\n display: flex;\n gap: 6px;\n}\n.recentSwatch {\n width: 20px;\n height: 20px;\n padding: 0;\n border: none;\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n box-shadow: inset 0 0 0 1px rgb(9 9 11 / 0.1);\n}\n.recentSwatch:focus-visible {\n outline: 2px solid var(--sh-accent);\n outline-offset: 1px;\n}\n","/*\n * Combobox — Input's field grammar for the control, Select's overlay for the listbox. No new tokens:\n * the field reads surface-raised/border-strong/focus-field; the listbox reads the shared overlay\n * surface; the selected check uses accent. Match highlighting (if added) is weight, never color.\n */\n\n.field {\n display: flex;\n align-items: center;\n width: 100%;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n color: var(--sh-text-primary);\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.field[data-size='sm'] {\n height: var(--sh-control-height-sm);\n border-radius: var(--sh-radius-sm);\n}\n.field[data-size='md'] {\n height: var(--sh-control-height-md);\n border-radius: var(--sh-radius-md);\n}\n.field[data-size='lg'] {\n height: var(--sh-control-height-lg);\n border-radius: var(--sh-radius-md);\n}\n.field:not([data-disabled]):not([data-readonly]):hover {\n border-color: var(--sh-border-interactive);\n}\n.field:focus-within {\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n}\n.field[data-invalid] {\n border-color: var(--sh-danger-solid);\n}\n.field[data-invalid]:focus-within {\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring-error);\n}\n.field[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n.field[data-readonly] {\n background: var(--sh-surface-well);\n border-color: transparent;\n}\n\n.prefix {\n display: inline-flex;\n align-items: center;\n padding-left: 12px;\n color: var(--sh-text-tertiary);\n}\n.prefix svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n.input {\n flex: 1;\n min-width: 0;\n height: 100%;\n padding: 0 12px;\n border: none;\n background: transparent;\n font: inherit;\n font-size: var(--sh-text-body-sm);\n color: inherit;\n outline: none;\n}\n.field[data-size='lg'] .input {\n font-size: var(--sh-text-body);\n}\n.input::placeholder {\n color: var(--sh-text-placeholder);\n}\n\n.clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n margin-right: 2px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-tertiary);\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n}\n.clear:hover {\n color: var(--sh-text-primary);\n background: var(--sh-bg-hover);\n}\n.clear:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n.clear svg {\n display: block;\n width: 14px;\n height: 14px;\n}\n\n.chevron {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n height: 100%;\n padding: 0 10px;\n border: none;\n background: transparent;\n color: var(--sh-text-tertiary);\n cursor: pointer;\n}\n.chevron:disabled {\n cursor: not-allowed;\n}\n.chevron svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n/* ── Listbox overlay ─────────────────────────────────────── */\n.content {\n z-index: var(--sh-z-dropdown);\n width: var(--radix-popover-trigger-width);\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n box-shadow: var(--sh-shadow-e2);\n transform-origin: var(--radix-popover-content-transform-origin);\n}\n.content[data-state='open'] {\n animation: sh-combobox-in var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.content[data-state='closed'] {\n animation: sh-combobox-out var(--sh-duration-normal-exit) var(--sh-ease-standard);\n}\n\n.list {\n max-height: 256px;\n overflow-y: auto;\n padding: 4px;\n}\n\n.option {\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: var(--sh-control-height-md);\n padding: 0 8px;\n border-radius: var(--sh-radius-sm);\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-primary);\n cursor: pointer;\n}\n.option[data-rich] {\n min-height: 36px;\n padding: 6px 8px;\n}\n.option[data-active] {\n background: var(--sh-bg-hover);\n}\n.option[data-disabled] {\n color: var(--sh-text-placeholder);\n cursor: not-allowed;\n}\n\n.media {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n}\n.optionText {\n display: flex;\n flex-direction: column;\n min-width: 0;\n flex: 1;\n}\n.optionLabel {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.optionDescription {\n font-size: var(--sh-text-caption);\n color: var(--sh-text-tertiary);\n}\n.check {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n width: 16px;\n color: var(--sh-accent);\n}\n.check svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n.create {\n color: var(--sh-accent);\n font-weight: 500;\n}\n\n.empty {\n padding: 10px 8px;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-tertiary);\n}\n.emptyQuery {\n color: var(--sh-text-secondary);\n font-weight: 500;\n}\n\n.skeletonRow {\n display: flex;\n align-items: center;\n min-height: var(--sh-control-height-md);\n padding: 0 8px;\n}\n.skeleton {\n display: block;\n width: 60%;\n height: 10px;\n border-radius: var(--sh-radius-sm);\n background: var(--sh-bg-hover);\n animation: sh-combobox-skeleton var(--sh-duration-slow) var(--sh-ease-standard) infinite alternate;\n}\n\n.srOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n}\n\n@keyframes sh-combobox-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n@keyframes sh-combobox-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes sh-combobox-skeleton {\n from {\n opacity: 0.5;\n }\n to {\n opacity: 1;\n }\n}\n","/*\n * Kbd — one keycap size (20px, mono 11) in both densities. Boxed reads surface-well + border-default\n * + text-secondary; bare drops the box to text-placeholder on the host surface. Caps sit 4px apart\n * with no \"+\" separator. No states, no motion.\n */\n\n.root {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-family: var(--sh-font-mono);\n font-size: 11px;\n line-height: 1;\n}\n\n.cap {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 20px;\n min-width: 20px;\n padding: 0 6px;\n background: var(--sh-surface-well);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-sm);\n color: var(--sh-text-secondary);\n}\n\n.root[data-bare] .cap {\n height: auto;\n min-width: 0;\n padding: 0;\n background: transparent;\n border: none;\n color: var(--sh-text-placeholder);\n}\n","/*\n * Command Palette — a top-anchored modal accelerator. Panel reads layer-modal at the dedicated\n * command-palette z-index; dividers border-subtle, highlight bg-hover, icon tiles surface-well, hints\n * text-placeholder. Opens faster than other modals (motion-fast). No local values.\n */\n\n.scrim {\n position: fixed;\n inset: 0;\n z-index: var(--sh-z-scrim);\n background: var(--sh-scrim);\n animation: sh-cmdk-fade var(--sh-duration-fast) var(--sh-ease-standard);\n}\n\n.positioner {\n position: fixed;\n inset: 0;\n z-index: var(--sh-z-command-palette);\n display: flex;\n justify-content: center;\n align-items: flex-start;\n padding: 15vh 16px 16px;\n overflow-y: auto;\n}\n\n.panel {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 480px;\n max-height: 70vh;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-xl);\n box-shadow: var(--sh-shadow-e3);\n overflow: hidden;\n animation: sh-cmdk-in var(--sh-duration-fast) var(--sh-ease-standard);\n}\n\n/* ── Search row ──────────────────────────────────────────── */\n.searchRow {\n display: flex;\n align-items: center;\n gap: 10px;\n height: 48px;\n padding: 0 16px;\n border-bottom: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n.searchIcon {\n display: inline-flex;\n color: var(--sh-text-tertiary);\n}\n.searchIcon svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n.input {\n flex: 1;\n min-width: 0;\n height: 100%;\n border: none;\n background: transparent;\n font: inherit;\n font-size: var(--sh-text-body);\n color: var(--sh-text-primary);\n outline: none;\n}\n.input::placeholder {\n color: var(--sh-text-placeholder);\n}\n\n/* ── Result list ─────────────────────────────────────────── */\n.list {\n flex: 1;\n min-height: 0;\n max-height: 320px;\n overflow-y: auto;\n padding: 8px;\n}\n.group + .group {\n margin-top: 4px;\n}\n.groupLabel {\n padding: 6px 8px 4px;\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--sh-text-tertiary);\n}\n.row {\n display: flex;\n align-items: center;\n gap: 10px;\n height: 40px;\n padding: 0 8px;\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n}\n.row[data-active] {\n background: var(--sh-bg-hover);\n}\n.iconTile {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n border-radius: var(--sh-radius-sm);\n background: var(--sh-surface-well);\n color: var(--sh-text-secondary);\n}\n.iconTile svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n.rowText {\n display: flex;\n flex-direction: column;\n min-width: 0;\n flex: 1;\n}\n.rowLabel {\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.rowMeta {\n font-size: var(--sh-text-caption);\n color: var(--sh-text-tertiary);\n}\n\n.empty {\n padding: 24px 8px;\n text-align: center;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-tertiary);\n}\n.emptyQuery {\n color: var(--sh-text-secondary);\n font-weight: 500;\n}\n\n/* ── Hint bar ────────────────────────────────────────────── */\n.hintBar {\n display: flex;\n align-items: center;\n gap: 16px;\n height: 36px;\n padding: 0 16px;\n border-top: var(--sh-border-width) solid var(--sh-border-subtle);\n background: var(--sh-surface-well);\n}\n.hint {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: var(--sh-text-caption);\n color: var(--sh-text-placeholder);\n}\n\n.srOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n}\n\n@keyframes sh-cmdk-fade {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes sh-cmdk-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .panel {\n animation: sh-cmdk-fade var(--sh-duration-fast) var(--sh-ease-standard);\n }\n}\n","/*\n * Dropdown Menu — reuses Select's overlay surface with action semantics. Tokens only.\n */\n\n.content {\n z-index: var(--sh-z-dropdown);\n min-width: 180px;\n max-width: 320px;\n padding: 4px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n box-shadow: var(--sh-shadow-e2);\n transform-origin: var(--radix-dropdown-menu-content-transform-origin);\n}\n.content[data-state='open'] {\n animation: sh-menu-in var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.content[data-state='closed'] {\n animation: sh-menu-out var(--sh-duration-fast-exit) var(--sh-ease-standard);\n}\n\n/* ── Items ───────────────────────────────────────────────── */\n.item {\n display: flex;\n align-items: center;\n gap: 10px;\n height: var(--sh-control-height-md);\n padding: 0 10px;\n border-radius: var(--sh-radius-sm);\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-secondary);\n cursor: pointer;\n user-select: none;\n outline: none;\n}\n.item[data-highlighted] {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.item[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n pointer-events: none;\n}\n.item[data-destructive] {\n color: var(--sh-danger-text);\n}\n.item[data-destructive][data-highlighted] {\n background: var(--sh-danger-bg-subtle);\n color: var(--sh-danger-text);\n}\n.item[data-state='open'] {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n\n.itemIcon {\n display: inline-flex;\n flex-shrink: 0;\n color: var(--sh-text-tertiary);\n}\n.itemIcon svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n.itemLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.shortcut {\n flex-shrink: 0;\n font-family: var(--sh-font-mono);\n font-size: var(--sh-text-caption);\n color: var(--sh-text-tertiary);\n}\n\n/* Checkbox/radio indicator occupies the icon column. */\n.indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: var(--sh-accent);\n}\n.indicator svg {\n display: block;\n width: 14px;\n height: 14px;\n}\n\n.subChevron {\n display: inline-flex;\n flex-shrink: 0;\n color: var(--sh-text-tertiary);\n}\n.subChevron svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n/* ── Label & separator ───────────────────────────────────── */\n.label {\n padding: 6px 10px 4px;\n font-size: var(--sh-text-caption);\n font-weight: 600;\n letter-spacing: 0.05em;\n color: var(--sh-text-tertiary);\n}\n\n.separator {\n height: 1px;\n margin: 4px 0;\n background: var(--sh-border-subtle);\n}\n\n@keyframes sh-menu-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes sh-menu-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n","/*\n * Data Grid — inherits Table's tokens. Rows are CSS grids sharing a column template so resize just\n * updates the template. Focused cell gets an accent inset outline (the editing cursor); the inline\n * editor uses the focus-field grammar.\n */\n\n.wrapper {\n overflow: hidden;\n background: var(--sh-surface-card);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n}\n.caption {\n padding: 12px 16px;\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n color: var(--sh-text-secondary);\n}\n\n.scroll {\n overflow: auto;\n max-height: 480px;\n}\n.grid {\n width: 100%;\n border-collapse: collapse;\n table-layout: fixed;\n}\n\n.headerCell {\n position: sticky;\n top: 0;\n z-index: var(--sh-z-sticky);\n height: 40px;\n padding: 0 16px;\n background: var(--sh-surface-app);\n border-bottom: var(--sh-border-width) solid var(--sh-border-default);\n text-align: left;\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--sh-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n}\n.headerCell[data-align='end'] {\n text-align: right;\n}\n.headerCell[data-align='center'] {\n text-align: center;\n}\n.headerButton {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 0;\n border: none;\n background: transparent;\n font: inherit;\n letter-spacing: inherit;\n text-transform: inherit;\n color: inherit;\n cursor: pointer;\n}\n.headerButton:hover {\n color: var(--sh-text-primary);\n}\n.headerButton:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 2px;\n}\n.sortMark {\n color: var(--sh-accent);\n font-size: 9px;\n}\n.sortMark sup {\n font-size: 8px;\n}\n\n.resizeHandle {\n position: absolute;\n top: 0;\n right: 0;\n width: 8px;\n height: 100%;\n cursor: col-resize;\n touch-action: none;\n}\n.resizeHandle:hover {\n background: linear-gradient(to right, transparent, var(--sh-accent));\n}\n\n.row:not(:last-child) .cell {\n border-bottom: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n.cell {\n height: var(--sh-row-height);\n padding: 0 16px;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n outline: none;\n}\n.row[data-density='compact'] .cell {\n height: 32px;\n}\n.cell[data-align='end'] {\n text-align: right;\n font-variant-numeric: tabular-nums;\n}\n.cell[data-align='center'] {\n text-align: center;\n}\n.cell[data-editable] {\n cursor: text;\n}\n.cell:focus-visible {\n outline: 2px solid var(--sh-accent);\n outline-offset: -2px;\n}\n\n.editor {\n width: 100%;\n height: 24px;\n padding: 0 6px;\n border: var(--sh-border-width) solid var(--sh-border-focus);\n border-radius: var(--sh-radius-sm);\n background: var(--sh-surface-raised);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n font: inherit;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-primary);\n outline: none;\n}\n","/*\n * Input — the field-surface reference. The wrapper carries the border, fill, and focus-within ring;\n * the inner input is transparent so adornments sit inside the clickable field. All values are tokens.\n */\n\n.root {\n display: flex;\n align-items: stretch;\n width: 100%;\n overflow: hidden;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n color: var(--sh-text-primary);\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n\n/* ── Sizes (height / radius / type — shared with Button) ──── */\n.root[data-size='sm'] {\n height: var(--sh-control-height-sm);\n border-radius: var(--sh-radius-sm);\n font-size: var(--sh-text-body-sm);\n}\n.root[data-size='md'] {\n height: var(--sh-control-height-md);\n border-radius: var(--sh-radius-md);\n font-size: var(--sh-text-body-sm);\n}\n.root[data-size='lg'] {\n height: var(--sh-control-height-lg);\n border-radius: var(--sh-radius-md);\n font-size: var(--sh-text-body);\n}\n\n/* ── Interaction states ──────────────────────────────────── */\n.root:not([data-disabled='true']):not([data-readonly='true']):hover {\n border-color: var(--sh-border-interactive);\n}\n\n.root:focus-within {\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n}\n\n.root[data-invalid='true'] {\n border-color: var(--sh-danger-solid);\n}\n.root[data-invalid='true']:focus-within {\n border-color: var(--sh-danger-solid);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring-error);\n}\n\n.root[data-readonly='true'] {\n background: var(--sh-surface-well);\n border-color: transparent;\n}\n\n.root[data-disabled='true'] {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n/* ── The field itself ────────────────────────────────────── */\n.field {\n flex: 1;\n min-width: 0;\n height: 100%;\n padding: 0 12px;\n border: none;\n background: transparent;\n font: inherit;\n font-size: inherit;\n color: inherit;\n outline: none;\n}\n.root[data-size='sm'] .field {\n padding: 0 10px;\n}\n.field::placeholder {\n color: var(--sh-text-placeholder);\n}\n.field:disabled {\n cursor: not-allowed;\n}\n\n/* A leading/trailing icon adornment owns the edge padding; the field keeps only a small gap. */\n.root[data-lead='icon'] .field {\n padding-left: 8px;\n}\n.root[data-trail='icon'] .field {\n padding-right: 8px;\n}\n\n/* ── Icon adornments (decorative, inside the field) ──────── */\n.adornment {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--sh-text-tertiary);\n}\n.adornment[data-side='before'] {\n padding-left: 12px;\n}\n.adornment[data-side='after'] {\n padding-right: 12px;\n}\n.root[data-size='sm'] .adornment[data-side='before'] {\n padding-left: 10px;\n}\n.root[data-size='sm'] .adornment[data-side='after'] {\n padding-right: 10px;\n}\n.adornment svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n/* ── String addons (fused segments with a shared divider) ── */\n.addon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n padding: 0 10px;\n background: var(--sh-surface-well);\n color: var(--sh-text-secondary);\n white-space: nowrap;\n}\n.addon[data-side='before'] {\n border-right: var(--sh-border-width) solid var(--sh-border-strong);\n}\n.addon[data-side='after'] {\n border-left: var(--sh-border-width) solid var(--sh-border-strong);\n}\n\n/* ── Clear button (revealed on hover/focus) ──────────────── */\n.clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n align-self: center;\n width: 20px;\n height: 20px;\n margin-right: 6px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-tertiary);\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n opacity: 0;\n transition:\n opacity var(--sh-duration-fast) var(--sh-ease-standard),\n color var(--sh-duration-fast) var(--sh-ease-standard),\n background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.root:hover .clear,\n.root:focus-within .clear {\n opacity: 1;\n}\n.clear:hover {\n color: var(--sh-text-primary);\n background: var(--sh-bg-hover);\n}\n.clear:focus-visible {\n opacity: 1;\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n.clear svg {\n display: block;\n width: 14px;\n height: 14px;\n}\n\n/* ── Password reveal toggle (always visible while the field is a password) ── */\n.reveal {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n align-self: center;\n width: 24px;\n height: 24px;\n margin-right: 6px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-tertiary);\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n transition:\n color var(--sh-duration-fast) var(--sh-ease-standard),\n background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.reveal:hover {\n color: var(--sh-text-secondary);\n background: var(--sh-bg-hover);\n}\n.reveal:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n.reveal svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n","/*\n * Date Picker — field per Input, calendar per the overlay surface. Day states map to existing tokens:\n * hover bg-hover, selected accent + on-accent, today accent border, outside-month text-placeholder,\n * disabled dimmed. No local values in either theme.\n */\n\n.fieldWrap {\n width: 100%;\n}\n\n.trigger {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-tertiary);\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n}\n.trigger:hover:not(:disabled) {\n color: var(--sh-text-primary);\n}\n.trigger:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n.trigger svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n/* ── Calendar surface ────────────────────────────────────── */\n.content {\n z-index: var(--sh-z-dropdown);\n width: 260px;\n padding: 12px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n box-shadow: var(--sh-shadow-e2);\n transform-origin: var(--radix-popover-content-transform-origin);\n}\n.content[data-state='open'] {\n animation: sh-datepicker-in var(--sh-duration-normal) var(--sh-ease-standard);\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n}\n.monthLabel {\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n color: var(--sh-text-primary);\n}\n.navButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-secondary);\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n}\n.navButton:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.navButton:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -2px;\n}\n.navButton svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n.grid {\n width: 100%;\n border-collapse: collapse;\n table-layout: fixed;\n}\n.weekday {\n height: 28px;\n font-size: var(--sh-text-caption);\n font-weight: 500;\n color: var(--sh-text-tertiary);\n}\n.cell {\n padding: 0;\n text-align: center;\n}\n\n.day {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 28px;\n border: 1px solid transparent;\n background: transparent;\n border-radius: var(--sh-radius-sm);\n font: inherit;\n font-size: 12px;\n color: var(--sh-text-primary);\n cursor: pointer;\n transition: background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.day:hover:not(:disabled):not([data-selected]) {\n background: var(--sh-bg-hover);\n}\n.day[data-outside] {\n color: var(--sh-text-placeholder);\n}\n.day[data-today] {\n border-color: var(--sh-accent);\n}\n.day[data-selected] {\n background: var(--sh-accent);\n color: var(--sh-on-accent);\n border-color: var(--sh-accent);\n}\n.day:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n.day:disabled {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n.footer {\n display: flex;\n justify-content: flex-start;\n margin-top: 8px;\n padding-top: 8px;\n border-top: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n.today {\n height: 28px;\n padding: 0 8px;\n border: none;\n background: transparent;\n color: var(--sh-accent);\n font: inherit;\n font-size: var(--sh-text-body-sm);\n font-weight: 500;\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n}\n.today:hover:not(:disabled) {\n background: var(--sh-accent-soft);\n}\n.today:disabled {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n@keyframes sh-datepicker-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n","/*\n * Date Range Picker — Input field surface for the trigger; the popover holds a preset rail + the\n * Calendar (range mode). No new tokens; grid states are Calendar's, field states are Input's.\n */\n\n.field {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 260px;\n padding: 0 10px 0 12px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n color: var(--sh-text-primary);\n font: inherit;\n font-size: var(--sh-text-body-sm);\n text-align: left;\n cursor: pointer;\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.field[data-size='sm'] {\n height: var(--sh-control-height-sm);\n border-radius: var(--sh-radius-sm);\n}\n.field[data-size='md'] {\n height: var(--sh-control-height-md);\n border-radius: var(--sh-radius-md);\n}\n.field[data-size='lg'] {\n height: var(--sh-control-height-lg);\n border-radius: var(--sh-radius-md);\n}\n.field:not(:disabled):hover {\n border-color: var(--sh-border-interactive);\n}\n.field:focus-visible {\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n outline: none;\n}\n.field:disabled {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n.field[data-empty] .value {\n color: var(--sh-text-placeholder);\n}\n.value {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.icon {\n display: inline-flex;\n flex-shrink: 0;\n color: var(--sh-text-tertiary);\n}\n.icon svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n/* ── Popover ─────────────────────────────────────────────── */\n.content {\n z-index: var(--sh-z-dropdown);\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n box-shadow: var(--sh-shadow-e2);\n transform-origin: var(--radix-popover-content-transform-origin);\n}\n.content[data-state='open'] {\n animation: sh-rangepicker-in var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.body {\n display: flex;\n gap: 12px;\n padding: 12px;\n}\n.rail {\n display: flex;\n flex-direction: column;\n gap: 2px;\n width: 148px;\n flex-shrink: 0;\n border-right: var(--sh-border-width) solid var(--sh-border-subtle);\n padding-right: 12px;\n}\n.preset {\n height: 28px;\n padding: 0 8px;\n border: none;\n background: transparent;\n border-radius: var(--sh-radius-sm);\n font: inherit;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-secondary);\n text-align: left;\n cursor: pointer;\n}\n.preset:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.preset[data-selected] {\n background: var(--sh-accent-soft);\n color: var(--sh-accent);\n font-weight: 500;\n}\n.preset:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n\n.footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 8px 12px;\n border-top: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n\n@keyframes sh-rangepicker-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n","/*\n * Toast — calm surface, loud icon. The card is never intent-tinted; intent lives in one 16px glyph\n * whose color binds per intent from the token layer. Fixed viewport in the chosen corner at z-toast.\n */\n\n.viewport {\n position: fixed;\n z-index: var(--sh-z-toast);\n display: flex;\n gap: 8px;\n width: 360px;\n max-width: calc(100vw - 32px);\n pointer-events: none;\n}\n.viewport > * {\n pointer-events: auto;\n}\n.viewport[data-placement='bottom-end'] {\n right: 16px;\n bottom: 16px;\n flex-direction: column-reverse;\n}\n.viewport[data-placement='bottom-center'] {\n left: 50%;\n bottom: 16px;\n transform: translateX(-50%);\n flex-direction: column-reverse;\n}\n.viewport[data-placement='top-end'] {\n right: 16px;\n top: 16px;\n flex-direction: column;\n}\n.viewport[data-placement='top-center'] {\n left: 50%;\n top: 16px;\n transform: translateX(-50%);\n flex-direction: column;\n}\n\n/* ── Card ────────────────────────────────────────────────── */\n.toast {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n min-height: 44px;\n padding: 12px 14px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n box-shadow: var(--sh-shadow-e2);\n animation: sh-toast-in var(--sh-duration-normal) var(--sh-ease-standard);\n}\n\n/* ── Intent glyph (the only colored element) ─────────────── */\n.toast[data-intent='neutral'] {\n --toast-accent: var(--sh-neutral-solid);\n}\n.toast[data-intent='info'] {\n --toast-accent: var(--sh-info-solid);\n}\n.toast[data-intent='success'] {\n --toast-accent: var(--sh-success-solid);\n}\n.toast[data-intent='warning'] {\n --toast-accent: var(--sh-warning-solid);\n}\n.toast[data-intent='danger'] {\n --toast-accent: var(--sh-danger-solid);\n}\n\n.icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n margin-top: 1px;\n border-radius: var(--sh-radius-full);\n background: var(--toast-accent);\n color: var(--sh-neutral-white);\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n}\n.spinner {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n margin-top: 1px;\n border: 2px solid color-mix(in srgb, var(--toast-accent) 35%, transparent);\n border-top-color: var(--toast-accent);\n border-radius: var(--sh-radius-full);\n animation: sh-toast-spin 800ms linear infinite;\n}\n\n/* ── Content ─────────────────────────────────────────────── */\n.content {\n flex: 1;\n min-width: 0;\n}\n.title {\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n line-height: 18px;\n color: var(--sh-text-primary);\n}\n.body {\n margin-top: 2px;\n font-size: var(--sh-text-caption);\n line-height: 18px;\n color: var(--sh-text-tertiary);\n}\n\n/* ── Action + dismiss ────────────────────────────────────── */\n.action {\n flex-shrink: 0;\n height: 24px;\n padding: 0 8px;\n border: none;\n background: transparent;\n color: var(--sh-accent);\n font: inherit;\n font-size: var(--sh-text-caption);\n font-weight: 500;\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n}\n.action:hover {\n background: var(--sh-accent-soft);\n}\n.action:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 1px;\n}\n.dismiss {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-tertiary);\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n}\n.dismiss:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.dismiss:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n.dismiss svg {\n display: block;\n width: 14px;\n height: 14px;\n}\n\n@keyframes sh-toast-in {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n@keyframes sh-toast-spin {\n to {\n transform: rotate(360deg);\n }\n}\n",".root {\n display: flex;\n flex-direction: column;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n margin-bottom: 12px;\n}\n\n.title {\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n color: var(--sh-text-primary);\n}\n\n.headerAction {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.list {\n margin: 0;\n font-size: var(--sh-text-body-sm);\n line-height: var(--sh-text-body-sm--line-height);\n}\n\n/* Row — fixed term column, hairline dividers */\n.list[data-layout='row'] {\n display: flex;\n flex-direction: column;\n}\n.list[data-layout='row'] .item {\n display: grid;\n grid-template-columns: var(--dl-term-width) 1fr;\n gap: 16px;\n align-items: baseline;\n padding: 9px 0;\n border-bottom: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n.list[data-layout='row'] .item:last-child {\n border-bottom: none;\n}\n\n/* Column — term stacked above value */\n.list[data-layout='column'] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n.list[data-layout='column'] .item,\n.list[data-layout='grid'] .item {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n/* Grid — a matrix of column-style items */\n.list[data-layout='grid'] {\n display: grid;\n grid-template-columns: repeat(var(--dl-columns), minmax(0, 1fr));\n gap: 16px 32px;\n}\n\n.item {\n min-width: 0;\n}\n\n.term {\n color: var(--sh-text-tertiary);\n}\n\n.detail {\n display: flex;\n align-items: baseline;\n gap: 8px;\n margin: 0;\n min-width: 0;\n color: var(--sh-text-primary);\n}\n\n.value {\n min-width: 0;\n}\n.value[data-mono] {\n font-family: var(--sh-font-mono);\n}\n.value[data-hidden] {\n display: none;\n}\n\n/* Grid cells truncate; row/column wrap */\n.list[data-layout='grid'] .value {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.empty {\n color: var(--sh-text-tertiary);\n}\n\n.masked {\n letter-spacing: 0.12em;\n color: var(--sh-text-secondary);\n}\n\n.action {\n flex-shrink: 0;\n align-self: center;\n}\n\n/* Copy button is revealed on row hover or its own focus */\n.copy {\n opacity: 0;\n transition: opacity var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.item:hover .copy,\n.copy:focus-visible {\n opacity: 1;\n}\n\n.srOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* Row collapses to stacked term/value where the fixed column can't fit */\n@media (max-width: 640px) {\n .list[data-layout='row'] .item {\n grid-template-columns: 1fr;\n gap: 2px;\n }\n .list[data-layout='grid'] {\n grid-template-columns: 1fr;\n }\n}\n","/*\n * Form Field — no surface of its own; purely typographic layout that wraps a control. Label above,\n * helper/error below in a single slot. Tokens only.\n */\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n.root[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n}\n\n.labelRow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n.label {\n font-size: var(--sh-text-body-sm);\n line-height: 20px;\n font-weight: 500;\n color: var(--sh-text-primary);\n}\n.marker {\n font-size: var(--sh-text-caption);\n color: var(--sh-text-tertiary);\n}\n\n.helper {\n margin: 0;\n font-size: var(--sh-text-caption);\n line-height: 18px;\n color: var(--sh-text-tertiary);\n}\n\n.error {\n display: flex;\n align-items: flex-start;\n gap: 6px;\n margin: 0;\n font-size: var(--sh-text-caption);\n line-height: 18px;\n color: var(--sh-danger-text-on-subtle);\n animation: sh-field-error-in var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.errorIcon {\n display: inline-flex;\n flex-shrink: 0;\n margin-top: 2px;\n color: var(--sh-danger-text-on-subtle);\n}\n.errorIcon svg {\n display: block;\n width: 14px;\n height: 14px;\n}\n\n@keyframes sh-field-error-in {\n from {\n opacity: 0;\n transform: translateY(-2px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n","/*\n * Dialog — modal task surface. Scrim + centered panel (layer-modal: raised fill, radius-xl, e3 in\n * light / border + no shadow in dark). A flex positioner centers the panel so the panel's own\n * transform is free for the enter animation (fade + 8px rise). Shared by Dialog and ConfirmDialog.\n */\n\n.scrim {\n position: fixed;\n inset: 0;\n z-index: var(--sh-z-scrim);\n background: var(--sh-scrim);\n animation: sh-scrim-in var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.scrim[data-state='closed'] {\n animation: sh-scrim-out var(--sh-duration-normal-exit) var(--sh-ease-standard);\n}\n\n.positioner {\n position: fixed;\n inset: 0;\n z-index: var(--sh-z-modal);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n overflow-y: auto;\n}\n\n.panel {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n max-height: calc(100vh - 32px);\n padding: 24px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-xl);\n box-shadow: var(--sh-shadow-e3);\n color: var(--sh-text-primary);\n}\n[data-density='compact'] .panel {\n padding: 20px;\n}\n.panel[data-size='sm'] {\n max-width: 400px;\n}\n.panel[data-size='md'] {\n max-width: 560px;\n}\n.panel[data-size='lg'] {\n max-width: 720px;\n}\n.panel[data-state='open'] {\n animation: sh-dialog-in var(--sh-duration-slow) var(--sh-ease-standard);\n}\n.panel[data-state='closed'] {\n animation: sh-dialog-out var(--sh-duration-slow-exit) var(--sh-ease-standard);\n}\n\n/* ── Header ──────────────────────────────────────────────── */\n.header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 16px;\n margin-bottom: 20px;\n}\n.heading {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n}\n.title {\n margin: 0;\n font-size: var(--sh-text-h3);\n line-height: var(--sh-text-h3--line-height);\n font-weight: 600;\n color: var(--sh-text-primary);\n}\n.description {\n margin: 0;\n font-size: var(--sh-text-body-sm);\n line-height: 20px;\n color: var(--sh-text-tertiary);\n}\n.close {\n flex-shrink: 0;\n margin: -4px -6px 0 0;\n}\n\n/* ── Body ────────────────────────────────────────────────── */\n.body {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n}\n\n/* ── Footer ──────────────────────────────────────────────── */\n.footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 20px;\n}\n\n@keyframes sh-scrim-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes sh-scrim-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes sh-dialog-in {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n@keyframes sh-dialog-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n","/*\n * Drawer — full-height edge panel. Modal reads layer-modal at z-modal with a scrim; non-modal is\n * furniture (surface-card + border toward the page) at z-shell, no scrim. Slides from its edge with\n * the emphasized curve. Header/body/footer share Dialog's spacing.\n */\n\n.scrim {\n position: fixed;\n inset: 0;\n z-index: var(--sh-z-scrim);\n background: var(--sh-scrim);\n animation: sh-drawer-scrim-in var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.scrim[data-state='closed'] {\n animation: sh-drawer-scrim-out var(--sh-duration-normal-exit) var(--sh-ease-standard);\n}\n\n.panel {\n position: fixed;\n z-index: var(--sh-z-modal);\n display: flex;\n flex-direction: column;\n background: var(--sh-surface-raised);\n box-shadow: var(--sh-shadow-e3);\n}\n.panel[data-nonmodal] {\n z-index: var(--sh-z-shell);\n background: var(--sh-surface-card);\n box-shadow: none;\n}\n\n/* ── Placement + size ────────────────────────────────────── */\n.panel[data-placement='right'] {\n top: 0;\n right: 0;\n height: 100%;\n border-left: var(--sh-border-width) solid var(--sh-border-default);\n animation: sh-drawer-in-right var(--sh-duration-slow) var(--sh-ease-emphasized);\n}\n.panel[data-placement='left'] {\n top: 0;\n left: 0;\n height: 100%;\n border-right: var(--sh-border-width) solid var(--sh-border-default);\n animation: sh-drawer-in-left var(--sh-duration-slow) var(--sh-ease-emphasized);\n}\n.panel[data-placement='bottom'] {\n left: 0;\n right: 0;\n bottom: 0;\n max-height: 85vh;\n border-top: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-2xl) var(--sh-radius-2xl) 0 0;\n animation: sh-drawer-in-bottom var(--sh-duration-slow) var(--sh-ease-emphasized);\n}\n.panel[data-placement='right'][data-state='closed'],\n.panel[data-placement='left'][data-state='closed'],\n.panel[data-placement='bottom'][data-state='closed'] {\n animation: sh-drawer-fade-out var(--sh-duration-slow-exit) var(--sh-ease-standard);\n}\n\n.panel[data-placement='right'][data-size='sm'],\n.panel[data-placement='left'][data-size='sm'] {\n width: min(360px, 85vw);\n}\n.panel[data-placement='right'][data-size='md'],\n.panel[data-placement='left'][data-size='md'] {\n width: min(440px, 85vw);\n}\n.panel[data-placement='right'][data-size='lg'],\n.panel[data-placement='left'][data-size='lg'] {\n width: min(640px, 85vw);\n}\n\n/* ── Header / body / footer ──────────────────────────────── */\n.header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 16px;\n padding: 20px;\n border-bottom: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n.heading {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n.title {\n margin: 0;\n font-size: var(--sh-text-h3);\n line-height: var(--sh-text-h3--line-height);\n font-weight: 600;\n color: var(--sh-text-primary);\n}\n.meta {\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-tertiary);\n}\n.close {\n flex-shrink: 0;\n margin: -4px -6px 0 0;\n}\n\n.body {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 20px;\n}\n[data-density='compact'] .header,\n[data-density='compact'] .body {\n padding: 16px;\n}\n\n.footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 16px 20px;\n border-top: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n\n@keyframes sh-drawer-scrim-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes sh-drawer-scrim-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes sh-drawer-in-right {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0);\n }\n}\n@keyframes sh-drawer-in-left {\n from {\n transform: translateX(-100%);\n }\n to {\n transform: translateX(0);\n }\n}\n@keyframes sh-drawer-in-bottom {\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n}\n@keyframes sh-drawer-fade-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .panel {\n animation: none !important;\n }\n}\n","/*\n * Empty State — pure text tokens, no surface. Centered column; text caps at 320px. Page size allows\n * an illustration and roomy padding; inline is compact for cards, table bodies, and combobox lists.\n */\n\n.root {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n gap: 16px;\n}\n.root[data-size='page'] {\n padding: 48px 32px;\n}\n.root[data-size='inline'] {\n padding: 24px;\n gap: 12px;\n}\n\n.illustration {\n display: flex;\n align-items: center;\n justify-content: center;\n max-width: 120px;\n max-height: 120px;\n color: var(--sh-text-tertiary);\n}\n.illustration svg {\n display: block;\n width: 100%;\n height: auto;\n}\n\n.text {\n max-width: 320px;\n}\n.title {\n font-size: var(--sh-text-body);\n font-weight: 600;\n color: var(--sh-text-primary);\n}\n.description {\n margin: 4px 0 0;\n font-size: var(--sh-text-body-sm);\n line-height: 20px;\n color: var(--sh-text-tertiary);\n}\n.root[data-size='inline'] .title {\n font-size: var(--sh-text-body-sm);\n}\n\n.actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n","/*\n * Progress — track (bg-pressed) + fill (accent, or intent on completion), radius-full. Determinate\n * fill transitions width at motion-normal; indeterminate runs a slow sweep. Reduced motion holds a\n * static 30% bar with pulsing opacity.\n */\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 6px;\n width: 100%;\n}\n\n.labelRow {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 6px;\n}\n.label {\n font-size: var(--sh-text-caption);\n color: var(--sh-text-tertiary);\n}\n.percent {\n font-family: var(--sh-font-mono);\n font-size: 11px;\n color: var(--sh-text-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n.track {\n position: relative;\n width: 100%;\n height: 4px;\n overflow: hidden;\n background: var(--sh-bg-pressed);\n border-radius: var(--sh-radius-full);\n}\n.track[data-size='md'] {\n height: 6px;\n}\n\n.fill {\n height: 100%;\n border-radius: var(--sh-radius-full);\n background: var(--sh-accent);\n transition: width var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.fill[data-intent='success'] {\n background: var(--sh-success-solid);\n}\n.fill[data-intent='danger'] {\n background: var(--sh-danger-solid);\n}\n.fill[data-indeterminate] {\n width: 40%;\n transition: none;\n animation: sh-progress-sweep 1.4s var(--sh-ease-standard) infinite;\n}\n\n@keyframes sh-progress-sweep {\n from {\n transform: translateX(-100%);\n }\n to {\n transform: translateX(250%);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fill[data-indeterminate] {\n width: 30%;\n animation: sh-progress-pulse 1.4s var(--sh-ease-standard) infinite;\n }\n @keyframes sh-progress-pulse {\n 0%,\n 100% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n }\n}\n","/*\n * File Upload — dashed dropzone (border-strong → hover interactive → drag-over focus + accent-soft)\n * over Card-surface file rows. Type tiles read surface-well; row errors read the danger role tokens.\n * All existing tokens.\n */\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 12px;\n width: 100%;\n}\n.root[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n}\n\n.hiddenInput {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n border: 0;\n}\n\n/* ── Dropzone ────────────────────────────────────────────── */\n.zone {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 4px;\n width: 100%;\n padding: 28px 16px;\n border: 1.5px dashed var(--sh-border-strong);\n border-radius: var(--sh-radius-lg);\n background: transparent;\n color: var(--sh-text-secondary);\n font: inherit;\n cursor: pointer;\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n[data-density='compact'] .zone {\n padding: 20px 16px;\n}\n.zone:hover:not(:disabled) {\n border-color: var(--sh-border-interactive);\n}\n.zone[data-drag] {\n border-color: var(--sh-border-focus);\n background: var(--sh-accent-soft);\n}\n.zone[data-invalid] {\n border-color: var(--sh-danger-solid);\n}\n.zone:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 2px;\n}\n.zoneTitle {\n font-size: var(--sh-text-body-sm);\n font-weight: 500;\n color: var(--sh-text-primary);\n}\n.zoneMeta {\n font-size: var(--sh-text-caption);\n color: var(--sh-text-tertiary);\n}\n\n/* ── File rows ───────────────────────────────────────────── */\n.list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.row {\n display: flex;\n align-items: center;\n gap: 12px;\n min-height: 52px;\n padding: 8px 12px;\n background: var(--sh-surface-card);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-md);\n}\n.tile {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 32px;\n height: 32px;\n border-radius: var(--sh-radius-sm);\n background: var(--sh-surface-well);\n color: var(--sh-text-secondary);\n font-family: var(--sh-font-mono);\n font-size: 9px;\n font-weight: 500;\n}\n.rowText {\n display: flex;\n flex-direction: column;\n gap: 4px;\n flex: 1;\n min-width: 0;\n}\n.rowName {\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.rowMeta {\n font-size: var(--sh-text-caption);\n color: var(--sh-text-tertiary);\n}\n.rowError {\n font-size: var(--sh-text-caption);\n color: var(--sh-danger-text-on-subtle);\n}\n\n.remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-tertiary);\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n}\n.remove:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.remove:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n.remove svg {\n display: block;\n width: 14px;\n height: 14px;\n}\n",".card {\n width: var(--hovercard-width, 300px);\n max-height: 240px;\n overflow: hidden auto;\n padding: 16px;\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-xl);\n background: var(--sh-surface-raised);\n box-shadow: var(--sh-shadow-e2);\n color: var(--sh-text-primary);\n z-index: var(--sh-z-popover);\n transform-origin: var(--radix-hover-card-content-transform-origin);\n animation: sh-hovercard-in var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.card[data-state='closed'] {\n animation: sh-hovercard-out var(--sh-duration-fast-exit, var(--sh-duration-fast)) var(--sh-ease-standard);\n}\n\n.fallback {\n display: block;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-tertiary);\n}\n\n@keyframes sh-hovercard-in {\n from {\n opacity: 0;\n transform: translateY(4px);\n }\n}\n@keyframes sh-hovercard-out {\n to {\n opacity: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .card {\n animation-name: sh-hovercard-fade;\n }\n}\n@keyframes sh-hovercard-fade {\n from {\n opacity: 0;\n }\n}\n","/*\n * Multi Select — Select's trigger and listbox with checkbox semantics and tag-style values.\n * Trigger inherits the Input field surface; the overlay reuses Select's surface. Tokens only.\n */\n\n/* ── Trigger (grows to two tag rows) ─────────────────────── */\n.trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n padding: 3px 10px 3px 4px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n border-radius: var(--sh-radius-md);\n color: var(--sh-text-primary);\n font-family: inherit;\n font-size: var(--sh-text-body-sm);\n cursor: pointer;\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.trigger[data-size='sm'] {\n min-height: var(--sh-control-height-sm);\n border-radius: var(--sh-radius-sm);\n}\n.trigger[data-size='md'] {\n min-height: var(--sh-control-height-md);\n}\n.trigger[data-size='lg'] {\n min-height: var(--sh-control-height-lg);\n font-size: var(--sh-text-body);\n}\n.trigger:not(:disabled):hover {\n border-color: var(--sh-border-interactive);\n}\n.trigger:focus-visible,\n.trigger[data-state='open'] {\n outline: none;\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n}\n.trigger[data-invalid] {\n border-color: var(--sh-danger-solid);\n}\n.trigger[data-invalid]:focus-visible,\n.trigger[data-invalid][data-state='open'] {\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring-error);\n}\n.trigger:disabled {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n.tags {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 4px;\n min-width: 0;\n max-height: 3.25rem;\n overflow: hidden;\n}\n.placeholder {\n padding-left: 8px;\n color: var(--sh-text-placeholder);\n}\n\n.tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n height: 24px;\n padding: 0 4px 0 8px;\n border-radius: var(--sh-radius-sm);\n background: var(--sh-surface-well);\n border: var(--sh-border-width) solid var(--sh-border-default);\n font-size: var(--sh-text-caption);\n font-weight: 500;\n color: var(--sh-text-primary);\n}\n.tagRemove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n border-radius: 3px;\n color: var(--sh-text-tertiary);\n cursor: pointer;\n}\n.tagRemove:hover {\n background: var(--sh-border-default);\n color: var(--sh-text-primary);\n}\n.tagRemove svg {\n display: block;\n width: 10px;\n height: 10px;\n}\n\n.overflow {\n display: inline-flex;\n align-items: center;\n height: 24px;\n padding: 0 8px;\n border-radius: var(--sh-radius-sm);\n background: var(--sh-accent-soft);\n font-size: var(--sh-text-caption);\n font-weight: 500;\n color: var(--sh-accent);\n}\n\n.chevron {\n display: inline-flex;\n flex-shrink: 0;\n color: var(--sh-text-tertiary);\n}\n.chevron svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n/* ── Overlay surface (inherits Select) ───────────────────── */\n.content {\n z-index: var(--sh-z-dropdown);\n min-width: var(--radix-popover-trigger-width);\n max-height: min(320px, var(--radix-popover-content-available-height));\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n box-shadow: var(--sh-shadow-e2);\n transform-origin: var(--radix-popover-content-transform-origin);\n}\n.content[data-state='open'] {\n animation: sh-ms-in var(--sh-duration-normal) var(--sh-ease-standard);\n}\n\n.search {\n padding: 4px;\n border-bottom: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n.searchInput {\n width: 100%;\n height: var(--sh-control-height-sm);\n padding: 0 8px;\n border: none;\n border-radius: var(--sh-radius-sm);\n background: transparent;\n font: inherit;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-primary);\n outline: none;\n}\n.searchInput::placeholder {\n color: var(--sh-text-placeholder);\n}\n\n.list {\n padding: 4px;\n overflow-y: auto;\n outline: none;\n}\n\n/* ── Options (checkbox rows) ─────────────────────────────── */\n.option {\n display: flex;\n align-items: center;\n gap: 10px;\n min-height: var(--sh-control-height-md);\n padding: 0 10px;\n border-radius: var(--sh-radius-sm);\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-secondary);\n cursor: pointer;\n user-select: none;\n}\n.option[data-active] {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.option[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n.optionLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.checkbox {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n border-radius: var(--sh-radius-sm);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n background: var(--sh-surface-raised);\n color: var(--sh-on-accent);\n transition:\n background-color var(--sh-duration-fast) var(--sh-ease-standard),\n border-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.checkbox[data-checked],\n.checkbox[data-indeterminate='true'] {\n background: var(--sh-accent);\n border-color: var(--sh-accent);\n}\n.checkbox svg {\n display: block;\n width: 11px;\n height: 11px;\n}\n.dash {\n width: 8px;\n height: 2px;\n border-radius: 1px;\n background: var(--sh-on-accent);\n}\n\n.empty {\n padding: 8px 10px;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-tertiary);\n}\n\n/* ── Footer ──────────────────────────────────────────────── */\n.divider {\n height: 1px;\n margin: 4px 0;\n background: var(--sh-border-subtle);\n}\n.footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 2px 6px 4px;\n}\n.count {\n font-family: var(--sh-font-mono);\n font-size: var(--sh-text-caption);\n color: var(--sh-text-tertiary);\n}\n.clearAll {\n padding: 4px 6px;\n border: none;\n border-radius: var(--sh-radius-sm);\n background: transparent;\n font: inherit;\n font-size: var(--sh-text-caption);\n font-weight: 500;\n color: var(--sh-accent);\n cursor: pointer;\n}\n.clearAll:hover {\n background: var(--sh-accent-soft);\n}\n\n@keyframes sh-ms-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n","/*\n * Tabs — the quiet underline. The tab row sits directly on the page over a 1px baseline; the active\n * tab draws a 2px accent border that overlaps the baseline (−1px). No container, no fill. All tokens.\n */\n\n.list {\n display: flex;\n gap: 4px;\n border-bottom: var(--sh-border-width) solid var(--sh-border-default);\n}\n.list[data-orientation='vertical'] {\n flex-direction: column;\n border-bottom: none;\n border-right: var(--sh-border-width) solid var(--sh-border-default);\n}\n\n.tab {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n height: 40px;\n padding: 0 12px;\n margin-bottom: -1px;\n border: none;\n border-bottom: 2px solid transparent;\n background: transparent;\n font: inherit;\n font-size: var(--sh-text-body-sm);\n font-weight: 500;\n color: var(--sh-text-secondary);\n white-space: nowrap;\n cursor: pointer;\n transition:\n color var(--sh-duration-fast) var(--sh-ease-standard),\n border-color var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.list[data-orientation='vertical'] .tab {\n margin-bottom: 0;\n margin-right: -1px;\n border-bottom: none;\n border-right: 2px solid transparent;\n}\n.tab:hover:not(:disabled) {\n color: var(--sh-text-primary);\n}\n.tab[data-state='active'] {\n color: var(--sh-text-primary);\n border-bottom-color: var(--sh-accent);\n}\n.list[data-orientation='vertical'] .tab[data-state='active'] {\n border-right-color: var(--sh-accent);\n}\n.tab:disabled {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n.tab:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -2px;\n border-radius: var(--sh-radius-sm);\n}\n[data-density='compact'] .tab {\n height: 32px;\n padding: 0 10px;\n}\n\n.icon {\n display: inline-flex;\n align-items: center;\n}\n.icon svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n.count {\n display: inline-flex;\n align-items: center;\n height: 18px;\n padding: 0 6px;\n border-radius: var(--sh-radius-full);\n background: var(--sh-bg-hover);\n font-size: 11px;\n font-weight: 600;\n color: var(--sh-text-secondary);\n font-variant-numeric: tabular-nums;\n}\n\n.panel {\n padding-top: 20px;\n}\n.panel:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 2px;\n border-radius: var(--sh-radius-sm);\n}\n",".bell {\n position: relative;\n display: inline-flex;\n}\n\n/* danger-500 count badge with a surface ring — the notification-dot recipe from Top Navigation */\n.badge {\n position: absolute;\n top: -2px;\n right: -2px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 16px;\n height: 16px;\n padding: 0 4px;\n border-radius: var(--sh-radius-full);\n background: var(--sh-danger-solid);\n color: var(--sh-danger-on-solid);\n font-size: 10px;\n font-weight: 600;\n line-height: 1;\n box-shadow: 0 0 0 2px var(--sh-surface-app);\n pointer-events: none;\n}\n.badge[data-dot] {\n min-width: 8px;\n width: 8px;\n height: 8px;\n padding: 0;\n top: 0;\n right: 0;\n}\n\n/* Panel — 360×480, fixed header/tabs/footer, scrolling list. Overrides Popover's padded content. */\n.panel[data-state] {\n width: 360px;\n max-width: 360px;\n max-height: 480px;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 12px 16px;\n border-bottom: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n\n.panelTitle {\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n color: var(--sh-text-primary);\n}\n\n.tabs {\n padding: 0 16px;\n border-bottom: var(--sh-border-width) solid var(--sh-border-subtle);\n flex-shrink: 0;\n}\n\n.scroll {\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n}\n\n.feed {\n display: flex;\n flex-direction: column;\n}\n.feedEmpty {\n padding: 24px 16px;\n}\n\n.group {\n display: flex;\n flex-direction: column;\n}\n\n.groupLabel {\n padding: 10px 16px 4px;\n font-size: var(--sh-text-caption);\n font-weight: 600;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: var(--sh-text-tertiary);\n}\n\n.item {\n position: relative;\n display: flex;\n gap: 10px;\n padding: 10px 16px;\n cursor: pointer;\n transition: background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.item:hover {\n background-color: var(--sh-bg-hover);\n}\n.item:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: calc(var(--sh-focus-ring-offset) * -1);\n}\n.item[data-unread] {\n background-color: var(--sh-accent-soft);\n}\n\n/* Gutter unread dot */\n.dot {\n position: absolute;\n left: 6px;\n top: 18px;\n width: 6px;\n height: 6px;\n border-radius: var(--sh-radius-full);\n background: var(--sh-accent);\n}\n\n.leading {\n flex-shrink: 0;\n}\n.icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: var(--sh-radius-full);\n background: var(--sh-bg-hover);\n color: var(--sh-text-secondary);\n}\n\n.body {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n\n.title {\n font-size: var(--sh-text-body-sm);\n line-height: var(--sh-text-body-sm--line-height);\n color: var(--sh-text-primary);\n}\n.actor {\n font-weight: 600;\n}\n.item[data-unread] .actor {\n font-weight: 600;\n}\n\n.time {\n font-size: 11px;\n color: var(--sh-text-tertiary);\n}\n\n.receipt {\n margin-top: 4px;\n font-size: var(--sh-text-caption);\n color: var(--sh-text-secondary);\n}\n\n.actions {\n display: flex;\n gap: 8px;\n margin-top: 6px;\n}\n\n.footer {\n display: block;\n padding: 10px 16px;\n border-top: var(--sh-border-width) solid var(--sh-border-subtle);\n font-size: var(--sh-text-body-sm);\n font-weight: 500;\n color: var(--sh-accent);\n text-align: center;\n flex-shrink: 0;\n}\n.footer:hover {\n background-color: var(--sh-bg-hover);\n}\n\n.srOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n}\n","/*\n * Number Stepper — Input's field surface with step buttons inside the border. Split places − / + on\n * the edges separated by hairlines; chevrons stack up/down in the right padding. Magnitude-hinting\n * width, never full-width. All Input tokens.\n */\n\n.root {\n display: inline-flex;\n align-items: stretch;\n width: 112px;\n overflow: hidden;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n color: var(--sh-text-primary);\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.root[data-has-unit] {\n width: 128px;\n}\n.root[data-size='sm'] {\n height: var(--sh-control-height-sm);\n border-radius: var(--sh-radius-sm);\n}\n.root[data-size='md'] {\n height: var(--sh-control-height-md);\n border-radius: var(--sh-radius-md);\n}\n.root[data-size='lg'] {\n height: var(--sh-control-height-lg);\n border-radius: var(--sh-radius-md);\n}\n.root:not([data-disabled]):not([data-readonly]):hover {\n border-color: var(--sh-border-interactive);\n}\n.root:focus-within {\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n}\n.root[data-invalid] {\n border-color: var(--sh-danger-solid);\n}\n.root[data-invalid]:focus-within {\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring-error);\n}\n.root[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n}\n.root[data-readonly] {\n background: var(--sh-surface-well);\n border-color: transparent;\n}\n\n.input {\n flex: 1;\n min-width: 0;\n height: 100%;\n padding: 0 8px;\n border: none;\n background: transparent;\n font: inherit;\n font-size: var(--sh-text-body-sm);\n color: inherit;\n text-align: center;\n outline: none;\n font-variant-numeric: tabular-nums;\n}\n.root[data-buttons='chevrons'] .input {\n text-align: left;\n padding-left: 10px;\n}\n.root[data-size='lg'] .input {\n font-size: var(--sh-text-body);\n}\n\n.unit {\n display: inline-flex;\n align-items: center;\n padding-right: 6px;\n color: var(--sh-text-tertiary);\n font-size: var(--sh-text-body-sm);\n}\n\n/* ── Step buttons ────────────────────────────────────────── */\n.step {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 32px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-secondary);\n cursor: pointer;\n transition: background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.step:hover:not(:disabled) {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.step:disabled {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n.step svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n.root[data-buttons='split'] .step:first-child {\n border-right: var(--sh-border-width) solid var(--sh-border-default);\n}\n.root[data-buttons='split'] .step:last-child {\n border-left: var(--sh-border-width) solid var(--sh-border-default);\n}\n\n/* ── Chevron stack ───────────────────────────────────────── */\n.chevrons {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n border-left: var(--sh-border-width) solid var(--sh-border-default);\n}\n.chevrons .step {\n width: 24px;\n height: 50%;\n}\n.chevrons .step svg {\n width: 12px;\n height: 12px;\n}\n","/*\n * OTP Input — segmented code entry. Each box reuses the Input field surface (raised fill, strong\n * border, field focus ring) sized as a square-ish cell. Tokens only.\n */\n\n/* Reset the fieldset UA chrome (border/legend spacing) so it is a plain flex group. */\n.root {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n margin: 0;\n padding: 0;\n border: 0;\n min-inline-size: 0;\n}\n.root:disabled {\n opacity: var(--sh-disabled-opacity);\n}\n\n.box {\n width: 40px;\n height: 44px;\n padding: 0;\n text-align: center;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n border-radius: var(--sh-radius-md);\n color: var(--sh-text-primary);\n font-family: inherit;\n font-size: var(--sh-text-body-lg);\n font-weight: 500;\n font-variant-numeric: tabular-nums;\n outline: none;\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.box::placeholder {\n color: var(--sh-text-placeholder);\n}\n.box[data-filled] {\n border-color: var(--sh-border-interactive);\n}\n.box:hover:not(:disabled) {\n border-color: var(--sh-border-interactive);\n}\n.box:focus {\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n}\n.box:disabled {\n cursor: not-allowed;\n}\n\n/* ── Sizes ────────────────────────────────────────────────── */\n.root[data-size='sm'] .box {\n width: 32px;\n height: 36px;\n border-radius: var(--sh-radius-sm);\n font-size: var(--sh-text-body);\n}\n.root[data-size='lg'] .box {\n width: 48px;\n height: 52px;\n font-size: var(--sh-text-h3);\n}\n\n/* ── Invalid ──────────────────────────────────────────────── */\n.root[data-invalid] .box {\n border-color: var(--sh-danger-solid);\n}\n.root[data-invalid] .box:focus {\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring-error);\n}\n","/*\n * Select — the trigger inherits Input's field surface; the listbox defines the shared overlay\n * surface reused by Dropdown Menu, Autocomplete, Command Palette, and pickers. Tokens only.\n */\n\n/* ── Trigger (Input field surface + chevron) ─────────────── */\n.trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n padding: 0 10px 0 12px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n color: var(--sh-text-primary);\n font-family: inherit;\n cursor: pointer;\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.trigger[data-size='sm'] {\n height: var(--sh-control-height-sm);\n border-radius: var(--sh-radius-sm);\n font-size: var(--sh-text-body-sm);\n}\n.trigger[data-size='md'] {\n height: var(--sh-control-height-md);\n border-radius: var(--sh-radius-md);\n font-size: var(--sh-text-body-sm);\n}\n.trigger[data-size='lg'] {\n height: var(--sh-control-height-lg);\n border-radius: var(--sh-radius-md);\n font-size: var(--sh-text-body);\n}\n.trigger:not(:disabled):hover {\n border-color: var(--sh-border-interactive);\n}\n.trigger:focus-visible,\n.trigger[data-state='open'] {\n outline: none;\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n}\n.trigger[data-invalid] {\n border-color: var(--sh-danger-solid);\n}\n.trigger[data-invalid]:focus-visible,\n.trigger[data-invalid][data-state='open'] {\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring-error);\n}\n.trigger[data-placeholder] {\n color: var(--sh-text-placeholder);\n}\n.trigger:disabled {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n.value {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.chevron {\n display: inline-flex;\n flex-shrink: 0;\n color: var(--sh-text-tertiary);\n}\n.chevron svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n.spinner {\n width: 14px;\n height: 14px;\n border: 2px solid color-mix(in srgb, currentColor 35%, transparent);\n border-top-color: currentColor;\n border-radius: var(--sh-radius-full);\n animation: sh-select-spin 800ms linear infinite;\n}\n\n/* ── Listbox surface (the shared overlay) ────────────────── */\n.content {\n z-index: var(--sh-z-dropdown);\n min-width: var(--radix-select-trigger-width);\n max-height: min(256px, var(--radix-select-content-available-height));\n overflow: hidden;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n box-shadow: var(--sh-shadow-e2);\n transform-origin: var(--radix-select-content-transform-origin);\n}\n.content[data-state='open'] {\n animation: sh-select-in var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.content[data-state='closed'] {\n animation: sh-select-out var(--sh-duration-fast-exit) var(--sh-ease-standard);\n}\n\n.viewport {\n padding: 4px;\n}\n\n.scrollButton {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n color: var(--sh-text-tertiary);\n cursor: default;\n}\n.scrollButton svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n.scrollChevronUp {\n display: inline-flex;\n transform: rotate(180deg);\n}\n\n/* ── Items ───────────────────────────────────────────────── */\n.item {\n position: relative;\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: var(--sh-control-height-md);\n padding: 4px 8px 4px 10px;\n border-radius: var(--sh-radius-sm);\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-secondary);\n cursor: pointer;\n user-select: none;\n outline: none;\n}\n.item[data-highlighted] {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.item[data-state='checked'] {\n color: var(--sh-text-primary);\n font-weight: 500;\n}\n.item[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n pointer-events: none;\n}\n\n.itemBody {\n display: flex;\n flex: 1;\n min-width: 0;\n flex-direction: column;\n gap: 2px;\n}\n.itemDescription {\n font-weight: 400;\n font-size: var(--sh-text-caption);\n color: var(--sh-text-tertiary);\n}\n\n.itemIcon {\n display: inline-flex;\n flex-shrink: 0;\n color: var(--sh-text-tertiary);\n}\n.itemIcon svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n.itemIndicator {\n display: inline-flex;\n flex-shrink: 0;\n color: var(--sh-accent);\n}\n.itemIndicator svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n/* ── Group label & separator ─────────────────────────────── */\n.groupLabel {\n display: block;\n padding: 6px 10px 4px;\n font-size: var(--sh-text-caption);\n font-weight: 600;\n letter-spacing: 0.05em;\n color: var(--sh-text-tertiary);\n}\n\n.separator {\n height: 1px;\n margin: 4px 0;\n background: var(--sh-border-subtle);\n}\n\n@keyframes sh-select-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes sh-select-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes sh-select-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n","/*\n * Pagination — existing tokens only. Ghost page/arrow buttons hover to bg-hover; the current page is\n * a marker (accent-soft fill + accent text + 600), never a disabled or pressed look. Sits in Table's\n * footer.\n */\n\n.root {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.summary {\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-tertiary);\n}\n\n.controls {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-left: auto;\n}\n\n.page,\n.arrow {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--sh-control-height-md);\n height: var(--sh-control-height-md);\n padding: 0 6px;\n border: none;\n background: transparent;\n border-radius: var(--sh-radius-md);\n font: inherit;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-secondary);\n cursor: pointer;\n transition:\n background-color var(--sh-duration-fast) var(--sh-ease-standard),\n color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.page:hover:not([data-current]),\n.arrow:not(:disabled):hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.page[data-current] {\n background: var(--sh-accent-soft);\n color: var(--sh-accent);\n font-weight: 600;\n cursor: default;\n}\n.page:focus-visible,\n.arrow:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -2px;\n}\n.arrow:disabled {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n.arrow svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n.ellipsis {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--sh-control-height-md);\n height: var(--sh-control-height-md);\n color: var(--sh-text-tertiary);\n}\n\n.compact {\n padding: 0 8px;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-secondary);\n font-variant-numeric: tabular-nums;\n}\n\n.pageSize {\n width: auto;\n}\n","/*\n * Radio — the circular sibling of Checkbox. Same 16px metrics and accent fill, radius-full, with a\n * 6px white dot. Uses the offset focus-ring. Tokens only.\n */\n\n.group {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.groupLabel {\n font-size: var(--sh-text-body-sm);\n line-height: 20px;\n font-weight: 500;\n color: var(--sh-text-primary);\n}\n\n.item {\n display: inline-flex;\n align-items: flex-start;\n gap: 8px;\n}\n.item[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n.circle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n margin-top: 2px;\n padding: 0;\n border: var(--sh-border-width) solid var(--sh-border-strong);\n border-radius: var(--sh-radius-full);\n background: var(--sh-surface-raised);\n cursor: pointer;\n transition:\n background-color var(--sh-duration-fast) var(--sh-ease-standard),\n border-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.circle:not(:disabled):hover {\n border-color: var(--sh-border-interactive);\n}\n.circle:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: var(--sh-focus-ring-offset);\n}\n.circle[data-invalid='true'] {\n border-color: var(--sh-danger-solid);\n}\n.circle[data-state='checked'] {\n background: var(--sh-accent);\n border-color: var(--sh-accent);\n}\n.circle:disabled {\n cursor: not-allowed;\n}\n\n/* Radix Indicator only renders when checked — style it as the 6px dot. */\n.dot {\n width: 6px;\n height: 6px;\n border-radius: var(--sh-radius-full);\n background: var(--sh-on-accent);\n}\n\n.text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.label {\n font-size: var(--sh-text-body-sm);\n line-height: 20px;\n font-weight: 500;\n color: var(--sh-text-primary);\n cursor: pointer;\n}\n.description {\n font-size: var(--sh-text-caption);\n line-height: 18px;\n color: var(--sh-text-tertiary);\n}\n","/*\n * Rating — warning-600 fill for committed stars, border-strong outline when empty. Input is one focus\n * ring around the group; display supports fractional fills via a clipped overlay. All tokens.\n */\n\n.wrap {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n.root {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n}\n.root[data-size='sm'] {\n font-size: 14px;\n}\n.root[data-size='md'] {\n font-size: 16px;\n}\n.root[data-size='lg'] {\n font-size: 20px;\n}\n\n/* ── Display (fractional) ────────────────────────────────── */\n.star {\n position: relative;\n display: inline-flex;\n width: 1em;\n height: 1em;\n}\n.outline,\n.fill {\n position: absolute;\n inset: 0;\n display: inline-flex;\n overflow: hidden;\n}\n.outline {\n color: var(--sh-bg-pressed);\n}\n.fill {\n color: var(--sh-warning-solid);\n}\n.star svg,\n.starButton svg {\n display: block;\n width: 1em;\n height: 1em;\n}\n\n/* ── Input ───────────────────────────────────────────────── */\n.input {\n border-radius: var(--sh-radius-sm);\n font-size: 22px;\n}\n.input:focus-within {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 4px;\n}\n.input[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n}\n\n.starButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n background: transparent;\n color: transparent;\n cursor: pointer;\n}\n.starButton svg {\n stroke: var(--sh-border-strong);\n stroke-width: 1px;\n fill: transparent;\n}\n.input[data-invalid] .starButton svg {\n stroke: var(--sh-danger-solid);\n}\n.starButton[data-filled] svg {\n fill: var(--sh-warning-solid);\n stroke: var(--sh-warning-solid);\n}\n.starButton[data-preview] svg {\n fill: color-mix(in srgb, var(--sh-warning-solid) 50%, transparent);\n stroke: var(--sh-warning-solid);\n}\n.starButton:focus-visible {\n outline: none;\n}\n\n.meaning {\n position: absolute;\n left: 100%;\n margin-left: 8px;\n white-space: nowrap;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-secondary);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .starButton {\n transition: none;\n }\n}\n","/*\n * Tag — neutral metadata rectangle. Reuses neutral subtle/border/text tokens (which flip in dark),\n * radius-4 to stay visually distinct from the Badge pill. The swatch is the only color slot and takes\n * a runtime user color via inline style.\n */\n\n.root {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n height: 24px;\n padding: 0 8px;\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-sm);\n background: var(--sh-neutral-bg-subtle);\n color: var(--sh-neutral-text-on-subtle);\n font-size: var(--sh-text-caption);\n font-weight: 500;\n line-height: 1;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.root[data-size='sm'] {\n height: 20px;\n padding: 0 6px;\n}\n.root[data-size='lg'] {\n height: 28px;\n padding: 0 10px;\n}\n.root[data-removable] {\n padding-right: 4px;\n}\n\n/* ── Clickable (asChild link) ────────────────────────────── */\n.root[data-interactive='true'] {\n cursor: pointer;\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.root[data-interactive='true']:hover {\n border-color: var(--sh-border-strong);\n background: var(--sh-bg-hover);\n}\n.root[data-interactive='true']:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: var(--sh-focus-ring-offset);\n}\n\n/* ── Swatch ──────────────────────────────────────────────── */\n.swatch {\n width: 8px;\n height: 8px;\n flex-shrink: 0;\n border-radius: 2px;\n}\n\n/* ── Remove button ───────────────────────────────────────── */\n.remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-tertiary);\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n}\n.remove:hover {\n background: var(--sh-bg-pressed);\n color: var(--sh-text-primary);\n}\n.remove:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n.remove svg {\n display: block;\n width: 10px;\n height: 10px;\n}\n",".field {\n display: flex;\n flex-direction: column;\n gap: 6px;\n width: 100%;\n}\n\n.labelRow {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 12px;\n}\n\n.label {\n font-size: var(--sh-text-body-sm);\n font-weight: 500;\n color: var(--sh-text-primary);\n}\n.required {\n color: var(--sh-danger-text);\n}\n\n.counter {\n font-size: var(--sh-text-caption);\n font-variant-numeric: tabular-nums;\n color: var(--sh-text-tertiary);\n}\n.counter[data-state='warning'] {\n color: var(--sh-warning-text);\n}\n.counter[data-state='error'] {\n color: var(--sh-danger-text);\n font-weight: 600;\n}\n\n.description {\n font-size: var(--sh-text-caption);\n color: var(--sh-text-tertiary);\n}\n\n/* Frame — the field boundary; takes focus-field whenever focus is anywhere inside */\n.frame {\n position: relative;\n display: flex;\n flex-direction: column;\n border: var(--sh-border-width) solid var(--sh-border-strong);\n border-radius: var(--sh-radius-lg);\n background: var(--sh-surface-card);\n overflow: hidden;\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.frame:focus-within {\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n}\n.frame[aria-invalid='true'] {\n border-color: var(--sh-danger-solid);\n}\n.frame[aria-invalid='true']:focus-within {\n border-color: var(--sh-danger-solid);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring-error);\n}\n.frame[data-readonly] {\n background: var(--sh-surface-well);\n border-color: var(--sh-border-default);\n}\n.frame[data-disabled] {\n background: var(--sh-surface-well);\n opacity: 0.6;\n pointer-events: none;\n}\n\n.fullscreenToggle {\n position: absolute;\n top: 6px;\n right: 6px;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: var(--sh-radius-md);\n background: transparent;\n color: var(--sh-text-tertiary);\n cursor: pointer;\n}\n.fullscreenToggle:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-secondary);\n}\n.fullscreenToggle:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 1px;\n}\n\n/* Toolbar — surface-sunken, one tab stop */\n.toolbar {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 6px 8px;\n background: var(--sh-surface-well);\n border-bottom: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n\n.toolbarButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 28px;\n height: 28px;\n padding: 0 6px;\n border: none;\n border-radius: var(--sh-radius-md);\n background: transparent;\n color: var(--sh-text-secondary);\n font: inherit;\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n cursor: pointer;\n transition: background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.toolbarButton:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.toolbarButton[data-pressed] {\n background: var(--sh-accent-soft);\n color: var(--sh-accent);\n}\n.toolbarButton:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 1px;\n}\n.toolbarButton:disabled {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n.toolbarDivider {\n width: 1px;\n align-self: stretch;\n margin: 2px 4px;\n background: var(--sh-border-subtle);\n}\n\n.content {\n min-height: 120px;\n max-height: 360px;\n overflow-y: auto;\n padding: 12px;\n font-size: var(--sh-text-body);\n color: var(--sh-text-primary);\n}\n\n.attachments {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n padding: 0 12px 12px;\n}\n\n.footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 10px 12px;\n border-top: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n\n.errorLine {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--sh-text-caption);\n color: var(--sh-danger-text);\n}\n\n/* CSS-only fullscreen — the frame repositions without remounting, preserving the engine instance */\n.field[data-fullscreen] .frame {\n position: fixed;\n inset: 16px;\n z-index: var(--sh-z-modal);\n max-height: none;\n}\n.field[data-fullscreen] .content {\n max-height: none;\n flex: 1;\n}\n.scrim {\n position: fixed;\n inset: 0;\n z-index: var(--sh-z-scrim);\n border: none;\n padding: 0;\n background: var(--sh-scrim);\n cursor: default;\n}\n\n.srOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .frame {\n transition: border-color var(--sh-duration-fast) var(--sh-ease-standard);\n }\n}\n","/*\n * Segmented Control — track reads surface-well; the selected segment becomes the thumb (surface-thumb\n * + e1 in light, a lighter surface with no shadow in dark, since e1 is none in dark). Selection is\n * thumb + shadow + text-color together, never color alone. The thumb slides via Radix's checked state.\n */\n\n.track {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n height: var(--sh-control-height-md);\n padding: 2px;\n background: var(--sh-surface-well);\n border-radius: var(--sh-radius-md);\n}\n.track[data-size='sm'] {\n height: var(--sh-control-height-sm);\n}\n.track[data-full-width] {\n display: flex;\n width: 100%;\n}\n.track[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n.item {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n height: 100%;\n padding: 0 12px;\n border: none;\n background: transparent;\n border-radius: var(--sh-radius-sm);\n font: inherit;\n font-size: var(--sh-text-body-sm);\n font-weight: 500;\n color: var(--sh-text-secondary);\n white-space: nowrap;\n cursor: pointer;\n transition:\n color var(--sh-duration-fast) var(--sh-ease-standard),\n background-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.track[data-full-width] .item {\n flex: 1;\n}\n.item:hover:not([data-state='checked']) {\n color: var(--sh-text-primary);\n}\n.item[data-state='checked'] {\n background: var(--sh-surface-thumb);\n color: var(--sh-text-primary);\n box-shadow: var(--sh-shadow-e1);\n}\n.item:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -2px;\n}\n.item svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .item {\n transition: none;\n }\n}\n","/*\n * Shell — the app scaffold. Chrome reads surface-app (no contrasting panels). The shell root carries\n * theme (.dark) and density (data-density) so the token layer cascades app-wide from one place.\n */\n\n.shell {\n display: flex;\n min-height: 100vh;\n background: var(--sh-surface-app);\n color: var(--sh-text-primary);\n}\n\n.body {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n}\n\n.main {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n}\n\n/* ── Skip link (first tab stop) ──────────────────────────── */\n.skipLink {\n position: absolute;\n left: 8px;\n top: -100px;\n z-index: var(--sh-z-tooltip);\n padding: 8px 12px;\n background: var(--sh-surface-card);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-md);\n box-shadow: var(--sh-shadow-e2);\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-primary);\n text-decoration: none;\n transition: top var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.skipLink:focus-visible {\n top: 8px;\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 2px;\n}\n\n/* ── Page ────────────────────────────────────────────────── */\n.page {\n padding: 32px;\n}\n[data-density='compact'] .page {\n padding: 24px;\n}\n.pageInner {\n margin: 0 auto;\n}\n\n.pageHeader {\n margin-bottom: 24px;\n}\n.breadcrumbs {\n margin-bottom: 12px;\n}\n.titleRow {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 16px;\n flex-wrap: wrap;\n}\n.titleGroup {\n min-width: 0;\n}\n.title {\n margin: 0;\n font-size: var(--sh-text-h1);\n line-height: var(--sh-text-h1--line-height);\n font-weight: 600;\n letter-spacing: -0.01em;\n color: var(--sh-text-primary);\n}\n.description {\n margin: 4px 0 0;\n font-size: var(--sh-text-body);\n color: var(--sh-text-secondary);\n max-width: 640px;\n}\n.actions {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n","/*\n * Tooltip — the one inverted surface. Reads the tooltip surface/text tokens (which invert in dark),\n * radius-md, e2 shadow in light only, no border, no arrow. Enters with a short fade + 4px rise from\n * the trigger side using Radix's data-side/data-state hooks; opacity + transform only.\n */\n\n.content {\n max-width: 240px;\n padding: 6px 10px;\n border-radius: var(--sh-radius-md);\n background: var(--sh-surface-tooltip);\n color: var(--sh-text-on-tooltip);\n box-shadow: var(--sh-shadow-e2);\n font-size: var(--sh-text-caption);\n line-height: 16px;\n font-weight: 500;\n z-index: var(--sh-z-tooltip);\n display: inline-flex;\n align-items: center;\n gap: 8px;\n animation: sh-tooltip-in var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.content[data-state='closed'] {\n animation: sh-tooltip-out var(--sh-duration-fast-exit) var(--sh-ease-standard);\n}\n\n.shortcut {\n font-family: var(--sh-font-mono);\n font-size: 11px;\n font-weight: 400;\n color: var(--sh-text-tertiary);\n}\n\n@keyframes sh-tooltip-in {\n from {\n opacity: 0;\n transform: translateY(4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n@keyframes sh-tooltip-out {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .content,\n .content[data-state='closed'] {\n animation: none;\n }\n}\n","/*\n * Sidebar — surface-app chrome with a border-default right edge (App Shell's recipe). Item states map\n * to bg-hover / accent-soft / accent; the active edge bar is a 3px accent bleed. No sidebar-specific\n * colors. Expanded 248px, rail 56px.\n */\n\n.root {\n display: flex;\n flex-direction: column;\n width: 248px;\n height: 100%;\n flex-shrink: 0;\n background: var(--sh-surface-app);\n border-right: var(--sh-border-width) solid var(--sh-border-default);\n transition: width var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.root[data-collapsed] {\n width: 56px;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n height: 56px;\n padding: 0 12px 0 16px;\n flex-shrink: 0;\n}\n.workspace {\n min-width: 0;\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n color: var(--sh-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n/* Rail: the identity mark and toggle stack and center — the logo stays visible, never a squished line of text. */\n.root[data-collapsed] .header {\n flex-direction: column;\n height: auto;\n gap: 8px;\n padding: 12px 0;\n}\n.root[data-collapsed] .workspace {\n display: flex;\n justify-content: center;\n width: 100%;\n}\n.collapseToggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-tertiary);\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n}\n.collapseToggle:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.collapseToggle:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n.collapseToggle svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n.scroll {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 8px;\n}\n.footer {\n flex-shrink: 0;\n padding: 8px;\n border-top: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n\n/* ── Section ─────────────────────────────────────────────── */\n.section + .section {\n margin-top: 12px;\n}\n.sectionLabel {\n padding: 6px 8px 4px;\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--sh-text-tertiary);\n}\n\n/* ── Item ────────────────────────────────────────────────── */\n.item {\n position: relative;\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n height: 32px;\n padding: 0 8px;\n border: none;\n background: transparent;\n border-radius: var(--sh-radius-md);\n font: inherit;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-secondary);\n text-decoration: none;\n cursor: pointer;\n transition:\n background-color var(--sh-duration-fast) var(--sh-ease-standard),\n color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n[data-density='compact'] .item {\n height: 28px;\n}\n.root[data-collapsed] .item {\n justify-content: center;\n gap: 0;\n width: 40px;\n height: 36px;\n margin: 0 auto;\n}\n.item:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.item:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n.item[data-active] {\n background: var(--sh-accent-soft);\n color: var(--sh-accent);\n font-weight: 500;\n}\n.item[data-active]::before {\n content: '';\n position: absolute;\n left: -8px;\n top: 6px;\n bottom: 6px;\n width: 3px;\n border-radius: 0 var(--sh-radius-sm) var(--sh-radius-sm) 0;\n background: var(--sh-accent);\n}\n\n.icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n color: currentColor;\n}\n.icon svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n.item[data-active] .icon {\n color: var(--sh-accent);\n}\n.label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: left;\n}\n.badge {\n flex-shrink: 0;\n margin-left: auto;\n}\n.chevron {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: var(--sh-text-tertiary);\n transition: transform var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.item[aria-expanded='true'] .chevron {\n transform: rotate(180deg);\n}\n\n/* ── Group children ──────────────────────────────────────── */\n.groupList {\n margin: 2px 0 0;\n padding: 0 0 0 16px;\n list-style: none;\n border-left: var(--sh-border-width) solid var(--sh-border-subtle);\n margin-left: 15px;\n}\n.groupList .item {\n height: 30px;\n}\n[data-density='compact'] .groupList .item {\n height: 26px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .root,\n .chevron {\n transition: none;\n }\n}\n","/*\n * Skeleton — a low-contrast base with a single slow sweep highlight (the sanctioned looping motion).\n * Base reads bg-pressed, sweep reads bg-hover; both flip in dark. Reduced motion freezes to the flat\n * base tone. Shapes set only their radius; dimensions come from the caller to match real content.\n */\n\n.skeleton {\n display: block;\n position: relative;\n overflow: hidden;\n background: var(--sh-bg-pressed);\n pointer-events: none;\n}\n.skeleton::after {\n content: '';\n position: absolute;\n inset: 0;\n background: linear-gradient(90deg, transparent, var(--sh-bg-hover), transparent);\n transform: translateX(-100%);\n animation: sh-skeleton-shimmer 1.6s linear infinite;\n}\n\n.skeleton[data-shape='line'] {\n height: 10px;\n border-radius: var(--sh-radius-sm);\n}\n.skeleton[data-shape='rect'] {\n height: 100%;\n border-radius: var(--sh-radius-md);\n}\n.skeleton[data-shape='circle'] {\n border-radius: var(--sh-radius-full);\n}\n\n/* ── Presets ─────────────────────────────────────────────── */\n.table {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n.tableRow {\n display: grid;\n grid-auto-flow: column;\n grid-auto-columns: 1fr;\n gap: 24px;\n}\n.card {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n.list {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n.listRow {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.listText {\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n min-width: 0;\n}\n\n@keyframes sh-skeleton-shimmer {\n to {\n transform: translateX(100%);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .skeleton::after {\n animation: none;\n display: none;\n }\n}\n","/*\n * Slider — track/fill are the Progress pair (bg-pressed / accent); the thumb reads surface-card +\n * border-strong + e1 in light, no shadow in dark. One size; the 16px thumb keeps a large drag target.\n */\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 100%;\n}\n.root[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n}\n\n.header {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 8px;\n}\n.label {\n font-size: var(--sh-text-body-sm);\n font-weight: 500;\n color: var(--sh-text-primary);\n}\n.value {\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-secondary);\n font-variant-numeric: tabular-nums;\n}\n\n.slider {\n position: relative;\n display: flex;\n align-items: center;\n user-select: none;\n touch-action: none;\n min-height: 20px;\n}\n.slider[data-orientation='horizontal'] {\n width: 100%;\n min-width: 160px;\n}\n.slider[data-orientation='vertical'] {\n flex-direction: column;\n height: 160px;\n min-height: 160px;\n}\n\n.track {\n position: relative;\n flex-grow: 1;\n border-radius: var(--sh-radius-full);\n background: var(--sh-bg-pressed);\n}\n.slider[data-orientation='horizontal'] .track {\n height: 4px;\n}\n.slider[data-orientation='vertical'] .track {\n width: 4px;\n}\n\n.range {\n position: absolute;\n border-radius: var(--sh-radius-full);\n background: var(--sh-accent);\n}\n.slider[data-orientation='horizontal'] .range {\n height: 100%;\n}\n.slider[data-orientation='vertical'] .range {\n width: 100%;\n}\n\n.mark {\n position: absolute;\n top: 50%;\n width: 2px;\n height: 2px;\n border-radius: var(--sh-radius-full);\n background: var(--sh-text-placeholder);\n transform: translate(-50%, -50%);\n}\n\n.thumb {\n display: block;\n width: 16px;\n height: 16px;\n background: var(--sh-surface-card);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n border-radius: var(--sh-radius-full);\n box-shadow: var(--sh-shadow-e1);\n cursor: grab;\n transition: border-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.thumb:hover {\n border-color: var(--sh-border-interactive);\n}\n.thumb[data-state='active'],\n.thumb:active {\n border-color: var(--sh-accent);\n cursor: grabbing;\n}\n.thumb:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: var(--sh-focus-ring-offset);\n}\n",".container {\n display: flex;\n height: 100%;\n min-height: 0;\n min-width: 0;\n}\n.container[data-direction='vertical'] {\n flex-direction: column;\n}\n\n.pane {\n min-width: 0;\n min-height: 0;\n overflow: auto;\n}\n\n/* Handle — 8px hit area over a 1px line that thickens to accent on approach */\n.handle {\n position: relative;\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n touch-action: none;\n}\n.container[data-direction='horizontal'] .handle {\n width: 8px;\n margin: 0 -3px;\n cursor: col-resize;\n}\n.container[data-direction='vertical'] .handle {\n height: 8px;\n margin: -3px 0;\n cursor: row-resize;\n}\n\n.handleLine {\n background: var(--sh-border-subtle);\n transition:\n background-color var(--sh-duration-fast) var(--sh-ease-standard),\n width var(--sh-duration-fast) var(--sh-ease-standard),\n height var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.container[data-direction='horizontal'] .handleLine {\n width: 1px;\n height: 100%;\n}\n.container[data-direction='vertical'] .handleLine {\n width: 100%;\n height: 1px;\n}\n\n.handle:hover .handleLine,\n.container[data-dragging] .handleLine {\n background: var(--sh-accent);\n}\n.container[data-direction='horizontal'] .handle:hover .handleLine,\n.container[data-direction='horizontal'][data-dragging] .handleLine {\n width: 2px;\n}\n.container[data-direction='vertical'] .handle:hover .handleLine,\n.container[data-direction='vertical'][data-dragging] .handleLine {\n height: 2px;\n}\n\n.handle:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n border-radius: var(--sh-radius-sm);\n}\n.handle:focus-visible .handleLine {\n background: var(--sh-accent);\n}\n\n/* Restore rail for a collapsed pane */\n.rail {\n flex: 0 0 auto;\n align-self: stretch;\n padding: 6px 8px;\n border: none;\n border-right: var(--sh-border-width) solid var(--sh-border-subtle);\n background: var(--sh-surface-well);\n color: var(--sh-text-secondary);\n font: inherit;\n font-size: var(--sh-text-caption);\n font-weight: 500;\n cursor: pointer;\n writing-mode: vertical-rl;\n}\n.container[data-direction='vertical'] .rail {\n writing-mode: horizontal-tb;\n align-self: stretch;\n border-right: none;\n border-bottom: var(--sh-border-width) solid var(--sh-border-subtle);\n text-align: center;\n}\n.rail:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.rail:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -2px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .handleLine {\n transition: background-color var(--sh-duration-fast) var(--sh-ease-standard);\n }\n}\n",".root {\n display: inline-block;\n text-align: left;\n color: inherit;\n}\n\n/* Interactive block resets native button/anchor chrome */\n.root[data-interactive] {\n appearance: none;\n margin: 0;\n padding: 8px;\n border: none;\n border-radius: var(--sh-radius-md);\n background: transparent;\n font: inherit;\n cursor: pointer;\n text-decoration: none;\n transition: background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.root[data-interactive]:hover {\n background-color: var(--sh-bg-hover);\n}\n.root[data-interactive]:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: var(--sh-focus-ring-offset);\n}\n\n.visual {\n display: flex;\n flex-direction: column;\n}\n\n.label {\n font-size: var(--sh-text-caption);\n font-weight: 500;\n color: var(--sh-text-secondary);\n}\n\n.valueRow {\n display: flex;\n align-items: baseline;\n gap: 8px;\n margin-top: 6px;\n}\n\n.value {\n font-weight: 600;\n color: var(--sh-text-primary);\n font-variant-numeric: tabular-nums;\n letter-spacing: -0.01em;\n line-height: 1;\n animation: sh-stat-fade var(--sh-duration-fast) var(--sh-ease-standard);\n}\n\n.unit {\n font-weight: 500;\n color: var(--sh-text-secondary);\n}\n\n.spark {\n display: inline-flex;\n align-items: center;\n width: 48px;\n height: 20px;\n margin-left: 4px;\n align-self: center;\n}\n\n/* Sizes — value / line-height / unit tucked to ~55% */\n.root[data-size='sm'] .value {\n font-size: 20px;\n line-height: 26px;\n}\n.root[data-size='sm'] .unit {\n font-size: 13px;\n}\n.root[data-size='md'] .value {\n font-size: 28px;\n line-height: 34px;\n}\n.root[data-size='md'] .unit {\n font-size: 15px;\n}\n.root[data-size='lg'] .value {\n font-size: 36px;\n line-height: 44px;\n}\n.root[data-size='lg'] .unit {\n font-size: 20px;\n}\n\n.valueSkeleton {\n width: 80px;\n height: 1em;\n font-size: inherit;\n}\n.root[data-size='sm'] .valueSkeleton {\n height: 20px;\n}\n.root[data-size='md'] .valueSkeleton {\n height: 28px;\n}\n.root[data-size='lg'] .valueSkeleton {\n height: 36px;\n}\n\n.deltaRow {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 6px;\n}\n\n.delta {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n font-size: var(--sh-text-caption);\n font-weight: 500;\n font-variant-numeric: tabular-nums;\n transition: color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.delta[data-sentiment='good'] {\n color: var(--sh-success-text);\n}\n.delta[data-sentiment='bad'] {\n color: var(--sh-danger-text);\n}\n.delta[data-sentiment='neutral'] {\n color: var(--sh-text-secondary);\n}\n\n.comparison {\n font-size: var(--sh-text-caption);\n font-weight: 400;\n color: var(--sh-text-tertiary);\n}\n\n.srOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n}\n\n@keyframes sh-stat-fade {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .value {\n animation: none;\n }\n}\n",".root {\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n.root[data-orientation='vertical'] {\n display: grid;\n grid-template-columns: auto 1fr;\n grid-template-areas:\n 'nav content'\n 'nav footer';\n gap: 24px 32px;\n}\n.root[data-orientation='vertical'] .indicator {\n grid-area: nav;\n}\n.root[data-orientation='vertical'] .content {\n grid-area: content;\n}\n.root[data-orientation='vertical'] .footer {\n grid-area: footer;\n}\n\n.list {\n display: flex;\n align-items: flex-start;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.stepItem {\n display: flex;\n align-items: flex-start;\n flex: 1;\n}\n.stepItem:last-child {\n flex: 0;\n}\n\n.connector {\n flex: 1;\n height: 2px;\n margin-top: 12px;\n min-width: 24px;\n background: var(--sh-border-default);\n transition: background-color var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.connector[data-done] {\n background: var(--sh-accent);\n}\n\n.step {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n padding: 4px;\n border: none;\n background: none;\n font: inherit;\n color: inherit;\n cursor: pointer;\n border-radius: var(--sh-radius-md);\n}\n.step[aria-disabled='true'] {\n cursor: not-allowed;\n}\n.step:not([aria-disabled='true']):hover .label {\n color: var(--sh-text-primary);\n}\n.step:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 2px;\n}\n\n.dot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border-radius: var(--sh-radius-full);\n border: 2px solid var(--sh-border-strong);\n background: var(--sh-surface-card);\n color: var(--sh-text-tertiary);\n font-size: var(--sh-text-caption);\n font-weight: 600;\n box-sizing: border-box;\n transition:\n background-color var(--sh-duration-fast) var(--sh-ease-standard),\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.dot[data-state='current'] {\n border-color: var(--sh-accent);\n color: var(--sh-accent);\n}\n.dot[data-state='completed'] {\n border-color: var(--sh-accent);\n background: var(--sh-accent);\n color: var(--sh-on-accent);\n}\n.dot[data-state='error'] {\n border-color: var(--sh-danger-solid);\n background: var(--sh-danger-solid);\n color: var(--sh-danger-on-solid);\n}\n.dot[data-state='skipped'] {\n color: var(--sh-text-tertiary);\n}\n\n.labels {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1px;\n text-align: center;\n}\n\n.label {\n font-size: var(--sh-text-caption);\n font-weight: 500;\n color: var(--sh-text-secondary);\n}\n.step[data-state='current'] .label,\n.step[data-state='completed'] .label,\n.step[data-state='error'] .label {\n color: var(--sh-text-primary);\n}\n.step[data-state='current'] .label {\n font-weight: 600;\n}\n\n.hint {\n font-size: 11px;\n color: var(--sh-text-tertiary);\n}\n\n/* Vertical rail */\n.root[data-orientation='vertical'] .list {\n flex-direction: column;\n}\n.root[data-orientation='vertical'] .stepItem {\n flex-direction: column;\n align-items: flex-start;\n}\n.root[data-orientation='vertical'] .connector {\n width: 2px;\n height: 16px;\n min-width: 0;\n margin: 0 0 0 12px;\n}\n.root[data-orientation='vertical'] .step {\n flex-direction: row;\n align-items: center;\n gap: 10px;\n}\n.root[data-orientation='vertical'] .labels {\n align-items: flex-start;\n text-align: left;\n}\n\n.content {\n min-height: 0;\n outline: none;\n animation: sh-step-in var(--sh-duration-fast) var(--sh-ease-standard);\n}\n\n.footer {\n display: flex;\n align-items: center;\n gap: 16px;\n padding-top: 16px;\n border-top: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n\n.status {\n flex: 1;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-tertiary);\n text-align: center;\n}\n\n.footerActions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n@keyframes sh-step-in {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .content {\n animation-name: sh-step-fade;\n }\n .connector {\n transition: none;\n }\n}\n@keyframes sh-step-fade {\n from {\n opacity: 0;\n }\n}\n","/*\n * Switch — instant-effect toggle. One size (36×20). Indigo = on, neutral = off, plus thumb\n * position (never colour alone). Offset focus-ring. Tokens only.\n */\n\n.root {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n min-height: 44px;\n}\n.root[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n.text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n.label {\n font-size: var(--sh-text-body-sm);\n line-height: 20px;\n font-weight: 500;\n color: var(--sh-text-primary);\n cursor: pointer;\n}\n.description {\n font-size: var(--sh-text-caption);\n line-height: 18px;\n color: var(--sh-text-tertiary);\n}\n\n.switch {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n width: 36px;\n height: 20px;\n padding: 2px;\n border: none;\n border-radius: var(--sh-radius-full);\n background: var(--sh-border-strong);\n cursor: pointer;\n transition: background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.switch:not(:disabled):hover {\n background: var(--sh-border-interactive);\n}\n.switch:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: var(--sh-focus-ring-offset);\n}\n.switch[data-state='checked'] {\n background: var(--sh-accent);\n}\n.switch[data-state='checked']:not(:disabled):hover {\n background: var(--sh-accent-hover);\n}\n.switch[data-pending] {\n opacity: 0.7;\n}\n.switch:disabled {\n cursor: not-allowed;\n}\n\n.thumb {\n width: 16px;\n height: 16px;\n border-radius: var(--sh-radius-full);\n background: var(--sh-on-accent);\n box-shadow: var(--sh-shadow-e1);\n transition: transform var(--sh-duration-fast) var(--sh-ease-standard);\n transform: translateX(0);\n}\n.thumb[data-state='checked'] {\n transform: translateX(16px);\n}\n","/*\n * Table — low-contrast chrome, high-contrast content. Container reads surface-card + border-default;\n * header fills surface-app and sticks; dividers are border-subtle; hover/selection use bg-hover /\n * accent-soft. Every value is a neutral or accent token, so dark mode needs no special rules.\n */\n\n.wrapper {\n overflow: hidden;\n background: var(--sh-surface-card);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n}\n.scroll {\n overflow-x: auto;\n}\n\n.table {\n width: 100%;\n border-collapse: collapse;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-primary);\n}\n.caption {\n padding: 12px 16px;\n text-align: left;\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n color: var(--sh-text-secondary);\n}\n\n/* ── Header ──────────────────────────────────────────────── */\n.headerRow {\n height: 40px;\n}\n.th {\n position: sticky;\n top: 0;\n z-index: var(--sh-z-sticky);\n padding: 0 16px;\n background: var(--sh-surface-app);\n border-bottom: var(--sh-border-width) solid var(--sh-border-default);\n text-align: left;\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--sh-text-secondary);\n white-space: nowrap;\n}\n.th[data-align='end'] {\n text-align: right;\n}\n.th[data-align='center'] {\n text-align: center;\n}\n.sortButton {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 0;\n border: none;\n background: transparent;\n font: inherit;\n letter-spacing: inherit;\n text-transform: inherit;\n color: inherit;\n cursor: pointer;\n}\n.th[data-align='end'] .sortButton {\n flex-direction: row-reverse;\n}\n.sortButton:hover {\n color: var(--sh-text-primary);\n}\n.sortButton[data-active] {\n color: var(--sh-text-primary);\n}\n.sortButton:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: 2px;\n border-radius: var(--sh-radius-sm);\n}\n.sortArrow {\n width: 12px;\n height: 12px;\n color: var(--sh-accent);\n}\n\n/* ── Rows ────────────────────────────────────────────────── */\n.row {\n height: var(--sh-row-height);\n transition: background-color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.table[data-density='compact'] .row {\n height: 32px;\n}\n.table[data-density='relaxed'] .row {\n height: 48px;\n}\n.row:not(:last-child) .td {\n border-bottom: var(--sh-border-width) solid var(--sh-border-subtle);\n}\n.row[data-clickable] {\n cursor: pointer;\n}\n.row:hover .td {\n background: var(--sh-bg-hover);\n}\n.row[data-selected] .td {\n background: var(--sh-accent-soft);\n}\n.row[data-clickable]:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -2px;\n}\n\n.td {\n padding: 0 16px;\n color: var(--sh-text-primary);\n white-space: nowrap;\n}\n.td[data-align='end'] {\n text-align: right;\n}\n.td[data-align='center'] {\n text-align: center;\n}\n.td[data-numeric] {\n font-variant-numeric: tabular-nums;\n}\n\n/* ── Selection column ────────────────────────────────────── */\n.checkboxCell {\n width: 44px;\n padding: 0 0 0 14px;\n}\n\n/* ── Bulk bar ────────────────────────────────────────────── */\n.bulkBar {\n display: flex;\n align-items: center;\n gap: 8px;\n height: 44px;\n padding: 0 12px 0 16px;\n background: var(--sh-accent-soft);\n border-bottom: var(--sh-border-width) solid var(--sh-border-default);\n animation: sh-bulkbar-in var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.bulkCount {\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n color: var(--sh-text-primary);\n}\n.bulkActions {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-left: auto;\n}\n\n/* ── Empty / skeleton ────────────────────────────────────── */\n.empty {\n padding: 40px 16px;\n text-align: center;\n color: var(--sh-text-tertiary);\n}\n.skeleton {\n display: block;\n height: 12px;\n width: 60%;\n border-radius: var(--sh-radius-sm);\n background: var(--sh-bg-hover);\n animation: sh-skeleton var(--sh-duration-slow) var(--sh-ease-standard) infinite alternate;\n}\n\n@keyframes sh-bulkbar-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n@keyframes sh-skeleton {\n from {\n opacity: 0.5;\n }\n to {\n opacity: 1;\n }\n}\n","/*\n * Textarea — Input's field surface stretched vertically. Border, fill, focus, and error hues mirror\n * Input (the token layer is the shared source; CSS Modules can't share classes). Adds row height,\n * a disabled resize handle, and the character counter.\n */\n\n.root {\n display: block;\n width: 100%;\n}\n\n.field {\n display: block;\n width: 100%;\n padding: 8px 12px;\n border: var(--sh-border-width) solid var(--sh-border-strong);\n border-radius: var(--sh-radius-md);\n background: var(--sh-surface-raised);\n color: var(--sh-text-primary);\n font-family: inherit;\n font-size: var(--sh-text-body-sm);\n line-height: 20px;\n resize: none;\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n\n/* ── Sizes ────────────────────────────────────────────────── */\n.field[data-size='sm'] {\n padding: 6px 10px;\n border-radius: var(--sh-radius-sm);\n}\n.field[data-size='lg'] {\n font-size: var(--sh-text-body);\n line-height: 22px;\n}\n\n/* Manual resize is vertical-only; horizontal never — it breaks the layout grid. */\n.field[data-autogrow='false'] {\n resize: vertical;\n}\n\n.field::placeholder {\n color: var(--sh-text-placeholder);\n}\n\n/* ── Interaction states (inherited from Input) ───────────── */\n.field:not(:disabled):not(:read-only):hover {\n border-color: var(--sh-border-interactive);\n}\n\n.field:focus {\n outline: none;\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n}\n\n.field[data-invalid='true'] {\n border-color: var(--sh-danger-solid);\n}\n.field[data-invalid='true']:focus {\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring-error);\n}\n\n.field:read-only {\n background: var(--sh-surface-well);\n border-color: transparent;\n}\n\n.field:disabled {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n/* ── Character counter (below-right, quiet until the last 20%) */\n.counter {\n margin-top: 4px;\n text-align: right;\n font-family: var(--sh-font-mono);\n font-size: var(--sh-text-caption);\n color: var(--sh-text-placeholder);\n opacity: 0;\n transition:\n opacity var(--sh-duration-fast) var(--sh-ease-standard),\n color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.counter[data-visible='true'] {\n opacity: 1;\n}\n.counter[data-state='limit'] {\n color: var(--sh-danger-text);\n}\n","/*\n * Timeline — a vertical rail of 20px markers with a connecting line. The future is gray, the past is\n * accent (process). Markers read the neutral/accent/intent tokens; the rail is border-default. All\n * existing tokens.\n */\n\n.root {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.item {\n position: relative;\n display: flex;\n gap: 12px;\n padding-bottom: 24px;\n}\n[data-density='compact'] .item {\n padding-bottom: 16px;\n}\n.item:last-child {\n padding-bottom: 0;\n}\n/* Connecting rail between markers. */\n.item:not(:last-child)::before {\n content: '';\n position: absolute;\n left: 9px;\n top: 20px;\n bottom: 0;\n width: 2px;\n background: var(--sh-border-default);\n}\n.item[data-status='completed']:not(:last-child)::before,\n.item[data-status='success']:not(:last-child)::before {\n background: var(--sh-accent);\n}\n\n/* ── Marker vocabulary ───────────────────────────────────── */\n.marker {\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n border-radius: var(--sh-radius-full);\n background: var(--sh-surface-card);\n border: var(--sh-border-width) solid var(--sh-border-default);\n color: var(--sh-neutral-white);\n}\n.marker svg {\n display: block;\n width: 12px;\n height: 12px;\n}\n.item[data-status='default'] .marker::after {\n content: '';\n width: 6px;\n height: 6px;\n border-radius: var(--sh-radius-full);\n background: var(--sh-text-tertiary);\n}\n.item[data-status='upcoming'] .marker {\n background: var(--sh-surface-card);\n}\n.item[data-status='current'] .marker {\n border: 2px solid var(--sh-accent);\n}\n.item[data-status='current'] .marker::after {\n content: '';\n width: 6px;\n height: 6px;\n border-radius: var(--sh-radius-full);\n background: var(--sh-accent);\n}\n.item[data-status='completed'] .marker {\n background: var(--sh-accent);\n border-color: var(--sh-accent);\n}\n.item[data-status='success'] .marker {\n background: var(--sh-success-solid);\n border-color: var(--sh-success-solid);\n}\n.item[data-status='warning'] .marker {\n background: var(--sh-warning-solid);\n border-color: var(--sh-warning-solid);\n}\n.item[data-status='danger'] .marker {\n background: var(--sh-danger-solid);\n border-color: var(--sh-danger-solid);\n}\n\n/* ── Content ─────────────────────────────────────────────── */\n.content {\n flex: 1;\n min-width: 0;\n padding-top: 1px;\n}\n.head {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 12px;\n}\n.title {\n font-size: var(--sh-text-body-sm);\n font-weight: 500;\n color: var(--sh-text-primary);\n}\n.timestamp {\n flex-shrink: 0;\n font-size: var(--sh-text-caption);\n color: var(--sh-text-tertiary);\n}\n.detail {\n margin-top: 4px;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-secondary);\n}\n\n.srOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n}\n","/*\n * Time Picker — Input's field surface with a mono, tabular digit input so segment widths never wobble.\n * The suggestion list reuses the shared overlay surface. No new tokens.\n */\n\n.field {\n display: inline-flex;\n align-items: center;\n width: fit-content;\n min-width: 112px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n color: var(--sh-text-primary);\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.field[data-size='sm'] {\n height: var(--sh-control-height-sm);\n border-radius: var(--sh-radius-sm);\n}\n.field[data-size='md'] {\n height: var(--sh-control-height-md);\n border-radius: var(--sh-radius-md);\n}\n.field[data-size='lg'] {\n height: var(--sh-control-height-lg);\n border-radius: var(--sh-radius-md);\n}\n.field:not([data-disabled]):not([data-readonly]):hover {\n border-color: var(--sh-border-interactive);\n}\n.field:focus-within {\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n}\n.field[data-invalid] {\n border-color: var(--sh-danger-solid);\n}\n.field[data-invalid]:focus-within {\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring-error);\n}\n.field[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n}\n.field[data-readonly] {\n background: var(--sh-surface-well);\n border-color: transparent;\n}\n\n.input {\n flex: 1;\n min-width: 0;\n height: 100%;\n padding: 0 8px 0 12px;\n border: none;\n background: transparent;\n font-family: var(--sh-font-mono);\n font-size: var(--sh-text-body-sm);\n font-variant-numeric: tabular-nums;\n color: inherit;\n outline: none;\n}\n.input::placeholder {\n color: var(--sh-text-placeholder);\n font-family: var(--sh-font-mono);\n}\n\n.trigger {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 28px;\n height: 100%;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--sh-text-tertiary);\n cursor: pointer;\n}\n.trigger:hover:not(:disabled) {\n color: var(--sh-text-primary);\n}\n.trigger svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n/* ── Listbox ─────────────────────────────────────────────── */\n.content {\n z-index: var(--sh-z-dropdown);\n min-width: var(--radix-popover-trigger-width);\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-lg);\n box-shadow: var(--sh-shadow-e2);\n transform-origin: var(--radix-popover-content-transform-origin);\n}\n.content[data-state='open'] {\n animation: sh-timepicker-in var(--sh-duration-normal) var(--sh-ease-standard);\n}\n.list {\n max-height: 240px;\n overflow-y: auto;\n padding: 4px;\n}\n.option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: var(--sh-control-height-md);\n padding: 0 8px;\n border-radius: var(--sh-radius-sm);\n font-size: var(--sh-text-body-sm);\n font-variant-numeric: tabular-nums;\n color: var(--sh-text-primary);\n cursor: pointer;\n}\n.option[data-active] {\n background: var(--sh-bg-hover);\n}\n.check {\n display: inline-flex;\n align-items: center;\n width: 16px;\n color: var(--sh-accent);\n}\n.check svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n@keyframes sh-timepicker-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n","/*\n * Token Input — Input's field surface with a wrapping token slot. Tokens read Tag's grammar\n * (surface-well + border-default); selected tokens accent-soft; invalid tokens the danger triad. Grows\n * to 4 rows then scrolls. All Input/Tag tokens.\n */\n\n.root {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 4px;\n width: 100%;\n min-height: var(--sh-control-height-md);\n max-height: 128px;\n overflow-y: auto;\n padding: 3px 8px;\n background: var(--sh-surface-raised);\n border: var(--sh-border-width) solid var(--sh-border-strong);\n border-radius: var(--sh-radius-md);\n color: var(--sh-text-primary);\n cursor: text;\n transition:\n border-color var(--sh-duration-fast) var(--sh-ease-standard),\n box-shadow var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.root[data-size='sm'] {\n min-height: var(--sh-control-height-sm);\n border-radius: var(--sh-radius-sm);\n}\n.root[data-size='lg'] {\n min-height: var(--sh-control-height-lg);\n}\n.root:not([data-disabled]):not([data-readonly]):hover {\n border-color: var(--sh-border-interactive);\n}\n.root:focus-within {\n border-color: var(--sh-border-focus);\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring);\n}\n.root[data-invalid] {\n border-color: var(--sh-danger-solid);\n}\n.root[data-invalid]:focus-within {\n box-shadow: 0 0 0 3px var(--sh-focus-field-ring-error);\n}\n.root[data-disabled] {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n.root[data-readonly] {\n background: var(--sh-surface-well);\n border-color: transparent;\n}\n\n.prefix {\n display: inline-flex;\n align-items: center;\n color: var(--sh-text-tertiary);\n}\n.prefix svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n/* ── Tokens ──────────────────────────────────────────────── */\n.token {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n height: 24px;\n padding: 0 4px 0 8px;\n border: var(--sh-border-width) solid var(--sh-border-default);\n border-radius: var(--sh-radius-sm);\n background: var(--sh-neutral-bg-subtle);\n color: var(--sh-neutral-text-on-subtle);\n font-size: var(--sh-text-caption);\n font-weight: 500;\n white-space: nowrap;\n}\n.token[data-selected] {\n background: var(--sh-accent-soft);\n border-color: var(--sh-border-focus);\n color: var(--sh-accent);\n}\n.token[data-invalid] {\n background: var(--sh-danger-bg-subtle);\n border-color: var(--sh-danger-border);\n color: var(--sh-danger-text-on-subtle);\n}\n.token[data-flash] {\n animation: sh-token-flash var(--sh-duration-slow) var(--sh-ease-standard);\n}\n\n.tokenRemove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n padding: 0;\n border: none;\n background: transparent;\n color: currentColor;\n opacity: 0.6;\n border-radius: var(--sh-radius-sm);\n cursor: pointer;\n}\n.tokenRemove:hover {\n opacity: 1;\n background: var(--sh-bg-pressed);\n}\n.tokenRemove:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -1px;\n}\n.tokenRemove svg {\n display: block;\n width: 10px;\n height: 10px;\n}\n\n/* ── Draft input ─────────────────────────────────────────── */\n.input {\n flex: 1;\n min-width: 120px;\n height: 24px;\n border: none;\n background: transparent;\n font: inherit;\n font-size: var(--sh-text-body-sm);\n color: inherit;\n outline: none;\n}\n.input::placeholder {\n color: var(--sh-text-placeholder);\n}\n\n.srOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n}\n\n@keyframes sh-token-flash {\n 0%,\n 100% {\n background: var(--sh-neutral-bg-subtle);\n }\n 50% {\n background: var(--sh-accent-soft);\n border-color: var(--sh-border-focus);\n }\n}\n","/*\n * Top Navigation — surface-card bar with a border-default bottom edge (App Shell's header recipe).\n * Full-height links; the active one draws a 2px accent underline over the bottom border. No background\n * wash on links — the underline zone stays clean.\n */\n\n.bar {\n display: flex;\n align-items: center;\n gap: 24px;\n height: 56px;\n padding: 0 24px;\n background: var(--sh-surface-card);\n border-bottom: var(--sh-border-width) solid var(--sh-border-default);\n}\n[data-density='compact'] .bar {\n height: 48px;\n}\n\n.brand {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n font-size: var(--sh-text-body-sm);\n font-weight: 600;\n color: var(--sh-text-primary);\n}\n\n.links {\n display: flex;\n align-items: stretch;\n gap: 4px;\n height: 100%;\n}\n\n.link {\n display: inline-flex;\n align-items: center;\n height: 100%;\n padding: 0 10px;\n border: none;\n background: transparent;\n font: inherit;\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-secondary);\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n border-bottom: 2px solid transparent;\n margin-bottom: -1px;\n transition: color var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.link:hover {\n color: var(--sh-text-primary);\n}\n.link[data-active] {\n color: var(--sh-text-primary);\n font-weight: 500;\n border-bottom-color: var(--sh-accent);\n}\n.link:focus-visible {\n outline: var(--sh-focus-ring-width) solid var(--sh-focus-ring);\n outline-offset: -4px;\n border-radius: var(--sh-radius-md);\n}\n\n.utility {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-left: auto;\n flex-shrink: 0;\n}\n\n/* ── More menu (inside a Popover surface; padding/min-width set inline) ── */\n.moreMenu {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.moreItem {\n display: flex;\n align-items: center;\n height: 32px;\n padding: 0 8px;\n border-radius: var(--sh-radius-sm);\n font-size: var(--sh-text-body-sm);\n color: var(--sh-text-primary);\n text-decoration: none;\n}\n.moreItem:hover {\n background: var(--sh-bg-hover);\n}\n.moreItem[data-active] {\n color: var(--sh-accent);\n font-weight: 500;\n}\n","/*\n * Tree View — dense working surface. Rest/hover text-secondary + bg-hover; selected accent-soft +\n * 3px accent edge bar; the focus cursor is a 2px accent inset outline (distinct from selection, same\n * grammar as Data Grid cell focus). Guides border-subtle. Zero tree-specific tokens.\n */\n\n.root {\n font-size: var(--sh-text-body-sm);\n}\n.group {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.item {\n position: relative;\n outline: none;\n}\n.row {\n display: flex;\n align-items: center;\n gap: 6px;\n height: 28px;\n padding-right: 8px;\n color: var(--sh-text-secondary);\n cursor: pointer;\n border-radius: var(--sh-radius-sm);\n}\n[data-density='compact'] .row {\n height: 24px;\n}\n.item > .row:hover {\n background: var(--sh-bg-hover);\n color: var(--sh-text-primary);\n}\n.item[data-selected] > .row {\n background: var(--sh-accent-soft);\n color: var(--sh-accent);\n font-weight: 500;\n}\n.item[data-selected] > .row::before {\n content: '';\n position: absolute;\n left: 0;\n top: 4px;\n bottom: 4px;\n width: 3px;\n border-radius: 0 var(--sh-radius-sm) var(--sh-radius-sm) 0;\n background: var(--sh-accent);\n}\n.item[data-focused] > .row {\n outline: 2px solid var(--sh-accent);\n outline-offset: -2px;\n}\n.item[data-disabled] > .row {\n opacity: var(--sh-disabled-opacity);\n cursor: not-allowed;\n}\n\n.chevron,\n.chevronSpacer {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: var(--sh-text-tertiary);\n}\n.chevron {\n cursor: pointer;\n transition: transform var(--sh-duration-fast) var(--sh-ease-standard);\n}\n.chevron[data-expanded] {\n transform: rotate(90deg);\n}\n.chevron svg {\n display: block;\n width: 14px;\n height: 14px;\n}\n\n.checkbox {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n border: var(--sh-border-width) solid var(--sh-border-strong);\n border-radius: var(--sh-radius-sm);\n background: var(--sh-surface-raised);\n color: var(--sh-on-accent);\n}\n.checkbox[data-checked],\n.checkbox[data-indeterminate] {\n background: var(--sh-accent);\n border-color: var(--sh-accent);\n}\n.checkbox svg {\n display: block;\n width: 12px;\n height: 12px;\n}\n.dash {\n width: 8px;\n height: 2px;\n border-radius: var(--sh-radius-full);\n background: var(--sh-on-accent);\n}\n\n.icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--sh-text-tertiary);\n}\n.icon svg {\n display: block;\n width: 16px;\n height: 16px;\n}\n\n.label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .chevron {\n transition: none;\n }\n}\n"]}
|