fokus-styles 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/css/components.css +22 -0
  3. package/dist/css/components.css.map +1 -1
  4. package/dist/css/components.min.css +1 -1
  5. package/dist/css/components.min.css.map +1 -1
  6. package/dist/css/fokus-components.css +22 -0
  7. package/dist/css/fokus-components.css.map +1 -1
  8. package/dist/css/fokus-components.min.css +1 -1
  9. package/dist/css/fokus-components.min.css.map +1 -1
  10. package/dist/css/fokus-core.css +22 -0
  11. package/dist/css/fokus-core.css.map +1 -1
  12. package/dist/css/fokus-core.min.css +1 -1
  13. package/dist/css/fokus-core.min.css.map +1 -1
  14. package/dist/css/fokus-dark.css +10 -0
  15. package/dist/css/fokus-dark.css.map +1 -1
  16. package/dist/css/fokus-dark.min.css +1 -1
  17. package/dist/css/fokus-dark.min.css.map +1 -1
  18. package/dist/css/fokus-rtl.css +8552 -0
  19. package/dist/css/fokus-rtl.css.map +1 -0
  20. package/dist/css/fokus-rtl.min.css +2 -0
  21. package/dist/css/fokus-rtl.min.css.map +1 -0
  22. package/dist/css/fokus-utilities.css +22 -0
  23. package/dist/css/fokus-utilities.css.map +1 -1
  24. package/dist/css/fokus-utilities.min.css +1 -1
  25. package/dist/css/fokus-utilities.min.css.map +1 -1
  26. package/dist/css/fokus.css +22 -0
  27. package/dist/css/fokus.css.map +1 -1
  28. package/dist/css/fokus.min.css +1 -1
  29. package/dist/css/fokus.min.css.map +1 -1
  30. package/dist/css/forms.css +22 -0
  31. package/dist/css/forms.css.map +1 -1
  32. package/dist/css/forms.min.css +1 -1
  33. package/dist/css/forms.min.css.map +1 -1
  34. package/dist/css/helpers.css +22 -0
  35. package/dist/css/helpers.css.map +1 -1
  36. package/dist/css/helpers.min.css +1 -1
  37. package/dist/css/helpers.min.css.map +1 -1
  38. package/dist/css/layout.css +22 -0
  39. package/dist/css/layout.css.map +1 -1
  40. package/dist/css/layout.min.css +1 -1
  41. package/dist/css/layout.min.css.map +1 -1
  42. package/docs/guides/rtl-and-system-preferences.md +28 -0
  43. package/docs/reference/size-baseline.json +11 -11
  44. package/package.json +2 -1
  45. package/packages/fokus-core/scss/base/_accessibility.scss +14 -0
  46. package/packages/fokus-core/scss/tokens/_root.scss +11 -0
  47. package/scss/entries/rtl-entry.scss +11 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_datatable.scss","../../scss/entries/components-entry.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/tokens/_root.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/tokens/_semantic.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/tokens/_charts.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/base/_reset.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/base/_typography.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/base/_motion.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/base/_accessibility.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_buttons.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/settings/_typography.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/tools/_mixins.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_cards.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_alerts.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_badges.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_tables.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_navbar.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_combobox.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_datepicker.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_command-palette.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_tree-view.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_dropdown.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_modal.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_alert-dialog.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_divider.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_empty-state.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_rating.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_tag.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_offcanvas.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_accordion.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_tabs.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_tooltips.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_popover.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_toasts.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_pagination.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_breadcrumbs.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_spinner.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_carousel.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_stepper.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_segmented-control.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_skeleton.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_timeline.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_collapse.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_notification-center.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_nested-menu.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_tile.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_avatar.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_button-group.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_close-button.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_list-group.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_code.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_ratio.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_icon-link.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_placeholder.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_progress.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_scrollspy.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/themes/_brands.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/themes/_dark.scss"],"names":[],"mappings":"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","file":"components.min.css","sourcesContent":["@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Estilos exclusivos do DataTable (`js/datatable.js`) — a tabela, a\n// paginação e o empty state em si reusam `.fs-table`/`.fs-pagination`/\n// `.fs-empty-state` já existentes, sem duplicação.\n\n@layer components {\n .fs-datatable-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n }\n\n .fs-datatable-sort-btn {\n display: inline-flex;\n align-items: center;\n width: 100%;\n padding: 0;\n border: 0;\n background-color: var(--fs-color-surface-raised);\n color: inherit;\n font: inherit;\n text-transform: inherit;\n text-align: left;\n cursor: pointer;\n }\n\n .fs-datatable-sort-btn:focus-visible {\n @include focus-ring;\n }\n\n .fs-datatable-sort-btn::after {\n flex-shrink: 0;\n margin-left: auto;\n padding-left: 4px;\n color: var(--fs-color-muted);\n font-size: $font-size-xs;\n content: \"↕\";\n }\n\n th[aria-sort=\"ascending\"] .fs-datatable-sort-btn::after {\n color: var(--fs-color-text);\n content: \"↑\";\n }\n\n th[aria-sort=\"descending\"] .fs-datatable-sort-btn::after {\n color: var(--fs-color-text);\n content: \"↓\";\n }\n\n .fs-datatable [data-fs-datatable-pagination] {\n display: flex;\n justify-content: flex-end;\n margin-top: 12px;\n }\n\n .fs-datatable td:focus-visible,\n .fs-datatable th:focus-visible {\n @include focus-ring;\n\n outline-offset: -2px;\n }\n}\n","@charset \"UTF-8\";\n@layer reset, tokens, base, layout, components, utilities, overrides;\n@layer tokens {\n :root {\n --fs-color-white: #ffffff;\n --fs-color-black: #000000;\n --fs-color-text: #1e293b;\n --fs-color-muted: #64748b;\n --fs-color-border: #e2e8f0;\n --fs-color-surface: #ffffff;\n --fs-color-subtle: #f8fafc;\n --fs-font-sans: Plus Jakarta Sans, sans-serif;\n --fs-font-mono: Source Code Pro, monospace;\n --fs-font-size-md: 0.8125rem;\n --fs-font-size-h1: 1.75rem;\n --fs-font-size-h2: 1.5rem;\n --fs-font-size-h3: 1.3125rem;\n --fs-font-size-h4: 1.125rem;\n --fs-font-size-h5: 1rem;\n --fs-font-size-h6: 0.875rem;\n --fs-font-weight-semibold: 600;\n --fs-line-height-base: 1.5;\n --fs-line-height-heading: 1.25;\n --fs-radius-sm: 4px;\n --fs-radius-md: 6px;\n --fs-radius-lg: 8px;\n --fs-gutter-x: 1.5rem;\n --fs-gutter-y: 0px;\n --fs-space-0: 0;\n --fs-space-1: 0.25rem;\n --fs-space-2: 0.5rem;\n --fs-space-3: 1rem;\n --fs-space-4: 1.5rem;\n --fs-space-5: 3rem;\n --fs-z-base: 0;\n --fs-z-dropdown: 1000;\n --fs-z-sticky: 1020;\n --fs-z-modal: 1050;\n --fs-z-offcanvas: 1060;\n --fs-z-notification: 1080;\n --fs-z-toast: 1090;\n --fs-z-tooltip: 1100;\n --fs-control-height: 38px;\n --fs-control-height-sm: 30px;\n --fs-control-height-lg: 46px;\n --fs-control-padding-x: 12px;\n --fs-control-padding-x-sm: 8px;\n --fs-control-padding-x-lg: 16px;\n --fs-focus-width: 2px;\n --fs-focus-offset: 2px;\n --fs-focus-color: var(--fs-color-primary);\n --fs-focus-ring-size: 3px;\n --fs-focus-ring-color: color-mix(in srgb, var(--fs-focus-color) 22%, transparent);\n --fs-focus-ring-alpha: 22%;\n --fs-transition-fast: 150ms;\n --fs-transition-normal: 220ms;\n --fs-motion-duration-fast: var(--fs-transition-fast);\n --fs-motion-duration-normal: var(--fs-transition-normal);\n --fs-motion-ease-standard: var(--fs-ease-standard);\n --fs-ease-standard: cubic-bezier(0.2, 0, 0, 1);\n --fs-border-width: 1px;\n --fs-disabled-opacity: 0.5;\n --fs-safe-area-top: env(safe-area-inset-top, 0px);\n --fs-safe-area-right: env(safe-area-inset-right, 0px);\n --fs-safe-area-bottom: env(safe-area-inset-bottom, 0px);\n --fs-safe-area-left: env(safe-area-inset-left, 0px);\n --fs-component-control-height: var(--fs-control-height);\n --fs-component-overlay-backdrop: rgb(0 0 0 / 55%);\n --fs-component-panel-radius: var(--fs-radius-md);\n --fs-component-panel-shadow: var(--fs-shadow-lg);\n --fs-cq-sm: 320px;\n --fs-cq-md: 480px;\n --fs-cq-lg: 640px;\n --fs-shadow-sm: 0 1px 3px rgb(0 0 0 / 15%), 0 1px 2px rgb(0 0 0 / 10%);\n --fs-shadow-md: 0 6px 12px rgb(0 0 0 / 15%), 0 3px 6px rgb(0 0 0 / 10%);\n --fs-shadow-lg: 0 15px 30px rgb(0 0 0 / 18%), 0 6px 12px rgb(0 0 0 / 12%);\n --fs-tooltip-bg: #1e293b;\n --fs-tooltip-text: #ffffff;\n --fs-color-primary: #1a61e6;\n --fs-color-on-primary: #ffffff;\n --fs-alert-primary-bg: rgb(220.3846532222, 232.689549371, 254.1042117072);\n --fs-alert-primary-text: rgb(4.2540793692, 32.6552622518, 88.5748738661);\n --fs-color-secondary: #64748b;\n --fs-color-on-secondary: #ffffff;\n --fs-alert-secondary-bg: rgb(230.2895610064, 233.0325853352, 236.9919508609);\n --fs-alert-secondary-text: rgb(33.9166068747, 40.6437781967, 50.3140869721);\n --fs-color-success: rgb(13, 209, 87);\n --fs-color-on-success: #000000;\n --fs-alert-success-bg: rgb(228.9046733915, 249.1514320752, 230.8709345684);\n --fs-alert-success-text: rgb(1.6574790861, 79.745461506, 28.4507801755);\n --fs-color-warning: #fab633;\n --fs-color-on-warning: #000000;\n --fs-alert-warning-bg: rgb(254.9170612621, 244.6528756631, 228.9710928247);\n --fs-alert-warning-text: rgb(96.9838380187, 68.3933599001, 13.3146447009);\n --fs-color-danger: #cc3335;\n --fs-color-on-danger: #ffffff;\n --fs-alert-danger-bg: rgb(251.9225977632, 226.389403069, 223.5618211362);\n --fs-alert-danger-text: rgb(77.6432204678, 13.3146447009, 14.1555411162);\n --fs-color-info: #5e5cc7;\n --fs-color-on-info: #ffffff;\n --fs-alert-info-bg: rgb(228.2395257626, 230.4806192824, 248.3934544766);\n --fs-alert-info-text: rgb(31.3939176289, 30.5530212136, 75.5409794297);\n --fs-feedback-primary-bg: #e6f0ff;\n --fs-feedback-secondary-bg: #f8fafc;\n --fs-feedback-success-bg: #e6fff2;\n --fs-feedback-warning-bg: #fff9e6;\n --fs-feedback-danger-bg: #fff2f3;\n --fs-feedback-info-bg: #f2f2ff;\n }\n @supports (color: oklch(0% 0 0deg)) {\n :root {\n --fs-color-text: oklch(27.9495237712% 0.0368481257 260.0309873929deg);\n --fs-color-muted: oklch(55.4391007662% 0.040717043 257.4166191214deg);\n --fs-color-border: oklch(92.876126719% 0.0126187744 255.5078854448deg);\n --fs-color-subtle: oklch(98.4151869501% 0.0034126992 247.8577745944deg);\n --fs-tooltip-bg: oklch(27.9495237712% 0.0368481257 260.0309873929deg);\n --fs-color-primary: oklch(53.5630074284% 0.2132145174 261.6264320248deg);\n --fs-color-on-primary: #ffffff;\n --fs-alert-primary-bg: oklch(93.0344511143% 0.0319821776 261.6264320248deg);\n --fs-alert-primary-text: oklch(26.7815037142% 0.1066072587 261.6264320248deg);\n --fs-color-secondary: oklch(55.4391007662% 0.040717043 257.4166191214deg);\n --fs-color-on-secondary: #ffffff;\n --fs-alert-secondary-bg: oklch(93.3158651149% 0.0061075564 257.4166191214deg);\n --fs-alert-secondary-text: oklch(27.7195503831% 0.0203585215 257.4166191214deg);\n --fs-color-success: oklch(75.151587899% 0.2146126169 148.125846236deg);\n --fs-color-on-success: #000000;\n --fs-alert-success-bg: oklch(96.2727381849% 0.0321918925 148.125846236deg);\n --fs-alert-success-text: oklch(37.5757939495% 0.1073063085 148.125846236deg);\n --fs-color-warning: oklch(81.9510815663% 0.1562613975 78.6575213966deg);\n --fs-color-on-warning: #000000;\n --fs-alert-warning-bg: oklch(97.2926622349% 0.0234392096 78.6575213966deg);\n --fs-alert-warning-text: oklch(40.9755407832% 0.0781306987 78.6575213966deg);\n --fs-color-danger: oklch(55.9653139301% 0.1897270855 25.2407937498deg);\n --fs-color-on-danger: #ffffff;\n --fs-alert-danger-bg: oklch(93.3947970895% 0.0284590628 25.2407937498deg);\n --fs-alert-danger-text: oklch(27.982656965% 0.0948635427 25.2407937498deg);\n --fs-color-info: oklch(53.3359780029% 0.1620131129 280.2231949375deg);\n --fs-color-on-info: #ffffff;\n --fs-alert-info-bg: oklch(93.0003967004% 0.0243019669 280.2231949375deg);\n --fs-alert-info-text: oklch(26.6679890014% 0.0810065564 280.2231949375deg);\n --fs-feedback-primary-bg: oklch(95.2067827456% 0.0228899025 258.359342143deg);\n --fs-feedback-secondary-bg: oklch(98.4151869501% 0.0034126992 247.8577745944deg);\n --fs-feedback-success-bg: oklch(97.8305614459% 0.0311593614 163.2740567608deg);\n --fs-feedback-warning-bg: oklch(98.17094418% 0.025708244 92.3886876566deg);\n --fs-feedback-danger-bg: oklch(97.1603097552% 0.0140720277 12.0135639679deg);\n --fs-feedback-info-bg: oklch(96.4918490239% 0.0173174767 286.0707018324deg);\n }\n }\n}\n@layer tokens {\n :root {\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-action-primary: var(--fs-color-primary);\n --fs-color-action-danger: var(--fs-color-danger);\n }\n}\n@layer tokens {\n :root {\n --fs-chart-series-1: var(--fs-color-primary);\n --fs-chart-series-2: var(--fs-color-success);\n --fs-chart-series-3: var(--fs-color-warning);\n --fs-chart-series-4: var(--fs-color-danger);\n --fs-chart-series-5: var(--fs-color-info);\n --fs-chart-series-6: var(--fs-color-secondary);\n --fs-chart-grid: var(--fs-color-border);\n --fs-chart-axis: var(--fs-color-muted);\n --fs-chart-tooltip-bg: var(--fs-tooltip-bg);\n --fs-chart-tooltip-text: var(--fs-tooltip-text);\n }\n}\n@layer reset {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n html {\n line-height: var(--fs-line-height-base);\n text-size-adjust: 100%;\n }\n body {\n margin: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n }\n [hidden] {\n display: none !important;\n }\n}\n@layer base {\n body,\n button,\n input,\n select,\n textarea {\n font-family: var(--fs-font-sans);\n font-size: var(--fs-font-size-md);\n }\n code,\n kbd,\n pre,\n samp {\n font-family: var(--fs-font-mono);\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n font-weight: var(--fs-font-weight-semibold);\n line-height: var(--fs-line-height-heading);\n }\n h1 {\n font-size: var(--fs-font-size-h1);\n }\n h2 {\n font-size: var(--fs-font-size-h2);\n }\n h3 {\n font-size: var(--fs-font-size-h3);\n }\n h4 {\n font-size: var(--fs-font-size-h4);\n }\n h5 {\n font-size: var(--fs-font-size-h5);\n }\n h6 {\n font-size: var(--fs-font-size-h6);\n }\n}\n@layer base {\n @media (prefers-reduced-motion: reduce) {\n *,\n *::before,\n *::after {\n scroll-behavior: auto !important;\n transition-duration: 0.01ms !important;\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n }\n .fs-spinner,\n .fs-progress-bar-animated,\n .fs-progress-indeterminate .fs-progress-bar {\n animation-duration: 1.5s !important;\n animation-iteration-count: infinite !important;\n }\n }\n}\n/* stylelint-disable property-no-deprecated, selector-not-notation */\n@layer reset {\n :focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-focus-color);\n outline-offset: var(--fs-focus-offset);\n }\n @media (forced-colors: active) {\n :focus-visible {\n outline: 2px solid CanvasText;\n outline-offset: 2px;\n }\n }\n}\n@layer utilities {\n .fs-u-visually-hidden:not(:focus):not(:focus-within),\n .fs-u-visually-hidden-focusable:not(:focus):not(:focus-within) {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip-path: inset(50%) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n .fs-skip-link {\n position: fixed;\n z-index: 1000;\n inset-block-start: var(--fs-space-2);\n inset-inline-start: var(--fs-space-2);\n transform: translateY(-200%);\n padding: var(--fs-space-2) var(--fs-space-3);\n color: var(--fs-color-on-primary);\n background: var(--fs-color-primary);\n border-radius: var(--fs-radius-sm);\n }\n .fs-skip-link:focus {\n transform: translateY(0);\n }\n}\n@layer components {\n .fs-btn {\n --fs-btn-color: var(--fs-color-text-primary);\n --fs-btn-bg: var(--fs-color-bg-subtle);\n --fs-btn-border-color: var(--fs-color-border-default);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--fs-space-1);\n min-height: var(--fs-control-height);\n padding: 0 var(--fs-control-padding-x);\n border: var(--fs-border-width) solid var(--fs-btn-border-color);\n border-radius: var(--fs-radius-sm);\n color: var(--fs-btn-color);\n background-color: var(--fs-btn-bg);\n font-size: 0.8125rem;\n font-weight: 500;\n text-decoration: none;\n cursor: pointer;\n transition: color var(--fs-transition-fast) var(--fs-ease-standard), background-color var(--fs-transition-fast) var(--fs-ease-standard), border-color var(--fs-transition-fast) var(--fs-ease-standard), box-shadow var(--fs-transition-fast) var(--fs-ease-standard);\n }\n .fs-btn:hover {\n --fs-btn-bg: var(--fs-btn-hover-bg, var(--fs-color-subtle));\n }\n .fs-btn:active {\n --fs-btn-bg: var(--fs-btn-active-bg, var(--fs-color-border));\n }\n .fs-btn:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-btn:disabled,\n .fs-btn.is-disabled {\n opacity: var(--fs-disabled-opacity);\n pointer-events: none;\n }\n .fs-btn-primary {\n --fs-btn-color: var(--fs-color-on-primary);\n --fs-btn-bg: var(--fs-color-primary);\n --fs-btn-border-color: var(--fs-color-primary);\n --fs-btn-hover-bg: var(--fs-color-primary);\n --fs-btn-active-bg: var(--fs-color-primary);\n }\n .fs-btn-outline-primary {\n --fs-btn-color: var(--fs-alert-primary-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-primary);\n }\n .fs-btn-outline-primary:hover,\n .fs-btn-outline-primary:active {\n --fs-btn-color: var(--fs-color-on-primary);\n --fs-btn-bg: var(--fs-color-primary);\n }\n .fs-btn-secondary {\n --fs-btn-color: var(--fs-color-on-secondary);\n --fs-btn-bg: var(--fs-color-secondary);\n --fs-btn-border-color: var(--fs-color-secondary);\n --fs-btn-hover-bg: var(--fs-color-secondary);\n --fs-btn-active-bg: var(--fs-color-secondary);\n }\n .fs-btn-outline-secondary {\n --fs-btn-color: var(--fs-alert-secondary-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-secondary);\n }\n .fs-btn-outline-secondary:hover,\n .fs-btn-outline-secondary:active {\n --fs-btn-color: var(--fs-color-on-secondary);\n --fs-btn-bg: var(--fs-color-secondary);\n }\n .fs-btn-success {\n --fs-btn-color: var(--fs-color-on-success);\n --fs-btn-bg: var(--fs-color-success);\n --fs-btn-border-color: var(--fs-color-success);\n --fs-btn-hover-bg: var(--fs-color-success);\n --fs-btn-active-bg: var(--fs-color-success);\n }\n .fs-btn-outline-success {\n --fs-btn-color: var(--fs-alert-success-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-success);\n }\n .fs-btn-outline-success:hover,\n .fs-btn-outline-success:active {\n --fs-btn-color: var(--fs-color-on-success);\n --fs-btn-bg: var(--fs-color-success);\n }\n .fs-btn-warning {\n --fs-btn-color: var(--fs-color-on-warning);\n --fs-btn-bg: var(--fs-color-warning);\n --fs-btn-border-color: var(--fs-color-warning);\n --fs-btn-hover-bg: var(--fs-color-warning);\n --fs-btn-active-bg: var(--fs-color-warning);\n }\n .fs-btn-outline-warning {\n --fs-btn-color: var(--fs-alert-warning-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-warning);\n }\n .fs-btn-outline-warning:hover,\n .fs-btn-outline-warning:active {\n --fs-btn-color: var(--fs-color-on-warning);\n --fs-btn-bg: var(--fs-color-warning);\n }\n .fs-btn-danger {\n --fs-btn-color: var(--fs-color-on-danger);\n --fs-btn-bg: var(--fs-color-danger);\n --fs-btn-border-color: var(--fs-color-danger);\n --fs-btn-hover-bg: var(--fs-color-danger);\n --fs-btn-active-bg: var(--fs-color-danger);\n }\n .fs-btn-outline-danger {\n --fs-btn-color: var(--fs-alert-danger-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-danger);\n }\n .fs-btn-outline-danger:hover,\n .fs-btn-outline-danger:active {\n --fs-btn-color: var(--fs-color-on-danger);\n --fs-btn-bg: var(--fs-color-danger);\n }\n .fs-btn-info {\n --fs-btn-color: var(--fs-color-on-info);\n --fs-btn-bg: var(--fs-color-info);\n --fs-btn-border-color: var(--fs-color-info);\n --fs-btn-hover-bg: var(--fs-color-info);\n --fs-btn-active-bg: var(--fs-color-info);\n }\n .fs-btn-outline-info {\n --fs-btn-color: var(--fs-alert-info-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-info);\n }\n .fs-btn-outline-info:hover,\n .fs-btn-outline-info:active {\n --fs-btn-color: var(--fs-color-on-info);\n --fs-btn-bg: var(--fs-color-info);\n }\n .fs-btn-sm {\n min-height: var(--fs-control-height-sm);\n padding: 0 var(--fs-control-padding-x-sm);\n font-size: 0.75rem;\n }\n .fs-btn-lg {\n min-height: var(--fs-control-height-lg);\n padding: 0 var(--fs-control-padding-x-lg);\n font-size: 1rem;\n }\n .fs-btn-close {\n position: relative;\n width: 20px;\n height: 20px;\n padding: 0;\n border: none;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-muted);\n background-color: var(--fs-color-surface-raised);\n cursor: pointer;\n }\n .fs-btn-close::before,\n .fs-btn-close::after {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 12px;\n height: 2px;\n background-color: currentcolor;\n content: \"\";\n }\n .fs-btn-close::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n .fs-btn-close::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n .fs-btn-close:hover {\n color: var(--fs-color-text);\n background-color: var(--fs-color-subtle);\n }\n .fs-btn-close:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n}\n@layer components {\n .fs-card {\n position: relative;\n display: flex;\n flex-direction: column;\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n border-radius: var(--fs-radius-lg);\n background-color: var(--fs-color-surface);\n }\n .fs-card-horizontal {\n flex-direction: row;\n }\n .fs-card-horizontal .fs-card-header:first-child {\n border-radius: calc(var(--fs-radius-lg) - 1px) 0 0 calc(var(--fs-radius-lg) - 1px);\n border-right: 1px solid var(--fs-color-border);\n border-bottom: none;\n }\n .fs-card-horizontal .fs-card-footer:last-child {\n border-radius: 0 calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px) 0;\n border-left: 1px solid var(--fs-color-border);\n border-top: none;\n }\n .fs-card-clickable {\n transition: border-color var(--fs-transition-fast) var(--fs-ease-standard), box-shadow var(--fs-transition-fast) var(--fs-ease-standard), transform var(--fs-transition-fast) var(--fs-ease-standard);\n }\n .fs-card-clickable:hover,\n .fs-card-clickable:focus-within {\n border-color: var(--fs-color-primary);\n box-shadow: var(--fs-shadow-sm);\n transform: translateY(-1px);\n }\n .fs-stretched-link {\n color: inherit;\n text-decoration: none;\n }\n .fs-stretched-link::after {\n position: absolute;\n inset: 0;\n z-index: 1;\n content: \"\";\n }\n .fs-card-header,\n .fs-card-body,\n .fs-card-footer {\n padding: 10px;\n }\n .fs-card-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n border-bottom: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-subtle);\n }\n .fs-card-header .fs-card-title {\n margin: 0;\n }\n .fs-card-header:first-child {\n border-radius: calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px) 0 0;\n }\n .fs-card-footer {\n border-top: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-subtle);\n }\n .fs-card-footer:last-child {\n border-radius: 0 0 calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px);\n }\n .fs-card-title {\n margin: 0 0 4px;\n color: var(--fs-color-text);\n font-size: 1rem;\n font-weight: 500;\n }\n .fs-card-subtitle {\n margin: 0 0 8px;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n .fs-card-text {\n margin: 0 0 8px;\n color: var(--fs-color-text);\n font-size: 0.8125rem;\n }\n .fs-card-text:last-child {\n margin-bottom: 0;\n }\n .fs-card-sm .fs-card-header,\n .fs-card-sm .fs-card-body,\n .fs-card-sm .fs-card-footer {\n padding: 5px;\n }\n .fs-card-lg .fs-card-header,\n .fs-card-lg .fs-card-body,\n .fs-card-lg .fs-card-footer {\n padding: 15px;\n }\n}\n@layer components {\n .fs-alert {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 12px 16px;\n border: 1px solid var(--fs-color-border);\n border-left: 5px solid var(--fs-color-border);\n border-radius: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: 0.75rem;\n }\n .fs-alert-primary {\n color: var(--fs-alert-primary-text);\n background-color: var(--fs-alert-primary-bg);\n border-color: var(--fs-color-primary);\n }\n .fs-alert-secondary {\n color: var(--fs-alert-secondary-text);\n background-color: var(--fs-alert-secondary-bg);\n border-color: var(--fs-color-secondary);\n }\n .fs-alert-success {\n color: var(--fs-alert-success-text);\n background-color: var(--fs-alert-success-bg);\n border-color: var(--fs-color-success);\n }\n .fs-alert-warning {\n color: var(--fs-alert-warning-text);\n background-color: var(--fs-alert-warning-bg);\n border-color: var(--fs-color-warning);\n }\n .fs-alert-danger {\n color: var(--fs-alert-danger-text);\n background-color: var(--fs-alert-danger-bg);\n border-color: var(--fs-color-danger);\n }\n .fs-alert-info {\n color: var(--fs-alert-info-text);\n background-color: var(--fs-alert-info-bg);\n border-color: var(--fs-color-info);\n }\n}\n@layer components {\n .fs-badge {\n --fs-badge-color: var(--fs-color-text);\n --fs-badge-bg: var(--fs-color-subtle);\n --fs-badge-border: transparent;\n --fs-badge-height: 22px;\n --fs-badge-radius: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n justify-content: center;\n min-height: var(--fs-badge-height);\n padding: 1px 8px 3px;\n border: 1px solid var(--fs-badge-border);\n border-radius: var(--fs-badge-radius);\n color: var(--fs-badge-color);\n background-color: var(--fs-badge-bg);\n font-size: 0.6875rem;\n font-weight: 500;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n }\n .fs-badge-primary {\n --fs-badge-color: #ffffff;\n --fs-badge-bg: var(--fs-color-primary);\n }\n .fs-badge-soft-primary {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-primary) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-primary) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-primary) 38%, transparent);\n }\n .fs-badge-outline-primary {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-primary) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n .fs-badge-secondary {\n --fs-badge-color: #ffffff;\n --fs-badge-bg: var(--fs-color-secondary);\n }\n .fs-badge-soft-secondary {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-secondary) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-secondary) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-secondary) 38%, transparent);\n }\n .fs-badge-outline-secondary {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-secondary) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n .fs-badge-success {\n --fs-badge-color: #000000;\n --fs-badge-bg: var(--fs-color-success);\n }\n .fs-badge-soft-success {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-success) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-success) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-success) 38%, transparent);\n }\n .fs-badge-outline-success {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-success) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n .fs-badge-warning {\n --fs-badge-color: #000000;\n --fs-badge-bg: var(--fs-color-warning);\n }\n .fs-badge-soft-warning {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-warning) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-warning) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-warning) 38%, transparent);\n }\n .fs-badge-outline-warning {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-warning) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n .fs-badge-danger {\n --fs-badge-color: #ffffff;\n --fs-badge-bg: var(--fs-color-danger);\n }\n .fs-badge-soft-danger {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-danger) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-danger) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-danger) 38%, transparent);\n }\n .fs-badge-outline-danger {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-danger) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n .fs-badge-info {\n --fs-badge-color: #ffffff;\n --fs-badge-bg: var(--fs-color-info);\n }\n .fs-badge-soft-info {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-info) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-info) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-info) 38%, transparent);\n }\n .fs-badge-outline-info {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-info) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n .fs-badge-sm {\n --fs-badge-height: 18px;\n padding: 0 6px 2px;\n font-size: 0.6875rem;\n }\n .fs-badge-lg {\n --fs-badge-height: 26px;\n padding: 2px 10px 4px;\n font-size: 0.8125rem;\n }\n .fs-badge-dot::before {\n width: 6px;\n height: 6px;\n flex: 0 0 6px;\n border-radius: 50%;\n background-color: currentcolor;\n transform: translateY(1px);\n content: \"\";\n }\n .fs-badge-count {\n min-width: var(--fs-badge-height);\n padding-inline: 6px;\n font-variant-numeric: tabular-nums;\n }\n .fs-badge-split {\n --fs-badge-split-label-bg: var(--fs-color-black);\n --fs-badge-split-label-color: var(--fs-color-white);\n --fs-badge-split-value-bg: var(--fs-color-primary);\n --fs-badge-split-value-color: #ffffff;\n --fs-badge-split-height: 22px;\n --fs-badge-split-radius: 0;\n display: inline-flex;\n min-height: var(--fs-badge-split-height);\n overflow: hidden;\n border-radius: var(--fs-badge-split-radius);\n font-size: 0.6875rem;\n font-weight: 500;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n }\n .fs-badge-split-label,\n .fs-badge-split-value {\n display: inline-flex;\n align-items: center;\n min-height: var(--fs-badge-split-height);\n padding: 1px 8px 3px;\n }\n .fs-badge-split-label {\n color: var(--fs-badge-split-label-color);\n background-color: var(--fs-badge-split-label-bg);\n }\n .fs-badge-split-value {\n color: var(--fs-badge-split-value-color);\n background-color: var(--fs-badge-split-value-bg);\n font-variant-numeric: tabular-nums;\n }\n .fs-badge-split-primary {\n --fs-badge-split-value-bg: var(--fs-color-primary);\n --fs-badge-split-value-color: #ffffff;\n }\n .fs-badge-split-secondary {\n --fs-badge-split-value-bg: var(--fs-color-secondary);\n --fs-badge-split-value-color: #ffffff;\n }\n .fs-badge-split-success {\n --fs-badge-split-value-bg: var(--fs-color-success);\n --fs-badge-split-value-color: #000000;\n }\n .fs-badge-split-warning {\n --fs-badge-split-value-bg: var(--fs-color-warning);\n --fs-badge-split-value-color: #000000;\n }\n .fs-badge-split-danger {\n --fs-badge-split-value-bg: var(--fs-color-danger);\n --fs-badge-split-value-color: #ffffff;\n }\n .fs-badge-split-info {\n --fs-badge-split-value-bg: var(--fs-color-info);\n --fs-badge-split-value-color: #ffffff;\n }\n .fs-badge-split.fs-badge-sm {\n --fs-badge-split-height: 18px;\n min-height: var(--fs-badge-split-height);\n padding: 0;\n }\n .fs-badge-split.fs-badge-lg {\n --fs-badge-split-height: 26px;\n min-height: var(--fs-badge-split-height);\n padding: 0;\n font-size: 0.8125rem;\n }\n .fs-badge-split.fs-badge-sm .fs-badge-split-label,\n .fs-badge-split.fs-badge-sm .fs-badge-split-value {\n padding: 0 6px 2px;\n }\n .fs-badge-split.fs-badge-lg .fs-badge-split-label,\n .fs-badge-split.fs-badge-lg .fs-badge-split-value {\n padding: 2px 10px 4px;\n }\n}\n@layer components {\n .fs-table {\n width: 100%;\n margin-bottom: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n border-collapse: collapse;\n }\n .fs-table th,\n .fs-table td {\n padding: 8px 12px;\n border-bottom: 1px solid var(--fs-color-border);\n text-align: left;\n vertical-align: middle;\n }\n .fs-table thead th {\n border-bottom-width: 2px;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n font-weight: 500;\n text-transform: uppercase;\n }\n .fs-table-striped tbody tr:nth-of-type(odd) {\n background-color: var(--fs-color-subtle);\n }\n .fs-table-hover tbody tr:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-table-bordered th,\n .fs-table-bordered td {\n border: 1px solid var(--fs-color-border);\n }\n .fs-table-borderless th,\n .fs-table-borderless td {\n border: 0;\n }\n .fs-table-primary {\n background-color: var(--fs-alert-primary-bg);\n color: var(--fs-alert-primary-text);\n }\n .fs-table-secondary {\n background-color: var(--fs-alert-secondary-bg);\n color: var(--fs-alert-secondary-text);\n }\n .fs-table-success {\n background-color: var(--fs-alert-success-bg);\n color: var(--fs-alert-success-text);\n }\n .fs-table-warning {\n background-color: var(--fs-alert-warning-bg);\n color: var(--fs-alert-warning-text);\n }\n .fs-table-danger {\n background-color: var(--fs-alert-danger-bg);\n color: var(--fs-alert-danger-text);\n }\n .fs-table-info {\n background-color: var(--fs-alert-info-bg);\n color: var(--fs-alert-info-text);\n }\n .fs-table-sm th,\n .fs-table-sm td {\n padding: 4px 8px;\n }\n .fs-table-responsive {\n overflow-x: auto;\n }\n .fs-table-caption {\n caption-side: top;\n padding: var(--fs-space-2) 0;\n color: var(--fs-color-muted);\n text-align: start;\n }\n .fs-table-empty {\n padding: var(--fs-space-5);\n color: var(--fs-color-muted);\n text-align: center;\n }\n @media (width < 640px) {\n .fs-table-priority th:nth-child(n+4),\n .fs-table-priority td:nth-child(n+4) {\n display: none;\n }\n }\n}\n@layer components {\n .fs-navbar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n padding: 12px 16px;\n border-bottom: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-surface);\n }\n .fs-navbar-brand {\n color: var(--fs-color-text);\n font-size: 1rem;\n font-weight: 500;\n text-decoration: none;\n }\n .fs-navbar-nav {\n display: flex;\n align-items: center;\n gap: 4px;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .fs-navbar-toggler {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 44px;\n min-height: 44px;\n padding: 8px;\n color: var(--fs-color-text);\n background: transparent;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-sm);\n cursor: pointer;\n }\n .fs-navbar-collapse {\n flex-basis: 100%;\n width: 100%;\n }\n .fs-navbar-collapse:not(.is-open) {\n display: none;\n }\n .fs-navbar-collapse.is-open .fs-navbar-nav {\n flex-direction: column;\n align-items: stretch;\n }\n @media (width >= 768px) {\n .fs-navbar-toggler {\n display: none;\n }\n .fs-navbar-collapse,\n .fs-navbar-collapse:not(.is-open),\n .fs-navbar-collapse[hidden] {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: flex-end;\n width: auto;\n }\n .fs-navbar-collapse .fs-navbar-nav {\n flex-direction: row;\n }\n }\n .fs-nav-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n text-decoration: none;\n transition: background-color 0.15s ease-in-out;\n }\n .fs-nav-link:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-nav-link:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-nav-link.is-active {\n color: var(--fs-alert-primary-text);\n font-weight: 500;\n }\n .fs-nav-link.is-disabled {\n color: var(--fs-color-muted);\n pointer-events: none;\n }\n}\n@layer components {\n .fs-combobox {\n position: relative;\n display: inline-flex;\n width: 100%;\n }\n .fs-combobox-listbox {\n overflow-y: auto;\n max-height: 240px;\n }\n}\n@layer components {\n [data-theme=dark] .fs-form-control[type=date]::-webkit-calendar-picker-indicator,\n [data-theme=dark] .fs-form-control[type=time]::-webkit-calendar-picker-indicator {\n filter: invert(1);\n }\n .fs-datepicker {\n position: relative;\n display: inline-flex;\n width: 100%;\n }\n .fs-datepicker-panel {\n display: none;\n width: min(280px, 100vw - 2 * var(--fs-space-3));\n padding: 12px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n z-index: var(--fs-z-dropdown);\n }\n .fs-datepicker-panel.is-open {\n display: block;\n }\n .fs-datepicker-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n }\n .fs-datepicker-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 border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: 0.8125rem;\n cursor: pointer;\n }\n .fs-datepicker-nav:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-datepicker-nav:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-datepicker-title {\n font-size: 0.75rem;\n font-weight: 500;\n text-transform: capitalize;\n }\n .fs-datepicker-grid {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .fs-datepicker-weekdays,\n .fs-datepicker-week {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 2px;\n }\n .fs-datepicker-weekday {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 28px;\n color: var(--fs-color-muted);\n font-size: 0.6875rem;\n font-weight: 500;\n text-align: center;\n text-transform: uppercase;\n }\n .fs-datepicker-day {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n border: none;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: 0.75rem;\n cursor: pointer;\n }\n .fs-datepicker-day:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-datepicker-day:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-datepicker-day.is-outside {\n color: var(--fs-color-muted);\n }\n .fs-datepicker-day.is-today {\n font-weight: 600;\n box-shadow: inset 0 0 0 1px var(--fs-color-primary);\n }\n .fs-datepicker-day.is-selected {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n .fs-datepicker-day:disabled {\n color: var(--fs-color-muted);\n pointer-events: none;\n opacity: 0.4;\n }\n}\n@layer components {\n .fs-datatable-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n }\n .fs-datatable-sort-btn {\n display: inline-flex;\n align-items: center;\n width: 100%;\n padding: 0;\n border: 0;\n background-color: var(--fs-color-surface-raised);\n color: inherit;\n font: inherit;\n text-transform: inherit;\n text-align: left;\n cursor: pointer;\n }\n .fs-datatable-sort-btn:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-datatable-sort-btn::after {\n flex-shrink: 0;\n margin-left: auto;\n padding-left: 4px;\n color: var(--fs-color-muted);\n font-size: 0.6875rem;\n content: \"↕\";\n }\n th[aria-sort=ascending] .fs-datatable-sort-btn::after {\n color: var(--fs-color-text);\n content: \"↑\";\n }\n th[aria-sort=descending] .fs-datatable-sort-btn::after {\n color: var(--fs-color-text);\n content: \"↓\";\n }\n .fs-datatable [data-fs-datatable-pagination] {\n display: flex;\n justify-content: flex-end;\n margin-top: 12px;\n }\n .fs-datatable td:focus-visible,\n .fs-datatable th:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n outline-offset: -2px;\n }\n}\n@layer components {\n .fs-command-palette {\n position: fixed;\n inset: 0;\n z-index: var(--fs-z-modal);\n display: none;\n align-items: flex-start;\n justify-content: center;\n padding: 72px 16px 16px;\n background-color: rgba(0, 0, 0, 0.5);\n }\n .fs-command-palette.is-open {\n display: flex;\n }\n .fs-command-palette-dialog {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 480px;\n max-height: calc(100vh - 88px);\n overflow: hidden;\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-lg);\n }\n .fs-command-palette-input {\n width: 100%;\n padding: 16px 20px;\n border: none;\n border-bottom: 1px solid var(--fs-color-border);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: 1rem;\n }\n .fs-command-palette-input:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-command-palette-list {\n margin: 0;\n padding: 6px 0;\n overflow-y: auto;\n list-style: none;\n }\n}\n@layer components {\n .fs-tree,\n .fs-tree [role=group] {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .fs-tree [role=group] {\n padding-left: 20px;\n }\n .fs-tree [role=treeitem] {\n border-radius: var(--fs-radius-sm);\n }\n .fs-tree [role=treeitem]:focus-visible {\n outline: none;\n }\n .fs-tree [role=treeitem]:focus-visible > .fs-tree-label {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-tree-label {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 8px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n font-size: 0.8125rem;\n cursor: pointer;\n user-select: none;\n }\n .fs-tree-label:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-tree [role=treeitem][aria-selected=true] > .fs-tree-label {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n .fs-tree-toggle {\n flex-shrink: 0;\n width: 0;\n height: 0;\n border-top: 4px solid transparent;\n border-bottom: 4px solid transparent;\n border-left: 5px solid currentcolor;\n transition: transform 0.15s ease-in-out;\n }\n .fs-tree [role=treeitem][aria-expanded=true] > .fs-tree-label > .fs-tree-toggle {\n transform: rotate(90deg);\n }\n}\n@layer components {\n .fs-dropdown {\n position: relative;\n display: inline-flex;\n }\n .fs-dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n vertical-align: middle;\n content: \"\";\n border-top: 5px solid;\n border-right: 5px solid transparent;\n border-left: 5px solid transparent;\n }\n .fs-dropdown-menu {\n position: absolute;\n display: none;\n min-width: 180px;\n margin: 0;\n padding: 6px 0;\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n z-index: var(--fs-z-dropdown);\n }\n .fs-dropdown-menu.is-open {\n display: block;\n }\n .fs-dropdown-item {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 8px 16px;\n border: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: 0.8125rem;\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n }\n .fs-dropdown-item:hover,\n .fs-dropdown-item:focus-visible {\n color: var(--fs-color-text);\n background-color: var(--fs-color-subtle);\n outline: none;\n }\n .fs-dropdown-item.is-active {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n .fs-dropdown-item.is-disabled {\n color: var(--fs-color-muted);\n pointer-events: none;\n opacity: 0.6;\n }\n .fs-dropdown-divider {\n height: 1px;\n margin: 6px 0;\n border: none;\n background-color: var(--fs-color-border);\n }\n .fs-dropdown-header {\n padding: 4px 16px;\n color: var(--fs-color-muted);\n font-size: 0.6875rem;\n font-weight: 500;\n text-transform: uppercase;\n }\n}\n@layer components {\n .fs-modal {\n position: fixed;\n inset: 0;\n z-index: var(--fs-z-modal);\n display: none;\n align-items: center;\n justify-content: center;\n padding: var(--fs-space-4);\n background-color: rgba(0, 0, 0, 0.5);\n }\n .fs-modal.is-open {\n display: flex;\n }\n .fs-modal-dialog {\n width: 100%;\n max-width: 480px;\n }\n .fs-modal-dialog.fs-modal-sm {\n max-width: 320px;\n }\n .fs-modal-dialog.fs-modal-lg {\n max-width: 720px;\n }\n .fs-modal-dialog.fs-modal-xl {\n max-width: 1140px;\n }\n .fs-modal-dialog.fs-modal-fullscreen {\n max-width: none;\n height: 100%;\n }\n .fs-modal-content {\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 2 * var(--fs-space-4));\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-lg);\n }\n .fs-modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid var(--fs-color-border);\n }\n .fs-modal-title {\n margin: 0;\n font-size: 1rem;\n font-weight: 500;\n }\n .fs-modal-body {\n padding: 20px;\n overflow-y: auto;\n }\n .fs-modal-scrollable .fs-modal-content {\n overflow: hidden;\n }\n .fs-modal-scrollable .fs-modal-body {\n overflow-y: auto;\n }\n @media (width < 640px) {\n .fs-modal {\n align-items: flex-end;\n padding: 0;\n }\n .fs-modal-dialog,\n .fs-modal-dialog.fs-modal-sm,\n .fs-modal-dialog.fs-modal-lg,\n .fs-modal-dialog.fs-modal-xl {\n max-width: none;\n }\n .fs-modal-content {\n max-height: calc(100dvh - var(--fs-safe-area-top));\n border-radius: var(--fs-radius-md) var(--fs-radius-md) 0 0;\n }\n }\n .fs-modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 16px 20px;\n border-top: 1px solid var(--fs-color-border);\n }\n}\n@layer components {\n .fs-alert-dialog-message {\n margin: 4px 0 0;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n}\n@layer components {\n .fs-divider {\n margin: 16px 0;\n border: 0;\n border-top: 1px solid var(--fs-color-border);\n }\n .fs-divider:not(hr) {\n display: flex;\n align-items: center;\n border-top: none;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n .fs-divider:not(hr)::before,\n .fs-divider:not(hr)::after {\n flex: 1;\n content: \"\";\n border-top: 1px solid var(--fs-color-border);\n }\n .fs-divider-label {\n padding: 0 12px;\n }\n}\n@layer components {\n .fs-empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 48px 24px;\n text-align: center;\n }\n .fs-empty-state[hidden] {\n display: none;\n }\n .fs-empty-state-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 64px;\n height: 64px;\n margin-bottom: 16px;\n border-radius: 50%;\n color: var(--fs-color-muted);\n background-color: var(--fs-color-subtle);\n font-size: 28px;\n }\n .fs-empty-state-title {\n margin: 0;\n color: var(--fs-color-text);\n font-size: 1rem;\n font-weight: 500;\n }\n .fs-empty-state-text {\n max-width: 360px;\n margin: 4px 0 20px;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n}\n@layer components {\n .fs-rating {\n display: inline-flex;\n flex-direction: row-reverse;\n }\n .fs-rating-input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n .fs-rating-star {\n display: flex;\n padding: 2px;\n color: var(--fs-color-border);\n font-size: 24px;\n cursor: pointer;\n }\n .fs-rating-input:checked ~ .fs-rating-star,\n .fs-rating-star:hover,\n .fs-rating-star:hover ~ .fs-rating-star {\n color: var(--fs-color-warning);\n }\n .fs-rating-input:checked ~ .fs-rating-star .fs-icon,\n .fs-rating-star:hover .fs-icon,\n .fs-rating-star:hover ~ .fs-rating-star .fs-icon {\n fill: currentcolor;\n }\n .fs-rating-input:focus-visible + .fs-rating-star {\n border-radius: var(--fs-radius-sm);\n outline: 2px solid var(--fs-color-primary);\n outline-offset: 2px;\n }\n .fs-rating-input:disabled + .fs-rating-star {\n opacity: 0.5;\n pointer-events: none;\n }\n .fs-rating-sm .fs-rating-star {\n font-size: 16px;\n }\n .fs-rating-lg .fs-rating-star {\n font-size: 32px;\n }\n}\n@layer components {\n .fs-tag {\n gap: 0;\n padding: 0 0 0 8px;\n }\n .fs-tag-label {\n min-width: 0;\n }\n .fs-tag-truncate {\n max-inline-size: min(100%, var(--fs-tag-max-inline-size, 20rem));\n }\n .fs-tag-truncate .fs-tag-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .fs-tag-icon {\n display: inline-grid;\n width: 12px;\n height: 12px;\n flex: 0 0 12px;\n margin-right: 4px;\n place-items: center;\n }\n .fs-tag-icon .fs-icon {\n width: 12px;\n height: 12px;\n stroke: currentcolor;\n }\n .fs-tag .fs-btn-close {\n width: calc(var(--fs-badge-height) - 2px);\n height: calc(var(--fs-badge-height) - 2px);\n flex: 0 0 calc(var(--fs-badge-height) - 2px);\n margin-left: 4px;\n border-radius: 0;\n background-color: transparent;\n color: inherit;\n opacity: 0.7;\n transition: opacity 0.1s ease-in-out, background-color 0.1s ease-in-out, transform 0.1s ease-in-out;\n }\n .fs-tag .fs-btn-close::before,\n .fs-tag .fs-btn-close::after {\n top: calc(50% + 1px);\n width: 8px;\n }\n .fs-tag .fs-btn-close:hover {\n color: inherit;\n background-color: color-mix(in srgb, currentcolor 18%, transparent);\n opacity: 1;\n }\n .fs-tag .fs-btn-close:active {\n background-color: color-mix(in srgb, currentcolor 28%, transparent);\n transform: scale(0.9);\n }\n .fs-tag-group {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n }\n .fs-tag:focus-within {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-tag.is-loading,\n .fs-tag[aria-busy=true] {\n --fs-badge-bg: var(--fs-color-warning);\n --fs-badge-color: var(--fs-color-black);\n --fs-badge-border: transparent;\n cursor: progress;\n }\n .fs-tag.is-loading .fs-spinner,\n .fs-tag[aria-busy=true] .fs-spinner {\n width: 12px;\n height: 12px;\n flex: 0 0 12px;\n margin: 0 6px 0 4px;\n border-width: 2px;\n color: var(--fs-color-black);\n }\n .fs-tag.is-loading .fs-btn-close,\n .fs-tag[aria-busy=true] .fs-btn-close {\n display: none;\n }\n .fs-tag-group .fs-tag + .fs-tag {\n border-inline-start-color: color-mix(in srgb, currentcolor 24%, transparent);\n }\n .fs-tag-group .fs-tag {\n padding-inline-start: calc(var(--fs-badge-height) + 2px);\n transition: background-color 0.1s ease-in-out;\n }\n .fs-tag-group .fs-btn-close {\n pointer-events: none;\n opacity: 0;\n }\n .fs-tag-group .fs-tag:hover .fs-btn-close,\n .fs-tag-group .fs-tag:focus-within .fs-btn-close {\n pointer-events: auto;\n opacity: 0.7;\n }\n .fs-tag-group .fs-tag:hover,\n .fs-tag-group .fs-tag:focus-within {\n background-color: color-mix(in srgb, currentcolor 18%, transparent);\n }\n .fs-tag-overflow {\n --fs-badge-bg: transparent;\n --fs-badge-color: var(--fs-alert-primary-text);\n --fs-badge-border: transparent;\n width: var(--fs-badge-height);\n height: var(--fs-badge-height);\n min-width: var(--fs-badge-height);\n padding: 0;\n border: 0;\n appearance: none;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font: inherit;\n line-height: 0;\n }\n .fs-tag-overflow .fs-icon {\n display: block;\n flex: 0 0 13px;\n width: 13px;\n height: 13px;\n stroke: currentcolor;\n }\n .fs-tag-overflow:hover,\n .fs-tag-group .fs-tag-overflow:hover {\n background-color: transparent;\n border-color: transparent;\n }\n .fs-tag-group .fs-tag-overflow {\n padding-inline-start: 0;\n }\n .fs-tag-overflow:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-tag-group .fs-btn-close:hover {\n color: inherit;\n background-color: transparent;\n opacity: 0.7;\n }\n .fs-tag-protected {\n pointer-events: none;\n }\n .fs-tag-lock {\n display: inline-grid;\n width: calc(var(--fs-badge-height) - 2px);\n height: calc(var(--fs-badge-height) - 2px);\n margin-left: 4px;\n place-items: center;\n }\n .fs-tag-lock svg {\n width: 12px;\n height: 12px;\n stroke: currentcolor;\n stroke-width: 2;\n }\n}\n@layer components {\n .fs-offcanvas {\n position: fixed;\n z-index: var(--fs-z-offcanvas);\n display: flex;\n flex-direction: column;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-lg);\n visibility: hidden;\n transition: transform 0.3s ease, visibility 0.3s ease;\n }\n .fs-offcanvas.is-open {\n visibility: visible;\n transform: none;\n }\n .fs-offcanvas-start {\n inset: 0 auto 0 0;\n width: 320px;\n transform: translateX(-100%);\n }\n .fs-offcanvas-end {\n inset: 0 0 0 auto;\n width: 320px;\n transform: translateX(100%);\n }\n .fs-offcanvas-top {\n inset: 0 0 auto;\n height: 40vh;\n transform: translateY(-100%);\n }\n .fs-offcanvas-bottom {\n inset: auto 0 0;\n height: 40vh;\n transform: translateY(100%);\n }\n .fs-offcanvas-backdrop {\n position: fixed;\n inset: 0;\n z-index: calc(var(--fs-z-offcanvas) - 1);\n background-color: rgba(0, 0, 0, 0.5);\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.3s ease, visibility 0.3s ease;\n }\n .fs-offcanvas-backdrop.is-open {\n visibility: visible;\n opacity: 1;\n }\n .fs-offcanvas-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid var(--fs-color-border);\n }\n .fs-offcanvas-title {\n margin: 0;\n font-size: 1rem;\n font-weight: 500;\n }\n .fs-offcanvas-body {\n flex: 1 1 auto;\n padding: 20px;\n overflow-y: auto;\n }\n .fs-offcanvas-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 16px 20px;\n border-top: 1px solid var(--fs-color-border);\n }\n .fs-offcanvas-responsive {\n width: min(100%, 420px);\n }\n @media (width >= 1024px) {\n .fs-offcanvas-lg {\n position: static;\n width: auto;\n height: auto;\n visibility: visible;\n transform: none;\n box-shadow: none;\n }\n .fs-offcanvas-lg + .fs-offcanvas-backdrop {\n display: none;\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-offcanvas,\n .fs-offcanvas-backdrop {\n transition: none;\n }\n }\n}\n@layer components {\n .fs-accordion {\n display: flex;\n flex-direction: column;\n }\n .fs-accordion-item {\n overflow: hidden;\n border: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-surface-raised);\n }\n .fs-accordion-item + .fs-accordion-item {\n border-top: none;\n }\n .fs-accordion-item:first-child {\n border-top-left-radius: var(--fs-radius-md);\n border-top-right-radius: var(--fs-radius-md);\n }\n .fs-accordion-item:last-child {\n border-bottom-right-radius: var(--fs-radius-md);\n border-bottom-left-radius: var(--fs-radius-md);\n }\n .fs-accordion-flush .fs-accordion-item {\n border-inline: 0;\n border-radius: 0;\n }\n .fs-accordion-flush .fs-accordion-item:first-child {\n border-block-start: 0;\n }\n .fs-accordion-always-open .fs-accordion-button[aria-expanded=true]::after {\n transform: rotate(-135deg);\n }\n .fs-accordion-header {\n margin: 0;\n }\n .fs-accordion-button {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 14px 16px;\n border: none;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n font-size: 0.8125rem;\n font-weight: 500;\n text-align: left;\n cursor: pointer;\n }\n .fs-accordion-button:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-accordion-button:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-accordion-button::after {\n flex-shrink: 0;\n width: 8px;\n height: 8px;\n margin-left: 12px;\n content: \"\";\n border-right: 2px solid currentcolor;\n border-bottom: 2px solid currentcolor;\n transform: rotate(45deg);\n transition: transform 0.2s ease-in-out;\n }\n .fs-accordion-button[aria-expanded=true]::after {\n transform: rotate(-135deg);\n }\n .fs-accordion-collapse {\n overflow: hidden;\n }\n .fs-accordion-body {\n padding: 16px;\n border-top: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-surface-raised);\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-accordion-button::after {\n transition: none;\n }\n }\n}\n@layer components {\n .fs-tabs {\n display: flex;\n border-bottom: var(--fs-border-width) solid var(--fs-color-border-default);\n }\n .fs-tabs .fs-nav-link {\n margin-bottom: -1px;\n border-bottom: 2px solid transparent;\n border-radius: var(--fs-radius-sm) var(--fs-radius-sm) 0 0;\n }\n .fs-tabs .fs-nav-link.is-active {\n border-bottom-color: var(--fs-color-primary);\n }\n .fs-tabs-pill {\n gap: 4px;\n border-bottom: none;\n }\n .fs-tabs-pill .fs-nav-link {\n margin-bottom: 0;\n border-bottom: none;\n border-radius: var(--fs-radius-sm);\n }\n .fs-tabs-pill .fs-nav-link.is-active {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n .fs-tabs-depth {\n gap: 2px;\n padding: 4px 4px 0;\n background-color: var(--fs-color-subtle);\n }\n .fs-tabs-depth .fs-nav-link {\n margin-bottom: -1px;\n border: 1px solid transparent;\n border-bottom: none;\n border-radius: var(--fs-radius-sm) var(--fs-radius-sm) 0 0;\n }\n .fs-tabs-depth .fs-nav-link.is-active {\n border-color: var(--fs-color-border);\n background-color: var(--fs-color-surface);\n }\n .fs-tabs-center {\n justify-content: center;\n }\n .fs-tabs-right {\n justify-content: flex-end;\n }\n .fs-tabs-fill .fs-nav-link {\n flex: 1;\n justify-content: center;\n text-align: center;\n }\n .fs-tabs-sm .fs-nav-link {\n padding: 6px 10px;\n font-size: 0.75rem;\n }\n .fs-tabs-lg .fs-nav-link {\n padding: 10px 16px;\n font-size: 1rem;\n }\n .fs-tab-content > .fs-tab-pane {\n display: none;\n }\n .fs-tab-content > .fs-tab-pane.is-active {\n display: block;\n }\n}\n@layer components {\n .fs-tooltip {\n position: absolute;\n z-index: var(--fs-z-tooltip);\n display: none;\n max-width: 220px;\n }\n .fs-tooltip.is-open {\n display: block;\n }\n .fs-tooltip-inner {\n padding: 6px 10px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-tooltip-text);\n background-color: var(--fs-tooltip-bg);\n font-size: 0.6875rem;\n text-align: center;\n }\n .fs-tooltip-arrow {\n position: absolute;\n width: 8px;\n height: 8px;\n background-color: var(--fs-tooltip-bg);\n transform: rotate(45deg);\n }\n .fs-tooltip[data-placement=top] .fs-tooltip-arrow {\n bottom: -4px;\n left: 50%;\n margin-left: -4px;\n }\n .fs-tooltip[data-placement=bottom] .fs-tooltip-arrow {\n top: -4px;\n left: 50%;\n margin-left: -4px;\n }\n .fs-tooltip[data-placement=left] .fs-tooltip-arrow {\n top: 50%;\n right: -4px;\n margin-top: -4px;\n }\n .fs-tooltip[data-placement=right] .fs-tooltip-arrow {\n top: 50%;\n left: -4px;\n margin-top: -4px;\n }\n}\n@layer components {\n .fs-popover {\n position: absolute;\n z-index: var(--fs-z-offcanvas);\n display: none;\n max-width: 280px;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n box-shadow: var(--fs-shadow-md);\n }\n .fs-popover.is-open {\n display: block;\n }\n .fs-popover-header {\n padding: 10px 14px;\n background-color: var(--fs-color-subtle);\n border-bottom: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md) var(--fs-radius-md) 0 0;\n font-size: 0.75rem;\n font-weight: 500;\n }\n .fs-popover-body {\n padding: 14px;\n font-size: 0.75rem;\n }\n .fs-popover-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 10px 14px;\n border-top: 1px solid var(--fs-color-border);\n }\n .fs-popover-arrow {\n position: absolute;\n width: 8px;\n height: 8px;\n background-color: var(--fs-color-surface);\n border: 1px solid var(--fs-color-border);\n transform: rotate(45deg);\n }\n .fs-popover[data-placement=top] .fs-popover-arrow {\n bottom: -5px;\n left: 50%;\n margin-left: -4px;\n border-top: 0;\n border-left: 0;\n }\n .fs-popover[data-placement=bottom] .fs-popover-arrow {\n top: -5px;\n left: 50%;\n margin-left: -4px;\n border-right: 0;\n border-bottom: 0;\n }\n .fs-popover[data-placement=left] .fs-popover-arrow {\n top: 50%;\n right: -5px;\n margin-top: -4px;\n border-bottom: 0;\n border-left: 0;\n }\n .fs-popover[data-placement=right] .fs-popover-arrow {\n top: 50%;\n left: -5px;\n margin-top: -4px;\n border-top: 0;\n border-right: 0;\n }\n .fs-popover-hover-card {\n max-width: 320px;\n }\n .fs-popover-hover-card .fs-popover-body {\n display: flex;\n gap: 12px;\n }\n}\n@layer components {\n .fs-toast-container {\n position: fixed;\n right: 16px;\n bottom: 16px;\n z-index: var(--fs-z-toast);\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: min(360px, 100%);\n max-width: calc(100vw - 2 * var(--fs-space-3));\n }\n .fs-toast {\n display: flex;\n overflow: hidden;\n flex-direction: column;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n }\n .fs-toast-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n border-bottom: 1px solid var(--fs-color-border);\n font-size: 0.75rem;\n font-weight: 500;\n }\n .fs-toast-body {\n padding: 12px;\n font-size: 0.75rem;\n }\n .fs-toast-primary .fs-toast-header {\n color: var(--fs-alert-primary-text);\n background-color: var(--fs-alert-primary-bg);\n }\n .fs-toast-secondary .fs-toast-header {\n color: var(--fs-alert-secondary-text);\n background-color: var(--fs-alert-secondary-bg);\n }\n .fs-toast-success .fs-toast-header {\n color: var(--fs-alert-success-text);\n background-color: var(--fs-alert-success-bg);\n }\n .fs-toast-warning .fs-toast-header {\n color: var(--fs-alert-warning-text);\n background-color: var(--fs-alert-warning-bg);\n }\n .fs-toast-danger .fs-toast-header {\n color: var(--fs-alert-danger-text);\n background-color: var(--fs-alert-danger-bg);\n }\n .fs-toast-info .fs-toast-header {\n color: var(--fs-alert-info-text);\n background-color: var(--fs-alert-info-bg);\n }\n}\n@layer components {\n .fs-pagination {\n display: flex;\n gap: 0.25rem;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .fs-pagination-scroll {\n max-width: 100%;\n overflow-x: auto;\n padding-block: 2px;\n }\n .fs-pagination-scroll .fs-pagination {\n width: max-content;\n }\n .fs-page-link {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n height: 32px;\n padding: 0 8px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n text-decoration: none;\n transition: background-color 0.15s ease-in-out;\n }\n .fs-page-link:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-page-link:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-page-item.is-active .fs-page-link {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n border-color: var(--fs-color-primary);\n }\n .fs-page-item.is-disabled .fs-page-link {\n color: var(--fs-color-muted);\n opacity: 0.6;\n pointer-events: none;\n }\n .fs-pagination-bordered {\n gap: 0;\n }\n .fs-pagination-bordered .fs-page-link {\n border-radius: 0;\n }\n .fs-pagination-bordered .fs-page-item:not(:first-child) .fs-page-link {\n margin-left: -1px;\n }\n .fs-pagination-bordered .fs-page-item:first-child .fs-page-link {\n border-top-left-radius: var(--fs-radius-sm);\n border-bottom-left-radius: var(--fs-radius-sm);\n }\n .fs-pagination-bordered .fs-page-item:last-child .fs-page-link {\n border-top-right-radius: var(--fs-radius-sm);\n border-bottom-right-radius: var(--fs-radius-sm);\n }\n .fs-pagination-bordered .fs-page-link:hover,\n .fs-pagination-bordered .fs-page-item.is-active .fs-page-link {\n position: relative;\n z-index: 1;\n }\n .fs-pagination-sm .fs-page-link {\n min-width: 26px;\n height: 26px;\n padding: 0 6px;\n font-size: 0.6875rem;\n }\n .fs-pagination-lg .fs-page-link {\n min-width: 40px;\n height: 40px;\n padding: 0 12px;\n font-size: 0.8125rem;\n }\n .fs-page-link-text {\n gap: 6px;\n padding: 0 14px;\n }\n}\n@layer components {\n .fs-breadcrumb {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 4px;\n margin: 0;\n padding: 0;\n list-style: none;\n font-size: 0.75rem;\n }\n .fs-breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--fs-color-muted);\n }\n .fs-breadcrumb-item + .fs-breadcrumb-item::before {\n color: var(--fs-color-muted);\n content: \"/\";\n }\n .fs-breadcrumb-item a {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: var(--fs-alert-primary-text);\n text-decoration: none;\n }\n .fs-breadcrumb-item a:hover {\n text-decoration: underline;\n }\n .fs-breadcrumb-item.is-active {\n color: var(--fs-color-text);\n }\n .fs-breadcrumb-item-truncate {\n display: inline-block;\n max-width: 160px;\n vertical-align: bottom;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .fs-breadcrumb-more {\n padding: 0;\n border: none;\n color: var(--fs-color-muted);\n background-color: var(--fs-color-surface-raised);\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n cursor: pointer;\n }\n .fs-breadcrumb-more:hover {\n color: var(--fs-color-text);\n }\n}\n@layer components {\n .fs-spinner {\n --fs-spinner-size: 20px;\n --fs-spinner-stroke: 2px;\n --fs-spinner-duration: 0.8s;\n display: inline-block;\n box-sizing: border-box;\n width: var(--fs-spinner-size);\n height: var(--fs-spinner-size);\n vertical-align: middle;\n border: var(--fs-spinner-stroke) solid color-mix(in srgb, currentcolor 20%, transparent);\n border-top-color: currentcolor;\n border-radius: 50%;\n animation: fokus-spin var(--fs-spinner-duration) linear infinite;\n will-change: transform;\n }\n .fs-spinner-sm {\n --fs-spinner-size: 14px;\n --fs-spinner-stroke: 2px;\n }\n .fs-spinner-lg {\n --fs-spinner-size: 32px;\n --fs-spinner-stroke: 3px;\n }\n .fs-spinner-primary {\n color: var(--fs-color-primary);\n }\n .fs-spinner-secondary {\n color: var(--fs-color-secondary);\n }\n .fs-spinner-success {\n color: var(--fs-color-success);\n }\n .fs-spinner-warning {\n color: var(--fs-color-warning);\n }\n .fs-spinner-danger {\n color: var(--fs-color-danger);\n }\n .fs-spinner-info {\n color: var(--fs-color-info);\n }\n @keyframes fokus-spin {\n to {\n transform: rotate(360deg);\n }\n }\n .fs-progress {\n --fs-progress-height: 8px;\n --fs-progress-track: var(--fs-color-subtle);\n --fs-progress-radius: 0;\n position: relative;\n display: flex;\n height: var(--fs-progress-height);\n overflow: hidden;\n background-color: var(--fs-progress-track);\n border-radius: var(--fs-progress-radius);\n }\n .fs-progress-bar {\n --fs-progress-bar-bg: var(--fs-color-primary);\n --fs-progress-color: var(--fs-color-on-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n width: calc(var(--fs-progress-value, 0) * 1%);\n height: 100%;\n min-width: 0;\n overflow: hidden;\n color: var(--fs-progress-color);\n background-color: var(--fs-progress-bar-bg);\n font-size: 0;\n line-height: 1;\n text-overflow: ellipsis;\n white-space: nowrap;\n transition: width 0.25s ease-out;\n }\n .fs-progress-bar-primary {\n --fs-progress-bar-bg: var(--fs-color-primary);\n --fs-progress-color: #ffffff;\n }\n .fs-progress-bar-secondary {\n --fs-progress-bar-bg: var(--fs-color-secondary);\n --fs-progress-color: #ffffff;\n }\n .fs-progress-bar-success {\n --fs-progress-bar-bg: var(--fs-color-success);\n --fs-progress-color: #000000;\n }\n .fs-progress-bar-warning {\n --fs-progress-bar-bg: var(--fs-color-warning);\n --fs-progress-color: #000000;\n }\n .fs-progress-bar-danger {\n --fs-progress-bar-bg: var(--fs-color-danger);\n --fs-progress-color: #ffffff;\n }\n .fs-progress-bar-info {\n --fs-progress-bar-bg: var(--fs-color-info);\n --fs-progress-color: #ffffff;\n }\n .fs-spinner[data-fs-loading=false] {\n display: none;\n }\n .fs-progress-sm {\n --fs-progress-height: 4px;\n }\n .fs-progress-lg {\n --fs-progress-height: 16px;\n }\n .fs-progress-lg .fs-progress-bar {\n padding-inline: 6px;\n font-size: 0.6875rem;\n }\n .fs-progress-meta {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 12px;\n max-width: 480px;\n margin-bottom: 6px;\n color: var(--fs-color-text);\n font-size: 0.75rem;\n }\n .fs-progress-value {\n color: var(--fs-color-muted);\n font-variant-numeric: tabular-nums;\n }\n .fs-progress-indeterminate .fs-progress-bar {\n width: 36%;\n animation: fokus-progress-indeterminate 1.25s ease-in-out infinite;\n }\n .fs-progress-indeterminate {\n --fs-progress-track: color-mix(in srgb, var(--fs-color-primary) 18%, transparent);\n }\n @keyframes fokus-progress-indeterminate {\n from {\n transform: translateX(-110%);\n }\n to {\n transform: translateX(290%);\n }\n }\n .fs-progress-complete .fs-progress-bar {\n --fs-progress-bar-bg: var(--fs-color-success);\n --fs-progress-color: #000000;\n }\n .fs-progress-error .fs-progress-bar {\n --fs-progress-bar-bg: var(--fs-color-danger);\n --fs-progress-color: #ffffff;\n }\n .fs-progress-status {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n margin-top: 6px;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n .fs-progress-status-icon {\n display: inline-grid;\n width: 14px;\n height: 14px;\n place-items: center;\n color: var(--fs-alert-success-text);\n }\n .fs-progress-status-icon .fs-icon {\n width: 14px;\n height: 14px;\n stroke: currentcolor;\n }\n .fs-progress-status-danger,\n .fs-progress-error + .fs-progress-status {\n color: var(--fs-alert-danger-text);\n }\n .fs-progress-marker {\n position: absolute;\n z-index: 1;\n top: 0;\n bottom: 0;\n left: calc(var(--fs-progress-marker-value) * 1%);\n width: 2px;\n background-color: var(--fs-color-text);\n pointer-events: none;\n transform: translateX(-1px);\n }\n .fs-progress-minimum .fs-progress-bar {\n width: max(var(--fs-progress-value, 0) * 1%, 4px);\n }\n .fs-progress-bar-striped {\n background-image: linear-gradient(45deg, color-mix(in srgb, currentcolor 16%, transparent) 25%, transparent 25%, transparent 50%, color-mix(in srgb, currentcolor 16%, transparent) 50%, color-mix(in srgb, currentcolor 16%, transparent) 75%, transparent 75%, transparent);\n background-size: 16px 16px;\n }\n .fs-progress-bar-animated {\n animation: fokus-progress-stripes 1s linear infinite;\n }\n @keyframes fokus-progress-stripes {\n from {\n background-position: 16px 0;\n }\n to {\n background-position: 0 0;\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-spinner {\n --fs-spinner-duration: 1.5s;\n }\n .fs-progress-bar-animated {\n animation-duration: 1.5s;\n }\n .fs-progress-indeterminate .fs-progress-bar {\n animation-duration: 1.8s;\n }\n }\n}\n@layer components {\n .fs-carousel {\n --fs-carousel-radius: var(--fs-radius-md);\n --fs-carousel-transition-duration: var(--fs-transition-normal);\n --fs-carousel-transition-easing: var(--fs-ease-standard);\n --fs-carousel-control-size: 44px;\n --fs-carousel-control-inset: var(--fs-space-2);\n --fs-carousel-control-gap: var(--fs-space-1);\n --fs-carousel-control-color: var(--fs-color-white);\n --fs-carousel-control-paused-color: var(--fs-color-warning);\n --fs-carousel-control-bg: rgb(15 23 42 / 72%);\n --fs-carousel-control-bg-hover: rgb(15 23 42 / 88%);\n --fs-carousel-focus-color: var(--fs-color-white);\n --fs-carousel-indicator-size: 8px;\n --fs-carousel-indicator-active-width: 24px;\n --fs-carousel-indicator-color: rgb(255 255 255 / 62%);\n --fs-carousel-indicator-active-color: var(--fs-color-white);\n --fs-carousel-caption-scrim: rgb(15 23 42 / 78%);\n --fs-carousel-top-safe-area: calc(var(--fs-carousel-control-size) + (var(--fs-carousel-control-inset) * 2));\n --fs-carousel-bottom-safe-area: calc(32px + var(--fs-space-2) + 24px);\n --fs-carousel-progress-height: 3px;\n position: relative;\n overflow: hidden;\n border-radius: var(--fs-carousel-radius);\n }\n .fs-carousel::before {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(var(--fs-carousel-control-size) + var(--fs-carousel-control-inset) * 2);\n pointer-events: none;\n content: \"\";\n background: linear-gradient(to bottom, rgba(15, 23, 42, 0.76), rgba(15, 23, 42, 0.32));\n opacity: 0;\n transition: opacity var(--fs-transition-fast) var(--fs-ease-standard);\n }\n .fs-carousel-inner {\n display: flex;\n transition: transform var(--fs-carousel-transition-duration) var(--fs-carousel-transition-easing);\n }\n .fs-carousel-item {\n position: relative;\n flex: 0 0 100%;\n width: 100%;\n }\n .fs-carousel-item img {\n display: block;\n width: 100%;\n }\n .fs-carousel.is-dragging .fs-carousel-inner {\n cursor: grabbing;\n transition: none;\n user-select: none;\n }\n .fs-carousel:not(.is-static) .fs-carousel-inner {\n cursor: grab;\n touch-action: pan-y;\n }\n .fs-carousel-fade .fs-carousel-inner {\n display: block;\n transform: none;\n }\n .fs-carousel-fade .fs-carousel-item {\n position: absolute;\n inset: 0;\n opacity: 0;\n transition: opacity var(--fs-carousel-transition-duration) var(--fs-carousel-transition-easing);\n }\n .fs-carousel-fade .fs-carousel-item.is-active {\n position: relative;\n opacity: 1;\n }\n .fs-carousel-control-prev,\n .fs-carousel-control-next,\n .fs-carousel-control-toggle {\n position: absolute;\n top: var(--fs-carousel-control-inset);\n z-index: 2;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--fs-carousel-control-size);\n height: var(--fs-carousel-control-size);\n padding: 0;\n color: var(--fs-carousel-control-color);\n background-color: transparent;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 18px 18px;\n border: 0;\n border-radius: 0;\n cursor: pointer;\n opacity: 0;\n transition: background-color var(--fs-transition-fast) var(--fs-ease-standard), opacity var(--fs-transition-fast) var(--fs-ease-standard), transform var(--fs-transition-fast) var(--fs-ease-standard);\n }\n .fs-carousel-control-prev,\n .fs-carousel-control-next {\n transform: none;\n }\n .fs-carousel-control-prev {\n left: var(--fs-carousel-control-inset);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4 6 9l5 5'/%3E%3C/svg%3E\");\n }\n .fs-carousel-control-next {\n left: calc(var(--fs-carousel-control-inset) + var(--fs-carousel-control-size) + var(--fs-carousel-control-gap));\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 4 5 5-5 5'/%3E%3C/svg%3E\");\n }\n .fs-carousel-control-toggle {\n left: calc(var(--fs-carousel-control-inset) + var(--fs-carousel-control-size) + var(--fs-carousel-control-gap));\n }\n .fs-carousel:has(.fs-carousel-control-toggle) .fs-carousel-control-next {\n left: calc(var(--fs-carousel-control-inset) + (var(--fs-carousel-control-size) + var(--fs-carousel-control-gap)) * 2);\n }\n .fs-carousel-control-toggle[aria-pressed=true] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 5v8M11 5v8'/%3E%3C/svg%3E\");\n }\n .fs-carousel-control-toggle[aria-pressed=false] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23ffffff'%3E%3Cpath d='m7 4 7 5-7 5z'/%3E%3C/svg%3E\");\n }\n .fs-carousel.is-autoplay-paused .fs-carousel-control-toggle[aria-pressed=true] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23f0b40e' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 5v8M11 5v8'/%3E%3C/svg%3E\");\n }\n .fs-carousel.is-autoplay-paused .fs-carousel-control-toggle[aria-pressed=false] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23f0b40e'%3E%3Cpath d='m7 4 7 5-7 5z'/%3E%3C/svg%3E\");\n }\n .fs-carousel-control-prev:hover,\n .fs-carousel-control-next:hover,\n .fs-carousel-control-toggle:hover {\n background-color: var(--fs-carousel-control-bg-hover);\n }\n .fs-carousel-control-prev:active,\n .fs-carousel-control-next:active,\n .fs-carousel-control-toggle:active {\n transform: scale(0.94);\n }\n .fs-carousel-control-prev:focus-visible,\n .fs-carousel-control-next:focus-visible,\n .fs-carousel-control-toggle:focus-visible,\n .fs-carousel-indicators button:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-carousel-focus-color);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-carousel-focus-color);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-carousel-focus-color) 22%, transparent);\n }\n .fs-carousel:hover .fs-carousel-control-prev,\n .fs-carousel:hover .fs-carousel-control-next,\n .fs-carousel:hover .fs-carousel-control-toggle,\n .fs-carousel:focus-within .fs-carousel-control-prev,\n .fs-carousel:focus-within .fs-carousel-control-next,\n .fs-carousel:focus-within .fs-carousel-control-toggle {\n opacity: 1;\n }\n .fs-carousel:hover::before,\n .fs-carousel:focus-within::before {\n opacity: 1;\n }\n .fs-carousel-indicators {\n position: absolute;\n right: 0;\n bottom: var(--fs-space-2);\n left: 0;\n z-index: 1;\n display: flex;\n justify-content: center;\n gap: 0;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .fs-carousel-indicators button {\n position: relative;\n display: grid;\n width: 28px;\n height: 32px;\n padding: 0;\n place-items: center;\n background: transparent;\n border: 0;\n cursor: pointer;\n }\n .fs-carousel-indicators button::before {\n width: var(--fs-carousel-indicator-size);\n height: var(--fs-carousel-indicator-size);\n content: \"\";\n background-color: var(--fs-carousel-indicator-color);\n border-radius: var(--fs-radius-lg);\n transition: width var(--fs-transition-fast) var(--fs-ease-standard), background-color var(--fs-transition-fast) var(--fs-ease-standard);\n }\n .fs-carousel-indicators button.is-active::before {\n width: var(--fs-carousel-indicator-active-width);\n background-color: var(--fs-carousel-indicator-active-color);\n }\n .fs-carousel-caption {\n position: absolute;\n right: 0;\n bottom: var(--fs-carousel-bottom-safe-area);\n left: 0;\n z-index: 1;\n box-sizing: border-box;\n max-width: min(100%, 42rem);\n max-block-size: calc(100% - var(--fs-carousel-top-safe-area) - var(--fs-carousel-bottom-safe-area));\n isolation: isolate;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--fs-space-2);\n padding: calc(var(--fs-space-4) + 20px) var(--fs-space-4) var(--fs-space-3);\n color: var(--fs-color-white);\n }\n .fs-carousel-caption::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: calc(var(--fs-carousel-bottom-safe-area) * -1);\n left: 0;\n z-index: -1;\n content: \"\";\n background: linear-gradient(to top, var(--fs-carousel-caption-scrim), transparent);\n }\n .fs-carousel-caption > * {\n margin: 0;\n }\n .fs-carousel-caption .fs-btn {\n --fs-btn-color: var(--fs-color-text-primary);\n --fs-btn-bg: var(--fs-color-white);\n --fs-btn-border-color: var(--fs-color-white);\n --fs-btn-hover-bg: var(--fs-color-subtle);\n --fs-btn-active-bg: var(--fs-color-border-default);\n }\n .fs-carousel-caption-side .fs-carousel-caption {\n top: var(--fs-carousel-top-safe-area);\n right: 0;\n bottom: 0;\n left: auto;\n width: min(42%, 28rem);\n max-width: none;\n max-block-size: none;\n padding: var(--fs-space-4) var(--fs-space-4) calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-2));\n background: rgba(15, 23, 42, 0.84);\n }\n .fs-carousel-caption-side .fs-carousel-caption-start {\n right: auto;\n left: 0;\n }\n .fs-carousel-caption-side .fs-carousel-caption::before,\n .fs-carousel-caption-stacked .fs-carousel-caption::before {\n display: none;\n }\n .fs-carousel-caption-stacked {\n --fs-carousel-bottom-safe-area: 0px;\n }\n .fs-carousel-caption-stacked .fs-carousel-caption {\n position: static;\n max-width: none;\n max-block-size: none;\n overflow: visible;\n padding: var(--fs-space-4);\n color: var(--fs-color-text-primary);\n background: var(--fs-color-bg-surface);\n }\n .fs-carousel-caption-stacked .fs-carousel-indicators {\n position: relative;\n bottom: auto;\n background: var(--fs-color-bg-surface);\n }\n .fs-carousel-counter {\n position: absolute;\n right: var(--fs-space-3);\n bottom: var(--fs-space-2);\n z-index: 2;\n color: var(--fs-color-white);\n font-size: 0.75rem;\n font-variant-numeric: tabular-nums;\n }\n .fs-carousel-progress {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n height: var(--fs-carousel-progress-height);\n overflow: hidden;\n background-color: rgba(255, 255, 255, 0.24);\n }\n .fs-carousel-progress > span {\n display: block;\n width: 100%;\n height: 100%;\n background-color: var(--fs-color-white);\n transform: scaleX(0);\n transform-origin: left;\n }\n .fs-carousel-progress.is-running > span {\n animation: fs-carousel-progress var(--fs-carousel-progress-duration, 5000ms) linear forwards;\n }\n .fs-carousel.is-two-slides.fs-carousel-hide-indicators-two .fs-carousel-indicators {\n display: none;\n }\n .fs-carousel-no-media .fs-carousel-item {\n min-block-size: 15rem;\n background-color: var(--fs-color-bg-surface);\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n }\n .fs-carousel-no-media .fs-carousel-counter {\n color: var(--fs-color-text-muted);\n }\n .fs-carousel-no-media .fs-carousel-progress {\n background-color: var(--fs-color-border-default);\n }\n .fs-carousel-no-media .fs-carousel-progress > span {\n background-color: var(--fs-color-action-primary);\n }\n .fs-carousel-media-placeholder {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n min-height: inherit;\n padding: calc(var(--fs-carousel-top-safe-area) + var(--fs-space-4)) var(--fs-space-4) calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-4));\n }\n .fs-carousel-media-placeholder > * {\n max-width: 36rem;\n margin: 0;\n }\n .fs-carousel-media-placeholder > * + * {\n margin-top: var(--fs-space-2);\n }\n .fs-carousel-media {\n min-block-size: 18rem;\n background-position: center;\n background-size: cover;\n }\n .fs-carousel.is-static .fs-carousel-control-prev,\n .fs-carousel.is-static .fs-carousel-control-next,\n .fs-carousel.is-static .fs-carousel-control-toggle,\n .fs-carousel.is-static .fs-carousel-indicators {\n display: none;\n }\n @media (max-width: 639px) {\n .fs-carousel {\n --fs-carousel-control-inset: var(--fs-space-1);\n }\n .fs-carousel-caption {\n padding: calc(var(--fs-space-3) + 20px) var(--fs-space-3) var(--fs-space-3);\n }\n .fs-carousel-caption-side .fs-carousel-caption {\n top: auto;\n bottom: var(--fs-carousel-bottom-safe-area);\n width: auto;\n max-block-size: calc(100% - var(--fs-carousel-top-safe-area) - var(--fs-carousel-bottom-safe-area));\n overflow: clip;\n align-items: flex-end;\n padding: calc(var(--fs-space-3) + 20px) var(--fs-space-3) calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-2));\n text-align: end;\n background: transparent;\n }\n .fs-carousel-caption-side .fs-carousel-caption-start {\n right: 0;\n left: 0;\n align-items: flex-start;\n text-align: start;\n }\n .fs-carousel-caption-side .fs-carousel-item::after {\n position: absolute;\n inset: 0;\n z-index: 0;\n pointer-events: none;\n content: \"\";\n background: linear-gradient(to top, var(--fs-carousel-caption-scrim) 0%, rgba(15, 23, 42, 0.52) 56%, transparent 100%);\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-carousel-inner,\n .fs-carousel-fade .fs-carousel-item,\n .fs-carousel-control-prev,\n .fs-carousel-control-next,\n .fs-carousel-control-toggle,\n .fs-carousel-indicators button::before,\n .fs-carousel-progress.is-running > span {\n transition: none;\n animation: none;\n transform: scaleX(1);\n }\n }\n @keyframes fs-carousel-progress {\n to {\n transform: scaleX(1);\n }\n }\n}\n@layer components {\n .fs-stepper-header {\n display: flex;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .fs-step {\n position: relative;\n display: flex;\n flex: 1 1 0;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n text-align: center;\n }\n .fs-step-indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: var(--fs-color-muted);\n background-color: var(--fs-color-surface);\n border: 2px solid var(--fs-color-border);\n border-radius: 50%;\n font-size: 0.75rem;\n font-weight: 500;\n }\n .fs-step-label {\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n font-weight: 500;\n }\n .fs-step-description {\n color: var(--fs-color-muted);\n font-size: 0.6875rem;\n }\n .fs-step:not(:last-child)::after {\n content: \"\";\n position: absolute;\n top: 15px;\n left: calc(50% + 20px);\n width: calc(100% - 40px);\n height: 2px;\n background-color: var(--fs-color-border);\n }\n .fs-step-active .fs-step-indicator {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n border-color: var(--fs-color-primary);\n }\n .fs-step-active .fs-step-label {\n color: var(--fs-color-text);\n }\n .fs-step-completed .fs-step-indicator {\n color: transparent;\n background-color: var(--fs-color-primary);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5 6.5 12 13 4'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: center;\n border-color: var(--fs-color-primary);\n }\n .fs-step-completed .fs-step-label {\n color: var(--fs-color-text);\n }\n .fs-step-completed:not(:last-child)::after {\n background-color: var(--fs-color-primary);\n }\n .fs-step-error .fs-step-indicator {\n color: #ffffff;\n background-color: var(--fs-color-danger);\n border-color: var(--fs-color-danger);\n }\n .fs-step-error .fs-step-label {\n color: var(--fs-alert-danger-text);\n }\n .fs-step.fs-step-clickable {\n cursor: pointer;\n }\n .fs-step.fs-step-clickable:focus-visible {\n outline: 2px solid var(--fs-color-primary);\n outline-offset: 2px;\n border-radius: var(--fs-radius-sm);\n }\n .fs-stepper-vertical .fs-stepper-header {\n flex-direction: column;\n }\n .fs-stepper-vertical .fs-step {\n flex-direction: row;\n flex: 0 0 auto;\n align-items: flex-start;\n gap: 12px;\n min-height: 56px;\n text-align: left;\n }\n .fs-stepper-vertical .fs-step-content {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding-top: 5px;\n }\n .fs-stepper-vertical .fs-step:not(:last-child)::after {\n top: 34px;\n left: 15px;\n width: 2px;\n height: calc(100% - 22px);\n }\n .fs-step-panel {\n display: none;\n }\n .fs-step-panel.is-active {\n display: block;\n }\n .fs-stepper-content {\n margin-top: 20px;\n }\n .fs-stepper-actions {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n margin-top: 20px;\n }\n}\n@layer components {\n .fs-segmented-control {\n display: inline-flex;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-sm);\n overflow: hidden;\n }\n .fs-segmented-item {\n display: flex;\n }\n .fs-segmented-item:not(:first-child) .fs-segmented-label {\n border-left: 1px solid var(--fs-color-border);\n }\n .fs-segmented-input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n .fs-segmented-label {\n display: inline-flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n min-height: 38px;\n padding: 0 12px;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n font-size: 0.8125rem;\n font-weight: 500;\n text-align: center;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n transition: background-color 0.15s ease-in-out, color 0.15s ease-in-out;\n }\n .fs-segmented-label:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-segmented-input:checked + .fs-segmented-label {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n .fs-segmented-input:focus-visible + .fs-segmented-label {\n position: relative;\n z-index: 1;\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-segmented-input:disabled + .fs-segmented-label {\n opacity: 0.4;\n pointer-events: none;\n }\n .fs-segmented-control-sm .fs-segmented-label {\n min-height: 30px;\n padding: 0 8px;\n font-size: 0.75rem;\n }\n .fs-segmented-control-lg .fs-segmented-label {\n min-height: 46px;\n padding: 0 16px;\n font-size: 1rem;\n }\n}\n@layer components {\n .fs-skeleton {\n display: block;\n background-color: var(--fs-color-subtle);\n border-radius: var(--fs-radius-sm);\n animation: fokus-skeleton-pulse 1.5s ease-in-out infinite;\n }\n .fs-skeleton-text {\n width: 100%;\n height: 1em;\n }\n .fs-skeleton-text:not(:last-child) {\n margin-bottom: 0.5em;\n }\n .fs-skeleton-text:last-child {\n width: 80%;\n }\n .fs-skeleton-circle {\n flex-shrink: 0;\n border-radius: 50%;\n }\n .fs-skeleton-rect {\n border-radius: var(--fs-radius-md);\n }\n .fs-skeleton-card {\n display: grid;\n gap: var(--fs-space-3);\n min-height: 10rem;\n padding: var(--fs-space-4);\n border-radius: var(--fs-radius-md);\n }\n .fs-skeleton-table {\n height: 1.25rem;\n margin-block-end: var(--fs-space-2);\n }\n .fs-skeleton-avatar {\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 50%;\n }\n @keyframes fokus-skeleton-pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n }\n .fs-skeleton-wave {\n position: relative;\n overflow: hidden;\n animation: none;\n }\n .fs-skeleton-wave::after {\n position: absolute;\n inset: 0;\n content: \"\";\n background-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\n transform: translateX(-100%);\n animation: fokus-skeleton-wave 1.6s linear infinite;\n }\n @keyframes fokus-skeleton-wave {\n 100% {\n transform: translateX(100%);\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-skeleton {\n animation: none;\n }\n .fs-skeleton-wave::after {\n animation: none;\n }\n }\n}\n@layer components {\n .fs-timeline {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .fs-timeline-item {\n position: relative;\n display: flex;\n gap: 12px;\n padding-bottom: 24px;\n }\n .fs-timeline-item:last-child {\n padding-bottom: 0;\n }\n .fs-timeline-marker {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n margin-top: 3px;\n background-color: var(--fs-color-surface);\n background-repeat: no-repeat;\n background-position: center;\n border: 2px solid var(--fs-color-border);\n border-radius: 50%;\n }\n .fs-timeline-item:not(:last-child)::before {\n content: \"\";\n position: absolute;\n top: 22px;\n left: 7px;\n width: 2px;\n height: calc(100% - 22px);\n background-color: var(--fs-color-border);\n }\n .fs-timeline-content {\n flex: 1;\n padding-top: 1px;\n }\n .fs-timeline-title {\n margin: 0;\n color: var(--fs-color-text);\n font-size: 0.8125rem;\n font-weight: 500;\n }\n .fs-timeline-text {\n margin: 4px 0 0;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n .fs-timeline-time {\n display: block;\n margin-top: 2px;\n color: var(--fs-color-muted);\n font-size: 0.6875rem;\n }\n .fs-timeline-active .fs-timeline-marker {\n background-color: var(--fs-color-primary);\n border-color: var(--fs-color-primary);\n }\n .fs-timeline-completed .fs-timeline-marker {\n background-color: var(--fs-color-success);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5.5 4 8l4-6'/%3E%3C/svg%3E\");\n border-color: var(--fs-color-success);\n }\n .fs-timeline-completed:not(:last-child)::before {\n background-color: var(--fs-color-success);\n }\n .fs-timeline-failed .fs-timeline-marker {\n background-color: var(--fs-color-danger);\n border-color: var(--fs-color-danger);\n }\n .fs-timeline-failed .fs-timeline-title {\n color: var(--fs-alert-danger-text);\n }\n .fs-timeline-horizontal {\n flex-direction: row;\n }\n .fs-timeline-horizontal .fs-timeline-item {\n flex: 1 1 0;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding-bottom: 0;\n text-align: center;\n }\n .fs-timeline-horizontal .fs-timeline-marker {\n margin-top: 0;\n }\n .fs-timeline-horizontal .fs-timeline-item:not(:last-child)::before {\n top: 7px;\n left: calc(50% + 15px);\n width: calc(100% - 30px);\n height: 2px;\n }\n .fs-timeline-horizontal .fs-timeline-content {\n padding-top: 0;\n }\n}\n@layer components {\n .fs-collapse {\n overflow: hidden;\n }\n}\n@layer components {\n [data-fs=notification-center] {\n position: relative;\n }\n .fs-notification-badge {\n position: absolute;\n top: -6px;\n right: -6px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 999px;\n color: #ffffff;\n background-color: var(--fs-color-danger);\n font-size: 0.65rem;\n font-weight: 500;\n line-height: 1;\n }\n .fs-notification-badge[hidden] {\n display: none;\n }\n .fs-notification-center {\n position: absolute;\n display: none;\n flex-direction: column;\n width: min(320px, 100vw - 2 * var(--fs-space-3));\n max-height: 420px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n z-index: var(--fs-z-notification);\n }\n .fs-notification-center.is-open {\n display: flex;\n }\n .fs-notification-center-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n border-bottom: 1px solid var(--fs-color-border);\n }\n .fs-notification-center-title {\n font-size: 0.75rem;\n font-weight: 500;\n }\n .fs-notification-list {\n margin: 0;\n padding: 0;\n overflow-y: auto;\n list-style: none;\n }\n .fs-notification-item {\n display: flex;\n gap: 10px;\n align-items: flex-start;\n padding: 10px 14px;\n border-left: 3px solid transparent;\n border-bottom: 1px solid var(--fs-color-border);\n }\n .fs-notification-item:last-child {\n border-bottom: none;\n }\n .fs-notification-item-unread {\n background-color: var(--fs-color-subtle);\n }\n .fs-notification-item-primary {\n border-left-color: var(--fs-color-primary);\n }\n .fs-notification-item-secondary {\n border-left-color: var(--fs-color-secondary);\n }\n .fs-notification-item-success {\n border-left-color: var(--fs-color-success);\n }\n .fs-notification-item-warning {\n border-left-color: var(--fs-color-warning);\n }\n .fs-notification-item-danger {\n border-left-color: var(--fs-color-danger);\n }\n .fs-notification-item-info {\n border-left-color: var(--fs-color-info);\n }\n .fs-notification-item-content {\n flex: 1;\n min-width: 0;\n }\n .fs-notification-item-title {\n margin: 0;\n font-size: 0.75rem;\n font-weight: 500;\n }\n .fs-notification-item-text {\n margin: 2px 0 0;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n .fs-notification-item-time {\n display: block;\n margin-top: 4px;\n color: var(--fs-color-muted);\n font-size: 0.6875rem;\n }\n .fs-notification-item .fs-btn-close {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n }\n .fs-notification-empty {\n padding: 24px 14px;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n text-align: center;\n }\n .fs-notification-empty[hidden] {\n display: none;\n }\n}\n@layer components {\n .fs-dropdown-submenu {\n position: relative;\n }\n .fs-dropdown-item-submenu {\n justify-content: space-between;\n }\n .fs-dropdown-item-submenu::after {\n margin-left: 8px;\n content: \"\";\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 5px solid currentcolor;\n }\n .fs-dropdown-submenu > .fs-dropdown-menu {\n top: -7px;\n left: 100%;\n margin: 0;\n }\n .fs-dropdown-submenu:hover > .fs-dropdown-menu,\n .fs-dropdown-submenu > .fs-dropdown-menu.is-open {\n display: block;\n }\n .fs-dropdown-submenu-left > .fs-dropdown-menu {\n right: 100%;\n left: auto;\n }\n}\n@layer components {\n .fs-tile {\n position: relative;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n background-color: var(--fs-color-surface);\n }\n .fs-tile-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-subtle);\n font-size: 1rem;\n }\n .fs-tile-body {\n flex: 1 1 auto;\n min-width: 0;\n }\n .fs-tile-title {\n margin: 0;\n color: var(--fs-color-text);\n font-size: 0.8125rem;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .fs-tile-subtitle {\n margin: 0;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .fs-tile-actions {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 8px;\n }\n .fs-tile-actions-bottom {\n flex-wrap: wrap;\n }\n .fs-tile-actions-bottom .fs-tile-actions {\n flex-basis: 100%;\n justify-content: flex-end;\n margin-top: 4px;\n }\n .fs-tile-clickable {\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .fs-tile-clickable:hover,\n .fs-tile-clickable:focus-within {\n border-color: var(--fs-color-primary);\n box-shadow: var(--fs-shadow-sm);\n }\n .fs-tile-sm {\n gap: 8px;\n padding: 8px;\n }\n .fs-tile-sm .fs-tile-icon {\n width: 32px;\n height: 32px;\n font-size: 0.8125rem;\n }\n .fs-tile-sm .fs-tile-title {\n font-size: 0.75rem;\n }\n .fs-tile-sm .fs-tile-subtitle {\n font-size: 0.6875rem;\n }\n .fs-tile-lg {\n gap: 16px;\n padding: 16px;\n }\n .fs-tile-lg .fs-tile-icon {\n width: 48px;\n height: 48px;\n font-size: 1.25rem;\n }\n .fs-tile-lg .fs-tile-title {\n font-size: 1rem;\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-avatar {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n overflow: hidden;\n color: var(--fs-color-on-primary);\n font-weight: 600;\n background: var(--fs-color-primary);\n border-radius: 50%;\n object-fit: cover;\n }\n .fs-avatar-sm {\n width: 2rem;\n height: 2rem;\n font-size: 0.8125rem;\n }\n .fs-avatar-lg {\n width: 3.5rem;\n height: 3.5rem;\n font-size: 1.25rem;\n }\n .fs-avatar-square {\n border-radius: var(--fs-radius-md);\n }\n .fs-avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-button-group {\n display: inline-flex;\n vertical-align: middle;\n }\n .fs-button-group > .fs-btn {\n border-radius: 0;\n }\n .fs-button-group > .fs-btn:first-child {\n border-start-start-radius: var(--fs-radius-sm);\n border-end-start-radius: var(--fs-radius-sm);\n }\n .fs-button-group > .fs-btn:last-child {\n border-start-end-radius: var(--fs-radius-sm);\n border-end-end-radius: var(--fs-radius-sm);\n }\n .fs-button-group > .fs-btn + .fs-btn {\n margin-inline-start: -1px;\n }\n .fs-button-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n }\n .fs-button-group-vertical > .fs-btn {\n width: 100%;\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-close {\n display: inline-grid;\n width: 2rem;\n height: 2rem;\n place-items: center;\n padding: 0;\n color: currentcolor;\n font-size: 1.5rem;\n line-height: 1;\n background: transparent;\n border: 0;\n border-radius: 50%;\n cursor: pointer;\n opacity: 0.72;\n }\n .fs-close::before {\n content: \"×\";\n }\n .fs-close:hover {\n opacity: 1;\n background: var(--fs-color-subtle);\n }\n .fs-close:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-focus-color);\n outline-offset: var(--fs-focus-offset);\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-list-group {\n display: flex;\n flex-direction: column;\n padding: 0;\n margin: 0;\n list-style: none;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n }\n .fs-list-group-item {\n position: relative;\n display: block;\n padding: var(--fs-space-3) var(--fs-space-4);\n color: var(--fs-color-text);\n background: var(--fs-color-surface);\n border-block-end: 1px solid var(--fs-color-border);\n }\n .fs-list-group-item:last-child {\n border-block-end: 0;\n }\n button.fs-list-group-item, a.fs-list-group-item {\n width: 100%;\n text-align: start;\n cursor: pointer;\n }\n .fs-list-group-item:hover {\n background: var(--fs-color-subtle);\n }\n .fs-list-group-item.is-active {\n color: var(--fs-color-on-primary);\n background: var(--fs-color-primary);\n }\n}\n@layer components {\n .fs-code {\n padding: 0.125em 0.35em;\n color: var(--fs-color-danger);\n background: var(--fs-color-subtle);\n border-radius: var(--fs-radius-sm);\n }\n .fs-pre {\n display: block;\n max-width: 100%;\n padding: var(--fs-space-4);\n overflow: auto;\n color: var(--fs-color-text);\n background: var(--fs-color-subtle);\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-ratio {\n position: relative;\n width: 100%;\n }\n .fs-ratio::before {\n display: block;\n padding-top: var(--fs-ratio, 56.25%);\n content: \"\";\n }\n .fs-ratio > * {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .fs-ratio-1x1 {\n --fs-ratio: 100%;\n }\n .fs-ratio-4x3 {\n --fs-ratio: 75%;\n }\n .fs-ratio-16x9 {\n --fs-ratio: 56.25%;\n }\n .fs-ratio-21x9 {\n --fs-ratio: 42.857%;\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-icon-link {\n display: inline-flex;\n gap: 0.5em;\n align-items: center;\n }\n .fs-icon-link svg {\n width: 1em;\n height: 1em;\n flex: 0 0 auto;\n }\n .fs-icon-link:hover svg {\n transform: translateX(0.15em);\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-icon-link svg {\n transition: none;\n }\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-placeholder {\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background: currentcolor;\n opacity: 0.18;\n }\n .fs-placeholder-glow {\n animation: fs-placeholder-glow 1.5s ease-in-out infinite;\n }\n .fs-placeholder-wave {\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent), currentcolor;\n background-size: 200% 100%;\n animation: fs-placeholder-wave 1.5s linear infinite;\n }\n .fs-placeholder-btn {\n width: 6rem;\n height: 2.5rem;\n border-radius: var(--fs-radius-sm);\n }\n @keyframes fs-placeholder-glow {\n 50% {\n opacity: 0.08;\n }\n }\n @keyframes fs-placeholder-wave {\n to {\n background-position: -200% 0;\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-placeholder-glow, .fs-placeholder-wave {\n animation: none;\n }\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-progress {\n display: flex;\n height: 0.75rem;\n overflow: hidden;\n background: var(--fs-color-subtle);\n border-radius: 999px;\n }\n .fs-progress-bar {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--fs-color-on-primary);\n background: var(--fs-color-primary);\n transition: width var(--fs-motion-duration-normal) var(--fs-motion-ease-standard);\n }\n .fs-progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%);\n background-size: 1rem 1rem;\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-progress-bar {\n transition: none;\n }\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n [data-fs-scrollspy] .is-active {\n color: var(--fs-color-primary);\n font-weight: 600;\n }\n .fs-scrollspy-nav {\n position: sticky;\n inset-block-start: var(--fs-space-4);\n }\n}\n@layer tokens {\n [data-fs-brand=violet] {\n --fs-color-primary: #6d28d9;\n --fs-alert-primary-bg: rgb(229.8834406263, 225.8717327657, 252.5458384302);\n --fs-alert-primary-text: rgb(37.7006407433, 8.7385189481, 83.109047167);\n --fs-feedback-primary-bg: rgb(229.8834406263, 225.8717327657, 252.5458384302);\n }\n [data-fs-brand=violet][data-theme=dark],\n [data-theme=dark] [data-fs-brand=violet] {\n --fs-color-primary: rgb(114.6495158739, 57.1165361442, 219.9746158745);\n --fs-alert-primary-bg: rgb(31.4819726714, 47.0564006856, 82.6607876597);\n --fs-alert-primary-text: rgb(167.4962913963, 147.746130571, 240.0249534535);\n --fs-feedback-primary-bg: rgb(31.4819726714, 47.0564006856, 82.6607876597);\n }\n @supports (color: oklch(0% 0 0deg)) {\n [data-fs-brand=violet] {\n --fs-color-primary: oklch(49.0666497236% 0.2412317343 292.5809393311deg);\n --fs-alert-primary-bg: oklch(92.3599974585% 0.0361847601 292.5809393311deg);\n --fs-alert-primary-text: oklch(24.5333248618% 0.1206158672 292.5809393311deg);\n --fs-feedback-primary-bg: oklch(92.3599974585% 0.0361847601 292.5809393311deg);\n }\n [data-fs-brand=violet][data-theme=dark],\n [data-theme=dark] [data-fs-brand=violet] {\n --fs-color-primary: oklch(51.6133172374% 0.2291701476 292.5809393311deg);\n --fs-alert-primary-bg: oklch(31.117092664% 0.067505667 264.9134801836deg);\n --fs-alert-primary-text: oklch(71.986657348% 0.1326774539 292.5809393311deg);\n --fs-feedback-primary-bg: oklch(31.117092664% 0.067505667 264.9134801836deg);\n }\n }\n [data-fs-brand=corporate] {\n --fs-color-primary: #1d4e89;\n --fs-alert-primary-bg: rgb(219.2237954153, 227.2186121739, 237.6990809983);\n --fs-alert-primary-text: rgb(5.0598830676, 24.6667463069, 49.4731905568);\n --fs-feedback-primary-bg: rgb(219.2237954153, 227.2186121739, 237.6990809983);\n }\n [data-fs-brand=corporate][data-theme=dark],\n [data-theme=dark] [data-fs-brand=corporate] {\n --fs-color-primary: rgb(40.8593466225, 86.5224214637, 143.0926598584);\n --fs-alert-primary-bg: rgb(31.2586947979, 46.3186220749, 70.1321749545);\n --fs-alert-primary-text: rgb(127.9940036809, 155.4045223568, 190.9765129762);\n --fs-feedback-primary-bg: rgb(31.2586947979, 46.3186220749, 70.1321749545);\n }\n [data-fs-brand=vibrant] {\n --fs-color-primary: #f2542d;\n --fs-alert-primary-bg: rgb(255, 231.3637253432, 224.6456124112);\n --fs-alert-primary-text: rgb(93.6202523577, 27.1894355526, 10.7919554552);\n --fs-feedback-primary-bg: rgb(255, 231.3637253432, 224.6456124112);\n }\n [data-fs-brand=vibrant][data-theme=dark],\n [data-theme=dark] [data-fs-brand=vibrant] {\n --fs-color-primary: rgb(244.0763687777, 94.774513804, 58.7750761343);\n --fs-alert-primary-bg: rgb(48.9487024594, 50.7990197305, 85.9119190034);\n --fs-alert-primary-text: rgb(255, 166.953251087, 144.6609410048);\n --fs-feedback-primary-bg: rgb(48.9487024594, 50.7990197305, 85.9119190034);\n }\n @supports (color: oklch(0% 0 0deg)) {\n [data-fs-brand=corporate] {\n --fs-color-primary: oklch(42.3377990386% 0.1112359961 255.1073474093deg);\n --fs-alert-primary-bg: oklch(91.3506698558% 0.0166853994 255.1073474093deg);\n --fs-alert-primary-text: oklch(21.1688995193% 0.055617998 255.1073474093deg);\n --fs-feedback-primary-bg: oklch(91.3506698558% 0.0166853994 255.1073474093deg);\n }\n [data-fs-brand=corporate][data-theme=dark],\n [data-theme=dark] [data-fs-brand=corporate] {\n --fs-color-primary: oklch(45.2209090867% 0.1056741963 255.1073474093deg);\n --fs-alert-primary-bg: oklch(30.1077650613% 0.0480063062 259.2924413953deg);\n --fs-alert-primary-text: oklch(68.2857894712% 0.0611797979 255.1073474093deg);\n --fs-feedback-primary-bg: oklch(30.1077650613% 0.0480063062 259.2924413953deg);\n }\n [data-fs-brand=vibrant] {\n --fs-color-primary: oklch(65.5786741493% 0.2007639921 34.7814711243deg);\n --fs-alert-primary-bg: oklch(94.8368011224% 0.0301145988 34.7814711243deg);\n --fs-alert-primary-text: oklch(32.7893370747% 0.1003819961 34.7814711243deg);\n --fs-feedback-primary-bg: oklch(94.8368011224% 0.0301145988 34.7814711243deg);\n }\n [data-fs-brand=vibrant][data-theme=dark],\n [data-theme=dark] [data-fs-brand=vibrant] {\n --fs-color-primary: oklch(67.2997404419% 0.1907257925 34.7814711243deg);\n --fs-alert-primary-bg: oklch(33.5938963279% 0.0614355056 280.2435599526deg);\n --fs-alert-primary-text: oklch(81.0682707821% 0.1104201957 34.7814711243deg);\n --fs-feedback-primary-bg: oklch(33.5938963279% 0.0614355056 280.2435599526deg);\n }\n }\n}\n@layer overrides {\n [data-fs-brand=vibrant] .fs-btn-primary,\n [data-fs-brand=vibrant] .fs-badge-primary {\n --fs-btn-color: #000000;\n --fs-badge-color: #000000;\n }\n [data-fs-brand=vibrant] .fs-check {\n --fs-check-mark: #000000;\n }\n}\n@layer tokens {\n [data-theme=dark],\n [data-fs-theme=dark] {\n --fs-color-text: #f1f3f4;\n --fs-color-muted: #bdc1c6;\n --fs-color-border: #3c4043;\n --fs-color-surface: #202124;\n --fs-color-subtle: #2b2c2f;\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-color-action-primary: var(--fs-color-primary);\n --fs-color-action-danger: var(--fs-color-danger);\n --fs-shadow-sm: 0 1px 3px rgb(0 0 0 / 50%), 0 1px 2px rgb(0 0 0 / 40%);\n --fs-shadow-md: 0 6px 12px rgb(0 0 0 / 55%), 0 3px 6px rgb(0 0 0 / 45%);\n --fs-shadow-lg: 0 15px 30px rgb(0 0 0 / 60%), 0 6px 12px rgb(0 0 0 / 50%);\n --fs-tooltip-bg: #f8fafc;\n --fs-tooltip-text: #1e293b;\n --fs-color-primary: rgb(39.8728684152, 106.2372587275, 232.1894887664);\n --fs-alert-primary-bg: rgb(30.765779113, 49.9974662348, 82.3021425489);\n --fs-alert-primary-text: rgb(130.6636212695, 172.0850768824, 246.4419684583);\n --fs-feedback-primary-bg: rgb(30.765779113, 49.9974662348, 82.3021425489);\n --fs-color-secondary: rgb(114.3557068426, 129.039220146, 150.1520317181);\n --fs-alert-secondary-bg: rgb(39.6548148226, 51.4270943358, 70.2648514061);\n --fs-alert-secondary-text: rgb(166.7597509121, 176.2809684237, 189.9919576187);\n --fs-feedback-secondary-bg: rgb(39.6548148226, 51.4270943358, 70.2648514061);\n --fs-color-success: rgb(134.4501166043, 226.9563331209, 149.6185042518);\n --fs-alert-success-bg: rgb(24.8621518491, 61.9088085702, 89.0318819222);\n --fs-alert-success-text: rgb(155.0475916512, 231.7231823866, 166.1609492581);\n --fs-feedback-success-bg: rgb(24.8621518491, 61.9088085702, 89.0318819222);\n --fs-color-warning: rgb(252.9400238762, 208.7461261831, 137.9221837268);\n --fs-alert-warning-bg: rgb(59.1359779173, 56.6792370273, 88.6687774507);\n --fs-alert-warning-text: rgb(253.5439861058, 216.1213263099, 157.1705651606);\n --fs-feedback-warning-bg: rgb(59.1359779173, 56.6792370273, 88.6687774507);\n --fs-color-danger: rgb(208.1189955268, 64.9740184262, 63.4302936954);\n --fs-alert-danger-bg: rgb(44.6823973866, 47.5125073063, 81.2083778204);\n --fs-alert-danger-text: rgb(235.4050745756, 149.9650253478, 142.4924034553);\n --fs-feedback-danger-bg: rgb(44.6823973866, 47.5125073063, 81.2083778204);\n --fs-color-info: #5e5cc7;\n --fs-alert-info-bg: rgb(35.0058091619, 49.6887857769, 78.5757788254);\n --fs-alert-info-text: rgb(160.628671266, 165.881962789, 227.610600335);\n --fs-feedback-info-bg: rgb(35.0058091619, 49.6887857769, 78.5757788254);\n }\n @supports (color: oklch(0% 0 0deg)) {\n [data-theme=dark],\n [data-fs-theme=dark] {\n --fs-color-text: oklch(96.2913383165% 0.002529697 228.7848682695deg);\n --fs-color-muted: oklch(80.9268110646% 0.0083071608 253.8653061211deg);\n --fs-color-border: oklch(36.8827622528% 0.0074489239 240.018838067deg);\n --fs-color-surface: oklch(24.7936263361% 0.0058460141 271.1764187765deg);\n --fs-color-subtle: oklch(29.3286259539% 0.0055990771 271.2234269855deg);\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-color-action-primary: var(--fs-color-primary);\n --fs-color-action-danger: var(--fs-color-danger);\n --fs-tooltip-bg: oklch(98.4151869501% 0.0034126992 247.8577745944deg);\n --fs-tooltip-text: oklch(27.9495237712% 0.0368481257 260.0309873929deg);\n --fs-color-primary: oklch(55.884857057% 0.2025537915 261.6264320248deg);\n --fs-alert-primary-bg: oklch(31.7915463198% 0.0633030844 260.2703040876deg);\n --fs-alert-primary-text: oklch(74.4596540856% 0.1172679846 261.6264320248deg);\n --fs-feedback-primary-bg: oklch(31.7915463198% 0.0633030844 260.2703040876deg);\n --fs-color-secondary: oklch(59.8951906896% 0.0366453387 257.4166191214deg);\n --fs-alert-secondary-bg: oklch(32.0729603204% 0.0374284633 259.6388321521deg);\n --fs-alert-secondary-text: oklch(75.4915054214% 0.0223943736 257.4166191214deg);\n --fs-feedback-secondary-bg: oklch(32.0729603204% 0.0374284633 259.6388321521deg);\n --fs-color-success: oklch(83.8485321344% 0.139498201 148.125846236deg);\n --fs-alert-success-bg: oklch(35.0298333903% 0.0635127994 243.2452162193deg);\n --fs-alert-success-text: oklch(86.3333733445% 0.1180369393 148.125846236deg);\n --fs-feedback-success-bg: oklch(35.0298333903% 0.0635127994 243.2452162193deg);\n --fs-color-warning: oklch(88.2682030181% 0.1015699084 78.6575213966deg);\n --fs-alert-warning-bg: oklch(36.0497574404% 0.0547601164 286.8249674934deg);\n --fs-alert-warning-text: oklch(90.0730948615% 0.0859437686 78.6575213966deg);\n --fs-feedback-warning-bg: oklch(36.0497574404% 0.0547601164 286.8249674934deg);\n --fs-color-danger: oklch(58.1670482336% 0.1802407312 25.2407937498deg);\n --fs-alert-danger-bg: oklch(32.151892295% 0.0597799696 278.8124583464deg);\n --fs-alert-danger-text: oklch(75.7809226615% 0.104349897 25.2407937498deg);\n --fs-feedback-danger-bg: oklch(32.151892295% 0.0597799696 278.8124583464deg);\n --fs-color-info: oklch(53.3359780029% 0.1620131129 280.2231949375deg);\n --fs-alert-info-bg: oklch(31.7574919059% 0.0556228738 263.0598185246deg);\n --fs-alert-info-text: oklch(74.3347879016% 0.0891072121 280.2231949375deg);\n --fs-feedback-info-bg: oklch(31.7574919059% 0.0556228738 263.0598185246deg);\n }\n }\n @media (prefers-color-scheme: dark) {\n [data-fs-theme=auto] {\n --fs-color-text: #f1f3f4;\n --fs-color-muted: #bdc1c6;\n --fs-color-border: #3c4043;\n --fs-color-surface: #202124;\n --fs-color-subtle: #2b2c2f;\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-tooltip-bg: #f8fafc;\n --fs-tooltip-text: #1e293b;\n }\n }\n @media (forced-colors: active) {\n :root,\n [data-theme=dark],\n [data-fs-theme=light],\n [data-fs-theme=dark],\n [data-fs-theme=auto] {\n --fs-color-border: CanvasText;\n --fs-color-text: CanvasText;\n --fs-color-surface: Canvas;\n --fs-color-subtle: Canvas;\n --fs-focus-color: Highlight;\n }\n }\n}","@use \"sass:map\";\n@use \"../settings\" as *;\n@use \"../tools\" as *;\n\n// Ordem canônica das camadas: declarada uma única vez aqui porque `tokens`\n// é sempre o primeiro `@use` de cada entry point (ver scss/entries/*.scss e\n// scss/fokus.scss) — evita repetir a declaração em cada bundle.\n@layer reset, tokens, base, layout, components, utilities, overrides;\n\n@layer tokens {\n // Bloco incondicional: fallback sRGB, aplicado em todo navegador. Os\n // valores de cor aqui vêm de `rgb-fallback()` (gamut-mapeado a partir do\n // primitivo OKLCH) — ver `tools/_mixins.scss`. É sempre sobrescrito pelo\n // bloco `@supports` abaixo em navegadores com suporte a `oklch()`; um\n // `--fs-*` de cor nunca deve ser lido só daqui em código novo.\n :root {\n --fs-color-white: #{$color-white};\n --fs-color-black: #{$color-black};\n --fs-color-text: #{rgb-fallback($color-gray-900)};\n --fs-color-muted: #{rgb-fallback($color-gray-600)};\n --fs-color-border: #{rgb-fallback($color-gray-300)};\n --fs-color-surface: #{$color-white};\n --fs-color-subtle: #{rgb-fallback($color-gray-100)};\n --fs-font-sans: #{$font-family-sans};\n --fs-font-mono: #{$font-family-mono};\n --fs-font-size-md: #{$font-size-md};\n --fs-font-size-h1: #{$font-size-h1};\n --fs-font-size-h2: #{$font-size-h2};\n --fs-font-size-h3: #{$font-size-h3};\n --fs-font-size-h4: #{$font-size-h4};\n --fs-font-size-h5: #{$font-size-h5};\n --fs-font-size-h6: #{$font-size-h6};\n --fs-font-weight-semibold: #{$font-weight-semibold};\n --fs-line-height-base: #{$line-height-base};\n --fs-line-height-heading: #{$line-height-heading};\n --fs-radius-sm: #{$radius-sm};\n --fs-radius-md: #{$radius-md};\n --fs-radius-lg: #{$radius-lg};\n --fs-gutter-x: #{map.get($spacers, 4)};\n --fs-gutter-y: 0px;\n\n @each $name, $space in $spacers {\n --fs-space-#{$name}: #{$space};\n }\n\n @each $name, $z-index in $z-indexes {\n --fs-z-#{$name}: #{$z-index};\n }\n\n --fs-control-height: 38px;\n --fs-control-height-sm: 30px;\n --fs-control-height-lg: 46px;\n --fs-control-padding-x: 12px;\n --fs-control-padding-x-sm: 8px;\n --fs-control-padding-x-lg: 16px;\n --fs-focus-width: 2px;\n --fs-focus-offset: 2px;\n --fs-focus-color: var(--fs-color-primary);\n --fs-focus-ring-size: 3px;\n --fs-focus-ring-color: color-mix(in srgb, var(--fs-focus-color) 22%, transparent);\n --fs-focus-ring-alpha: 22%;\n --fs-transition-fast: 150ms;\n --fs-transition-normal: 220ms;\n --fs-motion-duration-fast: var(--fs-transition-fast);\n --fs-motion-duration-normal: var(--fs-transition-normal);\n --fs-motion-ease-standard: var(--fs-ease-standard);\n --fs-ease-standard: cubic-bezier(0.2, 0, 0, 1);\n --fs-border-width: 1px;\n --fs-disabled-opacity: 0.5;\n --fs-safe-area-top: env(safe-area-inset-top, 0px);\n --fs-safe-area-right: env(safe-area-inset-right, 0px);\n --fs-safe-area-bottom: env(safe-area-inset-bottom, 0px);\n --fs-safe-area-left: env(safe-area-inset-left, 0px);\n --fs-component-control-height: var(--fs-control-height);\n --fs-component-overlay-backdrop: rgb(0 0 0 / 55%);\n --fs-component-panel-radius: var(--fs-radius-md);\n --fs-component-panel-shadow: var(--fs-shadow-lg);\n\n // Referência dos limiares usados pelos utilitários `@container` (ver\n // `packages/fokus-utilities/scss/utilities/_container-queries.scss`).\n // Só informativas: a condição de um `@container` precisa de um valor\n // literal em tempo de build, não aceita `var()` — mudar aqui não\n // recalibra as regras já compiladas, só documenta os valores usados.\n @each $name, $width in $container-breakpoints {\n --fs-cq-#{$name}: #{$width};\n }\n\n --fs-shadow-sm: 0 1px 3px rgb(0 0 0 / 15%), 0 1px 2px rgb(0 0 0 / 10%);\n --fs-shadow-md: 0 6px 12px rgb(0 0 0 / 15%), 0 3px 6px rgb(0 0 0 / 10%);\n --fs-shadow-lg: 0 15px 30px rgb(0 0 0 / 18%), 0 6px 12px rgb(0 0 0 / 12%);\n --fs-tooltip-bg: #{rgb-fallback($color-gray-900)};\n --fs-tooltip-text: #{$color-white};\n\n @each $name, $color in $theme-colors {\n --fs-color-#{$name}: #{rgb-fallback($color)};\n --fs-color-on-#{$name}: #{color-contrast($color)};\n --fs-alert-#{$name}-bg: #{rgb-fallback(tint-color($color))};\n --fs-alert-#{$name}-text: #{rgb-fallback(shade-color($color))};\n }\n\n @each $name, $bg in $theme-bg-colors {\n --fs-feedback-#{$name}-bg: #{rgb-fallback($bg)};\n }\n }\n\n // Bloco condicional: valores nativos em OKLCH. `@supports (color: oklch(0%\n // 0 0))` só passa em navegadores que entendem a função — os demais ignoram\n // o bloco inteiro e mantêm o fallback sRGB acima. Só propriedades de cor\n // entram aqui; o resto (fontes, raio, sombra, gutter) não tem equivalente\n // \"melhor\" em OKLCH e já está definido de forma incondicional.\n @supports (color: oklch(0% 0 0)) {\n :root {\n --fs-color-text: #{$color-gray-900};\n --fs-color-muted: #{$color-gray-600};\n --fs-color-border: #{$color-gray-300};\n --fs-color-subtle: #{$color-gray-100};\n --fs-tooltip-bg: #{$color-gray-900};\n\n @each $name, $color in $theme-colors {\n --fs-color-#{$name}: #{$color};\n --fs-color-on-#{$name}: #{color-contrast($color)};\n --fs-alert-#{$name}-bg: #{tint-color($color)};\n --fs-alert-#{$name}-text: #{shade-color($color)};\n }\n\n @each $name, $bg in $theme-bg-colors {\n --fs-feedback-#{$name}-bg: #{$bg};\n }\n }\n }\n}\n","// Camada semântica: nomeia tokens por PAPEL (o que a cor faz na interface),\n// não por valor. Cada token aqui é um alias `var()` de um token primitivo\n// (`_root.scss`) — não introduz nenhuma cor nova, só um vocabulário estável\n// entre o primitivo e o consumo por componente (ver `_component-buttons.scss`\n// como referência de como um componente deve consumir esta camada).\n// Por que alias e não recalcular o valor: um `var()` encadeado continua\n// resolvendo o fallback sRGB/OKLCH já decidido em `_root.scss` — não precisa\n// repetir a lógica de `@supports` aqui.\n@layer tokens {\n :root {\n // Superfícies\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n\n // Texto\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n\n // Bordas\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n\n // Ação (mapeiam para a cor de tema correspondente — existem para dar um\n // nome estável a \"a cor de ação primária\", independente de qual token\n // primitivo ela usa por baixo).\n --fs-color-action-primary: var(--fs-color-primary);\n --fs-color-action-danger: var(--fs-color-danger);\n }\n}\n","// Tokens de gráficos: agnósticos de biblioteca — não é um wrapper de\n// Chart.js/ECharts/Recharts/etc., só cores/tema que qualquer uma delas pode\n// consumir via `getComputedStyle`/CSS custom properties. Aliases da camada\n// semântica já existente (mesma técnica de `_semantic.scss`), então\n// acompanham `data-theme`/`data-fs-brand` automaticamente sem token novo por\n// tema. Ver docs/guides/charts.md.\n@layer tokens {\n :root {\n --fs-chart-series-1: var(--fs-color-primary);\n --fs-chart-series-2: var(--fs-color-success);\n --fs-chart-series-3: var(--fs-color-warning);\n --fs-chart-series-4: var(--fs-color-danger);\n --fs-chart-series-5: var(--fs-color-info);\n --fs-chart-series-6: var(--fs-color-secondary);\n --fs-chart-grid: var(--fs-color-border);\n --fs-chart-axis: var(--fs-color-muted);\n --fs-chart-tooltip-bg: var(--fs-tooltip-bg);\n --fs-chart-tooltip-text: var(--fs-tooltip-text);\n }\n}\n","@layer reset {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n html {\n line-height: var(--fs-line-height-base);\n text-size-adjust: 100%;\n }\n\n body {\n margin: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n }\n\n [hidden] {\n display: none !important;\n }\n}\n","// As declarações @font-face das fontes self-hosted ficam em `_fonts.scss`,\n// distribuído à parte (dist/css/fonts.css) e fora dos bundles principais —\n// ver a nota nesse arquivo. Aqui só aplicamos as pilhas de `font-family`\n// (com fallback sans-serif/monospace, que valem mesmo sem fonts.css).\n\n@layer base {\n body,\n button,\n input,\n select,\n textarea {\n font-family: var(--fs-font-sans);\n font-size: var(--fs-font-size-md);\n }\n\n code,\n kbd,\n pre,\n samp {\n font-family: var(--fs-font-mono);\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n font-weight: var(--fs-font-weight-semibold);\n line-height: var(--fs-line-height-heading);\n }\n\n h1 {\n font-size: var(--fs-font-size-h1);\n }\n\n h2 {\n font-size: var(--fs-font-size-h2);\n }\n\n h3 {\n font-size: var(--fs-font-size-h3);\n }\n\n h4 {\n font-size: var(--fs-font-size-h4);\n }\n\n h5 {\n font-size: var(--fs-font-size-h5);\n }\n\n h6 {\n font-size: var(--fs-font-size-h6);\n }\n}\n","// Respeita a preferência do sistema sem remover a funcionalidade dos\n// componentes: apenas reduz transições e animações ao estado final.\n@layer base {\n @media (prefers-reduced-motion: reduce) {\n *,\n *::before,\n *::after {\n scroll-behavior: auto !important;\n transition-duration: 0.01ms !important;\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n }\n\n // Spinner comunica uma operação em curso; congelá-lo o transforma em um\n // ícone ambíguo. Mantemos a animação, porém em ritmo mais lento, para\n // respeitar a preferência sem perder o significado de carregamento.\n .fs-spinner,\n .fs-progress-bar-animated,\n .fs-progress-indeterminate .fs-progress-bar {\n animation-duration: 1.5s !important;\n animation-iteration-count: infinite !important;\n }\n }\n}\n","/* stylelint-disable property-no-deprecated, selector-not-notation */\n@layer reset {\n :focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-focus-color);\n outline-offset: var(--fs-focus-offset);\n }\n\n @media (forced-colors: active) {\n :focus-visible {\n outline: 2px solid CanvasText;\n outline-offset: 2px;\n }\n }\n}\n\n@layer utilities {\n .fs-u-visually-hidden:not(:focus):not(:focus-within),\n .fs-u-visually-hidden-focusable:not(:focus):not(:focus-within) {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip-path: inset(50%) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n\n .fs-skip-link {\n position: fixed;\n z-index: 1000;\n inset-block-start: var(--fs-space-2);\n inset-inline-start: var(--fs-space-2);\n transform: translateY(-200%);\n padding: var(--fs-space-2) var(--fs-space-3);\n color: var(--fs-color-on-primary);\n background: var(--fs-color-primary);\n border-radius: var(--fs-radius-sm);\n }\n\n .fs-skip-link:focus {\n transform: translateY(0);\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n // Tokens de componente: cada `.fs-btn-*` abaixo só sobrescreve estas três\n // custom properties (nunca `color`/`background-color`/`border-color`\n // diretamente) — permite customizar um botão específico via CSS\n // (`.minha-classe { --fs-btn-bg: ...; }`) sem precisar de `!important` nem\n // repetir a declaração de layout. Ver docs/scss-architecture.md.\n .fs-btn {\n --fs-btn-color: var(--fs-color-text-primary);\n --fs-btn-bg: var(--fs-color-bg-subtle);\n --fs-btn-border-color: var(--fs-color-border-default);\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--fs-space-1);\n min-height: var(--fs-control-height);\n padding: 0 var(--fs-control-padding-x);\n border: var(--fs-border-width) solid var(--fs-btn-border-color);\n border-radius: var(--fs-radius-sm);\n color: var(--fs-btn-color);\n background-color: var(--fs-btn-bg);\n font-size: $font-size-md;\n font-weight: $font-weight-medium;\n text-decoration: none;\n cursor: pointer;\n transition: color var(--fs-transition-fast) var(--fs-ease-standard),\n background-color var(--fs-transition-fast) var(--fs-ease-standard),\n border-color var(--fs-transition-fast) var(--fs-ease-standard),\n box-shadow var(--fs-transition-fast) var(--fs-ease-standard);\n }\n\n .fs-btn:hover {\n --fs-btn-bg: var(--fs-btn-hover-bg, var(--fs-color-subtle));\n }\n\n .fs-btn:active {\n --fs-btn-bg: var(--fs-btn-active-bg, var(--fs-color-border));\n }\n\n .fs-btn:focus-visible {\n @include focus-ring;\n }\n\n .fs-btn:disabled,\n .fs-btn.is-disabled {\n opacity: var(--fs-disabled-opacity);\n pointer-events: none;\n }\n\n @each $name, $color in $theme-colors {\n .fs-btn-#{$name} {\n --fs-btn-color: var(--fs-color-on-#{$name});\n --fs-btn-bg: var(--fs-color-#{$name});\n --fs-btn-border-color: var(--fs-color-#{$name});\n --fs-btn-hover-bg: var(--fs-color-#{$name});\n --fs-btn-active-bg: var(--fs-color-#{$name});\n }\n\n .fs-btn-outline-#{$name} {\n --fs-btn-color: var(--fs-alert-#{$name}-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-#{$name});\n }\n\n .fs-btn-outline-#{$name}:hover,\n .fs-btn-outline-#{$name}:active {\n --fs-btn-color: var(--fs-color-on-#{$name});\n --fs-btn-bg: var(--fs-color-#{$name});\n }\n }\n\n .fs-btn-sm {\n min-height: var(--fs-control-height-sm);\n padding: 0 var(--fs-control-padding-x-sm);\n font-size: $font-size-sm;\n }\n\n .fs-btn-lg {\n min-height: var(--fs-control-height-lg);\n padding: 0 var(--fs-control-padding-x-lg);\n font-size: $font-size-lg;\n }\n\n .fs-btn-close {\n position: relative;\n width: 20px;\n height: 20px;\n padding: 0;\n border: none;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-muted);\n background-color: var(--fs-color-surface-raised);\n cursor: pointer;\n }\n\n .fs-btn-close::before,\n .fs-btn-close::after {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 12px;\n height: 2px;\n background-color: currentcolor;\n content: \"\";\n }\n\n .fs-btn-close::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n\n .fs-btn-close::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n\n .fs-btn-close:hover {\n color: var(--fs-color-text);\n background-color: var(--fs-color-subtle);\n }\n\n .fs-btn-close:focus-visible {\n @include focus-ring;\n }\n}\n","$font-family-sans: \"Plus Jakarta Sans\", sans-serif !default;\n$font-family-mono: \"Source Code Pro\", monospace !default;\n\n// Escala compacta: corpo (md) ~13px, piso (xs) ~11px — reservado a\n// texto de apoio (meta/label), nunca corpo de leitura.\n$font-size-xs: 0.6875rem !default;\n$font-size-sm: 0.75rem !default;\n$font-size-md: 0.8125rem !default;\n$font-size-lg: 1rem !default;\n$font-size-xl: 1.25rem !default;\n\n// Escala de headings, deliberadamente menor que o padrão do navegador\n// (preferência por texto compacto — ver docs/internal/plans).\n$font-size-h1: 1.75rem !default;\n$font-size-h2: 1.5rem !default;\n$font-size-h3: 1.3125rem !default;\n$font-size-h4: 1.125rem !default;\n$font-size-h5: 1rem !default;\n$font-size-h6: 0.875rem !default;\n\n$font-weight-regular: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n\n$line-height-base: 1.5 !default;\n$line-height-heading: 1.25 !default;\n","@use \"sass:map\";\n@use \"sass:math\";\n@use \"sass:color\";\n@use \"../settings\" as *;\n\n@mixin fs-fluid-type($min, $max, $min-vw: 320px, $max-vw: 1280px) {\n font-size: clamp($min, calc(#{$min} + (#{ $max } - #{ $min }) * ((100vw - #{ $min-vw }) / (#{ $max-vw } - #{ $min-vw }))), $max);\n}\n\n@mixin fs-fluid-value($property, $min, $max, $min-vw: 320px, $max-vw: 1280px) {\n #{$property}: clamp($min, calc(#{$min} + (#{ $max } - #{ $min }) * ((100vw - #{ $min-vw }) / (#{ $max-vw } - #{ $min-vw }))), $max);\n}\n\n@mixin media-breakpoint-up($name) {\n $min: map.get($breakpoints, $name);\n\n @if $min == null {\n @error \"Unknown breakpoint `#{$name}`.\";\n }\n\n @if $min == 0 {\n @content;\n } @else {\n @media (min-width: $min) {\n @content;\n }\n }\n}\n\n@function breakpoint-infix($name) {\n @if $name == xs {\n @return \"\";\n }\n\n @return \"-#{$name}\";\n}\n\n@mixin focus-ring($color: var(--fs-color-primary)) {\n outline: var(--fs-focus-width) solid $color;\n outline-offset: var(--fs-focus-offset);\n border-color: $color;\n box-shadow: 0 0 0 3px color-mix(in srgb, #{$color} 22%, transparent);\n}\n\n@mixin truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@function linearize-channel($value) {\n $c: math.div($value, 255);\n\n @if $c <= 0.0393 {\n @return math.div($c, 12.92);\n }\n\n @return math.pow(math.div($c + 0.055, 1.055), 2.4);\n}\n\n@function relative-luminance($color) {\n $r: linearize-channel(color.channel($color, \"red\", $space: rgb));\n $g: linearize-channel(color.channel($color, \"green\", $space: rgb));\n $b: linearize-channel(color.channel($color, \"blue\", $space: rgb));\n\n @return (0.2126 * $r) + (0.7152 * $g) + (0.0722 * $b);\n}\n\n@function color-contrast($background, $min-contrast: 4.5) {\n $contrast-with-white: math.div(1.05, relative-luminance($background) + 0.05);\n\n @if $contrast-with-white >= $min-contrast {\n @return $color-white;\n }\n\n @return $color-black;\n}\n\n// Razão de contraste WCAG entre duas cores (1–21). Usada pelo relatório de\n// contraste do build (`npm run contrast`, `scripts/contrast-report.scss`) —\n// ver docs/reference/contrast-report.md para os pares auditados.\n@function contrast-ratio($foreground, $background) {\n $l1: relative-luminance($foreground) + 0.05;\n $l2: relative-luminance($background) + 0.05;\n\n @if $l1 > $l2 {\n @return math.div($l1, $l2);\n }\n\n @return math.div($l2, $l1);\n}\n\n@function tint-color($color, $weight: 15%) {\n @return color.mix($color, $color-white, $weight, $method: oklch);\n}\n\n@function shade-color($color, $weight: 50%) {\n @return color.mix($color, $color-black, $weight, $method: oklch);\n}\n\n// Fallback sRGB de uma cor OKLCH para navegadores sem suporte a `oklch()`\n// (ver `@supports` em tokens/_root.scss e themes/_dark.scss). Faz gamut\n// mapping antes da conversão — misturas em OKLCH frequentemente caem fora do\n// gamut sRGB, e converter sem mapear gera `rgb()`/`hsl()` com canais\n// inválidos (saturação > 100%, etc.).\n@function rgb-fallback($color) {\n $mapped: color.to-gamut($color, $space: rgb, $method: local-minde);\n\n @return color.to-space($mapped, rgb);\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n@layer components {\n .fs-card {\n position: relative;\n display: flex;\n flex-direction: column;\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n border-radius: var(--fs-radius-lg);\n background-color: var(--fs-color-surface);\n }\n\n .fs-card-horizontal {\n flex-direction: row;\n }\n\n .fs-card-horizontal .fs-card-header:first-child {\n border-radius: calc(var(--fs-radius-lg) - 1px) 0 0 calc(var(--fs-radius-lg) - 1px);\n border-right: 1px solid var(--fs-color-border);\n border-bottom: none;\n }\n\n .fs-card-horizontal .fs-card-footer:last-child {\n border-radius: 0 calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px) 0;\n border-left: 1px solid var(--fs-color-border);\n border-top: none;\n }\n\n .fs-card-clickable {\n transition: border-color var(--fs-transition-fast) var(--fs-ease-standard),\n box-shadow var(--fs-transition-fast) var(--fs-ease-standard),\n transform var(--fs-transition-fast) var(--fs-ease-standard);\n }\n\n .fs-card-clickable:hover,\n .fs-card-clickable:focus-within {\n border-color: var(--fs-color-primary);\n box-shadow: var(--fs-shadow-sm);\n transform: translateY(-1px);\n }\n\n .fs-stretched-link {\n color: inherit;\n text-decoration: none;\n }\n\n .fs-stretched-link::after {\n position: absolute;\n inset: 0;\n z-index: 1;\n content: \"\";\n }\n\n .fs-card-header,\n .fs-card-body,\n .fs-card-footer {\n padding: 10px;\n }\n\n .fs-card-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n border-bottom: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-subtle);\n }\n\n .fs-card-header .fs-card-title {\n margin: 0;\n }\n\n .fs-card-header:first-child {\n border-radius: calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px) 0 0;\n }\n\n .fs-card-footer {\n border-top: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-subtle);\n }\n\n .fs-card-footer:last-child {\n border-radius: 0 0 calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px);\n }\n\n .fs-card-title {\n margin: 0 0 4px;\n color: var(--fs-color-text);\n font-size: $font-size-lg;\n font-weight: $font-weight-medium;\n }\n\n .fs-card-subtitle {\n margin: 0 0 8px;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n\n .fs-card-text {\n margin: 0 0 8px;\n color: var(--fs-color-text);\n font-size: $font-size-md;\n }\n\n .fs-card-text:last-child {\n margin-bottom: 0;\n }\n\n .fs-card-sm .fs-card-header,\n .fs-card-sm .fs-card-body,\n .fs-card-sm .fs-card-footer {\n padding: 5px;\n }\n\n .fs-card-lg .fs-card-header,\n .fs-card-lg .fs-card-body,\n .fs-card-lg .fs-card-footer {\n padding: 15px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n@layer components {\n .fs-alert {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 12px 16px;\n border: 1px solid var(--fs-color-border);\n border-left: 5px solid var(--fs-color-border);\n border-radius: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: $font-size-sm;\n }\n\n @each $name, $color in $theme-colors {\n .fs-alert-#{$name} {\n color: var(--fs-alert-#{$name}-text);\n background-color: var(--fs-alert-#{$name}-bg);\n border-color: var(--fs-color-#{$name});\n }\n }\n}\n","@use \"sass:map\";\n@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n // As variantes alteram somente tokens locais. Isso permite ajustar um badge\n // por marca sem sobrescrever propriedades de apresentação diretamente.\n .fs-badge {\n --fs-badge-color: var(--fs-color-text);\n --fs-badge-bg: var(--fs-color-subtle);\n --fs-badge-border: transparent;\n --fs-badge-height: 22px;\n --fs-badge-radius: 0;\n\n display: inline-flex;\n align-items: center;\n gap: 6px;\n justify-content: center;\n min-height: var(--fs-badge-height);\n\n // O peso óptico da fonte fica ligeiramente abaixo do centro geométrico.\n // Um pixel extra abaixo reposiciona a linha de texto para cima.\n padding: 1px 8px 3px;\n border: 1px solid var(--fs-badge-border);\n border-radius: var(--fs-badge-radius);\n color: var(--fs-badge-color);\n background-color: var(--fs-badge-bg);\n font-size: $font-size-xs;\n font-weight: $font-weight-medium;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n }\n\n @each $name, $color in $theme-colors {\n .fs-badge-#{$name} {\n --fs-badge-color: #{color-contrast($color)};\n --fs-badge-bg: var(--fs-color-#{$name});\n }\n\n .fs-badge-soft-#{$name} {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-#{$name}) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-#{$name}) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-#{$name}) 38%, transparent);\n }\n\n .fs-badge-outline-#{$name} {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-#{$name}) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n }\n\n .fs-badge-sm {\n --fs-badge-height: 18px;\n\n padding: 0 6px 2px;\n font-size: $font-size-xs;\n }\n\n .fs-badge-lg {\n --fs-badge-height: 26px;\n\n padding: 2px 10px 4px;\n font-size: $font-size-md;\n }\n\n .fs-badge-dot::before {\n width: 6px;\n height: 6px;\n flex: 0 0 6px;\n border-radius: 50%;\n background-color: currentcolor;\n transform: translateY(1px);\n content: \"\";\n }\n\n .fs-badge-count {\n min-width: var(--fs-badge-height);\n padding-inline: 6px;\n font-variant-numeric: tabular-nums;\n }\n\n .fs-badge-split {\n --fs-badge-split-label-bg: var(--fs-color-black);\n --fs-badge-split-label-color: var(--fs-color-white);\n --fs-badge-split-value-bg: var(--fs-color-primary);\n --fs-badge-split-value-color: #{color-contrast(map.get($theme-colors, primary))};\n --fs-badge-split-height: 22px;\n --fs-badge-split-radius: 0;\n\n display: inline-flex;\n min-height: var(--fs-badge-split-height);\n overflow: hidden;\n border-radius: var(--fs-badge-split-radius);\n font-size: $font-size-xs;\n font-weight: $font-weight-medium;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n }\n\n .fs-badge-split-label,\n .fs-badge-split-value {\n display: inline-flex;\n align-items: center;\n min-height: var(--fs-badge-split-height);\n padding: 1px 8px 3px;\n }\n\n .fs-badge-split-label {\n color: var(--fs-badge-split-label-color);\n background-color: var(--fs-badge-split-label-bg);\n }\n\n .fs-badge-split-value {\n color: var(--fs-badge-split-value-color);\n background-color: var(--fs-badge-split-value-bg);\n font-variant-numeric: tabular-nums;\n }\n\n @each $name, $color in $theme-colors {\n .fs-badge-split-#{$name} {\n --fs-badge-split-value-bg: var(--fs-color-#{$name});\n --fs-badge-split-value-color: #{color-contrast($color)};\n }\n }\n\n .fs-badge-split.fs-badge-sm {\n --fs-badge-split-height: 18px;\n\n min-height: var(--fs-badge-split-height);\n padding: 0;\n }\n\n .fs-badge-split.fs-badge-lg {\n --fs-badge-split-height: 26px;\n\n min-height: var(--fs-badge-split-height);\n padding: 0;\n font-size: $font-size-md;\n }\n\n .fs-badge-split.fs-badge-sm .fs-badge-split-label,\n .fs-badge-split.fs-badge-sm .fs-badge-split-value {\n padding: 0 6px 2px;\n }\n\n .fs-badge-split.fs-badge-lg .fs-badge-split-label,\n .fs-badge-split.fs-badge-lg .fs-badge-split-value {\n padding: 2px 10px 4px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n@layer components {\n .fs-table {\n width: 100%;\n margin-bottom: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n border-collapse: collapse;\n }\n\n .fs-table th,\n .fs-table td {\n padding: 8px 12px;\n border-bottom: 1px solid var(--fs-color-border);\n text-align: left;\n vertical-align: middle;\n }\n\n .fs-table thead th {\n border-bottom-width: 2px;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n text-transform: uppercase;\n }\n\n .fs-table-striped tbody tr:nth-of-type(odd) {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-table-hover tbody tr:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-table-bordered th,\n .fs-table-bordered td {\n border: 1px solid var(--fs-color-border);\n }\n\n .fs-table-borderless th,\n .fs-table-borderless td {\n border: 0;\n }\n\n @each $name, $color in $theme-colors {\n .fs-table-#{$name} {\n background-color: var(--fs-alert-#{$name}-bg);\n color: var(--fs-alert-#{$name}-text);\n }\n }\n\n .fs-table-sm th,\n .fs-table-sm td {\n padding: 4px 8px;\n }\n\n .fs-table-responsive {\n overflow-x: auto;\n }\n\n .fs-table-caption {\n caption-side: top;\n padding: var(--fs-space-2) 0;\n color: var(--fs-color-muted);\n text-align: start;\n }\n\n .fs-table-empty {\n padding: var(--fs-space-5);\n color: var(--fs-color-muted);\n text-align: center;\n }\n\n @media (width < 640px) {\n .fs-table-priority th:nth-child(n + 4),\n .fs-table-priority td:nth-child(n + 4) {\n display: none;\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-navbar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n padding: 12px 16px;\n border-bottom: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-surface);\n }\n\n .fs-navbar-brand {\n color: var(--fs-color-text);\n font-size: $font-size-lg;\n font-weight: $font-weight-medium;\n text-decoration: none;\n }\n\n .fs-navbar-nav {\n display: flex;\n align-items: center;\n gap: 4px;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .fs-navbar-toggler {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 44px;\n min-height: 44px;\n padding: 8px;\n color: var(--fs-color-text);\n background: transparent;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-sm);\n cursor: pointer;\n }\n\n .fs-navbar-collapse {\n flex-basis: 100%;\n width: 100%;\n }\n\n .fs-navbar-collapse:not(.is-open) {\n display: none;\n }\n\n .fs-navbar-collapse.is-open .fs-navbar-nav {\n flex-direction: column;\n align-items: stretch;\n }\n\n @media (width >= 768px) {\n .fs-navbar-toggler {\n display: none;\n }\n\n .fs-navbar-collapse,\n .fs-navbar-collapse:not(.is-open),\n .fs-navbar-collapse[hidden] {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: flex-end;\n width: auto;\n }\n\n .fs-navbar-collapse .fs-navbar-nav {\n flex-direction: row;\n }\n }\n\n .fs-nav-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n text-decoration: none;\n transition: background-color 0.15s ease-in-out;\n }\n\n .fs-nav-link:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-nav-link:focus-visible {\n @include focus-ring;\n }\n\n .fs-nav-link.is-active {\n color: var(--fs-alert-primary-text);\n font-weight: $font-weight-medium;\n }\n\n .fs-nav-link.is-disabled {\n color: var(--fs-color-muted);\n pointer-events: none;\n }\n}\n","@layer components {\n // Wrapper posicionador do input — a listbox (`.fs-dropdown-menu`, mesma\n // classe do Dropdown/Select) é reanexada a `document.body` pelo JS e\n // posicionada via `core/positioning.js`; o wrapper só existe pra manter\n // o layout inline do input no fluxo normal do documento.\n .fs-combobox {\n position: relative;\n display: inline-flex;\n width: 100%;\n }\n\n .fs-combobox-listbox {\n overflow-y: auto;\n max-height: 240px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n // Ajusta o indicador nativo de <input type=\"date\">/<input type=\"time\">\n // no tema escuro — por padrão o navegador desenha um ícone escuro fixo\n // (chrome do SO, não estilizável via token), que fica invisível sobre\n // --fs-color-surface escuro sem essa correção.\n [data-theme=\"dark\"] .fs-form-control[type=\"date\"]::-webkit-calendar-picker-indicator,\n [data-theme=\"dark\"] .fs-form-control[type=\"time\"]::-webkit-calendar-picker-indicator {\n filter: invert(1);\n }\n\n .fs-datepicker {\n position: relative;\n display: inline-flex;\n width: 100%;\n }\n\n .fs-datepicker-panel {\n display: none;\n width: min(280px, calc(100vw - 2 * var(--fs-space-3)));\n padding: 12px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n z-index: var(--fs-z-dropdown);\n }\n\n .fs-datepicker-panel.is-open {\n display: block;\n }\n\n .fs-datepicker-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n }\n\n .fs-datepicker-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 border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: $font-size-md;\n cursor: pointer;\n }\n\n .fs-datepicker-nav:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-datepicker-nav:focus-visible {\n @include focus-ring;\n }\n\n .fs-datepicker-title {\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n text-transform: capitalize;\n }\n\n .fs-datepicker-grid {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .fs-datepicker-weekdays,\n .fs-datepicker-week {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 2px;\n }\n\n .fs-datepicker-weekday {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 28px;\n color: var(--fs-color-muted);\n font-size: $font-size-xs;\n font-weight: $font-weight-medium;\n text-align: center;\n text-transform: uppercase;\n }\n\n .fs-datepicker-day {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n border: none;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: $font-size-sm;\n cursor: pointer;\n }\n\n .fs-datepicker-day:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-datepicker-day:focus-visible {\n @include focus-ring;\n }\n\n .fs-datepicker-day.is-outside {\n color: var(--fs-color-muted);\n }\n\n .fs-datepicker-day.is-today {\n font-weight: $font-weight-semibold;\n box-shadow: inset 0 0 0 1px var(--fs-color-primary);\n }\n\n .fs-datepicker-day.is-selected {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n\n .fs-datepicker-day:disabled {\n color: var(--fs-color-muted);\n pointer-events: none;\n opacity: 0.4;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Diálogo do Command Palette (`js/command-palette.js`). Os itens da lista\n// reusam `.fs-dropdown-item`/`.is-active`/`.is-disabled` (scss/components/\n// _dropdown.scss) sem duplicação — só o backdrop/diálogo/campo de busca são\n// CSS novo.\n\n@layer components {\n .fs-command-palette {\n position: fixed;\n inset: 0;\n z-index: var(--fs-z-modal);\n display: none;\n align-items: flex-start;\n justify-content: center;\n padding: 72px 16px 16px;\n background-color: rgb(0 0 0 / 50%);\n }\n\n .fs-command-palette.is-open {\n display: flex;\n }\n\n .fs-command-palette-dialog {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 480px;\n max-height: calc(100vh - 88px);\n overflow: hidden;\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-lg);\n }\n\n .fs-command-palette-input {\n width: 100%;\n padding: 16px 20px;\n border: none;\n border-bottom: 1px solid var(--fs-color-border);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: $font-size-lg;\n }\n\n .fs-command-palette-input:focus-visible {\n @include focus-ring;\n }\n\n .fs-command-palette-list {\n margin: 0;\n padding: 6px 0;\n overflow-y: auto;\n list-style: none;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-tree,\n .fs-tree [role=\"group\"] {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .fs-tree [role=\"group\"] {\n padding-left: 20px;\n }\n\n .fs-tree [role=\"treeitem\"] {\n border-radius: var(--fs-radius-sm);\n }\n\n .fs-tree [role=\"treeitem\"]:focus-visible {\n outline: none;\n }\n\n .fs-tree [role=\"treeitem\"]:focus-visible > .fs-tree-label {\n @include focus-ring;\n }\n\n .fs-tree-label {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 8px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n font-size: $font-size-md;\n cursor: pointer;\n user-select: none;\n }\n\n .fs-tree-label:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-tree [role=\"treeitem\"][aria-selected=\"true\"] > .fs-tree-label {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n\n .fs-tree-toggle {\n flex-shrink: 0;\n width: 0;\n height: 0;\n border-top: 4px solid transparent;\n border-bottom: 4px solid transparent;\n border-left: 5px solid currentcolor;\n transition: transform 0.15s ease-in-out;\n }\n\n .fs-tree [role=\"treeitem\"][aria-expanded=\"true\"] > .fs-tree-label > .fs-tree-toggle {\n transform: rotate(90deg);\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-dropdown {\n position: relative;\n display: inline-flex;\n }\n\n // Sem margin-left: `.fs-dropdown-toggle` é sempre usado com `.fs-btn`\n // (ver docs/components/dropdown.md), que já tem `gap` pros filhos —\n // incluindo este `::after`, que conta como item flex do `.fs-btn`.\n .fs-dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n vertical-align: middle;\n content: \"\";\n border-top: 5px solid;\n border-right: 5px solid transparent;\n border-left: 5px solid transparent;\n }\n\n .fs-dropdown-menu {\n position: absolute;\n display: none;\n min-width: 180px;\n margin: 0;\n padding: 6px 0;\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n z-index: var(--fs-z-dropdown);\n }\n\n .fs-dropdown-menu.is-open {\n display: block;\n }\n\n .fs-dropdown-item {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 8px 16px;\n border: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: $font-size-md;\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n }\n\n .fs-dropdown-item:hover,\n .fs-dropdown-item:focus-visible {\n color: var(--fs-color-text);\n background-color: var(--fs-color-subtle);\n outline: none;\n }\n\n .fs-dropdown-item.is-active {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n\n .fs-dropdown-item.is-disabled {\n color: var(--fs-color-muted);\n pointer-events: none;\n opacity: 0.6;\n }\n\n .fs-dropdown-divider {\n height: 1px;\n margin: 6px 0;\n border: none;\n background-color: var(--fs-color-border);\n }\n\n .fs-dropdown-header {\n padding: 4px 16px;\n color: var(--fs-color-muted);\n font-size: $font-size-xs;\n font-weight: $font-weight-medium;\n text-transform: uppercase;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n@layer components {\n .fs-modal {\n position: fixed;\n inset: 0;\n z-index: var(--fs-z-modal);\n display: none;\n align-items: center;\n justify-content: center;\n padding: var(--fs-space-4);\n background-color: rgb(0 0 0 / 50%);\n }\n\n .fs-modal.is-open {\n display: flex;\n }\n\n .fs-modal-dialog {\n width: 100%;\n max-width: 480px;\n }\n\n .fs-modal-dialog.fs-modal-sm {\n max-width: 320px;\n }\n\n .fs-modal-dialog.fs-modal-lg {\n max-width: 720px;\n }\n\n .fs-modal-dialog.fs-modal-xl {\n max-width: 1140px;\n }\n\n .fs-modal-dialog.fs-modal-fullscreen {\n max-width: none;\n height: 100%;\n }\n\n .fs-modal-content {\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 2 * var(--fs-space-4));\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-lg);\n }\n\n .fs-modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid var(--fs-color-border);\n }\n\n .fs-modal-title {\n margin: 0;\n font-size: $font-size-lg;\n font-weight: $font-weight-medium;\n }\n\n .fs-modal-body {\n padding: 20px;\n overflow-y: auto;\n }\n\n .fs-modal-scrollable .fs-modal-content {\n overflow: hidden;\n }\n\n .fs-modal-scrollable .fs-modal-body {\n overflow-y: auto;\n }\n\n @media (width < 640px) {\n .fs-modal {\n align-items: flex-end;\n padding: 0;\n }\n\n .fs-modal-dialog,\n .fs-modal-dialog.fs-modal-sm,\n .fs-modal-dialog.fs-modal-lg,\n .fs-modal-dialog.fs-modal-xl {\n max-width: none;\n }\n\n .fs-modal-content {\n max-height: calc(100dvh - var(--fs-safe-area-top));\n border-radius: var(--fs-radius-md) var(--fs-radius-md) 0 0;\n }\n }\n\n .fs-modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 16px 20px;\n border-top: 1px solid var(--fs-color-border);\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Alert Dialog / Confirm: variante do Modal (scss/components/_modal.scss) para\n// confirmação, montada dinamicamente por FokusStyles.confirm() (js/confirm.js) —\n// reaproveita .fs-modal/.fs-modal-dialog/.fs-modal-content/.fs-modal-footer sem duplicar\n// layout, só adiciona a mensagem abaixo do título.\n\n@layer components {\n .fs-alert-dialog-message {\n margin: 4px 0 0;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Linha divisória, 100% CSS. `<hr class=\"divider\">` para o traço simples;\n// `<div class=\"divider\">` (não pode ser `<hr>`, que não aceita filhos) com\n// `.fs-divider-label` para o texto centralizado, flanqueado por duas linhas via\n// pseudo-elementos.\n\n@layer components {\n .fs-divider {\n margin: 16px 0;\n border: 0;\n border-top: 1px solid var(--fs-color-border);\n }\n\n .fs-divider:not(hr) {\n display: flex;\n align-items: center;\n border-top: none;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n\n .fs-divider:not(hr)::before,\n .fs-divider:not(hr)::after {\n flex: 1;\n content: \"\";\n border-top: 1px solid var(--fs-color-border);\n }\n\n .fs-divider-label {\n padding: 0 12px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Bloco padrão para listas/telas vazias, 100% CSS. `.fs-empty-state-icon` é um\n// slot vazio (o consumidor põe seu próprio SVG/emoji/ilustração dentro) — ao\n// contrário do ícone do Alert Dialog, aqui não há um conjunto fixo de\n// variantes de estado para gerar via CSS.\n\n@layer components {\n .fs-empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 48px 24px;\n text-align: center;\n }\n\n // `[hidden]` sozinho não bastaria: a regra do user-agent stylesheet\n // perde pra `display: flex` acima (author styles sempre vencem UA\n // styles, mesmo em `@layer`) — sem isso, `.fs-empty-state[hidden]`\n // continua visível (bug real pego no DataTable, que alterna esse\n // atributo em `js/datatable.js`). Mesmo padrão já usado em\n // `.fs-notification-badge[hidden]`/`.fs-notification-empty[hidden]`.\n .fs-empty-state[hidden] {\n display: none;\n }\n\n .fs-empty-state-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 64px;\n height: 64px;\n margin-bottom: 16px;\n border-radius: 50%;\n color: var(--fs-color-muted);\n background-color: var(--fs-color-subtle);\n font-size: 28px;\n }\n\n .fs-empty-state-title {\n margin: 0;\n color: var(--fs-color-text);\n font-size: $font-size-lg;\n font-weight: $font-weight-medium;\n }\n\n .fs-empty-state-text {\n max-width: 360px;\n margin: 4px 0 20px;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Rating / Stars, 100% CSS — mesma técnica de input oculto + label irmão do\n// Segmented Control (scss/components/_segmented-control.scss): um\n// `<input type=\"radio\">` por estrela, exclusivo dentro do grupo. A marcação\n// espera os pares input+label em ordem DECRESCENTE de valor (5, 4, 3...) com\n// `.fs-rating` em `row-reverse`, o truque clássico de CSS pra destacar \"a\n// estrela clicada e todas à esquerda dela\" usando só `~` (combinador de\n// irmãos gerais, que só enxerga o que vem DEPOIS no DOM).\n// A estrela em si é o ícone `star` de `fokus-styles/icons` (`.fs-icon`, outline\n// por padrão) — preenchida (`fill: currentcolor`) só quando selecionada/em\n// hover, pra imitar o glifo sólido que ★ tinha antes sem perder o contorno\n// vazio do estado \"não avaliada\".\n\n@layer components {\n .fs-rating {\n display: inline-flex;\n flex-direction: row-reverse;\n }\n\n .fs-rating-input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n .fs-rating-star {\n display: flex;\n padding: 2px;\n color: var(--fs-color-border);\n font-size: 24px;\n cursor: pointer;\n }\n\n .fs-rating-input:checked ~ .fs-rating-star,\n .fs-rating-star:hover,\n .fs-rating-star:hover ~ .fs-rating-star {\n color: var(--fs-color-warning);\n }\n\n .fs-rating-input:checked ~ .fs-rating-star .fs-icon,\n .fs-rating-star:hover .fs-icon,\n .fs-rating-star:hover ~ .fs-rating-star .fs-icon {\n fill: currentcolor;\n }\n\n .fs-rating-input:focus-visible + .fs-rating-star {\n border-radius: var(--fs-radius-sm);\n outline: 2px solid var(--fs-color-primary);\n outline-offset: 2px;\n }\n\n .fs-rating-input:disabled + .fs-rating-star {\n opacity: 0.5;\n pointer-events: none;\n }\n\n .fs-rating-sm .fs-rating-star {\n font-size: 16px;\n }\n\n .fs-rating-lg .fs-rating-star {\n font-size: 32px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Badge dismissível / Tag: reaproveita `.fs-badge`\n// (scss/components/_badges.scss) e `.fs-btn-close`\n// (scss/components/_buttons.scss) — só ajusta o tamanho do botão de fechar\n// pra caber num badge, que é bem menor que um botão, e o espaçamento entre\n// o texto e o \"x\". O dismiss em si é feito por js/tag.js (FokusStyles.Tag).\n@layer components {\n .fs-tag {\n gap: 0;\n padding: 0 0 0 8px;\n }\n\n // O texto fica em um elemento próprio quando a tag puder ser truncada. A\n // string integral permanece no DOM, portanto continua disponível para AT.\n .fs-tag-label {\n min-width: 0;\n }\n\n .fs-tag-truncate {\n max-inline-size: min(100%, var(--fs-tag-max-inline-size, 20rem));\n }\n\n .fs-tag-truncate .fs-tag-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .fs-tag-icon {\n display: inline-grid;\n width: 12px;\n height: 12px;\n flex: 0 0 12px;\n margin-right: 4px;\n place-items: center;\n }\n\n .fs-tag-icon .fs-icon {\n width: 12px;\n height: 12px;\n stroke: currentcolor;\n }\n\n .fs-tag .fs-btn-close {\n width: calc(var(--fs-badge-height) - 2px);\n height: calc(var(--fs-badge-height) - 2px);\n flex: 0 0 calc(var(--fs-badge-height) - 2px);\n margin-left: 4px;\n border-radius: 0;\n background-color: transparent;\n\n // Herda a cor de texto do badge (contraste automático por variante) em vez\n // do cinza fixo do `.fs-btn-close`, pra o \"x\" ter contraste em qualquer fundo;\n // o `opacity` o deixa discreto sem depender de uma cor fixa.\n color: inherit;\n opacity: 0.7;\n transition: opacity 0.1s ease-in-out, background-color 0.1s ease-in-out, transform 0.1s ease-in-out;\n }\n\n .fs-tag .fs-btn-close::before,\n .fs-tag .fs-btn-close::after {\n top: calc(50% + 1px);\n width: 8px;\n }\n\n .fs-tag .fs-btn-close:hover {\n color: inherit;\n background-color: color-mix(in srgb, currentcolor 18%, transparent);\n opacity: 1;\n }\n\n // Feedback tátil ao clicar (o dismiss em si é assíncrono via evento\n // cancelável fs:tag:dismissed, então o \"afundar\" no clique reforça que a\n // ação registrou mesmo antes do elemento sumir).\n .fs-tag .fs-btn-close:active {\n background-color: color-mix(in srgb, currentcolor 28%, transparent);\n transform: scale(0.9);\n }\n\n // Agrupamento: várias tags lado a lado, quebrando linha sem cortar.\n .fs-tag-group {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n }\n\n // O botão já possui foco próprio; o contorno no contêiner evidencia qual\n // tag será removida, especialmente em grupos densos.\n .fs-tag:focus-within {\n @include focus-ring;\n }\n\n .fs-tag.is-loading,\n .fs-tag[aria-busy=\"true\"] {\n --fs-badge-bg: var(--fs-color-warning);\n --fs-badge-color: var(--fs-color-black);\n --fs-badge-border: transparent;\n\n cursor: progress;\n }\n\n // Usa o spinner do próprio FokusStyles. A classe é opt-in no markup para que o\n // conteúdo de uma tag carregando continue explícito e sem DOM implícito.\n .fs-tag.is-loading .fs-spinner,\n .fs-tag[aria-busy=\"true\"] .fs-spinner {\n width: 12px;\n height: 12px;\n flex: 0 0 12px;\n margin: 0 6px 0 4px;\n border-width: 2px;\n color: var(--fs-color-black);\n }\n\n .fs-tag.is-loading .fs-btn-close,\n .fs-tag[aria-busy=\"true\"] .fs-btn-close {\n display: none;\n }\n\n .fs-tag-group .fs-tag + .fs-tag {\n border-inline-start-color: color-mix(in srgb, currentcolor 24%, transparent);\n }\n\n .fs-tag-group .fs-tag {\n padding-inline-start: calc(var(--fs-badge-height) + 2px);\n transition: background-color 0.1s ease-in-out;\n }\n\n .fs-tag-group .fs-btn-close {\n pointer-events: none;\n opacity: 0;\n }\n\n .fs-tag-group .fs-tag:hover .fs-btn-close,\n .fs-tag-group .fs-tag:focus-within .fs-btn-close {\n pointer-events: auto;\n opacity: 0.7;\n }\n\n .fs-tag-group .fs-tag:hover,\n .fs-tag-group .fs-tag:focus-within {\n background-color: color-mix(in srgb, currentcolor 18%, transparent);\n }\n\n // Um botão de overflow representa as tags não exibidas. A abertura da lista\n // ou popover é responsabilidade da composição que o utiliza.\n .fs-tag-overflow {\n --fs-badge-bg: transparent;\n --fs-badge-color: var(--fs-alert-primary-text);\n --fs-badge-border: transparent;\n\n width: var(--fs-badge-height);\n height: var(--fs-badge-height);\n min-width: var(--fs-badge-height);\n padding: 0;\n border: 0;\n appearance: none;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font: inherit;\n line-height: 0;\n }\n\n .fs-tag-overflow .fs-icon {\n display: block;\n flex: 0 0 13px;\n width: 13px;\n height: 13px;\n stroke: currentcolor;\n }\n\n .fs-tag-overflow:hover,\n .fs-tag-group .fs-tag-overflow:hover {\n background-color: transparent;\n border-color: transparent;\n }\n\n .fs-tag-group .fs-tag-overflow {\n padding-inline-start: 0;\n }\n\n .fs-tag-overflow:focus-visible {\n @include focus-ring;\n }\n\n .fs-tag-group .fs-btn-close:hover {\n color: inherit;\n background-color: transparent;\n opacity: 0.7;\n }\n\n .fs-tag-protected {\n pointer-events: none;\n }\n\n .fs-tag-lock {\n display: inline-grid;\n width: calc(var(--fs-badge-height) - 2px);\n height: calc(var(--fs-badge-height) - 2px);\n margin-left: 4px;\n place-items: center;\n }\n\n .fs-tag-lock svg {\n width: 12px;\n height: 12px;\n stroke: currentcolor;\n stroke-width: 2;\n }\n\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Offcanvas: painel deslizante (fora da viewport por padrão, `.is-open` traz\n// para dentro via transform) + `.fs-offcanvas-backdrop` separado (não fixo\n// junto ao painel, como no Modal, porque o painel não cobre a tela toda —\n// o backdrop escurece o restante). Mesma faixa de z-index do Modal (1050),\n// já que são overlays mutuamente exclusivos.\n\n@layer components {\n .fs-offcanvas {\n position: fixed;\n z-index: var(--fs-z-offcanvas);\n display: flex;\n flex-direction: column;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-lg);\n visibility: hidden;\n transition: transform 0.3s ease, visibility 0.3s ease;\n }\n\n .fs-offcanvas.is-open {\n visibility: visible;\n transform: none;\n }\n\n .fs-offcanvas-start {\n inset: 0 auto 0 0;\n width: 320px;\n transform: translateX(-100%);\n }\n\n .fs-offcanvas-end {\n inset: 0 0 0 auto;\n width: 320px;\n transform: translateX(100%);\n }\n\n .fs-offcanvas-top {\n inset: 0 0 auto;\n height: 40vh;\n transform: translateY(-100%);\n }\n\n .fs-offcanvas-bottom {\n inset: auto 0 0;\n height: 40vh;\n transform: translateY(100%);\n }\n\n .fs-offcanvas-backdrop {\n position: fixed;\n inset: 0;\n z-index: calc(var(--fs-z-offcanvas) - 1);\n background-color: rgb(0 0 0 / 50%);\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.3s ease, visibility 0.3s ease;\n }\n\n .fs-offcanvas-backdrop.is-open {\n visibility: visible;\n opacity: 1;\n }\n\n .fs-offcanvas-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid var(--fs-color-border);\n }\n\n .fs-offcanvas-title {\n margin: 0;\n font-size: $font-size-lg;\n font-weight: $font-weight-medium;\n }\n\n .fs-offcanvas-body {\n flex: 1 1 auto;\n padding: 20px;\n overflow-y: auto;\n }\n\n .fs-offcanvas-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 16px 20px;\n border-top: 1px solid var(--fs-color-border);\n }\n\n .fs-offcanvas-responsive {\n width: min(100%, 420px);\n }\n\n @media (width >= 1024px) {\n .fs-offcanvas-lg {\n position: static;\n width: auto;\n height: auto;\n visibility: visible;\n transform: none;\n box-shadow: none;\n }\n\n .fs-offcanvas-lg + .fs-offcanvas-backdrop {\n display: none;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .fs-offcanvas,\n .fs-offcanvas-backdrop {\n transition: none;\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-accordion {\n display: flex;\n flex-direction: column;\n }\n\n .fs-accordion-item {\n overflow: hidden;\n border: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-surface-raised);\n }\n\n .fs-accordion-item + .fs-accordion-item {\n border-top: none;\n }\n\n .fs-accordion-item:first-child {\n border-top-left-radius: var(--fs-radius-md);\n border-top-right-radius: var(--fs-radius-md);\n }\n\n .fs-accordion-item:last-child {\n border-bottom-right-radius: var(--fs-radius-md);\n border-bottom-left-radius: var(--fs-radius-md);\n }\n\n .fs-accordion-flush .fs-accordion-item {\n border-inline: 0;\n border-radius: 0;\n }\n\n .fs-accordion-flush .fs-accordion-item:first-child {\n border-block-start: 0;\n }\n\n .fs-accordion-always-open .fs-accordion-button[aria-expanded=\"true\"]::after {\n transform: rotate(-135deg);\n }\n\n .fs-accordion-header {\n margin: 0;\n }\n\n .fs-accordion-button {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 14px 16px;\n border: none;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n font-size: $font-size-md;\n font-weight: $font-weight-medium;\n text-align: left;\n cursor: pointer;\n }\n\n .fs-accordion-button:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-accordion-button:focus-visible {\n @include focus-ring;\n }\n\n .fs-accordion-button::after {\n flex-shrink: 0;\n width: 8px;\n height: 8px;\n margin-left: 12px;\n content: \"\";\n border-right: 2px solid currentcolor;\n border-bottom: 2px solid currentcolor;\n transform: rotate(45deg);\n transition: transform 0.2s ease-in-out;\n }\n\n .fs-accordion-button[aria-expanded=\"true\"]::after {\n transform: rotate(-135deg);\n }\n\n .fs-accordion-collapse {\n overflow: hidden;\n }\n\n .fs-accordion-body {\n padding: 16px;\n border-top: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-surface-raised);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .fs-accordion-button::after {\n transition: none;\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Três estilos visuais (linha = padrão, pill, depth), mais alinhamento e\n// tamanho — todos modificadores de `.fs-tabs`, reaproveitando `.fs-nav-link`\n// (_navbar.scss) como o item clicável em todos os três, então o HTML e a\n// navegação por teclado (ArrowLeft/ArrowRight/Home/End, `js/tabs.js`) não\n// mudam entre estilos.\n@layer components {\n .fs-tabs {\n display: flex;\n border-bottom: var(--fs-border-width) solid var(--fs-color-border-default);\n }\n\n .fs-tabs .fs-nav-link {\n margin-bottom: -1px;\n border-bottom: 2px solid transparent;\n border-radius: var(--fs-radius-sm) var(--fs-radius-sm) 0 0;\n }\n\n .fs-tabs .fs-nav-link.is-active {\n border-bottom-color: var(--fs-color-primary);\n }\n\n // Pill: sem linha embaixo, cada item vira um \"chip\" com fundo próprio\n // quando ativo — nada de forma circular, só o token de raio padrão.\n .fs-tabs-pill {\n gap: 4px;\n border-bottom: none;\n }\n\n .fs-tabs-pill .fs-nav-link {\n margin-bottom: 0;\n border-bottom: none;\n border-radius: var(--fs-radius-sm);\n }\n\n .fs-tabs-pill .fs-nav-link.is-active {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n\n // Depth: fundo neutro por trás dos itens; o ativo \"sobe\" com borda nos 3\n // lados e fundo igual ao do conteúdo, criando a ilusão de aba de pasta\n // fundida ao painel abaixo (a borda inferior do container fica por baixo\n // do item ativo, escondida pela cor de fundo igual).\n .fs-tabs-depth {\n gap: 2px;\n padding: 4px 4px 0;\n background-color: var(--fs-color-subtle);\n }\n\n .fs-tabs-depth .fs-nav-link {\n margin-bottom: -1px;\n border: 1px solid transparent;\n border-bottom: none;\n border-radius: var(--fs-radius-sm) var(--fs-radius-sm) 0 0;\n }\n\n .fs-tabs-depth .fs-nav-link.is-active {\n border-color: var(--fs-color-border);\n background-color: var(--fs-color-surface);\n }\n\n // Alinhamento dos itens dentro do container (padrão: início/esquerda).\n .fs-tabs-center {\n justify-content: center;\n }\n\n .fs-tabs-right {\n justify-content: flex-end;\n }\n\n .fs-tabs-fill .fs-nav-link {\n flex: 1;\n justify-content: center;\n text-align: center;\n }\n\n // Tamanhos — mesma escala sm/lg dos outros componentes.\n .fs-tabs-sm .fs-nav-link {\n padding: 6px 10px;\n font-size: $font-size-sm;\n }\n\n .fs-tabs-lg .fs-nav-link {\n padding: 10px 16px;\n font-size: $font-size-lg;\n }\n\n .fs-tab-content > .fs-tab-pane {\n display: none;\n }\n\n .fs-tab-content > .fs-tab-pane.is-active {\n display: block;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n@layer components {\n .fs-tooltip {\n position: absolute;\n z-index: var(--fs-z-tooltip);\n display: none;\n max-width: 220px;\n }\n\n .fs-tooltip.is-open {\n display: block;\n }\n\n .fs-tooltip-inner {\n padding: 6px 10px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-tooltip-text);\n background-color: var(--fs-tooltip-bg);\n font-size: $font-size-xs;\n text-align: center;\n }\n\n .fs-tooltip-arrow {\n position: absolute;\n width: 8px;\n height: 8px;\n background-color: var(--fs-tooltip-bg);\n transform: rotate(45deg);\n }\n\n .fs-tooltip[data-placement=\"top\"] .fs-tooltip-arrow {\n bottom: -4px;\n left: 50%;\n margin-left: -4px;\n }\n\n .fs-tooltip[data-placement=\"bottom\"] .fs-tooltip-arrow {\n top: -4px;\n left: 50%;\n margin-left: -4px;\n }\n\n .fs-tooltip[data-placement=\"left\"] .fs-tooltip-arrow {\n top: 50%;\n right: -4px;\n margin-top: -4px;\n }\n\n .fs-tooltip[data-placement=\"right\"] .fs-tooltip-arrow {\n top: 50%;\n left: -4px;\n margin-top: -4px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Popover: painel flutuante com conteúdo rico (header/body/footer),\n// posicionado como o Tooltip (mesma técnica de seta rotacionada 45°), mas com\n// aparência de card de superfície em vez do chip escuro do tooltip — porque\n// pode conter elementos interativos. z-index entre o Dropdown (1000) e o\n// Tooltip (1080), para um tooltip aplicado a um gatilho de popover ainda\n// vencer visualmente.\n\n@layer components {\n .fs-popover {\n position: absolute;\n z-index: var(--fs-z-offcanvas);\n display: none;\n max-width: 280px;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n box-shadow: var(--fs-shadow-md);\n }\n\n .fs-popover.is-open {\n display: block;\n }\n\n .fs-popover-header {\n padding: 10px 14px;\n background-color: var(--fs-color-subtle);\n border-bottom: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md) var(--fs-radius-md) 0 0;\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n }\n\n .fs-popover-body {\n padding: 14px;\n font-size: $font-size-sm;\n }\n\n .fs-popover-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 10px 14px;\n border-top: 1px solid var(--fs-color-border);\n }\n\n .fs-popover-arrow {\n position: absolute;\n width: 8px;\n height: 8px;\n background-color: var(--fs-color-surface);\n border: 1px solid var(--fs-color-border);\n transform: rotate(45deg);\n }\n\n .fs-popover[data-placement=\"top\"] .fs-popover-arrow {\n bottom: -5px;\n left: 50%;\n margin-left: -4px;\n border-top: 0;\n border-left: 0;\n }\n\n .fs-popover[data-placement=\"bottom\"] .fs-popover-arrow {\n top: -5px;\n left: 50%;\n margin-left: -4px;\n border-right: 0;\n border-bottom: 0;\n }\n\n .fs-popover[data-placement=\"left\"] .fs-popover-arrow {\n top: 50%;\n right: -5px;\n margin-top: -4px;\n border-bottom: 0;\n border-left: 0;\n }\n\n .fs-popover[data-placement=\"right\"] .fs-popover-arrow {\n top: 50%;\n left: -5px;\n margin-top: -4px;\n border-top: 0;\n border-right: 0;\n }\n\n // Hover Card: não é um componente novo — composição do Popover com\n // `data-trigger=\"hover\"` (já suportado por js/popover.js) e conteúdo mais\n // rico (ex. avatar + bio). Este modificador só alarga um pouco o popover e\n // alinha um layout de linha (avatar ao lado do texto) no corpo.\n .fs-popover-hover-card {\n max-width: 320px;\n }\n\n .fs-popover-hover-card .fs-popover-body {\n display: flex;\n gap: 12px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n@layer components {\n .fs-toast-container {\n position: fixed;\n right: 16px;\n bottom: 16px;\n z-index: var(--fs-z-toast);\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: min(360px, 100%);\n max-width: calc(100vw - 2 * var(--fs-space-3));\n }\n\n .fs-toast {\n display: flex;\n overflow: hidden;\n flex-direction: column;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n }\n\n .fs-toast-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n border-bottom: 1px solid var(--fs-color-border);\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n }\n\n .fs-toast-body {\n padding: 12px;\n font-size: $font-size-sm;\n }\n\n @each $name, $color in $theme-colors {\n .fs-toast-#{$name} .fs-toast-header {\n color: var(--fs-alert-#{$name}-text);\n background-color: var(--fs-alert-#{$name}-bg);\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-pagination {\n display: flex;\n gap: 0.25rem;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .fs-pagination-scroll {\n max-width: 100%;\n overflow-x: auto;\n padding-block: 2px;\n }\n\n .fs-pagination-scroll .fs-pagination {\n width: max-content;\n }\n\n .fs-page-link {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n height: 32px;\n padding: 0 8px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n text-decoration: none;\n transition: background-color 0.15s ease-in-out;\n }\n\n .fs-page-link:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-page-link:focus-visible {\n @include focus-ring;\n }\n\n .fs-page-item.is-active .fs-page-link {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n border-color: var(--fs-color-primary);\n }\n\n .fs-page-item.is-disabled .fs-page-link {\n color: var(--fs-color-muted);\n opacity: 0.6;\n pointer-events: none;\n }\n\n // Bordered: itens colados (sem gap), borda contínua fundida (técnica do\n // Input Group — margin negativo + z-index no item ativo/hover), cantos\n // arredondados só nas pontas.\n .fs-pagination-bordered {\n gap: 0;\n }\n\n .fs-pagination-bordered .fs-page-link {\n border-radius: 0;\n }\n\n .fs-pagination-bordered .fs-page-item:not(:first-child) .fs-page-link {\n margin-left: -1px;\n }\n\n .fs-pagination-bordered .fs-page-item:first-child .fs-page-link {\n border-top-left-radius: var(--fs-radius-sm);\n border-bottom-left-radius: var(--fs-radius-sm);\n }\n\n .fs-pagination-bordered .fs-page-item:last-child .fs-page-link {\n border-top-right-radius: var(--fs-radius-sm);\n border-bottom-right-radius: var(--fs-radius-sm);\n }\n\n .fs-pagination-bordered .fs-page-link:hover,\n .fs-pagination-bordered .fs-page-item.is-active .fs-page-link {\n position: relative;\n z-index: 1;\n }\n\n // Compacta / grande — mesma escala sm/lg dos outros componentes.\n .fs-pagination-sm .fs-page-link {\n min-width: 26px;\n height: 26px;\n padding: 0 6px;\n font-size: $font-size-xs;\n }\n\n .fs-pagination-lg .fs-page-link {\n min-width: 40px;\n height: 40px;\n padding: 0 12px;\n font-size: $font-size-md;\n }\n\n // Prev/next descritivo: item com ícone + texto (\"Anterior\"/\"Próxima\") em\n // vez de só \"«\"/\"»\" — `.fs-page-link` já acomoda largura variável\n // (min-width é piso, não teto); só falta o espaçamento entre ícone e texto.\n .fs-page-link-text {\n gap: 6px;\n padding: 0 14px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-breadcrumb {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 4px;\n margin: 0;\n padding: 0;\n list-style: none;\n font-size: $font-size-sm;\n }\n\n .fs-breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--fs-color-muted);\n }\n\n .fs-breadcrumb-item + .fs-breadcrumb-item::before {\n color: var(--fs-color-muted);\n content: \"/\";\n }\n\n .fs-breadcrumb-item a {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: var(--fs-alert-primary-text);\n text-decoration: none;\n }\n\n .fs-breadcrumb-item a:hover {\n text-decoration: underline;\n }\n\n .fs-breadcrumb-item.is-active {\n color: var(--fs-color-text);\n }\n\n // Breadcrumb avançado (js/breadcrumb.js): trunca labels longos com reticências\n // (tooltip com o texto completo é anexado via js/tooltip.js só quando o texto\n // realmente transborda) e, em telas pequenas, recolhe os níveis\n // intermediários num único item \"…\" que abre um dropdown (js/dropdown.js)\n // com os links ocultos.\n .fs-breadcrumb-item-truncate {\n display: inline-block;\n max-width: 160px;\n vertical-align: bottom;\n\n @include truncate;\n }\n\n .fs-breadcrumb-more {\n padding: 0;\n border: none;\n color: var(--fs-color-muted);\n background-color: var(--fs-color-surface-raised);\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n cursor: pointer;\n }\n\n .fs-breadcrumb-more:hover {\n color: var(--fs-color-text);\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-spinner {\n --fs-spinner-size: 20px;\n --fs-spinner-stroke: 2px;\n --fs-spinner-duration: 0.8s;\n\n display: inline-block;\n box-sizing: border-box;\n width: var(--fs-spinner-size);\n height: var(--fs-spinner-size);\n vertical-align: middle;\n border: var(--fs-spinner-stroke) solid color-mix(in srgb, currentcolor 20%, transparent);\n border-top-color: currentcolor;\n border-radius: 50%;\n animation: fokus-spin var(--fs-spinner-duration) linear infinite;\n will-change: transform;\n }\n\n .fs-spinner-sm {\n --fs-spinner-size: 14px;\n --fs-spinner-stroke: 2px;\n }\n\n .fs-spinner-lg {\n --fs-spinner-size: 32px;\n --fs-spinner-stroke: 3px;\n }\n\n @each $name, $color in $theme-colors {\n .fs-spinner-#{$name} {\n color: var(--fs-color-#{$name});\n }\n }\n\n @keyframes fokus-spin { to { transform: rotate(360deg); } }\n\n .fs-progress {\n --fs-progress-height: 8px;\n --fs-progress-track: var(--fs-color-subtle);\n --fs-progress-radius: 0;\n\n position: relative;\n display: flex;\n height: var(--fs-progress-height);\n overflow: hidden;\n background-color: var(--fs-progress-track);\n border-radius: var(--fs-progress-radius);\n }\n\n .fs-progress-bar {\n --fs-progress-bar-bg: var(--fs-color-primary);\n --fs-progress-color: var(--fs-color-on-primary);\n\n display: flex;\n align-items: center;\n justify-content: center;\n width: calc(var(--fs-progress-value, 0) * 1%);\n height: 100%;\n min-width: 0;\n overflow: hidden;\n color: var(--fs-progress-color);\n background-color: var(--fs-progress-bar-bg);\n font-size: 0;\n line-height: 1;\n text-overflow: ellipsis;\n white-space: nowrap;\n transition: width 0.25s ease-out;\n }\n\n @each $name, $color in $theme-colors {\n .fs-progress-bar-#{$name} {\n --fs-progress-bar-bg: var(--fs-color-#{$name});\n --fs-progress-color: #{color-contrast($color)};\n }\n }\n\n .fs-spinner[data-fs-loading=\"false\"] {\n display: none;\n }\n\n .fs-progress-sm {\n --fs-progress-height: 4px;\n }\n\n .fs-progress-lg {\n --fs-progress-height: 16px;\n }\n\n .fs-progress-lg .fs-progress-bar {\n padding-inline: 6px;\n font-size: $font-size-xs;\n }\n\n .fs-progress-meta {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 12px;\n max-width: 480px;\n margin-bottom: 6px;\n color: var(--fs-color-text);\n font-size: $font-size-sm;\n }\n\n .fs-progress-value {\n color: var(--fs-color-muted);\n font-variant-numeric: tabular-nums;\n }\n\n .fs-progress-indeterminate .fs-progress-bar {\n width: 36%;\n animation: fokus-progress-indeterminate 1.25s ease-in-out infinite;\n }\n\n .fs-progress-indeterminate {\n --fs-progress-track: color-mix(in srgb, var(--fs-color-primary) 18%, transparent);\n }\n\n @keyframes fokus-progress-indeterminate { from { transform: translateX(-110%); } to { transform: translateX(290%); } }\n\n .fs-progress-complete .fs-progress-bar {\n --fs-progress-bar-bg: var(--fs-color-success);\n --fs-progress-color: #{color-contrast($fokus-color-success)};\n }\n\n .fs-progress-error .fs-progress-bar {\n --fs-progress-bar-bg: var(--fs-color-danger);\n --fs-progress-color: #{color-contrast($fokus-color-danger)};\n }\n\n .fs-progress-status {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n margin-top: 6px;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n\n .fs-progress-status-icon {\n display: inline-grid;\n width: 14px;\n height: 14px;\n place-items: center;\n color: var(--fs-alert-success-text);\n }\n\n .fs-progress-status-icon .fs-icon {\n width: 14px;\n height: 14px;\n stroke: currentcolor;\n }\n\n .fs-progress-status-danger,\n .fs-progress-error + .fs-progress-status {\n color: var(--fs-alert-danger-text);\n }\n\n .fs-progress-marker {\n position: absolute;\n z-index: 1;\n top: 0;\n bottom: 0;\n left: calc(var(--fs-progress-marker-value) * 1%);\n width: 2px;\n background-color: var(--fs-color-text);\n pointer-events: none;\n transform: translateX(-1px);\n }\n\n .fs-progress-minimum .fs-progress-bar {\n width: max(calc(var(--fs-progress-value, 0) * 1%), 4px);\n }\n\n .fs-progress-bar-striped {\n background-image: linear-gradient(45deg, color-mix(in srgb, currentcolor 16%, transparent) 25%, transparent 25%, transparent 50%, color-mix(in srgb, currentcolor 16%, transparent) 50%, color-mix(in srgb, currentcolor 16%, transparent) 75%, transparent 75%, transparent);\n background-size: 16px 16px;\n }\n .fs-progress-bar-animated { animation: fokus-progress-stripes 1s linear infinite; }\n\n @keyframes fokus-progress-stripes { from { background-position: 16px 0; } to { background-position: 0 0; } }\n\n @media (prefers-reduced-motion: reduce) {\n .fs-spinner {\n --fs-spinner-duration: 1.5s;\n }\n\n .fs-progress-bar-animated {\n animation-duration: 1.5s;\n }\n\n .fs-progress-indeterminate .fs-progress-bar {\n animation-duration: 1.8s;\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n@use \"sass:map\";\n\n@layer components {\n .fs-carousel {\n --fs-carousel-radius: var(--fs-radius-md);\n --fs-carousel-transition-duration: var(--fs-transition-normal);\n --fs-carousel-transition-easing: var(--fs-ease-standard);\n --fs-carousel-control-size: 44px;\n --fs-carousel-control-inset: var(--fs-space-2);\n --fs-carousel-control-gap: var(--fs-space-1);\n --fs-carousel-control-color: var(--fs-color-white);\n --fs-carousel-control-paused-color: var(--fs-color-warning);\n --fs-carousel-control-bg: rgb(15 23 42 / 72%);\n --fs-carousel-control-bg-hover: rgb(15 23 42 / 88%);\n --fs-carousel-focus-color: var(--fs-color-white);\n --fs-carousel-indicator-size: 8px;\n --fs-carousel-indicator-active-width: 24px;\n --fs-carousel-indicator-color: rgb(255 255 255 / 62%);\n --fs-carousel-indicator-active-color: var(--fs-color-white);\n --fs-carousel-caption-scrim: rgb(15 23 42 / 78%);\n --fs-carousel-top-safe-area: calc(var(--fs-carousel-control-size) + (var(--fs-carousel-control-inset) * 2));\n --fs-carousel-bottom-safe-area: calc(32px + var(--fs-space-2) + 24px);\n --fs-carousel-progress-height: 3px;\n\n position: relative;\n overflow: hidden;\n border-radius: var(--fs-carousel-radius);\n }\n\n .fs-carousel::before {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(var(--fs-carousel-control-size) + (var(--fs-carousel-control-inset) * 2));\n pointer-events: none;\n content: \"\";\n background: linear-gradient(to bottom, rgb(15 23 42 / 76%), rgb(15 23 42 / 32%));\n opacity: 0;\n transition: opacity var(--fs-transition-fast) var(--fs-ease-standard);\n }\n\n .fs-carousel-inner {\n display: flex;\n transition: transform var(--fs-carousel-transition-duration) var(--fs-carousel-transition-easing);\n }\n\n .fs-carousel-item {\n position: relative;\n flex: 0 0 100%;\n width: 100%;\n }\n\n .fs-carousel-item img {\n display: block;\n width: 100%;\n }\n\n .fs-carousel.is-dragging .fs-carousel-inner {\n cursor: grabbing;\n transition: none;\n user-select: none;\n }\n\n .fs-carousel:not(.is-static) .fs-carousel-inner {\n cursor: grab;\n touch-action: pan-y;\n }\n\n .fs-carousel-fade .fs-carousel-inner {\n display: block;\n transform: none;\n }\n\n .fs-carousel-fade .fs-carousel-item {\n position: absolute;\n inset: 0;\n opacity: 0;\n transition: opacity var(--fs-carousel-transition-duration) var(--fs-carousel-transition-easing);\n }\n\n .fs-carousel-fade .fs-carousel-item.is-active {\n position: relative;\n opacity: 1;\n }\n\n .fs-carousel-control-prev,\n .fs-carousel-control-next,\n .fs-carousel-control-toggle {\n position: absolute;\n top: var(--fs-carousel-control-inset);\n z-index: 2;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--fs-carousel-control-size);\n height: var(--fs-carousel-control-size);\n padding: 0;\n color: var(--fs-carousel-control-color);\n background-color: transparent;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 18px 18px;\n border: 0;\n border-radius: 0;\n cursor: pointer;\n opacity: 0;\n transition: background-color var(--fs-transition-fast) var(--fs-ease-standard),\n opacity var(--fs-transition-fast) var(--fs-ease-standard),\n transform var(--fs-transition-fast) var(--fs-ease-standard);\n }\n\n .fs-carousel-control-prev,\n .fs-carousel-control-next {\n transform: none;\n }\n\n .fs-carousel-control-prev {\n left: var(--fs-carousel-control-inset);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4 6 9l5 5'/%3E%3C/svg%3E\");\n }\n\n .fs-carousel-control-next {\n left: calc(var(--fs-carousel-control-inset) + var(--fs-carousel-control-size) + var(--fs-carousel-control-gap));\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 4 5 5-5 5'/%3E%3C/svg%3E\");\n }\n\n .fs-carousel-control-toggle {\n left: calc(var(--fs-carousel-control-inset) + var(--fs-carousel-control-size) + var(--fs-carousel-control-gap));\n }\n\n .fs-carousel:has(.fs-carousel-control-toggle) .fs-carousel-control-next {\n left: calc(var(--fs-carousel-control-inset) + ((var(--fs-carousel-control-size) + var(--fs-carousel-control-gap)) * 2));\n }\n\n .fs-carousel-control-toggle[aria-pressed=\"true\"] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 5v8M11 5v8'/%3E%3C/svg%3E\");\n }\n\n .fs-carousel-control-toggle[aria-pressed=\"false\"] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23ffffff'%3E%3Cpath d='m7 4 7 5-7 5z'/%3E%3C/svg%3E\");\n }\n\n .fs-carousel.is-autoplay-paused .fs-carousel-control-toggle[aria-pressed=\"true\"] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23f0b40e' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 5v8M11 5v8'/%3E%3C/svg%3E\");\n }\n\n .fs-carousel.is-autoplay-paused .fs-carousel-control-toggle[aria-pressed=\"false\"] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23f0b40e'%3E%3Cpath d='m7 4 7 5-7 5z'/%3E%3C/svg%3E\");\n }\n\n .fs-carousel-control-prev:hover,\n .fs-carousel-control-next:hover,\n .fs-carousel-control-toggle:hover {\n background-color: var(--fs-carousel-control-bg-hover);\n }\n\n .fs-carousel-control-prev:active,\n .fs-carousel-control-next:active,\n .fs-carousel-control-toggle:active {\n transform: scale(0.94);\n }\n\n .fs-carousel-control-prev:focus-visible,\n .fs-carousel-control-next:focus-visible,\n .fs-carousel-control-toggle:focus-visible,\n .fs-carousel-indicators button:focus-visible {\n @include focus-ring(var(--fs-carousel-focus-color));\n }\n\n .fs-carousel:hover .fs-carousel-control-prev,\n .fs-carousel:hover .fs-carousel-control-next,\n .fs-carousel:hover .fs-carousel-control-toggle,\n .fs-carousel:focus-within .fs-carousel-control-prev,\n .fs-carousel:focus-within .fs-carousel-control-next,\n .fs-carousel:focus-within .fs-carousel-control-toggle {\n opacity: 1;\n }\n\n .fs-carousel:hover::before,\n .fs-carousel:focus-within::before {\n opacity: 1;\n }\n\n .fs-carousel-indicators {\n position: absolute;\n right: 0;\n bottom: var(--fs-space-2);\n left: 0;\n z-index: 1;\n display: flex;\n justify-content: center;\n gap: 0;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .fs-carousel-indicators button {\n position: relative;\n display: grid;\n width: 28px;\n height: 32px;\n padding: 0;\n place-items: center;\n background: transparent;\n border: 0;\n cursor: pointer;\n }\n\n .fs-carousel-indicators button::before {\n width: var(--fs-carousel-indicator-size);\n height: var(--fs-carousel-indicator-size);\n content: \"\";\n background-color: var(--fs-carousel-indicator-color);\n border-radius: var(--fs-radius-lg);\n transition: width var(--fs-transition-fast) var(--fs-ease-standard),\n background-color var(--fs-transition-fast) var(--fs-ease-standard);\n }\n\n .fs-carousel-indicators button.is-active::before {\n width: var(--fs-carousel-indicator-active-width);\n background-color: var(--fs-carousel-indicator-active-color);\n }\n\n .fs-carousel-caption {\n position: absolute;\n right: 0;\n bottom: var(--fs-carousel-bottom-safe-area);\n left: 0;\n z-index: 1;\n box-sizing: border-box;\n max-width: min(100%, 42rem);\n max-block-size: calc(100% - var(--fs-carousel-top-safe-area) - var(--fs-carousel-bottom-safe-area));\n isolation: isolate;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--fs-space-2);\n padding: calc(var(--fs-space-4) + 20px) var(--fs-space-4) var(--fs-space-3);\n color: var(--fs-color-white);\n }\n\n .fs-carousel-caption::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: calc(var(--fs-carousel-bottom-safe-area) * -1);\n left: 0;\n z-index: -1;\n content: \"\";\n background: linear-gradient(to top, var(--fs-carousel-caption-scrim), transparent);\n }\n\n .fs-carousel-caption > * {\n margin: 0;\n }\n\n .fs-carousel-caption .fs-btn {\n --fs-btn-color: var(--fs-color-text-primary);\n --fs-btn-bg: var(--fs-color-white);\n --fs-btn-border-color: var(--fs-color-white);\n --fs-btn-hover-bg: var(--fs-color-subtle);\n --fs-btn-active-bg: var(--fs-color-border-default);\n }\n\n .fs-carousel-caption-side .fs-carousel-caption {\n top: var(--fs-carousel-top-safe-area);\n right: 0;\n bottom: 0;\n left: auto;\n width: min(42%, 28rem);\n max-width: none;\n max-block-size: none;\n padding: var(--fs-space-4) var(--fs-space-4)\n calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-2));\n background: rgb(15 23 42 / 84%);\n }\n\n // A legenda lateral fica à direita por padrão. Esta variação permite\n // preservar o assunto principal da imagem quando ele estiver à direita.\n .fs-carousel-caption-side .fs-carousel-caption-start {\n right: auto;\n left: 0;\n }\n\n .fs-carousel-caption-side .fs-carousel-caption::before,\n .fs-carousel-caption-stacked .fs-carousel-caption::before {\n display: none;\n }\n\n .fs-carousel-caption-stacked {\n --fs-carousel-bottom-safe-area: 0px;\n }\n\n .fs-carousel-caption-stacked .fs-carousel-caption {\n position: static;\n max-width: none;\n max-block-size: none;\n overflow: visible;\n padding: var(--fs-space-4);\n color: var(--fs-color-text-primary);\n background: var(--fs-color-bg-surface);\n }\n\n .fs-carousel-caption-stacked .fs-carousel-indicators {\n position: relative;\n bottom: auto;\n background: var(--fs-color-bg-surface);\n }\n\n .fs-carousel-counter {\n position: absolute;\n right: var(--fs-space-3);\n bottom: var(--fs-space-2);\n z-index: 2;\n color: var(--fs-color-white);\n font-size: $font-size-sm;\n font-variant-numeric: tabular-nums;\n }\n\n .fs-carousel-progress {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n height: var(--fs-carousel-progress-height);\n overflow: hidden;\n background-color: rgb(255 255 255 / 24%);\n }\n\n .fs-carousel-progress > span {\n display: block;\n width: 100%;\n height: 100%;\n background-color: var(--fs-color-white);\n transform: scaleX(0);\n transform-origin: left;\n }\n\n .fs-carousel-progress.is-running > span {\n animation: fs-carousel-progress var(--fs-carousel-progress-duration, 5000ms) linear forwards;\n }\n\n .fs-carousel.is-two-slides.fs-carousel-hide-indicators-two .fs-carousel-indicators {\n display: none;\n }\n\n .fs-carousel-no-media .fs-carousel-item {\n min-block-size: 15rem;\n background-color: var(--fs-color-bg-surface);\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n }\n\n .fs-carousel-no-media .fs-carousel-counter {\n color: var(--fs-color-text-muted);\n }\n\n .fs-carousel-no-media .fs-carousel-progress {\n background-color: var(--fs-color-border-default);\n }\n\n .fs-carousel-no-media .fs-carousel-progress > span {\n background-color: var(--fs-color-action-primary);\n }\n\n .fs-carousel-media-placeholder {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n min-height: inherit;\n padding: calc(var(--fs-carousel-top-safe-area) + var(--fs-space-4)) var(--fs-space-4)\n calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-4));\n }\n\n .fs-carousel-media-placeholder > * {\n max-width: 36rem;\n margin: 0;\n }\n\n .fs-carousel-media-placeholder > * + * {\n margin-top: var(--fs-space-2);\n }\n\n .fs-carousel-media {\n min-block-size: 18rem;\n background-position: center;\n background-size: cover;\n }\n\n .fs-carousel.is-static .fs-carousel-control-prev,\n .fs-carousel.is-static .fs-carousel-control-next,\n .fs-carousel.is-static .fs-carousel-control-toggle,\n .fs-carousel.is-static .fs-carousel-indicators {\n display: none;\n }\n\n @media (max-width: map.get($breakpoints, sm) - 1px) {\n .fs-carousel {\n --fs-carousel-control-inset: var(--fs-space-1);\n }\n\n .fs-carousel-caption {\n padding: calc(var(--fs-space-3) + 20px) var(--fs-space-3) var(--fs-space-3);\n }\n\n .fs-carousel-caption-side .fs-carousel-caption {\n top: auto;\n bottom: var(--fs-carousel-bottom-safe-area);\n width: auto;\n max-block-size: calc(100% - var(--fs-carousel-top-safe-area) - var(--fs-carousel-bottom-safe-area));\n overflow: clip;\n align-items: flex-end;\n padding: calc(var(--fs-space-3) + 20px) var(--fs-space-3)\n calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-2));\n text-align: end;\n background: transparent;\n }\n\n .fs-carousel-caption-side .fs-carousel-caption-start {\n right: 0;\n left: 0;\n align-items: flex-start;\n text-align: start;\n }\n\n .fs-carousel-caption-side .fs-carousel-item::after {\n position: absolute;\n inset: 0;\n z-index: 0;\n pointer-events: none;\n content: \"\";\n background: linear-gradient(\n to top,\n var(--fs-carousel-caption-scrim) 0%,\n rgb(15 23 42 / 52%) 56%,\n transparent 100%\n );\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .fs-carousel-inner,\n .fs-carousel-fade .fs-carousel-item,\n .fs-carousel-control-prev,\n .fs-carousel-control-next,\n .fs-carousel-control-toggle,\n .fs-carousel-indicators button::before,\n .fs-carousel-progress.is-running > span {\n transition: none;\n animation: none;\n transform: scaleX(1);\n }\n }\n\n @keyframes fs-carousel-progress {\n to {\n transform: scaleX(1);\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Stepper / Wizard. Cabeçalho com os passos (`.fs-step`) e, opcionalmente, painéis\n// de conteúdo (`.fs-step-panel`) e ações de navegação (`.fs-stepper-actions`).\n// Estados por passo: padrão (pendente), `.fs-step-active`, `.fs-step-completed`,\n// `.fs-step-error` — controlados por `js/stepper.js`.\n\n@layer components {\n .fs-stepper-header {\n display: flex;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .fs-step {\n position: relative;\n display: flex;\n flex: 1 1 0;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n text-align: center;\n }\n\n .fs-step-indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: var(--fs-color-muted);\n background-color: var(--fs-color-surface);\n border: 2px solid var(--fs-color-border);\n border-radius: 50%;\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n }\n\n .fs-step-label {\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n }\n\n .fs-step-description {\n color: var(--fs-color-muted);\n font-size: $font-size-xs;\n }\n\n // Conector entre passos: linha do centro deste passo ao centro do próximo.\n .fs-step:not(:last-child)::after {\n content: \"\";\n position: absolute;\n top: 15px;\n left: calc(50% + 20px);\n width: calc(100% - 40px);\n height: 2px;\n background-color: var(--fs-color-border);\n }\n\n // Passo ativo.\n .fs-step-active .fs-step-indicator {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n border-color: var(--fs-color-primary);\n }\n\n .fs-step-active .fs-step-label {\n color: var(--fs-color-text);\n }\n\n // Passo concluído: círculo preenchido com um \"check\" no lugar do número, e o\n // conector à direita fica na cor primária (indica progresso).\n .fs-step-completed .fs-step-indicator {\n color: transparent;\n background-color: var(--fs-color-primary);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5 6.5 12 13 4'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: center;\n border-color: var(--fs-color-primary);\n }\n\n .fs-step-completed .fs-step-label {\n color: var(--fs-color-text);\n }\n\n // `:not(:last-child)` casa a especificidade da regra base do conector\n // (senão o cinza dela venceria e o progresso não apareceria).\n .fs-step-completed:not(:last-child)::after {\n background-color: var(--fs-color-primary);\n }\n\n // Passo em erro.\n .fs-step-error .fs-step-indicator {\n color: color-contrast($fokus-color-danger);\n background-color: var(--fs-color-danger);\n border-color: var(--fs-color-danger);\n }\n\n .fs-step-error .fs-step-label {\n color: var(--fs-alert-danger-text);\n }\n\n // Passo clicável (navegação para trás via cabeçalho).\n .fs-step.fs-step-clickable {\n cursor: pointer;\n }\n\n .fs-step.fs-step-clickable:focus-visible {\n outline: 2px solid var(--fs-color-primary);\n outline-offset: 2px;\n border-radius: var(--fs-radius-sm);\n }\n\n // Variante vertical.\n .fs-stepper-vertical .fs-stepper-header {\n flex-direction: column;\n }\n\n .fs-stepper-vertical .fs-step {\n flex-direction: row;\n flex: 0 0 auto;\n align-items: flex-start;\n gap: 12px;\n min-height: 56px;\n text-align: left;\n }\n\n .fs-stepper-vertical .fs-step-content {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding-top: 5px;\n }\n\n .fs-stepper-vertical .fs-step:not(:last-child)::after {\n top: 34px;\n left: 15px;\n width: 2px;\n height: calc(100% - 22px);\n }\n\n // Painéis de conteúdo (wizard) e ações de navegação.\n .fs-step-panel {\n display: none;\n }\n\n .fs-step-panel.is-active {\n display: block;\n }\n\n .fs-stepper-content {\n margin-top: 20px;\n }\n\n .fs-stepper-actions {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n margin-top: 20px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Grupo de botões com estado selecionado. Modo exclusivo: `<input\n// type=\"radio\">` (mesmo `name` em todos os itens). Modo inclusivo: `<input\n// type=\"checkbox\">`, cada item seleciona/deseleciona de forma independente.\n// O input fica visualmente oculto (mesma técnica de `.fs-file-input`,\n// scss/forms/_forms.scss) e o `<label>` irmão recebe o estilo.\n\n@layer components {\n .fs-segmented-control {\n display: inline-flex;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-sm);\n overflow: hidden;\n }\n\n .fs-segmented-item {\n display: flex;\n }\n\n .fs-segmented-item:not(:first-child) .fs-segmented-label {\n border-left: 1px solid var(--fs-color-border);\n }\n\n .fs-segmented-input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n .fs-segmented-label {\n display: inline-flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n min-height: 38px;\n padding: 0 12px;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n font-size: $font-size-md;\n font-weight: $font-weight-medium;\n text-align: center;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n transition: background-color 0.15s ease-in-out, color 0.15s ease-in-out;\n }\n\n .fs-segmented-label:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-segmented-input:checked + .fs-segmented-label {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n\n .fs-segmented-input:focus-visible + .fs-segmented-label {\n position: relative;\n z-index: 1;\n\n @include focus-ring;\n }\n\n .fs-segmented-input:disabled + .fs-segmented-label {\n opacity: 0.4;\n pointer-events: none;\n }\n\n .fs-segmented-control-sm .fs-segmented-label {\n min-height: 30px;\n padding: 0 8px;\n font-size: $font-size-sm;\n }\n\n .fs-segmented-control-lg .fs-segmented-label {\n min-height: 46px;\n padding: 0 16px;\n font-size: $font-size-lg;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Placeholder de carregamento. Tamanho/forma controlados por largura/altura\n// inline (`style=\"width: ...; height: ...\"`) ou pelas variantes abaixo —\n// mesma abordagem de `.fs-progress-bar` (scss/components/_spinner.scss), que já\n// usa `style=\"width\"` em vez de classes de tamanho fixas.\n\n@layer components {\n .fs-skeleton {\n display: block;\n background-color: var(--fs-color-subtle);\n border-radius: var(--fs-radius-sm);\n animation: fokus-skeleton-pulse 1.5s ease-in-out infinite;\n }\n\n .fs-skeleton-text {\n width: 100%;\n height: 1em;\n }\n\n .fs-skeleton-text:not(:last-child) {\n margin-bottom: 0.5em;\n }\n\n .fs-skeleton-text:last-child {\n width: 80%;\n }\n\n .fs-skeleton-circle {\n flex-shrink: 0;\n border-radius: 50%;\n }\n\n .fs-skeleton-rect {\n border-radius: var(--fs-radius-md);\n }\n\n .fs-skeleton-card {\n display: grid;\n gap: var(--fs-space-3);\n min-height: 10rem;\n padding: var(--fs-space-4);\n border-radius: var(--fs-radius-md);\n }\n\n .fs-skeleton-table {\n height: 1.25rem;\n margin-block-end: var(--fs-space-2);\n }\n\n .fs-skeleton-avatar {\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 50%;\n }\n\n @keyframes fokus-skeleton-pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.5;\n }\n }\n\n // Variante \"wave\": em vez de pulsar a opacidade inteira, varre um brilho da\n // esquerda pra direita — precisa de `overflow: hidden` porque o brilho é um\n // pseudo-elemento maior que o próprio skeleton, deslocado por `translateX`.\n .fs-skeleton-wave {\n position: relative;\n overflow: hidden;\n animation: none;\n }\n\n .fs-skeleton-wave::after {\n position: absolute;\n inset: 0;\n content: \"\";\n background-image: linear-gradient(90deg, transparent, rgb(255 255 255 / 30%), transparent);\n transform: translateX(-100%);\n animation: fokus-skeleton-wave 1.6s linear infinite;\n }\n\n @keyframes fokus-skeleton-wave {\n 100% {\n transform: translateX(100%);\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .fs-skeleton {\n animation: none;\n }\n\n .fs-skeleton-wave::after {\n animation: none;\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Linha do tempo, 100% CSS. Vertical por padrão (`.fs-timeline`); variante\n// `.fs-timeline-horizontal` inverte o eixo. Estados por item (`.fs-timeline-item`):\n// padrão (pendente), `.fs-timeline-active`, `.fs-timeline-completed`,\n// `.fs-timeline-failed` — mesma lógica de conector do Stepper\n// (scss/components/_stepper.scss): a linha entre marcadores fica na cor do\n// item concluído para indicar progresso.\n\n@layer components {\n .fs-timeline {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .fs-timeline-item {\n position: relative;\n display: flex;\n gap: 12px;\n padding-bottom: 24px;\n }\n\n .fs-timeline-item:last-child {\n padding-bottom: 0;\n }\n\n .fs-timeline-marker {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n margin-top: 3px;\n background-color: var(--fs-color-surface);\n background-repeat: no-repeat;\n background-position: center;\n border: 2px solid var(--fs-color-border);\n border-radius: 50%;\n }\n\n .fs-timeline-item:not(:last-child)::before {\n content: \"\";\n position: absolute;\n top: 22px;\n left: 7px;\n width: 2px;\n height: calc(100% - 22px);\n background-color: var(--fs-color-border);\n }\n\n .fs-timeline-content {\n flex: 1;\n padding-top: 1px;\n }\n\n .fs-timeline-title {\n margin: 0;\n color: var(--fs-color-text);\n font-size: $font-size-md;\n font-weight: $font-weight-medium;\n }\n\n .fs-timeline-text {\n margin: 4px 0 0;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n\n .fs-timeline-time {\n display: block;\n margin-top: 2px;\n color: var(--fs-color-muted);\n font-size: $font-size-xs;\n }\n\n // Item ativo (em andamento).\n .fs-timeline-active .fs-timeline-marker {\n background-color: var(--fs-color-primary);\n border-color: var(--fs-color-primary);\n }\n\n // Item concluído: marcador preenchido com um \"check\" (mesmo ícone do\n // Stepper) e o conector seguinte fica na cor de sucesso (indica progresso).\n .fs-timeline-completed .fs-timeline-marker {\n background-color: var(--fs-color-success);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5.5 4 8l4-6'/%3E%3C/svg%3E\");\n border-color: var(--fs-color-success);\n }\n\n .fs-timeline-completed:not(:last-child)::before {\n background-color: var(--fs-color-success);\n }\n\n // Item com falha.\n .fs-timeline-failed .fs-timeline-marker {\n background-color: var(--fs-color-danger);\n border-color: var(--fs-color-danger);\n }\n\n .fs-timeline-failed .fs-timeline-title {\n color: var(--fs-alert-danger-text);\n }\n\n // Variante horizontal: cada item vira uma coluna, marcador no topo e\n // conector correndo na horizontal entre os centros dos marcadores (mesma\n // técnica do `.fs-step` padrão em scss/components/_stepper.scss).\n .fs-timeline-horizontal {\n flex-direction: row;\n }\n\n .fs-timeline-horizontal .fs-timeline-item {\n flex: 1 1 0;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding-bottom: 0;\n text-align: center;\n }\n\n // No modo horizontal o marcador não precisa do deslocamento vertical usado\n // para alinhar com a primeira linha de texto (margin-top no modo vertical);\n // zerá-lo faz o conector cair exatamente no centro do círculo.\n .fs-timeline-horizontal .fs-timeline-marker {\n margin-top: 0;\n }\n\n .fs-timeline-horizontal .fs-timeline-item:not(:last-child)::before {\n top: 7px;\n left: calc(50% + 15px);\n width: calc(100% - 30px);\n height: 2px;\n }\n\n .fs-timeline-horizontal .fs-timeline-content {\n padding-top: 0;\n }\n}\n","// Extraído do padrão já usado por `.fs-accordion-collapse`\n// (scss/components/_accordion.scss): o `overflow: hidden` é exigido pelo\n// `collapse()`/`expand()` de js/core/transition.js, que anima a propriedade\n// `height` do elemento.\n\n@layer components {\n .fs-collapse {\n overflow: hidden;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Notification Center (Etapa 10): orquestra o Toast (scss/components/_toasts.scss)\n// e guarda um histórico. Os toasts em si reaproveitam `.fs-toast`/`.fs-toast-container`\n// sem estilo novo; aqui ficam só o contador de não-lidas no gatilho e o painel\n// de histórico. O comportamento (empilhar toasts, marcar lido, persistir) é do\n// js/notification-center.js (FokusStyles.NotificationCenter).\n\n// O gatilho estabelece o contexto de posicionamento do contador.\n\n@layer components {\n [data-fs=\"notification-center\"] {\n position: relative;\n }\n\n .fs-notification-badge {\n position: absolute;\n top: -6px;\n right: -6px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 999px;\n color: color-contrast($fokus-color-danger);\n background-color: var(--fs-color-danger);\n font-size: 0.65rem;\n font-weight: $font-weight-medium;\n line-height: 1;\n }\n\n .fs-notification-badge[hidden] {\n display: none;\n }\n\n // Painel de histórico: reaproveita a mesma linguagem visual do Dropdown/Toast\n // (superfície + borda + sombra), posicionado via js/core/positioning.js.\n .fs-notification-center {\n position: absolute;\n display: none;\n flex-direction: column;\n width: min(320px, calc(100vw - 2 * var(--fs-space-3)));\n max-height: 420px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n z-index: var(--fs-z-notification);\n }\n\n .fs-notification-center.is-open {\n display: flex;\n }\n\n .fs-notification-center-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n border-bottom: 1px solid var(--fs-color-border);\n }\n\n .fs-notification-center-title {\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n }\n\n .fs-notification-list {\n margin: 0;\n padding: 0;\n overflow-y: auto;\n list-style: none;\n }\n\n .fs-notification-item {\n display: flex;\n gap: 10px;\n align-items: flex-start;\n padding: 10px 14px;\n border-left: 3px solid transparent;\n border-bottom: 1px solid var(--fs-color-border);\n }\n\n .fs-notification-item:last-child {\n border-bottom: none;\n }\n\n .fs-notification-item-unread {\n background-color: var(--fs-color-subtle);\n }\n\n @each $name, $color in $theme-colors {\n .fs-notification-item-#{$name} {\n border-left-color: var(--fs-color-#{$name});\n }\n }\n\n .fs-notification-item-content {\n flex: 1;\n min-width: 0;\n }\n\n .fs-notification-item-title {\n margin: 0;\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n }\n\n .fs-notification-item-text {\n margin: 2px 0 0;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n\n .fs-notification-item-time {\n display: block;\n margin-top: 4px;\n color: var(--fs-color-muted);\n font-size: $font-size-xs;\n }\n\n .fs-notification-item .fs-btn-close {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n }\n\n .fs-notification-empty {\n padding: 24px 14px;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n text-align: center;\n }\n\n .fs-notification-empty[hidden] {\n display: none;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Nested Menu (Etapa 10): Dropdown com submenus recursivos. Reaproveita\n// `.fs-dropdown-menu`/`.fs-dropdown-item` (scss/components/_dropdown.scss) sem\n// reestilizar — só adiciona o posicionamento em cascata dos submenus e a seta\n// indicadora. Abertura por hover é 100% CSS; teclado/clique e o flip de borda\n// ficam no js/nested-menu.js (FokusStyles.NestedMenu), que adiciona `.is-open`.\n\n// Cada nível de submenu é envolto por `.fs-dropdown-submenu`, que serve de âncora\n// de posicionamento para o `.fs-dropdown-menu` filho.\n\n@layer components {\n .fs-dropdown-submenu {\n position: relative;\n }\n\n // Item que abre um submenu: seta apontando para o lado (em vez da seta pra\n // baixo do `.fs-dropdown-toggle`), empurrada para a direita do item.\n .fs-dropdown-item-submenu {\n justify-content: space-between;\n }\n\n .fs-dropdown-item-submenu::after {\n margin-left: 8px;\n content: \"\";\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 5px solid currentcolor;\n }\n\n // Submenu abre à direita do item, alinhado ao topo (compensa o padding + borda\n // do menu pai para os primeiros itens ficarem na mesma linha).\n .fs-dropdown-submenu > .fs-dropdown-menu {\n top: -7px;\n left: 100%;\n margin: 0;\n }\n\n .fs-dropdown-submenu:hover > .fs-dropdown-menu,\n .fs-dropdown-submenu > .fs-dropdown-menu.is-open {\n display: block;\n }\n\n // Sem espaço à direita: o JS marca `.fs-dropdown-submenu-left` e o submenu abre\n // para a esquerda.\n .fs-dropdown-submenu-left > .fs-dropdown-menu {\n right: 100%;\n left: auto;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Tile: linha compacta ícone + título/subtítulo + ações, para listas de\n// opções/configurações/itens de navegação (sinergia com Notification Center\n// e Empty State — mesmo vocabulário visual de ícone+texto). Reusa `.fs-btn`\n// nas ações e `.fs-stretched-link` (_cards.scss) para a variante clicável\n// (tile inteiro age como link, sem precisar envolver tudo numa `<a>`).\n@layer components {\n .fs-tile {\n position: relative;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n background-color: var(--fs-color-surface);\n }\n\n .fs-tile-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-subtle);\n font-size: $font-size-lg;\n }\n\n .fs-tile-body {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .fs-tile-title {\n margin: 0;\n color: var(--fs-color-text);\n font-size: $font-size-md;\n font-weight: $font-weight-medium;\n\n @include truncate;\n }\n\n .fs-tile-subtitle {\n margin: 0;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n\n @include truncate;\n }\n\n .fs-tile-actions {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 8px;\n }\n\n // Ações embaixo: o tile quebra linha (flex-wrap) e `.fs-tile-actions` ocupa\n // a largura toda numa segunda linha, alinhada à direita — em vez do padrão\n // (ações à direita, na mesma linha do ícone/corpo).\n .fs-tile-actions-bottom {\n flex-wrap: wrap;\n }\n\n .fs-tile-actions-bottom .fs-tile-actions {\n flex-basis: 100%;\n justify-content: flex-end;\n margin-top: 4px;\n }\n\n // Tile inteiro clicável: usa `.fs-stretched-link` num link dentro do corpo\n // (mesma técnica do Card) — o hover/focus visual fica no `.fs-tile`.\n .fs-tile-clickable {\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n\n .fs-tile-clickable:hover,\n .fs-tile-clickable:focus-within {\n border-color: var(--fs-color-primary);\n box-shadow: var(--fs-shadow-sm);\n }\n\n .fs-tile-sm {\n gap: 8px;\n padding: 8px;\n }\n\n .fs-tile-sm .fs-tile-icon {\n width: 32px;\n height: 32px;\n font-size: $font-size-md;\n }\n\n .fs-tile-sm .fs-tile-title {\n font-size: $font-size-sm;\n }\n\n .fs-tile-sm .fs-tile-subtitle {\n font-size: $font-size-xs;\n }\n\n .fs-tile-lg {\n gap: 16px;\n padding: 16px;\n }\n\n .fs-tile-lg .fs-tile-icon {\n width: 48px;\n height: 48px;\n font-size: $font-size-xl;\n }\n\n .fs-tile-lg .fs-tile-title {\n font-size: $font-size-lg;\n }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-avatar {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n overflow: hidden;\n color: var(--fs-color-on-primary);\n font-weight: 600;\n background: var(--fs-color-primary);\n border-radius: 50%;\n object-fit: cover;\n }\n\n .fs-avatar-sm { width: 2rem; height: 2rem; font-size: .8125rem; }\n .fs-avatar-lg { width: 3.5rem; height: 3.5rem; font-size: 1.25rem; }\n .fs-avatar-square { border-radius: var(--fs-radius-md); }\n .fs-avatar img { width: 100%; height: 100%; object-fit: cover; }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-button-group {\n display: inline-flex;\n vertical-align: middle;\n }\n\n .fs-button-group > .fs-btn { border-radius: 0; }\n .fs-button-group > .fs-btn:first-child { border-start-start-radius: var(--fs-radius-sm); border-end-start-radius: var(--fs-radius-sm); }\n .fs-button-group > .fs-btn:last-child { border-start-end-radius: var(--fs-radius-sm); border-end-end-radius: var(--fs-radius-sm); }\n .fs-button-group > .fs-btn + .fs-btn { margin-inline-start: -1px; }\n .fs-button-group-vertical { flex-direction: column; align-items: flex-start; }\n .fs-button-group-vertical > .fs-btn { width: 100%; }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-close {\n display: inline-grid;\n width: 2rem;\n height: 2rem;\n place-items: center;\n padding: 0;\n color: currentcolor;\n font-size: 1.5rem;\n line-height: 1;\n background: transparent;\n border: 0;\n border-radius: 50%;\n cursor: pointer;\n opacity: .72;\n }\n\n .fs-close::before { content: \"×\"; }\n .fs-close:hover { opacity: 1; background: var(--fs-color-subtle); }\n .fs-close:focus-visible { outline: var(--fs-focus-width) solid var(--fs-focus-color); outline-offset: var(--fs-focus-offset); }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-list-group {\n display: flex;\n flex-direction: column;\n padding: 0;\n margin: 0;\n list-style: none;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n }\n\n .fs-list-group-item {\n position: relative;\n display: block;\n padding: var(--fs-space-3) var(--fs-space-4);\n color: var(--fs-color-text);\n background: var(--fs-color-surface);\n border-block-end: 1px solid var(--fs-color-border);\n }\n\n .fs-list-group-item:last-child { border-block-end: 0; }\n button.fs-list-group-item, a.fs-list-group-item { width: 100%; text-align: start; cursor: pointer; }\n .fs-list-group-item:hover { background: var(--fs-color-subtle); }\n .fs-list-group-item.is-active { color: var(--fs-color-on-primary); background: var(--fs-color-primary); }\n}\n","@layer components {\n .fs-code {\n padding: .125em .35em;\n color: var(--fs-color-danger);\n background: var(--fs-color-subtle);\n border-radius: var(--fs-radius-sm);\n }\n\n .fs-pre {\n display: block;\n max-width: 100%;\n padding: var(--fs-space-4);\n overflow: auto;\n color: var(--fs-color-text);\n background: var(--fs-color-subtle);\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-ratio { position: relative; width: 100%; }\n .fs-ratio::before { display: block; padding-top: var(--fs-ratio, 56.25%); content: \"\"; }\n .fs-ratio > * { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n .fs-ratio-1x1 { --fs-ratio: 100%; }\n .fs-ratio-4x3 { --fs-ratio: 75%; }\n .fs-ratio-16x9 { --fs-ratio: 56.25%; }\n .fs-ratio-21x9 { --fs-ratio: 42.857%; }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-icon-link { display: inline-flex; gap: .5em; align-items: center; }\n .fs-icon-link svg { width: 1em; height: 1em; flex: 0 0 auto; }\n .fs-icon-link:hover svg { transform: translateX(.15em); }\n\n @media (prefers-reduced-motion: reduce) { .fs-icon-link svg { transition: none; } }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-placeholder { display: inline-block; min-height: 1em; vertical-align: middle; cursor: wait; background: currentcolor; opacity: .18; }\n .fs-placeholder-glow { animation: fs-placeholder-glow 1.5s ease-in-out infinite; }\n .fs-placeholder-wave { background: linear-gradient(90deg, transparent, rgb(255 255 255 / 35%), transparent), currentcolor; background-size: 200% 100%; animation: fs-placeholder-wave 1.5s linear infinite; }\n .fs-placeholder-btn { width: 6rem; height: 2.5rem; border-radius: var(--fs-radius-sm); }\n\n @keyframes fs-placeholder-glow { 50% { opacity: .08; } }\n\n @keyframes fs-placeholder-wave { to { background-position: -200% 0; } }\n\n @media (prefers-reduced-motion: reduce) { .fs-placeholder-glow, .fs-placeholder-wave { animation: none; } }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-progress { display: flex; height: .75rem; overflow: hidden; background: var(--fs-color-subtle); border-radius: 999px; }\n .fs-progress-bar { display: flex; align-items: center; justify-content: center; color: var(--fs-color-on-primary); background: var(--fs-color-primary); transition: width var(--fs-motion-duration-normal) var(--fs-motion-ease-standard); }\n .fs-progress-bar-striped { background-image: linear-gradient(45deg, rgb(255 255 255 / 15%) 25%, transparent 25%, transparent 50%, rgb(255 255 255 / 15%) 50%, rgb(255 255 255 / 15%) 75%, transparent 75%); background-size: 1rem 1rem; }\n\n @media (prefers-reduced-motion: reduce) { .fs-progress-bar { transition: none; } }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n [data-fs-scrollspy] .is-active { color: var(--fs-color-primary); font-weight: 600; }\n .fs-scrollspy-nav { position: sticky; inset-block-start: var(--fs-space-4); }\n}\n","@use \"sass:color\";\n@use \"../settings\" as *;\n@use \"../tools\" as *;\n\n// Theming multi-brand: um `data-fs-brand=\"x\"` sobrescreve só a cor de AÇÃO\n// PRIMÁRIA (--fs-color-primary e os tokens derivados) — secondary/success/\n// warning/danger/info continuam universais entre marcas, porque são\n// semânticos (sucesso é sempre verde, erro sempre vermelho, independente\n// de qual marca está ativa). Composto com `data-theme=\"dark\"` do mesmo\n// jeito que `_dark.scss` faz para a paleta padrão: mistura o primitivo com\n// branco/preto em OKLCH, não recalcula do zero.\n// Limitação conhecida: `.fs-btn-primary`/`.fs-badge-primary` (preenchimento\n// sólido) calculam a cor do texto em tempo de build via `color-contrast()`\n// a partir do primary padrão (azul) — não recalculam por marca. Escolha um\n// primitivo de marca escuro o bastante pro texto branco continuar legível\n// (como o exemplo abaixo), ou sobrescreva `--fs-btn-color`/`--fs-badge-color`\n// manualmente se o primitivo da marca for muito claro. Ver\n// `docs/guides/theming.md#multi-brand`.\n@layer tokens {\n // Marca de exemplo (\"violet\") — mesmo tom usado no exemplo de\n // customização do README, só pra provar que a troca funciona em runtime\n // sem recompilar CSS. Um projeto real substitui/adiciona marcas\n // definindo o próprio primitivo antes de `@use` este arquivo.\n $brand-violet-primary: color.to-space(#6d28d9, oklch) !default;\n\n [data-fs-brand=\"violet\"] {\n --fs-color-primary: #{rgb-fallback($brand-violet-primary)};\n --fs-alert-primary-bg: #{rgb-fallback(tint-color($brand-violet-primary))};\n --fs-alert-primary-text: #{rgb-fallback(shade-color($brand-violet-primary))};\n --fs-feedback-primary-bg: #{rgb-fallback(tint-color($brand-violet-primary))};\n }\n\n [data-fs-brand=\"violet\"][data-theme=\"dark\"],\n [data-theme=\"dark\"] [data-fs-brand=\"violet\"] {\n --fs-color-primary: #{rgb-fallback(color.mix($brand-violet-primary, $color-white, 95%, $method: oklch))};\n --fs-alert-primary-bg: #{rgb-fallback(color.mix($brand-violet-primary, $color-gray-900, 15%, $method: oklch))};\n --fs-alert-primary-text: #{rgb-fallback(color.mix($brand-violet-primary, $color-white, 55%, $method: oklch))};\n --fs-feedback-primary-bg: #{rgb-fallback(color.mix($brand-violet-primary, $color-gray-900, 15%, $method: oklch))};\n }\n\n @supports (color: oklch(0% 0 0)) {\n [data-fs-brand=\"violet\"] {\n --fs-color-primary: #{$brand-violet-primary};\n --fs-alert-primary-bg: #{tint-color($brand-violet-primary)};\n --fs-alert-primary-text: #{shade-color($brand-violet-primary)};\n --fs-feedback-primary-bg: #{tint-color($brand-violet-primary)};\n }\n\n [data-fs-brand=\"violet\"][data-theme=\"dark\"],\n [data-theme=\"dark\"] [data-fs-brand=\"violet\"] {\n --fs-color-primary: #{color.mix($brand-violet-primary, $color-white, 95%, $method: oklch)};\n --fs-alert-primary-bg: #{color.mix($brand-violet-primary, $color-gray-900, 15%, $method: oklch)};\n --fs-alert-primary-text: #{color.mix($brand-violet-primary, $color-white, 55%, $method: oklch)};\n --fs-feedback-primary-bg: #{color.mix($brand-violet-primary, $color-gray-900, 15%, $method: oklch)};\n }\n }\n\n // Preset \"corporate\" — azul-marinho/steel blue, tom sóbrio para\n // aplicações internas/B2B. Mesma técnica de mistura OKLCH acima.\n $brand-corporate-primary: color.to-space(#1d4e89, oklch) !default;\n\n [data-fs-brand=\"corporate\"] {\n --fs-color-primary: #{rgb-fallback($brand-corporate-primary)};\n --fs-alert-primary-bg: #{rgb-fallback(tint-color($brand-corporate-primary))};\n --fs-alert-primary-text: #{rgb-fallback(shade-color($brand-corporate-primary))};\n --fs-feedback-primary-bg: #{rgb-fallback(tint-color($brand-corporate-primary))};\n }\n\n [data-fs-brand=\"corporate\"][data-theme=\"dark\"],\n [data-theme=\"dark\"] [data-fs-brand=\"corporate\"] {\n --fs-color-primary: #{rgb-fallback(color.mix($brand-corporate-primary, $color-white, 95%, $method: oklch))};\n --fs-alert-primary-bg: #{rgb-fallback(color.mix($brand-corporate-primary, $color-gray-900, 15%, $method: oklch))};\n --fs-alert-primary-text: #{rgb-fallback(color.mix($brand-corporate-primary, $color-white, 55%, $method: oklch))};\n --fs-feedback-primary-bg: #{rgb-fallback(color.mix($brand-corporate-primary, $color-gray-900, 15%, $method: oklch))};\n }\n\n // Preset \"vibrant\" — laranja energético, tom para produtos de consumo/\n // marketing que queiram uma ação primária mais chamativa.\n $brand-vibrant-primary: color.to-space(#f2542d, oklch) !default;\n\n [data-fs-brand=\"vibrant\"] {\n --fs-color-primary: #{rgb-fallback($brand-vibrant-primary)};\n --fs-alert-primary-bg: #{rgb-fallback(tint-color($brand-vibrant-primary))};\n --fs-alert-primary-text: #{rgb-fallback(shade-color($brand-vibrant-primary))};\n --fs-feedback-primary-bg: #{rgb-fallback(tint-color($brand-vibrant-primary))};\n }\n\n [data-fs-brand=\"vibrant\"][data-theme=\"dark\"],\n [data-theme=\"dark\"] [data-fs-brand=\"vibrant\"] {\n --fs-color-primary: #{rgb-fallback(color.mix($brand-vibrant-primary, $color-white, 95%, $method: oklch))};\n --fs-alert-primary-bg: #{rgb-fallback(color.mix($brand-vibrant-primary, $color-gray-900, 15%, $method: oklch))};\n --fs-alert-primary-text: #{rgb-fallback(color.mix($brand-vibrant-primary, $color-white, 55%, $method: oklch))};\n --fs-feedback-primary-bg: #{rgb-fallback(color.mix($brand-vibrant-primary, $color-gray-900, 15%, $method: oklch))};\n }\n\n @supports (color: oklch(0% 0 0)) {\n [data-fs-brand=\"corporate\"] {\n --fs-color-primary: #{$brand-corporate-primary};\n --fs-alert-primary-bg: #{tint-color($brand-corporate-primary)};\n --fs-alert-primary-text: #{shade-color($brand-corporate-primary)};\n --fs-feedback-primary-bg: #{tint-color($brand-corporate-primary)};\n }\n\n [data-fs-brand=\"corporate\"][data-theme=\"dark\"],\n [data-theme=\"dark\"] [data-fs-brand=\"corporate\"] {\n --fs-color-primary: #{color.mix($brand-corporate-primary, $color-white, 95%, $method: oklch)};\n --fs-alert-primary-bg: #{color.mix($brand-corporate-primary, $color-gray-900, 15%, $method: oklch)};\n --fs-alert-primary-text: #{color.mix($brand-corporate-primary, $color-white, 55%, $method: oklch)};\n --fs-feedback-primary-bg: #{color.mix($brand-corporate-primary, $color-gray-900, 15%, $method: oklch)};\n }\n\n [data-fs-brand=\"vibrant\"] {\n --fs-color-primary: #{$brand-vibrant-primary};\n --fs-alert-primary-bg: #{tint-color($brand-vibrant-primary)};\n --fs-alert-primary-text: #{shade-color($brand-vibrant-primary)};\n --fs-feedback-primary-bg: #{tint-color($brand-vibrant-primary)};\n }\n\n [data-fs-brand=\"vibrant\"][data-theme=\"dark\"],\n [data-theme=\"dark\"] [data-fs-brand=\"vibrant\"] {\n --fs-color-primary: #{color.mix($brand-vibrant-primary, $color-white, 95%, $method: oklch)};\n --fs-alert-primary-bg: #{color.mix($brand-vibrant-primary, $color-gray-900, 15%, $method: oklch)};\n --fs-alert-primary-text: #{color.mix($brand-vibrant-primary, $color-white, 55%, $method: oklch)};\n --fs-feedback-primary-bg: #{color.mix($brand-vibrant-primary, $color-gray-900, 15%, $method: oklch)};\n }\n }\n}\n\n// Ao contrário de violet/corporate, o primitivo \"vibrant\" (laranja) é claro\n// o bastante pra o texto branco padrão de `.fs-btn-primary`/`.fs-badge-primary`\n// (calculado em tempo de build a partir do primary PADRÃO, não do de marca —\n// ver nota no topo do arquivo) cair abaixo de 4.5:1 — exatamente o caso que\n// a mitigação documentada em docs/guides/theming.md#multi-brand cobre.\n// Precisa estar em `@layer overrides` (a camada de maior prioridade — ver\n// `tokens/_root.scss`): `.fs-btn-primary`/`.fs-badge-primary` setam\n// `--fs-btn-color`/`--fs-badge-color` no próprio elemento dentro de\n// `@layer components`, e cascade layers ignoram especificidade — um\n// seletor mais específico em `@layer tokens` (onde vivem os blocos acima)\n// perderia mesmo assim.\n@layer overrides {\n [data-fs-brand=\"vibrant\"] .fs-btn-primary,\n [data-fs-brand=\"vibrant\"] .fs-badge-primary {\n --fs-btn-color: #{$color-black};\n --fs-badge-color: #{$color-black};\n }\n\n [data-fs-brand=\"vibrant\"] .fs-check {\n --fs-check-mark: #{$color-black};\n }\n}\n","@use \"sass:color\";\n@use \"sass:map\";\n@use \"../settings\" as *;\n@use \"../tools\" as *;\n\n// Peso (% da cor original mantida, ver color.mix()) de cada cor de estado no\n// tema escuro. O limite de cada uma é o quanto dá pra clarear em direção ao\n// branco antes de virar o texto branco/preto que color-contrast() já\n// pré-calculou para os preenchimentos sólidos (botões, badges) no tema claro\n// — passar do limite deixaria esse texto ilegível. `primary` e `danger` têm\n// texto branco no preenchimento, então clareiam pouco (clarear reduz o\n// contraste com o branco); `info` não tem margem e fica sem alteração (100%).\n// Misturas em `$method: oklch` (ver tools/_mixins.scss) — recalibrado e\n// revalidado com `npm run contrast` após a migração para OKLCH.\n@layer tokens {\n $dark-color-weights: (\n primary: 95%,\n secondary: 90%,\n success: 65%,\n warning: 65%,\n danger: 95%,\n info: 100%\n ) !default;\n\n $dark-text: color.to-space(#f1f3f4, oklch) !default;\n $dark-muted: color.to-space(#bdc1c6, oklch) !default;\n $dark-border: color.to-space(#3c4043, oklch) !default;\n $dark-surface: color.to-space(#202124, oklch) !default;\n $dark-subtle: color.to-space(#2b2c2f, oklch) !default;\n\n // Pesos de alert/feedback bg+text no escuro: validados por\n // `npm run contrast` para ≥4.5:1 (texto normal) em todas as 6 cores —\n // não abaixe sem reconferir o relatório.\n $dark-alert-bg-weight: 15%;\n $dark-alert-text-weight: 55%;\n\n [data-theme=\"dark\"],\n [data-fs-theme=\"dark\"] {\n --fs-color-text: #{rgb-fallback($dark-text)};\n --fs-color-muted: #{rgb-fallback($dark-muted)};\n --fs-color-border: #{rgb-fallback($dark-border)};\n --fs-color-surface: #{rgb-fallback($dark-surface)};\n --fs-color-subtle: #{rgb-fallback($dark-subtle)};\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-color-action-primary: var(--fs-color-primary);\n --fs-color-action-danger: var(--fs-color-danger);\n --fs-shadow-sm: 0 1px 3px rgb(0 0 0 / 50%), 0 1px 2px rgb(0 0 0 / 40%);\n --fs-shadow-md: 0 6px 12px rgb(0 0 0 / 55%), 0 3px 6px rgb(0 0 0 / 45%);\n --fs-shadow-lg: 0 15px 30px rgb(0 0 0 / 60%), 0 6px 12px rgb(0 0 0 / 50%);\n --fs-tooltip-bg: #{rgb-fallback($color-gray-100)};\n --fs-tooltip-text: #{rgb-fallback($color-gray-900)};\n\n @each $name, $color in $theme-colors {\n --fs-color-#{$name}: #{rgb-fallback(color.mix($color, $color-white, map.get($dark-color-weights, $name), $method: oklch))};\n --fs-alert-#{$name}-bg: #{rgb-fallback(color.mix($color, $color-gray-900, $dark-alert-bg-weight, $method: oklch))};\n --fs-alert-#{$name}-text: #{rgb-fallback(color.mix($color, $color-white, $dark-alert-text-weight, $method: oklch))};\n --fs-feedback-#{$name}-bg: #{rgb-fallback(color.mix($color, $color-gray-900, $dark-alert-bg-weight, $method: oklch))};\n }\n }\n\n @supports (color: oklch(0% 0 0)) {\n [data-theme=\"dark\"],\n [data-fs-theme=\"dark\"] {\n --fs-color-text: #{$dark-text};\n --fs-color-muted: #{$dark-muted};\n --fs-color-border: #{$dark-border};\n --fs-color-surface: #{$dark-surface};\n --fs-color-subtle: #{$dark-subtle};\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-color-action-primary: var(--fs-color-primary);\n --fs-color-action-danger: var(--fs-color-danger);\n --fs-tooltip-bg: #{$color-gray-100};\n --fs-tooltip-text: #{$color-gray-900};\n\n @each $name, $color in $theme-colors {\n --fs-color-#{$name}: #{color.mix($color, $color-white, map.get($dark-color-weights, $name), $method: oklch)};\n --fs-alert-#{$name}-bg: #{color.mix($color, $color-gray-900, $dark-alert-bg-weight, $method: oklch)};\n --fs-alert-#{$name}-text: #{color.mix($color, $color-white, $dark-alert-text-weight, $method: oklch)};\n --fs-feedback-#{$name}-bg: #{color.mix($color, $color-gray-900, $dark-alert-bg-weight, $method: oklch)};\n }\n }\n }\n\n @media (prefers-color-scheme: dark) {\n [data-fs-theme=\"auto\"] {\n --fs-color-text: #{rgb-fallback($dark-text)};\n --fs-color-muted: #{rgb-fallback($dark-muted)};\n --fs-color-border: #{rgb-fallback($dark-border)};\n --fs-color-surface: #{rgb-fallback($dark-surface)};\n --fs-color-subtle: #{rgb-fallback($dark-subtle)};\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-tooltip-bg: #{rgb-fallback($color-gray-100)};\n --fs-tooltip-text: #{rgb-fallback($color-gray-900)};\n }\n }\n\n @media (forced-colors: active) {\n :root,\n [data-theme=\"dark\"],\n [data-fs-theme=\"light\"],\n [data-fs-theme=\"dark\"],\n [data-fs-theme=\"auto\"] {\n --fs-color-border: CanvasText;\n --fs-color-text: CanvasText;\n --fs-color-surface: Canvas;\n --fs-color-subtle: Canvas;\n --fs-focus-color: Highlight;\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_datatable.scss","../../scss/entries/components-entry.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/tokens/_root.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/tokens/_semantic.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/tokens/_charts.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/base/_reset.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/base/_typography.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/base/_motion.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/base/_accessibility.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_buttons.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/settings/_typography.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/tools/_mixins.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_cards.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_alerts.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_badges.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_tables.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_navbar.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_combobox.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_datepicker.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_command-palette.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_tree-view.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_dropdown.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_modal.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_alert-dialog.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_divider.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_empty-state.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_rating.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_tag.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_offcanvas.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_accordion.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_tabs.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_tooltips.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_popover.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_toasts.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_pagination.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_breadcrumbs.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_spinner.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_carousel.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_stepper.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_segmented-control.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_skeleton.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_timeline.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_collapse.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_notification-center.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_nested-menu.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_tile.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_avatar.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_button-group.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_close-button.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_list-group.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_code.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_ratio.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_icon-link.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_placeholder.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_progress.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-components/scss/components/_scrollspy.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/themes/_brands.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/themes/_dark.scss"],"names":[],"mappings":"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","file":"components.min.css","sourcesContent":["@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Estilos exclusivos do DataTable (`js/datatable.js`) — a tabela, a\n// paginação e o empty state em si reusam `.fs-table`/`.fs-pagination`/\n// `.fs-empty-state` já existentes, sem duplicação.\n\n@layer components {\n .fs-datatable-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n }\n\n .fs-datatable-sort-btn {\n display: inline-flex;\n align-items: center;\n width: 100%;\n padding: 0;\n border: 0;\n background-color: var(--fs-color-surface-raised);\n color: inherit;\n font: inherit;\n text-transform: inherit;\n text-align: left;\n cursor: pointer;\n }\n\n .fs-datatable-sort-btn:focus-visible {\n @include focus-ring;\n }\n\n .fs-datatable-sort-btn::after {\n flex-shrink: 0;\n margin-left: auto;\n padding-left: 4px;\n color: var(--fs-color-muted);\n font-size: $font-size-xs;\n content: \"↕\";\n }\n\n th[aria-sort=\"ascending\"] .fs-datatable-sort-btn::after {\n color: var(--fs-color-text);\n content: \"↑\";\n }\n\n th[aria-sort=\"descending\"] .fs-datatable-sort-btn::after {\n color: var(--fs-color-text);\n content: \"↓\";\n }\n\n .fs-datatable [data-fs-datatable-pagination] {\n display: flex;\n justify-content: flex-end;\n margin-top: 12px;\n }\n\n .fs-datatable td:focus-visible,\n .fs-datatable th:focus-visible {\n @include focus-ring;\n\n outline-offset: -2px;\n }\n}\n","@charset \"UTF-8\";\n@layer reset, tokens, base, layout, components, utilities, overrides;\n@layer tokens {\n :root {\n --fs-color-white: #ffffff;\n --fs-color-black: #000000;\n --fs-color-text: #1e293b;\n --fs-color-muted: #64748b;\n --fs-color-border: #e2e8f0;\n --fs-color-surface: #ffffff;\n --fs-color-subtle: #f8fafc;\n --fs-font-sans: Plus Jakarta Sans, sans-serif;\n --fs-font-mono: Source Code Pro, monospace;\n --fs-font-size-md: 0.8125rem;\n --fs-font-size-h1: 1.75rem;\n --fs-font-size-h2: 1.5rem;\n --fs-font-size-h3: 1.3125rem;\n --fs-font-size-h4: 1.125rem;\n --fs-font-size-h5: 1rem;\n --fs-font-size-h6: 0.875rem;\n --fs-font-weight-semibold: 600;\n --fs-line-height-base: 1.5;\n --fs-line-height-heading: 1.25;\n --fs-radius-sm: 4px;\n --fs-radius-md: 6px;\n --fs-radius-lg: 8px;\n --fs-gutter-x: 1.5rem;\n --fs-gutter-y: 0px;\n --fs-space-0: 0;\n --fs-space-1: 0.25rem;\n --fs-space-2: 0.5rem;\n --fs-space-3: 1rem;\n --fs-space-4: 1.5rem;\n --fs-space-5: 3rem;\n --fs-z-base: 0;\n --fs-z-dropdown: 1000;\n --fs-z-sticky: 1020;\n --fs-z-modal: 1050;\n --fs-z-offcanvas: 1060;\n --fs-z-notification: 1080;\n --fs-z-toast: 1090;\n --fs-z-tooltip: 1100;\n --fs-control-height: 38px;\n --fs-control-height-sm: 30px;\n --fs-control-height-lg: 46px;\n --fs-control-padding-x: 12px;\n --fs-control-padding-x-sm: 8px;\n --fs-control-padding-x-lg: 16px;\n --fs-focus-width: 2px;\n --fs-focus-offset: 2px;\n --fs-focus-color: var(--fs-color-primary);\n --fs-focus-ring-size: 3px;\n --fs-focus-ring-color: color-mix(in srgb, var(--fs-focus-color) 22%, transparent);\n --fs-focus-ring-alpha: 22%;\n --fs-transition-fast: 150ms;\n --fs-transition-normal: 220ms;\n --fs-motion-duration-fast: var(--fs-transition-fast);\n --fs-motion-duration-normal: var(--fs-transition-normal);\n --fs-motion-ease-standard: var(--fs-ease-standard);\n --fs-ease-standard: cubic-bezier(0.2, 0, 0, 1);\n --fs-border-width: 1px;\n --fs-disabled-opacity: 0.5;\n --fs-safe-area-top: env(safe-area-inset-top, 0px);\n --fs-safe-area-right: env(safe-area-inset-right, 0px);\n --fs-safe-area-bottom: env(safe-area-inset-bottom, 0px);\n --fs-safe-area-left: env(safe-area-inset-left, 0px);\n --fs-component-control-height: var(--fs-control-height);\n --fs-component-overlay-backdrop: rgb(0 0 0 / 55%);\n --fs-component-panel-radius: var(--fs-radius-md);\n --fs-component-panel-shadow: var(--fs-shadow-lg);\n --fs-contrast-border-width: var(--fs-border-width);\n --fs-contrast-focus-width: var(--fs-focus-width);\n --fs-cq-sm: 320px;\n --fs-cq-md: 480px;\n --fs-cq-lg: 640px;\n --fs-shadow-sm: 0 1px 3px rgb(0 0 0 / 15%), 0 1px 2px rgb(0 0 0 / 10%);\n --fs-shadow-md: 0 6px 12px rgb(0 0 0 / 15%), 0 3px 6px rgb(0 0 0 / 10%);\n --fs-shadow-lg: 0 15px 30px rgb(0 0 0 / 18%), 0 6px 12px rgb(0 0 0 / 12%);\n --fs-tooltip-bg: #1e293b;\n --fs-tooltip-text: #ffffff;\n --fs-color-primary: #1a61e6;\n --fs-color-on-primary: #ffffff;\n --fs-alert-primary-bg: rgb(220.3846532222, 232.689549371, 254.1042117072);\n --fs-alert-primary-text: rgb(4.2540793692, 32.6552622518, 88.5748738661);\n --fs-color-secondary: #64748b;\n --fs-color-on-secondary: #ffffff;\n --fs-alert-secondary-bg: rgb(230.2895610064, 233.0325853352, 236.9919508609);\n --fs-alert-secondary-text: rgb(33.9166068747, 40.6437781967, 50.3140869721);\n --fs-color-success: rgb(13, 209, 87);\n --fs-color-on-success: #000000;\n --fs-alert-success-bg: rgb(228.9046733915, 249.1514320752, 230.8709345684);\n --fs-alert-success-text: rgb(1.6574790861, 79.745461506, 28.4507801755);\n --fs-color-warning: #fab633;\n --fs-color-on-warning: #000000;\n --fs-alert-warning-bg: rgb(254.9170612621, 244.6528756631, 228.9710928247);\n --fs-alert-warning-text: rgb(96.9838380187, 68.3933599001, 13.3146447009);\n --fs-color-danger: #cc3335;\n --fs-color-on-danger: #ffffff;\n --fs-alert-danger-bg: rgb(251.9225977632, 226.389403069, 223.5618211362);\n --fs-alert-danger-text: rgb(77.6432204678, 13.3146447009, 14.1555411162);\n --fs-color-info: #5e5cc7;\n --fs-color-on-info: #ffffff;\n --fs-alert-info-bg: rgb(228.2395257626, 230.4806192824, 248.3934544766);\n --fs-alert-info-text: rgb(31.3939176289, 30.5530212136, 75.5409794297);\n --fs-feedback-primary-bg: #e6f0ff;\n --fs-feedback-secondary-bg: #f8fafc;\n --fs-feedback-success-bg: #e6fff2;\n --fs-feedback-warning-bg: #fff9e6;\n --fs-feedback-danger-bg: #fff2f3;\n --fs-feedback-info-bg: #f2f2ff;\n }\n @supports (color: oklch(0% 0 0deg)) {\n :root {\n --fs-color-text: oklch(27.9495237712% 0.0368481257 260.0309873929deg);\n --fs-color-muted: oklch(55.4391007662% 0.040717043 257.4166191214deg);\n --fs-color-border: oklch(92.876126719% 0.0126187744 255.5078854448deg);\n --fs-color-subtle: oklch(98.4151869501% 0.0034126992 247.8577745944deg);\n --fs-tooltip-bg: oklch(27.9495237712% 0.0368481257 260.0309873929deg);\n --fs-color-primary: oklch(53.5630074284% 0.2132145174 261.6264320248deg);\n --fs-color-on-primary: #ffffff;\n --fs-alert-primary-bg: oklch(93.0344511143% 0.0319821776 261.6264320248deg);\n --fs-alert-primary-text: oklch(26.7815037142% 0.1066072587 261.6264320248deg);\n --fs-color-secondary: oklch(55.4391007662% 0.040717043 257.4166191214deg);\n --fs-color-on-secondary: #ffffff;\n --fs-alert-secondary-bg: oklch(93.3158651149% 0.0061075564 257.4166191214deg);\n --fs-alert-secondary-text: oklch(27.7195503831% 0.0203585215 257.4166191214deg);\n --fs-color-success: oklch(75.151587899% 0.2146126169 148.125846236deg);\n --fs-color-on-success: #000000;\n --fs-alert-success-bg: oklch(96.2727381849% 0.0321918925 148.125846236deg);\n --fs-alert-success-text: oklch(37.5757939495% 0.1073063085 148.125846236deg);\n --fs-color-warning: oklch(81.9510815663% 0.1562613975 78.6575213966deg);\n --fs-color-on-warning: #000000;\n --fs-alert-warning-bg: oklch(97.2926622349% 0.0234392096 78.6575213966deg);\n --fs-alert-warning-text: oklch(40.9755407832% 0.0781306987 78.6575213966deg);\n --fs-color-danger: oklch(55.9653139301% 0.1897270855 25.2407937498deg);\n --fs-color-on-danger: #ffffff;\n --fs-alert-danger-bg: oklch(93.3947970895% 0.0284590628 25.2407937498deg);\n --fs-alert-danger-text: oklch(27.982656965% 0.0948635427 25.2407937498deg);\n --fs-color-info: oklch(53.3359780029% 0.1620131129 280.2231949375deg);\n --fs-color-on-info: #ffffff;\n --fs-alert-info-bg: oklch(93.0003967004% 0.0243019669 280.2231949375deg);\n --fs-alert-info-text: oklch(26.6679890014% 0.0810065564 280.2231949375deg);\n --fs-feedback-primary-bg: oklch(95.2067827456% 0.0228899025 258.359342143deg);\n --fs-feedback-secondary-bg: oklch(98.4151869501% 0.0034126992 247.8577745944deg);\n --fs-feedback-success-bg: oklch(97.8305614459% 0.0311593614 163.2740567608deg);\n --fs-feedback-warning-bg: oklch(98.17094418% 0.025708244 92.3886876566deg);\n --fs-feedback-danger-bg: oklch(97.1603097552% 0.0140720277 12.0135639679deg);\n --fs-feedback-info-bg: oklch(96.4918490239% 0.0173174767 286.0707018324deg);\n }\n }\n @media (prefers-contrast: more) {\n :root {\n --fs-contrast-border-width: 2px;\n --fs-contrast-focus-width: 3px;\n --fs-focus-width: var(--fs-contrast-focus-width);\n --fs-border-width: var(--fs-contrast-border-width);\n }\n }\n}\n@layer tokens {\n :root {\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-action-primary: var(--fs-color-primary);\n --fs-color-action-danger: var(--fs-color-danger);\n }\n}\n@layer tokens {\n :root {\n --fs-chart-series-1: var(--fs-color-primary);\n --fs-chart-series-2: var(--fs-color-success);\n --fs-chart-series-3: var(--fs-color-warning);\n --fs-chart-series-4: var(--fs-color-danger);\n --fs-chart-series-5: var(--fs-color-info);\n --fs-chart-series-6: var(--fs-color-secondary);\n --fs-chart-grid: var(--fs-color-border);\n --fs-chart-axis: var(--fs-color-muted);\n --fs-chart-tooltip-bg: var(--fs-tooltip-bg);\n --fs-chart-tooltip-text: var(--fs-tooltip-text);\n }\n}\n@layer reset {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n html {\n line-height: var(--fs-line-height-base);\n text-size-adjust: 100%;\n }\n body {\n margin: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n }\n [hidden] {\n display: none !important;\n }\n}\n@layer base {\n body,\n button,\n input,\n select,\n textarea {\n font-family: var(--fs-font-sans);\n font-size: var(--fs-font-size-md);\n }\n code,\n kbd,\n pre,\n samp {\n font-family: var(--fs-font-mono);\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n font-weight: var(--fs-font-weight-semibold);\n line-height: var(--fs-line-height-heading);\n }\n h1 {\n font-size: var(--fs-font-size-h1);\n }\n h2 {\n font-size: var(--fs-font-size-h2);\n }\n h3 {\n font-size: var(--fs-font-size-h3);\n }\n h4 {\n font-size: var(--fs-font-size-h4);\n }\n h5 {\n font-size: var(--fs-font-size-h5);\n }\n h6 {\n font-size: var(--fs-font-size-h6);\n }\n}\n@layer base {\n @media (prefers-reduced-motion: reduce) {\n *,\n *::before,\n *::after {\n scroll-behavior: auto !important;\n transition-duration: 0.01ms !important;\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n }\n .fs-spinner,\n .fs-progress-bar-animated,\n .fs-progress-indeterminate .fs-progress-bar {\n animation-duration: 1.5s !important;\n animation-iteration-count: infinite !important;\n }\n }\n}\n/* stylelint-disable property-no-deprecated, selector-not-notation */\n@layer reset {\n :focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-focus-color);\n outline-offset: var(--fs-focus-offset);\n }\n @media (forced-colors: active) {\n :focus-visible {\n outline: 2px solid CanvasText;\n outline-offset: 2px;\n }\n button,\n [role=button],\n input,\n select,\n textarea,\n .fs-btn {\n border-color: ButtonText;\n forced-color-adjust: auto;\n }\n .fs-u-focus-ring:focus-visible {\n outline: 3px solid Highlight;\n }\n }\n}\n@layer utilities {\n .fs-u-visually-hidden:not(:focus):not(:focus-within),\n .fs-u-visually-hidden-focusable:not(:focus):not(:focus-within) {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip-path: inset(50%) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n .fs-skip-link {\n position: fixed;\n z-index: 1000;\n inset-block-start: var(--fs-space-2);\n inset-inline-start: var(--fs-space-2);\n transform: translateY(-200%);\n padding: var(--fs-space-2) var(--fs-space-3);\n color: var(--fs-color-on-primary);\n background: var(--fs-color-primary);\n border-radius: var(--fs-radius-sm);\n }\n .fs-skip-link:focus {\n transform: translateY(0);\n }\n}\n@layer components {\n .fs-btn {\n --fs-btn-color: var(--fs-color-text-primary);\n --fs-btn-bg: var(--fs-color-bg-subtle);\n --fs-btn-border-color: var(--fs-color-border-default);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--fs-space-1);\n min-height: var(--fs-control-height);\n padding: 0 var(--fs-control-padding-x);\n border: var(--fs-border-width) solid var(--fs-btn-border-color);\n border-radius: var(--fs-radius-sm);\n color: var(--fs-btn-color);\n background-color: var(--fs-btn-bg);\n font-size: 0.8125rem;\n font-weight: 500;\n text-decoration: none;\n cursor: pointer;\n transition: color var(--fs-transition-fast) var(--fs-ease-standard), background-color var(--fs-transition-fast) var(--fs-ease-standard), border-color var(--fs-transition-fast) var(--fs-ease-standard), box-shadow var(--fs-transition-fast) var(--fs-ease-standard);\n }\n .fs-btn:hover {\n --fs-btn-bg: var(--fs-btn-hover-bg, var(--fs-color-subtle));\n }\n .fs-btn:active {\n --fs-btn-bg: var(--fs-btn-active-bg, var(--fs-color-border));\n }\n .fs-btn:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-btn:disabled,\n .fs-btn.is-disabled {\n opacity: var(--fs-disabled-opacity);\n pointer-events: none;\n }\n .fs-btn-primary {\n --fs-btn-color: var(--fs-color-on-primary);\n --fs-btn-bg: var(--fs-color-primary);\n --fs-btn-border-color: var(--fs-color-primary);\n --fs-btn-hover-bg: var(--fs-color-primary);\n --fs-btn-active-bg: var(--fs-color-primary);\n }\n .fs-btn-outline-primary {\n --fs-btn-color: var(--fs-alert-primary-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-primary);\n }\n .fs-btn-outline-primary:hover,\n .fs-btn-outline-primary:active {\n --fs-btn-color: var(--fs-color-on-primary);\n --fs-btn-bg: var(--fs-color-primary);\n }\n .fs-btn-secondary {\n --fs-btn-color: var(--fs-color-on-secondary);\n --fs-btn-bg: var(--fs-color-secondary);\n --fs-btn-border-color: var(--fs-color-secondary);\n --fs-btn-hover-bg: var(--fs-color-secondary);\n --fs-btn-active-bg: var(--fs-color-secondary);\n }\n .fs-btn-outline-secondary {\n --fs-btn-color: var(--fs-alert-secondary-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-secondary);\n }\n .fs-btn-outline-secondary:hover,\n .fs-btn-outline-secondary:active {\n --fs-btn-color: var(--fs-color-on-secondary);\n --fs-btn-bg: var(--fs-color-secondary);\n }\n .fs-btn-success {\n --fs-btn-color: var(--fs-color-on-success);\n --fs-btn-bg: var(--fs-color-success);\n --fs-btn-border-color: var(--fs-color-success);\n --fs-btn-hover-bg: var(--fs-color-success);\n --fs-btn-active-bg: var(--fs-color-success);\n }\n .fs-btn-outline-success {\n --fs-btn-color: var(--fs-alert-success-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-success);\n }\n .fs-btn-outline-success:hover,\n .fs-btn-outline-success:active {\n --fs-btn-color: var(--fs-color-on-success);\n --fs-btn-bg: var(--fs-color-success);\n }\n .fs-btn-warning {\n --fs-btn-color: var(--fs-color-on-warning);\n --fs-btn-bg: var(--fs-color-warning);\n --fs-btn-border-color: var(--fs-color-warning);\n --fs-btn-hover-bg: var(--fs-color-warning);\n --fs-btn-active-bg: var(--fs-color-warning);\n }\n .fs-btn-outline-warning {\n --fs-btn-color: var(--fs-alert-warning-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-warning);\n }\n .fs-btn-outline-warning:hover,\n .fs-btn-outline-warning:active {\n --fs-btn-color: var(--fs-color-on-warning);\n --fs-btn-bg: var(--fs-color-warning);\n }\n .fs-btn-danger {\n --fs-btn-color: var(--fs-color-on-danger);\n --fs-btn-bg: var(--fs-color-danger);\n --fs-btn-border-color: var(--fs-color-danger);\n --fs-btn-hover-bg: var(--fs-color-danger);\n --fs-btn-active-bg: var(--fs-color-danger);\n }\n .fs-btn-outline-danger {\n --fs-btn-color: var(--fs-alert-danger-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-danger);\n }\n .fs-btn-outline-danger:hover,\n .fs-btn-outline-danger:active {\n --fs-btn-color: var(--fs-color-on-danger);\n --fs-btn-bg: var(--fs-color-danger);\n }\n .fs-btn-info {\n --fs-btn-color: var(--fs-color-on-info);\n --fs-btn-bg: var(--fs-color-info);\n --fs-btn-border-color: var(--fs-color-info);\n --fs-btn-hover-bg: var(--fs-color-info);\n --fs-btn-active-bg: var(--fs-color-info);\n }\n .fs-btn-outline-info {\n --fs-btn-color: var(--fs-alert-info-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-info);\n }\n .fs-btn-outline-info:hover,\n .fs-btn-outline-info:active {\n --fs-btn-color: var(--fs-color-on-info);\n --fs-btn-bg: var(--fs-color-info);\n }\n .fs-btn-sm {\n min-height: var(--fs-control-height-sm);\n padding: 0 var(--fs-control-padding-x-sm);\n font-size: 0.75rem;\n }\n .fs-btn-lg {\n min-height: var(--fs-control-height-lg);\n padding: 0 var(--fs-control-padding-x-lg);\n font-size: 1rem;\n }\n .fs-btn-close {\n position: relative;\n width: 20px;\n height: 20px;\n padding: 0;\n border: none;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-muted);\n background-color: var(--fs-color-surface-raised);\n cursor: pointer;\n }\n .fs-btn-close::before,\n .fs-btn-close::after {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 12px;\n height: 2px;\n background-color: currentcolor;\n content: \"\";\n }\n .fs-btn-close::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n .fs-btn-close::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n .fs-btn-close:hover {\n color: var(--fs-color-text);\n background-color: var(--fs-color-subtle);\n }\n .fs-btn-close:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n}\n@layer components {\n .fs-card {\n position: relative;\n display: flex;\n flex-direction: column;\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n border-radius: var(--fs-radius-lg);\n background-color: var(--fs-color-surface);\n }\n .fs-card-horizontal {\n flex-direction: row;\n }\n .fs-card-horizontal .fs-card-header:first-child {\n border-radius: calc(var(--fs-radius-lg) - 1px) 0 0 calc(var(--fs-radius-lg) - 1px);\n border-right: 1px solid var(--fs-color-border);\n border-bottom: none;\n }\n .fs-card-horizontal .fs-card-footer:last-child {\n border-radius: 0 calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px) 0;\n border-left: 1px solid var(--fs-color-border);\n border-top: none;\n }\n .fs-card-clickable {\n transition: border-color var(--fs-transition-fast) var(--fs-ease-standard), box-shadow var(--fs-transition-fast) var(--fs-ease-standard), transform var(--fs-transition-fast) var(--fs-ease-standard);\n }\n .fs-card-clickable:hover,\n .fs-card-clickable:focus-within {\n border-color: var(--fs-color-primary);\n box-shadow: var(--fs-shadow-sm);\n transform: translateY(-1px);\n }\n .fs-stretched-link {\n color: inherit;\n text-decoration: none;\n }\n .fs-stretched-link::after {\n position: absolute;\n inset: 0;\n z-index: 1;\n content: \"\";\n }\n .fs-card-header,\n .fs-card-body,\n .fs-card-footer {\n padding: 10px;\n }\n .fs-card-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n border-bottom: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-subtle);\n }\n .fs-card-header .fs-card-title {\n margin: 0;\n }\n .fs-card-header:first-child {\n border-radius: calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px) 0 0;\n }\n .fs-card-footer {\n border-top: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-subtle);\n }\n .fs-card-footer:last-child {\n border-radius: 0 0 calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px);\n }\n .fs-card-title {\n margin: 0 0 4px;\n color: var(--fs-color-text);\n font-size: 1rem;\n font-weight: 500;\n }\n .fs-card-subtitle {\n margin: 0 0 8px;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n .fs-card-text {\n margin: 0 0 8px;\n color: var(--fs-color-text);\n font-size: 0.8125rem;\n }\n .fs-card-text:last-child {\n margin-bottom: 0;\n }\n .fs-card-sm .fs-card-header,\n .fs-card-sm .fs-card-body,\n .fs-card-sm .fs-card-footer {\n padding: 5px;\n }\n .fs-card-lg .fs-card-header,\n .fs-card-lg .fs-card-body,\n .fs-card-lg .fs-card-footer {\n padding: 15px;\n }\n}\n@layer components {\n .fs-alert {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 12px 16px;\n border: 1px solid var(--fs-color-border);\n border-left: 5px solid var(--fs-color-border);\n border-radius: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: 0.75rem;\n }\n .fs-alert-primary {\n color: var(--fs-alert-primary-text);\n background-color: var(--fs-alert-primary-bg);\n border-color: var(--fs-color-primary);\n }\n .fs-alert-secondary {\n color: var(--fs-alert-secondary-text);\n background-color: var(--fs-alert-secondary-bg);\n border-color: var(--fs-color-secondary);\n }\n .fs-alert-success {\n color: var(--fs-alert-success-text);\n background-color: var(--fs-alert-success-bg);\n border-color: var(--fs-color-success);\n }\n .fs-alert-warning {\n color: var(--fs-alert-warning-text);\n background-color: var(--fs-alert-warning-bg);\n border-color: var(--fs-color-warning);\n }\n .fs-alert-danger {\n color: var(--fs-alert-danger-text);\n background-color: var(--fs-alert-danger-bg);\n border-color: var(--fs-color-danger);\n }\n .fs-alert-info {\n color: var(--fs-alert-info-text);\n background-color: var(--fs-alert-info-bg);\n border-color: var(--fs-color-info);\n }\n}\n@layer components {\n .fs-badge {\n --fs-badge-color: var(--fs-color-text);\n --fs-badge-bg: var(--fs-color-subtle);\n --fs-badge-border: transparent;\n --fs-badge-height: 22px;\n --fs-badge-radius: 0;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n justify-content: center;\n min-height: var(--fs-badge-height);\n padding: 1px 8px 3px;\n border: 1px solid var(--fs-badge-border);\n border-radius: var(--fs-badge-radius);\n color: var(--fs-badge-color);\n background-color: var(--fs-badge-bg);\n font-size: 0.6875rem;\n font-weight: 500;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n }\n .fs-badge-primary {\n --fs-badge-color: #ffffff;\n --fs-badge-bg: var(--fs-color-primary);\n }\n .fs-badge-soft-primary {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-primary) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-primary) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-primary) 38%, transparent);\n }\n .fs-badge-outline-primary {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-primary) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n .fs-badge-secondary {\n --fs-badge-color: #ffffff;\n --fs-badge-bg: var(--fs-color-secondary);\n }\n .fs-badge-soft-secondary {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-secondary) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-secondary) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-secondary) 38%, transparent);\n }\n .fs-badge-outline-secondary {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-secondary) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n .fs-badge-success {\n --fs-badge-color: #000000;\n --fs-badge-bg: var(--fs-color-success);\n }\n .fs-badge-soft-success {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-success) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-success) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-success) 38%, transparent);\n }\n .fs-badge-outline-success {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-success) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n .fs-badge-warning {\n --fs-badge-color: #000000;\n --fs-badge-bg: var(--fs-color-warning);\n }\n .fs-badge-soft-warning {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-warning) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-warning) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-warning) 38%, transparent);\n }\n .fs-badge-outline-warning {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-warning) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n .fs-badge-danger {\n --fs-badge-color: #ffffff;\n --fs-badge-bg: var(--fs-color-danger);\n }\n .fs-badge-soft-danger {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-danger) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-danger) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-danger) 38%, transparent);\n }\n .fs-badge-outline-danger {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-danger) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n .fs-badge-info {\n --fs-badge-color: #ffffff;\n --fs-badge-bg: var(--fs-color-info);\n }\n .fs-badge-soft-info {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-info) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-info) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-info) 38%, transparent);\n }\n .fs-badge-outline-info {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-info) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n .fs-badge-sm {\n --fs-badge-height: 18px;\n padding: 0 6px 2px;\n font-size: 0.6875rem;\n }\n .fs-badge-lg {\n --fs-badge-height: 26px;\n padding: 2px 10px 4px;\n font-size: 0.8125rem;\n }\n .fs-badge-dot::before {\n width: 6px;\n height: 6px;\n flex: 0 0 6px;\n border-radius: 50%;\n background-color: currentcolor;\n transform: translateY(1px);\n content: \"\";\n }\n .fs-badge-count {\n min-width: var(--fs-badge-height);\n padding-inline: 6px;\n font-variant-numeric: tabular-nums;\n }\n .fs-badge-split {\n --fs-badge-split-label-bg: var(--fs-color-black);\n --fs-badge-split-label-color: var(--fs-color-white);\n --fs-badge-split-value-bg: var(--fs-color-primary);\n --fs-badge-split-value-color: #ffffff;\n --fs-badge-split-height: 22px;\n --fs-badge-split-radius: 0;\n display: inline-flex;\n min-height: var(--fs-badge-split-height);\n overflow: hidden;\n border-radius: var(--fs-badge-split-radius);\n font-size: 0.6875rem;\n font-weight: 500;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n }\n .fs-badge-split-label,\n .fs-badge-split-value {\n display: inline-flex;\n align-items: center;\n min-height: var(--fs-badge-split-height);\n padding: 1px 8px 3px;\n }\n .fs-badge-split-label {\n color: var(--fs-badge-split-label-color);\n background-color: var(--fs-badge-split-label-bg);\n }\n .fs-badge-split-value {\n color: var(--fs-badge-split-value-color);\n background-color: var(--fs-badge-split-value-bg);\n font-variant-numeric: tabular-nums;\n }\n .fs-badge-split-primary {\n --fs-badge-split-value-bg: var(--fs-color-primary);\n --fs-badge-split-value-color: #ffffff;\n }\n .fs-badge-split-secondary {\n --fs-badge-split-value-bg: var(--fs-color-secondary);\n --fs-badge-split-value-color: #ffffff;\n }\n .fs-badge-split-success {\n --fs-badge-split-value-bg: var(--fs-color-success);\n --fs-badge-split-value-color: #000000;\n }\n .fs-badge-split-warning {\n --fs-badge-split-value-bg: var(--fs-color-warning);\n --fs-badge-split-value-color: #000000;\n }\n .fs-badge-split-danger {\n --fs-badge-split-value-bg: var(--fs-color-danger);\n --fs-badge-split-value-color: #ffffff;\n }\n .fs-badge-split-info {\n --fs-badge-split-value-bg: var(--fs-color-info);\n --fs-badge-split-value-color: #ffffff;\n }\n .fs-badge-split.fs-badge-sm {\n --fs-badge-split-height: 18px;\n min-height: var(--fs-badge-split-height);\n padding: 0;\n }\n .fs-badge-split.fs-badge-lg {\n --fs-badge-split-height: 26px;\n min-height: var(--fs-badge-split-height);\n padding: 0;\n font-size: 0.8125rem;\n }\n .fs-badge-split.fs-badge-sm .fs-badge-split-label,\n .fs-badge-split.fs-badge-sm .fs-badge-split-value {\n padding: 0 6px 2px;\n }\n .fs-badge-split.fs-badge-lg .fs-badge-split-label,\n .fs-badge-split.fs-badge-lg .fs-badge-split-value {\n padding: 2px 10px 4px;\n }\n}\n@layer components {\n .fs-table {\n width: 100%;\n margin-bottom: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n border-collapse: collapse;\n }\n .fs-table th,\n .fs-table td {\n padding: 8px 12px;\n border-bottom: 1px solid var(--fs-color-border);\n text-align: left;\n vertical-align: middle;\n }\n .fs-table thead th {\n border-bottom-width: 2px;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n font-weight: 500;\n text-transform: uppercase;\n }\n .fs-table-striped tbody tr:nth-of-type(odd) {\n background-color: var(--fs-color-subtle);\n }\n .fs-table-hover tbody tr:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-table-bordered th,\n .fs-table-bordered td {\n border: 1px solid var(--fs-color-border);\n }\n .fs-table-borderless th,\n .fs-table-borderless td {\n border: 0;\n }\n .fs-table-primary {\n background-color: var(--fs-alert-primary-bg);\n color: var(--fs-alert-primary-text);\n }\n .fs-table-secondary {\n background-color: var(--fs-alert-secondary-bg);\n color: var(--fs-alert-secondary-text);\n }\n .fs-table-success {\n background-color: var(--fs-alert-success-bg);\n color: var(--fs-alert-success-text);\n }\n .fs-table-warning {\n background-color: var(--fs-alert-warning-bg);\n color: var(--fs-alert-warning-text);\n }\n .fs-table-danger {\n background-color: var(--fs-alert-danger-bg);\n color: var(--fs-alert-danger-text);\n }\n .fs-table-info {\n background-color: var(--fs-alert-info-bg);\n color: var(--fs-alert-info-text);\n }\n .fs-table-sm th,\n .fs-table-sm td {\n padding: 4px 8px;\n }\n .fs-table-responsive {\n overflow-x: auto;\n }\n .fs-table-caption {\n caption-side: top;\n padding: var(--fs-space-2) 0;\n color: var(--fs-color-muted);\n text-align: start;\n }\n .fs-table-empty {\n padding: var(--fs-space-5);\n color: var(--fs-color-muted);\n text-align: center;\n }\n @media (width < 640px) {\n .fs-table-priority th:nth-child(n+4),\n .fs-table-priority td:nth-child(n+4) {\n display: none;\n }\n }\n}\n@layer components {\n .fs-navbar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n padding: 12px 16px;\n border-bottom: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-surface);\n }\n .fs-navbar-brand {\n color: var(--fs-color-text);\n font-size: 1rem;\n font-weight: 500;\n text-decoration: none;\n }\n .fs-navbar-nav {\n display: flex;\n align-items: center;\n gap: 4px;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .fs-navbar-toggler {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 44px;\n min-height: 44px;\n padding: 8px;\n color: var(--fs-color-text);\n background: transparent;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-sm);\n cursor: pointer;\n }\n .fs-navbar-collapse {\n flex-basis: 100%;\n width: 100%;\n }\n .fs-navbar-collapse:not(.is-open) {\n display: none;\n }\n .fs-navbar-collapse.is-open .fs-navbar-nav {\n flex-direction: column;\n align-items: stretch;\n }\n @media (width >= 768px) {\n .fs-navbar-toggler {\n display: none;\n }\n .fs-navbar-collapse,\n .fs-navbar-collapse:not(.is-open),\n .fs-navbar-collapse[hidden] {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: flex-end;\n width: auto;\n }\n .fs-navbar-collapse .fs-navbar-nav {\n flex-direction: row;\n }\n }\n .fs-nav-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n text-decoration: none;\n transition: background-color 0.15s ease-in-out;\n }\n .fs-nav-link:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-nav-link:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-nav-link.is-active {\n color: var(--fs-alert-primary-text);\n font-weight: 500;\n }\n .fs-nav-link.is-disabled {\n color: var(--fs-color-muted);\n pointer-events: none;\n }\n}\n@layer components {\n .fs-combobox {\n position: relative;\n display: inline-flex;\n width: 100%;\n }\n .fs-combobox-listbox {\n overflow-y: auto;\n max-height: 240px;\n }\n}\n@layer components {\n [data-theme=dark] .fs-form-control[type=date]::-webkit-calendar-picker-indicator,\n [data-theme=dark] .fs-form-control[type=time]::-webkit-calendar-picker-indicator {\n filter: invert(1);\n }\n .fs-datepicker {\n position: relative;\n display: inline-flex;\n width: 100%;\n }\n .fs-datepicker-panel {\n display: none;\n width: min(280px, 100vw - 2 * var(--fs-space-3));\n padding: 12px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n z-index: var(--fs-z-dropdown);\n }\n .fs-datepicker-panel.is-open {\n display: block;\n }\n .fs-datepicker-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n }\n .fs-datepicker-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 border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: 0.8125rem;\n cursor: pointer;\n }\n .fs-datepicker-nav:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-datepicker-nav:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-datepicker-title {\n font-size: 0.75rem;\n font-weight: 500;\n text-transform: capitalize;\n }\n .fs-datepicker-grid {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .fs-datepicker-weekdays,\n .fs-datepicker-week {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 2px;\n }\n .fs-datepicker-weekday {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 28px;\n color: var(--fs-color-muted);\n font-size: 0.6875rem;\n font-weight: 500;\n text-align: center;\n text-transform: uppercase;\n }\n .fs-datepicker-day {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n border: none;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: 0.75rem;\n cursor: pointer;\n }\n .fs-datepicker-day:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-datepicker-day:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-datepicker-day.is-outside {\n color: var(--fs-color-muted);\n }\n .fs-datepicker-day.is-today {\n font-weight: 600;\n box-shadow: inset 0 0 0 1px var(--fs-color-primary);\n }\n .fs-datepicker-day.is-selected {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n .fs-datepicker-day:disabled {\n color: var(--fs-color-muted);\n pointer-events: none;\n opacity: 0.4;\n }\n}\n@layer components {\n .fs-datatable-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n }\n .fs-datatable-sort-btn {\n display: inline-flex;\n align-items: center;\n width: 100%;\n padding: 0;\n border: 0;\n background-color: var(--fs-color-surface-raised);\n color: inherit;\n font: inherit;\n text-transform: inherit;\n text-align: left;\n cursor: pointer;\n }\n .fs-datatable-sort-btn:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-datatable-sort-btn::after {\n flex-shrink: 0;\n margin-left: auto;\n padding-left: 4px;\n color: var(--fs-color-muted);\n font-size: 0.6875rem;\n content: \"↕\";\n }\n th[aria-sort=ascending] .fs-datatable-sort-btn::after {\n color: var(--fs-color-text);\n content: \"↑\";\n }\n th[aria-sort=descending] .fs-datatable-sort-btn::after {\n color: var(--fs-color-text);\n content: \"↓\";\n }\n .fs-datatable [data-fs-datatable-pagination] {\n display: flex;\n justify-content: flex-end;\n margin-top: 12px;\n }\n .fs-datatable td:focus-visible,\n .fs-datatable th:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n outline-offset: -2px;\n }\n}\n@layer components {\n .fs-command-palette {\n position: fixed;\n inset: 0;\n z-index: var(--fs-z-modal);\n display: none;\n align-items: flex-start;\n justify-content: center;\n padding: 72px 16px 16px;\n background-color: rgba(0, 0, 0, 0.5);\n }\n .fs-command-palette.is-open {\n display: flex;\n }\n .fs-command-palette-dialog {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 480px;\n max-height: calc(100vh - 88px);\n overflow: hidden;\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-lg);\n }\n .fs-command-palette-input {\n width: 100%;\n padding: 16px 20px;\n border: none;\n border-bottom: 1px solid var(--fs-color-border);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: 1rem;\n }\n .fs-command-palette-input:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-command-palette-list {\n margin: 0;\n padding: 6px 0;\n overflow-y: auto;\n list-style: none;\n }\n}\n@layer components {\n .fs-tree,\n .fs-tree [role=group] {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .fs-tree [role=group] {\n padding-left: 20px;\n }\n .fs-tree [role=treeitem] {\n border-radius: var(--fs-radius-sm);\n }\n .fs-tree [role=treeitem]:focus-visible {\n outline: none;\n }\n .fs-tree [role=treeitem]:focus-visible > .fs-tree-label {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-tree-label {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 8px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n font-size: 0.8125rem;\n cursor: pointer;\n user-select: none;\n }\n .fs-tree-label:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-tree [role=treeitem][aria-selected=true] > .fs-tree-label {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n .fs-tree-toggle {\n flex-shrink: 0;\n width: 0;\n height: 0;\n border-top: 4px solid transparent;\n border-bottom: 4px solid transparent;\n border-left: 5px solid currentcolor;\n transition: transform 0.15s ease-in-out;\n }\n .fs-tree [role=treeitem][aria-expanded=true] > .fs-tree-label > .fs-tree-toggle {\n transform: rotate(90deg);\n }\n}\n@layer components {\n .fs-dropdown {\n position: relative;\n display: inline-flex;\n }\n .fs-dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n vertical-align: middle;\n content: \"\";\n border-top: 5px solid;\n border-right: 5px solid transparent;\n border-left: 5px solid transparent;\n }\n .fs-dropdown-menu {\n position: absolute;\n display: none;\n min-width: 180px;\n margin: 0;\n padding: 6px 0;\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n z-index: var(--fs-z-dropdown);\n }\n .fs-dropdown-menu.is-open {\n display: block;\n }\n .fs-dropdown-item {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 8px 16px;\n border: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: 0.8125rem;\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n }\n .fs-dropdown-item:hover,\n .fs-dropdown-item:focus-visible {\n color: var(--fs-color-text);\n background-color: var(--fs-color-subtle);\n outline: none;\n }\n .fs-dropdown-item.is-active {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n .fs-dropdown-item.is-disabled {\n color: var(--fs-color-muted);\n pointer-events: none;\n opacity: 0.6;\n }\n .fs-dropdown-divider {\n height: 1px;\n margin: 6px 0;\n border: none;\n background-color: var(--fs-color-border);\n }\n .fs-dropdown-header {\n padding: 4px 16px;\n color: var(--fs-color-muted);\n font-size: 0.6875rem;\n font-weight: 500;\n text-transform: uppercase;\n }\n}\n@layer components {\n .fs-modal {\n position: fixed;\n inset: 0;\n z-index: var(--fs-z-modal);\n display: none;\n align-items: center;\n justify-content: center;\n padding: var(--fs-space-4);\n background-color: rgba(0, 0, 0, 0.5);\n }\n .fs-modal.is-open {\n display: flex;\n }\n .fs-modal-dialog {\n width: 100%;\n max-width: 480px;\n }\n .fs-modal-dialog.fs-modal-sm {\n max-width: 320px;\n }\n .fs-modal-dialog.fs-modal-lg {\n max-width: 720px;\n }\n .fs-modal-dialog.fs-modal-xl {\n max-width: 1140px;\n }\n .fs-modal-dialog.fs-modal-fullscreen {\n max-width: none;\n height: 100%;\n }\n .fs-modal-content {\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 2 * var(--fs-space-4));\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-lg);\n }\n .fs-modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid var(--fs-color-border);\n }\n .fs-modal-title {\n margin: 0;\n font-size: 1rem;\n font-weight: 500;\n }\n .fs-modal-body {\n padding: 20px;\n overflow-y: auto;\n }\n .fs-modal-scrollable .fs-modal-content {\n overflow: hidden;\n }\n .fs-modal-scrollable .fs-modal-body {\n overflow-y: auto;\n }\n @media (width < 640px) {\n .fs-modal {\n align-items: flex-end;\n padding: 0;\n }\n .fs-modal-dialog,\n .fs-modal-dialog.fs-modal-sm,\n .fs-modal-dialog.fs-modal-lg,\n .fs-modal-dialog.fs-modal-xl {\n max-width: none;\n }\n .fs-modal-content {\n max-height: calc(100dvh - var(--fs-safe-area-top));\n border-radius: var(--fs-radius-md) var(--fs-radius-md) 0 0;\n }\n }\n .fs-modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 16px 20px;\n border-top: 1px solid var(--fs-color-border);\n }\n}\n@layer components {\n .fs-alert-dialog-message {\n margin: 4px 0 0;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n}\n@layer components {\n .fs-divider {\n margin: 16px 0;\n border: 0;\n border-top: 1px solid var(--fs-color-border);\n }\n .fs-divider:not(hr) {\n display: flex;\n align-items: center;\n border-top: none;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n .fs-divider:not(hr)::before,\n .fs-divider:not(hr)::after {\n flex: 1;\n content: \"\";\n border-top: 1px solid var(--fs-color-border);\n }\n .fs-divider-label {\n padding: 0 12px;\n }\n}\n@layer components {\n .fs-empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 48px 24px;\n text-align: center;\n }\n .fs-empty-state[hidden] {\n display: none;\n }\n .fs-empty-state-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 64px;\n height: 64px;\n margin-bottom: 16px;\n border-radius: 50%;\n color: var(--fs-color-muted);\n background-color: var(--fs-color-subtle);\n font-size: 28px;\n }\n .fs-empty-state-title {\n margin: 0;\n color: var(--fs-color-text);\n font-size: 1rem;\n font-weight: 500;\n }\n .fs-empty-state-text {\n max-width: 360px;\n margin: 4px 0 20px;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n}\n@layer components {\n .fs-rating {\n display: inline-flex;\n flex-direction: row-reverse;\n }\n .fs-rating-input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n .fs-rating-star {\n display: flex;\n padding: 2px;\n color: var(--fs-color-border);\n font-size: 24px;\n cursor: pointer;\n }\n .fs-rating-input:checked ~ .fs-rating-star,\n .fs-rating-star:hover,\n .fs-rating-star:hover ~ .fs-rating-star {\n color: var(--fs-color-warning);\n }\n .fs-rating-input:checked ~ .fs-rating-star .fs-icon,\n .fs-rating-star:hover .fs-icon,\n .fs-rating-star:hover ~ .fs-rating-star .fs-icon {\n fill: currentcolor;\n }\n .fs-rating-input:focus-visible + .fs-rating-star {\n border-radius: var(--fs-radius-sm);\n outline: 2px solid var(--fs-color-primary);\n outline-offset: 2px;\n }\n .fs-rating-input:disabled + .fs-rating-star {\n opacity: 0.5;\n pointer-events: none;\n }\n .fs-rating-sm .fs-rating-star {\n font-size: 16px;\n }\n .fs-rating-lg .fs-rating-star {\n font-size: 32px;\n }\n}\n@layer components {\n .fs-tag {\n gap: 0;\n padding: 0 0 0 8px;\n }\n .fs-tag-label {\n min-width: 0;\n }\n .fs-tag-truncate {\n max-inline-size: min(100%, var(--fs-tag-max-inline-size, 20rem));\n }\n .fs-tag-truncate .fs-tag-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .fs-tag-icon {\n display: inline-grid;\n width: 12px;\n height: 12px;\n flex: 0 0 12px;\n margin-right: 4px;\n place-items: center;\n }\n .fs-tag-icon .fs-icon {\n width: 12px;\n height: 12px;\n stroke: currentcolor;\n }\n .fs-tag .fs-btn-close {\n width: calc(var(--fs-badge-height) - 2px);\n height: calc(var(--fs-badge-height) - 2px);\n flex: 0 0 calc(var(--fs-badge-height) - 2px);\n margin-left: 4px;\n border-radius: 0;\n background-color: transparent;\n color: inherit;\n opacity: 0.7;\n transition: opacity 0.1s ease-in-out, background-color 0.1s ease-in-out, transform 0.1s ease-in-out;\n }\n .fs-tag .fs-btn-close::before,\n .fs-tag .fs-btn-close::after {\n top: calc(50% + 1px);\n width: 8px;\n }\n .fs-tag .fs-btn-close:hover {\n color: inherit;\n background-color: color-mix(in srgb, currentcolor 18%, transparent);\n opacity: 1;\n }\n .fs-tag .fs-btn-close:active {\n background-color: color-mix(in srgb, currentcolor 28%, transparent);\n transform: scale(0.9);\n }\n .fs-tag-group {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n }\n .fs-tag:focus-within {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-tag.is-loading,\n .fs-tag[aria-busy=true] {\n --fs-badge-bg: var(--fs-color-warning);\n --fs-badge-color: var(--fs-color-black);\n --fs-badge-border: transparent;\n cursor: progress;\n }\n .fs-tag.is-loading .fs-spinner,\n .fs-tag[aria-busy=true] .fs-spinner {\n width: 12px;\n height: 12px;\n flex: 0 0 12px;\n margin: 0 6px 0 4px;\n border-width: 2px;\n color: var(--fs-color-black);\n }\n .fs-tag.is-loading .fs-btn-close,\n .fs-tag[aria-busy=true] .fs-btn-close {\n display: none;\n }\n .fs-tag-group .fs-tag + .fs-tag {\n border-inline-start-color: color-mix(in srgb, currentcolor 24%, transparent);\n }\n .fs-tag-group .fs-tag {\n padding-inline-start: calc(var(--fs-badge-height) + 2px);\n transition: background-color 0.1s ease-in-out;\n }\n .fs-tag-group .fs-btn-close {\n pointer-events: none;\n opacity: 0;\n }\n .fs-tag-group .fs-tag:hover .fs-btn-close,\n .fs-tag-group .fs-tag:focus-within .fs-btn-close {\n pointer-events: auto;\n opacity: 0.7;\n }\n .fs-tag-group .fs-tag:hover,\n .fs-tag-group .fs-tag:focus-within {\n background-color: color-mix(in srgb, currentcolor 18%, transparent);\n }\n .fs-tag-overflow {\n --fs-badge-bg: transparent;\n --fs-badge-color: var(--fs-alert-primary-text);\n --fs-badge-border: transparent;\n width: var(--fs-badge-height);\n height: var(--fs-badge-height);\n min-width: var(--fs-badge-height);\n padding: 0;\n border: 0;\n appearance: none;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font: inherit;\n line-height: 0;\n }\n .fs-tag-overflow .fs-icon {\n display: block;\n flex: 0 0 13px;\n width: 13px;\n height: 13px;\n stroke: currentcolor;\n }\n .fs-tag-overflow:hover,\n .fs-tag-group .fs-tag-overflow:hover {\n background-color: transparent;\n border-color: transparent;\n }\n .fs-tag-group .fs-tag-overflow {\n padding-inline-start: 0;\n }\n .fs-tag-overflow:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-tag-group .fs-btn-close:hover {\n color: inherit;\n background-color: transparent;\n opacity: 0.7;\n }\n .fs-tag-protected {\n pointer-events: none;\n }\n .fs-tag-lock {\n display: inline-grid;\n width: calc(var(--fs-badge-height) - 2px);\n height: calc(var(--fs-badge-height) - 2px);\n margin-left: 4px;\n place-items: center;\n }\n .fs-tag-lock svg {\n width: 12px;\n height: 12px;\n stroke: currentcolor;\n stroke-width: 2;\n }\n}\n@layer components {\n .fs-offcanvas {\n position: fixed;\n z-index: var(--fs-z-offcanvas);\n display: flex;\n flex-direction: column;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-lg);\n visibility: hidden;\n transition: transform 0.3s ease, visibility 0.3s ease;\n }\n .fs-offcanvas.is-open {\n visibility: visible;\n transform: none;\n }\n .fs-offcanvas-start {\n inset: 0 auto 0 0;\n width: 320px;\n transform: translateX(-100%);\n }\n .fs-offcanvas-end {\n inset: 0 0 0 auto;\n width: 320px;\n transform: translateX(100%);\n }\n .fs-offcanvas-top {\n inset: 0 0 auto;\n height: 40vh;\n transform: translateY(-100%);\n }\n .fs-offcanvas-bottom {\n inset: auto 0 0;\n height: 40vh;\n transform: translateY(100%);\n }\n .fs-offcanvas-backdrop {\n position: fixed;\n inset: 0;\n z-index: calc(var(--fs-z-offcanvas) - 1);\n background-color: rgba(0, 0, 0, 0.5);\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.3s ease, visibility 0.3s ease;\n }\n .fs-offcanvas-backdrop.is-open {\n visibility: visible;\n opacity: 1;\n }\n .fs-offcanvas-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid var(--fs-color-border);\n }\n .fs-offcanvas-title {\n margin: 0;\n font-size: 1rem;\n font-weight: 500;\n }\n .fs-offcanvas-body {\n flex: 1 1 auto;\n padding: 20px;\n overflow-y: auto;\n }\n .fs-offcanvas-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 16px 20px;\n border-top: 1px solid var(--fs-color-border);\n }\n .fs-offcanvas-responsive {\n width: min(100%, 420px);\n }\n @media (width >= 1024px) {\n .fs-offcanvas-lg {\n position: static;\n width: auto;\n height: auto;\n visibility: visible;\n transform: none;\n box-shadow: none;\n }\n .fs-offcanvas-lg + .fs-offcanvas-backdrop {\n display: none;\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-offcanvas,\n .fs-offcanvas-backdrop {\n transition: none;\n }\n }\n}\n@layer components {\n .fs-accordion {\n display: flex;\n flex-direction: column;\n }\n .fs-accordion-item {\n overflow: hidden;\n border: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-surface-raised);\n }\n .fs-accordion-item + .fs-accordion-item {\n border-top: none;\n }\n .fs-accordion-item:first-child {\n border-top-left-radius: var(--fs-radius-md);\n border-top-right-radius: var(--fs-radius-md);\n }\n .fs-accordion-item:last-child {\n border-bottom-right-radius: var(--fs-radius-md);\n border-bottom-left-radius: var(--fs-radius-md);\n }\n .fs-accordion-flush .fs-accordion-item {\n border-inline: 0;\n border-radius: 0;\n }\n .fs-accordion-flush .fs-accordion-item:first-child {\n border-block-start: 0;\n }\n .fs-accordion-always-open .fs-accordion-button[aria-expanded=true]::after {\n transform: rotate(-135deg);\n }\n .fs-accordion-header {\n margin: 0;\n }\n .fs-accordion-button {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 14px 16px;\n border: none;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n font-size: 0.8125rem;\n font-weight: 500;\n text-align: left;\n cursor: pointer;\n }\n .fs-accordion-button:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-accordion-button:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-accordion-button::after {\n flex-shrink: 0;\n width: 8px;\n height: 8px;\n margin-left: 12px;\n content: \"\";\n border-right: 2px solid currentcolor;\n border-bottom: 2px solid currentcolor;\n transform: rotate(45deg);\n transition: transform 0.2s ease-in-out;\n }\n .fs-accordion-button[aria-expanded=true]::after {\n transform: rotate(-135deg);\n }\n .fs-accordion-collapse {\n overflow: hidden;\n }\n .fs-accordion-body {\n padding: 16px;\n border-top: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-surface-raised);\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-accordion-button::after {\n transition: none;\n }\n }\n}\n@layer components {\n .fs-tabs {\n display: flex;\n border-bottom: var(--fs-border-width) solid var(--fs-color-border-default);\n }\n .fs-tabs .fs-nav-link {\n margin-bottom: -1px;\n border-bottom: 2px solid transparent;\n border-radius: var(--fs-radius-sm) var(--fs-radius-sm) 0 0;\n }\n .fs-tabs .fs-nav-link.is-active {\n border-bottom-color: var(--fs-color-primary);\n }\n .fs-tabs-pill {\n gap: 4px;\n border-bottom: none;\n }\n .fs-tabs-pill .fs-nav-link {\n margin-bottom: 0;\n border-bottom: none;\n border-radius: var(--fs-radius-sm);\n }\n .fs-tabs-pill .fs-nav-link.is-active {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n .fs-tabs-depth {\n gap: 2px;\n padding: 4px 4px 0;\n background-color: var(--fs-color-subtle);\n }\n .fs-tabs-depth .fs-nav-link {\n margin-bottom: -1px;\n border: 1px solid transparent;\n border-bottom: none;\n border-radius: var(--fs-radius-sm) var(--fs-radius-sm) 0 0;\n }\n .fs-tabs-depth .fs-nav-link.is-active {\n border-color: var(--fs-color-border);\n background-color: var(--fs-color-surface);\n }\n .fs-tabs-center {\n justify-content: center;\n }\n .fs-tabs-right {\n justify-content: flex-end;\n }\n .fs-tabs-fill .fs-nav-link {\n flex: 1;\n justify-content: center;\n text-align: center;\n }\n .fs-tabs-sm .fs-nav-link {\n padding: 6px 10px;\n font-size: 0.75rem;\n }\n .fs-tabs-lg .fs-nav-link {\n padding: 10px 16px;\n font-size: 1rem;\n }\n .fs-tab-content > .fs-tab-pane {\n display: none;\n }\n .fs-tab-content > .fs-tab-pane.is-active {\n display: block;\n }\n}\n@layer components {\n .fs-tooltip {\n position: absolute;\n z-index: var(--fs-z-tooltip);\n display: none;\n max-width: 220px;\n }\n .fs-tooltip.is-open {\n display: block;\n }\n .fs-tooltip-inner {\n padding: 6px 10px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-tooltip-text);\n background-color: var(--fs-tooltip-bg);\n font-size: 0.6875rem;\n text-align: center;\n }\n .fs-tooltip-arrow {\n position: absolute;\n width: 8px;\n height: 8px;\n background-color: var(--fs-tooltip-bg);\n transform: rotate(45deg);\n }\n .fs-tooltip[data-placement=top] .fs-tooltip-arrow {\n bottom: -4px;\n left: 50%;\n margin-left: -4px;\n }\n .fs-tooltip[data-placement=bottom] .fs-tooltip-arrow {\n top: -4px;\n left: 50%;\n margin-left: -4px;\n }\n .fs-tooltip[data-placement=left] .fs-tooltip-arrow {\n top: 50%;\n right: -4px;\n margin-top: -4px;\n }\n .fs-tooltip[data-placement=right] .fs-tooltip-arrow {\n top: 50%;\n left: -4px;\n margin-top: -4px;\n }\n}\n@layer components {\n .fs-popover {\n position: absolute;\n z-index: var(--fs-z-offcanvas);\n display: none;\n max-width: 280px;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n box-shadow: var(--fs-shadow-md);\n }\n .fs-popover.is-open {\n display: block;\n }\n .fs-popover-header {\n padding: 10px 14px;\n background-color: var(--fs-color-subtle);\n border-bottom: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md) var(--fs-radius-md) 0 0;\n font-size: 0.75rem;\n font-weight: 500;\n }\n .fs-popover-body {\n padding: 14px;\n font-size: 0.75rem;\n }\n .fs-popover-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 10px 14px;\n border-top: 1px solid var(--fs-color-border);\n }\n .fs-popover-arrow {\n position: absolute;\n width: 8px;\n height: 8px;\n background-color: var(--fs-color-surface);\n border: 1px solid var(--fs-color-border);\n transform: rotate(45deg);\n }\n .fs-popover[data-placement=top] .fs-popover-arrow {\n bottom: -5px;\n left: 50%;\n margin-left: -4px;\n border-top: 0;\n border-left: 0;\n }\n .fs-popover[data-placement=bottom] .fs-popover-arrow {\n top: -5px;\n left: 50%;\n margin-left: -4px;\n border-right: 0;\n border-bottom: 0;\n }\n .fs-popover[data-placement=left] .fs-popover-arrow {\n top: 50%;\n right: -5px;\n margin-top: -4px;\n border-bottom: 0;\n border-left: 0;\n }\n .fs-popover[data-placement=right] .fs-popover-arrow {\n top: 50%;\n left: -5px;\n margin-top: -4px;\n border-top: 0;\n border-right: 0;\n }\n .fs-popover-hover-card {\n max-width: 320px;\n }\n .fs-popover-hover-card .fs-popover-body {\n display: flex;\n gap: 12px;\n }\n}\n@layer components {\n .fs-toast-container {\n position: fixed;\n right: 16px;\n bottom: 16px;\n z-index: var(--fs-z-toast);\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: min(360px, 100%);\n max-width: calc(100vw - 2 * var(--fs-space-3));\n }\n .fs-toast {\n display: flex;\n overflow: hidden;\n flex-direction: column;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n }\n .fs-toast-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n border-bottom: 1px solid var(--fs-color-border);\n font-size: 0.75rem;\n font-weight: 500;\n }\n .fs-toast-body {\n padding: 12px;\n font-size: 0.75rem;\n }\n .fs-toast-primary .fs-toast-header {\n color: var(--fs-alert-primary-text);\n background-color: var(--fs-alert-primary-bg);\n }\n .fs-toast-secondary .fs-toast-header {\n color: var(--fs-alert-secondary-text);\n background-color: var(--fs-alert-secondary-bg);\n }\n .fs-toast-success .fs-toast-header {\n color: var(--fs-alert-success-text);\n background-color: var(--fs-alert-success-bg);\n }\n .fs-toast-warning .fs-toast-header {\n color: var(--fs-alert-warning-text);\n background-color: var(--fs-alert-warning-bg);\n }\n .fs-toast-danger .fs-toast-header {\n color: var(--fs-alert-danger-text);\n background-color: var(--fs-alert-danger-bg);\n }\n .fs-toast-info .fs-toast-header {\n color: var(--fs-alert-info-text);\n background-color: var(--fs-alert-info-bg);\n }\n}\n@layer components {\n .fs-pagination {\n display: flex;\n gap: 0.25rem;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .fs-pagination-scroll {\n max-width: 100%;\n overflow-x: auto;\n padding-block: 2px;\n }\n .fs-pagination-scroll .fs-pagination {\n width: max-content;\n }\n .fs-page-link {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n height: 32px;\n padding: 0 8px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n text-decoration: none;\n transition: background-color 0.15s ease-in-out;\n }\n .fs-page-link:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-page-link:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-page-item.is-active .fs-page-link {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n border-color: var(--fs-color-primary);\n }\n .fs-page-item.is-disabled .fs-page-link {\n color: var(--fs-color-muted);\n opacity: 0.6;\n pointer-events: none;\n }\n .fs-pagination-bordered {\n gap: 0;\n }\n .fs-pagination-bordered .fs-page-link {\n border-radius: 0;\n }\n .fs-pagination-bordered .fs-page-item:not(:first-child) .fs-page-link {\n margin-left: -1px;\n }\n .fs-pagination-bordered .fs-page-item:first-child .fs-page-link {\n border-top-left-radius: var(--fs-radius-sm);\n border-bottom-left-radius: var(--fs-radius-sm);\n }\n .fs-pagination-bordered .fs-page-item:last-child .fs-page-link {\n border-top-right-radius: var(--fs-radius-sm);\n border-bottom-right-radius: var(--fs-radius-sm);\n }\n .fs-pagination-bordered .fs-page-link:hover,\n .fs-pagination-bordered .fs-page-item.is-active .fs-page-link {\n position: relative;\n z-index: 1;\n }\n .fs-pagination-sm .fs-page-link {\n min-width: 26px;\n height: 26px;\n padding: 0 6px;\n font-size: 0.6875rem;\n }\n .fs-pagination-lg .fs-page-link {\n min-width: 40px;\n height: 40px;\n padding: 0 12px;\n font-size: 0.8125rem;\n }\n .fs-page-link-text {\n gap: 6px;\n padding: 0 14px;\n }\n}\n@layer components {\n .fs-breadcrumb {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 4px;\n margin: 0;\n padding: 0;\n list-style: none;\n font-size: 0.75rem;\n }\n .fs-breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--fs-color-muted);\n }\n .fs-breadcrumb-item + .fs-breadcrumb-item::before {\n color: var(--fs-color-muted);\n content: \"/\";\n }\n .fs-breadcrumb-item a {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: var(--fs-alert-primary-text);\n text-decoration: none;\n }\n .fs-breadcrumb-item a:hover {\n text-decoration: underline;\n }\n .fs-breadcrumb-item.is-active {\n color: var(--fs-color-text);\n }\n .fs-breadcrumb-item-truncate {\n display: inline-block;\n max-width: 160px;\n vertical-align: bottom;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .fs-breadcrumb-more {\n padding: 0;\n border: none;\n color: var(--fs-color-muted);\n background-color: var(--fs-color-surface-raised);\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n cursor: pointer;\n }\n .fs-breadcrumb-more:hover {\n color: var(--fs-color-text);\n }\n}\n@layer components {\n .fs-spinner {\n --fs-spinner-size: 20px;\n --fs-spinner-stroke: 2px;\n --fs-spinner-duration: 0.8s;\n display: inline-block;\n box-sizing: border-box;\n width: var(--fs-spinner-size);\n height: var(--fs-spinner-size);\n vertical-align: middle;\n border: var(--fs-spinner-stroke) solid color-mix(in srgb, currentcolor 20%, transparent);\n border-top-color: currentcolor;\n border-radius: 50%;\n animation: fokus-spin var(--fs-spinner-duration) linear infinite;\n will-change: transform;\n }\n .fs-spinner-sm {\n --fs-spinner-size: 14px;\n --fs-spinner-stroke: 2px;\n }\n .fs-spinner-lg {\n --fs-spinner-size: 32px;\n --fs-spinner-stroke: 3px;\n }\n .fs-spinner-primary {\n color: var(--fs-color-primary);\n }\n .fs-spinner-secondary {\n color: var(--fs-color-secondary);\n }\n .fs-spinner-success {\n color: var(--fs-color-success);\n }\n .fs-spinner-warning {\n color: var(--fs-color-warning);\n }\n .fs-spinner-danger {\n color: var(--fs-color-danger);\n }\n .fs-spinner-info {\n color: var(--fs-color-info);\n }\n @keyframes fokus-spin {\n to {\n transform: rotate(360deg);\n }\n }\n .fs-progress {\n --fs-progress-height: 8px;\n --fs-progress-track: var(--fs-color-subtle);\n --fs-progress-radius: 0;\n position: relative;\n display: flex;\n height: var(--fs-progress-height);\n overflow: hidden;\n background-color: var(--fs-progress-track);\n border-radius: var(--fs-progress-radius);\n }\n .fs-progress-bar {\n --fs-progress-bar-bg: var(--fs-color-primary);\n --fs-progress-color: var(--fs-color-on-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n width: calc(var(--fs-progress-value, 0) * 1%);\n height: 100%;\n min-width: 0;\n overflow: hidden;\n color: var(--fs-progress-color);\n background-color: var(--fs-progress-bar-bg);\n font-size: 0;\n line-height: 1;\n text-overflow: ellipsis;\n white-space: nowrap;\n transition: width 0.25s ease-out;\n }\n .fs-progress-bar-primary {\n --fs-progress-bar-bg: var(--fs-color-primary);\n --fs-progress-color: #ffffff;\n }\n .fs-progress-bar-secondary {\n --fs-progress-bar-bg: var(--fs-color-secondary);\n --fs-progress-color: #ffffff;\n }\n .fs-progress-bar-success {\n --fs-progress-bar-bg: var(--fs-color-success);\n --fs-progress-color: #000000;\n }\n .fs-progress-bar-warning {\n --fs-progress-bar-bg: var(--fs-color-warning);\n --fs-progress-color: #000000;\n }\n .fs-progress-bar-danger {\n --fs-progress-bar-bg: var(--fs-color-danger);\n --fs-progress-color: #ffffff;\n }\n .fs-progress-bar-info {\n --fs-progress-bar-bg: var(--fs-color-info);\n --fs-progress-color: #ffffff;\n }\n .fs-spinner[data-fs-loading=false] {\n display: none;\n }\n .fs-progress-sm {\n --fs-progress-height: 4px;\n }\n .fs-progress-lg {\n --fs-progress-height: 16px;\n }\n .fs-progress-lg .fs-progress-bar {\n padding-inline: 6px;\n font-size: 0.6875rem;\n }\n .fs-progress-meta {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 12px;\n max-width: 480px;\n margin-bottom: 6px;\n color: var(--fs-color-text);\n font-size: 0.75rem;\n }\n .fs-progress-value {\n color: var(--fs-color-muted);\n font-variant-numeric: tabular-nums;\n }\n .fs-progress-indeterminate .fs-progress-bar {\n width: 36%;\n animation: fokus-progress-indeterminate 1.25s ease-in-out infinite;\n }\n .fs-progress-indeterminate {\n --fs-progress-track: color-mix(in srgb, var(--fs-color-primary) 18%, transparent);\n }\n @keyframes fokus-progress-indeterminate {\n from {\n transform: translateX(-110%);\n }\n to {\n transform: translateX(290%);\n }\n }\n .fs-progress-complete .fs-progress-bar {\n --fs-progress-bar-bg: var(--fs-color-success);\n --fs-progress-color: #000000;\n }\n .fs-progress-error .fs-progress-bar {\n --fs-progress-bar-bg: var(--fs-color-danger);\n --fs-progress-color: #ffffff;\n }\n .fs-progress-status {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n margin-top: 6px;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n .fs-progress-status-icon {\n display: inline-grid;\n width: 14px;\n height: 14px;\n place-items: center;\n color: var(--fs-alert-success-text);\n }\n .fs-progress-status-icon .fs-icon {\n width: 14px;\n height: 14px;\n stroke: currentcolor;\n }\n .fs-progress-status-danger,\n .fs-progress-error + .fs-progress-status {\n color: var(--fs-alert-danger-text);\n }\n .fs-progress-marker {\n position: absolute;\n z-index: 1;\n top: 0;\n bottom: 0;\n left: calc(var(--fs-progress-marker-value) * 1%);\n width: 2px;\n background-color: var(--fs-color-text);\n pointer-events: none;\n transform: translateX(-1px);\n }\n .fs-progress-minimum .fs-progress-bar {\n width: max(var(--fs-progress-value, 0) * 1%, 4px);\n }\n .fs-progress-bar-striped {\n background-image: linear-gradient(45deg, color-mix(in srgb, currentcolor 16%, transparent) 25%, transparent 25%, transparent 50%, color-mix(in srgb, currentcolor 16%, transparent) 50%, color-mix(in srgb, currentcolor 16%, transparent) 75%, transparent 75%, transparent);\n background-size: 16px 16px;\n }\n .fs-progress-bar-animated {\n animation: fokus-progress-stripes 1s linear infinite;\n }\n @keyframes fokus-progress-stripes {\n from {\n background-position: 16px 0;\n }\n to {\n background-position: 0 0;\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-spinner {\n --fs-spinner-duration: 1.5s;\n }\n .fs-progress-bar-animated {\n animation-duration: 1.5s;\n }\n .fs-progress-indeterminate .fs-progress-bar {\n animation-duration: 1.8s;\n }\n }\n}\n@layer components {\n .fs-carousel {\n --fs-carousel-radius: var(--fs-radius-md);\n --fs-carousel-transition-duration: var(--fs-transition-normal);\n --fs-carousel-transition-easing: var(--fs-ease-standard);\n --fs-carousel-control-size: 44px;\n --fs-carousel-control-inset: var(--fs-space-2);\n --fs-carousel-control-gap: var(--fs-space-1);\n --fs-carousel-control-color: var(--fs-color-white);\n --fs-carousel-control-paused-color: var(--fs-color-warning);\n --fs-carousel-control-bg: rgb(15 23 42 / 72%);\n --fs-carousel-control-bg-hover: rgb(15 23 42 / 88%);\n --fs-carousel-focus-color: var(--fs-color-white);\n --fs-carousel-indicator-size: 8px;\n --fs-carousel-indicator-active-width: 24px;\n --fs-carousel-indicator-color: rgb(255 255 255 / 62%);\n --fs-carousel-indicator-active-color: var(--fs-color-white);\n --fs-carousel-caption-scrim: rgb(15 23 42 / 78%);\n --fs-carousel-top-safe-area: calc(var(--fs-carousel-control-size) + (var(--fs-carousel-control-inset) * 2));\n --fs-carousel-bottom-safe-area: calc(32px + var(--fs-space-2) + 24px);\n --fs-carousel-progress-height: 3px;\n position: relative;\n overflow: hidden;\n border-radius: var(--fs-carousel-radius);\n }\n .fs-carousel::before {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(var(--fs-carousel-control-size) + var(--fs-carousel-control-inset) * 2);\n pointer-events: none;\n content: \"\";\n background: linear-gradient(to bottom, rgba(15, 23, 42, 0.76), rgba(15, 23, 42, 0.32));\n opacity: 0;\n transition: opacity var(--fs-transition-fast) var(--fs-ease-standard);\n }\n .fs-carousel-inner {\n display: flex;\n transition: transform var(--fs-carousel-transition-duration) var(--fs-carousel-transition-easing);\n }\n .fs-carousel-item {\n position: relative;\n flex: 0 0 100%;\n width: 100%;\n }\n .fs-carousel-item img {\n display: block;\n width: 100%;\n }\n .fs-carousel.is-dragging .fs-carousel-inner {\n cursor: grabbing;\n transition: none;\n user-select: none;\n }\n .fs-carousel:not(.is-static) .fs-carousel-inner {\n cursor: grab;\n touch-action: pan-y;\n }\n .fs-carousel-fade .fs-carousel-inner {\n display: block;\n transform: none;\n }\n .fs-carousel-fade .fs-carousel-item {\n position: absolute;\n inset: 0;\n opacity: 0;\n transition: opacity var(--fs-carousel-transition-duration) var(--fs-carousel-transition-easing);\n }\n .fs-carousel-fade .fs-carousel-item.is-active {\n position: relative;\n opacity: 1;\n }\n .fs-carousel-control-prev,\n .fs-carousel-control-next,\n .fs-carousel-control-toggle {\n position: absolute;\n top: var(--fs-carousel-control-inset);\n z-index: 2;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--fs-carousel-control-size);\n height: var(--fs-carousel-control-size);\n padding: 0;\n color: var(--fs-carousel-control-color);\n background-color: transparent;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 18px 18px;\n border: 0;\n border-radius: 0;\n cursor: pointer;\n opacity: 0;\n transition: background-color var(--fs-transition-fast) var(--fs-ease-standard), opacity var(--fs-transition-fast) var(--fs-ease-standard), transform var(--fs-transition-fast) var(--fs-ease-standard);\n }\n .fs-carousel-control-prev,\n .fs-carousel-control-next {\n transform: none;\n }\n .fs-carousel-control-prev {\n left: var(--fs-carousel-control-inset);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4 6 9l5 5'/%3E%3C/svg%3E\");\n }\n .fs-carousel-control-next {\n left: calc(var(--fs-carousel-control-inset) + var(--fs-carousel-control-size) + var(--fs-carousel-control-gap));\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 4 5 5-5 5'/%3E%3C/svg%3E\");\n }\n .fs-carousel-control-toggle {\n left: calc(var(--fs-carousel-control-inset) + var(--fs-carousel-control-size) + var(--fs-carousel-control-gap));\n }\n .fs-carousel:has(.fs-carousel-control-toggle) .fs-carousel-control-next {\n left: calc(var(--fs-carousel-control-inset) + (var(--fs-carousel-control-size) + var(--fs-carousel-control-gap)) * 2);\n }\n .fs-carousel-control-toggle[aria-pressed=true] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 5v8M11 5v8'/%3E%3C/svg%3E\");\n }\n .fs-carousel-control-toggle[aria-pressed=false] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23ffffff'%3E%3Cpath d='m7 4 7 5-7 5z'/%3E%3C/svg%3E\");\n }\n .fs-carousel.is-autoplay-paused .fs-carousel-control-toggle[aria-pressed=true] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23f0b40e' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 5v8M11 5v8'/%3E%3C/svg%3E\");\n }\n .fs-carousel.is-autoplay-paused .fs-carousel-control-toggle[aria-pressed=false] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23f0b40e'%3E%3Cpath d='m7 4 7 5-7 5z'/%3E%3C/svg%3E\");\n }\n .fs-carousel-control-prev:hover,\n .fs-carousel-control-next:hover,\n .fs-carousel-control-toggle:hover {\n background-color: var(--fs-carousel-control-bg-hover);\n }\n .fs-carousel-control-prev:active,\n .fs-carousel-control-next:active,\n .fs-carousel-control-toggle:active {\n transform: scale(0.94);\n }\n .fs-carousel-control-prev:focus-visible,\n .fs-carousel-control-next:focus-visible,\n .fs-carousel-control-toggle:focus-visible,\n .fs-carousel-indicators button:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-carousel-focus-color);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-carousel-focus-color);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-carousel-focus-color) 22%, transparent);\n }\n .fs-carousel:hover .fs-carousel-control-prev,\n .fs-carousel:hover .fs-carousel-control-next,\n .fs-carousel:hover .fs-carousel-control-toggle,\n .fs-carousel:focus-within .fs-carousel-control-prev,\n .fs-carousel:focus-within .fs-carousel-control-next,\n .fs-carousel:focus-within .fs-carousel-control-toggle {\n opacity: 1;\n }\n .fs-carousel:hover::before,\n .fs-carousel:focus-within::before {\n opacity: 1;\n }\n .fs-carousel-indicators {\n position: absolute;\n right: 0;\n bottom: var(--fs-space-2);\n left: 0;\n z-index: 1;\n display: flex;\n justify-content: center;\n gap: 0;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .fs-carousel-indicators button {\n position: relative;\n display: grid;\n width: 28px;\n height: 32px;\n padding: 0;\n place-items: center;\n background: transparent;\n border: 0;\n cursor: pointer;\n }\n .fs-carousel-indicators button::before {\n width: var(--fs-carousel-indicator-size);\n height: var(--fs-carousel-indicator-size);\n content: \"\";\n background-color: var(--fs-carousel-indicator-color);\n border-radius: var(--fs-radius-lg);\n transition: width var(--fs-transition-fast) var(--fs-ease-standard), background-color var(--fs-transition-fast) var(--fs-ease-standard);\n }\n .fs-carousel-indicators button.is-active::before {\n width: var(--fs-carousel-indicator-active-width);\n background-color: var(--fs-carousel-indicator-active-color);\n }\n .fs-carousel-caption {\n position: absolute;\n right: 0;\n bottom: var(--fs-carousel-bottom-safe-area);\n left: 0;\n z-index: 1;\n box-sizing: border-box;\n max-width: min(100%, 42rem);\n max-block-size: calc(100% - var(--fs-carousel-top-safe-area) - var(--fs-carousel-bottom-safe-area));\n isolation: isolate;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--fs-space-2);\n padding: calc(var(--fs-space-4) + 20px) var(--fs-space-4) var(--fs-space-3);\n color: var(--fs-color-white);\n }\n .fs-carousel-caption::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: calc(var(--fs-carousel-bottom-safe-area) * -1);\n left: 0;\n z-index: -1;\n content: \"\";\n background: linear-gradient(to top, var(--fs-carousel-caption-scrim), transparent);\n }\n .fs-carousel-caption > * {\n margin: 0;\n }\n .fs-carousel-caption .fs-btn {\n --fs-btn-color: var(--fs-color-text-primary);\n --fs-btn-bg: var(--fs-color-white);\n --fs-btn-border-color: var(--fs-color-white);\n --fs-btn-hover-bg: var(--fs-color-subtle);\n --fs-btn-active-bg: var(--fs-color-border-default);\n }\n .fs-carousel-caption-side .fs-carousel-caption {\n top: var(--fs-carousel-top-safe-area);\n right: 0;\n bottom: 0;\n left: auto;\n width: min(42%, 28rem);\n max-width: none;\n max-block-size: none;\n padding: var(--fs-space-4) var(--fs-space-4) calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-2));\n background: rgba(15, 23, 42, 0.84);\n }\n .fs-carousel-caption-side .fs-carousel-caption-start {\n right: auto;\n left: 0;\n }\n .fs-carousel-caption-side .fs-carousel-caption::before,\n .fs-carousel-caption-stacked .fs-carousel-caption::before {\n display: none;\n }\n .fs-carousel-caption-stacked {\n --fs-carousel-bottom-safe-area: 0px;\n }\n .fs-carousel-caption-stacked .fs-carousel-caption {\n position: static;\n max-width: none;\n max-block-size: none;\n overflow: visible;\n padding: var(--fs-space-4);\n color: var(--fs-color-text-primary);\n background: var(--fs-color-bg-surface);\n }\n .fs-carousel-caption-stacked .fs-carousel-indicators {\n position: relative;\n bottom: auto;\n background: var(--fs-color-bg-surface);\n }\n .fs-carousel-counter {\n position: absolute;\n right: var(--fs-space-3);\n bottom: var(--fs-space-2);\n z-index: 2;\n color: var(--fs-color-white);\n font-size: 0.75rem;\n font-variant-numeric: tabular-nums;\n }\n .fs-carousel-progress {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n height: var(--fs-carousel-progress-height);\n overflow: hidden;\n background-color: rgba(255, 255, 255, 0.24);\n }\n .fs-carousel-progress > span {\n display: block;\n width: 100%;\n height: 100%;\n background-color: var(--fs-color-white);\n transform: scaleX(0);\n transform-origin: left;\n }\n .fs-carousel-progress.is-running > span {\n animation: fs-carousel-progress var(--fs-carousel-progress-duration, 5000ms) linear forwards;\n }\n .fs-carousel.is-two-slides.fs-carousel-hide-indicators-two .fs-carousel-indicators {\n display: none;\n }\n .fs-carousel-no-media .fs-carousel-item {\n min-block-size: 15rem;\n background-color: var(--fs-color-bg-surface);\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n }\n .fs-carousel-no-media .fs-carousel-counter {\n color: var(--fs-color-text-muted);\n }\n .fs-carousel-no-media .fs-carousel-progress {\n background-color: var(--fs-color-border-default);\n }\n .fs-carousel-no-media .fs-carousel-progress > span {\n background-color: var(--fs-color-action-primary);\n }\n .fs-carousel-media-placeholder {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n min-height: inherit;\n padding: calc(var(--fs-carousel-top-safe-area) + var(--fs-space-4)) var(--fs-space-4) calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-4));\n }\n .fs-carousel-media-placeholder > * {\n max-width: 36rem;\n margin: 0;\n }\n .fs-carousel-media-placeholder > * + * {\n margin-top: var(--fs-space-2);\n }\n .fs-carousel-media {\n min-block-size: 18rem;\n background-position: center;\n background-size: cover;\n }\n .fs-carousel.is-static .fs-carousel-control-prev,\n .fs-carousel.is-static .fs-carousel-control-next,\n .fs-carousel.is-static .fs-carousel-control-toggle,\n .fs-carousel.is-static .fs-carousel-indicators {\n display: none;\n }\n @media (max-width: 639px) {\n .fs-carousel {\n --fs-carousel-control-inset: var(--fs-space-1);\n }\n .fs-carousel-caption {\n padding: calc(var(--fs-space-3) + 20px) var(--fs-space-3) var(--fs-space-3);\n }\n .fs-carousel-caption-side .fs-carousel-caption {\n top: auto;\n bottom: var(--fs-carousel-bottom-safe-area);\n width: auto;\n max-block-size: calc(100% - var(--fs-carousel-top-safe-area) - var(--fs-carousel-bottom-safe-area));\n overflow: clip;\n align-items: flex-end;\n padding: calc(var(--fs-space-3) + 20px) var(--fs-space-3) calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-2));\n text-align: end;\n background: transparent;\n }\n .fs-carousel-caption-side .fs-carousel-caption-start {\n right: 0;\n left: 0;\n align-items: flex-start;\n text-align: start;\n }\n .fs-carousel-caption-side .fs-carousel-item::after {\n position: absolute;\n inset: 0;\n z-index: 0;\n pointer-events: none;\n content: \"\";\n background: linear-gradient(to top, var(--fs-carousel-caption-scrim) 0%, rgba(15, 23, 42, 0.52) 56%, transparent 100%);\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-carousel-inner,\n .fs-carousel-fade .fs-carousel-item,\n .fs-carousel-control-prev,\n .fs-carousel-control-next,\n .fs-carousel-control-toggle,\n .fs-carousel-indicators button::before,\n .fs-carousel-progress.is-running > span {\n transition: none;\n animation: none;\n transform: scaleX(1);\n }\n }\n @keyframes fs-carousel-progress {\n to {\n transform: scaleX(1);\n }\n }\n}\n@layer components {\n .fs-stepper-header {\n display: flex;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .fs-step {\n position: relative;\n display: flex;\n flex: 1 1 0;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n text-align: center;\n }\n .fs-step-indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: var(--fs-color-muted);\n background-color: var(--fs-color-surface);\n border: 2px solid var(--fs-color-border);\n border-radius: 50%;\n font-size: 0.75rem;\n font-weight: 500;\n }\n .fs-step-label {\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n font-weight: 500;\n }\n .fs-step-description {\n color: var(--fs-color-muted);\n font-size: 0.6875rem;\n }\n .fs-step:not(:last-child)::after {\n content: \"\";\n position: absolute;\n top: 15px;\n left: calc(50% + 20px);\n width: calc(100% - 40px);\n height: 2px;\n background-color: var(--fs-color-border);\n }\n .fs-step-active .fs-step-indicator {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n border-color: var(--fs-color-primary);\n }\n .fs-step-active .fs-step-label {\n color: var(--fs-color-text);\n }\n .fs-step-completed .fs-step-indicator {\n color: transparent;\n background-color: var(--fs-color-primary);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5 6.5 12 13 4'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: center;\n border-color: var(--fs-color-primary);\n }\n .fs-step-completed .fs-step-label {\n color: var(--fs-color-text);\n }\n .fs-step-completed:not(:last-child)::after {\n background-color: var(--fs-color-primary);\n }\n .fs-step-error .fs-step-indicator {\n color: #ffffff;\n background-color: var(--fs-color-danger);\n border-color: var(--fs-color-danger);\n }\n .fs-step-error .fs-step-label {\n color: var(--fs-alert-danger-text);\n }\n .fs-step.fs-step-clickable {\n cursor: pointer;\n }\n .fs-step.fs-step-clickable:focus-visible {\n outline: 2px solid var(--fs-color-primary);\n outline-offset: 2px;\n border-radius: var(--fs-radius-sm);\n }\n .fs-stepper-vertical .fs-stepper-header {\n flex-direction: column;\n }\n .fs-stepper-vertical .fs-step {\n flex-direction: row;\n flex: 0 0 auto;\n align-items: flex-start;\n gap: 12px;\n min-height: 56px;\n text-align: left;\n }\n .fs-stepper-vertical .fs-step-content {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding-top: 5px;\n }\n .fs-stepper-vertical .fs-step:not(:last-child)::after {\n top: 34px;\n left: 15px;\n width: 2px;\n height: calc(100% - 22px);\n }\n .fs-step-panel {\n display: none;\n }\n .fs-step-panel.is-active {\n display: block;\n }\n .fs-stepper-content {\n margin-top: 20px;\n }\n .fs-stepper-actions {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n margin-top: 20px;\n }\n}\n@layer components {\n .fs-segmented-control {\n display: inline-flex;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-sm);\n overflow: hidden;\n }\n .fs-segmented-item {\n display: flex;\n }\n .fs-segmented-item:not(:first-child) .fs-segmented-label {\n border-left: 1px solid var(--fs-color-border);\n }\n .fs-segmented-input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n .fs-segmented-label {\n display: inline-flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n min-height: 38px;\n padding: 0 12px;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n font-size: 0.8125rem;\n font-weight: 500;\n text-align: center;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n transition: background-color 0.15s ease-in-out, color 0.15s ease-in-out;\n }\n .fs-segmented-label:hover {\n background-color: var(--fs-color-subtle);\n }\n .fs-segmented-input:checked + .fs-segmented-label {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n .fs-segmented-input:focus-visible + .fs-segmented-label {\n position: relative;\n z-index: 1;\n outline: var(--fs-focus-width) solid var(--fs-color-primary);\n outline-offset: var(--fs-focus-offset);\n border-color: var(--fs-color-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--fs-color-primary) 22%, transparent);\n }\n .fs-segmented-input:disabled + .fs-segmented-label {\n opacity: 0.4;\n pointer-events: none;\n }\n .fs-segmented-control-sm .fs-segmented-label {\n min-height: 30px;\n padding: 0 8px;\n font-size: 0.75rem;\n }\n .fs-segmented-control-lg .fs-segmented-label {\n min-height: 46px;\n padding: 0 16px;\n font-size: 1rem;\n }\n}\n@layer components {\n .fs-skeleton {\n display: block;\n background-color: var(--fs-color-subtle);\n border-radius: var(--fs-radius-sm);\n animation: fokus-skeleton-pulse 1.5s ease-in-out infinite;\n }\n .fs-skeleton-text {\n width: 100%;\n height: 1em;\n }\n .fs-skeleton-text:not(:last-child) {\n margin-bottom: 0.5em;\n }\n .fs-skeleton-text:last-child {\n width: 80%;\n }\n .fs-skeleton-circle {\n flex-shrink: 0;\n border-radius: 50%;\n }\n .fs-skeleton-rect {\n border-radius: var(--fs-radius-md);\n }\n .fs-skeleton-card {\n display: grid;\n gap: var(--fs-space-3);\n min-height: 10rem;\n padding: var(--fs-space-4);\n border-radius: var(--fs-radius-md);\n }\n .fs-skeleton-table {\n height: 1.25rem;\n margin-block-end: var(--fs-space-2);\n }\n .fs-skeleton-avatar {\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 50%;\n }\n @keyframes fokus-skeleton-pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n }\n .fs-skeleton-wave {\n position: relative;\n overflow: hidden;\n animation: none;\n }\n .fs-skeleton-wave::after {\n position: absolute;\n inset: 0;\n content: \"\";\n background-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\n transform: translateX(-100%);\n animation: fokus-skeleton-wave 1.6s linear infinite;\n }\n @keyframes fokus-skeleton-wave {\n 100% {\n transform: translateX(100%);\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-skeleton {\n animation: none;\n }\n .fs-skeleton-wave::after {\n animation: none;\n }\n }\n}\n@layer components {\n .fs-timeline {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .fs-timeline-item {\n position: relative;\n display: flex;\n gap: 12px;\n padding-bottom: 24px;\n }\n .fs-timeline-item:last-child {\n padding-bottom: 0;\n }\n .fs-timeline-marker {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n margin-top: 3px;\n background-color: var(--fs-color-surface);\n background-repeat: no-repeat;\n background-position: center;\n border: 2px solid var(--fs-color-border);\n border-radius: 50%;\n }\n .fs-timeline-item:not(:last-child)::before {\n content: \"\";\n position: absolute;\n top: 22px;\n left: 7px;\n width: 2px;\n height: calc(100% - 22px);\n background-color: var(--fs-color-border);\n }\n .fs-timeline-content {\n flex: 1;\n padding-top: 1px;\n }\n .fs-timeline-title {\n margin: 0;\n color: var(--fs-color-text);\n font-size: 0.8125rem;\n font-weight: 500;\n }\n .fs-timeline-text {\n margin: 4px 0 0;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n .fs-timeline-time {\n display: block;\n margin-top: 2px;\n color: var(--fs-color-muted);\n font-size: 0.6875rem;\n }\n .fs-timeline-active .fs-timeline-marker {\n background-color: var(--fs-color-primary);\n border-color: var(--fs-color-primary);\n }\n .fs-timeline-completed .fs-timeline-marker {\n background-color: var(--fs-color-success);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5.5 4 8l4-6'/%3E%3C/svg%3E\");\n border-color: var(--fs-color-success);\n }\n .fs-timeline-completed:not(:last-child)::before {\n background-color: var(--fs-color-success);\n }\n .fs-timeline-failed .fs-timeline-marker {\n background-color: var(--fs-color-danger);\n border-color: var(--fs-color-danger);\n }\n .fs-timeline-failed .fs-timeline-title {\n color: var(--fs-alert-danger-text);\n }\n .fs-timeline-horizontal {\n flex-direction: row;\n }\n .fs-timeline-horizontal .fs-timeline-item {\n flex: 1 1 0;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding-bottom: 0;\n text-align: center;\n }\n .fs-timeline-horizontal .fs-timeline-marker {\n margin-top: 0;\n }\n .fs-timeline-horizontal .fs-timeline-item:not(:last-child)::before {\n top: 7px;\n left: calc(50% + 15px);\n width: calc(100% - 30px);\n height: 2px;\n }\n .fs-timeline-horizontal .fs-timeline-content {\n padding-top: 0;\n }\n}\n@layer components {\n .fs-collapse {\n overflow: hidden;\n }\n}\n@layer components {\n [data-fs=notification-center] {\n position: relative;\n }\n .fs-notification-badge {\n position: absolute;\n top: -6px;\n right: -6px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 999px;\n color: #ffffff;\n background-color: var(--fs-color-danger);\n font-size: 0.65rem;\n font-weight: 500;\n line-height: 1;\n }\n .fs-notification-badge[hidden] {\n display: none;\n }\n .fs-notification-center {\n position: absolute;\n display: none;\n flex-direction: column;\n width: min(320px, 100vw - 2 * var(--fs-space-3));\n max-height: 420px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n z-index: var(--fs-z-notification);\n }\n .fs-notification-center.is-open {\n display: flex;\n }\n .fs-notification-center-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n border-bottom: 1px solid var(--fs-color-border);\n }\n .fs-notification-center-title {\n font-size: 0.75rem;\n font-weight: 500;\n }\n .fs-notification-list {\n margin: 0;\n padding: 0;\n overflow-y: auto;\n list-style: none;\n }\n .fs-notification-item {\n display: flex;\n gap: 10px;\n align-items: flex-start;\n padding: 10px 14px;\n border-left: 3px solid transparent;\n border-bottom: 1px solid var(--fs-color-border);\n }\n .fs-notification-item:last-child {\n border-bottom: none;\n }\n .fs-notification-item-unread {\n background-color: var(--fs-color-subtle);\n }\n .fs-notification-item-primary {\n border-left-color: var(--fs-color-primary);\n }\n .fs-notification-item-secondary {\n border-left-color: var(--fs-color-secondary);\n }\n .fs-notification-item-success {\n border-left-color: var(--fs-color-success);\n }\n .fs-notification-item-warning {\n border-left-color: var(--fs-color-warning);\n }\n .fs-notification-item-danger {\n border-left-color: var(--fs-color-danger);\n }\n .fs-notification-item-info {\n border-left-color: var(--fs-color-info);\n }\n .fs-notification-item-content {\n flex: 1;\n min-width: 0;\n }\n .fs-notification-item-title {\n margin: 0;\n font-size: 0.75rem;\n font-weight: 500;\n }\n .fs-notification-item-text {\n margin: 2px 0 0;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n }\n .fs-notification-item-time {\n display: block;\n margin-top: 4px;\n color: var(--fs-color-muted);\n font-size: 0.6875rem;\n }\n .fs-notification-item .fs-btn-close {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n }\n .fs-notification-empty {\n padding: 24px 14px;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n text-align: center;\n }\n .fs-notification-empty[hidden] {\n display: none;\n }\n}\n@layer components {\n .fs-dropdown-submenu {\n position: relative;\n }\n .fs-dropdown-item-submenu {\n justify-content: space-between;\n }\n .fs-dropdown-item-submenu::after {\n margin-left: 8px;\n content: \"\";\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 5px solid currentcolor;\n }\n .fs-dropdown-submenu > .fs-dropdown-menu {\n top: -7px;\n left: 100%;\n margin: 0;\n }\n .fs-dropdown-submenu:hover > .fs-dropdown-menu,\n .fs-dropdown-submenu > .fs-dropdown-menu.is-open {\n display: block;\n }\n .fs-dropdown-submenu-left > .fs-dropdown-menu {\n right: 100%;\n left: auto;\n }\n}\n@layer components {\n .fs-tile {\n position: relative;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n background-color: var(--fs-color-surface);\n }\n .fs-tile-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-subtle);\n font-size: 1rem;\n }\n .fs-tile-body {\n flex: 1 1 auto;\n min-width: 0;\n }\n .fs-tile-title {\n margin: 0;\n color: var(--fs-color-text);\n font-size: 0.8125rem;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .fs-tile-subtitle {\n margin: 0;\n color: var(--fs-color-muted);\n font-size: 0.75rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .fs-tile-actions {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 8px;\n }\n .fs-tile-actions-bottom {\n flex-wrap: wrap;\n }\n .fs-tile-actions-bottom .fs-tile-actions {\n flex-basis: 100%;\n justify-content: flex-end;\n margin-top: 4px;\n }\n .fs-tile-clickable {\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .fs-tile-clickable:hover,\n .fs-tile-clickable:focus-within {\n border-color: var(--fs-color-primary);\n box-shadow: var(--fs-shadow-sm);\n }\n .fs-tile-sm {\n gap: 8px;\n padding: 8px;\n }\n .fs-tile-sm .fs-tile-icon {\n width: 32px;\n height: 32px;\n font-size: 0.8125rem;\n }\n .fs-tile-sm .fs-tile-title {\n font-size: 0.75rem;\n }\n .fs-tile-sm .fs-tile-subtitle {\n font-size: 0.6875rem;\n }\n .fs-tile-lg {\n gap: 16px;\n padding: 16px;\n }\n .fs-tile-lg .fs-tile-icon {\n width: 48px;\n height: 48px;\n font-size: 1.25rem;\n }\n .fs-tile-lg .fs-tile-title {\n font-size: 1rem;\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-avatar {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n overflow: hidden;\n color: var(--fs-color-on-primary);\n font-weight: 600;\n background: var(--fs-color-primary);\n border-radius: 50%;\n object-fit: cover;\n }\n .fs-avatar-sm {\n width: 2rem;\n height: 2rem;\n font-size: 0.8125rem;\n }\n .fs-avatar-lg {\n width: 3.5rem;\n height: 3.5rem;\n font-size: 1.25rem;\n }\n .fs-avatar-square {\n border-radius: var(--fs-radius-md);\n }\n .fs-avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-button-group {\n display: inline-flex;\n vertical-align: middle;\n }\n .fs-button-group > .fs-btn {\n border-radius: 0;\n }\n .fs-button-group > .fs-btn:first-child {\n border-start-start-radius: var(--fs-radius-sm);\n border-end-start-radius: var(--fs-radius-sm);\n }\n .fs-button-group > .fs-btn:last-child {\n border-start-end-radius: var(--fs-radius-sm);\n border-end-end-radius: var(--fs-radius-sm);\n }\n .fs-button-group > .fs-btn + .fs-btn {\n margin-inline-start: -1px;\n }\n .fs-button-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n }\n .fs-button-group-vertical > .fs-btn {\n width: 100%;\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-close {\n display: inline-grid;\n width: 2rem;\n height: 2rem;\n place-items: center;\n padding: 0;\n color: currentcolor;\n font-size: 1.5rem;\n line-height: 1;\n background: transparent;\n border: 0;\n border-radius: 50%;\n cursor: pointer;\n opacity: 0.72;\n }\n .fs-close::before {\n content: \"×\";\n }\n .fs-close:hover {\n opacity: 1;\n background: var(--fs-color-subtle);\n }\n .fs-close:focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-focus-color);\n outline-offset: var(--fs-focus-offset);\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-list-group {\n display: flex;\n flex-direction: column;\n padding: 0;\n margin: 0;\n list-style: none;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n }\n .fs-list-group-item {\n position: relative;\n display: block;\n padding: var(--fs-space-3) var(--fs-space-4);\n color: var(--fs-color-text);\n background: var(--fs-color-surface);\n border-block-end: 1px solid var(--fs-color-border);\n }\n .fs-list-group-item:last-child {\n border-block-end: 0;\n }\n button.fs-list-group-item, a.fs-list-group-item {\n width: 100%;\n text-align: start;\n cursor: pointer;\n }\n .fs-list-group-item:hover {\n background: var(--fs-color-subtle);\n }\n .fs-list-group-item.is-active {\n color: var(--fs-color-on-primary);\n background: var(--fs-color-primary);\n }\n}\n@layer components {\n .fs-code {\n padding: 0.125em 0.35em;\n color: var(--fs-color-danger);\n background: var(--fs-color-subtle);\n border-radius: var(--fs-radius-sm);\n }\n .fs-pre {\n display: block;\n max-width: 100%;\n padding: var(--fs-space-4);\n overflow: auto;\n color: var(--fs-color-text);\n background: var(--fs-color-subtle);\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-ratio {\n position: relative;\n width: 100%;\n }\n .fs-ratio::before {\n display: block;\n padding-top: var(--fs-ratio, 56.25%);\n content: \"\";\n }\n .fs-ratio > * {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .fs-ratio-1x1 {\n --fs-ratio: 100%;\n }\n .fs-ratio-4x3 {\n --fs-ratio: 75%;\n }\n .fs-ratio-16x9 {\n --fs-ratio: 56.25%;\n }\n .fs-ratio-21x9 {\n --fs-ratio: 42.857%;\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-icon-link {\n display: inline-flex;\n gap: 0.5em;\n align-items: center;\n }\n .fs-icon-link svg {\n width: 1em;\n height: 1em;\n flex: 0 0 auto;\n }\n .fs-icon-link:hover svg {\n transform: translateX(0.15em);\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-icon-link svg {\n transition: none;\n }\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-placeholder {\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background: currentcolor;\n opacity: 0.18;\n }\n .fs-placeholder-glow {\n animation: fs-placeholder-glow 1.5s ease-in-out infinite;\n }\n .fs-placeholder-wave {\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent), currentcolor;\n background-size: 200% 100%;\n animation: fs-placeholder-wave 1.5s linear infinite;\n }\n .fs-placeholder-btn {\n width: 6rem;\n height: 2.5rem;\n border-radius: var(--fs-radius-sm);\n }\n @keyframes fs-placeholder-glow {\n 50% {\n opacity: 0.08;\n }\n }\n @keyframes fs-placeholder-wave {\n to {\n background-position: -200% 0;\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-placeholder-glow, .fs-placeholder-wave {\n animation: none;\n }\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-progress {\n display: flex;\n height: 0.75rem;\n overflow: hidden;\n background: var(--fs-color-subtle);\n border-radius: 999px;\n }\n .fs-progress-bar {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--fs-color-on-primary);\n background: var(--fs-color-primary);\n transition: width var(--fs-motion-duration-normal) var(--fs-motion-ease-standard);\n }\n .fs-progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%);\n background-size: 1rem 1rem;\n }\n @media (prefers-reduced-motion: reduce) {\n .fs-progress-bar {\n transition: none;\n }\n }\n}\n/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n [data-fs-scrollspy] .is-active {\n color: var(--fs-color-primary);\n font-weight: 600;\n }\n .fs-scrollspy-nav {\n position: sticky;\n inset-block-start: var(--fs-space-4);\n }\n}\n@layer tokens {\n [data-fs-brand=violet] {\n --fs-color-primary: #6d28d9;\n --fs-alert-primary-bg: rgb(229.8834406263, 225.8717327657, 252.5458384302);\n --fs-alert-primary-text: rgb(37.7006407433, 8.7385189481, 83.109047167);\n --fs-feedback-primary-bg: rgb(229.8834406263, 225.8717327657, 252.5458384302);\n }\n [data-fs-brand=violet][data-theme=dark],\n [data-theme=dark] [data-fs-brand=violet] {\n --fs-color-primary: rgb(114.6495158739, 57.1165361442, 219.9746158745);\n --fs-alert-primary-bg: rgb(31.4819726714, 47.0564006856, 82.6607876597);\n --fs-alert-primary-text: rgb(167.4962913963, 147.746130571, 240.0249534535);\n --fs-feedback-primary-bg: rgb(31.4819726714, 47.0564006856, 82.6607876597);\n }\n @supports (color: oklch(0% 0 0deg)) {\n [data-fs-brand=violet] {\n --fs-color-primary: oklch(49.0666497236% 0.2412317343 292.5809393311deg);\n --fs-alert-primary-bg: oklch(92.3599974585% 0.0361847601 292.5809393311deg);\n --fs-alert-primary-text: oklch(24.5333248618% 0.1206158672 292.5809393311deg);\n --fs-feedback-primary-bg: oklch(92.3599974585% 0.0361847601 292.5809393311deg);\n }\n [data-fs-brand=violet][data-theme=dark],\n [data-theme=dark] [data-fs-brand=violet] {\n --fs-color-primary: oklch(51.6133172374% 0.2291701476 292.5809393311deg);\n --fs-alert-primary-bg: oklch(31.117092664% 0.067505667 264.9134801836deg);\n --fs-alert-primary-text: oklch(71.986657348% 0.1326774539 292.5809393311deg);\n --fs-feedback-primary-bg: oklch(31.117092664% 0.067505667 264.9134801836deg);\n }\n }\n [data-fs-brand=corporate] {\n --fs-color-primary: #1d4e89;\n --fs-alert-primary-bg: rgb(219.2237954153, 227.2186121739, 237.6990809983);\n --fs-alert-primary-text: rgb(5.0598830676, 24.6667463069, 49.4731905568);\n --fs-feedback-primary-bg: rgb(219.2237954153, 227.2186121739, 237.6990809983);\n }\n [data-fs-brand=corporate][data-theme=dark],\n [data-theme=dark] [data-fs-brand=corporate] {\n --fs-color-primary: rgb(40.8593466225, 86.5224214637, 143.0926598584);\n --fs-alert-primary-bg: rgb(31.2586947979, 46.3186220749, 70.1321749545);\n --fs-alert-primary-text: rgb(127.9940036809, 155.4045223568, 190.9765129762);\n --fs-feedback-primary-bg: rgb(31.2586947979, 46.3186220749, 70.1321749545);\n }\n [data-fs-brand=vibrant] {\n --fs-color-primary: #f2542d;\n --fs-alert-primary-bg: rgb(255, 231.3637253432, 224.6456124112);\n --fs-alert-primary-text: rgb(93.6202523577, 27.1894355526, 10.7919554552);\n --fs-feedback-primary-bg: rgb(255, 231.3637253432, 224.6456124112);\n }\n [data-fs-brand=vibrant][data-theme=dark],\n [data-theme=dark] [data-fs-brand=vibrant] {\n --fs-color-primary: rgb(244.0763687777, 94.774513804, 58.7750761343);\n --fs-alert-primary-bg: rgb(48.9487024594, 50.7990197305, 85.9119190034);\n --fs-alert-primary-text: rgb(255, 166.953251087, 144.6609410048);\n --fs-feedback-primary-bg: rgb(48.9487024594, 50.7990197305, 85.9119190034);\n }\n @supports (color: oklch(0% 0 0deg)) {\n [data-fs-brand=corporate] {\n --fs-color-primary: oklch(42.3377990386% 0.1112359961 255.1073474093deg);\n --fs-alert-primary-bg: oklch(91.3506698558% 0.0166853994 255.1073474093deg);\n --fs-alert-primary-text: oklch(21.1688995193% 0.055617998 255.1073474093deg);\n --fs-feedback-primary-bg: oklch(91.3506698558% 0.0166853994 255.1073474093deg);\n }\n [data-fs-brand=corporate][data-theme=dark],\n [data-theme=dark] [data-fs-brand=corporate] {\n --fs-color-primary: oklch(45.2209090867% 0.1056741963 255.1073474093deg);\n --fs-alert-primary-bg: oklch(30.1077650613% 0.0480063062 259.2924413953deg);\n --fs-alert-primary-text: oklch(68.2857894712% 0.0611797979 255.1073474093deg);\n --fs-feedback-primary-bg: oklch(30.1077650613% 0.0480063062 259.2924413953deg);\n }\n [data-fs-brand=vibrant] {\n --fs-color-primary: oklch(65.5786741493% 0.2007639921 34.7814711243deg);\n --fs-alert-primary-bg: oklch(94.8368011224% 0.0301145988 34.7814711243deg);\n --fs-alert-primary-text: oklch(32.7893370747% 0.1003819961 34.7814711243deg);\n --fs-feedback-primary-bg: oklch(94.8368011224% 0.0301145988 34.7814711243deg);\n }\n [data-fs-brand=vibrant][data-theme=dark],\n [data-theme=dark] [data-fs-brand=vibrant] {\n --fs-color-primary: oklch(67.2997404419% 0.1907257925 34.7814711243deg);\n --fs-alert-primary-bg: oklch(33.5938963279% 0.0614355056 280.2435599526deg);\n --fs-alert-primary-text: oklch(81.0682707821% 0.1104201957 34.7814711243deg);\n --fs-feedback-primary-bg: oklch(33.5938963279% 0.0614355056 280.2435599526deg);\n }\n }\n}\n@layer overrides {\n [data-fs-brand=vibrant] .fs-btn-primary,\n [data-fs-brand=vibrant] .fs-badge-primary {\n --fs-btn-color: #000000;\n --fs-badge-color: #000000;\n }\n [data-fs-brand=vibrant] .fs-check {\n --fs-check-mark: #000000;\n }\n}\n@layer tokens {\n [data-theme=dark],\n [data-fs-theme=dark] {\n --fs-color-text: #f1f3f4;\n --fs-color-muted: #bdc1c6;\n --fs-color-border: #3c4043;\n --fs-color-surface: #202124;\n --fs-color-subtle: #2b2c2f;\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-color-action-primary: var(--fs-color-primary);\n --fs-color-action-danger: var(--fs-color-danger);\n --fs-shadow-sm: 0 1px 3px rgb(0 0 0 / 50%), 0 1px 2px rgb(0 0 0 / 40%);\n --fs-shadow-md: 0 6px 12px rgb(0 0 0 / 55%), 0 3px 6px rgb(0 0 0 / 45%);\n --fs-shadow-lg: 0 15px 30px rgb(0 0 0 / 60%), 0 6px 12px rgb(0 0 0 / 50%);\n --fs-tooltip-bg: #f8fafc;\n --fs-tooltip-text: #1e293b;\n --fs-color-primary: rgb(39.8728684152, 106.2372587275, 232.1894887664);\n --fs-alert-primary-bg: rgb(30.765779113, 49.9974662348, 82.3021425489);\n --fs-alert-primary-text: rgb(130.6636212695, 172.0850768824, 246.4419684583);\n --fs-feedback-primary-bg: rgb(30.765779113, 49.9974662348, 82.3021425489);\n --fs-color-secondary: rgb(114.3557068426, 129.039220146, 150.1520317181);\n --fs-alert-secondary-bg: rgb(39.6548148226, 51.4270943358, 70.2648514061);\n --fs-alert-secondary-text: rgb(166.7597509121, 176.2809684237, 189.9919576187);\n --fs-feedback-secondary-bg: rgb(39.6548148226, 51.4270943358, 70.2648514061);\n --fs-color-success: rgb(134.4501166043, 226.9563331209, 149.6185042518);\n --fs-alert-success-bg: rgb(24.8621518491, 61.9088085702, 89.0318819222);\n --fs-alert-success-text: rgb(155.0475916512, 231.7231823866, 166.1609492581);\n --fs-feedback-success-bg: rgb(24.8621518491, 61.9088085702, 89.0318819222);\n --fs-color-warning: rgb(252.9400238762, 208.7461261831, 137.9221837268);\n --fs-alert-warning-bg: rgb(59.1359779173, 56.6792370273, 88.6687774507);\n --fs-alert-warning-text: rgb(253.5439861058, 216.1213263099, 157.1705651606);\n --fs-feedback-warning-bg: rgb(59.1359779173, 56.6792370273, 88.6687774507);\n --fs-color-danger: rgb(208.1189955268, 64.9740184262, 63.4302936954);\n --fs-alert-danger-bg: rgb(44.6823973866, 47.5125073063, 81.2083778204);\n --fs-alert-danger-text: rgb(235.4050745756, 149.9650253478, 142.4924034553);\n --fs-feedback-danger-bg: rgb(44.6823973866, 47.5125073063, 81.2083778204);\n --fs-color-info: #5e5cc7;\n --fs-alert-info-bg: rgb(35.0058091619, 49.6887857769, 78.5757788254);\n --fs-alert-info-text: rgb(160.628671266, 165.881962789, 227.610600335);\n --fs-feedback-info-bg: rgb(35.0058091619, 49.6887857769, 78.5757788254);\n }\n @supports (color: oklch(0% 0 0deg)) {\n [data-theme=dark],\n [data-fs-theme=dark] {\n --fs-color-text: oklch(96.2913383165% 0.002529697 228.7848682695deg);\n --fs-color-muted: oklch(80.9268110646% 0.0083071608 253.8653061211deg);\n --fs-color-border: oklch(36.8827622528% 0.0074489239 240.018838067deg);\n --fs-color-surface: oklch(24.7936263361% 0.0058460141 271.1764187765deg);\n --fs-color-subtle: oklch(29.3286259539% 0.0055990771 271.2234269855deg);\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-color-action-primary: var(--fs-color-primary);\n --fs-color-action-danger: var(--fs-color-danger);\n --fs-tooltip-bg: oklch(98.4151869501% 0.0034126992 247.8577745944deg);\n --fs-tooltip-text: oklch(27.9495237712% 0.0368481257 260.0309873929deg);\n --fs-color-primary: oklch(55.884857057% 0.2025537915 261.6264320248deg);\n --fs-alert-primary-bg: oklch(31.7915463198% 0.0633030844 260.2703040876deg);\n --fs-alert-primary-text: oklch(74.4596540856% 0.1172679846 261.6264320248deg);\n --fs-feedback-primary-bg: oklch(31.7915463198% 0.0633030844 260.2703040876deg);\n --fs-color-secondary: oklch(59.8951906896% 0.0366453387 257.4166191214deg);\n --fs-alert-secondary-bg: oklch(32.0729603204% 0.0374284633 259.6388321521deg);\n --fs-alert-secondary-text: oklch(75.4915054214% 0.0223943736 257.4166191214deg);\n --fs-feedback-secondary-bg: oklch(32.0729603204% 0.0374284633 259.6388321521deg);\n --fs-color-success: oklch(83.8485321344% 0.139498201 148.125846236deg);\n --fs-alert-success-bg: oklch(35.0298333903% 0.0635127994 243.2452162193deg);\n --fs-alert-success-text: oklch(86.3333733445% 0.1180369393 148.125846236deg);\n --fs-feedback-success-bg: oklch(35.0298333903% 0.0635127994 243.2452162193deg);\n --fs-color-warning: oklch(88.2682030181% 0.1015699084 78.6575213966deg);\n --fs-alert-warning-bg: oklch(36.0497574404% 0.0547601164 286.8249674934deg);\n --fs-alert-warning-text: oklch(90.0730948615% 0.0859437686 78.6575213966deg);\n --fs-feedback-warning-bg: oklch(36.0497574404% 0.0547601164 286.8249674934deg);\n --fs-color-danger: oklch(58.1670482336% 0.1802407312 25.2407937498deg);\n --fs-alert-danger-bg: oklch(32.151892295% 0.0597799696 278.8124583464deg);\n --fs-alert-danger-text: oklch(75.7809226615% 0.104349897 25.2407937498deg);\n --fs-feedback-danger-bg: oklch(32.151892295% 0.0597799696 278.8124583464deg);\n --fs-color-info: oklch(53.3359780029% 0.1620131129 280.2231949375deg);\n --fs-alert-info-bg: oklch(31.7574919059% 0.0556228738 263.0598185246deg);\n --fs-alert-info-text: oklch(74.3347879016% 0.0891072121 280.2231949375deg);\n --fs-feedback-info-bg: oklch(31.7574919059% 0.0556228738 263.0598185246deg);\n }\n }\n @media (prefers-color-scheme: dark) {\n [data-fs-theme=auto] {\n --fs-color-text: #f1f3f4;\n --fs-color-muted: #bdc1c6;\n --fs-color-border: #3c4043;\n --fs-color-surface: #202124;\n --fs-color-subtle: #2b2c2f;\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-tooltip-bg: #f8fafc;\n --fs-tooltip-text: #1e293b;\n }\n }\n @media (forced-colors: active) {\n :root,\n [data-theme=dark],\n [data-fs-theme=light],\n [data-fs-theme=dark],\n [data-fs-theme=auto] {\n --fs-color-border: CanvasText;\n --fs-color-text: CanvasText;\n --fs-color-surface: Canvas;\n --fs-color-subtle: Canvas;\n --fs-focus-color: Highlight;\n }\n }\n}","@use \"sass:map\";\n@use \"../settings\" as *;\n@use \"../tools\" as *;\n\n// Ordem canônica das camadas: declarada uma única vez aqui porque `tokens`\n// é sempre o primeiro `@use` de cada entry point (ver scss/entries/*.scss e\n// scss/fokus.scss) — evita repetir a declaração em cada bundle.\n@layer reset, tokens, base, layout, components, utilities, overrides;\n\n@layer tokens {\n // Bloco incondicional: fallback sRGB, aplicado em todo navegador. Os\n // valores de cor aqui vêm de `rgb-fallback()` (gamut-mapeado a partir do\n // primitivo OKLCH) — ver `tools/_mixins.scss`. É sempre sobrescrito pelo\n // bloco `@supports` abaixo em navegadores com suporte a `oklch()`; um\n // `--fs-*` de cor nunca deve ser lido só daqui em código novo.\n :root {\n --fs-color-white: #{$color-white};\n --fs-color-black: #{$color-black};\n --fs-color-text: #{rgb-fallback($color-gray-900)};\n --fs-color-muted: #{rgb-fallback($color-gray-600)};\n --fs-color-border: #{rgb-fallback($color-gray-300)};\n --fs-color-surface: #{$color-white};\n --fs-color-subtle: #{rgb-fallback($color-gray-100)};\n --fs-font-sans: #{$font-family-sans};\n --fs-font-mono: #{$font-family-mono};\n --fs-font-size-md: #{$font-size-md};\n --fs-font-size-h1: #{$font-size-h1};\n --fs-font-size-h2: #{$font-size-h2};\n --fs-font-size-h3: #{$font-size-h3};\n --fs-font-size-h4: #{$font-size-h4};\n --fs-font-size-h5: #{$font-size-h5};\n --fs-font-size-h6: #{$font-size-h6};\n --fs-font-weight-semibold: #{$font-weight-semibold};\n --fs-line-height-base: #{$line-height-base};\n --fs-line-height-heading: #{$line-height-heading};\n --fs-radius-sm: #{$radius-sm};\n --fs-radius-md: #{$radius-md};\n --fs-radius-lg: #{$radius-lg};\n --fs-gutter-x: #{map.get($spacers, 4)};\n --fs-gutter-y: 0px;\n\n @each $name, $space in $spacers {\n --fs-space-#{$name}: #{$space};\n }\n\n @each $name, $z-index in $z-indexes {\n --fs-z-#{$name}: #{$z-index};\n }\n\n --fs-control-height: 38px;\n --fs-control-height-sm: 30px;\n --fs-control-height-lg: 46px;\n --fs-control-padding-x: 12px;\n --fs-control-padding-x-sm: 8px;\n --fs-control-padding-x-lg: 16px;\n --fs-focus-width: 2px;\n --fs-focus-offset: 2px;\n --fs-focus-color: var(--fs-color-primary);\n --fs-focus-ring-size: 3px;\n --fs-focus-ring-color: color-mix(in srgb, var(--fs-focus-color) 22%, transparent);\n --fs-focus-ring-alpha: 22%;\n --fs-transition-fast: 150ms;\n --fs-transition-normal: 220ms;\n --fs-motion-duration-fast: var(--fs-transition-fast);\n --fs-motion-duration-normal: var(--fs-transition-normal);\n --fs-motion-ease-standard: var(--fs-ease-standard);\n --fs-ease-standard: cubic-bezier(0.2, 0, 0, 1);\n --fs-border-width: 1px;\n --fs-disabled-opacity: 0.5;\n --fs-safe-area-top: env(safe-area-inset-top, 0px);\n --fs-safe-area-right: env(safe-area-inset-right, 0px);\n --fs-safe-area-bottom: env(safe-area-inset-bottom, 0px);\n --fs-safe-area-left: env(safe-area-inset-left, 0px);\n --fs-component-control-height: var(--fs-control-height);\n --fs-component-overlay-backdrop: rgb(0 0 0 / 55%);\n --fs-component-panel-radius: var(--fs-radius-md);\n --fs-component-panel-shadow: var(--fs-shadow-lg);\n --fs-contrast-border-width: var(--fs-border-width);\n --fs-contrast-focus-width: var(--fs-focus-width);\n\n // Referência dos limiares usados pelos utilitários `@container` (ver\n // `packages/fokus-utilities/scss/utilities/_container-queries.scss`).\n // Só informativas: a condição de um `@container` precisa de um valor\n // literal em tempo de build, não aceita `var()` — mudar aqui não\n // recalibra as regras já compiladas, só documenta os valores usados.\n @each $name, $width in $container-breakpoints {\n --fs-cq-#{$name}: #{$width};\n }\n\n --fs-shadow-sm: 0 1px 3px rgb(0 0 0 / 15%), 0 1px 2px rgb(0 0 0 / 10%);\n --fs-shadow-md: 0 6px 12px rgb(0 0 0 / 15%), 0 3px 6px rgb(0 0 0 / 10%);\n --fs-shadow-lg: 0 15px 30px rgb(0 0 0 / 18%), 0 6px 12px rgb(0 0 0 / 12%);\n --fs-tooltip-bg: #{rgb-fallback($color-gray-900)};\n --fs-tooltip-text: #{$color-white};\n\n @each $name, $color in $theme-colors {\n --fs-color-#{$name}: #{rgb-fallback($color)};\n --fs-color-on-#{$name}: #{color-contrast($color)};\n --fs-alert-#{$name}-bg: #{rgb-fallback(tint-color($color))};\n --fs-alert-#{$name}-text: #{rgb-fallback(shade-color($color))};\n }\n\n @each $name, $bg in $theme-bg-colors {\n --fs-feedback-#{$name}-bg: #{rgb-fallback($bg)};\n }\n }\n\n // Bloco condicional: valores nativos em OKLCH. `@supports (color: oklch(0%\n // 0 0))` só passa em navegadores que entendem a função — os demais ignoram\n // o bloco inteiro e mantêm o fallback sRGB acima. Só propriedades de cor\n // entram aqui; o resto (fontes, raio, sombra, gutter) não tem equivalente\n // \"melhor\" em OKLCH e já está definido de forma incondicional.\n @supports (color: oklch(0% 0 0)) {\n :root {\n --fs-color-text: #{$color-gray-900};\n --fs-color-muted: #{$color-gray-600};\n --fs-color-border: #{$color-gray-300};\n --fs-color-subtle: #{$color-gray-100};\n --fs-tooltip-bg: #{$color-gray-900};\n\n @each $name, $color in $theme-colors {\n --fs-color-#{$name}: #{$color};\n --fs-color-on-#{$name}: #{color-contrast($color)};\n --fs-alert-#{$name}-bg: #{tint-color($color)};\n --fs-alert-#{$name}-text: #{shade-color($color)};\n }\n\n @each $name, $bg in $theme-bg-colors {\n --fs-feedback-#{$name}-bg: #{$bg};\n }\n }\n }\n\n @media (prefers-contrast: more) {\n :root {\n --fs-contrast-border-width: 2px;\n --fs-contrast-focus-width: 3px;\n --fs-focus-width: var(--fs-contrast-focus-width);\n --fs-border-width: var(--fs-contrast-border-width);\n }\n }\n}\n","// Camada semântica: nomeia tokens por PAPEL (o que a cor faz na interface),\n// não por valor. Cada token aqui é um alias `var()` de um token primitivo\n// (`_root.scss`) — não introduz nenhuma cor nova, só um vocabulário estável\n// entre o primitivo e o consumo por componente (ver `_component-buttons.scss`\n// como referência de como um componente deve consumir esta camada).\n// Por que alias e não recalcular o valor: um `var()` encadeado continua\n// resolvendo o fallback sRGB/OKLCH já decidido em `_root.scss` — não precisa\n// repetir a lógica de `@supports` aqui.\n@layer tokens {\n :root {\n // Superfícies\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n\n // Texto\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n\n // Bordas\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n\n // Ação (mapeiam para a cor de tema correspondente — existem para dar um\n // nome estável a \"a cor de ação primária\", independente de qual token\n // primitivo ela usa por baixo).\n --fs-color-action-primary: var(--fs-color-primary);\n --fs-color-action-danger: var(--fs-color-danger);\n }\n}\n","// Tokens de gráficos: agnósticos de biblioteca — não é um wrapper de\n// Chart.js/ECharts/Recharts/etc., só cores/tema que qualquer uma delas pode\n// consumir via `getComputedStyle`/CSS custom properties. Aliases da camada\n// semântica já existente (mesma técnica de `_semantic.scss`), então\n// acompanham `data-theme`/`data-fs-brand` automaticamente sem token novo por\n// tema. Ver docs/guides/charts.md.\n@layer tokens {\n :root {\n --fs-chart-series-1: var(--fs-color-primary);\n --fs-chart-series-2: var(--fs-color-success);\n --fs-chart-series-3: var(--fs-color-warning);\n --fs-chart-series-4: var(--fs-color-danger);\n --fs-chart-series-5: var(--fs-color-info);\n --fs-chart-series-6: var(--fs-color-secondary);\n --fs-chart-grid: var(--fs-color-border);\n --fs-chart-axis: var(--fs-color-muted);\n --fs-chart-tooltip-bg: var(--fs-tooltip-bg);\n --fs-chart-tooltip-text: var(--fs-tooltip-text);\n }\n}\n","@layer reset {\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n html {\n line-height: var(--fs-line-height-base);\n text-size-adjust: 100%;\n }\n\n body {\n margin: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n }\n\n [hidden] {\n display: none !important;\n }\n}\n","// As declarações @font-face das fontes self-hosted ficam em `_fonts.scss`,\n// distribuído à parte (dist/css/fonts.css) e fora dos bundles principais —\n// ver a nota nesse arquivo. Aqui só aplicamos as pilhas de `font-family`\n// (com fallback sans-serif/monospace, que valem mesmo sem fonts.css).\n\n@layer base {\n body,\n button,\n input,\n select,\n textarea {\n font-family: var(--fs-font-sans);\n font-size: var(--fs-font-size-md);\n }\n\n code,\n kbd,\n pre,\n samp {\n font-family: var(--fs-font-mono);\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n font-weight: var(--fs-font-weight-semibold);\n line-height: var(--fs-line-height-heading);\n }\n\n h1 {\n font-size: var(--fs-font-size-h1);\n }\n\n h2 {\n font-size: var(--fs-font-size-h2);\n }\n\n h3 {\n font-size: var(--fs-font-size-h3);\n }\n\n h4 {\n font-size: var(--fs-font-size-h4);\n }\n\n h5 {\n font-size: var(--fs-font-size-h5);\n }\n\n h6 {\n font-size: var(--fs-font-size-h6);\n }\n}\n","// Respeita a preferência do sistema sem remover a funcionalidade dos\n// componentes: apenas reduz transições e animações ao estado final.\n@layer base {\n @media (prefers-reduced-motion: reduce) {\n *,\n *::before,\n *::after {\n scroll-behavior: auto !important;\n transition-duration: 0.01ms !important;\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n }\n\n // Spinner comunica uma operação em curso; congelá-lo o transforma em um\n // ícone ambíguo. Mantemos a animação, porém em ritmo mais lento, para\n // respeitar a preferência sem perder o significado de carregamento.\n .fs-spinner,\n .fs-progress-bar-animated,\n .fs-progress-indeterminate .fs-progress-bar {\n animation-duration: 1.5s !important;\n animation-iteration-count: infinite !important;\n }\n }\n}\n","/* stylelint-disable property-no-deprecated, selector-not-notation */\n@layer reset {\n :focus-visible {\n outline: var(--fs-focus-width) solid var(--fs-focus-color);\n outline-offset: var(--fs-focus-offset);\n }\n\n @media (forced-colors: active) {\n :focus-visible {\n outline: 2px solid CanvasText;\n outline-offset: 2px;\n }\n\n button,\n [role=\"button\"],\n input,\n select,\n textarea,\n .fs-btn {\n border-color: ButtonText;\n forced-color-adjust: auto;\n }\n\n .fs-u-focus-ring:focus-visible {\n outline: 3px solid Highlight;\n }\n }\n}\n\n@layer utilities {\n .fs-u-visually-hidden:not(:focus):not(:focus-within),\n .fs-u-visually-hidden-focusable:not(:focus):not(:focus-within) {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip-path: inset(50%) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n\n .fs-skip-link {\n position: fixed;\n z-index: 1000;\n inset-block-start: var(--fs-space-2);\n inset-inline-start: var(--fs-space-2);\n transform: translateY(-200%);\n padding: var(--fs-space-2) var(--fs-space-3);\n color: var(--fs-color-on-primary);\n background: var(--fs-color-primary);\n border-radius: var(--fs-radius-sm);\n }\n\n .fs-skip-link:focus {\n transform: translateY(0);\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n // Tokens de componente: cada `.fs-btn-*` abaixo só sobrescreve estas três\n // custom properties (nunca `color`/`background-color`/`border-color`\n // diretamente) — permite customizar um botão específico via CSS\n // (`.minha-classe { --fs-btn-bg: ...; }`) sem precisar de `!important` nem\n // repetir a declaração de layout. Ver docs/scss-architecture.md.\n .fs-btn {\n --fs-btn-color: var(--fs-color-text-primary);\n --fs-btn-bg: var(--fs-color-bg-subtle);\n --fs-btn-border-color: var(--fs-color-border-default);\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--fs-space-1);\n min-height: var(--fs-control-height);\n padding: 0 var(--fs-control-padding-x);\n border: var(--fs-border-width) solid var(--fs-btn-border-color);\n border-radius: var(--fs-radius-sm);\n color: var(--fs-btn-color);\n background-color: var(--fs-btn-bg);\n font-size: $font-size-md;\n font-weight: $font-weight-medium;\n text-decoration: none;\n cursor: pointer;\n transition: color var(--fs-transition-fast) var(--fs-ease-standard),\n background-color var(--fs-transition-fast) var(--fs-ease-standard),\n border-color var(--fs-transition-fast) var(--fs-ease-standard),\n box-shadow var(--fs-transition-fast) var(--fs-ease-standard);\n }\n\n .fs-btn:hover {\n --fs-btn-bg: var(--fs-btn-hover-bg, var(--fs-color-subtle));\n }\n\n .fs-btn:active {\n --fs-btn-bg: var(--fs-btn-active-bg, var(--fs-color-border));\n }\n\n .fs-btn:focus-visible {\n @include focus-ring;\n }\n\n .fs-btn:disabled,\n .fs-btn.is-disabled {\n opacity: var(--fs-disabled-opacity);\n pointer-events: none;\n }\n\n @each $name, $color in $theme-colors {\n .fs-btn-#{$name} {\n --fs-btn-color: var(--fs-color-on-#{$name});\n --fs-btn-bg: var(--fs-color-#{$name});\n --fs-btn-border-color: var(--fs-color-#{$name});\n --fs-btn-hover-bg: var(--fs-color-#{$name});\n --fs-btn-active-bg: var(--fs-color-#{$name});\n }\n\n .fs-btn-outline-#{$name} {\n --fs-btn-color: var(--fs-alert-#{$name}-text);\n --fs-btn-bg: transparent;\n --fs-btn-border-color: var(--fs-color-#{$name});\n }\n\n .fs-btn-outline-#{$name}:hover,\n .fs-btn-outline-#{$name}:active {\n --fs-btn-color: var(--fs-color-on-#{$name});\n --fs-btn-bg: var(--fs-color-#{$name});\n }\n }\n\n .fs-btn-sm {\n min-height: var(--fs-control-height-sm);\n padding: 0 var(--fs-control-padding-x-sm);\n font-size: $font-size-sm;\n }\n\n .fs-btn-lg {\n min-height: var(--fs-control-height-lg);\n padding: 0 var(--fs-control-padding-x-lg);\n font-size: $font-size-lg;\n }\n\n .fs-btn-close {\n position: relative;\n width: 20px;\n height: 20px;\n padding: 0;\n border: none;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-muted);\n background-color: var(--fs-color-surface-raised);\n cursor: pointer;\n }\n\n .fs-btn-close::before,\n .fs-btn-close::after {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 12px;\n height: 2px;\n background-color: currentcolor;\n content: \"\";\n }\n\n .fs-btn-close::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n\n .fs-btn-close::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n\n .fs-btn-close:hover {\n color: var(--fs-color-text);\n background-color: var(--fs-color-subtle);\n }\n\n .fs-btn-close:focus-visible {\n @include focus-ring;\n }\n}\n","$font-family-sans: \"Plus Jakarta Sans\", sans-serif !default;\n$font-family-mono: \"Source Code Pro\", monospace !default;\n\n// Escala compacta: corpo (md) ~13px, piso (xs) ~11px — reservado a\n// texto de apoio (meta/label), nunca corpo de leitura.\n$font-size-xs: 0.6875rem !default;\n$font-size-sm: 0.75rem !default;\n$font-size-md: 0.8125rem !default;\n$font-size-lg: 1rem !default;\n$font-size-xl: 1.25rem !default;\n\n// Escala de headings, deliberadamente menor que o padrão do navegador\n// (preferência por texto compacto — ver docs/internal/plans).\n$font-size-h1: 1.75rem !default;\n$font-size-h2: 1.5rem !default;\n$font-size-h3: 1.3125rem !default;\n$font-size-h4: 1.125rem !default;\n$font-size-h5: 1rem !default;\n$font-size-h6: 0.875rem !default;\n\n$font-weight-regular: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n\n$line-height-base: 1.5 !default;\n$line-height-heading: 1.25 !default;\n","@use \"sass:map\";\n@use \"sass:math\";\n@use \"sass:color\";\n@use \"../settings\" as *;\n\n@mixin fs-fluid-type($min, $max, $min-vw: 320px, $max-vw: 1280px) {\n font-size: clamp($min, calc(#{$min} + (#{ $max } - #{ $min }) * ((100vw - #{ $min-vw }) / (#{ $max-vw } - #{ $min-vw }))), $max);\n}\n\n@mixin fs-fluid-value($property, $min, $max, $min-vw: 320px, $max-vw: 1280px) {\n #{$property}: clamp($min, calc(#{$min} + (#{ $max } - #{ $min }) * ((100vw - #{ $min-vw }) / (#{ $max-vw } - #{ $min-vw }))), $max);\n}\n\n@mixin media-breakpoint-up($name) {\n $min: map.get($breakpoints, $name);\n\n @if $min == null {\n @error \"Unknown breakpoint `#{$name}`.\";\n }\n\n @if $min == 0 {\n @content;\n } @else {\n @media (min-width: $min) {\n @content;\n }\n }\n}\n\n@function breakpoint-infix($name) {\n @if $name == xs {\n @return \"\";\n }\n\n @return \"-#{$name}\";\n}\n\n@mixin focus-ring($color: var(--fs-color-primary)) {\n outline: var(--fs-focus-width) solid $color;\n outline-offset: var(--fs-focus-offset);\n border-color: $color;\n box-shadow: 0 0 0 3px color-mix(in srgb, #{$color} 22%, transparent);\n}\n\n@mixin truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@function linearize-channel($value) {\n $c: math.div($value, 255);\n\n @if $c <= 0.0393 {\n @return math.div($c, 12.92);\n }\n\n @return math.pow(math.div($c + 0.055, 1.055), 2.4);\n}\n\n@function relative-luminance($color) {\n $r: linearize-channel(color.channel($color, \"red\", $space: rgb));\n $g: linearize-channel(color.channel($color, \"green\", $space: rgb));\n $b: linearize-channel(color.channel($color, \"blue\", $space: rgb));\n\n @return (0.2126 * $r) + (0.7152 * $g) + (0.0722 * $b);\n}\n\n@function color-contrast($background, $min-contrast: 4.5) {\n $contrast-with-white: math.div(1.05, relative-luminance($background) + 0.05);\n\n @if $contrast-with-white >= $min-contrast {\n @return $color-white;\n }\n\n @return $color-black;\n}\n\n// Razão de contraste WCAG entre duas cores (1–21). Usada pelo relatório de\n// contraste do build (`npm run contrast`, `scripts/contrast-report.scss`) —\n// ver docs/reference/contrast-report.md para os pares auditados.\n@function contrast-ratio($foreground, $background) {\n $l1: relative-luminance($foreground) + 0.05;\n $l2: relative-luminance($background) + 0.05;\n\n @if $l1 > $l2 {\n @return math.div($l1, $l2);\n }\n\n @return math.div($l2, $l1);\n}\n\n@function tint-color($color, $weight: 15%) {\n @return color.mix($color, $color-white, $weight, $method: oklch);\n}\n\n@function shade-color($color, $weight: 50%) {\n @return color.mix($color, $color-black, $weight, $method: oklch);\n}\n\n// Fallback sRGB de uma cor OKLCH para navegadores sem suporte a `oklch()`\n// (ver `@supports` em tokens/_root.scss e themes/_dark.scss). Faz gamut\n// mapping antes da conversão — misturas em OKLCH frequentemente caem fora do\n// gamut sRGB, e converter sem mapear gera `rgb()`/`hsl()` com canais\n// inválidos (saturação > 100%, etc.).\n@function rgb-fallback($color) {\n $mapped: color.to-gamut($color, $space: rgb, $method: local-minde);\n\n @return color.to-space($mapped, rgb);\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n@layer components {\n .fs-card {\n position: relative;\n display: flex;\n flex-direction: column;\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n border-radius: var(--fs-radius-lg);\n background-color: var(--fs-color-surface);\n }\n\n .fs-card-horizontal {\n flex-direction: row;\n }\n\n .fs-card-horizontal .fs-card-header:first-child {\n border-radius: calc(var(--fs-radius-lg) - 1px) 0 0 calc(var(--fs-radius-lg) - 1px);\n border-right: 1px solid var(--fs-color-border);\n border-bottom: none;\n }\n\n .fs-card-horizontal .fs-card-footer:last-child {\n border-radius: 0 calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px) 0;\n border-left: 1px solid var(--fs-color-border);\n border-top: none;\n }\n\n .fs-card-clickable {\n transition: border-color var(--fs-transition-fast) var(--fs-ease-standard),\n box-shadow var(--fs-transition-fast) var(--fs-ease-standard),\n transform var(--fs-transition-fast) var(--fs-ease-standard);\n }\n\n .fs-card-clickable:hover,\n .fs-card-clickable:focus-within {\n border-color: var(--fs-color-primary);\n box-shadow: var(--fs-shadow-sm);\n transform: translateY(-1px);\n }\n\n .fs-stretched-link {\n color: inherit;\n text-decoration: none;\n }\n\n .fs-stretched-link::after {\n position: absolute;\n inset: 0;\n z-index: 1;\n content: \"\";\n }\n\n .fs-card-header,\n .fs-card-body,\n .fs-card-footer {\n padding: 10px;\n }\n\n .fs-card-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n border-bottom: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-subtle);\n }\n\n .fs-card-header .fs-card-title {\n margin: 0;\n }\n\n .fs-card-header:first-child {\n border-radius: calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px) 0 0;\n }\n\n .fs-card-footer {\n border-top: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-subtle);\n }\n\n .fs-card-footer:last-child {\n border-radius: 0 0 calc(var(--fs-radius-lg) - 1px) calc(var(--fs-radius-lg) - 1px);\n }\n\n .fs-card-title {\n margin: 0 0 4px;\n color: var(--fs-color-text);\n font-size: $font-size-lg;\n font-weight: $font-weight-medium;\n }\n\n .fs-card-subtitle {\n margin: 0 0 8px;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n\n .fs-card-text {\n margin: 0 0 8px;\n color: var(--fs-color-text);\n font-size: $font-size-md;\n }\n\n .fs-card-text:last-child {\n margin-bottom: 0;\n }\n\n .fs-card-sm .fs-card-header,\n .fs-card-sm .fs-card-body,\n .fs-card-sm .fs-card-footer {\n padding: 5px;\n }\n\n .fs-card-lg .fs-card-header,\n .fs-card-lg .fs-card-body,\n .fs-card-lg .fs-card-footer {\n padding: 15px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n@layer components {\n .fs-alert {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 12px 16px;\n border: 1px solid var(--fs-color-border);\n border-left: 5px solid var(--fs-color-border);\n border-radius: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: $font-size-sm;\n }\n\n @each $name, $color in $theme-colors {\n .fs-alert-#{$name} {\n color: var(--fs-alert-#{$name}-text);\n background-color: var(--fs-alert-#{$name}-bg);\n border-color: var(--fs-color-#{$name});\n }\n }\n}\n","@use \"sass:map\";\n@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n // As variantes alteram somente tokens locais. Isso permite ajustar um badge\n // por marca sem sobrescrever propriedades de apresentação diretamente.\n .fs-badge {\n --fs-badge-color: var(--fs-color-text);\n --fs-badge-bg: var(--fs-color-subtle);\n --fs-badge-border: transparent;\n --fs-badge-height: 22px;\n --fs-badge-radius: 0;\n\n display: inline-flex;\n align-items: center;\n gap: 6px;\n justify-content: center;\n min-height: var(--fs-badge-height);\n\n // O peso óptico da fonte fica ligeiramente abaixo do centro geométrico.\n // Um pixel extra abaixo reposiciona a linha de texto para cima.\n padding: 1px 8px 3px;\n border: 1px solid var(--fs-badge-border);\n border-radius: var(--fs-badge-radius);\n color: var(--fs-badge-color);\n background-color: var(--fs-badge-bg);\n font-size: $font-size-xs;\n font-weight: $font-weight-medium;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n }\n\n @each $name, $color in $theme-colors {\n .fs-badge-#{$name} {\n --fs-badge-color: #{color-contrast($color)};\n --fs-badge-bg: var(--fs-color-#{$name});\n }\n\n .fs-badge-soft-#{$name} {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-#{$name}) 45%, var(--fs-color-text));\n --fs-badge-bg: color-mix(in srgb, var(--fs-color-#{$name}) 14%, transparent);\n --fs-badge-border: color-mix(in srgb, var(--fs-color-#{$name}) 38%, transparent);\n }\n\n .fs-badge-outline-#{$name} {\n --fs-badge-color: color-mix(in srgb, var(--fs-color-#{$name}) 45%, var(--fs-color-text));\n --fs-badge-bg: transparent;\n --fs-badge-border: var(--fs-badge-color);\n }\n }\n\n .fs-badge-sm {\n --fs-badge-height: 18px;\n\n padding: 0 6px 2px;\n font-size: $font-size-xs;\n }\n\n .fs-badge-lg {\n --fs-badge-height: 26px;\n\n padding: 2px 10px 4px;\n font-size: $font-size-md;\n }\n\n .fs-badge-dot::before {\n width: 6px;\n height: 6px;\n flex: 0 0 6px;\n border-radius: 50%;\n background-color: currentcolor;\n transform: translateY(1px);\n content: \"\";\n }\n\n .fs-badge-count {\n min-width: var(--fs-badge-height);\n padding-inline: 6px;\n font-variant-numeric: tabular-nums;\n }\n\n .fs-badge-split {\n --fs-badge-split-label-bg: var(--fs-color-black);\n --fs-badge-split-label-color: var(--fs-color-white);\n --fs-badge-split-value-bg: var(--fs-color-primary);\n --fs-badge-split-value-color: #{color-contrast(map.get($theme-colors, primary))};\n --fs-badge-split-height: 22px;\n --fs-badge-split-radius: 0;\n\n display: inline-flex;\n min-height: var(--fs-badge-split-height);\n overflow: hidden;\n border-radius: var(--fs-badge-split-radius);\n font-size: $font-size-xs;\n font-weight: $font-weight-medium;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n }\n\n .fs-badge-split-label,\n .fs-badge-split-value {\n display: inline-flex;\n align-items: center;\n min-height: var(--fs-badge-split-height);\n padding: 1px 8px 3px;\n }\n\n .fs-badge-split-label {\n color: var(--fs-badge-split-label-color);\n background-color: var(--fs-badge-split-label-bg);\n }\n\n .fs-badge-split-value {\n color: var(--fs-badge-split-value-color);\n background-color: var(--fs-badge-split-value-bg);\n font-variant-numeric: tabular-nums;\n }\n\n @each $name, $color in $theme-colors {\n .fs-badge-split-#{$name} {\n --fs-badge-split-value-bg: var(--fs-color-#{$name});\n --fs-badge-split-value-color: #{color-contrast($color)};\n }\n }\n\n .fs-badge-split.fs-badge-sm {\n --fs-badge-split-height: 18px;\n\n min-height: var(--fs-badge-split-height);\n padding: 0;\n }\n\n .fs-badge-split.fs-badge-lg {\n --fs-badge-split-height: 26px;\n\n min-height: var(--fs-badge-split-height);\n padding: 0;\n font-size: $font-size-md;\n }\n\n .fs-badge-split.fs-badge-sm .fs-badge-split-label,\n .fs-badge-split.fs-badge-sm .fs-badge-split-value {\n padding: 0 6px 2px;\n }\n\n .fs-badge-split.fs-badge-lg .fs-badge-split-label,\n .fs-badge-split.fs-badge-lg .fs-badge-split-value {\n padding: 2px 10px 4px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n@layer components {\n .fs-table {\n width: 100%;\n margin-bottom: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n border-collapse: collapse;\n }\n\n .fs-table th,\n .fs-table td {\n padding: 8px 12px;\n border-bottom: 1px solid var(--fs-color-border);\n text-align: left;\n vertical-align: middle;\n }\n\n .fs-table thead th {\n border-bottom-width: 2px;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n text-transform: uppercase;\n }\n\n .fs-table-striped tbody tr:nth-of-type(odd) {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-table-hover tbody tr:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-table-bordered th,\n .fs-table-bordered td {\n border: 1px solid var(--fs-color-border);\n }\n\n .fs-table-borderless th,\n .fs-table-borderless td {\n border: 0;\n }\n\n @each $name, $color in $theme-colors {\n .fs-table-#{$name} {\n background-color: var(--fs-alert-#{$name}-bg);\n color: var(--fs-alert-#{$name}-text);\n }\n }\n\n .fs-table-sm th,\n .fs-table-sm td {\n padding: 4px 8px;\n }\n\n .fs-table-responsive {\n overflow-x: auto;\n }\n\n .fs-table-caption {\n caption-side: top;\n padding: var(--fs-space-2) 0;\n color: var(--fs-color-muted);\n text-align: start;\n }\n\n .fs-table-empty {\n padding: var(--fs-space-5);\n color: var(--fs-color-muted);\n text-align: center;\n }\n\n @media (width < 640px) {\n .fs-table-priority th:nth-child(n + 4),\n .fs-table-priority td:nth-child(n + 4) {\n display: none;\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-navbar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n padding: 12px 16px;\n border-bottom: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-surface);\n }\n\n .fs-navbar-brand {\n color: var(--fs-color-text);\n font-size: $font-size-lg;\n font-weight: $font-weight-medium;\n text-decoration: none;\n }\n\n .fs-navbar-nav {\n display: flex;\n align-items: center;\n gap: 4px;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .fs-navbar-toggler {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 44px;\n min-height: 44px;\n padding: 8px;\n color: var(--fs-color-text);\n background: transparent;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-sm);\n cursor: pointer;\n }\n\n .fs-navbar-collapse {\n flex-basis: 100%;\n width: 100%;\n }\n\n .fs-navbar-collapse:not(.is-open) {\n display: none;\n }\n\n .fs-navbar-collapse.is-open .fs-navbar-nav {\n flex-direction: column;\n align-items: stretch;\n }\n\n @media (width >= 768px) {\n .fs-navbar-toggler {\n display: none;\n }\n\n .fs-navbar-collapse,\n .fs-navbar-collapse:not(.is-open),\n .fs-navbar-collapse[hidden] {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: flex-end;\n width: auto;\n }\n\n .fs-navbar-collapse .fs-navbar-nav {\n flex-direction: row;\n }\n }\n\n .fs-nav-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n text-decoration: none;\n transition: background-color 0.15s ease-in-out;\n }\n\n .fs-nav-link:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-nav-link:focus-visible {\n @include focus-ring;\n }\n\n .fs-nav-link.is-active {\n color: var(--fs-alert-primary-text);\n font-weight: $font-weight-medium;\n }\n\n .fs-nav-link.is-disabled {\n color: var(--fs-color-muted);\n pointer-events: none;\n }\n}\n","@layer components {\n // Wrapper posicionador do input — a listbox (`.fs-dropdown-menu`, mesma\n // classe do Dropdown/Select) é reanexada a `document.body` pelo JS e\n // posicionada via `core/positioning.js`; o wrapper só existe pra manter\n // o layout inline do input no fluxo normal do documento.\n .fs-combobox {\n position: relative;\n display: inline-flex;\n width: 100%;\n }\n\n .fs-combobox-listbox {\n overflow-y: auto;\n max-height: 240px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n // Ajusta o indicador nativo de <input type=\"date\">/<input type=\"time\">\n // no tema escuro — por padrão o navegador desenha um ícone escuro fixo\n // (chrome do SO, não estilizável via token), que fica invisível sobre\n // --fs-color-surface escuro sem essa correção.\n [data-theme=\"dark\"] .fs-form-control[type=\"date\"]::-webkit-calendar-picker-indicator,\n [data-theme=\"dark\"] .fs-form-control[type=\"time\"]::-webkit-calendar-picker-indicator {\n filter: invert(1);\n }\n\n .fs-datepicker {\n position: relative;\n display: inline-flex;\n width: 100%;\n }\n\n .fs-datepicker-panel {\n display: none;\n width: min(280px, calc(100vw - 2 * var(--fs-space-3)));\n padding: 12px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n z-index: var(--fs-z-dropdown);\n }\n\n .fs-datepicker-panel.is-open {\n display: block;\n }\n\n .fs-datepicker-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n }\n\n .fs-datepicker-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 border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: $font-size-md;\n cursor: pointer;\n }\n\n .fs-datepicker-nav:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-datepicker-nav:focus-visible {\n @include focus-ring;\n }\n\n .fs-datepicker-title {\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n text-transform: capitalize;\n }\n\n .fs-datepicker-grid {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .fs-datepicker-weekdays,\n .fs-datepicker-week {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 2px;\n }\n\n .fs-datepicker-weekday {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 28px;\n color: var(--fs-color-muted);\n font-size: $font-size-xs;\n font-weight: $font-weight-medium;\n text-align: center;\n text-transform: uppercase;\n }\n\n .fs-datepicker-day {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n border: none;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: $font-size-sm;\n cursor: pointer;\n }\n\n .fs-datepicker-day:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-datepicker-day:focus-visible {\n @include focus-ring;\n }\n\n .fs-datepicker-day.is-outside {\n color: var(--fs-color-muted);\n }\n\n .fs-datepicker-day.is-today {\n font-weight: $font-weight-semibold;\n box-shadow: inset 0 0 0 1px var(--fs-color-primary);\n }\n\n .fs-datepicker-day.is-selected {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n\n .fs-datepicker-day:disabled {\n color: var(--fs-color-muted);\n pointer-events: none;\n opacity: 0.4;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Diálogo do Command Palette (`js/command-palette.js`). Os itens da lista\n// reusam `.fs-dropdown-item`/`.is-active`/`.is-disabled` (scss/components/\n// _dropdown.scss) sem duplicação — só o backdrop/diálogo/campo de busca são\n// CSS novo.\n\n@layer components {\n .fs-command-palette {\n position: fixed;\n inset: 0;\n z-index: var(--fs-z-modal);\n display: none;\n align-items: flex-start;\n justify-content: center;\n padding: 72px 16px 16px;\n background-color: rgb(0 0 0 / 50%);\n }\n\n .fs-command-palette.is-open {\n display: flex;\n }\n\n .fs-command-palette-dialog {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 480px;\n max-height: calc(100vh - 88px);\n overflow: hidden;\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-lg);\n }\n\n .fs-command-palette-input {\n width: 100%;\n padding: 16px 20px;\n border: none;\n border-bottom: 1px solid var(--fs-color-border);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: $font-size-lg;\n }\n\n .fs-command-palette-input:focus-visible {\n @include focus-ring;\n }\n\n .fs-command-palette-list {\n margin: 0;\n padding: 6px 0;\n overflow-y: auto;\n list-style: none;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-tree,\n .fs-tree [role=\"group\"] {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .fs-tree [role=\"group\"] {\n padding-left: 20px;\n }\n\n .fs-tree [role=\"treeitem\"] {\n border-radius: var(--fs-radius-sm);\n }\n\n .fs-tree [role=\"treeitem\"]:focus-visible {\n outline: none;\n }\n\n .fs-tree [role=\"treeitem\"]:focus-visible > .fs-tree-label {\n @include focus-ring;\n }\n\n .fs-tree-label {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 8px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n font-size: $font-size-md;\n cursor: pointer;\n user-select: none;\n }\n\n .fs-tree-label:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-tree [role=\"treeitem\"][aria-selected=\"true\"] > .fs-tree-label {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n\n .fs-tree-toggle {\n flex-shrink: 0;\n width: 0;\n height: 0;\n border-top: 4px solid transparent;\n border-bottom: 4px solid transparent;\n border-left: 5px solid currentcolor;\n transition: transform 0.15s ease-in-out;\n }\n\n .fs-tree [role=\"treeitem\"][aria-expanded=\"true\"] > .fs-tree-label > .fs-tree-toggle {\n transform: rotate(90deg);\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-dropdown {\n position: relative;\n display: inline-flex;\n }\n\n // Sem margin-left: `.fs-dropdown-toggle` é sempre usado com `.fs-btn`\n // (ver docs/components/dropdown.md), que já tem `gap` pros filhos —\n // incluindo este `::after`, que conta como item flex do `.fs-btn`.\n .fs-dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n vertical-align: middle;\n content: \"\";\n border-top: 5px solid;\n border-right: 5px solid transparent;\n border-left: 5px solid transparent;\n }\n\n .fs-dropdown-menu {\n position: absolute;\n display: none;\n min-width: 180px;\n margin: 0;\n padding: 6px 0;\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n z-index: var(--fs-z-dropdown);\n }\n\n .fs-dropdown-menu.is-open {\n display: block;\n }\n\n .fs-dropdown-item {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 8px 16px;\n border: 0;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface-raised);\n font-size: $font-size-md;\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n }\n\n .fs-dropdown-item:hover,\n .fs-dropdown-item:focus-visible {\n color: var(--fs-color-text);\n background-color: var(--fs-color-subtle);\n outline: none;\n }\n\n .fs-dropdown-item.is-active {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n\n .fs-dropdown-item.is-disabled {\n color: var(--fs-color-muted);\n pointer-events: none;\n opacity: 0.6;\n }\n\n .fs-dropdown-divider {\n height: 1px;\n margin: 6px 0;\n border: none;\n background-color: var(--fs-color-border);\n }\n\n .fs-dropdown-header {\n padding: 4px 16px;\n color: var(--fs-color-muted);\n font-size: $font-size-xs;\n font-weight: $font-weight-medium;\n text-transform: uppercase;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n@layer components {\n .fs-modal {\n position: fixed;\n inset: 0;\n z-index: var(--fs-z-modal);\n display: none;\n align-items: center;\n justify-content: center;\n padding: var(--fs-space-4);\n background-color: rgb(0 0 0 / 50%);\n }\n\n .fs-modal.is-open {\n display: flex;\n }\n\n .fs-modal-dialog {\n width: 100%;\n max-width: 480px;\n }\n\n .fs-modal-dialog.fs-modal-sm {\n max-width: 320px;\n }\n\n .fs-modal-dialog.fs-modal-lg {\n max-width: 720px;\n }\n\n .fs-modal-dialog.fs-modal-xl {\n max-width: 1140px;\n }\n\n .fs-modal-dialog.fs-modal-fullscreen {\n max-width: none;\n height: 100%;\n }\n\n .fs-modal-content {\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 2 * var(--fs-space-4));\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-lg);\n }\n\n .fs-modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid var(--fs-color-border);\n }\n\n .fs-modal-title {\n margin: 0;\n font-size: $font-size-lg;\n font-weight: $font-weight-medium;\n }\n\n .fs-modal-body {\n padding: 20px;\n overflow-y: auto;\n }\n\n .fs-modal-scrollable .fs-modal-content {\n overflow: hidden;\n }\n\n .fs-modal-scrollable .fs-modal-body {\n overflow-y: auto;\n }\n\n @media (width < 640px) {\n .fs-modal {\n align-items: flex-end;\n padding: 0;\n }\n\n .fs-modal-dialog,\n .fs-modal-dialog.fs-modal-sm,\n .fs-modal-dialog.fs-modal-lg,\n .fs-modal-dialog.fs-modal-xl {\n max-width: none;\n }\n\n .fs-modal-content {\n max-height: calc(100dvh - var(--fs-safe-area-top));\n border-radius: var(--fs-radius-md) var(--fs-radius-md) 0 0;\n }\n }\n\n .fs-modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 16px 20px;\n border-top: 1px solid var(--fs-color-border);\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Alert Dialog / Confirm: variante do Modal (scss/components/_modal.scss) para\n// confirmação, montada dinamicamente por FokusStyles.confirm() (js/confirm.js) —\n// reaproveita .fs-modal/.fs-modal-dialog/.fs-modal-content/.fs-modal-footer sem duplicar\n// layout, só adiciona a mensagem abaixo do título.\n\n@layer components {\n .fs-alert-dialog-message {\n margin: 4px 0 0;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Linha divisória, 100% CSS. `<hr class=\"divider\">` para o traço simples;\n// `<div class=\"divider\">` (não pode ser `<hr>`, que não aceita filhos) com\n// `.fs-divider-label` para o texto centralizado, flanqueado por duas linhas via\n// pseudo-elementos.\n\n@layer components {\n .fs-divider {\n margin: 16px 0;\n border: 0;\n border-top: 1px solid var(--fs-color-border);\n }\n\n .fs-divider:not(hr) {\n display: flex;\n align-items: center;\n border-top: none;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n\n .fs-divider:not(hr)::before,\n .fs-divider:not(hr)::after {\n flex: 1;\n content: \"\";\n border-top: 1px solid var(--fs-color-border);\n }\n\n .fs-divider-label {\n padding: 0 12px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Bloco padrão para listas/telas vazias, 100% CSS. `.fs-empty-state-icon` é um\n// slot vazio (o consumidor põe seu próprio SVG/emoji/ilustração dentro) — ao\n// contrário do ícone do Alert Dialog, aqui não há um conjunto fixo de\n// variantes de estado para gerar via CSS.\n\n@layer components {\n .fs-empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 48px 24px;\n text-align: center;\n }\n\n // `[hidden]` sozinho não bastaria: a regra do user-agent stylesheet\n // perde pra `display: flex` acima (author styles sempre vencem UA\n // styles, mesmo em `@layer`) — sem isso, `.fs-empty-state[hidden]`\n // continua visível (bug real pego no DataTable, que alterna esse\n // atributo em `js/datatable.js`). Mesmo padrão já usado em\n // `.fs-notification-badge[hidden]`/`.fs-notification-empty[hidden]`.\n .fs-empty-state[hidden] {\n display: none;\n }\n\n .fs-empty-state-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 64px;\n height: 64px;\n margin-bottom: 16px;\n border-radius: 50%;\n color: var(--fs-color-muted);\n background-color: var(--fs-color-subtle);\n font-size: 28px;\n }\n\n .fs-empty-state-title {\n margin: 0;\n color: var(--fs-color-text);\n font-size: $font-size-lg;\n font-weight: $font-weight-medium;\n }\n\n .fs-empty-state-text {\n max-width: 360px;\n margin: 4px 0 20px;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Rating / Stars, 100% CSS — mesma técnica de input oculto + label irmão do\n// Segmented Control (scss/components/_segmented-control.scss): um\n// `<input type=\"radio\">` por estrela, exclusivo dentro do grupo. A marcação\n// espera os pares input+label em ordem DECRESCENTE de valor (5, 4, 3...) com\n// `.fs-rating` em `row-reverse`, o truque clássico de CSS pra destacar \"a\n// estrela clicada e todas à esquerda dela\" usando só `~` (combinador de\n// irmãos gerais, que só enxerga o que vem DEPOIS no DOM).\n// A estrela em si é o ícone `star` de `fokus-styles/icons` (`.fs-icon`, outline\n// por padrão) — preenchida (`fill: currentcolor`) só quando selecionada/em\n// hover, pra imitar o glifo sólido que ★ tinha antes sem perder o contorno\n// vazio do estado \"não avaliada\".\n\n@layer components {\n .fs-rating {\n display: inline-flex;\n flex-direction: row-reverse;\n }\n\n .fs-rating-input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n .fs-rating-star {\n display: flex;\n padding: 2px;\n color: var(--fs-color-border);\n font-size: 24px;\n cursor: pointer;\n }\n\n .fs-rating-input:checked ~ .fs-rating-star,\n .fs-rating-star:hover,\n .fs-rating-star:hover ~ .fs-rating-star {\n color: var(--fs-color-warning);\n }\n\n .fs-rating-input:checked ~ .fs-rating-star .fs-icon,\n .fs-rating-star:hover .fs-icon,\n .fs-rating-star:hover ~ .fs-rating-star .fs-icon {\n fill: currentcolor;\n }\n\n .fs-rating-input:focus-visible + .fs-rating-star {\n border-radius: var(--fs-radius-sm);\n outline: 2px solid var(--fs-color-primary);\n outline-offset: 2px;\n }\n\n .fs-rating-input:disabled + .fs-rating-star {\n opacity: 0.5;\n pointer-events: none;\n }\n\n .fs-rating-sm .fs-rating-star {\n font-size: 16px;\n }\n\n .fs-rating-lg .fs-rating-star {\n font-size: 32px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Badge dismissível / Tag: reaproveita `.fs-badge`\n// (scss/components/_badges.scss) e `.fs-btn-close`\n// (scss/components/_buttons.scss) — só ajusta o tamanho do botão de fechar\n// pra caber num badge, que é bem menor que um botão, e o espaçamento entre\n// o texto e o \"x\". O dismiss em si é feito por js/tag.js (FokusStyles.Tag).\n@layer components {\n .fs-tag {\n gap: 0;\n padding: 0 0 0 8px;\n }\n\n // O texto fica em um elemento próprio quando a tag puder ser truncada. A\n // string integral permanece no DOM, portanto continua disponível para AT.\n .fs-tag-label {\n min-width: 0;\n }\n\n .fs-tag-truncate {\n max-inline-size: min(100%, var(--fs-tag-max-inline-size, 20rem));\n }\n\n .fs-tag-truncate .fs-tag-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .fs-tag-icon {\n display: inline-grid;\n width: 12px;\n height: 12px;\n flex: 0 0 12px;\n margin-right: 4px;\n place-items: center;\n }\n\n .fs-tag-icon .fs-icon {\n width: 12px;\n height: 12px;\n stroke: currentcolor;\n }\n\n .fs-tag .fs-btn-close {\n width: calc(var(--fs-badge-height) - 2px);\n height: calc(var(--fs-badge-height) - 2px);\n flex: 0 0 calc(var(--fs-badge-height) - 2px);\n margin-left: 4px;\n border-radius: 0;\n background-color: transparent;\n\n // Herda a cor de texto do badge (contraste automático por variante) em vez\n // do cinza fixo do `.fs-btn-close`, pra o \"x\" ter contraste em qualquer fundo;\n // o `opacity` o deixa discreto sem depender de uma cor fixa.\n color: inherit;\n opacity: 0.7;\n transition: opacity 0.1s ease-in-out, background-color 0.1s ease-in-out, transform 0.1s ease-in-out;\n }\n\n .fs-tag .fs-btn-close::before,\n .fs-tag .fs-btn-close::after {\n top: calc(50% + 1px);\n width: 8px;\n }\n\n .fs-tag .fs-btn-close:hover {\n color: inherit;\n background-color: color-mix(in srgb, currentcolor 18%, transparent);\n opacity: 1;\n }\n\n // Feedback tátil ao clicar (o dismiss em si é assíncrono via evento\n // cancelável fs:tag:dismissed, então o \"afundar\" no clique reforça que a\n // ação registrou mesmo antes do elemento sumir).\n .fs-tag .fs-btn-close:active {\n background-color: color-mix(in srgb, currentcolor 28%, transparent);\n transform: scale(0.9);\n }\n\n // Agrupamento: várias tags lado a lado, quebrando linha sem cortar.\n .fs-tag-group {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n }\n\n // O botão já possui foco próprio; o contorno no contêiner evidencia qual\n // tag será removida, especialmente em grupos densos.\n .fs-tag:focus-within {\n @include focus-ring;\n }\n\n .fs-tag.is-loading,\n .fs-tag[aria-busy=\"true\"] {\n --fs-badge-bg: var(--fs-color-warning);\n --fs-badge-color: var(--fs-color-black);\n --fs-badge-border: transparent;\n\n cursor: progress;\n }\n\n // Usa o spinner do próprio FokusStyles. A classe é opt-in no markup para que o\n // conteúdo de uma tag carregando continue explícito e sem DOM implícito.\n .fs-tag.is-loading .fs-spinner,\n .fs-tag[aria-busy=\"true\"] .fs-spinner {\n width: 12px;\n height: 12px;\n flex: 0 0 12px;\n margin: 0 6px 0 4px;\n border-width: 2px;\n color: var(--fs-color-black);\n }\n\n .fs-tag.is-loading .fs-btn-close,\n .fs-tag[aria-busy=\"true\"] .fs-btn-close {\n display: none;\n }\n\n .fs-tag-group .fs-tag + .fs-tag {\n border-inline-start-color: color-mix(in srgb, currentcolor 24%, transparent);\n }\n\n .fs-tag-group .fs-tag {\n padding-inline-start: calc(var(--fs-badge-height) + 2px);\n transition: background-color 0.1s ease-in-out;\n }\n\n .fs-tag-group .fs-btn-close {\n pointer-events: none;\n opacity: 0;\n }\n\n .fs-tag-group .fs-tag:hover .fs-btn-close,\n .fs-tag-group .fs-tag:focus-within .fs-btn-close {\n pointer-events: auto;\n opacity: 0.7;\n }\n\n .fs-tag-group .fs-tag:hover,\n .fs-tag-group .fs-tag:focus-within {\n background-color: color-mix(in srgb, currentcolor 18%, transparent);\n }\n\n // Um botão de overflow representa as tags não exibidas. A abertura da lista\n // ou popover é responsabilidade da composição que o utiliza.\n .fs-tag-overflow {\n --fs-badge-bg: transparent;\n --fs-badge-color: var(--fs-alert-primary-text);\n --fs-badge-border: transparent;\n\n width: var(--fs-badge-height);\n height: var(--fs-badge-height);\n min-width: var(--fs-badge-height);\n padding: 0;\n border: 0;\n appearance: none;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font: inherit;\n line-height: 0;\n }\n\n .fs-tag-overflow .fs-icon {\n display: block;\n flex: 0 0 13px;\n width: 13px;\n height: 13px;\n stroke: currentcolor;\n }\n\n .fs-tag-overflow:hover,\n .fs-tag-group .fs-tag-overflow:hover {\n background-color: transparent;\n border-color: transparent;\n }\n\n .fs-tag-group .fs-tag-overflow {\n padding-inline-start: 0;\n }\n\n .fs-tag-overflow:focus-visible {\n @include focus-ring;\n }\n\n .fs-tag-group .fs-btn-close:hover {\n color: inherit;\n background-color: transparent;\n opacity: 0.7;\n }\n\n .fs-tag-protected {\n pointer-events: none;\n }\n\n .fs-tag-lock {\n display: inline-grid;\n width: calc(var(--fs-badge-height) - 2px);\n height: calc(var(--fs-badge-height) - 2px);\n margin-left: 4px;\n place-items: center;\n }\n\n .fs-tag-lock svg {\n width: 12px;\n height: 12px;\n stroke: currentcolor;\n stroke-width: 2;\n }\n\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Offcanvas: painel deslizante (fora da viewport por padrão, `.is-open` traz\n// para dentro via transform) + `.fs-offcanvas-backdrop` separado (não fixo\n// junto ao painel, como no Modal, porque o painel não cobre a tela toda —\n// o backdrop escurece o restante). Mesma faixa de z-index do Modal (1050),\n// já que são overlays mutuamente exclusivos.\n\n@layer components {\n .fs-offcanvas {\n position: fixed;\n z-index: var(--fs-z-offcanvas);\n display: flex;\n flex-direction: column;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-lg);\n visibility: hidden;\n transition: transform 0.3s ease, visibility 0.3s ease;\n }\n\n .fs-offcanvas.is-open {\n visibility: visible;\n transform: none;\n }\n\n .fs-offcanvas-start {\n inset: 0 auto 0 0;\n width: 320px;\n transform: translateX(-100%);\n }\n\n .fs-offcanvas-end {\n inset: 0 0 0 auto;\n width: 320px;\n transform: translateX(100%);\n }\n\n .fs-offcanvas-top {\n inset: 0 0 auto;\n height: 40vh;\n transform: translateY(-100%);\n }\n\n .fs-offcanvas-bottom {\n inset: auto 0 0;\n height: 40vh;\n transform: translateY(100%);\n }\n\n .fs-offcanvas-backdrop {\n position: fixed;\n inset: 0;\n z-index: calc(var(--fs-z-offcanvas) - 1);\n background-color: rgb(0 0 0 / 50%);\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.3s ease, visibility 0.3s ease;\n }\n\n .fs-offcanvas-backdrop.is-open {\n visibility: visible;\n opacity: 1;\n }\n\n .fs-offcanvas-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n border-bottom: 1px solid var(--fs-color-border);\n }\n\n .fs-offcanvas-title {\n margin: 0;\n font-size: $font-size-lg;\n font-weight: $font-weight-medium;\n }\n\n .fs-offcanvas-body {\n flex: 1 1 auto;\n padding: 20px;\n overflow-y: auto;\n }\n\n .fs-offcanvas-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 16px 20px;\n border-top: 1px solid var(--fs-color-border);\n }\n\n .fs-offcanvas-responsive {\n width: min(100%, 420px);\n }\n\n @media (width >= 1024px) {\n .fs-offcanvas-lg {\n position: static;\n width: auto;\n height: auto;\n visibility: visible;\n transform: none;\n box-shadow: none;\n }\n\n .fs-offcanvas-lg + .fs-offcanvas-backdrop {\n display: none;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .fs-offcanvas,\n .fs-offcanvas-backdrop {\n transition: none;\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-accordion {\n display: flex;\n flex-direction: column;\n }\n\n .fs-accordion-item {\n overflow: hidden;\n border: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-surface-raised);\n }\n\n .fs-accordion-item + .fs-accordion-item {\n border-top: none;\n }\n\n .fs-accordion-item:first-child {\n border-top-left-radius: var(--fs-radius-md);\n border-top-right-radius: var(--fs-radius-md);\n }\n\n .fs-accordion-item:last-child {\n border-bottom-right-radius: var(--fs-radius-md);\n border-bottom-left-radius: var(--fs-radius-md);\n }\n\n .fs-accordion-flush .fs-accordion-item {\n border-inline: 0;\n border-radius: 0;\n }\n\n .fs-accordion-flush .fs-accordion-item:first-child {\n border-block-start: 0;\n }\n\n .fs-accordion-always-open .fs-accordion-button[aria-expanded=\"true\"]::after {\n transform: rotate(-135deg);\n }\n\n .fs-accordion-header {\n margin: 0;\n }\n\n .fs-accordion-button {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 14px 16px;\n border: none;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n font-size: $font-size-md;\n font-weight: $font-weight-medium;\n text-align: left;\n cursor: pointer;\n }\n\n .fs-accordion-button:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-accordion-button:focus-visible {\n @include focus-ring;\n }\n\n .fs-accordion-button::after {\n flex-shrink: 0;\n width: 8px;\n height: 8px;\n margin-left: 12px;\n content: \"\";\n border-right: 2px solid currentcolor;\n border-bottom: 2px solid currentcolor;\n transform: rotate(45deg);\n transition: transform 0.2s ease-in-out;\n }\n\n .fs-accordion-button[aria-expanded=\"true\"]::after {\n transform: rotate(-135deg);\n }\n\n .fs-accordion-collapse {\n overflow: hidden;\n }\n\n .fs-accordion-body {\n padding: 16px;\n border-top: 1px solid var(--fs-color-border);\n background-color: var(--fs-color-surface-raised);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .fs-accordion-button::after {\n transition: none;\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Três estilos visuais (linha = padrão, pill, depth), mais alinhamento e\n// tamanho — todos modificadores de `.fs-tabs`, reaproveitando `.fs-nav-link`\n// (_navbar.scss) como o item clicável em todos os três, então o HTML e a\n// navegação por teclado (ArrowLeft/ArrowRight/Home/End, `js/tabs.js`) não\n// mudam entre estilos.\n@layer components {\n .fs-tabs {\n display: flex;\n border-bottom: var(--fs-border-width) solid var(--fs-color-border-default);\n }\n\n .fs-tabs .fs-nav-link {\n margin-bottom: -1px;\n border-bottom: 2px solid transparent;\n border-radius: var(--fs-radius-sm) var(--fs-radius-sm) 0 0;\n }\n\n .fs-tabs .fs-nav-link.is-active {\n border-bottom-color: var(--fs-color-primary);\n }\n\n // Pill: sem linha embaixo, cada item vira um \"chip\" com fundo próprio\n // quando ativo — nada de forma circular, só o token de raio padrão.\n .fs-tabs-pill {\n gap: 4px;\n border-bottom: none;\n }\n\n .fs-tabs-pill .fs-nav-link {\n margin-bottom: 0;\n border-bottom: none;\n border-radius: var(--fs-radius-sm);\n }\n\n .fs-tabs-pill .fs-nav-link.is-active {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n\n // Depth: fundo neutro por trás dos itens; o ativo \"sobe\" com borda nos 3\n // lados e fundo igual ao do conteúdo, criando a ilusão de aba de pasta\n // fundida ao painel abaixo (a borda inferior do container fica por baixo\n // do item ativo, escondida pela cor de fundo igual).\n .fs-tabs-depth {\n gap: 2px;\n padding: 4px 4px 0;\n background-color: var(--fs-color-subtle);\n }\n\n .fs-tabs-depth .fs-nav-link {\n margin-bottom: -1px;\n border: 1px solid transparent;\n border-bottom: none;\n border-radius: var(--fs-radius-sm) var(--fs-radius-sm) 0 0;\n }\n\n .fs-tabs-depth .fs-nav-link.is-active {\n border-color: var(--fs-color-border);\n background-color: var(--fs-color-surface);\n }\n\n // Alinhamento dos itens dentro do container (padrão: início/esquerda).\n .fs-tabs-center {\n justify-content: center;\n }\n\n .fs-tabs-right {\n justify-content: flex-end;\n }\n\n .fs-tabs-fill .fs-nav-link {\n flex: 1;\n justify-content: center;\n text-align: center;\n }\n\n // Tamanhos — mesma escala sm/lg dos outros componentes.\n .fs-tabs-sm .fs-nav-link {\n padding: 6px 10px;\n font-size: $font-size-sm;\n }\n\n .fs-tabs-lg .fs-nav-link {\n padding: 10px 16px;\n font-size: $font-size-lg;\n }\n\n .fs-tab-content > .fs-tab-pane {\n display: none;\n }\n\n .fs-tab-content > .fs-tab-pane.is-active {\n display: block;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n@layer components {\n .fs-tooltip {\n position: absolute;\n z-index: var(--fs-z-tooltip);\n display: none;\n max-width: 220px;\n }\n\n .fs-tooltip.is-open {\n display: block;\n }\n\n .fs-tooltip-inner {\n padding: 6px 10px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-tooltip-text);\n background-color: var(--fs-tooltip-bg);\n font-size: $font-size-xs;\n text-align: center;\n }\n\n .fs-tooltip-arrow {\n position: absolute;\n width: 8px;\n height: 8px;\n background-color: var(--fs-tooltip-bg);\n transform: rotate(45deg);\n }\n\n .fs-tooltip[data-placement=\"top\"] .fs-tooltip-arrow {\n bottom: -4px;\n left: 50%;\n margin-left: -4px;\n }\n\n .fs-tooltip[data-placement=\"bottom\"] .fs-tooltip-arrow {\n top: -4px;\n left: 50%;\n margin-left: -4px;\n }\n\n .fs-tooltip[data-placement=\"left\"] .fs-tooltip-arrow {\n top: 50%;\n right: -4px;\n margin-top: -4px;\n }\n\n .fs-tooltip[data-placement=\"right\"] .fs-tooltip-arrow {\n top: 50%;\n left: -4px;\n margin-top: -4px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Popover: painel flutuante com conteúdo rico (header/body/footer),\n// posicionado como o Tooltip (mesma técnica de seta rotacionada 45°), mas com\n// aparência de card de superfície em vez do chip escuro do tooltip — porque\n// pode conter elementos interativos. z-index entre o Dropdown (1000) e o\n// Tooltip (1080), para um tooltip aplicado a um gatilho de popover ainda\n// vencer visualmente.\n\n@layer components {\n .fs-popover {\n position: absolute;\n z-index: var(--fs-z-offcanvas);\n display: none;\n max-width: 280px;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n box-shadow: var(--fs-shadow-md);\n }\n\n .fs-popover.is-open {\n display: block;\n }\n\n .fs-popover-header {\n padding: 10px 14px;\n background-color: var(--fs-color-subtle);\n border-bottom: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md) var(--fs-radius-md) 0 0;\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n }\n\n .fs-popover-body {\n padding: 14px;\n font-size: $font-size-sm;\n }\n\n .fs-popover-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 10px 14px;\n border-top: 1px solid var(--fs-color-border);\n }\n\n .fs-popover-arrow {\n position: absolute;\n width: 8px;\n height: 8px;\n background-color: var(--fs-color-surface);\n border: 1px solid var(--fs-color-border);\n transform: rotate(45deg);\n }\n\n .fs-popover[data-placement=\"top\"] .fs-popover-arrow {\n bottom: -5px;\n left: 50%;\n margin-left: -4px;\n border-top: 0;\n border-left: 0;\n }\n\n .fs-popover[data-placement=\"bottom\"] .fs-popover-arrow {\n top: -5px;\n left: 50%;\n margin-left: -4px;\n border-right: 0;\n border-bottom: 0;\n }\n\n .fs-popover[data-placement=\"left\"] .fs-popover-arrow {\n top: 50%;\n right: -5px;\n margin-top: -4px;\n border-bottom: 0;\n border-left: 0;\n }\n\n .fs-popover[data-placement=\"right\"] .fs-popover-arrow {\n top: 50%;\n left: -5px;\n margin-top: -4px;\n border-top: 0;\n border-right: 0;\n }\n\n // Hover Card: não é um componente novo — composição do Popover com\n // `data-trigger=\"hover\"` (já suportado por js/popover.js) e conteúdo mais\n // rico (ex. avatar + bio). Este modificador só alarga um pouco o popover e\n // alinha um layout de linha (avatar ao lado do texto) no corpo.\n .fs-popover-hover-card {\n max-width: 320px;\n }\n\n .fs-popover-hover-card .fs-popover-body {\n display: flex;\n gap: 12px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n@layer components {\n .fs-toast-container {\n position: fixed;\n right: 16px;\n bottom: 16px;\n z-index: var(--fs-z-toast);\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: min(360px, 100%);\n max-width: calc(100vw - 2 * var(--fs-space-3));\n }\n\n .fs-toast {\n display: flex;\n overflow: hidden;\n flex-direction: column;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n }\n\n .fs-toast-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n border-bottom: 1px solid var(--fs-color-border);\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n }\n\n .fs-toast-body {\n padding: 12px;\n font-size: $font-size-sm;\n }\n\n @each $name, $color in $theme-colors {\n .fs-toast-#{$name} .fs-toast-header {\n color: var(--fs-alert-#{$name}-text);\n background-color: var(--fs-alert-#{$name}-bg);\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-pagination {\n display: flex;\n gap: 0.25rem;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .fs-pagination-scroll {\n max-width: 100%;\n overflow-x: auto;\n padding-block: 2px;\n }\n\n .fs-pagination-scroll .fs-pagination {\n width: max-content;\n }\n\n .fs-page-link {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n height: 32px;\n padding: 0 8px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n text-decoration: none;\n transition: background-color 0.15s ease-in-out;\n }\n\n .fs-page-link:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-page-link:focus-visible {\n @include focus-ring;\n }\n\n .fs-page-item.is-active .fs-page-link {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n border-color: var(--fs-color-primary);\n }\n\n .fs-page-item.is-disabled .fs-page-link {\n color: var(--fs-color-muted);\n opacity: 0.6;\n pointer-events: none;\n }\n\n // Bordered: itens colados (sem gap), borda contínua fundida (técnica do\n // Input Group — margin negativo + z-index no item ativo/hover), cantos\n // arredondados só nas pontas.\n .fs-pagination-bordered {\n gap: 0;\n }\n\n .fs-pagination-bordered .fs-page-link {\n border-radius: 0;\n }\n\n .fs-pagination-bordered .fs-page-item:not(:first-child) .fs-page-link {\n margin-left: -1px;\n }\n\n .fs-pagination-bordered .fs-page-item:first-child .fs-page-link {\n border-top-left-radius: var(--fs-radius-sm);\n border-bottom-left-radius: var(--fs-radius-sm);\n }\n\n .fs-pagination-bordered .fs-page-item:last-child .fs-page-link {\n border-top-right-radius: var(--fs-radius-sm);\n border-bottom-right-radius: var(--fs-radius-sm);\n }\n\n .fs-pagination-bordered .fs-page-link:hover,\n .fs-pagination-bordered .fs-page-item.is-active .fs-page-link {\n position: relative;\n z-index: 1;\n }\n\n // Compacta / grande — mesma escala sm/lg dos outros componentes.\n .fs-pagination-sm .fs-page-link {\n min-width: 26px;\n height: 26px;\n padding: 0 6px;\n font-size: $font-size-xs;\n }\n\n .fs-pagination-lg .fs-page-link {\n min-width: 40px;\n height: 40px;\n padding: 0 12px;\n font-size: $font-size-md;\n }\n\n // Prev/next descritivo: item com ícone + texto (\"Anterior\"/\"Próxima\") em\n // vez de só \"«\"/\"»\" — `.fs-page-link` já acomoda largura variável\n // (min-width é piso, não teto); só falta o espaçamento entre ícone e texto.\n .fs-page-link-text {\n gap: 6px;\n padding: 0 14px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-breadcrumb {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 4px;\n margin: 0;\n padding: 0;\n list-style: none;\n font-size: $font-size-sm;\n }\n\n .fs-breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--fs-color-muted);\n }\n\n .fs-breadcrumb-item + .fs-breadcrumb-item::before {\n color: var(--fs-color-muted);\n content: \"/\";\n }\n\n .fs-breadcrumb-item a {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: var(--fs-alert-primary-text);\n text-decoration: none;\n }\n\n .fs-breadcrumb-item a:hover {\n text-decoration: underline;\n }\n\n .fs-breadcrumb-item.is-active {\n color: var(--fs-color-text);\n }\n\n // Breadcrumb avançado (js/breadcrumb.js): trunca labels longos com reticências\n // (tooltip com o texto completo é anexado via js/tooltip.js só quando o texto\n // realmente transborda) e, em telas pequenas, recolhe os níveis\n // intermediários num único item \"…\" que abre um dropdown (js/dropdown.js)\n // com os links ocultos.\n .fs-breadcrumb-item-truncate {\n display: inline-block;\n max-width: 160px;\n vertical-align: bottom;\n\n @include truncate;\n }\n\n .fs-breadcrumb-more {\n padding: 0;\n border: none;\n color: var(--fs-color-muted);\n background-color: var(--fs-color-surface-raised);\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n cursor: pointer;\n }\n\n .fs-breadcrumb-more:hover {\n color: var(--fs-color-text);\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n@layer components {\n .fs-spinner {\n --fs-spinner-size: 20px;\n --fs-spinner-stroke: 2px;\n --fs-spinner-duration: 0.8s;\n\n display: inline-block;\n box-sizing: border-box;\n width: var(--fs-spinner-size);\n height: var(--fs-spinner-size);\n vertical-align: middle;\n border: var(--fs-spinner-stroke) solid color-mix(in srgb, currentcolor 20%, transparent);\n border-top-color: currentcolor;\n border-radius: 50%;\n animation: fokus-spin var(--fs-spinner-duration) linear infinite;\n will-change: transform;\n }\n\n .fs-spinner-sm {\n --fs-spinner-size: 14px;\n --fs-spinner-stroke: 2px;\n }\n\n .fs-spinner-lg {\n --fs-spinner-size: 32px;\n --fs-spinner-stroke: 3px;\n }\n\n @each $name, $color in $theme-colors {\n .fs-spinner-#{$name} {\n color: var(--fs-color-#{$name});\n }\n }\n\n @keyframes fokus-spin { to { transform: rotate(360deg); } }\n\n .fs-progress {\n --fs-progress-height: 8px;\n --fs-progress-track: var(--fs-color-subtle);\n --fs-progress-radius: 0;\n\n position: relative;\n display: flex;\n height: var(--fs-progress-height);\n overflow: hidden;\n background-color: var(--fs-progress-track);\n border-radius: var(--fs-progress-radius);\n }\n\n .fs-progress-bar {\n --fs-progress-bar-bg: var(--fs-color-primary);\n --fs-progress-color: var(--fs-color-on-primary);\n\n display: flex;\n align-items: center;\n justify-content: center;\n width: calc(var(--fs-progress-value, 0) * 1%);\n height: 100%;\n min-width: 0;\n overflow: hidden;\n color: var(--fs-progress-color);\n background-color: var(--fs-progress-bar-bg);\n font-size: 0;\n line-height: 1;\n text-overflow: ellipsis;\n white-space: nowrap;\n transition: width 0.25s ease-out;\n }\n\n @each $name, $color in $theme-colors {\n .fs-progress-bar-#{$name} {\n --fs-progress-bar-bg: var(--fs-color-#{$name});\n --fs-progress-color: #{color-contrast($color)};\n }\n }\n\n .fs-spinner[data-fs-loading=\"false\"] {\n display: none;\n }\n\n .fs-progress-sm {\n --fs-progress-height: 4px;\n }\n\n .fs-progress-lg {\n --fs-progress-height: 16px;\n }\n\n .fs-progress-lg .fs-progress-bar {\n padding-inline: 6px;\n font-size: $font-size-xs;\n }\n\n .fs-progress-meta {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 12px;\n max-width: 480px;\n margin-bottom: 6px;\n color: var(--fs-color-text);\n font-size: $font-size-sm;\n }\n\n .fs-progress-value {\n color: var(--fs-color-muted);\n font-variant-numeric: tabular-nums;\n }\n\n .fs-progress-indeterminate .fs-progress-bar {\n width: 36%;\n animation: fokus-progress-indeterminate 1.25s ease-in-out infinite;\n }\n\n .fs-progress-indeterminate {\n --fs-progress-track: color-mix(in srgb, var(--fs-color-primary) 18%, transparent);\n }\n\n @keyframes fokus-progress-indeterminate { from { transform: translateX(-110%); } to { transform: translateX(290%); } }\n\n .fs-progress-complete .fs-progress-bar {\n --fs-progress-bar-bg: var(--fs-color-success);\n --fs-progress-color: #{color-contrast($fokus-color-success)};\n }\n\n .fs-progress-error .fs-progress-bar {\n --fs-progress-bar-bg: var(--fs-color-danger);\n --fs-progress-color: #{color-contrast($fokus-color-danger)};\n }\n\n .fs-progress-status {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n margin-top: 6px;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n\n .fs-progress-status-icon {\n display: inline-grid;\n width: 14px;\n height: 14px;\n place-items: center;\n color: var(--fs-alert-success-text);\n }\n\n .fs-progress-status-icon .fs-icon {\n width: 14px;\n height: 14px;\n stroke: currentcolor;\n }\n\n .fs-progress-status-danger,\n .fs-progress-error + .fs-progress-status {\n color: var(--fs-alert-danger-text);\n }\n\n .fs-progress-marker {\n position: absolute;\n z-index: 1;\n top: 0;\n bottom: 0;\n left: calc(var(--fs-progress-marker-value) * 1%);\n width: 2px;\n background-color: var(--fs-color-text);\n pointer-events: none;\n transform: translateX(-1px);\n }\n\n .fs-progress-minimum .fs-progress-bar {\n width: max(calc(var(--fs-progress-value, 0) * 1%), 4px);\n }\n\n .fs-progress-bar-striped {\n background-image: linear-gradient(45deg, color-mix(in srgb, currentcolor 16%, transparent) 25%, transparent 25%, transparent 50%, color-mix(in srgb, currentcolor 16%, transparent) 50%, color-mix(in srgb, currentcolor 16%, transparent) 75%, transparent 75%, transparent);\n background-size: 16px 16px;\n }\n .fs-progress-bar-animated { animation: fokus-progress-stripes 1s linear infinite; }\n\n @keyframes fokus-progress-stripes { from { background-position: 16px 0; } to { background-position: 0 0; } }\n\n @media (prefers-reduced-motion: reduce) {\n .fs-spinner {\n --fs-spinner-duration: 1.5s;\n }\n\n .fs-progress-bar-animated {\n animation-duration: 1.5s;\n }\n\n .fs-progress-indeterminate .fs-progress-bar {\n animation-duration: 1.8s;\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n@use \"sass:map\";\n\n@layer components {\n .fs-carousel {\n --fs-carousel-radius: var(--fs-radius-md);\n --fs-carousel-transition-duration: var(--fs-transition-normal);\n --fs-carousel-transition-easing: var(--fs-ease-standard);\n --fs-carousel-control-size: 44px;\n --fs-carousel-control-inset: var(--fs-space-2);\n --fs-carousel-control-gap: var(--fs-space-1);\n --fs-carousel-control-color: var(--fs-color-white);\n --fs-carousel-control-paused-color: var(--fs-color-warning);\n --fs-carousel-control-bg: rgb(15 23 42 / 72%);\n --fs-carousel-control-bg-hover: rgb(15 23 42 / 88%);\n --fs-carousel-focus-color: var(--fs-color-white);\n --fs-carousel-indicator-size: 8px;\n --fs-carousel-indicator-active-width: 24px;\n --fs-carousel-indicator-color: rgb(255 255 255 / 62%);\n --fs-carousel-indicator-active-color: var(--fs-color-white);\n --fs-carousel-caption-scrim: rgb(15 23 42 / 78%);\n --fs-carousel-top-safe-area: calc(var(--fs-carousel-control-size) + (var(--fs-carousel-control-inset) * 2));\n --fs-carousel-bottom-safe-area: calc(32px + var(--fs-space-2) + 24px);\n --fs-carousel-progress-height: 3px;\n\n position: relative;\n overflow: hidden;\n border-radius: var(--fs-carousel-radius);\n }\n\n .fs-carousel::before {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(var(--fs-carousel-control-size) + (var(--fs-carousel-control-inset) * 2));\n pointer-events: none;\n content: \"\";\n background: linear-gradient(to bottom, rgb(15 23 42 / 76%), rgb(15 23 42 / 32%));\n opacity: 0;\n transition: opacity var(--fs-transition-fast) var(--fs-ease-standard);\n }\n\n .fs-carousel-inner {\n display: flex;\n transition: transform var(--fs-carousel-transition-duration) var(--fs-carousel-transition-easing);\n }\n\n .fs-carousel-item {\n position: relative;\n flex: 0 0 100%;\n width: 100%;\n }\n\n .fs-carousel-item img {\n display: block;\n width: 100%;\n }\n\n .fs-carousel.is-dragging .fs-carousel-inner {\n cursor: grabbing;\n transition: none;\n user-select: none;\n }\n\n .fs-carousel:not(.is-static) .fs-carousel-inner {\n cursor: grab;\n touch-action: pan-y;\n }\n\n .fs-carousel-fade .fs-carousel-inner {\n display: block;\n transform: none;\n }\n\n .fs-carousel-fade .fs-carousel-item {\n position: absolute;\n inset: 0;\n opacity: 0;\n transition: opacity var(--fs-carousel-transition-duration) var(--fs-carousel-transition-easing);\n }\n\n .fs-carousel-fade .fs-carousel-item.is-active {\n position: relative;\n opacity: 1;\n }\n\n .fs-carousel-control-prev,\n .fs-carousel-control-next,\n .fs-carousel-control-toggle {\n position: absolute;\n top: var(--fs-carousel-control-inset);\n z-index: 2;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--fs-carousel-control-size);\n height: var(--fs-carousel-control-size);\n padding: 0;\n color: var(--fs-carousel-control-color);\n background-color: transparent;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 18px 18px;\n border: 0;\n border-radius: 0;\n cursor: pointer;\n opacity: 0;\n transition: background-color var(--fs-transition-fast) var(--fs-ease-standard),\n opacity var(--fs-transition-fast) var(--fs-ease-standard),\n transform var(--fs-transition-fast) var(--fs-ease-standard);\n }\n\n .fs-carousel-control-prev,\n .fs-carousel-control-next {\n transform: none;\n }\n\n .fs-carousel-control-prev {\n left: var(--fs-carousel-control-inset);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4 6 9l5 5'/%3E%3C/svg%3E\");\n }\n\n .fs-carousel-control-next {\n left: calc(var(--fs-carousel-control-inset) + var(--fs-carousel-control-size) + var(--fs-carousel-control-gap));\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 4 5 5-5 5'/%3E%3C/svg%3E\");\n }\n\n .fs-carousel-control-toggle {\n left: calc(var(--fs-carousel-control-inset) + var(--fs-carousel-control-size) + var(--fs-carousel-control-gap));\n }\n\n .fs-carousel:has(.fs-carousel-control-toggle) .fs-carousel-control-next {\n left: calc(var(--fs-carousel-control-inset) + ((var(--fs-carousel-control-size) + var(--fs-carousel-control-gap)) * 2));\n }\n\n .fs-carousel-control-toggle[aria-pressed=\"true\"] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 5v8M11 5v8'/%3E%3C/svg%3E\");\n }\n\n .fs-carousel-control-toggle[aria-pressed=\"false\"] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23ffffff'%3E%3Cpath d='m7 4 7 5-7 5z'/%3E%3C/svg%3E\");\n }\n\n .fs-carousel.is-autoplay-paused .fs-carousel-control-toggle[aria-pressed=\"true\"] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23f0b40e' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 5v8M11 5v8'/%3E%3C/svg%3E\");\n }\n\n .fs-carousel.is-autoplay-paused .fs-carousel-control-toggle[aria-pressed=\"false\"] {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='%23f0b40e'%3E%3Cpath d='m7 4 7 5-7 5z'/%3E%3C/svg%3E\");\n }\n\n .fs-carousel-control-prev:hover,\n .fs-carousel-control-next:hover,\n .fs-carousel-control-toggle:hover {\n background-color: var(--fs-carousel-control-bg-hover);\n }\n\n .fs-carousel-control-prev:active,\n .fs-carousel-control-next:active,\n .fs-carousel-control-toggle:active {\n transform: scale(0.94);\n }\n\n .fs-carousel-control-prev:focus-visible,\n .fs-carousel-control-next:focus-visible,\n .fs-carousel-control-toggle:focus-visible,\n .fs-carousel-indicators button:focus-visible {\n @include focus-ring(var(--fs-carousel-focus-color));\n }\n\n .fs-carousel:hover .fs-carousel-control-prev,\n .fs-carousel:hover .fs-carousel-control-next,\n .fs-carousel:hover .fs-carousel-control-toggle,\n .fs-carousel:focus-within .fs-carousel-control-prev,\n .fs-carousel:focus-within .fs-carousel-control-next,\n .fs-carousel:focus-within .fs-carousel-control-toggle {\n opacity: 1;\n }\n\n .fs-carousel:hover::before,\n .fs-carousel:focus-within::before {\n opacity: 1;\n }\n\n .fs-carousel-indicators {\n position: absolute;\n right: 0;\n bottom: var(--fs-space-2);\n left: 0;\n z-index: 1;\n display: flex;\n justify-content: center;\n gap: 0;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .fs-carousel-indicators button {\n position: relative;\n display: grid;\n width: 28px;\n height: 32px;\n padding: 0;\n place-items: center;\n background: transparent;\n border: 0;\n cursor: pointer;\n }\n\n .fs-carousel-indicators button::before {\n width: var(--fs-carousel-indicator-size);\n height: var(--fs-carousel-indicator-size);\n content: \"\";\n background-color: var(--fs-carousel-indicator-color);\n border-radius: var(--fs-radius-lg);\n transition: width var(--fs-transition-fast) var(--fs-ease-standard),\n background-color var(--fs-transition-fast) var(--fs-ease-standard);\n }\n\n .fs-carousel-indicators button.is-active::before {\n width: var(--fs-carousel-indicator-active-width);\n background-color: var(--fs-carousel-indicator-active-color);\n }\n\n .fs-carousel-caption {\n position: absolute;\n right: 0;\n bottom: var(--fs-carousel-bottom-safe-area);\n left: 0;\n z-index: 1;\n box-sizing: border-box;\n max-width: min(100%, 42rem);\n max-block-size: calc(100% - var(--fs-carousel-top-safe-area) - var(--fs-carousel-bottom-safe-area));\n isolation: isolate;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--fs-space-2);\n padding: calc(var(--fs-space-4) + 20px) var(--fs-space-4) var(--fs-space-3);\n color: var(--fs-color-white);\n }\n\n .fs-carousel-caption::before {\n position: absolute;\n top: 0;\n right: 0;\n bottom: calc(var(--fs-carousel-bottom-safe-area) * -1);\n left: 0;\n z-index: -1;\n content: \"\";\n background: linear-gradient(to top, var(--fs-carousel-caption-scrim), transparent);\n }\n\n .fs-carousel-caption > * {\n margin: 0;\n }\n\n .fs-carousel-caption .fs-btn {\n --fs-btn-color: var(--fs-color-text-primary);\n --fs-btn-bg: var(--fs-color-white);\n --fs-btn-border-color: var(--fs-color-white);\n --fs-btn-hover-bg: var(--fs-color-subtle);\n --fs-btn-active-bg: var(--fs-color-border-default);\n }\n\n .fs-carousel-caption-side .fs-carousel-caption {\n top: var(--fs-carousel-top-safe-area);\n right: 0;\n bottom: 0;\n left: auto;\n width: min(42%, 28rem);\n max-width: none;\n max-block-size: none;\n padding: var(--fs-space-4) var(--fs-space-4)\n calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-2));\n background: rgb(15 23 42 / 84%);\n }\n\n // A legenda lateral fica à direita por padrão. Esta variação permite\n // preservar o assunto principal da imagem quando ele estiver à direita.\n .fs-carousel-caption-side .fs-carousel-caption-start {\n right: auto;\n left: 0;\n }\n\n .fs-carousel-caption-side .fs-carousel-caption::before,\n .fs-carousel-caption-stacked .fs-carousel-caption::before {\n display: none;\n }\n\n .fs-carousel-caption-stacked {\n --fs-carousel-bottom-safe-area: 0px;\n }\n\n .fs-carousel-caption-stacked .fs-carousel-caption {\n position: static;\n max-width: none;\n max-block-size: none;\n overflow: visible;\n padding: var(--fs-space-4);\n color: var(--fs-color-text-primary);\n background: var(--fs-color-bg-surface);\n }\n\n .fs-carousel-caption-stacked .fs-carousel-indicators {\n position: relative;\n bottom: auto;\n background: var(--fs-color-bg-surface);\n }\n\n .fs-carousel-counter {\n position: absolute;\n right: var(--fs-space-3);\n bottom: var(--fs-space-2);\n z-index: 2;\n color: var(--fs-color-white);\n font-size: $font-size-sm;\n font-variant-numeric: tabular-nums;\n }\n\n .fs-carousel-progress {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n height: var(--fs-carousel-progress-height);\n overflow: hidden;\n background-color: rgb(255 255 255 / 24%);\n }\n\n .fs-carousel-progress > span {\n display: block;\n width: 100%;\n height: 100%;\n background-color: var(--fs-color-white);\n transform: scaleX(0);\n transform-origin: left;\n }\n\n .fs-carousel-progress.is-running > span {\n animation: fs-carousel-progress var(--fs-carousel-progress-duration, 5000ms) linear forwards;\n }\n\n .fs-carousel.is-two-slides.fs-carousel-hide-indicators-two .fs-carousel-indicators {\n display: none;\n }\n\n .fs-carousel-no-media .fs-carousel-item {\n min-block-size: 15rem;\n background-color: var(--fs-color-bg-surface);\n border: var(--fs-border-width) solid var(--fs-color-border-default);\n }\n\n .fs-carousel-no-media .fs-carousel-counter {\n color: var(--fs-color-text-muted);\n }\n\n .fs-carousel-no-media .fs-carousel-progress {\n background-color: var(--fs-color-border-default);\n }\n\n .fs-carousel-no-media .fs-carousel-progress > span {\n background-color: var(--fs-color-action-primary);\n }\n\n .fs-carousel-media-placeholder {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n min-height: inherit;\n padding: calc(var(--fs-carousel-top-safe-area) + var(--fs-space-4)) var(--fs-space-4)\n calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-4));\n }\n\n .fs-carousel-media-placeholder > * {\n max-width: 36rem;\n margin: 0;\n }\n\n .fs-carousel-media-placeholder > * + * {\n margin-top: var(--fs-space-2);\n }\n\n .fs-carousel-media {\n min-block-size: 18rem;\n background-position: center;\n background-size: cover;\n }\n\n .fs-carousel.is-static .fs-carousel-control-prev,\n .fs-carousel.is-static .fs-carousel-control-next,\n .fs-carousel.is-static .fs-carousel-control-toggle,\n .fs-carousel.is-static .fs-carousel-indicators {\n display: none;\n }\n\n @media (max-width: map.get($breakpoints, sm) - 1px) {\n .fs-carousel {\n --fs-carousel-control-inset: var(--fs-space-1);\n }\n\n .fs-carousel-caption {\n padding: calc(var(--fs-space-3) + 20px) var(--fs-space-3) var(--fs-space-3);\n }\n\n .fs-carousel-caption-side .fs-carousel-caption {\n top: auto;\n bottom: var(--fs-carousel-bottom-safe-area);\n width: auto;\n max-block-size: calc(100% - var(--fs-carousel-top-safe-area) - var(--fs-carousel-bottom-safe-area));\n overflow: clip;\n align-items: flex-end;\n padding: calc(var(--fs-space-3) + 20px) var(--fs-space-3)\n calc(var(--fs-carousel-bottom-safe-area) + var(--fs-space-2));\n text-align: end;\n background: transparent;\n }\n\n .fs-carousel-caption-side .fs-carousel-caption-start {\n right: 0;\n left: 0;\n align-items: flex-start;\n text-align: start;\n }\n\n .fs-carousel-caption-side .fs-carousel-item::after {\n position: absolute;\n inset: 0;\n z-index: 0;\n pointer-events: none;\n content: \"\";\n background: linear-gradient(\n to top,\n var(--fs-carousel-caption-scrim) 0%,\n rgb(15 23 42 / 52%) 56%,\n transparent 100%\n );\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .fs-carousel-inner,\n .fs-carousel-fade .fs-carousel-item,\n .fs-carousel-control-prev,\n .fs-carousel-control-next,\n .fs-carousel-control-toggle,\n .fs-carousel-indicators button::before,\n .fs-carousel-progress.is-running > span {\n transition: none;\n animation: none;\n transform: scaleX(1);\n }\n }\n\n @keyframes fs-carousel-progress {\n to {\n transform: scaleX(1);\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Stepper / Wizard. Cabeçalho com os passos (`.fs-step`) e, opcionalmente, painéis\n// de conteúdo (`.fs-step-panel`) e ações de navegação (`.fs-stepper-actions`).\n// Estados por passo: padrão (pendente), `.fs-step-active`, `.fs-step-completed`,\n// `.fs-step-error` — controlados por `js/stepper.js`.\n\n@layer components {\n .fs-stepper-header {\n display: flex;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .fs-step {\n position: relative;\n display: flex;\n flex: 1 1 0;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n text-align: center;\n }\n\n .fs-step-indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: var(--fs-color-muted);\n background-color: var(--fs-color-surface);\n border: 2px solid var(--fs-color-border);\n border-radius: 50%;\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n }\n\n .fs-step-label {\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n }\n\n .fs-step-description {\n color: var(--fs-color-muted);\n font-size: $font-size-xs;\n }\n\n // Conector entre passos: linha do centro deste passo ao centro do próximo.\n .fs-step:not(:last-child)::after {\n content: \"\";\n position: absolute;\n top: 15px;\n left: calc(50% + 20px);\n width: calc(100% - 40px);\n height: 2px;\n background-color: var(--fs-color-border);\n }\n\n // Passo ativo.\n .fs-step-active .fs-step-indicator {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n border-color: var(--fs-color-primary);\n }\n\n .fs-step-active .fs-step-label {\n color: var(--fs-color-text);\n }\n\n // Passo concluído: círculo preenchido com um \"check\" no lugar do número, e o\n // conector à direita fica na cor primária (indica progresso).\n .fs-step-completed .fs-step-indicator {\n color: transparent;\n background-color: var(--fs-color-primary);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5 6.5 12 13 4'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: center;\n border-color: var(--fs-color-primary);\n }\n\n .fs-step-completed .fs-step-label {\n color: var(--fs-color-text);\n }\n\n // `:not(:last-child)` casa a especificidade da regra base do conector\n // (senão o cinza dela venceria e o progresso não apareceria).\n .fs-step-completed:not(:last-child)::after {\n background-color: var(--fs-color-primary);\n }\n\n // Passo em erro.\n .fs-step-error .fs-step-indicator {\n color: color-contrast($fokus-color-danger);\n background-color: var(--fs-color-danger);\n border-color: var(--fs-color-danger);\n }\n\n .fs-step-error .fs-step-label {\n color: var(--fs-alert-danger-text);\n }\n\n // Passo clicável (navegação para trás via cabeçalho).\n .fs-step.fs-step-clickable {\n cursor: pointer;\n }\n\n .fs-step.fs-step-clickable:focus-visible {\n outline: 2px solid var(--fs-color-primary);\n outline-offset: 2px;\n border-radius: var(--fs-radius-sm);\n }\n\n // Variante vertical.\n .fs-stepper-vertical .fs-stepper-header {\n flex-direction: column;\n }\n\n .fs-stepper-vertical .fs-step {\n flex-direction: row;\n flex: 0 0 auto;\n align-items: flex-start;\n gap: 12px;\n min-height: 56px;\n text-align: left;\n }\n\n .fs-stepper-vertical .fs-step-content {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding-top: 5px;\n }\n\n .fs-stepper-vertical .fs-step:not(:last-child)::after {\n top: 34px;\n left: 15px;\n width: 2px;\n height: calc(100% - 22px);\n }\n\n // Painéis de conteúdo (wizard) e ações de navegação.\n .fs-step-panel {\n display: none;\n }\n\n .fs-step-panel.is-active {\n display: block;\n }\n\n .fs-stepper-content {\n margin-top: 20px;\n }\n\n .fs-stepper-actions {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n margin-top: 20px;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Grupo de botões com estado selecionado. Modo exclusivo: `<input\n// type=\"radio\">` (mesmo `name` em todos os itens). Modo inclusivo: `<input\n// type=\"checkbox\">`, cada item seleciona/deseleciona de forma independente.\n// O input fica visualmente oculto (mesma técnica de `.fs-file-input`,\n// scss/forms/_forms.scss) e o `<label>` irmão recebe o estilo.\n\n@layer components {\n .fs-segmented-control {\n display: inline-flex;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-sm);\n overflow: hidden;\n }\n\n .fs-segmented-item {\n display: flex;\n }\n\n .fs-segmented-item:not(:first-child) .fs-segmented-label {\n border-left: 1px solid var(--fs-color-border);\n }\n\n .fs-segmented-input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n .fs-segmented-label {\n display: inline-flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n min-height: 38px;\n padding: 0 12px;\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n font-size: $font-size-md;\n font-weight: $font-weight-medium;\n text-align: center;\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n transition: background-color 0.15s ease-in-out, color 0.15s ease-in-out;\n }\n\n .fs-segmented-label:hover {\n background-color: var(--fs-color-subtle);\n }\n\n .fs-segmented-input:checked + .fs-segmented-label {\n color: var(--fs-color-on-primary);\n background-color: var(--fs-color-primary);\n }\n\n .fs-segmented-input:focus-visible + .fs-segmented-label {\n position: relative;\n z-index: 1;\n\n @include focus-ring;\n }\n\n .fs-segmented-input:disabled + .fs-segmented-label {\n opacity: 0.4;\n pointer-events: none;\n }\n\n .fs-segmented-control-sm .fs-segmented-label {\n min-height: 30px;\n padding: 0 8px;\n font-size: $font-size-sm;\n }\n\n .fs-segmented-control-lg .fs-segmented-label {\n min-height: 46px;\n padding: 0 16px;\n font-size: $font-size-lg;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Placeholder de carregamento. Tamanho/forma controlados por largura/altura\n// inline (`style=\"width: ...; height: ...\"`) ou pelas variantes abaixo —\n// mesma abordagem de `.fs-progress-bar` (scss/components/_spinner.scss), que já\n// usa `style=\"width\"` em vez de classes de tamanho fixas.\n\n@layer components {\n .fs-skeleton {\n display: block;\n background-color: var(--fs-color-subtle);\n border-radius: var(--fs-radius-sm);\n animation: fokus-skeleton-pulse 1.5s ease-in-out infinite;\n }\n\n .fs-skeleton-text {\n width: 100%;\n height: 1em;\n }\n\n .fs-skeleton-text:not(:last-child) {\n margin-bottom: 0.5em;\n }\n\n .fs-skeleton-text:last-child {\n width: 80%;\n }\n\n .fs-skeleton-circle {\n flex-shrink: 0;\n border-radius: 50%;\n }\n\n .fs-skeleton-rect {\n border-radius: var(--fs-radius-md);\n }\n\n .fs-skeleton-card {\n display: grid;\n gap: var(--fs-space-3);\n min-height: 10rem;\n padding: var(--fs-space-4);\n border-radius: var(--fs-radius-md);\n }\n\n .fs-skeleton-table {\n height: 1.25rem;\n margin-block-end: var(--fs-space-2);\n }\n\n .fs-skeleton-avatar {\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 50%;\n }\n\n @keyframes fokus-skeleton-pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.5;\n }\n }\n\n // Variante \"wave\": em vez de pulsar a opacidade inteira, varre um brilho da\n // esquerda pra direita — precisa de `overflow: hidden` porque o brilho é um\n // pseudo-elemento maior que o próprio skeleton, deslocado por `translateX`.\n .fs-skeleton-wave {\n position: relative;\n overflow: hidden;\n animation: none;\n }\n\n .fs-skeleton-wave::after {\n position: absolute;\n inset: 0;\n content: \"\";\n background-image: linear-gradient(90deg, transparent, rgb(255 255 255 / 30%), transparent);\n transform: translateX(-100%);\n animation: fokus-skeleton-wave 1.6s linear infinite;\n }\n\n @keyframes fokus-skeleton-wave {\n 100% {\n transform: translateX(100%);\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .fs-skeleton {\n animation: none;\n }\n\n .fs-skeleton-wave::after {\n animation: none;\n }\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Linha do tempo, 100% CSS. Vertical por padrão (`.fs-timeline`); variante\n// `.fs-timeline-horizontal` inverte o eixo. Estados por item (`.fs-timeline-item`):\n// padrão (pendente), `.fs-timeline-active`, `.fs-timeline-completed`,\n// `.fs-timeline-failed` — mesma lógica de conector do Stepper\n// (scss/components/_stepper.scss): a linha entre marcadores fica na cor do\n// item concluído para indicar progresso.\n\n@layer components {\n .fs-timeline {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .fs-timeline-item {\n position: relative;\n display: flex;\n gap: 12px;\n padding-bottom: 24px;\n }\n\n .fs-timeline-item:last-child {\n padding-bottom: 0;\n }\n\n .fs-timeline-marker {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n margin-top: 3px;\n background-color: var(--fs-color-surface);\n background-repeat: no-repeat;\n background-position: center;\n border: 2px solid var(--fs-color-border);\n border-radius: 50%;\n }\n\n .fs-timeline-item:not(:last-child)::before {\n content: \"\";\n position: absolute;\n top: 22px;\n left: 7px;\n width: 2px;\n height: calc(100% - 22px);\n background-color: var(--fs-color-border);\n }\n\n .fs-timeline-content {\n flex: 1;\n padding-top: 1px;\n }\n\n .fs-timeline-title {\n margin: 0;\n color: var(--fs-color-text);\n font-size: $font-size-md;\n font-weight: $font-weight-medium;\n }\n\n .fs-timeline-text {\n margin: 4px 0 0;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n\n .fs-timeline-time {\n display: block;\n margin-top: 2px;\n color: var(--fs-color-muted);\n font-size: $font-size-xs;\n }\n\n // Item ativo (em andamento).\n .fs-timeline-active .fs-timeline-marker {\n background-color: var(--fs-color-primary);\n border-color: var(--fs-color-primary);\n }\n\n // Item concluído: marcador preenchido com um \"check\" (mesmo ícone do\n // Stepper) e o conector seguinte fica na cor de sucesso (indica progresso).\n .fs-timeline-completed .fs-timeline-marker {\n background-color: var(--fs-color-success);\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5.5 4 8l4-6'/%3E%3C/svg%3E\");\n border-color: var(--fs-color-success);\n }\n\n .fs-timeline-completed:not(:last-child)::before {\n background-color: var(--fs-color-success);\n }\n\n // Item com falha.\n .fs-timeline-failed .fs-timeline-marker {\n background-color: var(--fs-color-danger);\n border-color: var(--fs-color-danger);\n }\n\n .fs-timeline-failed .fs-timeline-title {\n color: var(--fs-alert-danger-text);\n }\n\n // Variante horizontal: cada item vira uma coluna, marcador no topo e\n // conector correndo na horizontal entre os centros dos marcadores (mesma\n // técnica do `.fs-step` padrão em scss/components/_stepper.scss).\n .fs-timeline-horizontal {\n flex-direction: row;\n }\n\n .fs-timeline-horizontal .fs-timeline-item {\n flex: 1 1 0;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding-bottom: 0;\n text-align: center;\n }\n\n // No modo horizontal o marcador não precisa do deslocamento vertical usado\n // para alinhar com a primeira linha de texto (margin-top no modo vertical);\n // zerá-lo faz o conector cair exatamente no centro do círculo.\n .fs-timeline-horizontal .fs-timeline-marker {\n margin-top: 0;\n }\n\n .fs-timeline-horizontal .fs-timeline-item:not(:last-child)::before {\n top: 7px;\n left: calc(50% + 15px);\n width: calc(100% - 30px);\n height: 2px;\n }\n\n .fs-timeline-horizontal .fs-timeline-content {\n padding-top: 0;\n }\n}\n","// Extraído do padrão já usado por `.fs-accordion-collapse`\n// (scss/components/_accordion.scss): o `overflow: hidden` é exigido pelo\n// `collapse()`/`expand()` de js/core/transition.js, que anima a propriedade\n// `height` do elemento.\n\n@layer components {\n .fs-collapse {\n overflow: hidden;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Notification Center (Etapa 10): orquestra o Toast (scss/components/_toasts.scss)\n// e guarda um histórico. Os toasts em si reaproveitam `.fs-toast`/`.fs-toast-container`\n// sem estilo novo; aqui ficam só o contador de não-lidas no gatilho e o painel\n// de histórico. O comportamento (empilhar toasts, marcar lido, persistir) é do\n// js/notification-center.js (FokusStyles.NotificationCenter).\n\n// O gatilho estabelece o contexto de posicionamento do contador.\n\n@layer components {\n [data-fs=\"notification-center\"] {\n position: relative;\n }\n\n .fs-notification-badge {\n position: absolute;\n top: -6px;\n right: -6px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 999px;\n color: color-contrast($fokus-color-danger);\n background-color: var(--fs-color-danger);\n font-size: 0.65rem;\n font-weight: $font-weight-medium;\n line-height: 1;\n }\n\n .fs-notification-badge[hidden] {\n display: none;\n }\n\n // Painel de histórico: reaproveita a mesma linguagem visual do Dropdown/Toast\n // (superfície + borda + sombra), posicionado via js/core/positioning.js.\n .fs-notification-center {\n position: absolute;\n display: none;\n flex-direction: column;\n width: min(320px, calc(100vw - 2 * var(--fs-space-3)));\n max-height: 420px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n color: var(--fs-color-text);\n background-color: var(--fs-color-surface);\n box-shadow: var(--fs-shadow-md);\n z-index: var(--fs-z-notification);\n }\n\n .fs-notification-center.is-open {\n display: flex;\n }\n\n .fs-notification-center-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n border-bottom: 1px solid var(--fs-color-border);\n }\n\n .fs-notification-center-title {\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n }\n\n .fs-notification-list {\n margin: 0;\n padding: 0;\n overflow-y: auto;\n list-style: none;\n }\n\n .fs-notification-item {\n display: flex;\n gap: 10px;\n align-items: flex-start;\n padding: 10px 14px;\n border-left: 3px solid transparent;\n border-bottom: 1px solid var(--fs-color-border);\n }\n\n .fs-notification-item:last-child {\n border-bottom: none;\n }\n\n .fs-notification-item-unread {\n background-color: var(--fs-color-subtle);\n }\n\n @each $name, $color in $theme-colors {\n .fs-notification-item-#{$name} {\n border-left-color: var(--fs-color-#{$name});\n }\n }\n\n .fs-notification-item-content {\n flex: 1;\n min-width: 0;\n }\n\n .fs-notification-item-title {\n margin: 0;\n font-size: $font-size-sm;\n font-weight: $font-weight-medium;\n }\n\n .fs-notification-item-text {\n margin: 2px 0 0;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n }\n\n .fs-notification-item-time {\n display: block;\n margin-top: 4px;\n color: var(--fs-color-muted);\n font-size: $font-size-xs;\n }\n\n .fs-notification-item .fs-btn-close {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n }\n\n .fs-notification-empty {\n padding: 24px 14px;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n text-align: center;\n }\n\n .fs-notification-empty[hidden] {\n display: none;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n\n// Nested Menu (Etapa 10): Dropdown com submenus recursivos. Reaproveita\n// `.fs-dropdown-menu`/`.fs-dropdown-item` (scss/components/_dropdown.scss) sem\n// reestilizar — só adiciona o posicionamento em cascata dos submenus e a seta\n// indicadora. Abertura por hover é 100% CSS; teclado/clique e o flip de borda\n// ficam no js/nested-menu.js (FokusStyles.NestedMenu), que adiciona `.is-open`.\n\n// Cada nível de submenu é envolto por `.fs-dropdown-submenu`, que serve de âncora\n// de posicionamento para o `.fs-dropdown-menu` filho.\n\n@layer components {\n .fs-dropdown-submenu {\n position: relative;\n }\n\n // Item que abre um submenu: seta apontando para o lado (em vez da seta pra\n // baixo do `.fs-dropdown-toggle`), empurrada para a direita do item.\n .fs-dropdown-item-submenu {\n justify-content: space-between;\n }\n\n .fs-dropdown-item-submenu::after {\n margin-left: 8px;\n content: \"\";\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 5px solid currentcolor;\n }\n\n // Submenu abre à direita do item, alinhado ao topo (compensa o padding + borda\n // do menu pai para os primeiros itens ficarem na mesma linha).\n .fs-dropdown-submenu > .fs-dropdown-menu {\n top: -7px;\n left: 100%;\n margin: 0;\n }\n\n .fs-dropdown-submenu:hover > .fs-dropdown-menu,\n .fs-dropdown-submenu > .fs-dropdown-menu.is-open {\n display: block;\n }\n\n // Sem espaço à direita: o JS marca `.fs-dropdown-submenu-left` e o submenu abre\n // para a esquerda.\n .fs-dropdown-submenu-left > .fs-dropdown-menu {\n right: 100%;\n left: auto;\n }\n}\n","@use \"../../../fokus-core/scss/settings\" as *;\n@use \"../../../fokus-core/scss/tools\" as *;\n\n// Tile: linha compacta ícone + título/subtítulo + ações, para listas de\n// opções/configurações/itens de navegação (sinergia com Notification Center\n// e Empty State — mesmo vocabulário visual de ícone+texto). Reusa `.fs-btn`\n// nas ações e `.fs-stretched-link` (_cards.scss) para a variante clicável\n// (tile inteiro age como link, sem precisar envolver tudo numa `<a>`).\n@layer components {\n .fs-tile {\n position: relative;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n background-color: var(--fs-color-surface);\n }\n\n .fs-tile-icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: var(--fs-radius-sm);\n color: var(--fs-color-text);\n background-color: var(--fs-color-subtle);\n font-size: $font-size-lg;\n }\n\n .fs-tile-body {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .fs-tile-title {\n margin: 0;\n color: var(--fs-color-text);\n font-size: $font-size-md;\n font-weight: $font-weight-medium;\n\n @include truncate;\n }\n\n .fs-tile-subtitle {\n margin: 0;\n color: var(--fs-color-muted);\n font-size: $font-size-sm;\n\n @include truncate;\n }\n\n .fs-tile-actions {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n gap: 8px;\n }\n\n // Ações embaixo: o tile quebra linha (flex-wrap) e `.fs-tile-actions` ocupa\n // a largura toda numa segunda linha, alinhada à direita — em vez do padrão\n // (ações à direita, na mesma linha do ícone/corpo).\n .fs-tile-actions-bottom {\n flex-wrap: wrap;\n }\n\n .fs-tile-actions-bottom .fs-tile-actions {\n flex-basis: 100%;\n justify-content: flex-end;\n margin-top: 4px;\n }\n\n // Tile inteiro clicável: usa `.fs-stretched-link` num link dentro do corpo\n // (mesma técnica do Card) — o hover/focus visual fica no `.fs-tile`.\n .fs-tile-clickable {\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n\n .fs-tile-clickable:hover,\n .fs-tile-clickable:focus-within {\n border-color: var(--fs-color-primary);\n box-shadow: var(--fs-shadow-sm);\n }\n\n .fs-tile-sm {\n gap: 8px;\n padding: 8px;\n }\n\n .fs-tile-sm .fs-tile-icon {\n width: 32px;\n height: 32px;\n font-size: $font-size-md;\n }\n\n .fs-tile-sm .fs-tile-title {\n font-size: $font-size-sm;\n }\n\n .fs-tile-sm .fs-tile-subtitle {\n font-size: $font-size-xs;\n }\n\n .fs-tile-lg {\n gap: 16px;\n padding: 16px;\n }\n\n .fs-tile-lg .fs-tile-icon {\n width: 48px;\n height: 48px;\n font-size: $font-size-xl;\n }\n\n .fs-tile-lg .fs-tile-title {\n font-size: $font-size-lg;\n }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-avatar {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n overflow: hidden;\n color: var(--fs-color-on-primary);\n font-weight: 600;\n background: var(--fs-color-primary);\n border-radius: 50%;\n object-fit: cover;\n }\n\n .fs-avatar-sm { width: 2rem; height: 2rem; font-size: .8125rem; }\n .fs-avatar-lg { width: 3.5rem; height: 3.5rem; font-size: 1.25rem; }\n .fs-avatar-square { border-radius: var(--fs-radius-md); }\n .fs-avatar img { width: 100%; height: 100%; object-fit: cover; }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-button-group {\n display: inline-flex;\n vertical-align: middle;\n }\n\n .fs-button-group > .fs-btn { border-radius: 0; }\n .fs-button-group > .fs-btn:first-child { border-start-start-radius: var(--fs-radius-sm); border-end-start-radius: var(--fs-radius-sm); }\n .fs-button-group > .fs-btn:last-child { border-start-end-radius: var(--fs-radius-sm); border-end-end-radius: var(--fs-radius-sm); }\n .fs-button-group > .fs-btn + .fs-btn { margin-inline-start: -1px; }\n .fs-button-group-vertical { flex-direction: column; align-items: flex-start; }\n .fs-button-group-vertical > .fs-btn { width: 100%; }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-close {\n display: inline-grid;\n width: 2rem;\n height: 2rem;\n place-items: center;\n padding: 0;\n color: currentcolor;\n font-size: 1.5rem;\n line-height: 1;\n background: transparent;\n border: 0;\n border-radius: 50%;\n cursor: pointer;\n opacity: .72;\n }\n\n .fs-close::before { content: \"×\"; }\n .fs-close:hover { opacity: 1; background: var(--fs-color-subtle); }\n .fs-close:focus-visible { outline: var(--fs-focus-width) solid var(--fs-focus-color); outline-offset: var(--fs-focus-offset); }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-list-group {\n display: flex;\n flex-direction: column;\n padding: 0;\n margin: 0;\n list-style: none;\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n }\n\n .fs-list-group-item {\n position: relative;\n display: block;\n padding: var(--fs-space-3) var(--fs-space-4);\n color: var(--fs-color-text);\n background: var(--fs-color-surface);\n border-block-end: 1px solid var(--fs-color-border);\n }\n\n .fs-list-group-item:last-child { border-block-end: 0; }\n button.fs-list-group-item, a.fs-list-group-item { width: 100%; text-align: start; cursor: pointer; }\n .fs-list-group-item:hover { background: var(--fs-color-subtle); }\n .fs-list-group-item.is-active { color: var(--fs-color-on-primary); background: var(--fs-color-primary); }\n}\n","@layer components {\n .fs-code {\n padding: .125em .35em;\n color: var(--fs-color-danger);\n background: var(--fs-color-subtle);\n border-radius: var(--fs-radius-sm);\n }\n\n .fs-pre {\n display: block;\n max-width: 100%;\n padding: var(--fs-space-4);\n overflow: auto;\n color: var(--fs-color-text);\n background: var(--fs-color-subtle);\n border: 1px solid var(--fs-color-border);\n border-radius: var(--fs-radius-md);\n }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-ratio { position: relative; width: 100%; }\n .fs-ratio::before { display: block; padding-top: var(--fs-ratio, 56.25%); content: \"\"; }\n .fs-ratio > * { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n .fs-ratio-1x1 { --fs-ratio: 100%; }\n .fs-ratio-4x3 { --fs-ratio: 75%; }\n .fs-ratio-16x9 { --fs-ratio: 56.25%; }\n .fs-ratio-21x9 { --fs-ratio: 42.857%; }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-icon-link { display: inline-flex; gap: .5em; align-items: center; }\n .fs-icon-link svg { width: 1em; height: 1em; flex: 0 0 auto; }\n .fs-icon-link:hover svg { transform: translateX(.15em); }\n\n @media (prefers-reduced-motion: reduce) { .fs-icon-link svg { transition: none; } }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-placeholder { display: inline-block; min-height: 1em; vertical-align: middle; cursor: wait; background: currentcolor; opacity: .18; }\n .fs-placeholder-glow { animation: fs-placeholder-glow 1.5s ease-in-out infinite; }\n .fs-placeholder-wave { background: linear-gradient(90deg, transparent, rgb(255 255 255 / 35%), transparent), currentcolor; background-size: 200% 100%; animation: fs-placeholder-wave 1.5s linear infinite; }\n .fs-placeholder-btn { width: 6rem; height: 2.5rem; border-radius: var(--fs-radius-sm); }\n\n @keyframes fs-placeholder-glow { 50% { opacity: .08; } }\n\n @keyframes fs-placeholder-wave { to { background-position: -200% 0; } }\n\n @media (prefers-reduced-motion: reduce) { .fs-placeholder-glow, .fs-placeholder-wave { animation: none; } }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n .fs-progress { display: flex; height: .75rem; overflow: hidden; background: var(--fs-color-subtle); border-radius: 999px; }\n .fs-progress-bar { display: flex; align-items: center; justify-content: center; color: var(--fs-color-on-primary); background: var(--fs-color-primary); transition: width var(--fs-motion-duration-normal) var(--fs-motion-ease-standard); }\n .fs-progress-bar-striped { background-image: linear-gradient(45deg, rgb(255 255 255 / 15%) 25%, transparent 25%, transparent 50%, rgb(255 255 255 / 15%) 50%, rgb(255 255 255 / 15%) 75%, transparent 75%); background-size: 1rem 1rem; }\n\n @media (prefers-reduced-motion: reduce) { .fs-progress-bar { transition: none; } }\n}\n","/* stylelint-disable declaration-block-single-line-max-declarations */\n@layer components {\n [data-fs-scrollspy] .is-active { color: var(--fs-color-primary); font-weight: 600; }\n .fs-scrollspy-nav { position: sticky; inset-block-start: var(--fs-space-4); }\n}\n","@use \"sass:color\";\n@use \"../settings\" as *;\n@use \"../tools\" as *;\n\n// Theming multi-brand: um `data-fs-brand=\"x\"` sobrescreve só a cor de AÇÃO\n// PRIMÁRIA (--fs-color-primary e os tokens derivados) — secondary/success/\n// warning/danger/info continuam universais entre marcas, porque são\n// semânticos (sucesso é sempre verde, erro sempre vermelho, independente\n// de qual marca está ativa). Composto com `data-theme=\"dark\"` do mesmo\n// jeito que `_dark.scss` faz para a paleta padrão: mistura o primitivo com\n// branco/preto em OKLCH, não recalcula do zero.\n// Limitação conhecida: `.fs-btn-primary`/`.fs-badge-primary` (preenchimento\n// sólido) calculam a cor do texto em tempo de build via `color-contrast()`\n// a partir do primary padrão (azul) — não recalculam por marca. Escolha um\n// primitivo de marca escuro o bastante pro texto branco continuar legível\n// (como o exemplo abaixo), ou sobrescreva `--fs-btn-color`/`--fs-badge-color`\n// manualmente se o primitivo da marca for muito claro. Ver\n// `docs/guides/theming.md#multi-brand`.\n@layer tokens {\n // Marca de exemplo (\"violet\") — mesmo tom usado no exemplo de\n // customização do README, só pra provar que a troca funciona em runtime\n // sem recompilar CSS. Um projeto real substitui/adiciona marcas\n // definindo o próprio primitivo antes de `@use` este arquivo.\n $brand-violet-primary: color.to-space(#6d28d9, oklch) !default;\n\n [data-fs-brand=\"violet\"] {\n --fs-color-primary: #{rgb-fallback($brand-violet-primary)};\n --fs-alert-primary-bg: #{rgb-fallback(tint-color($brand-violet-primary))};\n --fs-alert-primary-text: #{rgb-fallback(shade-color($brand-violet-primary))};\n --fs-feedback-primary-bg: #{rgb-fallback(tint-color($brand-violet-primary))};\n }\n\n [data-fs-brand=\"violet\"][data-theme=\"dark\"],\n [data-theme=\"dark\"] [data-fs-brand=\"violet\"] {\n --fs-color-primary: #{rgb-fallback(color.mix($brand-violet-primary, $color-white, 95%, $method: oklch))};\n --fs-alert-primary-bg: #{rgb-fallback(color.mix($brand-violet-primary, $color-gray-900, 15%, $method: oklch))};\n --fs-alert-primary-text: #{rgb-fallback(color.mix($brand-violet-primary, $color-white, 55%, $method: oklch))};\n --fs-feedback-primary-bg: #{rgb-fallback(color.mix($brand-violet-primary, $color-gray-900, 15%, $method: oklch))};\n }\n\n @supports (color: oklch(0% 0 0)) {\n [data-fs-brand=\"violet\"] {\n --fs-color-primary: #{$brand-violet-primary};\n --fs-alert-primary-bg: #{tint-color($brand-violet-primary)};\n --fs-alert-primary-text: #{shade-color($brand-violet-primary)};\n --fs-feedback-primary-bg: #{tint-color($brand-violet-primary)};\n }\n\n [data-fs-brand=\"violet\"][data-theme=\"dark\"],\n [data-theme=\"dark\"] [data-fs-brand=\"violet\"] {\n --fs-color-primary: #{color.mix($brand-violet-primary, $color-white, 95%, $method: oklch)};\n --fs-alert-primary-bg: #{color.mix($brand-violet-primary, $color-gray-900, 15%, $method: oklch)};\n --fs-alert-primary-text: #{color.mix($brand-violet-primary, $color-white, 55%, $method: oklch)};\n --fs-feedback-primary-bg: #{color.mix($brand-violet-primary, $color-gray-900, 15%, $method: oklch)};\n }\n }\n\n // Preset \"corporate\" — azul-marinho/steel blue, tom sóbrio para\n // aplicações internas/B2B. Mesma técnica de mistura OKLCH acima.\n $brand-corporate-primary: color.to-space(#1d4e89, oklch) !default;\n\n [data-fs-brand=\"corporate\"] {\n --fs-color-primary: #{rgb-fallback($brand-corporate-primary)};\n --fs-alert-primary-bg: #{rgb-fallback(tint-color($brand-corporate-primary))};\n --fs-alert-primary-text: #{rgb-fallback(shade-color($brand-corporate-primary))};\n --fs-feedback-primary-bg: #{rgb-fallback(tint-color($brand-corporate-primary))};\n }\n\n [data-fs-brand=\"corporate\"][data-theme=\"dark\"],\n [data-theme=\"dark\"] [data-fs-brand=\"corporate\"] {\n --fs-color-primary: #{rgb-fallback(color.mix($brand-corporate-primary, $color-white, 95%, $method: oklch))};\n --fs-alert-primary-bg: #{rgb-fallback(color.mix($brand-corporate-primary, $color-gray-900, 15%, $method: oklch))};\n --fs-alert-primary-text: #{rgb-fallback(color.mix($brand-corporate-primary, $color-white, 55%, $method: oklch))};\n --fs-feedback-primary-bg: #{rgb-fallback(color.mix($brand-corporate-primary, $color-gray-900, 15%, $method: oklch))};\n }\n\n // Preset \"vibrant\" — laranja energético, tom para produtos de consumo/\n // marketing que queiram uma ação primária mais chamativa.\n $brand-vibrant-primary: color.to-space(#f2542d, oklch) !default;\n\n [data-fs-brand=\"vibrant\"] {\n --fs-color-primary: #{rgb-fallback($brand-vibrant-primary)};\n --fs-alert-primary-bg: #{rgb-fallback(tint-color($brand-vibrant-primary))};\n --fs-alert-primary-text: #{rgb-fallback(shade-color($brand-vibrant-primary))};\n --fs-feedback-primary-bg: #{rgb-fallback(tint-color($brand-vibrant-primary))};\n }\n\n [data-fs-brand=\"vibrant\"][data-theme=\"dark\"],\n [data-theme=\"dark\"] [data-fs-brand=\"vibrant\"] {\n --fs-color-primary: #{rgb-fallback(color.mix($brand-vibrant-primary, $color-white, 95%, $method: oklch))};\n --fs-alert-primary-bg: #{rgb-fallback(color.mix($brand-vibrant-primary, $color-gray-900, 15%, $method: oklch))};\n --fs-alert-primary-text: #{rgb-fallback(color.mix($brand-vibrant-primary, $color-white, 55%, $method: oklch))};\n --fs-feedback-primary-bg: #{rgb-fallback(color.mix($brand-vibrant-primary, $color-gray-900, 15%, $method: oklch))};\n }\n\n @supports (color: oklch(0% 0 0)) {\n [data-fs-brand=\"corporate\"] {\n --fs-color-primary: #{$brand-corporate-primary};\n --fs-alert-primary-bg: #{tint-color($brand-corporate-primary)};\n --fs-alert-primary-text: #{shade-color($brand-corporate-primary)};\n --fs-feedback-primary-bg: #{tint-color($brand-corporate-primary)};\n }\n\n [data-fs-brand=\"corporate\"][data-theme=\"dark\"],\n [data-theme=\"dark\"] [data-fs-brand=\"corporate\"] {\n --fs-color-primary: #{color.mix($brand-corporate-primary, $color-white, 95%, $method: oklch)};\n --fs-alert-primary-bg: #{color.mix($brand-corporate-primary, $color-gray-900, 15%, $method: oklch)};\n --fs-alert-primary-text: #{color.mix($brand-corporate-primary, $color-white, 55%, $method: oklch)};\n --fs-feedback-primary-bg: #{color.mix($brand-corporate-primary, $color-gray-900, 15%, $method: oklch)};\n }\n\n [data-fs-brand=\"vibrant\"] {\n --fs-color-primary: #{$brand-vibrant-primary};\n --fs-alert-primary-bg: #{tint-color($brand-vibrant-primary)};\n --fs-alert-primary-text: #{shade-color($brand-vibrant-primary)};\n --fs-feedback-primary-bg: #{tint-color($brand-vibrant-primary)};\n }\n\n [data-fs-brand=\"vibrant\"][data-theme=\"dark\"],\n [data-theme=\"dark\"] [data-fs-brand=\"vibrant\"] {\n --fs-color-primary: #{color.mix($brand-vibrant-primary, $color-white, 95%, $method: oklch)};\n --fs-alert-primary-bg: #{color.mix($brand-vibrant-primary, $color-gray-900, 15%, $method: oklch)};\n --fs-alert-primary-text: #{color.mix($brand-vibrant-primary, $color-white, 55%, $method: oklch)};\n --fs-feedback-primary-bg: #{color.mix($brand-vibrant-primary, $color-gray-900, 15%, $method: oklch)};\n }\n }\n}\n\n// Ao contrário de violet/corporate, o primitivo \"vibrant\" (laranja) é claro\n// o bastante pra o texto branco padrão de `.fs-btn-primary`/`.fs-badge-primary`\n// (calculado em tempo de build a partir do primary PADRÃO, não do de marca —\n// ver nota no topo do arquivo) cair abaixo de 4.5:1 — exatamente o caso que\n// a mitigação documentada em docs/guides/theming.md#multi-brand cobre.\n// Precisa estar em `@layer overrides` (a camada de maior prioridade — ver\n// `tokens/_root.scss`): `.fs-btn-primary`/`.fs-badge-primary` setam\n// `--fs-btn-color`/`--fs-badge-color` no próprio elemento dentro de\n// `@layer components`, e cascade layers ignoram especificidade — um\n// seletor mais específico em `@layer tokens` (onde vivem os blocos acima)\n// perderia mesmo assim.\n@layer overrides {\n [data-fs-brand=\"vibrant\"] .fs-btn-primary,\n [data-fs-brand=\"vibrant\"] .fs-badge-primary {\n --fs-btn-color: #{$color-black};\n --fs-badge-color: #{$color-black};\n }\n\n [data-fs-brand=\"vibrant\"] .fs-check {\n --fs-check-mark: #{$color-black};\n }\n}\n","@use \"sass:color\";\n@use \"sass:map\";\n@use \"../settings\" as *;\n@use \"../tools\" as *;\n\n// Peso (% da cor original mantida, ver color.mix()) de cada cor de estado no\n// tema escuro. O limite de cada uma é o quanto dá pra clarear em direção ao\n// branco antes de virar o texto branco/preto que color-contrast() já\n// pré-calculou para os preenchimentos sólidos (botões, badges) no tema claro\n// — passar do limite deixaria esse texto ilegível. `primary` e `danger` têm\n// texto branco no preenchimento, então clareiam pouco (clarear reduz o\n// contraste com o branco); `info` não tem margem e fica sem alteração (100%).\n// Misturas em `$method: oklch` (ver tools/_mixins.scss) — recalibrado e\n// revalidado com `npm run contrast` após a migração para OKLCH.\n@layer tokens {\n $dark-color-weights: (\n primary: 95%,\n secondary: 90%,\n success: 65%,\n warning: 65%,\n danger: 95%,\n info: 100%\n ) !default;\n\n $dark-text: color.to-space(#f1f3f4, oklch) !default;\n $dark-muted: color.to-space(#bdc1c6, oklch) !default;\n $dark-border: color.to-space(#3c4043, oklch) !default;\n $dark-surface: color.to-space(#202124, oklch) !default;\n $dark-subtle: color.to-space(#2b2c2f, oklch) !default;\n\n // Pesos de alert/feedback bg+text no escuro: validados por\n // `npm run contrast` para ≥4.5:1 (texto normal) em todas as 6 cores —\n // não abaixe sem reconferir o relatório.\n $dark-alert-bg-weight: 15%;\n $dark-alert-text-weight: 55%;\n\n [data-theme=\"dark\"],\n [data-fs-theme=\"dark\"] {\n --fs-color-text: #{rgb-fallback($dark-text)};\n --fs-color-muted: #{rgb-fallback($dark-muted)};\n --fs-color-border: #{rgb-fallback($dark-border)};\n --fs-color-surface: #{rgb-fallback($dark-surface)};\n --fs-color-subtle: #{rgb-fallback($dark-subtle)};\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-color-action-primary: var(--fs-color-primary);\n --fs-color-action-danger: var(--fs-color-danger);\n --fs-shadow-sm: 0 1px 3px rgb(0 0 0 / 50%), 0 1px 2px rgb(0 0 0 / 40%);\n --fs-shadow-md: 0 6px 12px rgb(0 0 0 / 55%), 0 3px 6px rgb(0 0 0 / 45%);\n --fs-shadow-lg: 0 15px 30px rgb(0 0 0 / 60%), 0 6px 12px rgb(0 0 0 / 50%);\n --fs-tooltip-bg: #{rgb-fallback($color-gray-100)};\n --fs-tooltip-text: #{rgb-fallback($color-gray-900)};\n\n @each $name, $color in $theme-colors {\n --fs-color-#{$name}: #{rgb-fallback(color.mix($color, $color-white, map.get($dark-color-weights, $name), $method: oklch))};\n --fs-alert-#{$name}-bg: #{rgb-fallback(color.mix($color, $color-gray-900, $dark-alert-bg-weight, $method: oklch))};\n --fs-alert-#{$name}-text: #{rgb-fallback(color.mix($color, $color-white, $dark-alert-text-weight, $method: oklch))};\n --fs-feedback-#{$name}-bg: #{rgb-fallback(color.mix($color, $color-gray-900, $dark-alert-bg-weight, $method: oklch))};\n }\n }\n\n @supports (color: oklch(0% 0 0)) {\n [data-theme=\"dark\"],\n [data-fs-theme=\"dark\"] {\n --fs-color-text: #{$dark-text};\n --fs-color-muted: #{$dark-muted};\n --fs-color-border: #{$dark-border};\n --fs-color-surface: #{$dark-surface};\n --fs-color-subtle: #{$dark-subtle};\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-color-action-primary: var(--fs-color-primary);\n --fs-color-action-danger: var(--fs-color-danger);\n --fs-tooltip-bg: #{$color-gray-100};\n --fs-tooltip-text: #{$color-gray-900};\n\n @each $name, $color in $theme-colors {\n --fs-color-#{$name}: #{color.mix($color, $color-white, map.get($dark-color-weights, $name), $method: oklch)};\n --fs-alert-#{$name}-bg: #{color.mix($color, $color-gray-900, $dark-alert-bg-weight, $method: oklch)};\n --fs-alert-#{$name}-text: #{color.mix($color, $color-white, $dark-alert-text-weight, $method: oklch)};\n --fs-feedback-#{$name}-bg: #{color.mix($color, $color-gray-900, $dark-alert-bg-weight, $method: oklch)};\n }\n }\n }\n\n @media (prefers-color-scheme: dark) {\n [data-fs-theme=\"auto\"] {\n --fs-color-text: #{rgb-fallback($dark-text)};\n --fs-color-muted: #{rgb-fallback($dark-muted)};\n --fs-color-border: #{rgb-fallback($dark-border)};\n --fs-color-surface: #{rgb-fallback($dark-surface)};\n --fs-color-subtle: #{rgb-fallback($dark-subtle)};\n --fs-color-bg-surface: var(--fs-color-surface);\n --fs-color-bg-subtle: var(--fs-color-subtle);\n --fs-color-surface-raised: var(--fs-color-surface);\n --fs-color-surface-interactive: var(--fs-color-subtle);\n --fs-color-text-primary: var(--fs-color-text);\n --fs-color-text-muted: var(--fs-color-muted);\n --fs-color-border-default: var(--fs-color-border);\n --fs-color-focus: var(--fs-color-primary);\n --fs-tooltip-bg: #{rgb-fallback($color-gray-100)};\n --fs-tooltip-text: #{rgb-fallback($color-gray-900)};\n }\n }\n\n @media (forced-colors: active) {\n :root,\n [data-theme=\"dark\"],\n [data-fs-theme=\"light\"],\n [data-fs-theme=\"dark\"],\n [data-fs-theme=\"auto\"] {\n --fs-color-border: CanvasText;\n --fs-color-text: CanvasText;\n --fs-color-surface: Canvas;\n --fs-color-subtle: Canvas;\n --fs-focus-color: Highlight;\n }\n }\n}\n"]}