fokus-styles 2.0.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.
- package/CHANGELOG.md +19 -0
- package/README.md +4 -3
- package/dist/css/components.css +532 -2
- package/dist/css/components.css.map +1 -1
- package/dist/css/components.min.css +1 -1
- package/dist/css/components.min.css.map +1 -1
- package/dist/css/fokus-components.css +4072 -0
- package/dist/css/fokus-components.css.map +1 -0
- package/dist/css/fokus-components.min.css +2 -0
- package/dist/css/fokus-components.min.css.map +1 -0
- package/dist/css/fokus-core.css +1585 -0
- package/dist/css/fokus-core.css.map +1 -0
- package/dist/css/fokus-core.min.css +2 -0
- package/dist/css/fokus-core.min.css.map +1 -0
- package/dist/css/fokus-dark.css +314 -0
- package/dist/css/fokus-dark.css.map +1 -0
- package/dist/css/fokus-dark.min.css +2 -0
- package/dist/css/fokus-dark.min.css.map +1 -0
- package/dist/css/fokus-rtl.css +8552 -0
- package/dist/css/fokus-rtl.css.map +1 -0
- package/dist/css/fokus-rtl.min.css +2 -0
- package/dist/css/fokus-rtl.min.css.map +1 -0
- package/dist/css/fokus-utilities.css +4198 -0
- package/dist/css/fokus-utilities.css.map +1 -0
- package/dist/css/fokus-utilities.min.css +2 -0
- package/dist/css/fokus-utilities.min.css.map +1 -0
- package/dist/css/fokus.css +1361 -53
- package/dist/css/fokus.css.map +1 -1
- package/dist/css/fokus.min.css +1 -1
- package/dist/css/fokus.min.css.map +1 -1
- package/dist/css/forms.css +137 -2
- package/dist/css/forms.css.map +1 -1
- package/dist/css/forms.min.css +1 -1
- package/dist/css/forms.min.css.map +1 -1
- package/dist/css/helpers.css +398 -2
- package/dist/css/helpers.css.map +1 -1
- package/dist/css/helpers.min.css +1 -1
- package/dist/css/helpers.min.css.map +1 -1
- package/dist/css/layout.css +582 -2
- package/dist/css/layout.css.map +1 -1
- package/dist/css/layout.min.css +1 -1
- package/dist/css/layout.min.css.map +1 -1
- package/dist/js/fokus.js +347 -12
- package/dist/js/fokus.js.map +4 -4
- package/dist/js/fokus.min.js +17 -17
- package/dist/js/fokus.min.js.map +4 -4
- package/docs/components/accordion.md +3 -0
- package/docs/components/avatar.md +13 -0
- package/docs/components/button-group.md +13 -0
- package/docs/components/close-button.md +13 -0
- package/docs/components/code.md +13 -0
- package/docs/components/icon-link.md +13 -0
- package/docs/components/list-group.md +13 -0
- package/docs/components/modal.md +3 -0
- package/docs/components/navbar.md +3 -0
- package/docs/components/pagination.md +3 -0
- package/docs/components/placeholder.md +13 -0
- package/docs/components/ratio.md +13 -0
- package/docs/components/scrollspy.md +13 -0
- package/docs/components/skeleton.md +3 -0
- package/docs/components/table.md +3 -0
- package/docs/guides/javascript-api.md +9 -0
- package/docs/guides/rtl-and-system-preferences.md +28 -0
- package/docs/guides/utility-api.md +9 -0
- package/docs/reference/size-baseline.json +13 -13
- package/mockup/assets/example-theme.css +3 -1
- package/mockup/assets/example-theme.js +2 -0
- package/mockup/assets/showcase-contracts.js +2 -2
- package/mockup/assets/showcase.css +4 -2
- package/mockup/assets/showcase.js +2 -0
- package/mockup/examples/js-foundation.html +25 -0
- package/mockup/examples/tables-navbar.html +12 -8
- package/mockup/examples/theming.html +2 -1
- package/mockup/foundations.html +2 -2
- package/package.json +15 -1
- package/packages/fokus-cli/bin/fokus.mjs +18 -1
- package/packages/fokus-cli/lib/build.mjs +12 -2
- package/packages/fokus-components/scss/components/_accordion.scss +19 -0
- package/packages/fokus-components/scss/components/_avatar.scss +22 -0
- package/packages/fokus-components/scss/components/_button-group.scss +14 -0
- package/packages/fokus-components/scss/components/_close-button.scss +22 -0
- package/packages/fokus-components/scss/components/_code.scss +19 -0
- package/packages/fokus-components/scss/components/_icon-link.scss +8 -0
- package/packages/fokus-components/scss/components/_index.scss +10 -0
- package/packages/fokus-components/scss/components/_list-group.scss +26 -0
- package/packages/fokus-components/scss/components/_modal.scss +36 -0
- package/packages/fokus-components/scss/components/_navbar.scss +48 -0
- package/packages/fokus-components/scss/components/_offcanvas.scss +19 -0
- package/packages/fokus-components/scss/components/_pagination.scss +10 -0
- package/packages/fokus-components/scss/components/_placeholder.scss +13 -0
- package/packages/fokus-components/scss/components/_progress.scss +8 -0
- package/packages/fokus-components/scss/components/_ratio.scss +10 -0
- package/packages/fokus-components/scss/components/_scrollspy.scss +5 -0
- package/packages/fokus-components/scss/components/_skeleton.scss +19 -0
- package/packages/fokus-components/scss/components/_spinner.scss +9 -53
- package/packages/fokus-components/scss/components/_tables.scss +20 -0
- package/packages/fokus-components/scss/forms/_forms.scss +29 -0
- package/packages/fokus-core/scss/base/_accessibility.scss +59 -0
- package/packages/fokus-core/scss/base/_index.scss +1 -0
- package/packages/fokus-core/scss/layout/_grid.scss +18 -0
- package/packages/fokus-core/scss/settings/_config.scss +43 -0
- package/packages/fokus-core/scss/settings/_index.scss +1 -0
- package/packages/fokus-core/scss/themes/_dark.scss +38 -2
- package/packages/fokus-core/scss/tokens/_root.scss +25 -0
- package/packages/fokus-core/scss/tools/_mixins.scss +8 -0
- package/packages/fokus-js/js/accordion.js +7 -1
- package/packages/fokus-js/js/core/focus.js +20 -0
- package/packages/fokus-js/js/core/overlay.d.ts +2 -0
- package/packages/fokus-js/js/core/overlay.js +10 -0
- package/packages/fokus-js/js/core/register.js +4 -2
- package/packages/fokus-js/js/focus-trap.d.ts +3 -0
- package/packages/fokus-js/js/focus-trap.js +1 -0
- package/packages/fokus-js/js/fokus.d.ts +7 -0
- package/packages/fokus-js/js/fokus.js +7 -0
- package/packages/fokus-js/js/form-validation.d.ts +7 -0
- package/packages/fokus-js/js/form-validation.js +20 -0
- package/packages/fokus-js/js/modal.js +16 -2
- package/packages/fokus-js/js/navbar.d.ts +10 -0
- package/packages/fokus-js/js/navbar.js +27 -0
- package/packages/fokus-js/js/offcanvas.d.ts +4 -0
- package/packages/fokus-js/js/offcanvas.js +16 -2
- package/packages/fokus-js/js/pagination.d.ts +7 -0
- package/packages/fokus-js/js/pagination.js +38 -0
- package/packages/fokus-js/js/scrollspy.d.ts +7 -0
- package/packages/fokus-js/js/scrollspy.js +26 -0
- package/packages/fokus-js/js/spinner.d.ts +9 -0
- package/packages/fokus-js/js/spinner.js +18 -0
- package/packages/fokus-js/js/theme.d.ts +9 -0
- package/packages/fokus-js/js/theme.js +19 -0
- package/packages/fokus-js/js/toast.js +4 -0
- package/packages/fokus-utilities/scss/utilities/_api.scss +48 -0
- package/packages/fokus-utilities/scss/utilities/_index.scss +2 -0
- package/packages/fokus-utilities/scss/utilities/_states.scss +19 -0
- package/packages/fokus-utilities/scss/utilities/_visibility.scss +24 -0
- package/scss/entries/core-entry.scss +5 -0
- package/scss/entries/dark-entry.scss +3 -0
- package/scss/entries/rtl-entry.scss +11 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../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-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/_datatable.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-core/scss/themes/_brands.scss","file:///home/runner/work/fokus-styles/fokus-styles/packages/fokus-core/scss/themes/_dark.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACOhB,oEAAA;AAEA;EAME;IACE,yBAAA;IACA,yBAAA;IACA,wBAAA;IACA,yBAAA;IACA,0BAAA;IACA,2BAAA;IACA,0BAAA;IACA,6CAAA;IACA,0CAAA;IACA,4BAAA;IACA,0BAAA;IACA,yBAAA;IACA,4BAAA;IACA,2BAAA;IACA,uBAAA;IACA,2BAAA;IACA,8BAAA;IACA,0BAAA;IACA,8BAAA;IACA,mBAAA;IACA,mBAAA;IACA,mBAAA;IACA,qBAAA;IACA,kBAAA;IAGE,eAAA;IAAA,qBAAA;IAAA,oBAAA;IAAA,kBAAA;IAAA,oBAAA;IAAA,kBAAA;IAIA,cAAA;IAAA,qBAAA;IAAA,mBAAA;IAAA,kBAAA;IAAA,sBAAA;IAAA,yBAAA;IAAA,kBAAA;IAAA,oBAAA;IAGF,yBAAA;IACA,4BAAA;IACA,4BAAA;IACA,4BAAA;IACA,8BAAA;IACA,+BAAA;IACA,qBAAA;IACA,sBAAA;IACA,0BAAA;IACA,2BAAA;IACA,6BAAA;IACA,8CAAA;IACA,sBAAA;IACA,0BAAA;IAQE,iBAAA;IAAA,iBAAA;IAAA,iBAAA;IAGF,sEAAA;IACA,uEAAA;IACA,yEAAA;IACA,wBAAA;IACA,0BAAA;IAGE,2BAAA;IACA,8BAAA;IACA,yEAAA;IACA,wEAAA;IAHA,6BAAA;IACA,gCAAA;IACA,4EAAA;IACA,2EAAA;IAHA,oCAAA;IACA,8BAAA;IACA,0EAAA;IACA,uEAAA;IAHA,2BAAA;IACA,8BAAA;IACA,0EAAA;IACA,yEAAA;IAHA,0BAAA;IACA,6BAAA;IACA,wEAAA;IACA,wEAAA;IAHA,wBAAA;IACA,2BAAA;IACA,uEAAA;IACA,sEAAA;IAIA,iCAAA;IAAA,mCAAA;IAAA,iCAAA;IAAA,iCAAA;IAAA,gCAAA;IAAA,8BAAA;EDOJ;ECEA;IACE;MACE,qEAAA;MACA,qEAAA;MACA,sEAAA;MACA,uEAAA;MACA,qEAAA;MAGE,wEAAA;MACA,8BAAA;MACA,2EAAA;MACA,6EAAA;MAHA,yEAAA;MACA,gCAAA;MACA,6EAAA;MACA,+EAAA;MAHA,sEAAA;MACA,8BAAA;MACA,0EAAA;MACA,4EAAA;MAHA,uEAAA;MACA,8BAAA;MACA,0EAAA;MACA,4EAAA;MAHA,sEAAA;MACA,6BAAA;MACA,yEAAA;MACA,0EAAA;MAHA,qEAAA;MACA,2BAAA;MACA,wEAAA;MACA,0EAAA;MAIA,6EAAA;MAAA,gFAAA;MAAA,8EAAA;MAAA,0EAAA;MAAA,4EAAA;MAAA,2EAAA;IDoBJ;EACF;AACF;AE9HA;EACE;IAEE,8CAAA;IACA,4CAAA;IAGA,6CAAA;IACA,4CAAA;IAGA,iDAAA;IACA,yCAAA;IACA,kDAAA;IACA,sDAAA;IAKA,kDAAA;IACA,gDAAA;EFuHF;AACF;AG9IA;EACE;IACE,4CAAA;IACA,4CAAA;IACA,4CAAA;IACA,2CAAA;IACA,yCAAA;IACA,8CAAA;IACA,uCAAA;IACA,sCAAA;IACA,2CAAA;IACA,+CAAA;EHgJF;AACF;AIlKA;EACE;;;IAGE,sBAAA;EJoKF;EIjKA;IACE,uCAAA;IACA,8BAAA;YAAA,sBAAA;EJmKF;EIhKA;IACE,SAAA;IACA,2BAAA;IACA,yCAAA;EJkKF;EI/JA;IACE,wBAAA;EJiKF;AACF;AKhLA;EACE;;;;;IAKE,gCAAA;IACA,iCAAA;ELkLF;EK/KA;;;;IAIE,gCAAA;ELiLF;EK9KA;;;;;;IAME,aAAA;IACA,2CAAA;IACA,0CAAA;ELgLF;EK7KA;IACE,iCAAA;EL+KF;EK5KA;IACE,iCAAA;EL8KF;EK3KA;IACE,iCAAA;EL6KF;EK1KA;IACE,iCAAA;EL4KF;EKzKA;IACE,iCAAA;EL2KF;EKxKA;IACE,iCAAA;EL0KF;AACF;AM/NA;EACE;IACE;;;MAGE,gCAAA;MACA,sCAAA;MACA,qCAAA;MACA,uCAAA;INiOF;IM3NA;;;MAGE,mCAAA;MACA,8CAAA;IN6NF;EACF;AACF;AOhPA;EAME;IACE,4CAAA;IACA,sCAAA;IACA,qDAAA;IAEA,oBAAA;IACA,mBAAA;IACA,uBAAA;IACA,sBAAA;IACA,oCAAA;IACA,sCAAA;IACA,+DAAA;IACA,kCAAA;IACA,0BAAA;IACA,kCAAA;IACA,oBCjBW;IDkBX,gBCJiB;IDKjB,qBAAA;IACA,eAAA;IACA,qQAAA;EP4OF;EOtOA;IACE,2DAAA;EPwOF;EOrOA;IACE,4DAAA;EPuOF;EOpOA;IEZA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ETmPA;EOtOA;;IAEE,mCAAA;IACA,oBAAA;EPwOF;EOpOE;IACE,0CAAA;IACA,oCAAA;IACA,8CAAA;IACA,0CAAA;IACA,2CAAA;EPsOJ;EOnOE;IACE,4CAAA;IACA,wBAAA;IACA,8CAAA;EPqOJ;EOlOE;;IAEE,0CAAA;IACA,oCAAA;EPoOJ;EOrPE;IACE,4CAAA;IACA,sCAAA;IACA,gDAAA;IACA,4CAAA;IACA,6CAAA;EPuPJ;EOpPE;IACE,8CAAA;IACA,wBAAA;IACA,gDAAA;EPsPJ;EOnPE;;IAEE,4CAAA;IACA,sCAAA;EPqPJ;EOtQE;IACE,0CAAA;IACA,oCAAA;IACA,8CAAA;IACA,0CAAA;IACA,2CAAA;EPwQJ;EOrQE;IACE,4CAAA;IACA,wBAAA;IACA,8CAAA;EPuQJ;EOpQE;;IAEE,0CAAA;IACA,oCAAA;EPsQJ;EOvRE;IACE,0CAAA;IACA,oCAAA;IACA,8CAAA;IACA,0CAAA;IACA,2CAAA;EPyRJ;EOtRE;IACE,4CAAA;IACA,wBAAA;IACA,8CAAA;EPwRJ;EOrRE;;IAEE,0CAAA;IACA,oCAAA;EPuRJ;EOxSE;IACE,yCAAA;IACA,mCAAA;IACA,6CAAA;IACA,yCAAA;IACA,0CAAA;EP0SJ;EOvSE;IACE,2CAAA;IACA,wBAAA;IACA,6CAAA;EPySJ;EOtSE;;IAEE,yCAAA;IACA,mCAAA;EPwSJ;EOzTE;IACE,uCAAA;IACA,iCAAA;IACA,2CAAA;IACA,uCAAA;IACA,wCAAA;EP2TJ;EOxTE;IACE,yCAAA;IACA,wBAAA;IACA,2CAAA;EP0TJ;EOvTE;;IAEE,uCAAA;IACA,iCAAA;EPyTJ;EOrTA;IACE,uCAAA;IACA,yCAAA;IACA,kBCvEW;ER8Xb;EOpTA;IACE,uCAAA;IACA,yCAAA;IACA,eC3EW;ERiYb;EOnTA;IACE,kBAAA;IACA,WAAA;IACA,YAAA;IACA,UAAA;IACA,YAAA;IACA,kCAAA;IACA,4BAAA;IACA,gDAAA;IACA,eAAA;EPqTF;EOlTA;;IAEE,kBAAA;IACA,QAAA;IACA,SAAA;IACA,WAAA;IACA,WAAA;IACA,8BAAA;IACA,WAAA;EPoTF;EOjTA;IACE,8CAAA;EPmTF;EOhTA;IACE,+CAAA;EPkTF;EO/SA;IACE,2BAAA;IACA,wCAAA;EPiTF;EO9SA;IE5FA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ET6YA;AACF;AU7aA;EACE;IACE,kBAAA;IACA,aAAA;IACA,sBAAA;IACA,mEAAA;IACA,kCAAA;IACA,yCAAA;EV+aF;EU5aA;IACE,mBAAA;EV8aF;EU3aA;IACE,kFAAA;IACA,8CAAA;IACA,mBAAA;EV6aF;EU1aA;IACE,kFAAA;IACA,6CAAA;IACA,gBAAA;EV4aF;EUzaA;IACE,qMAAA;EV2aF;EUtaA;;IAEE,qCAAA;IACA,+BAAA;IACA,2BAAA;EVwaF;EUraA;IACE,cAAA;IACA,qBAAA;EVuaF;EUpaA;IACE,kBAAA;IACA,QAAA;IACA,UAAA;IACA,WAAA;EVsaF;EUnaA;;;IAGE,aAAA;EVqaF;EUlaA;IACE,aAAA;IACA,mBAAA;IACA,8BAAA;IACA,QAAA;IACA,+CAAA;IACA,wCAAA;EVoaF;EUjaA;IACE,SAAA;EVmaF;EUhaA;IACE,kFAAA;EVkaF;EU/ZA;IACE,4CAAA;IACA,wCAAA;EViaF;EU9ZA;IACE,kFAAA;EVgaF;EU7ZA;IACE,eAAA;IACA,2BAAA;IACA,eFhFW;IEiFX,gBFpEiB;ERmenB;EU5ZA;IACE,eAAA;IACA,4BAAA;IACA,kBFzFW;ERufb;EU3ZA;IACE,eAAA;IACA,2BAAA;IACA,oBF9FW;ER2fb;EU1ZA;IACE,gBAAA;EV4ZF;EUzZA;;;IAGE,YAAA;EV2ZF;EUxZA;;;IAGE,aAAA;EV0ZF;AACF;AW9gBA;EACE;IACE,aAAA;IACA,uBAAA;IACA,QAAA;IACA,kBAAA;IACA,wCAAA;IACA,6CAAA;IACA,gBAAA;IACA,2BAAA;IACA,gDAAA;IACA,kBHPW;ERuhBb;EW5gBE;IACE,mCAAA;IACA,4CAAA;IACA,qCAAA;EX8gBJ;EWjhBE;IACE,qCAAA;IACA,8CAAA;IACA,uCAAA;EXmhBJ;EWthBE;IACE,mCAAA;IACA,4CAAA;IACA,qCAAA;EXwhBJ;EW3hBE;IACE,mCAAA;IACA,4CAAA;IACA,qCAAA;EX6hBJ;EWhiBE;IACE,kCAAA;IACA,2CAAA;IACA,oCAAA;EXkiBJ;EWriBE;IACE,gCAAA;IACA,yCAAA;IACA,kCAAA;EXuiBJ;AACF;AYxjBA;EAGE;IACE,sCAAA;IACA,qCAAA;IACA,8BAAA;IACA,uBAAA;IACA,oBAAA;IAEA,oBAAA;IACA,mBAAA;IACA,QAAA;IACA,uBAAA;IACA,kCAAA;IAIA,oBAAA;IACA,wCAAA;IACA,qCAAA;IACA,4BAAA;IACA,oCAAA;IACA,oBJtBW;IIuBX,gBJPiB;IIQjB,cAAA;IACA,sBAAA;IACA,mBAAA;EZojBF;EYhjBE;IACE,yBAAA;IACA,sCAAA;EZkjBJ;EY/iBE;IACE,uFAAA;IACA,2EAAA;IACA,+EAAA;EZijBJ;EY9iBE;IACE,uFAAA;IACA,0BAAA;IACA,wCAAA;EZgjBJ;EY9jBE;IACE,yBAAA;IACA,wCAAA;EZgkBJ;EY7jBE;IACE,yFAAA;IACA,6EAAA;IACA,iFAAA;EZ+jBJ;EY5jBE;IACE,yFAAA;IACA,0BAAA;IACA,wCAAA;EZ8jBJ;EY5kBE;IACE,yBAAA;IACA,sCAAA;EZ8kBJ;EY3kBE;IACE,uFAAA;IACA,2EAAA;IACA,+EAAA;EZ6kBJ;EY1kBE;IACE,uFAAA;IACA,0BAAA;IACA,wCAAA;EZ4kBJ;EY1lBE;IACE,yBAAA;IACA,sCAAA;EZ4lBJ;EYzlBE;IACE,uFAAA;IACA,2EAAA;IACA,+EAAA;EZ2lBJ;EYxlBE;IACE,uFAAA;IACA,0BAAA;IACA,wCAAA;EZ0lBJ;EYxmBE;IACE,yBAAA;IACA,qCAAA;EZ0mBJ;EYvmBE;IACE,sFAAA;IACA,0EAAA;IACA,8EAAA;EZymBJ;EYtmBE;IACE,sFAAA;IACA,0BAAA;IACA,wCAAA;EZwmBJ;EYtnBE;IACE,yBAAA;IACA,mCAAA;EZwnBJ;EYrnBE;IACE,oFAAA;IACA,wEAAA;IACA,4EAAA;EZunBJ;EYpnBE;IACE,oFAAA;IACA,0BAAA;IACA,wCAAA;EZsnBJ;EYlnBA;IACE,uBAAA;IAEA,kBAAA;IACA,oBJpDW;ERuqBb;EYhnBA;IACE,uBAAA;IAEA,qBAAA;IACA,oBJzDW;ER0qBb;EY9mBA;IACE,UAAA;IACA,WAAA;IACA,aAAA;IACA,kBAAA;IACA,8BAAA;IACA,0BAAA;IACA,WAAA;EZgnBF;EY7mBA;IACE,iCAAA;IACA,mBAAA;IACA,kCAAA;EZ+mBF;EY5mBA;IACE,gDAAA;IACA,mDAAA;IACA,kDAAA;IACA,qCAAA;IACA,6BAAA;IACA,0BAAA;IAEA,oBAAA;IACA,wCAAA;IACA,gBAAA;IACA,2CAAA;IACA,oBJ1FW;II2FX,gBJ3EiB;II4EjB,cAAA;IACA,sBAAA;IACA,mBAAA;EZ6mBF;EY1mBA;;IAEE,oBAAA;IACA,mBAAA;IACA,wCAAA;IACA,oBAAA;EZ4mBF;EYzmBA;IACE,wCAAA;IACA,gDAAA;EZ2mBF;EYxmBA;IACE,wCAAA;IACA,gDAAA;IACA,kCAAA;EZ0mBF;EYtmBE;IACE,kDAAA;IACA,qCAAA;EZwmBJ;EY1mBE;IACE,oDAAA;IACA,qCAAA;EZ4mBJ;EY9mBE;IACE,kDAAA;IACA,qCAAA;EZgnBJ;EYlnBE;IACE,kDAAA;IACA,qCAAA;EZonBJ;EYtnBE;IACE,iDAAA;IACA,qCAAA;EZwnBJ;EY1nBE;IACE,+CAAA;IACA,qCAAA;EZ4nBJ;EYxnBA;IACE,6BAAA;IAEA,wCAAA;IACA,UAAA;EZynBF;EYtnBA;IACE,6BAAA;IAEA,wCAAA;IACA,UAAA;IACA,oBJrIW;ER4vBb;EYpnBA;;IAEE,kBAAA;EZsnBF;EYnnBA;;IAEE,qBAAA;EZqnBF;AACF;Aa1wBA;EACE;IACE,WAAA;IACA,gBAAA;IACA,2BAAA;IACA,gDAAA;IACA,yBAAA;Eb4wBF;EazwBA;;IAEE,iBAAA;IACA,+CAAA;IACA,gBAAA;IACA,sBAAA;Eb2wBF;EaxwBA;IACE,wBAAA;IACA,4BAAA;IACA,kBLhBW;IKiBX,gBLFiB;IKGjB,yBAAA;Eb0wBF;EavwBA;IACE,wCAAA;EbywBF;EatwBA;IACE,wCAAA;EbwwBF;EarwBA;;IAEE,wCAAA;EbuwBF;EapwBA;;IAEE,SAAA;EbswBF;EalwBE;IACE,4CAAA;IACA,mCAAA;EbowBJ;EatwBE;IACE,8CAAA;IACA,qCAAA;EbwwBJ;Ea1wBE;IACE,4CAAA;IACA,mCAAA;Eb4wBJ;Ea9wBE;IACE,4CAAA;IACA,mCAAA;EbgxBJ;EalxBE;IACE,2CAAA;IACA,kCAAA;EboxBJ;EatxBE;IACE,yCAAA;IACA,gCAAA;EbwxBJ;EapxBA;;IAEE,gBAAA;EbsxBF;EanxBA;IACE,gBAAA;EbqxBF;AACF;Ac70BA;EACE;IACE,aAAA;IACA,eAAA;IACA,mBAAA;IACA,8BAAA;IACA,SAAA;IACA,kBAAA;IACA,+CAAA;IACA,yCAAA;Ed+0BF;Ec50BA;IACE,2BAAA;IACA,eNTW;IMUX,gBNGiB;IMFjB,qBAAA;Ed80BF;Ec30BA;IACE,aAAA;IACA,mBAAA;IACA,QAAA;IACA,SAAA;IACA,UAAA;IACA,gBAAA;Ed60BF;Ec10BA;IACE,oBAAA;IACA,mBAAA;IACA,QAAA;IACA,iBAAA;IACA,kCAAA;IACA,2BAAA;IACA,gDAAA;IACA,qBAAA;IACA,8CAAA;Ed40BF;Ecz0BA;IACE,wCAAA;Ed20BF;Ecx0BA;ILjBA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ET41BA;Ec10BA;IACE,mCAAA;IACA,gBNhCiB;ER42BnB;Ecz0BA;IACE,4BAAA;IACA,oBAAA;Ed20BF;AACF;Aet4BA;EAKE;IACE,kBAAA;IACA,oBAAA;IACA,WAAA;Efo4BF;Eej4BA;IACE,gBAAA;IACA,iBAAA;Efm4BF;AACF;AgB94BA;EAKE;;IAEE,iBAAA;EhB44BF;EgBz4BA;IACE,kBAAA;IACA,oBAAA;IACA,WAAA;EhB24BF;EgBx4BA;IACE,aAAA;IACA,gDAAA;IACA,aAAA;IACA,wCAAA;IACA,kCAAA;IACA,2BAAA;IACA,yCAAA;IACA,+BAAA;IACA,6BAAA;EhB04BF;EgBv4BA;IACE,cAAA;EhBy4BF;EgBt4BA;IACE,aAAA;IACA,mBAAA;IACA,8BAAA;IACA,kBAAA;EhBw4BF;EgBr4BA;IACE,oBAAA;IACA,mBAAA;IACA,uBAAA;IACA,WAAA;IACA,YAAA;IACA,UAAA;IACA,YAAA;IACA,kCAAA;IACA,2BAAA;IACA,gDAAA;IACA,oBR9CW;IQ+CX,eAAA;EhBu4BF;EgBp4BA;IACE,wCAAA;EhBs4BF;EgBn4BA;IP/BA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ETq6BA;EgBr4BA;IACE,kBR5DW;IQ6DX,gBR9CiB;IQ+CjB,0BAAA;EhBu4BF;EgBp4BA;IACE,aAAA;IACA,sBAAA;IACA,QAAA;EhBs4BF;EgBn4BA;;IAEE,aAAA;IACA,qCAAA;IACA,QAAA;EhBq4BF;EgBl4BA;IACE,aAAA;IACA,mBAAA;IACA,uBAAA;IACA,YAAA;IACA,4BAAA;IACA,oBRrFW;IQsFX,gBRtEiB;IQuEjB,kBAAA;IACA,yBAAA;EhBo4BF;EgBj4BA;IACE,aAAA;IACA,mBAAA;IACA,uBAAA;IACA,YAAA;IACA,YAAA;IACA,kCAAA;IACA,2BAAA;IACA,gDAAA;IACA,kBRnGW;IQoGX,eAAA;EhBm4BF;EgBh4BA;IACE,wCAAA;EhBk4BF;EgB/3BA;IPnFA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ETq9BA;EgBj4BA;IACE,4BAAA;EhBm4BF;EgBh4BA;IACE,gBRpGmB;IQqGnB,mDAAA;EhBk4BF;EgB/3BA;IACE,iCAAA;IACA,yCAAA;EhBi4BF;EgB93BA;IACE,4BAAA;IACA,oBAAA;IACA,YAAA;EhBg4BF;AACF;AiBhgCA;EACE;IACE,aAAA;IACA,mBAAA;IACA,QAAA;IACA,mBAAA;EjBkgCF;EiB//BA;IACE,oBAAA;IACA,mBAAA;IACA,WAAA;IACA,UAAA;IACA,SAAA;IACA,gDAAA;IACA,cAAA;IACA,aAAA;IACA,uBAAA;IACA,gBAAA;IACA,eAAA;EjBigCF;EiB9/BA;IRCA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ETggCA;EiBhgCA;IACE,cAAA;IACA,iBAAA;IACA,iBAAA;IACA,4BAAA;IACA,oBTjCW;ISkCX,YAAA;EjBkgCF;EiB//BA;IACE,2BAAA;IACA,YAAA;EjBigCF;EiB9/BA;IACE,2BAAA;IACA,YAAA;EjBggCF;EiB7/BA;IACE,aAAA;IACA,yBAAA;IACA,gBAAA;EjB+/BF;EiB5/BA;;IR5BA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;IQ6BE,oBAAA;EjBggCF;AACF;AkBvjCA;EACE;IACE,eAAA;IACA,QAAA;IACA,0BAAA;IACA,aAAA;IACA,uBAAA;IACA,uBAAA;IACA,uBAAA;IACA,oCAAA;ElByjCF;EkBtjCA;IACE,aAAA;ElBwjCF;EkBrjCA;IACE,aAAA;IACA,sBAAA;IACA,WAAA;IACA,gBAAA;IACA,8BAAA;IACA,gBAAA;IACA,kCAAA;IACA,2BAAA;IACA,yCAAA;IACA,+BAAA;ElBujCF;EkBpjCA;IACE,WAAA;IACA,kBAAA;IACA,YAAA;IACA,+CAAA;IACA,2BAAA;IACA,gDAAA;IACA,eVpCW;ER0lCb;EkBnjCA;ITjBA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ETukCA;EkBrjCA;IACE,SAAA;IACA,cAAA;IACA,gBAAA;IACA,gBAAA;ElBujCF;AACF;AmB5mCA;EACE;;IAEE,SAAA;IACA,UAAA;IACA,gBAAA;EnB8mCF;EmB3mCA;IACE,kBAAA;EnB6mCF;EmB1mCA;IACE,kCAAA;EnB4mCF;EmBzmCA;IACE,aAAA;EnB2mCF;EmBxmCA;IVOA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ETomCA;EmB1mCA;IACE,aAAA;IACA,mBAAA;IACA,QAAA;IACA,gBAAA;IACA,kCAAA;IACA,2BAAA;IACA,oBX3BW;IW4BX,eAAA;IACA,yBAAA;YAAA,iBAAA;EnB4mCF;EmBzmCA;IACE,wCAAA;EnB2mCF;EmBxmCA;IACE,iCAAA;IACA,yCAAA;EnB0mCF;EmBvmCA;IACE,cAAA;IACA,QAAA;IACA,SAAA;IACA,iCAAA;IACA,oCAAA;IACA,mCAAA;IACA,uCAAA;EnBymCF;EmBtmCA;IACE,wBAAA;EnBwmCF;AACF;AoBjqCA;EACE;IACE,kBAAA;IACA,oBAAA;EpBmqCF;EoB7pCA;IACE,qBAAA;IACA,QAAA;IACA,SAAA;IACA,sBAAA;IACA,WAAA;IACA,qBAAA;IACA,mCAAA;IACA,kCAAA;EpB+pCF;EoB5pCA;IACE,kBAAA;IACA,aAAA;IACA,gBAAA;IACA,SAAA;IACA,cAAA;IACA,mEAAA;IACA,kCAAA;IACA,2BAAA;IACA,yCAAA;IACA,+BAAA;IACA,6BAAA;EpB8pCF;EoB3pCA;IACE,cAAA;EpB6pCF;EoB1pCA;IACE,aAAA;IACA,mBAAA;IACA,WAAA;IACA,iBAAA;IACA,SAAA;IACA,2BAAA;IACA,gDAAA;IACA,oBZ1CW;IY2CX,gBAAA;IACA,qBAAA;IACA,eAAA;EpB4pCF;EoBzpCA;;IAEE,2BAAA;IACA,wCAAA;IACA,aAAA;EpB2pCF;EoBxpCA;IACE,iCAAA;IACA,yCAAA;EpB0pCF;EoBvpCA;IACE,4BAAA;IACA,oBAAA;IACA,YAAA;EpBypCF;EoBtpCA;IACE,WAAA;IACA,aAAA;IACA,YAAA;IACA,wCAAA;EpBwpCF;EoBrpCA;IACE,iBAAA;IACA,4BAAA;IACA,oBZ9EW;IY+EX,gBZ/DiB;IYgEjB,yBAAA;EpBupCF;AACF;AqB3uCA;EACE;IACE,eAAA;IACA,QAAA;IACA,0BAAA;IACA,aAAA;IACA,mBAAA;IACA,uBAAA;IACA,0BAAA;IACA,oCAAA;ErB6uCF;EqB1uCA;IACE,aAAA;ErB4uCF;EqBzuCA;IACE,WAAA;IACA,gBAAA;ErB2uCF;EqBxuCA;IACE,gBAAA;ErB0uCF;EqBvuCA;IACE,gBAAA;ErByuCF;EqBtuCA;IACE,aAAA;IACA,sBAAA;IACA,+CAAA;IACA,mEAAA;IACA,kCAAA;IACA,2BAAA;IACA,yCAAA;IACA,+BAAA;ErBwuCF;EqBruCA;IACE,aAAA;IACA,mBAAA;IACA,8BAAA;IACA,kBAAA;IACA,+CAAA;ErBuuCF;EqBpuCA;IACE,SAAA;IACA,eb5CW;Ia6CX,gBbhCiB;ERswCnB;EqBnuCA;IACE,aAAA;IACA,gBAAA;ErBquCF;EqBluCA;IACE,aAAA;IACA,mBAAA;IACA,yBAAA;IACA,QAAA;IACA,kBAAA;IACA,4CAAA;ErBouCF;AACF;AsBjyCA;EACE;IACE,eAAA;IACA,4BAAA;IACA,kBdLW;ERwyCb;AACF;AuBxyCA;EACE;IACE,cAAA;IACA,SAAA;IACA,4CAAA;EvB0yCF;EuBvyCA;IACE,aAAA;IACA,mBAAA;IACA,gBAAA;IACA,4BAAA;IACA,kBfbW;ERszCb;EuBtyCA;;IAEE,OAAA;IACA,WAAA;IACA,4CAAA;EvBwyCF;EuBryCA;IACE,eAAA;EvBuyCF;AACF;AwB/zCA;EACE;IACE,aAAA;IACA,sBAAA;IACA,mBAAA;IACA,kBAAA;IACA,kBAAA;ExBi0CF;EwBxzCA;IACE,aAAA;ExB0zCF;EwBvzCA;IACE,aAAA;IACA,mBAAA;IACA,uBAAA;IACA,WAAA;IACA,YAAA;IACA,mBAAA;IACA,kBAAA;IACA,4BAAA;IACA,wCAAA;IACA,eAAA;ExByzCF;EwBtzCA;IACE,SAAA;IACA,2BAAA;IACA,ehBlCW;IgBmCX,gBhBtBiB;ER80CnB;EwBrzCA;IACE,gBAAA;IACA,kBAAA;IACA,4BAAA;IACA,kBhB5CW;ERm2Cb;AACF;AyB51CA;EACE;IACE,oBAAA;IACA,2BAAA;EzB81CF;EyB31CA;IACE,kBAAA;IACA,UAAA;IACA,WAAA;IACA,UAAA;IACA,YAAA;IACA,gBAAA;IACA,qBAAA;IACA,mBAAA;IACA,SAAA;EzB61CF;EyB11CA;IACE,aAAA;IACA,YAAA;IACA,6BAAA;IACA,eAAA;IACA,eAAA;EzB41CF;EyBz1CA;;;IAGE,8BAAA;EzB21CF;EyBx1CA;;;IAGE,kBAAA;EzB01CF;EyBv1CA;IACE,kCAAA;IACA,0CAAA;IACA,mBAAA;EzBy1CF;EyBt1CA;IACE,YAAA;IACA,oBAAA;EzBw1CF;EyBr1CA;IACE,eAAA;EzBu1CF;EyBp1CA;IACE,eAAA;EzBs1CF;AACF;A0Bn5CA;EACE;IACE,MAAA;IACA,kBAAA;E1Bq5CF;E0Bh5CA;IACE,YAAA;E1Bk5CF;E0B/4CA;IACE,gEAAA;E1Bi5CF;E0B94CA;IACE,gBAAA;IACA,uBAAA;IACA,mBAAA;E1Bg5CF;E0B74CA;IACE,oBAAA;IACA,WAAA;IACA,YAAA;IACA,cAAA;IACA,iBAAA;IACA,mBAAA;E1B+4CF;E0B54CA;IACE,WAAA;IACA,YAAA;IACA,oBAAA;E1B84CF;E0B34CA;IACE,yCAAA;IACA,0CAAA;IACA,4CAAA;IACA,gBAAA;IACA,gBAAA;IACA,6BAAA;IAKA,cAAA;IACA,YAAA;IACA,mGAAA;E1By4CF;E0Bt4CA;;IAEE,oBAAA;IACA,UAAA;E1Bw4CF;E0Br4CA;IACE,cAAA;IACA,mEAAA;IACA,UAAA;E1Bu4CF;E0Bj4CA;IACE,mEAAA;IACA,qBAAA;E1Bm4CF;E0B/3CA;IACE,aAAA;IACA,eAAA;IACA,MAAA;E1Bi4CF;E0B53CA;IjB5DA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ET27CA;E0B93CA;;IAEE,sCAAA;IACA,uCAAA;IACA,8BAAA;IAEA,gBAAA;E1B+3CF;E0B13CA;;IAEE,WAAA;IACA,YAAA;IACA,cAAA;IACA,mBAAA;IACA,iBAAA;IACA,4BAAA;E1B43CF;E0Bz3CA;;IAEE,aAAA;E1B23CF;E0Bx3CA;IACE,4EAAA;E1B03CF;E0Bv3CA;IACE,wDAAA;IACA,6CAAA;E1By3CF;E0Bt3CA;IACE,oBAAA;IACA,UAAA;E1Bw3CF;E0Br3CA;;IAEE,oBAAA;IACA,YAAA;E1Bu3CF;E0Bp3CA;;IAEE,mEAAA;E1Bs3CF;E0Bj3CA;IACE,0BAAA;IACA,8CAAA;IACA,8BAAA;IAEA,6BAAA;IACA,8BAAA;IACA,iCAAA;IACA,UAAA;IACA,SAAA;IACA,gBAAA;IACA,eAAA;IACA,oBAAA;IACA,mBAAA;IACA,uBAAA;IACA,aAAA;IACA,cAAA;E1Bk3CF;E0B/2CA;IACE,cAAA;IACA,cAAA;IACA,WAAA;IACA,YAAA;IACA,oBAAA;E1Bi3CF;E0B92CA;;IAEE,6BAAA;IACA,yBAAA;E1Bg3CF;E0B72CA;IACE,uBAAA;E1B+2CF;E0B52CA;IjB1JA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ETygDA;E0B92CA;IACE,cAAA;IACA,6BAAA;IACA,YAAA;E1Bg3CF;E0B72CA;IACE,oBAAA;E1B+2CF;E0B52CA;IACE,oBAAA;IACA,yCAAA;IACA,0CAAA;IACA,gBAAA;IACA,mBAAA;E1B82CF;E0B32CA;IACE,WAAA;IACA,YAAA;IACA,oBAAA;IACA,eAAA;E1B62CF;AACF;A2BxjDA;EACE;IACE,eAAA;IACA,8BAAA;IACA,aAAA;IACA,sBAAA;IACA,2BAAA;IACA,yCAAA;IACA,+BAAA;IACA,kBAAA;IACA,qDAAA;E3B0jDF;E2BvjDA;IACE,mBAAA;IACA,eAAA;E3ByjDF;E2BtjDA;IACE,iBAAA;IACA,YAAA;IACA,4BAAA;E3BwjDF;E2BrjDA;IACE,iBAAA;IACA,YAAA;IACA,2BAAA;E3BujDF;E2BpjDA;IACE,eAAA;IACA,YAAA;IACA,4BAAA;E3BsjDF;E2BnjDA;IACE,eAAA;IACA,YAAA;IACA,2BAAA;E3BqjDF;E2BljDA;IACE,eAAA;IACA,QAAA;IACA,wCAAA;IACA,oCAAA;IACA,UAAA;IACA,kBAAA;IACA,mDAAA;E3BojDF;E2BjjDA;IACE,mBAAA;IACA,UAAA;E3BmjDF;E2BhjDA;IACE,aAAA;IACA,mBAAA;IACA,8BAAA;IACA,kBAAA;IACA,+CAAA;E3BkjDF;E2B/iDA;IACE,SAAA;IACA,enBnEW;ImBoEX,gBnBvDiB;ERwmDnB;E2B9iDA;IACE,cAAA;IACA,aAAA;IACA,gBAAA;E3BgjDF;E2B7iDA;IACE,aAAA;IACA,mBAAA;IACA,yBAAA;IACA,QAAA;IACA,kBAAA;IACA,4CAAA;E3B+iDF;E2B5iDA;IACE;;MAEE,gBAAA;I3B8iDF;EACF;AACF;A4B9oDA;EACE;IACE,aAAA;IACA,sBAAA;E5BgpDF;E4B7oDA;IACE,gBAAA;IACA,wCAAA;IACA,gDAAA;E5B+oDF;E4B5oDA;IACE,gBAAA;E5B8oDF;E4B3oDA;IACE,2CAAA;IACA,4CAAA;E5B6oDF;E4B1oDA;IACE,+CAAA;IACA,8CAAA;E5B4oDF;E4BzoDA;IACE,SAAA;E5B2oDF;E4BxoDA;IACE,aAAA;IACA,mBAAA;IACA,8BAAA;IACA,WAAA;IACA,kBAAA;IACA,YAAA;IACA,2BAAA;IACA,yCAAA;IACA,oBpBnCW;IoBoCX,gBpBtBiB;IoBuBjB,gBAAA;IACA,eAAA;E5B0oDF;E4BvoDA;IACE,wCAAA;E5ByoDF;E4BtoDA;InBtBA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ET+pDA;E4BxoDA;IACE,cAAA;IACA,UAAA;IACA,WAAA;IACA,iBAAA;IACA,WAAA;IACA,oCAAA;IACA,qCAAA;IACA,wBAAA;IACA,sCAAA;E5B0oDF;E4BvoDA;IACE,0BAAA;E5ByoDF;E4BtoDA;IACE,gBAAA;E5BwoDF;E4BroDA;IACE,aAAA;IACA,4CAAA;IACA,gDAAA;E5BuoDF;AACF;A6B/sDA;EACE;IACE,aAAA;IACA,0EAAA;E7BitDF;E6B9sDA;IACE,mBAAA;IACA,oCAAA;IACA,0DAAA;E7BgtDF;E6B7sDA;IACE,4CAAA;E7B+sDF;E6B1sDA;IACE,QAAA;IACA,mBAAA;E7B4sDF;E6BzsDA;IACE,gBAAA;IACA,mBAAA;IACA,kCAAA;E7B2sDF;E6BxsDA;IACE,iCAAA;IACA,yCAAA;E7B0sDF;E6BnsDA;IACE,QAAA;IACA,kBAAA;IACA,wCAAA;E7BqsDF;E6BlsDA;IACE,mBAAA;IACA,6BAAA;IACA,mBAAA;IACA,0DAAA;E7BosDF;E6BjsDA;IACE,oCAAA;IACA,yCAAA;E7BmsDF;E6B/rDA;IACE,uBAAA;E7BisDF;E6B9rDA;IACE,yBAAA;E7BgsDF;E6B7rDA;IACE,OAAA;IACA,uBAAA;IACA,kBAAA;E7B+rDF;E6B3rDA;IACE,iBAAA;IACA,kBrB5EW;ERywDb;E6B1rDA;IACE,kBAAA;IACA,erB/EW;ER2wDb;E6BzrDA;IACE,aAAA;E7B2rDF;E6BxrDA;IACE,cAAA;E7B0rDF;AACF;A8BxxDA;EACE;IACE,kBAAA;IACA,4BAAA;IACA,aAAA;IACA,gBAAA;E9B0xDF;E8BvxDA;IACE,cAAA;E9ByxDF;E8BtxDA;IACE,iBAAA;IACA,kCAAA;IACA,6BAAA;IACA,sCAAA;IACA,oBtBdW;IsBeX,kBAAA;E9BwxDF;E8BrxDA;IACE,kBAAA;IACA,UAAA;IACA,WAAA;IACA,sCAAA;IACA,wBAAA;E9BuxDF;E8BpxDA;IACE,YAAA;IACA,SAAA;IACA,iBAAA;E9BsxDF;E8BnxDA;IACE,SAAA;IACA,SAAA;IACA,iBAAA;E9BqxDF;E8BlxDA;IACE,QAAA;IACA,WAAA;IACA,gBAAA;E9BoxDF;E8BjxDA;IACE,QAAA;IACA,UAAA;IACA,gBAAA;E9BmxDF;AACF;A+B/zDA;EACE;IACE,kBAAA;IACA,8BAAA;IACA,aAAA;IACA,gBAAA;IACA,2BAAA;IACA,yCAAA;IACA,wCAAA;IACA,kCAAA;IACA,+BAAA;E/Bi0DF;E+B9zDA;IACE,cAAA;E/Bg0DF;E+B7zDA;IACE,kBAAA;IACA,wCAAA;IACA,+CAAA;IACA,0DAAA;IACA,kBvBzBW;IuB0BX,gBvBXiB;ER00DnB;E+B5zDA;IACE,aAAA;IACA,kBvB/BW;ER61Db;E+B3zDA;IACE,aAAA;IACA,mBAAA;IACA,yBAAA;IACA,QAAA;IACA,kBAAA;IACA,4CAAA;E/B6zDF;E+B1zDA;IACE,kBAAA;IACA,UAAA;IACA,WAAA;IACA,yCAAA;IACA,wCAAA;IACA,wBAAA;E/B4zDF;E+BzzDA;IACE,YAAA;IACA,SAAA;IACA,iBAAA;IACA,aAAA;IACA,cAAA;E/B2zDF;E+BxzDA;IACE,SAAA;IACA,SAAA;IACA,iBAAA;IACA,eAAA;IACA,gBAAA;E/B0zDF;E+BvzDA;IACE,QAAA;IACA,WAAA;IACA,gBAAA;IACA,gBAAA;IACA,cAAA;E/ByzDF;E+BtzDA;IACE,QAAA;IACA,UAAA;IACA,gBAAA;IACA,aAAA;IACA,eAAA;E/BwzDF;E+BjzDA;IACE,gBAAA;E/BmzDF;E+BhzDA;IACE,aAAA;IACA,SAAA;E/BkzDF;AACF;AgCr5DA;EACE;IACE,eAAA;IACA,WAAA;IACA,YAAA;IACA,0BAAA;IACA,aAAA;IACA,sBAAA;IACA,QAAA;IACA,uBAAA;IACA,8CAAA;EhCu5DF;EgCp5DA;IACE,aAAA;IACA,gBAAA;IACA,sBAAA;IACA,wCAAA;IACA,kCAAA;IACA,2BAAA;IACA,yCAAA;IACA,+BAAA;EhCs5DF;EgCn5DA;IACE,aAAA;IACA,mBAAA;IACA,8BAAA;IACA,kBAAA;IACA,+CAAA;IACA,kBxB1BW;IwB2BX,gBxBZiB;ERi6DnB;EgCl5DA;IACE,aAAA;IACA,kBxBhCW;ERo7Db;EgCh5DE;IACE,mCAAA;IACA,4CAAA;EhCk5DJ;EgCp5DE;IACE,qCAAA;IACA,8CAAA;EhCs5DJ;EgCx5DE;IACE,mCAAA;IACA,4CAAA;EhC05DJ;EgC55DE;IACE,mCAAA;IACA,4CAAA;EhC85DJ;EgCh6DE;IACE,kCAAA;IACA,2CAAA;EhCk6DJ;EgCp6DE;IACE,gCAAA;IACA,yCAAA;EhCs6DJ;AACF;AiCh9DA;EACE;IACE,aAAA;IACA,YAAA;IACA,SAAA;IACA,UAAA;IACA,gBAAA;EjCk9DF;EiC/8DA;IACE,oBAAA;IACA,mBAAA;IACA,uBAAA;IACA,eAAA;IACA,YAAA;IACA,cAAA;IACA,wCAAA;IACA,kCAAA;IACA,2BAAA;IACA,yCAAA;IACA,qBAAA;IACA,8CAAA;EjCi9DF;EiC98DA;IACE,wCAAA;EjCg9DF;EiC78DA;IxBDA,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ETi9DA;EiC/8DA;IACE,iCAAA;IACA,yCAAA;IACA,qCAAA;EjCi9DF;EiC98DA;IACE,4BAAA;IACA,YAAA;IACA,oBAAA;EjCg9DF;EiC18DA;IACE,MAAA;EjC48DF;EiCz8DA;IACE,gBAAA;EjC28DF;EiCx8DA;IACE,iBAAA;EjC08DF;EiCv8DA;IACE,2CAAA;IACA,8CAAA;EjCy8DF;EiCt8DA;IACE,4CAAA;IACA,+CAAA;EjCw8DF;EiCr8DA;;IAEE,kBAAA;IACA,UAAA;EjCu8DF;EiCn8DA;IACE,eAAA;IACA,YAAA;IACA,cAAA;IACA,oBzB9EW;ERmhEb;EiCl8DA;IACE,eAAA;IACA,YAAA;IACA,eAAA;IACA,oBzBnFW;ERuhEb;EiC97DA;IACE,QAAA;IACA,eAAA;EjCg8DF;AACF;AkChiEA;EACE;IACE,aAAA;IACA,eAAA;IACA,mBAAA;IACA,QAAA;IACA,SAAA;IACA,UAAA;IACA,gBAAA;IACA,kB1BNW;ERwiEb;EkC/hEA;IACE,aAAA;IACA,mBAAA;IACA,QAAA;IACA,4BAAA;ElCiiEF;EkC9hEA;IACE,4BAAA;IACA,YAAA;ElCgiEF;EkC7hEA;IACE,oBAAA;IACA,mBAAA;IACA,QAAA;IACA,mCAAA;IACA,qBAAA;ElC+hEF;EkC5hEA;IACE,0BAAA;ElC8hEF;EkC3hEA;IACE,2BAAA;ElC6hEF;EkCrhEA;IACE,qBAAA;IACA,gBAAA;IACA,sBAAA;IzBdF,gBAAA;IACA,uBAAA;IACA,mBAAA;ETsiEA;EkCrhEA;IACE,UAAA;IACA,YAAA;IACA,4BAAA;IACA,gDAAA;IACA,kBAAA;IACA,oBAAA;IACA,oBAAA;IACA,eAAA;ElCuhEF;EkCphEA;IACE,2BAAA;ElCshEF;AACF;AmCplEA;EACE;IACE,uBAAA;IACA,wBAAA;IACA,2BAAA;IAEA,qBAAA;IACA,sBAAA;IACA,6BAAA;IACA,8BAAA;IACA,sBAAA;IACA,wFAAA;IACA,8BAAA;IACA,kBAAA;IACA,gEAAA;IACA,sBAAA;EnCqlEF;EmCllEA;IACE,uBAAA;IACA,wBAAA;EnColEF;EmCjlEA;IACE,uBAAA;IACA,wBAAA;EnCmlEF;EmC/kEE;IACE,8BAAA;EnCilEJ;EmCllEE;IACE,gCAAA;EnColEJ;EmCrlEE;IACE,8BAAA;EnCulEJ;EmCxlEE;IACE,8BAAA;EnC0lEJ;EmC3lEE;IACE,6BAAA;EnC6lEJ;EmC9lEE;IACE,2BAAA;EnCgmEJ;EmC5lEA;IACE;MACE,yBAAA;InC8lEF;EACF;EmCzlEA;IACE,yBAAA;IACA,2CAAA;IACA,uBAAA;IAEA,kBAAA;IACA,aAAA;IACA,iCAAA;IACA,gBAAA;IACA,0CAAA;IACA,wCAAA;EnC0lEF;EmCvlEA;IACE,6CAAA;IACA,+CAAA;IAEA,aAAA;IACA,mBAAA;IACA,uBAAA;IACA,6CAAA;IACA,YAAA;IACA,YAAA;IACA,gBAAA;IACA,+BAAA;IACA,2CAAA;IACA,YAAA;IACA,cAAA;IACA,uBAAA;IACA,mBAAA;IACA,gCAAA;EnCwlEF;EmCplEE;IACE,6CAAA;IACA,4BAAA;EnCslEJ;EmCxlEE;IACE,+CAAA;IACA,4BAAA;EnC0lEJ;EmC5lEE;IACE,6CAAA;IACA,4BAAA;EnC8lEJ;EmChmEE;IACE,6CAAA;IACA,4BAAA;EnCkmEJ;EmCpmEE;IACE,4CAAA;IACA,4BAAA;EnCsmEJ;EmCxmEE;IACE,0CAAA;IACA,4BAAA;EnC0mEJ;EmCtmEA;IACE,yBAAA;EnCwmEF;EmCrmEA;IACE,0BAAA;EnCumEF;EmCpmEA;IACE,mBAAA;IACA,oB3B9FW;ERosEb;EmCjmEA;IACE,aAAA;IACA,qBAAA;IACA,8BAAA;IACA,SAAA;IACA,gBAAA;IACA,kBAAA;IACA,2BAAA;IACA,kB3B1GW;ER6sEb;EmChmEA;IACE,4BAAA;IACA,kCAAA;EnCkmEF;EmC7lEA;IACE,UAAA;IACA,kEAAA;EnC+lEF;EmC5lEA;IACE,iFAAA;EnC8lEF;EmC3lEA;IACE;MACE,4BAAA;InC6lEF;ImC1lEA;MACE,2BAAA;InC4lEF;EACF;EmCxlEA;IACE,6CAAA;IACA,4BAAA;EnC0lEF;EmCvlEA;IACE,4CAAA;IACA,4BAAA;EnCylEF;EmCtlEA;IACE,oBAAA;IACA,mBAAA;IACA,QAAA;IACA,eAAA;IACA,4BAAA;IACA,kB3BxJW;ERgvEb;EmCrlEA;IACE,oBAAA;IACA,WAAA;IACA,YAAA;IACA,mBAAA;IACA,mCAAA;EnCulEF;EmCplEA;IACE,WAAA;IACA,YAAA;IACA,oBAAA;EnCslEF;EmCnlEA;;IAEE,kCAAA;EnCqlEF;EmChlEA;IACE,kBAAA;IACA,UAAA;IACA,MAAA;IACA,SAAA;IACA,gDAAA;IACA,UAAA;IACA,sCAAA;IACA,oBAAA;IACA,2BAAA;EnCklEF;EmC7kEA;IACE,iDAAA;EnC+kEF;EmC3kEA;IACE,6QAAA;IAUA,0BAAA;EnCokEF;EmCjkEA;IACE,oDAAA;EnCmkEF;EmChkEA;IACE;MACE,2BAAA;InCkkEF;ImC/jEA;MACE,wBAAA;InCikEF;EACF;EmC9jEA;IACE;MACE,2BAAA;InCgkEF;ImC7jEA;MACE,wBAAA;InC+jEF;ImC5jEA;MACE,wBAAA;InC8jEF;EACF;AACF;AoC3yEA;EACE;IACE,yCAAA;IACA,8DAAA;IACA,wDAAA;IACA,gCAAA;IACA,8CAAA;IACA,4CAAA;IACA,kDAAA;IACA,2DAAA;IACA,6CAAA;IACA,mDAAA;IACA,gDAAA;IACA,iCAAA;IACA,0CAAA;IACA,qDAAA;IACA,2DAAA;IACA,gDAAA;IACA,2GAAA;IACA,qEAAA;IACA,kCAAA;IAEA,kBAAA;IACA,gBAAA;IACA,wCAAA;EpC4yEF;EoCzyEA;IACE,kBAAA;IACA,MAAA;IACA,QAAA;IACA,OAAA;IACA,UAAA;IACA,oFAAA;IACA,oBAAA;IACA,WAAA;IACA,sFAAA;IACA,UAAA;IACA,qEAAA;EpC2yEF;EoCxyEA;IACE,aAAA;IACA,iGAAA;EpC0yEF;EoCvyEA;IACE,kBAAA;IACA,cAAA;IACA,WAAA;EpCyyEF;EoCtyEA;IACE,cAAA;IACA,WAAA;EpCwyEF;EoCryEA;IACE,gBAAA;IACA,gBAAA;IACA,yBAAA;YAAA,iBAAA;EpCuyEF;EoCpyEA;IACE,YAAA;IACA,mBAAA;EpCsyEF;EoCnyEA;IACE,cAAA;IACA,eAAA;EpCqyEF;EoClyEA;IACE,kBAAA;IACA,QAAA;IACA,UAAA;IACA,+FAAA;EpCoyEF;EoCjyEA;IACE,kBAAA;IACA,UAAA;EpCmyEF;EoChyEA;;;IAGE,kBAAA;IACA,qCAAA;IACA,UAAA;IACA,oBAAA;IACA,mBAAA;IACA,uBAAA;IACA,sCAAA;IACA,uCAAA;IACA,UAAA;IACA,uCAAA;IACA,6BAAA;IACA,4BAAA;IACA,2BAAA;IACA,0BAAA;IACA,SAAA;IACA,gBAAA;IACA,eAAA;IACA,UAAA;IACA,sMAAA;EpCkyEF;EoC7xEA;;IAEE,eAAA;EpC+xEF;EoC5xEA;IACE,sCAAA;IACA,qPAAA;EpC8xEF;EoC3xEA;IACE,+GAAA;IACA,oPAAA;EpC6xEF;EoC1xEA;IACE,+GAAA;EpC4xEF;EoCzxEA;IACE,qHAAA;EpC2xEF;EoCxxEA;IACE,6NAAA;EpC0xEF;EoCvxEA;IACE,uKAAA;EpCyxEF;EoCtxEA;IACE,6NAAA;EpCwxEF;EoCrxEA;IACE,uKAAA;EpCuxEF;EoCpxEA;;;IAGE,qDAAA;EpCsxEF;EoCnxEA;;;IAGE,sBAAA;EpCqxEF;EoClxEA;;;;I3BxIA,mEAAA;IACA,sCAAA;IACA,4C2B0IsB;I3BzItB,yFAAA;ETg6EA;EoCpxEA;;;;;;IAME,UAAA;EpCsxEF;EoCnxEA;;IAEE,UAAA;EpCqxEF;EoClxEA;IACE,kBAAA;IACA,QAAA;IACA,yBAAA;IACA,OAAA;IACA,UAAA;IACA,aAAA;IACA,uBAAA;IACA,MAAA;IACA,SAAA;IACA,UAAA;IACA,gBAAA;EpCoxEF;EoCjxEA;IACE,kBAAA;IACA,aAAA;IACA,WAAA;IACA,YAAA;IACA,UAAA;IACA,mBAAA;IACA,uBAAA;IACA,SAAA;IACA,eAAA;EpCmxEF;EoChxEA;IACE,wCAAA;IACA,yCAAA;IACA,WAAA;IACA,oDAAA;IACA,kCAAA;IACA,uIAAA;EpCkxEF;EoC9wEA;IACE,gDAAA;IACA,2DAAA;EpCgxEF;EoC7wEA;IACE,kBAAA;IACA,QAAA;IACA,2CAAA;IACA,OAAA;IACA,UAAA;IACA,sBAAA;IACA,2BAAA;IACA,mGAAA;IACA,kBAAA;IACA,aAAA;IACA,sBAAA;IACA,uBAAA;IACA,sBAAA;IACA,2EAAA;IACA,4BAAA;EpC+wEF;EoC5wEA;IACE,kBAAA;IACA,MAAA;IACA,QAAA;IACA,sDAAA;IACA,OAAA;IACA,WAAA;IACA,WAAA;IACA,kFAAA;EpC8wEF;EoC3wEA;IACE,SAAA;EpC6wEF;EoC1wEA;IACE,4CAAA;IACA,kCAAA;IACA,4CAAA;IACA,yCAAA;IACA,kDAAA;EpC4wEF;EoCzwEA;IACE,qCAAA;IACA,QAAA;IACA,SAAA;IACA,UAAA;IACA,sBAAA;IACA,eAAA;IACA,oBAAA;IACA,0GAAA;IAEA,kCAAA;EpC0wEF;EoCrwEA;IACE,WAAA;IACA,OAAA;EpCuwEF;EoCpwEA;;IAEE,aAAA;EpCswEF;EoCnwEA;IACE,mCAAA;EpCqwEF;EoClwEA;IACE,gBAAA;IACA,eAAA;IACA,oBAAA;IACA,iBAAA;IACA,0BAAA;IACA,mCAAA;IACA,sCAAA;EpCowEF;EoCjwEA;IACE,kBAAA;IACA,YAAA;IACA,sCAAA;EpCmwEF;EoChwEA;IACE,kBAAA;IACA,wBAAA;IACA,yBAAA;IACA,UAAA;IACA,4BAAA;IACA,kB5B1TW;I4B2TX,kCAAA;EpCkwEF;EoC/vEA;IACE,kBAAA;IACA,QAAA;IACA,SAAA;IACA,OAAA;IACA,UAAA;IACA,0CAAA;IACA,gBAAA;IACA,2CAAA;EpCiwEF;EoC9vEA;IACE,cAAA;IACA,WAAA;IACA,YAAA;IACA,uCAAA;IACA,oBAAA;IACA,sBAAA;EpCgwEF;EoC7vEA;IACE,4FAAA;EpC+vEF;EoC5vEA;IACE,aAAA;EpC8vEF;EoC3vEA;IACE,qBAAA;IACA,4CAAA;IACA,mEAAA;EpC6vEF;EoC1vEA;IACE,iCAAA;EpC4vEF;EoCzvEA;IACE,gDAAA;EpC2vEF;EoCxvEA;IACE,gDAAA;EpC0vEF;EoCvvEA;IACE,aAAA;IACA,sBAAA;IACA,uBAAA;IACA,uBAAA;IACA,mBAAA;IACA,mJAAA;EpCyvEF;EoCrvEA;IACE,gBAAA;IACA,SAAA;EpCuvEF;EoCpvEA;IACE,6BAAA;EpCsvEF;EoCnvEA;IACE,qBAAA;IACA,2BAAA;IACA,sBAAA;EpCqvEF;EoClvEA;;;;IAIE,aAAA;EpCovEF;EoCjvEA;IACE;MACE,8CAAA;IpCmvEF;IoChvEA;MACE,2EAAA;IpCkvEF;IoC/uEA;MACE,SAAA;MACA,2CAAA;MACA,WAAA;MACA,mGAAA;MACA,cAAA;MACA,qBAAA;MACA,uHAAA;MAEA,eAAA;MACA,uBAAA;IpCgvEF;IoC7uEA;MACE,QAAA;MACA,OAAA;MACA,uBAAA;MACA,iBAAA;IpC+uEF;IoC5uEA;MACE,kBAAA;MACA,QAAA;MACA,UAAA;MACA,oBAAA;MACA,WAAA;MACA,sHAAA;IpC8uEF;EACF;EoCtuEA;IACE;;;;;;;MAOE,gBAAA;MACA,eAAA;MACA,oBAAA;IpCwuEF;EACF;EoCruEA;IACE;MACE,oBAAA;IpCuuEF;EACF;AACF;AqC/qFA;EACE;IACE,aAAA;IACA,SAAA;IACA,UAAA;IACA,gBAAA;ErCirFF;EqC9qFA;IACE,kBAAA;IACA,aAAA;IACA,WAAA;IACA,sBAAA;IACA,mBAAA;IACA,QAAA;IACA,kBAAA;ErCgrFF;EqC7qFA;IACE,oBAAA;IACA,mBAAA;IACA,uBAAA;IACA,WAAA;IACA,YAAA;IACA,4BAAA;IACA,yCAAA;IACA,wCAAA;IACA,kBAAA;IACA,kB7B9BW;I6B+BX,gB7BhBiB;ER+rFnB;EqC5qFA;IACE,4BAAA;IACA,kB7BpCW;I6BqCX,gB7BtBiB;ERosFnB;EqC3qFA;IACE,4BAAA;IACA,oB7B3CW;ERwtFb;EqCzqFA;IACE,WAAA;IACA,kBAAA;IACA,SAAA;IACA,sBAAA;IACA,wBAAA;IACA,WAAA;IACA,wCAAA;ErC2qFF;EqCvqFA;IACE,iCAAA;IACA,yCAAA;IACA,qCAAA;ErCyqFF;EqCtqFA;IACE,2BAAA;ErCwqFF;EqCnqFA;IACE,kBAAA;IACA,yCAAA;IACA,4PAAA;IACA,4BAAA;IACA,2BAAA;IACA,qCAAA;ErCqqFF;EqClqFA;IACE,2BAAA;ErCoqFF;EqC/pFA;IACE,yCAAA;ErCiqFF;EqC7pFA;IACE,cAAA;IACA,wCAAA;IACA,oCAAA;ErC+pFF;EqC5pFA;IACE,kCAAA;ErC8pFF;EqC1pFA;IACE,eAAA;ErC4pFF;EqCzpFA;IACE,0CAAA;IACA,mBAAA;IACA,kCAAA;ErC2pFF;EqCvpFA;IACE,sBAAA;ErCypFF;EqCtpFA;IACE,mBAAA;IACA,cAAA;IACA,uBAAA;IACA,SAAA;IACA,gBAAA;IACA,gBAAA;ErCwpFF;EqCrpFA;IACE,aAAA;IACA,sBAAA;IACA,QAAA;IACA,gBAAA;ErCupFF;EqCppFA;IACE,SAAA;IACA,UAAA;IACA,UAAA;IACA,yBAAA;ErCspFF;EqClpFA;IACE,aAAA;ErCopFF;EqCjpFA;IACE,cAAA;ErCmpFF;EqChpFA;IACE,gBAAA;ErCkpFF;EqC/oFA;IACE,aAAA;IACA,8BAAA;IACA,QAAA;IACA,gBAAA;ErCipFF;AACF;AsC1yFA;EACE;IACE,oBAAA;IACA,wCAAA;IACA,kCAAA;IACA,gBAAA;EtC4yFF;EsCzyFA;IACE,aAAA;EtC2yFF;EsCxyFA;IACE,6CAAA;EtC0yFF;EsCvyFA;IACE,kBAAA;IACA,UAAA;IACA,WAAA;IACA,UAAA;IACA,YAAA;IACA,gBAAA;IACA,qBAAA;IACA,mBAAA;IACA,SAAA;EtCyyFF;EsCtyFA;IACE,oBAAA;IACA,OAAA;IACA,mBAAA;IACA,uBAAA;IACA,gBAAA;IACA,eAAA;IACA,2BAAA;IACA,yCAAA;IACA,oB9BvCW;I8BwCX,gB9B1BiB;I8B2BjB,kBAAA;IACA,mBAAA;IACA,eAAA;IACA,yBAAA;YAAA,iBAAA;IACA,uEAAA;EtCwyFF;EsCryFA;IACE,wCAAA;EtCuyFF;EsCpyFA;IACE,iCAAA;IACA,yCAAA;EtCsyFF;EsCnyFA;IACE,kBAAA;IACA,UAAA;I7BpCF,4DAAA;IACA,sCAAA;IACA,qCAHwB;IAIxB,kFAAA;ET00FA;EsCpyFA;IACE,YAAA;IACA,oBAAA;EtCsyFF;EsCnyFA;IACE,gBAAA;IACA,cAAA;IACA,kB9BzEW;ER82Fb;EsClyFA;IACE,gBAAA;IACA,eAAA;IACA,e9B7EW;ERi3Fb;AACF;AuCn3FA;EACE;IACE,cAAA;IACA,wCAAA;IACA,kCAAA;IACA,yDAAA;EvCq3FF;EuCl3FA;IACE,WAAA;IACA,WAAA;EvCo3FF;EuCj3FA;IACE,oBAAA;EvCm3FF;EuCh3FA;IACE,UAAA;EvCk3FF;EuC/2FA;IACE,cAAA;IACA,kBAAA;EvCi3FF;EuC92FA;IACE,kCAAA;EvCg3FF;EuC72FA;IACE;MAEE,UAAA;IvC82FF;IuC32FA;MACE,YAAA;IvC62FF;EACF;EuCv2FA;IACE,kBAAA;IACA,gBAAA;IACA,eAAA;EvCy2FF;EuCt2FA;IACE,kBAAA;IACA,QAAA;IACA,WAAA;IACA,4FAAA;IACA,4BAAA;IACA,mDAAA;EvCw2FF;EuCr2FA;IACE;MACE,2BAAA;IvCu2FF;EACF;EuCp2FA;IACE;MACE,eAAA;IvCs2FF;IuCn2FA;MACE,eAAA;IvCq2FF;EACF;AACF;AwC56FA;EACE;IACE,aAAA;IACA,sBAAA;IACA,SAAA;IACA,UAAA;IACA,gBAAA;ExC86FF;EwC36FA;IACE,kBAAA;IACA,aAAA;IACA,SAAA;IACA,oBAAA;ExC66FF;EwC16FA;IACE,iBAAA;ExC46FF;EwCz6FA;IACE,cAAA;IACA,WAAA;IACA,YAAA;IACA,eAAA;IACA,yCAAA;IACA,4BAAA;IACA,2BAAA;IACA,wCAAA;IACA,kBAAA;ExC26FF;EwCx6FA;IACE,WAAA;IACA,kBAAA;IACA,SAAA;IACA,SAAA;IACA,UAAA;IACA,yBAAA;IACA,wCAAA;ExC06FF;EwCv6FA;IACE,OAAA;IACA,gBAAA;ExCy6FF;EwCt6FA;IACE,SAAA;IACA,2BAAA;IACA,oBhCpDW;IgCqDX,gBhCvCiB;ER+8FnB;EwCr6FA;IACE,eAAA;IACA,4BAAA;IACA,kBhC5DW;ERm+Fb;EwCp6FA;IACE,cAAA;IACA,eAAA;IACA,4BAAA;IACA,oBhCpEW;ER0+Fb;EwCl6FA;IACE,yCAAA;IACA,qCAAA;ExCo6FF;EwC/5FA;IACE,yCAAA;IACA,wPAAA;IACA,qCAAA;ExCi6FF;EwC95FA;IACE,yCAAA;ExCg6FF;EwC55FA;IACE,wCAAA;IACA,oCAAA;ExC85FF;EwC35FA;IACE,kCAAA;ExC65FF;EwCv5FA;IACE,mBAAA;ExCy5FF;EwCt5FA;IACE,WAAA;IACA,sBAAA;IACA,mBAAA;IACA,QAAA;IACA,iBAAA;IACA,kBAAA;ExCw5FF;EwCl5FA;IACE,aAAA;ExCo5FF;EwCj5FA;IACE,QAAA;IACA,sBAAA;IACA,wBAAA;IACA,WAAA;ExCm5FF;EwCh5FA;IACE,cAAA;ExCk5FF;AACF;AyCrhGA;EACE;IACE,gBAAA;EzCuhGF;AACF;A0CphGA;EACE;IACE,kBAAA;E1CshGF;E0CnhGA;IACE,kBAAA;IACA,SAAA;IACA,WAAA;IACA,oBAAA;IACA,mBAAA;IACA,uBAAA;IACA,eAAA;IACA,YAAA;IACA,cAAA;IACA,oBAAA;IACA,cAAA;IACA,wCAAA;IACA,kBAAA;IACA,gBlCTiB;IkCUjB,cAAA;E1CqhGF;E0ClhGA;IACE,aAAA;E1CohGF;E0C/gGA;IACE,kBAAA;IACA,aAAA;IACA,sBAAA;IACA,gDAAA;IACA,iBAAA;IACA,wCAAA;IACA,kCAAA;IACA,2BAAA;IACA,yCAAA;IACA,+BAAA;IACA,iCAAA;E1CihGF;E0C9gGA;IACE,aAAA;E1CghGF;E0C7gGA;IACE,aAAA;IACA,mBAAA;IACA,8BAAA;IACA,kBAAA;IACA,+CAAA;E1C+gGF;E0C5gGA;IACE,kBlC7DW;IkC8DX,gBlC/CiB;ER6jGnB;E0C3gGA;IACE,SAAA;IACA,UAAA;IACA,gBAAA;IACA,gBAAA;E1C6gGF;E0C1gGA;IACE,aAAA;IACA,SAAA;IACA,uBAAA;IACA,kBAAA;IACA,kCAAA;IACA,+CAAA;E1C4gGF;E0CzgGA;IACE,mBAAA;E1C2gGF;E0CxgGA;IACE,wCAAA;E1C0gGF;E0CtgGE;IACE,0CAAA;E1CwgGJ;E0CzgGE;IACE,4CAAA;E1C2gGJ;E0C5gGE;IACE,0CAAA;E1C8gGJ;E0C/gGE;IACE,0CAAA;E1CihGJ;E0ClhGE;IACE,yCAAA;E1CohGJ;E0CrhGE;IACE,uCAAA;E1CuhGJ;E0CnhGA;IACE,OAAA;IACA,YAAA;E1CqhGF;E0ClhGA;IACE,SAAA;IACA,kBlCtGW;IkCuGX,gBlCxFiB;ER4mGnB;E0CjhGA;IACE,eAAA;IACA,4BAAA;IACA,kBlC7GW;ERgoGb;E0ChhGA;IACE,cAAA;IACA,eAAA;IACA,4BAAA;IACA,oBlCrHW;ERuoGb;E0C/gGA;IACE,cAAA;IACA,WAAA;IACA,YAAA;E1CihGF;E0C9gGA;IACE,kBAAA;IACA,4BAAA;IACA,kBlChIW;IkCiIX,kBAAA;E1CghGF;E0C7gGA;IACE,aAAA;E1C+gGF;AACF;A2ChpGA;EACE;IACE,kBAAA;E3CkpGF;E2C7oGA;IACE,8BAAA;E3C+oGF;E2C5oGA;IACE,gBAAA;IACA,WAAA;IACA,iCAAA;IACA,oCAAA;IACA,mCAAA;E3C8oGF;E2CzoGA;IACE,SAAA;IACA,UAAA;IACA,SAAA;E3C2oGF;E2CxoGA;;IAEE,cAAA;E3C0oGF;E2CroGA;IACE,WAAA;IACA,UAAA;E3CuoGF;AACF;A4C/qGA;EACE;IACE,kBAAA;IACA,aAAA;IACA,mBAAA;IACA,SAAA;IACA,aAAA;IACA,wCAAA;IACA,kCAAA;IACA,yCAAA;E5CirGF;E4C9qGA;IACE,aAAA;IACA,cAAA;IACA,mBAAA;IACA,uBAAA;IACA,WAAA;IACA,YAAA;IACA,kCAAA;IACA,2BAAA;IACA,wCAAA;IACA,epCtBW;ERssGb;E4C7qGA;IACE,cAAA;IACA,YAAA;E5C+qGF;E4C5qGA;IACE,SAAA;IACA,2BAAA;IACA,oBpClCW;IoCmCX,gBpCrBiB;ICgBnB,gBAAA;IACA,uBAAA;IACA,mBAAA;ETorGA;E4C5qGA;IACE,SAAA;IACA,4BAAA;IACA,kBpC5CW;IC+Bb,gBAAA;IACA,uBAAA;IACA,mBAAA;ET4rGA;E4C5qGA;IACE,aAAA;IACA,cAAA;IACA,mBAAA;IACA,QAAA;E5C8qGF;E4CxqGA;IACE,eAAA;E5C0qGF;E4CvqGA;IACE,gBAAA;IACA,yBAAA;IACA,eAAA;E5CyqGF;E4CpqGA;IACE,wEAAA;E5CsqGF;E4CnqGA;;IAEE,qCAAA;IACA,+BAAA;E5CqqGF;E4ClqGA;IACE,QAAA;IACA,YAAA;E5CoqGF;E4CjqGA;IACE,WAAA;IACA,YAAA;IACA,oBpCxFW;ER2vGb;E4ChqGA;IACE,kBpC7FW;ER+vGb;E4C/pGA;IACE,oBpClGW;ERmwGb;E4C9pGA;IACE,SAAA;IACA,aAAA;E5CgqGF;E4C7pGA;IACE,WAAA;IACA,YAAA;IACA,kBpCzGW;ERwwGb;E4C5pGA;IACE,epC9GW;ER4wGb;AACF;A6CnwGA;EAOE;IACE,2BAAA;IACA,0EAAA;IACA,uEAAA;IACA,6EAAA;E7C+vGF;E6C5vGA;;IAEE,sEAAA;IACA,uEAAA;IACA,2EAAA;IACA,0EAAA;E7C8vGF;E6C3vGA;IACE;MACE,wEAAA;MACA,2EAAA;MACA,6EAAA;MACA,8EAAA;I7C6vGF;I6C1vGA;;MAEE,wEAAA;MACA,yEAAA;MACA,4EAAA;MACA,4EAAA;I7C4vGF;EACF;E6CrvGA;IACE,2BAAA;IACA,0EAAA;IACA,wEAAA;IACA,6EAAA;E7CuvGF;E6CpvGA;;IAEE,qEAAA;IACA,uEAAA;IACA,4EAAA;IACA,0EAAA;E7CsvGF;E6C/uGA;IACE,2BAAA;IACA,+DAAA;IACA,yEAAA;IACA,kEAAA;E7CivGF;E6C9uGA;;IAEE,oEAAA;IACA,uEAAA;IACA,gEAAA;IACA,0EAAA;E7CgvGF;E6C7uGA;IACE;MACE,wEAAA;MACA,2EAAA;MACA,4EAAA;MACA,8EAAA;I7C+uGF;I6C5uGA;;MAEE,wEAAA;MACA,2EAAA;MACA,6EAAA;MACA,8EAAA;I7C8uGF;I6C3uGA;MACE,uEAAA;MACA,0EAAA;MACA,4EAAA;MACA,6EAAA;I7C6uGF;I6C1uGA;;MAEE,uEAAA;MACA,2EAAA;MACA,4EAAA;MACA,8EAAA;I7C4uGF;EACF;AACF;A6C9tGA;EACE;;IAEE,uBAAA;IACA,yBAAA;E7CguGF;E6C7tGA;IACE,wBAAA;E7C+tGF;AACF;A8Cr2GA;EAsBE;IACE,wBAAA;IACA,yBAAA;IACA,0BAAA;IACA,2BAAA;IACA,0BAAA;IACA,8CAAA;IACA,4CAAA;IACA,kDAAA;IACA,sDAAA;IACA,6CAAA;IACA,4CAAA;IACA,iDAAA;IACA,yCAAA;IACA,kDAAA;IACA,gDAAA;IACA,sEAAA;IACA,uEAAA;IACA,yEAAA;IACA,wBAAA;IACA,0BAAA;IAGE,sEAAA;IACA,sEAAA;IACA,4EAAA;IACA,yEAAA;IAHA,wEAAA;IACA,yEAAA;IACA,8EAAA;IACA,4EAAA;IAHA,uEAAA;IACA,uEAAA;IACA,4EAAA;IACA,0EAAA;IAHA,uEAAA;IACA,uEAAA;IACA,4EAAA;IACA,0EAAA;IAHA,oEAAA;IACA,sEAAA;IACA,2EAAA;IACA,yEAAA;IAHA,wBAAA;IACA,oEAAA;IACA,sEAAA;IACA,uEAAA;E9Co2GJ;E8Ch2GA;IACE;MACE,oEAAA;MACA,sEAAA;MACA,sEAAA;MACA,wEAAA;MACA,uEAAA;MACA,8CAAA;MACA,4CAAA;MACA,kDAAA;MACA,sDAAA;MACA,6CAAA;MACA,4CAAA;MACA,iDAAA;MACA,yCAAA;MACA,kDAAA;MACA,gDAAA;MACA,qEAAA;MACA,uEAAA;MAGE,uEAAA;MACA,2EAAA;MACA,6EAAA;MACA,8EAAA;MAHA,0EAAA;MACA,6EAAA;MACA,+EAAA;MACA,gFAAA;MAHA,sEAAA;MACA,2EAAA;MACA,4EAAA;MACA,8EAAA;MAHA,uEAAA;MACA,2EAAA;MACA,4EAAA;MACA,8EAAA;MAHA,sEAAA;MACA,yEAAA;MACA,0EAAA;MACA,4EAAA;MAHA,qEAAA;MACA,wEAAA;MACA,0EAAA;MACA,2EAAA;I9Co3GJ;EACF;AACF","file":"components.css","sourcesContent":["@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-ring-alpha: 22%;\n --fs-transition-fast: 150ms;\n --fs-transition-normal: 220ms;\n --fs-ease-standard: cubic-bezier(0.2, 0, 0, 1);\n --fs-border-width: 1px;\n --fs-disabled-opacity: 0.5;\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@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}\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-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-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-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 @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-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}\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-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-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 @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@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 --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 --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}","@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-ring-alpha: 22%;\n --fs-transition-fast: 150ms;\n --fs-transition-normal: 220ms;\n --fs-ease-standard: cubic-bezier(0.2, 0, 0, 1);\n --fs-border-width: 1px;\n --fs-disabled-opacity: 0.5;\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","@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 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","@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-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// 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","@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-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-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 @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-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","@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-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// Spinner giratório: trilho discreto + segmento ativo. A cor herda de\n// `currentColor`, permitindo usar as variantes semânticas ou utilitários de\n// cor de texto.\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 {\n to {\n transform: rotate(360deg);\n }\n }\n\n // Barra de progresso linear. A largura do `.fs-progress-bar` é controlada por\n // `--fs-progress-value` (0–100) ou diretamente por `style=\"width\"`.\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-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 // Cabeçalho externo: preserva o valor legível sem comprimir texto dentro de\n // barras compactas.\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 // Processo sem percentual conhecido: um preenchimento curto atravessa o\n // trilho. Não combine com aria-valuenow, pois o valor é indeterminado.\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 {\n from {\n transform: translateX(-110%);\n }\n\n to {\n transform: translateX(290%);\n }\n }\n\n // Estados semânticos para operações finalizadas ou interrompidas.\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 // Marca uma meta/SLA no trilho. O valor usa a mesma escala percentual da\n // barra e deve ser acompanhado por texto fora do componente.\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 // Mantém progresso inicial perceptível sem alterar aria-valuenow. Use\n // apenas quando o valor real já for maior que zero.\n .fs-progress-minimum .fs-progress-bar {\n width: max(calc(var(--fs-progress-value, 0) * 1%), 4px);\n }\n\n // Faixas diagonais opcionais, animáveis com `.fs-progress-bar-animated`.\n .fs-progress-bar-striped {\n background-image: linear-gradient(\n 45deg,\n color-mix(in srgb, currentcolor 16%, transparent) 25%,\n transparent 25%,\n transparent 50%,\n color-mix(in srgb, currentcolor 16%, transparent) 50%,\n color-mix(in srgb, currentcolor 16%, transparent) 75%,\n transparent 75%,\n transparent\n );\n background-size: 16px 16px;\n }\n\n .fs-progress-bar-animated {\n animation: fokus-progress-stripes 1s linear infinite;\n }\n\n @keyframes fokus-progress-stripes {\n from {\n background-position: 16px 0;\n }\n\n to {\n background-position: 0 0;\n }\n }\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 @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","@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 --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 --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"]}
|
|
1
|
+
{"version":3,"sources":["../../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/_datatable.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.css","sourcesContent":["@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// 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","@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"]}
|