@davi-ai/retorik-framework 3.0.3 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -55,53 +55,54 @@ $parcel$export(module.exports, "default", () => $3f93eb6d5bf69cb7$export$2e2bcd8
55
55
  $parcel$export(module.exports, "RetorikAgent", () => $e9118dec60074066$export$2e2bcd8739ae039);
56
56
  $parcel$export(module.exports, "RetorikWidget", () => $09a824b6b849eeca$export$2e2bcd8739ae039);
57
57
  $parcel$export(module.exports, "RetorikNews", () => $b2eff0b289a9ca58$export$2e2bcd8739ae039);
58
- $parcel$export(module.exports, "presets", () => $dWhh5$daviaireactbodyenginethree.presets);
59
- $parcel$export(module.exports, "characters", () => $ad17e3bb6d135d7b$export$30a86d91af8ff6e6);
60
- $parcel$export(module.exports, "setCurrentCustomView", () => $33ea75f69090702b$export$5a678fd51bd89633);
61
- $parcel$export(module.exports, "setCurrentSubView", () => $33ea75f69090702b$export$f0c096b4ecd7115d);
62
- $parcel$export(module.exports, "sendActivity", () => $33ea75f69090702b$export$d4c8c6daac289378);
63
- $parcel$export(module.exports, "sendMessage", () => $33ea75f69090702b$export$465cb47180de50f0);
64
- $parcel$export(module.exports, "sendEvent", () => $33ea75f69090702b$export$7329bcdc3edcd90e);
58
+ $parcel$export(module.exports, "addDetailedAttachmentTrigger", () => $33ea75f69090702b$export$d1f60bb847ecc604);
59
+ $parcel$export(module.exports, "cancelCurrentUtterance", () => $33ea75f69090702b$export$f3aaae0c8197c567);
60
+ $parcel$export(module.exports, "closeWidget", () => $33ea75f69090702b$export$d27f1b0993b666c);
65
61
  $parcel$export(module.exports, "fetchAvailableLanguages", () => $49ef6b13684edff9$export$2e2bcd8739ae039);
66
62
  $parcel$export(module.exports, "getRetorikConfigs", () => $ba3150a69d33f468$export$2e2bcd8739ae039);
67
63
  $parcel$export(module.exports, "getThemeColors", () => $68ec406cc754e31c$export$2e2bcd8739ae039);
68
- $parcel$export(module.exports, "setLocale", () => $33ea75f69090702b$export$c8aadf3621e41efb);
69
- $parcel$export(module.exports, "showAgent", () => $33ea75f69090702b$export$ae67eb518a2aae74);
70
64
  $parcel$export(module.exports, "hideAgent", () => $33ea75f69090702b$export$e73dbd7ba351e3e);
71
- $parcel$export(module.exports, "addDetailedAttachmentTrigger", () => $33ea75f69090702b$export$d1f60bb847ecc604);
72
- $parcel$export(module.exports, "setMode", () => $33ea75f69090702b$export$d4f039427a1beff1);
73
- $parcel$export(module.exports, "setLoaderClosed", () => $33ea75f69090702b$export$982d69b78a955aaf);
74
- $parcel$export(module.exports, "setModalFullscreenContent", () => $33ea75f69090702b$export$4317154639841e84);
75
- $parcel$export(module.exports, "setPrintingCallback", () => $33ea75f69090702b$export$7f09d7ad7dbdcd2c);
65
+ $parcel$export(module.exports, "openWidget", () => $33ea75f69090702b$export$a1c83309c736819f);
66
+ $parcel$export(module.exports, "pauseConversation", () => $33ea75f69090702b$export$7431bc5a5c7c9317);
67
+ $parcel$export(module.exports, "playExternalSynthesis", () => $33ea75f69090702b$export$99dcb7840cd85481);
68
+ $parcel$export(module.exports, "resumeConversation", () => $33ea75f69090702b$export$cceb853b29df842);
69
+ $parcel$export(module.exports, "sendActivity", () => $33ea75f69090702b$export$d4c8c6daac289378);
70
+ $parcel$export(module.exports, "sendEvent", () => $33ea75f69090702b$export$7329bcdc3edcd90e);
71
+ $parcel$export(module.exports, "sendMessage", () => $33ea75f69090702b$export$465cb47180de50f0);
72
+ $parcel$export(module.exports, "sendMessageToChatbot", () => $33ea75f69090702b$export$255ebd0ca6bfba88);
73
+ $parcel$export(module.exports, "setCurrentCustomView", () => $33ea75f69090702b$export$5a678fd51bd89633);
74
+ $parcel$export(module.exports, "setCurrentSubView", () => $33ea75f69090702b$export$f0c096b4ecd7115d);
76
75
  $parcel$export(module.exports, "setDashboardOpened", () => $33ea75f69090702b$export$bbd7c92fc378d660);
77
76
  $parcel$export(module.exports, "setDisplaySubtitles", () => $33ea75f69090702b$export$708f3eb1d5828832);
78
- $parcel$export(module.exports, "toggleSubtitles", () => $33ea75f69090702b$export$3fa7f3a227fc16cb);
79
- $parcel$export(module.exports, "toggleMicrophone", () => $33ea75f69090702b$export$39fcdeae376856e7);
77
+ $parcel$export(module.exports, "setLoaderClosed", () => $33ea75f69090702b$export$982d69b78a955aaf);
78
+ $parcel$export(module.exports, "setLocale", () => $33ea75f69090702b$export$c8aadf3621e41efb);
79
+ $parcel$export(module.exports, "setModalFullscreenContent", () => $33ea75f69090702b$export$4317154639841e84);
80
+ $parcel$export(module.exports, "setMode", () => $33ea75f69090702b$export$d4f039427a1beff1);
80
81
  $parcel$export(module.exports, "setMuted", () => $33ea75f69090702b$export$a1680ba91cc9be33);
81
- $parcel$export(module.exports, "playExternalSynthesis", () => $33ea75f69090702b$export$99dcb7840cd85481);
82
+ $parcel$export(module.exports, "setPrintingCallback", () => $33ea75f69090702b$export$7f09d7ad7dbdcd2c);
82
83
  $parcel$export(module.exports, "setVisibility", () => $33ea75f69090702b$export$2c64211ecf98e50d);
84
+ $parcel$export(module.exports, "showAgent", () => $33ea75f69090702b$export$ae67eb518a2aae74);
85
+ $parcel$export(module.exports, "toggleDisplay", () => $33ea75f69090702b$export$f0e9d14ede4c01bd);
86
+ $parcel$export(module.exports, "toggleMicrophone", () => $33ea75f69090702b$export$39fcdeae376856e7);
87
+ $parcel$export(module.exports, "toggleSubtitles", () => $33ea75f69090702b$export$3fa7f3a227fc16cb);
83
88
  $parcel$export(module.exports, "toggleVisibility", () => $33ea75f69090702b$export$7396a2167c7f755e);
84
- $parcel$export(module.exports, "pauseConversation", () => $33ea75f69090702b$export$7431bc5a5c7c9317);
85
- $parcel$export(module.exports, "resumeConversation", () => $33ea75f69090702b$export$cceb853b29df842);
86
- $parcel$export(module.exports, "sendMessageToChatbot", () => $33ea75f69090702b$export$255ebd0ca6bfba88);
87
- $parcel$export(module.exports, "openWidget", () => $33ea75f69090702b$export$a1c83309c736819f);
88
- $parcel$export(module.exports, "closeWidget", () => $33ea75f69090702b$export$d27f1b0993b666c);
89
89
  $parcel$export(module.exports, "toggleWidget", () => $33ea75f69090702b$export$77c0ba4d0d97cee5);
90
- $parcel$export(module.exports, "toggleDisplay", () => $33ea75f69090702b$export$f0e9d14ede4c01bd);
90
+ $parcel$export(module.exports, "useConfiguration", () => $d69f8233be4cb01a$export$2e2bcd8739ae039);
91
91
  $parcel$export(module.exports, "useCurrentSubView", () => $3e19540ccac3c4df$export$2e2bcd8739ae039);
92
+ $parcel$export(module.exports, "useIsMobile", () => $f504a73816380d9f$export$2e2bcd8739ae039);
93
+ $parcel$export(module.exports, "useIsRTL", () => $90f60770defa1857$export$2e2bcd8739ae039);
94
+ $parcel$export(module.exports, "useIsUsedOnBorne", () => $b0851c8a4aa6be6a$export$2e2bcd8739ae039);
95
+ $parcel$export(module.exports, "useIsWidget", () => $f9f069937179e1e1$export$2e2bcd8739ae039);
92
96
  $parcel$export(module.exports, "useKioskParameterOpening", () => $bafed4617816be24$export$2e2bcd8739ae039);
93
- $parcel$export(module.exports, "useRetorikEvent", () => $af904b55748ebfd1$export$2e2bcd8739ae039);
97
+ $parcel$export(module.exports, "useLoaderClosed", () => $9b7c0505b2978531$export$2e2bcd8739ae039);
94
98
  $parcel$export(module.exports, "useLocale", () => $d475f175c55a36d5$export$2e2bcd8739ae039);
95
99
  $parcel$export(module.exports, "useMode", () => $11cef3dc5a2b4f17$export$2e2bcd8739ae039);
96
100
  $parcel$export(module.exports, "useMuted", () => $e72a2b3d53bfff70$export$2e2bcd8739ae039);
97
- $parcel$export(module.exports, "useLoaderClosed", () => $9b7c0505b2978531$export$2e2bcd8739ae039);
98
- $parcel$export(module.exports, "useConfiguration", () => $d69f8233be4cb01a$export$2e2bcd8739ae039);
99
- $parcel$export(module.exports, "useIsUsedOnBorne", () => $b0851c8a4aa6be6a$export$2e2bcd8739ae039);
100
- $parcel$export(module.exports, "useIsMobile", () => $f504a73816380d9f$export$2e2bcd8739ae039);
101
- $parcel$export(module.exports, "useIsWidget", () => $f9f069937179e1e1$export$2e2bcd8739ae039);
102
- $parcel$export(module.exports, "useIsRTL", () => $90f60770defa1857$export$2e2bcd8739ae039);
101
+ $parcel$export(module.exports, "useRetorikEvent", () => $af904b55748ebfd1$export$2e2bcd8739ae039);
103
102
  $parcel$export(module.exports, "useTranslation", () => $c2f7e3fcd01ae5b3$export$2e2bcd8739ae039);
104
103
  $parcel$export(module.exports, "useThemeColors", () => $a8503510ff390bc9$export$2e2bcd8739ae039);
104
+ $parcel$export(module.exports, "presets", () => $dWhh5$daviaireactbodyenginethree.presets);
105
+ $parcel$export(module.exports, "characters", () => $ad17e3bb6d135d7b$export$30a86d91af8ff6e6);
105
106
  $parcel$export(module.exports, "CONTENT_TYPE_POI", () => $3b05c823a6ed4bb8$export$8c612ad42a82284);
106
107
  $parcel$export(module.exports, "CONTENT_TYPE_NEWS", () => $3b05c823a6ed4bb8$export$7ff82c027074e396);
107
108
  $parcel$export(module.exports, "CONTENT_TYPE_ADAPTIVE_CARD", () => $3b05c823a6ed4bb8$export$bbfd0bb0baceb2f8);
@@ -537,7 +538,10 @@ const $2793f2455cec0982$var$createUtilsStore = ()=>(0, $dWhh5$zustand.createStor
537
538
  },
538
539
  setModalFullscreenContent: (value, fromActivity)=>{
539
540
  set((state)=>{
540
- if (!fromActivity || fromActivity !== state.modalFullscreenContentNoDisplayId) // Set fromActivity data to check next time if we have to prevent unwanted re-rendering
541
+ if (!fromActivity) return {
542
+ modalFullscreenContent: value
543
+ };
544
+ else if (fromActivity !== state.modalFullscreenContentNoDisplayId) // Set fromActivity data to check next time if we have to prevent unwanted re-rendering
541
545
  return {
542
546
  modalFullscreenContent: value,
543
547
  modalFullscreenContentNoDisplayId: fromActivity
@@ -1673,12 +1677,10 @@ const $df401eb9a10f9e0e$var$createSpeechStore = (setRetorikEvent, getListStatus,
1673
1677
  return;
1674
1678
  case (0, $71c613e2e831c34c$export$3f0071308968cd80).Listening:
1675
1679
  get().actions.setActiveRecognitionState((0, $71c613e2e831c34c$export$3f0071308968cd80).ForceClosing);
1676
- console.log('called here');
1677
1680
  get().actions.cancelCurrentUtterance();
1678
1681
  break;
1679
1682
  case (0, $71c613e2e831c34c$export$3f0071308968cd80).Closed:
1680
1683
  get().actions.setActiveRecognitionState((0, $71c613e2e831c34c$export$3f0071308968cd80).Initializing);
1681
- console.log('called there');
1682
1684
  !fromExpectedInput && get().actions.cancelCurrentUtterance();
1683
1685
  break;
1684
1686
  }
@@ -1904,7 +1906,9 @@ const $1d4f8108de9ab73a$var$initialState = {
1904
1906
  displayAgentInNews: true,
1905
1907
  submitDelayBeforeSendingMessage: undefined,
1906
1908
  disableHistory: false,
1907
- environmentPreset: "apartment"
1909
+ environmentPreset: "apartment",
1910
+ customScripts: [],
1911
+ customCSS: []
1908
1912
  };
1909
1913
  let $1d4f8108de9ab73a$var$timer = null;
1910
1914
  $1d4f8108de9ab73a$var$timer = setTimeout(()=>{
@@ -2061,6 +2065,16 @@ const $1d4f8108de9ab73a$var$createSpeechStore = (modeRef)=>{
2061
2065
  disableHistory: value
2062
2066
  });
2063
2067
  },
2068
+ setCustomScripts: (value)=>{
2069
+ set({
2070
+ customScripts: value
2071
+ });
2072
+ },
2073
+ setCustomCSS: (value)=>{
2074
+ set({
2075
+ customCSS: value
2076
+ });
2077
+ },
2064
2078
  resetRetorikStore: ()=>{
2065
2079
  set({
2066
2080
  ...$1d4f8108de9ab73a$var$initialState
@@ -3215,7 +3229,7 @@ var $c8770452d727244a$export$2e2bcd8739ae039 = $c8770452d727244a$var$activityMid
3215
3229
 
3216
3230
 
3217
3231
  var $696df75883117d57$exports = {};
3218
- $696df75883117d57$exports = JSON.parse("{\"name\":\"@davi-ai/retorik-framework\",\"version\":\"3.0.3\",\"description\":\"Retorik Framework package\",\"author\":\"DAVI\",\"license\":\"MIT\",\"repository\":\"none\",\"main\":\"dist/index.js\",\"module\":\"dist/index.modern.js\",\"types\":\"dist/index.d.ts\",\"source\":\"src/index.tsx\",\"standalone\":\"standalone/index.js\",\"targets\":{\"standalone\":{\"context\":\"browser\",\"outputFormat\":\"esmodule\",\"distDir\":\"standalone\",\"includeNodeModules\":{\"@testing-library/jest-dom\":false,\"@testing-library/react\":false,\"@testing-library/react-hooks\":false,\"@testing-library/user-event\":false,\"eslint\":false,\"eslint-config-prettier\":false,\"eslint-config-standard\":false,\"eslint-config-standard-react\":false,\"eslint-plugin-import\":false,\"eslint-plugin-node\":false,\"eslint-plugin-prettier\":false,\"eslint-plugin-promise\":false,\"eslint-plugin-react\":false,\"eslint-plugin-standard\":false,\"jest-junit\":false,\"npm-run-all\":false,\"parcel\":false,\"prettier\":false,\"raw-loader\":false,\"react-docgen-typescript-plugin\":false,\"react-scripts\":false,\"react-test-renderer\":false,\"tailwindcss\":false,\"typescript\":false}},\"module\":{\"context\":\"browser\",\"outputFormat\":\"esmodule\",\"distDir\":\"dist\"}},\"engines\":{\"node\":\">=10\"},\"scripts\":{\"build\":\"parcel build\",\"start\":\"parcel watch\",\"test\":\"jest --env=jsdom --reporters=jest-junit\",\"test-console\":\"jest --env=jsdom\",\"test-update-snapshots\":\"jest --env=jsdom --updateSnapshot\",\"test-coverage-console\":\"jest --env=jsdom --reporters=jest-junit --coverage\",\"test-coverage\":\"jest --env=jsdom --reporters=jest-junit --coverage --coverageReporters=cobertura\",\"report\":\"npx parcel build src/index.tsx --reporter @parcel/reporter-bundle-analyzer\",\"credentials\":\"vsts-npm-auth -config .npmrc\"},\"peerDependencies\":{\"react\":\"18.3.1\",\"react-dom\":\"18.3.1\"},\"devDependencies\":{\"@babel/core\":\"^7.19.1\",\"@babel/plugin-proposal-decorators\":\"^7.24.7\",\"@babel/plugin-proposal-private-property-in-object\":\"^7.21.11\",\"@babel/preset-env\":\"^7.25.4\",\"@babel/preset-react\":\"^7.24.7\",\"@babel/preset-typescript\":\"^7.24.7\",\"@babel/runtime\":\"^7.23.8\",\"@parcel/packager-ts\":\"^2.13.2\",\"@parcel/reporter-bundle-analyzer\":\"^2.13.2\",\"@parcel/reporter-sourcemap-visualiser\":\"^2.13.2\",\"@parcel/transformer-inline-string\":\"^2.13.2\",\"@parcel/transformer-typescript-types\":\"^2.13.2\",\"@parcel/validator-eslint\":\"^2.13.2\",\"@parcel/validator-typescript\":\"^2.13.2\",\"@testing-library/dom\":\"^10.4.0\",\"@testing-library/jest-dom\":\"6.5.0\",\"@testing-library/react\":\"16.0.1\",\"@testing-library/react-hooks\":\"8.0.1\",\"@testing-library/user-event\":\"14.5.2\",\"@types/jest\":\"^27.5.1\",\"@types/leaflet\":\"^1.8.0\",\"@types/node\":\"^12.12.38\",\"@types/react\":\"18.3.12\",\"@types/react-dom\":\"18.3.1\",\"@types/testing-library__jest-dom\":\"^5.14.5\",\"@types/testing-library__react\":\"latest\",\"@typescript-eslint/eslint-plugin\":\"^8.19.0\",\"@typescript-eslint/parser\":\"^8.19.0\",\"autoprefixer\":\"^10.4.7\",\"babel-eslint\":\"^10.0.3\",\"babel-jest\":\"^29.7.0\",\"babel-loader\":\"^8.2.5\",\"buffer\":\"^5.7.1\",\"canvas\":\"^2.9.0\",\"cross-env\":\"^7.0.2\",\"crypto-browserify\":\"^3.12.0\",\"eslint\":\"^9.16.0\",\"eslint-config-prettier\":\"^9.1.0\",\"eslint-config-standard\":\"^17.1.0\",\"eslint-config-standard-react\":\"^13.0.0\",\"eslint-plugin-import\":\"^2.31.0\",\"eslint-plugin-node\":\"^11.1.0\",\"eslint-plugin-prettier\":\"^5.2.1\",\"eslint-plugin-promise\":\"^7.2.1\",\"eslint-plugin-react\":\"^7.37.2\",\"https-browserify\":\"^1.0.0\",\"jest\":\"^29.7.0\",\"jest-environment-jsdom\":\"^29.7.0\",\"jest-junit\":\"16.0.0\",\"npm-run-all\":\"^4.1.5\",\"parcel\":\"^2.13.2\",\"postcss\":\"^8.4.14\",\"postcss-url\":\"^10.1.3\",\"prettier\":\"^2.0.4\",\"process\":\"^0.11.10\",\"punycode\":\"^1.4.1\",\"querystring-es3\":\"^0.2.1\",\"react\":\"^18\",\"react-docgen-typescript-plugin\":\"^1.0.5\",\"react-dom\":\"18.3.1\",\"react-scripts\":\"5.0.1\",\"react-test-renderer\":\"^18.3.1\",\"resize-observer-polyfill\":\"^1.5.1\",\"stream-browserify\":\"^3.0.0\",\"stream-http\":\"^3.2.0\",\"string_decoder\":\"^1.3.0\",\"tailwindcss\":\"^3.1.0\",\"typescript\":\"5.3.2\",\"url\":\"^0.11.0\",\"util\":\"^0.12.4\"},\"files\":[\"dist\"],\"dependencies\":{\"@davi-ai/body-engine-sprite\":\"3.0.0\",\"@davi-ai/react-bodyengine-three\":\"1.0.0\",\"@davi-ai/retorik-weather\":\"2.0.0\",\"@davi-ai/speechmarkdown-davi-js\":\"1.0.6\",\"@davi-ai/web-speech-cognitive-services-davi\":\"2.0.10\",\"@fluentui/react\":\"^8.103.3\",\"@lottiefiles/react-lottie-player\":\"^3.4.1\",\"@opentelemetry/api\":\"^1.9.0\",\"@opentelemetry/exporter-trace-otlp-http\":\"^0.200.0\",\"@opentelemetry/instrumentation\":\"^0.200.0\",\"@opentelemetry/instrumentation-document-load\":\"^0.45.0\",\"@opentelemetry/instrumentation-fetch\":\"^0.200.0\",\"@opentelemetry/resources\":\"^2.0.0\",\"@opentelemetry/sdk-trace-web\":\"^2.0.0\",\"@opentelemetry/semantic-conventions\":\"^1.32.0\",\"@react-spring/types\":\"^9.7.3\",\"@react-spring/web\":\"^9.7.3\",\"@react-three/drei\":\"^9.106.0\",\"@swc/helpers\":\"^0.5.0\",\"@types/geojson\":\"^7946.0.10\",\"@types/jsdom\":\"^16.2.14\",\"@use-gesture/react\":\"^10.2.15\",\"adaptivecards\":\"3.0.1\",\"botframework-directlinejs\":\"^0.15.5\",\"classnames\":\"^2.3.1\",\"detect-gpu\":\"^5.0.70\",\"leaflet\":\"^1.9.2\",\"markdown-it\":\"14.1.0\",\"pdfjs-dist\":\"3.11.174\",\"postcss-copy\":\"^7.1.0\",\"qrcode\":\"^1.5.1\",\"react-device-detect\":\"^2.2.3\",\"react-error-boundary\":\"^4.0.10\",\"react-leaflet\":\"^4.1.0\",\"react-pdf\":\"7.7.1\",\"react-shadow\":\"^20.5.0\",\"react-webcam\":\"^6.0.0\",\"swiper\":\"^8.4.5\",\"three\":\"0.174.0\",\"zustand\":\"^5.0.3\"},\"overrides\":{\"@davi-ai/web-speech-cognitive-services-davi\":\"$@davi-ai/web-speech-cognitive-services-davi\",\"three\":\"$three\",\"zustand\":\"$zustand\"},\"@parcel/resolver-default\":{\"packageExports\":true}}");
3232
+ $696df75883117d57$exports = JSON.parse("{\"name\":\"@davi-ai/retorik-framework\",\"version\":\"3.2.0\",\"description\":\"Retorik Framework package\",\"author\":\"DAVI\",\"license\":\"MIT\",\"repository\":\"none\",\"main\":\"dist/index.js\",\"module\":\"dist/index.modern.js\",\"types\":\"dist/index.d.ts\",\"source\":\"src/index.tsx\",\"standalone\":\"standalone/index.js\",\"targets\":{\"standalone\":{\"context\":\"browser\",\"outputFormat\":\"esmodule\",\"distDir\":\"standalone\",\"includeNodeModules\":{\"@testing-library/jest-dom\":false,\"@testing-library/react\":false,\"@testing-library/react-hooks\":false,\"@testing-library/user-event\":false,\"eslint\":false,\"eslint-config-prettier\":false,\"eslint-config-standard\":false,\"eslint-config-standard-react\":false,\"eslint-plugin-import\":false,\"eslint-plugin-node\":false,\"eslint-plugin-prettier\":false,\"eslint-plugin-promise\":false,\"eslint-plugin-react\":false,\"eslint-plugin-standard\":false,\"jest-junit\":false,\"npm-run-all\":false,\"parcel\":false,\"prettier\":false,\"raw-loader\":false,\"react-docgen-typescript-plugin\":false,\"react-scripts\":false,\"react-test-renderer\":false,\"tailwindcss\":false,\"typescript\":false}},\"module\":{\"context\":\"browser\",\"outputFormat\":\"esmodule\",\"distDir\":\"dist\"}},\"engines\":{\"node\":\">=10\"},\"scripts\":{\"build\":\"parcel build\",\"start\":\"parcel watch\",\"test\":\"jest --env=jsdom --reporters=jest-junit\",\"test-console\":\"jest --env=jsdom\",\"test-update-snapshots\":\"jest --env=jsdom --updateSnapshot\",\"test-coverage-console\":\"jest --env=jsdom --reporters=jest-junit --coverage\",\"test-coverage\":\"jest --env=jsdom --reporters=jest-junit --coverage --coverageReporters=cobertura\",\"report\":\"npx parcel build src/index.tsx --reporter @parcel/reporter-bundle-analyzer\",\"credentials\":\"vsts-npm-auth -config .npmrc\"},\"peerDependencies\":{\"react\":\"18.3.1\",\"react-dom\":\"18.3.1\"},\"devDependencies\":{\"@babel/core\":\"^7.19.1\",\"@babel/plugin-proposal-decorators\":\"^7.24.7\",\"@babel/plugin-proposal-private-property-in-object\":\"^7.21.11\",\"@babel/preset-env\":\"^7.25.4\",\"@babel/preset-react\":\"^7.24.7\",\"@babel/preset-typescript\":\"^7.24.7\",\"@babel/runtime\":\"^7.23.8\",\"@parcel/packager-ts\":\"^2.13.2\",\"@parcel/reporter-bundle-analyzer\":\"^2.13.2\",\"@parcel/reporter-sourcemap-visualiser\":\"^2.13.2\",\"@parcel/transformer-inline-string\":\"^2.13.2\",\"@parcel/transformer-typescript-types\":\"^2.13.2\",\"@parcel/validator-eslint\":\"^2.13.2\",\"@parcel/validator-typescript\":\"^2.13.2\",\"@testing-library/dom\":\"^10.4.0\",\"@testing-library/jest-dom\":\"6.5.0\",\"@testing-library/react\":\"16.0.1\",\"@testing-library/react-hooks\":\"8.0.1\",\"@testing-library/user-event\":\"14.5.2\",\"@types/jest\":\"^27.5.1\",\"@types/leaflet\":\"^1.8.0\",\"@types/node\":\"^12.12.38\",\"@types/react\":\"18.3.12\",\"@types/react-dom\":\"18.3.1\",\"@types/testing-library__jest-dom\":\"^5.14.5\",\"@types/testing-library__react\":\"latest\",\"@typescript-eslint/eslint-plugin\":\"^8.19.0\",\"@typescript-eslint/parser\":\"^8.19.0\",\"autoprefixer\":\"^10.4.7\",\"babel-eslint\":\"^10.0.3\",\"babel-jest\":\"^29.7.0\",\"babel-loader\":\"^8.2.5\",\"buffer\":\"^5.7.1\",\"canvas\":\"^2.9.0\",\"cross-env\":\"^7.0.2\",\"crypto-browserify\":\"^3.12.0\",\"eslint\":\"^9.16.0\",\"eslint-config-prettier\":\"^9.1.0\",\"eslint-config-standard\":\"^17.1.0\",\"eslint-config-standard-react\":\"^13.0.0\",\"eslint-plugin-import\":\"^2.31.0\",\"eslint-plugin-node\":\"^11.1.0\",\"eslint-plugin-prettier\":\"^5.2.1\",\"eslint-plugin-promise\":\"^7.2.1\",\"eslint-plugin-react\":\"^7.37.2\",\"https-browserify\":\"^1.0.0\",\"jest\":\"^29.7.0\",\"jest-environment-jsdom\":\"^29.7.0\",\"jest-junit\":\"16.0.0\",\"npm-run-all\":\"^4.1.5\",\"parcel\":\"^2.13.2\",\"postcss\":\"^8.4.14\",\"postcss-url\":\"^10.1.3\",\"prettier\":\"^2.0.4\",\"process\":\"^0.11.10\",\"punycode\":\"^1.4.1\",\"querystring-es3\":\"^0.2.1\",\"react\":\"^18\",\"react-docgen-typescript-plugin\":\"^1.0.5\",\"react-dom\":\"18.3.1\",\"react-scripts\":\"5.0.1\",\"react-test-renderer\":\"^18.3.1\",\"resize-observer-polyfill\":\"^1.5.1\",\"stream-browserify\":\"^3.0.0\",\"stream-http\":\"^3.2.0\",\"string_decoder\":\"^1.3.0\",\"tailwindcss\":\"^3.1.0\",\"typescript\":\"5.3.2\",\"url\":\"^0.11.0\",\"util\":\"^0.12.4\"},\"files\":[\"dist\"],\"dependencies\":{\"@davi-ai/body-engine-sprite\":\"3.0.0\",\"@davi-ai/react-bodyengine-three\":\"1.0.5\",\"@davi-ai/retorik-weather\":\"2.0.0\",\"@davi-ai/speechmarkdown-davi-js\":\"1.0.6\",\"@davi-ai/web-speech-cognitive-services-davi\":\"2.0.10\",\"@fluentui/react\":\"^8.103.3\",\"@lottiefiles/react-lottie-player\":\"^3.4.1\",\"@opentelemetry/api\":\"^1.9.0\",\"@opentelemetry/exporter-trace-otlp-http\":\"^0.200.0\",\"@opentelemetry/instrumentation\":\"^0.200.0\",\"@opentelemetry/instrumentation-document-load\":\"^0.45.0\",\"@opentelemetry/instrumentation-fetch\":\"^0.200.0\",\"@opentelemetry/resources\":\"^2.0.0\",\"@opentelemetry/sdk-trace-web\":\"^2.0.0\",\"@opentelemetry/semantic-conventions\":\"^1.32.0\",\"@react-spring/types\":\"^9.7.3\",\"@react-spring/web\":\"^9.7.3\",\"@react-three/drei\":\"^9.106.0\",\"@swc/helpers\":\"^0.5.0\",\"@types/geojson\":\"^7946.0.10\",\"@types/jsdom\":\"^16.2.14\",\"@use-gesture/react\":\"^10.2.15\",\"adaptivecards\":\"3.0.1\",\"botframework-directlinejs\":\"^0.15.5\",\"classnames\":\"^2.3.1\",\"detect-gpu\":\"^5.0.70\",\"leaflet\":\"^1.9.2\",\"markdown-it\":\"14.1.0\",\"pdfjs-dist\":\"3.11.174\",\"postcss-copy\":\"^7.1.0\",\"qrcode\":\"^1.5.1\",\"react-device-detect\":\"^2.2.3\",\"react-error-boundary\":\"^4.0.10\",\"react-leaflet\":\"^4.1.0\",\"react-pdf\":\"7.7.1\",\"react-shadow\":\"^20.5.0\",\"react-webcam\":\"^6.0.0\",\"swiper\":\"^8.4.5\",\"three\":\"0.174.0\",\"zustand\":\"^5.0.3\"},\"overrides\":{\"@davi-ai/web-speech-cognitive-services-davi\":\"$@davi-ai/web-speech-cognitive-services-davi\",\"three\":\"$three\",\"zustand\":\"$zustand\"},\"@parcel/resolver-default\":{\"packageExports\":true}}");
3219
3233
 
3220
3234
 
3221
3235
  const $328a7f03b0982320$var$initialState = {
@@ -3224,7 +3238,7 @@ const $328a7f03b0982320$var$initialState = {
3224
3238
  connectionStatusSubscription: null,
3225
3239
  activitySubscription: null,
3226
3240
  userId: '',
3227
- externalActivityHandler: null,
3241
+ externalActivityHandlers: [],
3228
3242
  paginationToSend: 10,
3229
3243
  positionToSend: undefined,
3230
3244
  activityWatermark: 0,
@@ -3238,7 +3252,15 @@ const $328a7f03b0982320$var$eventsWithoutCancel = [
3238
3252
  'setuser',
3239
3253
  'davi.gdprconsent'
3240
3254
  ];
3241
- const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRef, retrievingConversationRef, conversationIdRef, isTactileRef, localeRef, sendBoxRefRef, setIsWaitingForResponse, unlockClickedButton, addBotEvent, addBotMessage, addUserEvent, addUserMessage, checkConversationId, setRetrievingConversation, checkDumpedLocaleFallback, cancelCurrentUtterance, checkActivityReplyToId, addSpeechRecognitionDynamicGrammar, toggleMicrophone)=>{
3255
+ const $328a7f03b0982320$var$pad = (num)=>{
3256
+ return (num < 10 ? '0' : '') + num;
3257
+ };
3258
+ const $328a7f03b0982320$var$getFormattedTimestamp = (date = new Date())=>{
3259
+ const tzo = -date.getTimezoneOffset();
3260
+ const dif = tzo >= 0 ? '+' : '-';
3261
+ return date.getFullYear() + '-' + $328a7f03b0982320$var$pad(date.getMonth() + 1) + '-' + $328a7f03b0982320$var$pad(date.getDate()) + 'T' + $328a7f03b0982320$var$pad(date.getHours()) + ':' + $328a7f03b0982320$var$pad(date.getMinutes()) + ':' + $328a7f03b0982320$var$pad(date.getSeconds()) + dif + $328a7f03b0982320$var$pad(Math.floor(Math.abs(tzo) / 60)) + ':' + $328a7f03b0982320$var$pad(Math.abs(tzo) % 60);
3262
+ };
3263
+ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRef, retrievingConversationRef, conversationIdRef, isTactileRef, localeRef, sendBoxRefRef, channelDataRef, setIsWaitingForResponse, unlockClickedButton, addBotEvent, addBotMessage, addUserEvent, addUserMessage, checkConversationId, setRetrievingConversation, checkDumpedLocaleFallback, cancelCurrentUtterance, checkActivityReplyToId, addSpeechRecognitionDynamicGrammar, toggleMicrophone)=>{
3242
3264
  return (0, $dWhh5$zustand.createStore)((set, get)=>{
3243
3265
  return {
3244
3266
  ...$328a7f03b0982320$var$initialState,
@@ -3266,19 +3288,22 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
3266
3288
  return tempActivity;
3267
3289
  },
3268
3290
  checkIfHandlerAbortsActivity: (type, activity)=>{
3269
- const handler = get().externalActivityHandler;
3270
- if (handler) {
3291
+ const handlers = get().externalActivityHandlers;
3292
+ if (handlers.length) {
3271
3293
  const action = {
3272
3294
  type: type,
3273
3295
  payload: {
3274
3296
  activity: activity
3275
3297
  }
3276
3298
  };
3277
- if (handler(action)) {
3278
- setIsWaitingForResponse(false);
3279
- unlockClickedButton();
3280
- console.log('Retorik Framework > aborted activity');
3281
- return true;
3299
+ for(let i = 0; i < handlers.length; i++){
3300
+ const f = handlers[i];
3301
+ if (f(action)) {
3302
+ setIsWaitingForResponse(false);
3303
+ unlockClickedButton();
3304
+ console.log('Retorik Framework > aborted activity');
3305
+ return true;
3306
+ }
3282
3307
  }
3283
3308
  }
3284
3309
  return false;
@@ -3287,19 +3312,17 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
3287
3312
  set({
3288
3313
  directLineStatus: status
3289
3314
  });
3290
- const handler = get().externalActivityHandler;
3291
- if (handler) {
3315
+ get().externalActivityHandlers.forEach((handler)=>{
3292
3316
  handler({
3293
3317
  type: (0, $950037f04376bcbf$export$741b3b19a0ba7556)[status]
3294
3318
  });
3295
3319
  status === (0, $dWhh5$botframeworkdirectlinejs.ConnectionStatus).Online && handler({
3296
3320
  type: (0, $950037f04376bcbf$export$bbd16b9b30e132b3).SET_LANGUAGE
3297
3321
  });
3298
- }
3322
+ });
3299
3323
  },
3300
3324
  dispatchActivity: (activity)=>{
3301
3325
  if (get().conversationPaused) return;
3302
- // const retrievingConversation = useRetrievingConversation()
3303
3326
  if (retrievingConversationRef.current) {
3304
3327
  var _get_directLine;
3305
3328
  // @ts-ignore
@@ -3377,10 +3400,16 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
3377
3400
  (_get_directLine = get().directLine) === null || _get_directLine === void 0 ? void 0 : _get_directLine.end();
3378
3401
  },
3379
3402
  createDirectLine: (data)=>{
3380
- var // Send DIRECT_LINE/CONNECT before creating directline because if everything goes well it only sends DIRECT_LINE/CONNECT_FULFILLED
3381
- _data_externalActivityHandler;
3382
- (_data_externalActivityHandler = data.externalActivityHandler) === null || _data_externalActivityHandler === void 0 ? void 0 : _data_externalActivityHandler.call(data, {
3383
- type: (0, $950037f04376bcbf$export$741b3b19a0ba7556)[0]
3403
+ // Check if there are handlers already set or in the data
3404
+ const currentHandlers = get().externalActivityHandlers;
3405
+ const handlers = currentHandlers.length ? currentHandlers : data.externalActivityHandler ? [
3406
+ data.externalActivityHandler
3407
+ ] : [];
3408
+ // Send DIRECT_LINE/CONNECT before creating directline because if everything goes well it only sends DIRECT_LINE/CONNECT_FULFILLED
3409
+ handlers.forEach((handler)=>{
3410
+ handler({
3411
+ type: (0, $950037f04376bcbf$export$741b3b19a0ba7556)[0]
3412
+ });
3384
3413
  });
3385
3414
  const directLine = new (0, $dWhh5$botframeworkdirectlinejs.DirectLine)({
3386
3415
  webSocket: true,
@@ -3390,7 +3419,7 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
3390
3419
  get().actions.subscribe(directLine);
3391
3420
  set({
3392
3421
  userId: data.userId || 'userId',
3393
- externalActivityHandler: data.externalActivityHandler
3422
+ externalActivityHandlers: handlers
3394
3423
  });
3395
3424
  },
3396
3425
  addDataInChannelData: ()=>{
@@ -3409,7 +3438,10 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
3409
3438
  longitude: position.longitude
3410
3439
  };
3411
3440
  }
3412
- return dataAddedToChannelData;
3441
+ return channelDataRef.current ? {
3442
+ ...dataAddedToChannelData,
3443
+ ...channelDataRef.current
3444
+ } : dataAddedToChannelData;
3413
3445
  },
3414
3446
  checkMicrophoneAndCancel: ()=>{
3415
3447
  if (modeRef.current === (0, $71c613e2e831c34c$export$9484bbecc3c49a2e).vocal && recognitionStateRef.current === (0, $71c613e2e831c34c$export$3f0071308968cd80).Listening) toggleMicrophone();
@@ -3427,6 +3459,8 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
3427
3459
  },
3428
3460
  type: 'message',
3429
3461
  channelData: get().actions.addDataInChannelData(),
3462
+ localTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
3463
+ localTimestamp: $328a7f03b0982320$var$getFormattedTimestamp(),
3430
3464
  locale: locale
3431
3465
  };
3432
3466
  text && (tempActivity.text = text);
@@ -3447,25 +3481,16 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
3447
3481
  },
3448
3482
  type: 'event',
3449
3483
  channelData: get().actions.addDataInChannelData(),
3450
- // @ts-ignore
3451
3484
  locale: locale,
3485
+ localTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
3486
+ localTimestamp: $328a7f03b0982320$var$getFormattedTimestamp(),
3452
3487
  name: name,
3453
3488
  value: value
3454
3489
  };
3455
3490
  // Check if the event should be stopped in the external activity handler if there is one
3456
3491
  if (get().actions.checkIfHandlerAbortsActivity((0, $950037f04376bcbf$export$bbd16b9b30e132b3).POST_ACTIVITY, tempEvent)) return;
3457
3492
  if (get().actions.checkIfHandlerAbortsActivity((0, $950037f04376bcbf$export$bbd16b9b30e132b3).SEND_EVENT, tempEvent)) return;
3458
- (_get_directLine = get().directLine) === null || _get_directLine === void 0 ? void 0 : _get_directLine.postActivity({
3459
- from: {
3460
- id: get().userId
3461
- },
3462
- type: 'event',
3463
- channelData: get().actions.addDataInChannelData(),
3464
- // @ts-ignore
3465
- locale: locale,
3466
- name: name,
3467
- value: value
3468
- }).subscribe();
3493
+ (_get_directLine = get().directLine) === null || _get_directLine === void 0 ? void 0 : _get_directLine.postActivity(tempEvent).subscribe();
3469
3494
  },
3470
3495
  sendTyping: ()=>{
3471
3496
  var _get_directLine;
@@ -3482,24 +3507,36 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
3482
3507
  paginationToSend: value
3483
3508
  });
3484
3509
  },
3510
+ addExternalActivityHandler: (value)=>{
3511
+ set((state)=>({
3512
+ externalActivityHandlers: [
3513
+ ...state.externalActivityHandlers,
3514
+ value
3515
+ ]
3516
+ }));
3517
+ },
3518
+ setExternalActivityHandlers: (value)=>{
3519
+ set({
3520
+ externalActivityHandlers: value
3521
+ });
3522
+ },
3485
3523
  setPositionToSend: (value)=>{
3486
3524
  set({
3487
3525
  positionToSend: value
3488
3526
  });
3489
3527
  },
3490
3528
  dispatchMarkActivity: (id, speaking)=>{
3491
- const handler = get().externalActivityHandler;
3492
- if (handler) {
3493
- const action = {
3494
- type: (0, $950037f04376bcbf$export$bbd16b9b30e132b3).MARK,
3495
- payload: {
3496
- activityID: id,
3497
- name: 'speak',
3498
- value: speaking
3499
- }
3500
- };
3529
+ const action = {
3530
+ type: (0, $950037f04376bcbf$export$bbd16b9b30e132b3).MARK,
3531
+ payload: {
3532
+ activityID: id,
3533
+ name: 'speak',
3534
+ value: speaking
3535
+ }
3536
+ };
3537
+ get().externalActivityHandlers.forEach((handler)=>{
3501
3538
  handler(action);
3502
- }
3539
+ });
3503
3540
  },
3504
3541
  pauseConversation: ()=>{
3505
3542
  set({
@@ -3549,12 +3586,12 @@ const $328a7f03b0982320$export$adc771f45cf9b273 = (selector)=>{
3549
3586
  const $328a7f03b0982320$var$DirectlineProvider = ({ children: children })=>{
3550
3587
  const mode = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.mode);
3551
3588
  const recognitionState = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.activeRecognitionState);
3552
- const speaking = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.speaking);
3553
3589
  const retrievingConversation = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.retrievingConversation);
3554
3590
  const conversationId = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.conversationId);
3555
3591
  const isTactile = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.isTactile);
3556
3592
  const locale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.locale);
3557
3593
  const sendBoxRef = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.sendBoxRef);
3594
+ const channelData = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.configuration.channelData);
3558
3595
  const modeRef = (0, $dWhh5$react.useRef)((0, $71c613e2e831c34c$export$9484bbecc3c49a2e).text);
3559
3596
  const recognitionStateRef = (0, $dWhh5$react.useRef)((0, $71c613e2e831c34c$export$3f0071308968cd80).Closed);
3560
3597
  const retrievingConversationRef = (0, $dWhh5$react.useRef)(false);
@@ -3562,12 +3599,13 @@ const $328a7f03b0982320$var$DirectlineProvider = ({ children: children })=>{
3562
3599
  const isTactileRef = (0, $dWhh5$react.useRef)(false);
3563
3600
  const localeRef = (0, $dWhh5$react.useRef)('fr-FR');
3564
3601
  const sendBoxRefRef = (0, $dWhh5$react.useRef)(null);
3602
+ const channelDataRef = (0, $dWhh5$react.useRef)(undefined);
3565
3603
  const setIsWaitingForResponse = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.actions.setIsWaitingForResponse);
3566
3604
  const unlockClickedButton = (0, $2793f2455cec0982$export$77e4cc5334565f28)((state)=>state.actions.unlockClickedButton);
3567
3605
  const { addBotEvent: addBotEvent, addBotMessage: addBotMessage, addUserEvent: addUserEvent, addUserMessage: addUserMessage, checkConversationId: checkConversationId, setRetrievingConversation: setRetrievingConversation } = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.actions);
3568
3606
  const checkDumpedLocaleFallback = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.actions.checkDumpedLocaleFallback);
3569
3607
  const { cancelCurrentUtterance: cancelCurrentUtterance, checkActivityReplyToId: checkActivityReplyToId, addSpeechRecognitionDynamicGrammar: addSpeechRecognitionDynamicGrammar, toggleMicrophone: toggleMicrophone } = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.actions);
3570
- const [store] = (0, $dWhh5$react.useState)(()=>$328a7f03b0982320$var$createDirectlineStore(modeRef, recognitionStateRef, retrievingConversationRef, conversationIdRef, isTactileRef, localeRef, sendBoxRefRef, setIsWaitingForResponse, unlockClickedButton, addBotEvent, addBotMessage, addUserEvent, addUserMessage, checkConversationId, setRetrievingConversation, checkDumpedLocaleFallback, cancelCurrentUtterance, checkActivityReplyToId, addSpeechRecognitionDynamicGrammar, toggleMicrophone));
3608
+ const [store] = (0, $dWhh5$react.useState)(()=>$328a7f03b0982320$var$createDirectlineStore(modeRef, recognitionStateRef, retrievingConversationRef, conversationIdRef, isTactileRef, localeRef, sendBoxRefRef, channelDataRef, setIsWaitingForResponse, unlockClickedButton, addBotEvent, addBotMessage, addUserEvent, addUserMessage, checkConversationId, setRetrievingConversation, checkDumpedLocaleFallback, cancelCurrentUtterance, checkActivityReplyToId, addSpeechRecognitionDynamicGrammar, toggleMicrophone));
3571
3609
  (0, $dWhh5$react.useEffect)(()=>{
3572
3610
  modeRef.current = mode;
3573
3611
  }, [
@@ -3603,6 +3641,11 @@ const $328a7f03b0982320$var$DirectlineProvider = ({ children: children })=>{
3603
3641
  }, [
3604
3642
  sendBoxRef
3605
3643
  ]);
3644
+ (0, $dWhh5$react.useEffect)(()=>{
3645
+ channelDataRef.current = channelData;
3646
+ }, [
3647
+ channelData
3648
+ ]);
3606
3649
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)($328a7f03b0982320$var$DirectlineContext.Provider, {
3607
3650
  value: store,
3608
3651
  children: children
@@ -3622,7 +3665,7 @@ const $33ea75f69090702b$var$InputOutputHandler = ({ instanceId: instanceId })=>{
3622
3665
  const isMicrophoneAllowedRef = (0, $dWhh5$react.useRef)(isMicrophoneAllowed);
3623
3666
  const { setDisplaySubtitles: setDisplaySubtitles, toggleSubtitles: toggleSubtitles, setAgentData: setAgentData, setLoaderClosed: setLoaderClosed, resetRetorikStore: resetRetorikStore } = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.actions);
3624
3667
  const resetActivityStore = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.actions.resetActivityStore);
3625
- const { sendMessage: sendMessage, sendEvent: sendEvent, pauseConversation: pauseConversation, resumeConversation: resumeConversation, sendMessageToChatbot: sendMessageToChatbot, resetDirectlineStore: resetDirectlineStore } = (0, $328a7f03b0982320$export$adc771f45cf9b273)((state)=>state.actions);
3668
+ const { sendMessage: sendMessage, sendEvent: sendEvent, pauseConversation: pauseConversation, resumeConversation: resumeConversation, sendMessageToChatbot: sendMessageToChatbot, addExternalActivityHandler: addExternalActivityHandler, setExternalActivityHandlers: setExternalActivityHandlers, resetDirectlineStore: resetDirectlineStore } = (0, $328a7f03b0982320$export$adc771f45cf9b273)((state)=>state.actions);
3626
3669
  const handleCustomEvent = (event, method)=>{
3627
3670
  var _event_detail;
3628
3671
  // Check if an instance id is given to use this method in a single instance of Retorik Framework when there are several
@@ -3712,6 +3755,8 @@ const $33ea75f69090702b$var$InputOutputHandler = ({ instanceId: instanceId })=>{
3712
3755
  document.addEventListener('retorik_pauseConversation', (e)=>handleCustomEvent(e, pauseConversation));
3713
3756
  document.addEventListener('retorik_resumeConversation', (e)=>handleCustomEvent(e, resumeConversation));
3714
3757
  document.addEventListener('retorik_sendMessageToChatbot', (e)=>handleCustomEvent(e, sendMessageToChatbot));
3758
+ document.addEventListener('retorik_addExternalActivityHandler', (e)=>handleCustomEvent(e, addExternalActivityHandler));
3759
+ document.addEventListener('retorik_setExternalActivityHandlers', (e)=>handleCustomEvent(e, setExternalActivityHandlers));
3715
3760
  document.addEventListener('retorik_resetDirectlineStore', (e)=>handleCustomEvent(e, resetDirectlineStore));
3716
3761
  return ()=>{
3717
3762
  document.removeEventListener('retorik_openWidget', (e)=>handleCustomEvent(e, openWidget));
@@ -3758,6 +3803,8 @@ const $33ea75f69090702b$var$InputOutputHandler = ({ instanceId: instanceId })=>{
3758
3803
  document.removeEventListener('retorik_pauseConversation', (e)=>handleCustomEvent(e, pauseConversation));
3759
3804
  document.removeEventListener('retorik_resumeConversation', (e)=>handleCustomEvent(e, resumeConversation));
3760
3805
  document.removeEventListener('retorik_sendMessageToChatbot', (e)=>handleCustomEvent(e, sendMessageToChatbot));
3806
+ document.removeEventListener('retorik_addExternalActivityHandler', (e)=>handleCustomEvent(e, addExternalActivityHandler));
3807
+ document.removeEventListener('retorik_setExternalActivityHandlers', (e)=>handleCustomEvent(e, setExternalActivityHandlers));
3761
3808
  document.removeEventListener('retorik_resetDirectlineStore', (e)=>handleCustomEvent(e, resetDirectlineStore));
3762
3809
  };
3763
3810
  }, []);
@@ -3882,6 +3929,12 @@ const $33ea75f69090702b$export$cceb853b29df842 = (instanceId)=>$33ea75f69090702b
3882
3929
  const $33ea75f69090702b$export$255ebd0ca6bfba88 = (value, instanceId)=>$33ea75f69090702b$var$eventDispatch('retorik_sendMessageToChatbot', [
3883
3930
  value
3884
3931
  ], instanceId);
3932
+ const $33ea75f69090702b$export$28afdcc603412603 = (value, instanceId)=>$33ea75f69090702b$var$eventDispatch('retorik_addExternalActivityHandler', [
3933
+ value
3934
+ ], instanceId);
3935
+ const $33ea75f69090702b$export$2c7ae0f34657d605 = (value, instanceId)=>$33ea75f69090702b$var$eventDispatch('retorik_setExternalActivityHandlers', [
3936
+ value
3937
+ ], instanceId);
3885
3938
  const $33ea75f69090702b$export$8f3b2f6aa8e2c248 = (instanceId)=>$33ea75f69090702b$var$eventDispatch('retorik_resetDirectlineStore', [], instanceId);
3886
3939
 
3887
3940
 
@@ -4942,8 +4995,9 @@ var $96e000dbf063a176$export$2e2bcd8739ae039 = $96e000dbf063a176$var$GlobalProvi
4942
4995
 
4943
4996
 
4944
4997
 
4998
+
4945
4999
  var $203b743475f656c9$exports = {};
4946
- $203b743475f656c9$exports = "*, :before, :after, ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #3b82f680;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n*, :before, :after {\n box-sizing: border-box;\n border: 0 solid;\n}\n\n:before, :after {\n --tw-content: \"\";\n}\n\nhtml, :host {\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n tab-size: 4;\n font-feature-settings: normal;\n font-variation-settings: normal;\n -webkit-tap-highlight-color: transparent;\n font-family: Calibri, sans-serif;\n line-height: 1.5;\n}\n\nbody {\n line-height: inherit;\n margin: 0;\n}\n\nhr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\n\nabbr:where([title]) {\n text-decoration: underline dotted;\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\nb, strong {\n font-weight: bolder;\n}\n\ncode, kbd, samp, pre {\n font-feature-settings: normal;\n font-variation-settings: normal;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;\n font-size: 1em;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub, sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n\nbutton, input, optgroup, select, textarea {\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-family: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\n\nbutton, select {\n text-transform: none;\n}\n\nbutton, input:where([type=\"button\"]), input:where([type=\"reset\"]), input:where([type=\"submit\"]) {\n -webkit-appearance: button;\n background-color: #0000;\n background-image: none;\n}\n\n:-moz-focusring {\n outline: auto;\n}\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n\nsummary {\n display: list-item;\n}\n\nblockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol, ul, menu {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\ndialog {\n padding: 0;\n}\n\ntextarea {\n resize: vertical;\n}\n\ninput::placeholder, textarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\n\nbutton, [role=\"button\"] {\n cursor: pointer;\n}\n\n:disabled {\n cursor: default;\n}\n\nimg, svg, video, canvas, audio, iframe, embed, object {\n vertical-align: middle;\n display: block;\n}\n\nimg, video {\n max-width: 100%;\n height: auto;\n}\n\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n\n.rf-pointer-events-none {\n pointer-events: none;\n}\n\n.rf-pointer-events-auto {\n pointer-events: auto;\n}\n\n.rf-visible {\n visibility: visible;\n}\n\n.rf-invisible {\n visibility: hidden;\n}\n\n.rf-fixed {\n position: fixed;\n}\n\n.rf-absolute {\n position: absolute;\n}\n\n.rf-relative {\n position: relative;\n}\n\n.-rf-left-6 {\n left: -1.5rem;\n}\n\n.-rf-top-2 {\n top: -.5rem;\n}\n\n.-rf-top-4 {\n top: -1rem;\n}\n\n.-rf-top-6 {\n top: -1.5rem;\n}\n\n.-rf-top-\\[1\\.15rem\\] {\n top: -1.15rem;\n}\n\n.rf-bottom-0 {\n bottom: 0;\n}\n\n.rf-bottom-1 {\n bottom: .25rem;\n}\n\n.rf-bottom-1\\/4 {\n bottom: 25%;\n}\n\n.rf-bottom-10 {\n bottom: 2.5rem;\n}\n\n.rf-bottom-2 {\n bottom: .5rem;\n}\n\n.rf-bottom-4 {\n bottom: 1rem;\n}\n\n.rf-bottom-8 {\n bottom: 2rem;\n}\n\n.rf-bottom-\\[calc\\(100\\%\\+2rem\\)\\] {\n bottom: calc(100% + 2rem);\n}\n\n.rf-left-0 {\n left: 0;\n}\n\n.rf-left-1 {\n left: .25rem;\n}\n\n.rf-left-1\\/2 {\n left: 50%;\n}\n\n.rf-left-2 {\n left: .5rem;\n}\n\n.rf-left-4 {\n left: 1rem;\n}\n\n.rf-left-8 {\n left: 2rem;\n}\n\n.rf-left-\\[calc\\(100\\%\\+1rem\\)\\] {\n left: calc(100% + 1rem);\n}\n\n.rf-left-\\[calc\\(50\\%-3rem\\)\\] {\n left: calc(50% - 3rem);\n}\n\n.rf-right-0 {\n right: 0;\n}\n\n.rf-right-1 {\n right: .25rem;\n}\n\n.rf-right-10 {\n right: 2.5rem;\n}\n\n.rf-right-12 {\n right: 3rem;\n}\n\n.rf-right-2 {\n right: .5rem;\n}\n\n.rf-right-4 {\n right: 1rem;\n}\n\n.rf-right-6 {\n right: 1.5rem;\n}\n\n.rf-right-8 {\n right: 2rem;\n}\n\n.rf-right-\\[calc\\(100\\%\\+1rem\\)\\] {\n right: calc(100% + 1rem);\n}\n\n.rf-top-0 {\n top: 0;\n}\n\n.rf-top-1 {\n top: .25rem;\n}\n\n.rf-top-1\\/2 {\n top: 50%;\n}\n\n.rf-top-1\\/3 {\n top: 33.3333%;\n}\n\n.rf-top-110 {\n top: 110%;\n}\n\n.rf-top-2 {\n top: .5rem;\n}\n\n.rf-top-4 {\n top: 1rem;\n}\n\n.rf-top-8 {\n top: 2rem;\n}\n\n.rf-top-\\[0\\.125rem\\] {\n top: .125rem;\n}\n\n.rf-top-\\[calc\\(100\\%\\+1rem\\)\\] {\n top: calc(100% + 1rem);\n}\n\n.rf-top-\\[calc\\(50\\%-3rem\\)\\] {\n top: calc(50% - 3rem);\n}\n\n.rf-z-\\[10\\] {\n z-index: 10;\n}\n\n.rf-z-\\[15\\] {\n z-index: 15;\n}\n\n.rf-z-\\[1\\] {\n z-index: 1;\n}\n\n.rf-z-\\[20\\] {\n z-index: 20;\n}\n\n.rf-z-\\[25\\] {\n z-index: 25;\n}\n\n.rf-z-\\[2\\] {\n z-index: 2;\n}\n\n.rf-z-\\[5\\] {\n z-index: 5;\n}\n\n.rf-z-agent {\n z-index: 1;\n}\n\n.rf-z-background {\n z-index: 0;\n}\n\n.rf-z-chatbot {\n z-index: 10;\n}\n\n.rf-z-detailedPOI {\n z-index: 31;\n}\n\n.rf-z-dropdown {\n z-index: 30;\n}\n\n.rf-z-exitwidget {\n z-index: 55;\n}\n\n.rf-z-list {\n z-index: 30;\n}\n\n.rf-z-menu {\n z-index: 40;\n}\n\n.rf-z-modal {\n z-index: 50;\n}\n\n.rf-z-overlay {\n z-index: 40;\n}\n\n.rf-z-ui {\n z-index: 20;\n}\n\n.rf-z-util {\n z-index: 2;\n}\n\n.rf-col-span-2 {\n grid-column: span 2 / span 2;\n}\n\n.rf-col-span-3 {\n grid-column: span 3 / span 3;\n}\n\n.rf-col-span-4 {\n grid-column: span 4 / span 4;\n}\n\n.rf-col-span-full {\n grid-column: 1 / -1;\n}\n\n.rf-col-start-1 {\n grid-column-start: 1;\n}\n\n.rf-col-start-3 {\n grid-column-start: 3;\n}\n\n.rf-col-start-4 {\n grid-column-start: 4;\n}\n\n.rf-col-start-5 {\n grid-column-start: 5;\n}\n\n.rf-col-end-13 {\n grid-column-end: 13;\n}\n\n.rf-col-end-2 {\n grid-column-end: 2;\n}\n\n.rf-col-end-9 {\n grid-column-end: 9;\n}\n\n.rf-row-span-1 {\n grid-row: span 1 / span 1;\n}\n\n.rf-row-span-2 {\n grid-row: span 2 / span 2;\n}\n\n.rf-row-span-3 {\n grid-row: span 3 / span 3;\n}\n\n.rf-row-span-9 {\n grid-row: span 9 / span 9;\n}\n\n.rf-row-span-full {\n grid-row: 1 / -1;\n}\n\n.rf-row-start-1 {\n grid-row-start: 1;\n}\n\n.rf-row-start-12 {\n grid-row-start: 12;\n}\n\n.rf-row-start-9 {\n grid-row-start: 9;\n}\n\n.rf-row-end-13 {\n grid-row-end: 13;\n}\n\n.rf-row-end-3 {\n grid-row-end: 3;\n}\n\n.rf-float-right {\n float: right;\n}\n\n.rf-m-0 {\n margin: 0;\n}\n\n.rf-m-4 {\n margin: 1rem;\n}\n\n.rf-m-auto {\n margin: auto;\n}\n\n.-rf-mx-6 {\n margin-left: -1.5rem;\n margin-right: -1.5rem;\n}\n\n.-rf-mx-8 {\n margin-left: -2rem;\n margin-right: -2rem;\n}\n\n.rf-mx-0 {\n margin-left: 0;\n margin-right: 0;\n}\n\n.rf-mx-2 {\n margin-left: .5rem;\n margin-right: .5rem;\n}\n\n.rf-mx-3 {\n margin-left: .75rem;\n margin-right: .75rem;\n}\n\n.rf-mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n\n.rf-mx-8 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n\n.rf-mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.rf-my-1 {\n margin-top: .25rem;\n margin-bottom: .25rem;\n}\n\n.rf-my-2 {\n margin-top: .5rem;\n margin-bottom: .5rem;\n}\n\n.rf-my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.rf-my-auto {\n margin-top: auto;\n margin-bottom: auto;\n}\n\n.-rf-mb-4 {\n margin-bottom: -1rem;\n}\n\n.rf-mb-0 {\n margin-bottom: 0;\n}\n\n.rf-mb-1 {\n margin-bottom: .25rem;\n}\n\n.rf-mb-12 {\n margin-bottom: 3rem;\n}\n\n.rf-mb-16 {\n margin-bottom: 4rem;\n}\n\n.rf-mb-2 {\n margin-bottom: .5rem;\n}\n\n.rf-mb-26 {\n margin-bottom: 6.5rem;\n}\n\n.rf-mb-28 {\n margin-bottom: 7rem;\n}\n\n.rf-mb-3 {\n margin-bottom: .75rem;\n}\n\n.rf-mb-30 {\n margin-bottom: 7.5rem;\n}\n\n.rf-mb-4 {\n margin-bottom: 1rem;\n}\n\n.rf-mb-5 {\n margin-bottom: 1.25rem;\n}\n\n.rf-mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.rf-mb-8 {\n margin-bottom: 2rem;\n}\n\n.rf-ml-1 {\n margin-left: .25rem;\n}\n\n.rf-ml-2 {\n margin-left: .5rem;\n}\n\n.rf-mr-2 {\n margin-right: .5rem;\n}\n\n.rf-mr-4 {\n margin-right: 1rem;\n}\n\n.rf-mt-1 {\n margin-top: .25rem;\n}\n\n.rf-mt-10 {\n margin-top: 2.5rem;\n}\n\n.rf-mt-2 {\n margin-top: .5rem;\n}\n\n.rf-mt-4 {\n margin-top: 1rem;\n}\n\n.rf-mt-5 {\n margin-top: 1.25rem;\n}\n\n.rf-mt-8 {\n margin-top: 2rem;\n}\n\n.rf-mt-\\[0\\.2rem\\] {\n margin-top: .2rem;\n}\n\n.rf-mt-auto {\n margin-top: auto;\n}\n\n.rf-box-border {\n box-sizing: border-box;\n}\n\n.rf-line-clamp-1 {\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-2 {\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-inline {\n display: inline;\n}\n\n.rf-flex {\n display: flex;\n}\n\n.rf-grid {\n display: grid;\n}\n\n.rf-hidden {\n display: none;\n}\n\n.rf-aspect-\\[4\\/3\\] {\n aspect-ratio: 4 / 3;\n}\n\n.rf-aspect-square {\n aspect-ratio: 1;\n}\n\n.rf-aspect-video {\n aspect-ratio: 16 / 9;\n}\n\n.rf-h-0 {\n height: 0;\n}\n\n.rf-h-1\\/2 {\n height: 50%;\n}\n\n.rf-h-1\\/3 {\n height: 33.3333%;\n}\n\n.rf-h-10 {\n height: 2.5rem;\n}\n\n.rf-h-12 {\n height: 3rem;\n}\n\n.rf-h-14 {\n height: 3.5rem;\n}\n\n.rf-h-16 {\n height: 4rem;\n}\n\n.rf-h-18 {\n height: 4.5rem;\n}\n\n.rf-h-2 {\n height: .5rem;\n}\n\n.rf-h-2\\/3 {\n height: 66.6667%;\n}\n\n.rf-h-2\\/5 {\n height: 40%;\n}\n\n.rf-h-24 {\n height: 6rem;\n}\n\n.rf-h-3 {\n height: .75rem;\n}\n\n.rf-h-3\\/10 {\n height: 30%;\n}\n\n.rf-h-32 {\n height: 8rem;\n}\n\n.rf-h-36 {\n height: 9rem;\n}\n\n.rf-h-4 {\n height: 1rem;\n}\n\n.rf-h-48 {\n height: 12rem;\n}\n\n.rf-h-5 {\n height: 1.25rem;\n}\n\n.rf-h-6 {\n height: 1.5rem;\n}\n\n.rf-h-7 {\n height: 1.75rem;\n}\n\n.rf-h-8 {\n height: 2rem;\n}\n\n.rf-h-9 {\n height: 2.25rem;\n}\n\n.rf-h-\\[0\\.875rem\\] {\n height: .875rem;\n}\n\n.rf-h-\\[1\\.25rem\\] {\n height: 1.25rem;\n}\n\n.rf-h-\\[35\\%\\] {\n height: 35%;\n}\n\n.rf-h-\\[50\\%\\] {\n height: 50%;\n}\n\n.rf-h-\\[calc\\(50vw-3rem\\)\\] {\n height: calc(50vw - 3rem);\n}\n\n.rf-h-fit {\n height: fit-content;\n}\n\n.rf-h-full {\n height: 100%;\n}\n\n.rf-h-max {\n height: max-content;\n}\n\n.rf-h-screen {\n height: 100vh;\n}\n\n.rf-max-h-12 {\n max-height: 3rem;\n}\n\n.rf-max-h-20 {\n max-height: 5rem;\n}\n\n.rf-max-h-28 {\n max-height: 7rem;\n}\n\n.rf-max-h-4\\/5 {\n max-height: 80%;\n}\n\n.rf-max-h-48 {\n max-height: 12rem;\n}\n\n.rf-max-h-6 {\n max-height: 1.5rem;\n}\n\n.rf-max-h-8 {\n max-height: 2rem;\n}\n\n.rf-max-h-full {\n max-height: 100%;\n}\n\n.rf-max-h-qrcode {\n max-height: 120px;\n}\n\n.rf-max-h-qrcodelarge {\n max-height: 200px;\n}\n\n.rf-max-h-screen {\n max-height: 100vh;\n}\n\n.rf-min-h-12 {\n min-height: 3rem;\n}\n\n.rf-min-h-14 {\n min-height: 3.5rem;\n}\n\n.rf-min-h-16 {\n min-height: 4rem;\n}\n\n.rf-min-h-2\\/5 {\n min-height: 40%;\n}\n\n.rf-min-h-6 {\n min-height: 1.5rem;\n}\n\n.rf-min-h-8 {\n min-height: 2rem;\n}\n\n.rf-min-h-9 {\n min-height: 2.25rem;\n}\n\n.rf-min-h-full {\n min-height: 100%;\n}\n\n.rf-min-h-inherit {\n min-height: inherit;\n}\n\n.rf-w-0 {\n width: 0;\n}\n\n.rf-w-1\\/2 {\n width: 50%;\n}\n\n.rf-w-1\\/3 {\n width: 33.3333%;\n}\n\n.rf-w-1\\/4 {\n width: 25%;\n}\n\n.rf-w-10 {\n width: 2.5rem;\n}\n\n.rf-w-12 {\n width: 3rem;\n}\n\n.rf-w-16 {\n width: 4rem;\n}\n\n.rf-w-18 {\n width: 4.5rem;\n}\n\n.rf-w-2 {\n width: .5rem;\n}\n\n.rf-w-2\\/3 {\n width: 66.6667%;\n}\n\n.rf-w-20 {\n width: 5rem;\n}\n\n.rf-w-24 {\n width: 6rem;\n}\n\n.rf-w-3 {\n width: .75rem;\n}\n\n.rf-w-3\\/20 {\n width: 15%;\n}\n\n.rf-w-3\\/4 {\n width: 75%;\n}\n\n.rf-w-3\\/5 {\n width: 60%;\n}\n\n.rf-w-32 {\n width: 8rem;\n}\n\n.rf-w-36 {\n width: 9rem;\n}\n\n.rf-w-4 {\n width: 1rem;\n}\n\n.rf-w-48 {\n width: 12rem;\n}\n\n.rf-w-5 {\n width: 1.25rem;\n}\n\n.rf-w-6 {\n width: 1.5rem;\n}\n\n.rf-w-7 {\n width: 1.75rem;\n}\n\n.rf-w-8 {\n width: 2rem;\n}\n\n.rf-w-9 {\n width: 2.25rem;\n}\n\n.rf-w-\\[45\\%\\] {\n width: 45%;\n}\n\n.rf-w-\\[90\\%\\] {\n width: 90%;\n}\n\n.rf-w-\\[calc\\(100\\%-3rem\\)\\] {\n width: calc(100% - 3rem);\n}\n\n.rf-w-fit {\n width: fit-content;\n}\n\n.rf-w-full {\n width: 100%;\n}\n\n.rf-w-max {\n width: max-content;\n}\n\n.rf-w-screen {\n width: 100vw;\n}\n\n.rf-min-w-12 {\n min-width: 3rem;\n}\n\n.rf-min-w-24 {\n min-width: 6rem;\n}\n\n.rf-min-w-3\\/20 {\n min-width: 15%;\n}\n\n.rf-min-w-6 {\n min-width: 1.5rem;\n}\n\n.rf-min-w-7 {\n min-width: 1.75rem;\n}\n\n.rf-min-w-\\[45\\%\\] {\n min-width: 45%;\n}\n\n.rf-min-w-full {\n min-width: 100%;\n}\n\n.rf-max-w-1\\/2 {\n max-width: 50%;\n}\n\n.rf-max-w-16 {\n max-width: 4rem;\n}\n\n.rf-max-w-3\\/20 {\n max-width: 15%;\n}\n\n.rf-max-w-6 {\n max-width: 1.5rem;\n}\n\n.rf-max-w-7\\/10 {\n max-width: 70%;\n}\n\n.rf-max-w-\\[100vw\\] {\n max-width: 100vw;\n}\n\n.rf-max-w-\\[45\\%\\] {\n max-width: 45%;\n}\n\n.rf-max-w-\\[500px\\] {\n max-width: 500px;\n}\n\n.rf-max-w-\\[75\\%\\] {\n max-width: 75%;\n}\n\n.rf-max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n}\n\n.rf-max-w-full {\n max-width: 100%;\n}\n\n.rf-max-w-none {\n max-width: none;\n}\n\n.rf-flex-1 {\n flex: 1;\n}\n\n.rf-flex-\\[0_0_40\\%\\] {\n flex: 0 0 40%;\n}\n\n.rf-flex-\\[2_1_0\\%\\] {\n flex: 2;\n}\n\n.rf-flex-\\[4_1_0\\%\\] {\n flex: 4;\n}\n\n.rf-border-collapse {\n border-collapse: collapse;\n}\n\n.rf-origin-center {\n transform-origin: center;\n}\n\n.-rf-translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.-rf-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.-rf-translate-y-full {\n --tw-translate-y: -100%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf--translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-translate-x-1 {\n --tw-translate-x: .25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-translate-x-5 {\n --tw-translate-x: 1.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf--rotate-90 {\n --tw-rotate: -90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-rotate-0 {\n --tw-rotate: 0deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-rotate-90 {\n --tw-rotate: 90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-scale-0 {\n --tw-scale-x: 0;\n --tw-scale-y: 0;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n@keyframes rf-blink {\n 0%, 100% {\n opacity: .2;\n }\n\n 50% {\n opacity: 1;\n }\n}\n\n.rf-animate-blink {\n animation: 1.4s infinite both rf-blink;\n}\n\n@keyframes rf-fadeIn {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n.rf-animate-fadeIn {\n animation: .5s .2s backwards rf-fadeIn;\n}\n\n@keyframes rf-hScroll {\n 0% {\n transform: translateX(0);\n }\n\n 100% {\n transform: translateX(calc(-100% - 2rem));\n }\n}\n\n.rf-animate-hScroll {\n animation: 20s linear infinite rf-hScroll;\n}\n\n@keyframes rf-loader {\n 0% {\n box-shadow: 0 1.5rem 0 -1.5rem var(--rf-color-loader-animation);\n }\n\n 40% {\n box-shadow: 0 1.5rem 0 -.3rem var(--rf-color-loader-animation);\n }\n\n 80% {\n box-shadow: 0 1.5rem 0 -1.5rem var(--rf-color-loader-animation);\n }\n\n 100% {\n box-shadow: 0 1.5rem 0 -1.5rem var(--rf-color-loader-animation);\n }\n}\n\n.rf-animate-loader {\n animation: 1.8s ease-in-out -.16s infinite both rf-loader;\n}\n\n.rf-animate-loaderFadeIn {\n animation: 2s rf-fadeIn;\n}\n\n@keyframes rf-fadeOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n.rf-animate-loaderFadeOut {\n animation: 1s rf-fadeOut;\n}\n\n@keyframes rf-loaderMedium {\n 0% {\n box-shadow: 0 .75rem 0 -.75rem var(--rf-color-loader-animation);\n }\n\n 40% {\n box-shadow: 0 .75rem 0 -.25rem var(--rf-color-loader-animation);\n }\n\n 80% {\n box-shadow: 0 .75rem 0 -.75rem var(--rf-color-loader-animation);\n }\n\n 100% {\n box-shadow: 0 .75rem 0 -.75rem var(--rf-color-loader-animation);\n }\n}\n\n.rf-animate-loaderMedium {\n animation: 1.8s ease-in-out -.16s infinite both rf-loaderMedium;\n}\n\n@keyframes rf-loaderMini {\n 0% {\n box-shadow: 0 .5rem 0 -.5rem var(--rf-color-loader-animation);\n }\n\n 40% {\n box-shadow: 0 .5rem 0 -.1rem var(--rf-color-loader-animation);\n }\n\n 80% {\n box-shadow: 0 .5rem 0 -.5rem var(--rf-color-loader-animation);\n }\n\n 100% {\n box-shadow: 0 .5rem 0 -.5rem var(--rf-color-loader-animation);\n }\n}\n\n.rf-animate-loaderMini {\n animation: 1.8s ease-in-out -.16s infinite both rf-loaderMini;\n}\n\n@keyframes rf-slideBottom {\n 0% {\n opacity: 0;\n transform: translateX(0)translateY(20px);\n }\n\n 100% {\n opacity: 1;\n transform: translateX(0)translateY(0);\n }\n}\n\n.rf-animate-slideBottom {\n animation: .5s .2s backwards rf-slideBottom;\n}\n\n@keyframes rf-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.rf-animate-spin {\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-cursor-pointer {\n cursor: pointer;\n}\n\n.rf-select-none {\n user-select: none;\n}\n\n.rf-resize-none {\n resize: none;\n}\n\n.rf-scroll-pb-4 {\n scroll-padding-bottom: 1rem;\n}\n\n.rf-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n\n.rf-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.rf-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.rf-grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n\n.rf-grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n}\n\n.rf-grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n}\n\n.rf-grid-cols-8 {\n grid-template-columns: repeat(8, minmax(0, 1fr));\n}\n\n.rf-grid-cols-\\[repeat\\(2\\,30\\%\\)\\] {\n grid-template-columns: repeat(2, 30%);\n}\n\n.rf-grid-cols-\\[repeat\\(2\\,45\\%\\)\\] {\n grid-template-columns: repeat(2, 45%);\n}\n\n.rf-grid-cols-\\[repeat\\(3\\,31\\%\\)\\] {\n grid-template-columns: repeat(3, 31%);\n}\n\n.rf-grid-cols-headerContainer {\n grid-template-columns: 5rem 1rem 1fr 1fr;\n}\n\n.rf-grid-cols-printingPreview {\n grid-template-columns: minmax(0, 1fr) 3rem;\n}\n\n.rf-grid-cols-routes {\n grid-template-columns: repeat(3, max-content);\n}\n\n.rf-grid-rows-1 {\n grid-template-rows: repeat(1, minmax(0, 1fr));\n}\n\n.rf-grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n}\n\n.rf-grid-rows-3 {\n grid-template-rows: repeat(3, minmax(0, 1fr));\n}\n\n.rf-grid-rows-4 {\n grid-template-rows: repeat(4, minmax(0, 1fr));\n}\n\n.rf-grid-rows-5 {\n grid-template-rows: repeat(5, minmax(0, 1fr));\n}\n\n.rf-grid-rows-container {\n grid-template-rows: repeat(12, minmax(0, 1fr));\n}\n\n.rf-grid-rows-headerContainer {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n}\n\n.rf-flex-row {\n flex-direction: row;\n}\n\n.rf-flex-col {\n flex-direction: column;\n}\n\n.rf-flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n.rf-flex-wrap {\n flex-wrap: wrap;\n}\n\n.rf-flex-nowrap {\n flex-wrap: nowrap;\n}\n\n.rf-content-around {\n align-content: space-around;\n}\n\n.rf-items-start {\n align-items: flex-start;\n}\n\n.rf-items-end {\n align-items: flex-end;\n}\n\n.rf-items-center {\n align-items: center;\n}\n\n.rf-justify-start {\n justify-content: flex-start;\n}\n\n.rf-justify-end {\n justify-content: flex-end;\n}\n\n.rf-justify-center {\n justify-content: center;\n}\n\n.rf-justify-between {\n justify-content: space-between;\n}\n\n.rf-justify-around {\n justify-content: space-around;\n}\n\n.rf-justify-evenly {\n justify-content: space-evenly;\n}\n\n.rf-gap-1 {\n gap: .25rem;\n}\n\n.rf-gap-12 {\n gap: 3rem;\n}\n\n.rf-gap-2 {\n gap: .5rem;\n}\n\n.rf-gap-3 {\n gap: .75rem;\n}\n\n.rf-gap-4 {\n gap: 1rem;\n}\n\n.rf-gap-5 {\n gap: 1.25rem;\n}\n\n.rf-gap-6 {\n gap: 1.5rem;\n}\n\n.rf-gap-8 {\n gap: 2rem;\n}\n\n.rf-gap-9 {\n gap: 2.25rem;\n}\n\n.rf-gap-\\[10\\%\\] {\n gap: 10%;\n}\n\n.rf-gap-x-\\[3\\.5\\%\\] {\n column-gap: 3.5%;\n}\n\n.rf-divide-x > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-x-reverse: 0;\n border-right-width: calc(1px * var(--tw-divide-x-reverse));\n border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));\n}\n\n.rf-self-auto {\n align-self: auto;\n}\n\n.rf-self-start {\n align-self: flex-start;\n}\n\n.rf-self-end {\n align-self: flex-end;\n}\n\n.rf-self-center {\n align-self: center;\n}\n\n.rf-justify-self-start {\n justify-self: start;\n}\n\n.rf-justify-self-end {\n justify-self: end;\n}\n\n.rf-justify-self-center {\n justify-self: center;\n}\n\n.rf-overflow-hidden {\n overflow: hidden;\n}\n\n.rf-overflow-clip {\n overflow: clip;\n}\n\n.rf-overflow-y-auto {\n overflow-y: auto;\n}\n\n.rf-overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.rf-overflow-y-hidden {\n overflow-y: hidden;\n}\n\n.rf-overflow-y-clip {\n overflow-y: clip;\n}\n\n.rf-overflow-x-visible {\n overflow-x: visible;\n}\n\n.rf-overflow-y-visible {\n overflow-y: visible;\n}\n\n.rf-overflow-x-scroll {\n overflow-x: scroll;\n}\n\n.rf-overflow-y-scroll {\n overflow-y: scroll;\n}\n\n.rf-truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.rf-whitespace-nowrap {\n white-space: nowrap;\n}\n\n.rf-whitespace-break-spaces {\n white-space: break-spaces;\n}\n\n.rf-rounded {\n border-radius: .3125rem;\n}\n\n.rf-rounded-6 {\n border-radius: 1.5rem;\n}\n\n.rf-rounded-8 {\n border-radius: 2rem;\n}\n\n.rf-rounded-\\[20px\\] {\n border-radius: 20px;\n}\n\n.rf-rounded-half {\n border-radius: 50%;\n}\n\n.rf-rounded-lg {\n border-radius: .5rem;\n}\n\n.rf-rounded-max {\n border-radius: 100%;\n}\n\n.rf-rounded-b {\n border-bottom-right-radius: .3125rem;\n border-bottom-left-radius: .3125rem;\n}\n\n.rf-rounded-b-4 {\n border-bottom-right-radius: 1rem;\n border-bottom-left-radius: 1rem;\n}\n\n.rf-rounded-b-lg {\n border-bottom-right-radius: .5rem;\n border-bottom-left-radius: .5rem;\n}\n\n.rf-rounded-t-lg {\n border-top-left-radius: .5rem;\n border-top-right-radius: .5rem;\n}\n\n.rf-border {\n border-width: 1px;\n}\n\n.rf-border-0 {\n border-width: 0;\n}\n\n.rf-border-2 {\n border-width: 2px;\n}\n\n.rf-border-y {\n border-top-width: 1px;\n border-bottom-width: 1px;\n}\n\n.rf-border-b {\n border-bottom-width: 1px;\n}\n\n.rf-border-b-2 {\n border-bottom-width: 2px;\n}\n\n.rf-border-l {\n border-left-width: 1px;\n}\n\n.rf-border-r {\n border-right-width: 1px;\n}\n\n.rf-border-t {\n border-top-width: 1px;\n}\n\n.rf-border-t-0 {\n border-top-width: 0;\n}\n\n.rf-border-none {\n border-style: none;\n}\n\n.rf-border-\\[\\#00000029\\] {\n border-color: #00000029;\n}\n\n.rf-border-\\[\\#1999B1\\] {\n --tw-border-opacity: 1;\n border-color: rgb(25 153 177 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#325981\\] {\n --tw-border-opacity: 1;\n border-color: rgb(50 89 129 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#707070\\] {\n --tw-border-opacity: 1;\n border-color: rgb(112 112 112 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#8B8888\\] {\n --tw-border-opacity: 1;\n border-color: rgb(139 136 136 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#9FA2AA\\] {\n --tw-border-opacity: 1;\n border-color: rgb(159 162 170 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#C7C6C6\\] {\n --tw-border-opacity: 1;\n border-color: rgb(199 198 198 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#F0F0F0\\] {\n --tw-border-opacity: 1;\n border-color: rgb(240 240 240 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-black {\n border-color: var(--rf-color-black);\n}\n\n.rf-border-cardButtonBorderDefault {\n border-color: var(--rf-color-cardButtonBorderDefault);\n}\n\n.rf-border-cardButtonBorderHover {\n border-color: var(--rf-color-cardButtonBorderHover);\n}\n\n.rf-border-cardFrameBorder {\n border-color: var(--rf-color-cardFrameBorder);\n}\n\n.rf-border-formInputButtonBorderDefault {\n border-color: var(--rf-color-formInputButtonBorderDefault);\n}\n\n.rf-border-formInputButtonBorderHover {\n border-color: var(--rf-color-formInputButtonBorderHover);\n}\n\n.rf-border-formInputRadioCheckboxCheckedBorder {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n}\n\n.rf-border-formInputRadioCheckboxUncheckedBorder {\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n}\n\n.rf-border-gray {\n --tw-border-opacity: 1;\n border-color: rgb(128 128 128 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-lightgray {\n --tw-border-opacity: 1;\n border-color: rgb(129 129 129 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-menuBorder {\n --tw-border-opacity: 1;\n border-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-primary {\n border-color: var(--rf-color-primary);\n}\n\n.rf-border-secondary {\n border-color: var(--rf-color-secondary);\n}\n\n.rf-border-templateCheckboxBorder {\n --tw-border-opacity: 1;\n border-color: rgb(112 112 112 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-textBoxBorder {\n --tw-border-opacity: 1;\n border-color: rgb(190 190 190 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-textModePanelBackgroundBot {\n border-color: var(--rf-color-textModePanelBackgroundBot);\n}\n\n.rf-border-textModePanelBackgroundUser {\n border-color: var(--rf-color-textModePanelBackgroundUser);\n}\n\n.rf-border-trueblack {\n --tw-border-opacity: 1;\n border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-truewhite {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-x-primary {\n border-left-color: var(--rf-color-primary);\n border-right-color: var(--rf-color-primary);\n}\n\n.rf-border-y-menuBorder {\n --tw-border-opacity: 1;\n border-top-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n border-bottom-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-\\[\\#C4C5C8\\] {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(196 197 200 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-black {\n border-bottom-color: var(--rf-color-black);\n}\n\n.rf-border-b-menuBorder {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-silver {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(192 192 192 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-transparent {\n border-bottom-color: #0000;\n}\n\n.rf-border-l-menuBorder {\n --tw-border-opacity: 1;\n border-left-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-r-\\[\\#8B8888\\] {\n --tw-border-opacity: 1;\n border-right-color: rgb(139 136 136 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-r-silver {\n --tw-border-opacity: 1;\n border-right-color: rgb(192 192 192 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-t-\\[\\#8B8888\\] {\n --tw-border-opacity: 1;\n border-top-color: rgb(139 136 136 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-t-\\[\\#CBC9C9\\] {\n --tw-border-opacity: 1;\n border-top-color: rgb(203 201 201 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-t-menuBorder {\n --tw-border-opacity: 1;\n border-top-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-bg-\\[\\#00000050\\] {\n background-color: #00000050;\n}\n\n.rf-bg-\\[\\#000000B3\\] {\n background-color: #000000b3;\n}\n\n.rf-bg-\\[\\#121212F2\\] {\n background-color: #121212f2;\n}\n\n.rf-bg-\\[\\#1999B1\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(25 153 177 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#325981\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(50 89 129 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#CDE5FE\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(205 229 254 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#F0F0F0\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(240 240 240 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#F8F8F8\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(248 248 248 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-black {\n background-color: var(--rf-color-black);\n}\n\n.rf-bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-cardButtonBackgroundDefault {\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n}\n\n.rf-bg-cardButtonBackgroundHover {\n background-color: var(--rf-color-cardButtonBackgroundHover);\n}\n\n.rf-bg-cardFrameBackground {\n background-color: var(--rf-color-cardFrameBackground);\n}\n\n.rf-bg-formInputButtonBackgroundDefault {\n background-color: var(--rf-color-formInputButtonBackgroundDefault);\n}\n\n.rf-bg-formInputButtonBackgroundHover {\n background-color: var(--rf-color-formInputButtonBackgroundHover);\n}\n\n.rf-bg-formInputRadioCheckboxUncheckedBackground {\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n}\n\n.rf-bg-gray {\n --tw-bg-opacity: 1;\n background-color: rgb(128 128 128 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-primary {\n background-color: var(--rf-color-primary);\n}\n\n.rf-bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-secondary {\n background-color: var(--rf-color-secondary);\n}\n\n.rf-bg-silver {\n --tw-bg-opacity: 1;\n background-color: rgb(192 192 192 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-templateBackground {\n --tw-bg-opacity: 1;\n background-color: rgb(241 241 241 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-templateEmptyCard {\n --tw-bg-opacity: 1;\n background-color: rgb(232 231 231 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-textModePanelBackgroundBot {\n background-color: var(--rf-color-textModePanelBackgroundBot);\n}\n\n.rf-bg-textModePanelBackgroundUser {\n background-color: var(--rf-color-textModePanelBackgroundUser);\n}\n\n.rf-bg-transparent {\n background-color: #0000;\n}\n\n.rf-bg-truewhite {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-vocalModeSubtitlesBackground {\n background-color: var(--rf-color-vocalModeSubtitlesBackground);\n}\n\n.rf-bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(247 243 246 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-opacity-30 {\n --tw-bg-opacity: .3;\n}\n\n.rf-bg-opacity-50 {\n --tw-bg-opacity: .5;\n}\n\n.rf-bg-opacity-80 {\n --tw-bg-opacity: .8;\n}\n\n.rf-object-cover {\n object-fit: cover;\n}\n\n.rf-p-0 {\n padding: 0;\n}\n\n.rf-p-1 {\n padding: .25rem;\n}\n\n.rf-p-2 {\n padding: .5rem;\n}\n\n.rf-p-3 {\n padding: .75rem;\n}\n\n.rf-p-4 {\n padding: 1rem;\n}\n\n.rf-p-\\[25px\\] {\n padding: 25px;\n}\n\n.rf-p-\\[7px_12px\\] {\n padding: 7px 12px;\n}\n\n.rf-px-1 {\n padding-left: .25rem;\n padding-right: .25rem;\n}\n\n.rf-px-16 {\n padding-left: 4rem;\n padding-right: 4rem;\n}\n\n.rf-px-2 {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.rf-px-3 {\n padding-left: .75rem;\n padding-right: .75rem;\n}\n\n.rf-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.rf-px-48 {\n padding-left: 12rem;\n padding-right: 12rem;\n}\n\n.rf-px-5, .rf-px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.rf-px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n.rf-py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.rf-py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n.rf-py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n\n.rf-py-16 {\n padding-top: 4rem;\n padding-bottom: 4rem;\n}\n\n.rf-py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.rf-py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.rf-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n.rf-py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n\n.rf-py-8 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n\n.rf-pb-10 {\n padding-bottom: 2.5rem;\n}\n\n.rf-pb-12 {\n padding-bottom: 3rem;\n}\n\n.rf-pb-14 {\n padding-bottom: 3.5rem;\n}\n\n.rf-pb-2 {\n padding-bottom: .5rem;\n}\n\n.rf-pb-24 {\n padding-bottom: 6rem;\n}\n\n.rf-pb-3 {\n padding-bottom: .75rem;\n}\n\n.rf-pb-4 {\n padding-bottom: 1rem;\n}\n\n.rf-pb-5, .rf-pb-6 {\n padding-bottom: 1.5rem;\n}\n\n.rf-pb-8 {\n padding-bottom: 2rem;\n}\n\n.rf-pb-\\[15vh\\] {\n padding-bottom: 15vh;\n}\n\n.rf-pl-0 {\n padding-left: 0;\n}\n\n.rf-pl-1 {\n padding-left: .25rem;\n}\n\n.rf-pl-4 {\n padding-left: 1rem;\n}\n\n.rf-pl-6 {\n padding-left: 1.5rem;\n}\n\n.rf-pl-8 {\n padding-left: 2rem;\n}\n\n.rf-pr-1 {\n padding-right: .25rem;\n}\n\n.rf-pr-4 {\n padding-right: 1rem;\n}\n\n.rf-pt-1 {\n padding-top: .25rem;\n}\n\n.rf-pt-11\\/20 {\n padding-top: 55%;\n}\n\n.rf-pt-12 {\n padding-top: 3rem;\n}\n\n.rf-pt-14 {\n padding-top: 3.5rem;\n}\n\n.rf-pt-2 {\n padding-top: .5rem;\n}\n\n.rf-pt-24 {\n padding-top: 6rem;\n}\n\n.rf-pt-3 {\n padding-top: .75rem;\n}\n\n.rf-pt-4 {\n padding-top: 1rem;\n}\n\n.rf-pt-40 {\n padding-top: 10rem;\n}\n\n.rf-pt-6 {\n padding-top: 1.5rem;\n}\n\n.rf-pt-8 {\n padding-top: 2rem;\n}\n\n.rf-pt-\\[25vh\\] {\n padding-top: 25vh;\n}\n\n.rf-pt-\\[26vh\\] {\n padding-top: 26vh;\n}\n\n.rf-text-left {\n text-align: left;\n}\n\n.rf-text-center {\n text-align: center;\n}\n\n.rf-text-justify {\n text-align: justify;\n}\n\n.rf-font-default {\n font-family: Calibri, sans-serif;\n}\n\n.rf-text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.rf-text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n.rf-text-4xl {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-text-5xl {\n font-size: 3rem;\n line-height: 1;\n}\n\n.rf-text-6xl {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-text-7xl {\n font-size: 4.5rem;\n line-height: 1;\n}\n\n.rf-text-8xl {\n font-size: 6rem;\n line-height: 1;\n}\n\n.rf-text-\\[0\\.5rem\\] {\n font-size: .5rem;\n}\n\n.rf-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.rf-text-basecustom {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n.rf-text-lgcustom {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-text-sm {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n.rf-text-sm\\/4 {\n font-size: .875rem;\n line-height: 1rem;\n}\n\n.rf-text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n\n.rf-text-xs {\n font-size: .75rem;\n line-height: 1rem;\n}\n\n.rf-text-xsl {\n font-size: .7rem;\n line-height: 1rem;\n}\n\n.rf-text-xsm {\n font-size: .6rem;\n}\n\n.rf-font-bold {\n font-weight: 600;\n}\n\n.rf-font-light {\n font-weight: 200;\n}\n\n.rf-font-medium {\n font-weight: 300;\n}\n\n.rf-font-semibold {\n font-weight: 400;\n}\n\n.rf-uppercase {\n text-transform: uppercase;\n}\n\n.rf-capitalize {\n text-transform: capitalize;\n}\n\n.rf-normal-case {\n text-transform: none;\n}\n\n.rf-italic {\n font-style: italic;\n}\n\n.rf-leading-4 {\n line-height: 1rem;\n}\n\n.rf-text-\\[\\#1999B1\\] {\n --tw-text-opacity: 1;\n color: rgb(25 153 177 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#325981\\] {\n --tw-text-opacity: 1;\n color: rgb(50 89 129 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#575F6B\\] {\n --tw-text-opacity: 1;\n color: rgb(87 95 107 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#9A9A9A\\] {\n --tw-text-opacity: 1;\n color: rgb(154 154 154 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#A4A7AF\\] {\n --tw-text-opacity: 1;\n color: rgb(164 167 175 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-black {\n color: var(--rf-color-black);\n}\n\n.rf-text-cardButtonTextDefault {\n color: var(--rf-color-cardButtonTextDefault);\n}\n\n.rf-text-cardFrameText {\n color: var(--rf-color-cardFrameText);\n}\n\n.rf-text-formInputButtonTextDefault {\n color: var(--rf-color-formInputButtonTextDefault);\n}\n\n.rf-text-formInputButtonTextHover {\n color: var(--rf-color-formInputButtonTextHover);\n}\n\n.rf-text-formInputRadioCheckboxUncheckedBackground {\n color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n}\n\n.rf-text-formInputTextDefault {\n color: var(--rf-color-formInputTextDefault);\n}\n\n.rf-text-gray {\n --tw-text-opacity: 1;\n color: rgb(128 128 128 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-lightgray {\n --tw-text-opacity: 1;\n color: rgb(129 129 129 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-primary {\n color: var(--rf-color-primary);\n}\n\n.rf-text-secondary {\n color: var(--rf-color-secondary);\n}\n\n.rf-text-textModePanelConversationBot {\n color: var(--rf-color-textModePanelConversationBot);\n}\n\n.rf-text-textModePanelConversationUser {\n color: var(--rf-color-textModePanelConversationUser);\n}\n\n.rf-text-trueblack {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-truewhite {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-vocalModeSubtitlesText {\n color: var(--rf-color-vocalModeSubtitlesText);\n}\n\n.rf-text-white {\n --tw-text-opacity: 1;\n color: rgb(247 243 246 / var(--tw-text-opacity, 1));\n}\n\n.rf-underline {\n text-decoration-line: underline;\n}\n\n.rf-shadow-\\[-3px_-3px_10px_\\#00000099\\] {\n --tw-shadow: -3px -3px 10px #0009;\n --tw-shadow-colored: -3px -3px 10px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_0_15px_0_silver\\] {\n --tw-shadow: 0 0 15px 0 silver;\n --tw-shadow-colored: 0 0 15px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_0_20px_1px_\\#A4A7AF80\\] {\n --tw-shadow: 0 0 20px 1px #a4a7af80;\n --tw-shadow-colored: 0 0 20px 1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_0_3px_6px_\\#00000029\\] {\n --tw-shadow: 0 0 3px 6px #00000029;\n --tw-shadow-colored: 0 0 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_3px_6px_\\#00000029\\] {\n --tw-shadow: 0 3px 6px #00000029;\n --tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_3px_6px_\\#606267\\] {\n --tw-shadow: 0 3px 6px #606267;\n --tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_6px_6px_\\#00000029\\] {\n --tw-shadow: 0 6px 6px #00000029;\n --tw-shadow-colored: 0 6px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[20px_3px_20px_\\#00000029\\] {\n --tw-shadow: 20px 3px 20px #00000029;\n --tw-shadow-colored: 20px 3px 20px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[3px_3px_16px_\\#00000029\\] {\n --tw-shadow: 3px 3px 16px #00000029;\n --tw-shadow-colored: 3px 3px 16px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[3px_3px_6px_\\#00000029\\] {\n --tw-shadow: 3px 3px 6px #00000029;\n --tw-shadow-colored: 3px 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[inset_0_0_6px_\\#0000003B\\] {\n --tw-shadow: inset 0 0 6px #0000003b;\n --tw-shadow-colored: inset 0 0 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[inset_0_12px_12px_-12px_\\#00000029\\,inset_0_-12px_12px_-12px_\\#00000029\\] {\n --tw-shadow: inset 0 12px 12px -12px #00000029, inset 0 -12px 12px -12px #00000029;\n --tw-shadow-colored: inset 0 12px 12px -12px var(--tw-shadow-color), inset 0 -12px 12px -12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-outline-none {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.rf-blur-background {\n --tw-blur: blur(var(--rf-blur-background));\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.rf-filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.rf-transition-all {\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.rf-transition-transform {\n transition-property: transform;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.rf-text-shadow-black {\n text-shadow: 2px 0 5px #000, -2px 0 5px #000, 0 2px 5px #000, 0 -2px 5px #000;\n}\n\n.rf-capitalize-first:first-letter {\n text-transform: uppercase;\n}\n\nol {\n padding-left: 2rem;\n list-style-type: decimal;\n}\n\nul {\n padding-left: 2rem;\n list-style-type: disc;\n}\n\n#retorik-container.rf-portrait:not(.rf-large) .ac-image {\n max-width: 100px;\n}\n\n.rf-glass-background, #retorik-container.portrait .portrait\\:rf-glass-background {\n background-color: var(--rf-color-black);\n --tw-bg-opacity: .62;\n --tw-backdrop-blur: blur(8px);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n\n.rf-loader-bouncing-bot {\n aspect-ratio: 2;\n --_g: no-repeat radial-gradient(circle closest-side, var(--rf-color-textModePanelConversationBot) 90%, transparent);\n background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;\n background-size: 33.3333% 50%;\n}\n\n@keyframes rf-loaderBouncing {\n 20% {\n background-position: 0 0, 50%, 100%;\n }\n\n 40% {\n background-position: 0 100%, 50% 0, 100%;\n }\n\n 60% {\n background-position: 0%, 50% 100%, 100% 0;\n }\n\n 80% {\n background-position: 0%, 50%, 100% 100%;\n }\n}\n\n.rf-loader-bouncing-bot {\n animation: 1s linear infinite rf-loaderBouncing;\n}\n\n.rf-loader-bouncing-white {\n aspect-ratio: 2;\n --_g: no-repeat radial-gradient(circle closest-side, #fff 90%, transparent);\n background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;\n background-size: 33.3333% 50%;\n animation: 1s linear infinite rf-loaderBouncing;\n}\n\n@keyframes rf-loaderPulsation {\n 0% {\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n transform: scale3d(1.1, 1.1, 1);\n }\n\n 100% {\n transform: scale3d(1, 1, 1);\n }\n}\n\n.rf-loader-pulsation {\n animation: 2s cubic-bezier(.65, 0, .34, 1) infinite rf-loaderPulsation;\n}\n\n.rf-loader-pulsation:before {\n content: \"\";\n background-color: var(--rf-color-secondary);\n z-index: -1;\n border-radius: 50%;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n\n@keyframes rf-loaderRipple {\n 0% {\n opacity: 1;\n transform: scale3d(.75, .75, 1);\n }\n\n 100% {\n opacity: 0;\n transform: scale3d(1.5, 1.5, 1);\n }\n}\n\n.rf-loader-pulsation:before {\n animation: 2.4s cubic-bezier(.65, 0, .34, 1) .4s infinite rf-loaderRipple;\n}\n\n.rf-loader-pulsation:after {\n content: \"\";\n background-color: var(--rf-color-secondary);\n z-index: -1;\n border-radius: 50%;\n width: 100%;\n height: 100%;\n animation: 2.4s cubic-bezier(.65, 0, .34, 1) infinite rf-loaderRipple;\n position: absolute;\n}\n\n.rf-loader:before {\n content: \"\";\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n animation: 1.8s ease-in-out -.32s infinite both rf-loader;\n display: block;\n position: absolute;\n right: 1.5rem;\n}\n\n.rf-loader:after {\n content: \"\";\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n animation: 1.8s ease-in-out infinite both rf-loader;\n display: block;\n position: absolute;\n left: 1.5rem;\n}\n\n.rf-loader-medium:before {\n content: \"\";\n border-radius: 50%;\n width: 1rem;\n height: 1rem;\n animation: 1.8s ease-in-out -.32s infinite both rf-loaderMedium;\n display: block;\n position: absolute;\n right: 1rem;\n}\n\n.rf-loader-medium:after {\n content: \"\";\n border-radius: 50%;\n width: 1rem;\n height: 1rem;\n animation: 1.8s ease-in-out infinite both rf-loaderMedium;\n display: block;\n position: absolute;\n left: 1rem;\n}\n\n.rf-loader-mini:before {\n content: \"\";\n border-radius: 50%;\n width: .5rem;\n height: .5rem;\n animation: 1.8s ease-in-out -.32s infinite both rf-loaderMini;\n display: block;\n position: absolute;\n right: .5rem;\n}\n\n.rf-loader-mini:after {\n content: \"\";\n border-radius: 50%;\n width: .5rem;\n height: .5rem;\n animation: 1.8s ease-in-out infinite both rf-loaderMini;\n display: block;\n position: absolute;\n left: .5rem;\n}\n\n.rf-loader-microphone:before, .rf-loader-microphone:after {\n content: \"\";\n --tw-border-opacity: 1;\n border: 6px solid #0000;\n border-top-color: rgb(128 128 128 / var(--tw-border-opacity, 1));\n border-radius: 100%;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.rf-loader-microphone:before {\n z-index: 2;\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-loader-microphone:after {\n --tw-border-opacity: 1;\n border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));\n}\n\n.rf-loader-microphone-primary:before, .rf-loader-microphone-primary:after {\n content: \"\";\n border: 6px solid #0000;\n border-top-color: var(--rf-color-primary);\n border-radius: 100%;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.rf-loader-microphone-primary:before {\n z-index: 2;\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-loader-microphone-primary:after {\n --tw-border-opacity: 1;\n border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));\n}\n\n.rf-loader-microphone-secondary:before, .rf-loader-microphone-secondary:after {\n content: \"\";\n border: 6px solid #0000;\n border-top-color: var(--rf-color-secondary);\n border-radius: 100%;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.rf-loader-microphone-secondary:before {\n z-index: 2;\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-loader-microphone-secondary:after {\n --tw-border-opacity: 1;\n border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));\n}\n\n.rf-loader-counter {\n border-width: 8px;\n border-color: var(--rf-color-primary);\n border-radius: 50%;\n position: relative;\n}\n\n@keyframes rf-loaderCounter {\n 0% {\n clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);\n }\n\n 25% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);\n }\n\n 50% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);\n }\n\n 75% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);\n }\n\n 100% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);\n }\n}\n\n.rf-loader-counter:before {\n border-width: 10px;\n border-color: var(--rf-color-cardFrameBackground);\n content: \"\";\n animation: rf-loaderCounter;\n animation-duration: var(--duration);\n border-radius: 50%;\n animation-timing-function: linear;\n position: absolute;\n inset: -9px;\n transform: rotate(45deg);\n}\n\n.rf-touch-action-none {\n touch-action: none;\n}\n\n.rf-unselectable {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n}\n\n.rf-title-extralarge-bold-size-auto {\n font-size: 2.25rem;\n font-weight: 600;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large .rf-title-extralarge-bold-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-extralarge-bold-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-title-extralarge-size-auto {\n font-size: 2.25rem;\n font-weight: 400;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large .rf-title-extralarge-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-extralarge-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-title-large-size-auto {\n font-size: 1.5rem;\n font-weight: 400;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-title-large-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-large-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n.rf-title-large-bold-size-auto {\n font-size: 1.875rem;\n font-weight: 600;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large .rf-title-large-bold-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-large-bold-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n.rf-title-size-auto {\n font-size: 1.5rem;\n font-weight: 400;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-title-size-auto {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-title-bold-size-auto {\n font-size: 1.5rem;\n font-weight: 600;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-title-bold-size-auto {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-bold-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-subtitle-size-auto {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-subtitle-size-auto {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-subtitle-size-auto {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.rf-text-extralarge-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large .rf-text-extralarge-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-extralarge-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-text-verylarge-size-auto {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-text-verylarge-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-verylarge-size-auto {\n font-size: 4.5rem;\n line-height: 1;\n}\n\n.rf-text-large-size-auto {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-text-large-size-auto {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-large-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-text-medium-size-auto {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large .rf-text-medium-size-auto {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-text-size-auto {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-text-size-auto {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-size-auto {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-text-small-size-auto {\n font-size: .875rem;\n line-height: 1rem;\n}\n\n#retorik-container.rf-large .rf-text-small-size-auto {\n font-size: 1rem;\n line-height: 1.1rem;\n}\n\n.rf-text-extra-small-size-auto {\n font-size: .6rem;\n line-height: .75rem;\n}\n\n#retorik-container.rf-large .rf-text-extra-small-size-auto {\n font-size: .875rem;\n line-height: 1rem;\n}\n\n.rf-small-size-auto {\n font-size: .6rem;\n}\n\n#retorik-container.rf-large .rf-small-size-auto {\n font-size: .75rem;\n line-height: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-small-size-auto {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n.rf-line-clamp-unknown {\n hyphens: auto;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-1 {\n hyphens: auto;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-2 {\n hyphens: auto;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-3 {\n hyphens: auto;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-4 {\n hyphens: auto;\n -webkit-line-clamp: 4;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-5 {\n hyphens: auto;\n -webkit-line-clamp: 5;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-6 {\n hyphens: auto;\n -webkit-line-clamp: 6;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-7 {\n hyphens: auto;\n -webkit-line-clamp: 7;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-8 {\n hyphens: auto;\n -webkit-line-clamp: 8;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-9 {\n hyphens: auto;\n -webkit-line-clamp: 9;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-10 {\n hyphens: auto;\n -webkit-line-clamp: 10;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-overflow-wrap {\n overflow-wrap: anywhere;\n}\n\n.rf-height-fill-available {\n height: stretch;\n}\n\n.rf-width-fill-available {\n width: stretch;\n}\n\n.rf-animation-delay-2 {\n animation-delay: .2s;\n}\n\n.rf-animation-delay-4 {\n animation-delay: .4s;\n}\n\n.rf-scrollbar-thin {\n scrollbar-width: thin;\n scrollbar-color: var(--rf-color-secondary) transparent;\n}\n\n.rf-scrollbar-thin::-webkit-scrollbar {\n width: .2rem;\n height: .2rem;\n margin: .25rem 0;\n}\n\n.rf-scrollbar-thin::-webkit-scrollbar-thumb {\n background-color: var(--rf-color-secondary);\n border-radius: .5rem;\n}\n\n.rf-scrollbar-x-custom::-webkit-scrollbar {\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: 2rem;\n height: .5rem;\n}\n\n.rf-scrollbar-x-custom::-webkit-scrollbar-thumb {\n background-color: var(--rf-color-primary);\n border-radius: 2rem;\n}\n\n.rf-scrollbar-hidden {\n scrollbar-width: none;\n}\n\n.rf-scrollbar-hidden::-webkit-scrollbar {\n display: none;\n}\n\n.rf-opacity-gradient-b {\n -webkit-mask-image: linear-gradient(#000 50%, #0000 100%);\n}\n\n.rf-opacity-gradient-b-thin {\n -webkit-mask-image: linear-gradient(#797676 84%, #0000 100%);\n}\n\n.rf-opacity-gradient-l {\n -webkit-mask-image: linear-gradient(to left, #000 75%, gray 80%, #0000 85%);\n}\n\n.rf-opacity-gradient-l-thin {\n -webkit-mask-image: linear-gradient(to left, #000 90%, gray 95%, #0000 100%);\n}\n\n.rf-opacity-gradient-r {\n -webkit-mask-image: linear-gradient(to right, #000 75%, gray 80%, #0000 85%);\n}\n\n.rf-opacity-gradient-r-thin {\n -webkit-mask-image: linear-gradient(to right, #000 90%, gray 95%, #0000 100%);\n}\n\n.rf-opacity-gradient-h {\n -webkit-mask-image: linear-gradient(to right, #0000 0%, 6%, #000, 94%, #0000 100%);\n}\n\n.rf-card-button {\n border-width: 1px;\n border-color: var(--rf-color-cardButtonBorderDefault);\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n color: var(--rf-color-cardButtonTextDefault);\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button {\n padding: .5rem 1rem;\n}\n\n.rf-card-button:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonBorderHover);\n background-color: var(--rf-color-cardButtonBackgroundHover);\n color: var(--rf-color-cardButtonTextHover);\n}\n\n.rf-card-button-clicked {\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n border-width: 1px;\n border-color: #0000;\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-clicked {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.rf-card-button-positive {\n border-width: 1px;\n border-color: var(--rf-color-cardFrameBackground);\n background-color: var(--rf-color-cardButtonTextDefault);\n color: var(--rf-color-cardFrameBackground);\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-positive {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-positive {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-positive {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-positive:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonTextDefault);\n background-color: var(--rf-color-cardFrameBackground);\n color: var(--rf-color-cardButtonTextDefault);\n}\n\n.rf-card-button-destructive {\n --tw-border-opacity: 1;\n border-width: 1px;\n border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-destructive {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-destructive {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-destructive {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-destructive:hover {\n cursor: pointer;\n --tw-border-opacity: 1;\n border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n\n.rf-card-button-secondary {\n border-width: 1px;\n border-color: var(--rf-color-secondary);\n color: var(--rf-color-secondary);\n background-color: #0000;\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-secondary {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-secondary {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-secondary {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-secondary:hover {\n cursor: pointer;\n border-color: var(--rf-color-secondary);\n background-color: var(--rf-color-secondary);\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.rf-card-button-discover {\n border-width: 1px;\n border-color: var(--rf-color-cardButtonDiscoverBorderDefault);\n background-color: var(--rf-color-cardButtonDiscoverBackgroundDefault);\n color: var(--rf-color-cardButtonDiscoverTextDefault);\n border-radius: .3125rem;\n padding: .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-discover {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.rf-card-button-discover:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonDiscoverBorderHover);\n background-color: var(--rf-color-cardButtonDiscoverBackgroundHover);\n color: var(--rf-color-cardButtonDiscoverTextHover);\n}\n\n.rf-card-button-history {\n cursor: default;\n border-width: 1px;\n border-color: var(--rf-color-cardButtonBorderDefault);\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n color: var(--rf-color-cardButtonTextDefault);\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-history {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-history {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-history {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-mini, .rf-card-button-mini-selected, .rf-card-button-mini-disabled {\n background-color: var(--rf-color-cardFrameBackground);\n border-width: 1px;\n border-radius: .3125rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-mini, #retorik-container.rf-large .rf-card-button-mini-selected, #retorik-container.rf-large .rf-card-button-mini-disabled {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-mini, #retorik-container.rf-large.rf-portrait .rf-card-button-mini-selected, #retorik-container.rf-large.rf-portrait .rf-card-button-mini-disabled {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-card-button-mini {\n border-color: var(--rf-color-cardButtonBorderDefault);\n background-color: var(--rf-color-cardFrameBackground);\n color: var(--rf-color-cardButtonTextDefault);\n}\n\n.rf-card-button-mini:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonBorderHover);\n background-color: var(--rf-color-cardFrameBackground);\n color: var(--rf-color-cardButtonTextHover);\n}\n\n.rf-card-button-mini-selected {\n border-color: var(--rf-color-cardFrameBackground);\n background-color: var(--rf-color-cardButtonBorderDefault);\n color: var(--rf-color-cardFrameBackground);\n}\n\n.lf-player-container {\n align-items: flex-end;\n width: 100%;\n height: 100%;\n display: flex;\n overflow: hidden;\n}\n\n.rf-input-label {\n text-overflow: ellipsis;\n color: var(--rf-color-formInputTextDefault);\n margin-top: .1rem;\n margin-left: .75rem;\n overflow-x: hidden;\n}\n\n#retorik-container.rf-large .rf-input-label {\n margin-top: .25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-input-label {\n margin-top: .2rem;\n}\n\n.rf-radio-custom {\n -webkit-appearance: none;\n appearance: none;\n border-width: 2px;\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: 50%;\n place-content: center;\n width: 1.5rem;\n min-width: 1.5rem;\n height: 1.5rem;\n margin: 0;\n display: grid;\n}\n\n.rf-radio-custom:checked {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxCheckedBackground);\n}\n\n#retorik-container.rf-large .rf-radio-custom {\n width: 1.75rem;\n min-width: 1.75rem;\n height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-radio-custom {\n width: 2rem;\n min-width: 2rem;\n height: 2rem;\n}\n\n.rf-radio-custom:before {\n content: \"\";\n --tw-scale-x: 0;\n --tw-scale-y: 0;\n width: .5rem;\n height: .5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n background-color: var(--rf-color-formInputRadioCheckboxCheckedItem);\n border-radius: 50%;\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n#retorik-container.rf-large .rf-radio-custom:before {\n width: .75rem;\n height: .75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-radio-custom:before {\n width: 1rem;\n height: 1rem;\n}\n\n.rf-radio-custom:checked:before {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-input-hidden {\n -webkit-appearance: none;\n appearance: none;\n margin: 0;\n}\n\n.rf-checkbox-custom {\n -webkit-appearance: none;\n appearance: none;\n border-width: 2px;\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: .3125rem;\n place-content: center;\n width: 1.5rem;\n min-width: 1.5rem;\n height: 1.5rem;\n margin: 0;\n display: grid;\n}\n\n#retorik-container.rf-large .rf-checkbox-custom {\n width: 1.75rem;\n min-width: 1.75rem;\n height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-checkbox-custom {\n width: 2rem;\n min-width: 2rem;\n height: 2rem;\n}\n\n.rf-checkbox-custom:checked {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxCheckedBackground);\n}\n\n.rf-toggle-custom {\n -webkit-appearance: none;\n appearance: none;\n background-color: var(--rf-color-black);\n border-radius: 1.5rem;\n width: 3rem;\n min-width: 3rem;\n height: 1.5rem;\n margin: 0;\n position: relative;\n}\n\n.rf-toggle-custom:checked {\n background-color: var(--rf-color-primary);\n}\n\n#retorik-container.rf-large .rf-toggle-custom {\n border-radius: 1.75rem;\n width: 3.5rem;\n min-width: 3.5rem;\n height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-toggle-custom {\n border-radius: 2rem;\n width: 4rem;\n min-width: 4rem;\n height: 2rem;\n}\n\n.rf-toggle-custom:before {\n content: \"\";\n --tw-translate-x: 0px;\n width: 1rem;\n height: 1rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-radius: 50%;\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n position: absolute;\n top: .25rem;\n left: .25rem;\n}\n\n#retorik-container.rf-large .rf-toggle-custom:before {\n width: 1.25rem;\n height: 1.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-toggle-custom:before {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.rf-toggle-custom:checked:before {\n --tw-translate-x: 1.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large .rf-toggle-custom:checked:before {\n --tw-translate-x: 1.75rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large.rf-portrait .rf-toggle-custom:checked:before {\n --tw-translate-x: 2rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-select-custom {\n -webkit-appearance: none;\n appearance: none;\n border-width: 2px;\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: .3125rem;\n margin: 0;\n padding: 1rem;\n}\n\n.rf-select-custom:hover {\n cursor: pointer;\n}\n\n.rf-select-custom:focus-visible {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n}\n\n.rf-slider-custom {\n -webkit-appearance: none;\n -moz-appearance: none;\n outline-offset: 2px;\n border-radius: .5rem;\n outline: 2px solid #0000;\n width: 100%;\n height: .25rem;\n display: block;\n position: relative;\n}\n\n.rf-slider-custom::-webkit-slider-runnable-track {\n -webkit-appearance: none;\n}\n\n.rf-slider-custom::-moz-track {\n -moz-appearance: none;\n}\n\n.rf-slider-custom::-ms-track {\n appearance: none;\n}\n\n.rf-slider-custom::-webkit-slider-thumb {\n -webkit-appearance: none;\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-style: none;\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n margin-top: -.2rem;\n}\n\n.rf-slider-custom::-webkit-slider-thumb:hover {\n cursor: pointer;\n}\n\n.rf-slider-custom::-moz-range-thumb {\n -webkit-appearance: none;\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-style: none;\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n margin-top: -.2rem;\n}\n\n.rf-slider-custom::-moz-range-thumb:hover {\n cursor: pointer;\n}\n\n.rf-slider-custom::-ms-thumb {\n appearance: none;\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-style: none;\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n margin-top: -.2rem;\n}\n\n.rf-slider-custom::-ms-thumb:hover {\n cursor: pointer;\n}\n\n.rf-likert-custom {\n cursor: pointer;\n outline-offset: 2px;\n -webkit-text-stroke-width: 1px;\n -webkit-text-stroke-color: white;\n background-color: #0000;\n border-style: none;\n outline: 2px solid #0000;\n}\n\n.svgButtonMenu > svg * {\n fill: var(--fill);\n}\n\n.webchat__css-custom-properties {\n width: 100%;\n height: 100%;\n}\n\n.placeholder\\:rf-text-black::placeholder {\n color: var(--rf-color-black);\n}\n\n.placeholder\\:rf-opacity-100::placeholder {\n opacity: 1;\n}\n\n.hover\\:rf-cursor-pointer:hover {\n cursor: pointer;\n}\n\n.hover\\:rf-border-truewhite:hover {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n\n.hover\\:rf-bg-\\[\\#1999B1\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(25 153 177 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:rf-bg-formInputRadioCheckboxCheckedBackground:hover {\n background-color: var(--rf-color-formInputRadioCheckboxCheckedBackground);\n}\n\n.hover\\:rf-bg-transparent:hover {\n background-color: #0000;\n}\n\n.hover\\:rf-bg-truewhite:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:rf-text-\\[\\#1999B1\\]:hover {\n --tw-text-opacity: 1;\n color: rgb(25 153 177 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:rf-text-\\[\\#325981\\]:hover {\n --tw-text-opacity: 1;\n color: rgb(50 89 129 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:rf-text-formInputRadioCheckboxCheckedItem:hover {\n color: var(--rf-color-formInputRadioCheckboxCheckedItem);\n}\n\n.hover\\:rf-text-truewhite:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:rf-shadow-\\[inset_0_0_12px_\\#00000029\\]:hover {\n --tw-shadow: inset 0 0 12px #00000029;\n --tw-shadow-colored: inset 0 0 12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-col-span-full {\n grid-column: 1 / -1;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-col-start-1 {\n grid-column-start: 1;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-row-end-13 {\n grid-row-end: 13;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-w-5\\/6 {\n width: 83.3333%;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-w-9\\/10 {\n width: 90%;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-w-full {\n width: 100%;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-flex-col {\n flex-direction: column;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-items-center {\n align-items: center;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-overflow-x-auto {\n overflow-x: auto;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-border-r-0 {\n border-right-width: 0;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-absolute {\n position: absolute;\n}\n\n#retorik-container.rf-large .large\\:rf-top-8 {\n top: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-row-start-10 {\n grid-row-start: 10;\n}\n\n#retorik-container.rf-large .large\\:rf-m-8 {\n margin: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-my-0 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-my-3 {\n margin-top: .75rem;\n margin-bottom: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mb-0 {\n margin-bottom: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-mb-4 {\n margin-bottom: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mb-6 {\n margin-bottom: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-ml-8 {\n margin-left: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-0 {\n margin-top: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-20 {\n margin-top: 5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-3 {\n margin-top: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-\\[20vh\\] {\n margin-top: 20vh;\n}\n\n#retorik-container.rf-large .large\\:rf-block {\n display: block;\n}\n\n#retorik-container.rf-large .large\\:rf-flex {\n display: flex;\n}\n\n#retorik-container.rf-large .large\\:rf-hidden {\n display: none;\n}\n\n#retorik-container.rf-large .large\\:rf-aspect-video {\n aspect-ratio: 16 / 9;\n}\n\n#retorik-container.rf-large .large\\:rf-h-10 {\n height: 2.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-16 {\n height: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-20 {\n height: 5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-3\\/5 {\n height: 60%;\n}\n\n#retorik-container.rf-large .large\\:rf-h-4 {\n height: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-5 {\n height: 1.25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-6 {\n height: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-8 {\n height: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-\\[1\\.3rem\\] {\n height: 1.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-\\[60vh\\] {\n height: 60vh;\n}\n\n#retorik-container.rf-large .large\\:rf-h-auto {\n height: auto;\n}\n\n#retorik-container.rf-large .large\\:rf-h-full {\n height: 100%;\n}\n\n#retorik-container.rf-large .large\\:rf-max-h-28 {\n max-height: 7rem;\n}\n\n#retorik-container.rf-large .large\\:rf-max-h-\\[2\\.3rem\\] {\n max-height: 2.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-min-h-\\[2\\.3rem\\] {\n min-height: 2.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-1\\/8 {\n width: 12.5%;\n}\n\n#retorik-container.rf-large .large\\:rf-w-14 {\n width: 3.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-16 {\n width: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-4 {\n width: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-5 {\n width: 1.25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-6 {\n width: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-8 {\n width: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-fit {\n width: fit-content;\n}\n\n#retorik-container.rf-large .large\\:rf-w-full {\n width: 100%;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-1\\/2 {\n min-width: 50%;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-1\\/8 {\n min-width: 12.5%;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-16 {\n min-width: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-8 {\n min-width: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-max-w-1\\/8 {\n max-width: 12.5%;\n}\n\n#retorik-container.rf-large .large\\:rf-max-w-\\[12rem\\] {\n max-width: 12rem;\n}\n\n#retorik-container.rf-large .large\\:rf-max-w-full {\n max-width: 100%;\n}\n\n#retorik-container.rf-large .large\\:rf-grid-cols-5 {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n}\n\n#retorik-container.rf-large .large\\:rf-flex-row {\n flex-direction: row;\n}\n\n#retorik-container.rf-large .large\\:rf-flex-col {\n flex-direction: column;\n}\n\n#retorik-container.rf-large .large\\:rf-items-baseline {\n align-items: baseline;\n}\n\n#retorik-container.rf-large .large\\:rf-justify-start {\n justify-content: flex-start;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-1 {\n gap: .25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-3 {\n gap: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-4 {\n gap: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-6 {\n gap: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-overflow-y-scroll {\n overflow-y: scroll;\n}\n\n#retorik-container.rf-large .large\\:rf-border-t-0 {\n border-top-width: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-bg-truewhite {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n#retorik-container.rf-large .large\\:rf-p-4 {\n padding: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-p-\\[25px\\] {\n padding: 25px;\n}\n\n#retorik-container.rf-large .large\\:rf-p-min1 {\n padding: .1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-0 {\n padding-left: 0;\n padding-right: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-px-16 {\n padding-left: 4rem;\n padding-right: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-5, #retorik-container.rf-large .large\\:rf-px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pb-16 {\n padding-bottom: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pl-4 {\n padding-left: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pr-4 {\n padding-right: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pt-16 {\n padding-top: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pt-3 {\n padding-top: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-text-5xl {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large .large\\:rf-text-6xl {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large .large\\:rf-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-text-basecustom {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-text-sm {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-uppercase {\n text-transform: uppercase;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-h-4 {\n height: 1rem;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-h-6 {\n height: 1.5rem;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-w-6 {\n width: 1.5rem;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-pt-1\\/5 {\n padding-top: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-absolute {\n position: absolute;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-left-4 {\n left: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-top-4 {\n top: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-col-start-1 {\n grid-column-start: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-col-start-2 {\n grid-column-start: 2;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-col-end-8 {\n grid-column-end: 8;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-row-start-7 {\n grid-row-start: 7;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-row-end-11 {\n grid-row-end: 11;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mt-4 {\n margin-top: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mt-\\[20vh\\] {\n margin-top: 20vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mt-\\[25vh\\] {\n margin-top: 25vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-block {\n display: block;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-hidden {\n display: none;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-1\\/2 {\n height: 50%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-14 {\n height: 3.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-24 {\n height: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-5 {\n height: 1.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-6 {\n height: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-\\[50vh\\] {\n height: 50vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-11\\/12 {\n max-height: 91.67%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-36 {\n max-height: 9rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-\\[18vh\\] {\n max-height: 18vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-\\[30vh\\] {\n max-height: 30vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-h-10 {\n min-height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-1\\/2 {\n width: 50%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-14 {\n width: 3.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-16 {\n width: 4rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-24 {\n width: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-3\\/5 {\n width: 60%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-6 {\n width: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-full {\n width: 100%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-w-14 {\n min-width: 3.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-w-24 {\n min-width: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-w-3\\/5 {\n min-width: 60%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-w-2\\/3 {\n max-width: 66.67%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-w-\\[45\\%\\] {\n max-width: 45%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-w-\\[60\\%\\] {\n max-width: 60%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-flex-row {\n flex-direction: row;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-flex-col {\n flex-direction: column;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-justify-center {\n justify-content: center;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-gap-4 {\n gap: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-gap-6 {\n gap: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-self-start {\n align-self: flex-start;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-border-t {\n border-top-width: 1px;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-border-t-menuBorder {\n --tw-border-opacity: 1;\n border-top-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-py-5 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pl-0 {\n padding-left: 0;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-48 {\n padding-top: 12rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-8 {\n padding-top: 2rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-\\[16\\.67\\%\\] {\n padding-top: 16.67%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-\\[20vh\\] {\n padding-top: 20vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-text-basecustomuppercase {\n font-size: 1rem;\n line-height: 1.1rem;\n}\n\n#retorik-container.rf-large.rf-tactile .large-tactile\\:rf-mt-0 {\n margin-top: 0;\n}\n\n#retorik-container.rf-large.rf-tactile .large-tactile\\:rf-flex {\n display: flex;\n}\n\n#retorik-container.rf-large.rf-tactile .large-tactile\\:rf-hidden {\n display: none;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-col-start-3 {\n grid-column-start: 3;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-col-start-4 {\n grid-column-start: 4;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:-rf-mt-4 {\n margin-top: -1rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-h-full {\n height: 100%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-w-\\[48\\%\\] {\n width: 48%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-w-\\[calc\\(80\\%-10rem\\)\\] {\n width: calc(80% - 10rem);\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-min-w-\\[48\\%\\] {\n min-width: 48%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-max-w-\\[calc\\(\\(80\\%-10rem\\)\\*0\\.75\\)\\] {\n max-width: calc(60% - 7.5rem);\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-items-start {\n align-items: flex-start;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-justify-start {\n justify-content: flex-start;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-justify-center {\n justify-content: center;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-self-end {\n align-self: flex-end;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-justify-self-start {\n justify-self: start;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-pb-2 {\n padding-bottom: .5rem;\n}\n\n#retorik-container.rf-mobile .mobile\\:rf-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n#retorik-container.rf-tablet .tablet\\:rf-w-28 {\n width: 7rem;\n}\n\n#retorik-container.rf-tablet .tablet\\:rf-pl-12 {\n padding-left: 3rem;\n}\n\n#retorik-container.rf-tablet .tablet\\:rf-pr-24 {\n padding-right: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-h-10 {\n height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-h-20 {\n height: 5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-min-h-20 {\n min-height: 5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-w-40 {\n width: 10rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-p-5 {\n padding: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-pl-32 {\n padding-left: 8rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-pr-56 {\n padding-right: 14rem;\n}\n\n.ltr\\:rf-left-0:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: 0;\n}\n\n.ltr\\:rf-left-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: .25rem;\n}\n\n.ltr\\:rf-left-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: 1rem;\n}\n\n.ltr\\:rf-right-0:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 0;\n}\n\n.ltr\\:rf-right-12:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 3rem;\n}\n\n.ltr\\:rf-right-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: .5rem;\n}\n\n.ltr\\:rf-right-3:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: .75rem;\n}\n\n.ltr\\:rf-right-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 1rem;\n}\n\n.ltr\\:rf-right-6:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 1.5rem;\n}\n\n.ltr\\:rf-right-9:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 2.25rem;\n}\n\n.ltr\\:rf-col-start-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n grid-column-start: 1;\n}\n\n.ltr\\:rf-ml-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: .25rem;\n}\n\n.ltr\\:rf-ml-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: .5rem;\n}\n\n.ltr\\:rf-ml-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 1rem;\n}\n\n.ltr\\:rf-ml-6:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 1.5rem;\n}\n\n.ltr\\:rf-mr-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: .25rem;\n}\n\n.ltr\\:rf-mr-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: .5rem;\n}\n\n.ltr\\:rf-mr-3:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: .75rem;\n}\n\n.ltr\\:rf-mr-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 1rem;\n}\n\n.ltr\\:rf-mr-5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 1.25rem;\n}\n\n.ltr\\:rf-flex-row:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n flex-direction: row;\n}\n\n.ltr\\:rf-items-start:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n align-items: flex-start;\n}\n\n.ltr\\:rf-justify-start:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n justify-content: flex-start;\n}\n\n.ltr\\:rf-self-end:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n align-self: flex-end;\n}\n\n.ltr\\:rf-rounded-l-lg:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n border-top-left-radius: .5rem;\n border-bottom-left-radius: .5rem;\n}\n\n.ltr\\:rf-rounded-tl-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n border-top-left-radius: 1rem;\n}\n\n.ltr\\:rf-rounded-tr-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n border-top-right-radius: 1rem;\n}\n\n.ltr\\:rf-pl-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: .25rem;\n}\n\n.ltr\\:rf-pl-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 1rem;\n}\n\n.ltr\\:rf-pl-6:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 1.5rem;\n}\n\n.ltr\\:rf-pr-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-right: .5rem;\n}\n\n.ltr\\:rf-pr-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-right: 1rem;\n}\n\n.ltr\\:rf-text-left:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n text-align: left;\n}\n\n.ltr\\:rf-text-right:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n text-align: right;\n}\n\n.ltr\\:rf-text-xs:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n font-size: .75rem;\n line-height: 1rem;\n}\n\n.ltr\\:rf-text-xsm:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n font-size: .6rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-left-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: 1rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-ml-0:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 0;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-ml-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 1rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-mr-3:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: .75rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-mr-30:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 7.5rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-pl-12:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:ltr\\:rf-right-9:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:ltr\\:rf-ml-1\\/5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:ltr\\:rf-mr-1\\/5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:ltr\\:rf-pl-0:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 0;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-ml-1\\/5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-mr-40:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 10rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:-rf-translate-x-1\\/4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n --tw-translate-x: -25%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-pl-1\\/5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-pl-\\[calc\\(50\\%-2\\.5rem\\)\\]:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: calc(50% - 2.5rem);\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-pr-40:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-right: 10rem;\n}\n\n.rtl\\:rf-left-0:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 0;\n}\n\n.rtl\\:rf-left-12:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 3rem;\n}\n\n.rtl\\:rf-left-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: .5rem;\n}\n\n.rtl\\:rf-left-3:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: .75rem;\n}\n\n.rtl\\:rf-left-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 1rem;\n}\n\n.rtl\\:rf-left-6:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 1.5rem;\n}\n\n.rtl\\:rf-left-9:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 2.25rem;\n}\n\n.rtl\\:rf-right-0:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: 0;\n}\n\n.rtl\\:rf-right-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: .25rem;\n}\n\n.rtl\\:rf-right-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: 1rem;\n}\n\n.rtl\\:rf-right-6:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: 1.5rem;\n}\n\n.rtl\\:rf-col-end-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n grid-column-end: 1;\n}\n\n.rtl\\:rf-ml-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: .25rem;\n}\n\n.rtl\\:rf-ml-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: .5rem;\n}\n\n.rtl\\:rf-ml-3:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: .75rem;\n}\n\n.rtl\\:rf-ml-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 1rem;\n}\n\n.rtl\\:rf-ml-5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 1.25rem;\n}\n\n.rtl\\:rf-mr-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: .25rem;\n}\n\n.rtl\\:rf-mr-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: .5rem;\n}\n\n.rtl\\:rf-mr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 1rem;\n}\n\n.rtl\\:rf-mr-6:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 1.5rem;\n}\n\n.rtl\\:rf-flex-row-reverse:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n flex-direction: row-reverse;\n}\n\n.rtl\\:rf-items-end:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n align-items: flex-end;\n}\n\n.rtl\\:rf-justify-end:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n justify-content: flex-end;\n}\n\n.rtl\\:rf-self-start:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n align-self: flex-start;\n}\n\n.rtl\\:rf-rounded-r-lg:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n border-top-right-radius: .5rem;\n border-bottom-right-radius: .5rem;\n}\n\n.rtl\\:rf-rounded-tl-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n border-top-left-radius: 1rem;\n}\n\n.rtl\\:rf-rounded-tr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n border-top-right-radius: 1rem;\n}\n\n.rtl\\:rf-pl-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-left: .5rem;\n}\n\n.rtl\\:rf-pl-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-left: 1rem;\n}\n\n.rtl\\:rf-pr-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: .25rem;\n}\n\n.rtl\\:rf-pr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: 1rem;\n}\n\n.rtl\\:rf-pr-6:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: 1.5rem;\n}\n\n.rtl\\:rf-text-left:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n text-align: left;\n}\n\n.rtl\\:rf-text-right:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n text-align: right;\n}\n\n.rtl\\:rf-text-arabic:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n font-size: 1.125rem;\n line-height: 1.15rem;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-right-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-ml-3:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-ml-30:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 7.5rem;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-mr-0:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 0;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-mr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rtl\\:rf-left-9:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rtl\\:rf-ml-1\\/5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rtl\\:rf-mr-1\\/5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rtl\\:rf-pr-0:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: 0;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-ml-40:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 10rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-mr-1\\/5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-translate-x-1\\/4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n --tw-translate-x: 25%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-pl-40:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-left: 10rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-pr-1\\/5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-pr-\\[calc\\(50\\%-2\\.5rem\\)\\]:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: calc(50% - 2.5rem);\n}\n";
5000
+ $203b743475f656c9$exports = "*, :before, :after, ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #3b82f680;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n*, :before, :after {\n box-sizing: border-box;\n border: 0 solid;\n}\n\n:before, :after {\n --tw-content: \"\";\n}\n\nhtml, :host {\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n tab-size: 4;\n font-feature-settings: normal;\n font-variation-settings: normal;\n -webkit-tap-highlight-color: transparent;\n font-family: Calibri, sans-serif;\n line-height: 1.5;\n}\n\nbody {\n line-height: inherit;\n margin: 0;\n}\n\nhr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\n\nabbr:where([title]) {\n text-decoration: underline dotted;\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\nb, strong {\n font-weight: bolder;\n}\n\ncode, kbd, samp, pre {\n font-feature-settings: normal;\n font-variation-settings: normal;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;\n font-size: 1em;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub, sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n\nbutton, input, optgroup, select, textarea {\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-family: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\n\nbutton, select {\n text-transform: none;\n}\n\nbutton, input:where([type=\"button\"]), input:where([type=\"reset\"]), input:where([type=\"submit\"]) {\n -webkit-appearance: button;\n background-color: #0000;\n background-image: none;\n}\n\n:-moz-focusring {\n outline: auto;\n}\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n\nsummary {\n display: list-item;\n}\n\nblockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol, ul, menu {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\ndialog {\n padding: 0;\n}\n\ntextarea {\n resize: vertical;\n}\n\ninput::placeholder, textarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\n\nbutton, [role=\"button\"] {\n cursor: pointer;\n}\n\n:disabled {\n cursor: default;\n}\n\nimg, svg, video, canvas, audio, iframe, embed, object {\n vertical-align: middle;\n display: block;\n}\n\nimg, video {\n max-width: 100%;\n height: auto;\n}\n\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n\n.rf-pointer-events-none {\n pointer-events: none;\n}\n\n.rf-pointer-events-auto {\n pointer-events: auto;\n}\n\n.rf-visible {\n visibility: visible;\n}\n\n.rf-invisible {\n visibility: hidden;\n}\n\n.rf-fixed {\n position: fixed;\n}\n\n.rf-absolute {\n position: absolute;\n}\n\n.rf-relative {\n position: relative;\n}\n\n.-rf-left-6 {\n left: -1.5rem;\n}\n\n.-rf-top-2 {\n top: -.5rem;\n}\n\n.-rf-top-4 {\n top: -1rem;\n}\n\n.-rf-top-6 {\n top: -1.5rem;\n}\n\n.-rf-top-\\[1\\.15rem\\] {\n top: -1.15rem;\n}\n\n.rf-bottom-0 {\n bottom: 0;\n}\n\n.rf-bottom-1 {\n bottom: .25rem;\n}\n\n.rf-bottom-1\\/4 {\n bottom: 25%;\n}\n\n.rf-bottom-10 {\n bottom: 2.5rem;\n}\n\n.rf-bottom-2 {\n bottom: .5rem;\n}\n\n.rf-bottom-4 {\n bottom: 1rem;\n}\n\n.rf-bottom-8 {\n bottom: 2rem;\n}\n\n.rf-bottom-\\[calc\\(100\\%\\+2rem\\)\\] {\n bottom: calc(100% + 2rem);\n}\n\n.rf-left-0 {\n left: 0;\n}\n\n.rf-left-1 {\n left: .25rem;\n}\n\n.rf-left-1\\/2 {\n left: 50%;\n}\n\n.rf-left-2 {\n left: .5rem;\n}\n\n.rf-left-4 {\n left: 1rem;\n}\n\n.rf-left-8 {\n left: 2rem;\n}\n\n.rf-left-\\[calc\\(100\\%\\+1rem\\)\\] {\n left: calc(100% + 1rem);\n}\n\n.rf-left-\\[calc\\(50\\%-3rem\\)\\] {\n left: calc(50% - 3rem);\n}\n\n.rf-right-0 {\n right: 0;\n}\n\n.rf-right-1 {\n right: .25rem;\n}\n\n.rf-right-10 {\n right: 2.5rem;\n}\n\n.rf-right-12 {\n right: 3rem;\n}\n\n.rf-right-2 {\n right: .5rem;\n}\n\n.rf-right-4 {\n right: 1rem;\n}\n\n.rf-right-6 {\n right: 1.5rem;\n}\n\n.rf-right-8 {\n right: 2rem;\n}\n\n.rf-right-\\[calc\\(100\\%\\+1rem\\)\\] {\n right: calc(100% + 1rem);\n}\n\n.rf-top-0 {\n top: 0;\n}\n\n.rf-top-1 {\n top: .25rem;\n}\n\n.rf-top-1\\/2 {\n top: 50%;\n}\n\n.rf-top-1\\/3 {\n top: 33.3333%;\n}\n\n.rf-top-110 {\n top: 110%;\n}\n\n.rf-top-2 {\n top: .5rem;\n}\n\n.rf-top-4 {\n top: 1rem;\n}\n\n.rf-top-8 {\n top: 2rem;\n}\n\n.rf-top-\\[0\\.125rem\\] {\n top: .125rem;\n}\n\n.rf-top-\\[calc\\(100\\%\\+1rem\\)\\] {\n top: calc(100% + 1rem);\n}\n\n.rf-top-\\[calc\\(50\\%-3rem\\)\\] {\n top: calc(50% - 3rem);\n}\n\n.rf-z-\\[10\\] {\n z-index: 10;\n}\n\n.rf-z-\\[15\\] {\n z-index: 15;\n}\n\n.rf-z-\\[1\\] {\n z-index: 1;\n}\n\n.rf-z-\\[20\\] {\n z-index: 20;\n}\n\n.rf-z-\\[25\\] {\n z-index: 25;\n}\n\n.rf-z-\\[2\\] {\n z-index: 2;\n}\n\n.rf-z-\\[5\\] {\n z-index: 5;\n}\n\n.rf-z-agent {\n z-index: 1;\n}\n\n.rf-z-background {\n z-index: 0;\n}\n\n.rf-z-chatbot {\n z-index: 10;\n}\n\n.rf-z-detailedPOI {\n z-index: 31;\n}\n\n.rf-z-dropdown {\n z-index: 30;\n}\n\n.rf-z-exitwidget {\n z-index: 55;\n}\n\n.rf-z-list {\n z-index: 30;\n}\n\n.rf-z-menu {\n z-index: 40;\n}\n\n.rf-z-modal {\n z-index: 50;\n}\n\n.rf-z-overlay {\n z-index: 40;\n}\n\n.rf-z-ui {\n z-index: 20;\n}\n\n.rf-z-util {\n z-index: 2;\n}\n\n.rf-col-span-2 {\n grid-column: span 2 / span 2;\n}\n\n.rf-col-span-3 {\n grid-column: span 3 / span 3;\n}\n\n.rf-col-span-4 {\n grid-column: span 4 / span 4;\n}\n\n.rf-col-span-full {\n grid-column: 1 / -1;\n}\n\n.rf-col-start-1 {\n grid-column-start: 1;\n}\n\n.rf-col-start-3 {\n grid-column-start: 3;\n}\n\n.rf-col-start-4 {\n grid-column-start: 4;\n}\n\n.rf-col-start-5 {\n grid-column-start: 5;\n}\n\n.rf-col-end-13 {\n grid-column-end: 13;\n}\n\n.rf-col-end-2 {\n grid-column-end: 2;\n}\n\n.rf-col-end-9 {\n grid-column-end: 9;\n}\n\n.rf-row-span-1 {\n grid-row: span 1 / span 1;\n}\n\n.rf-row-span-2 {\n grid-row: span 2 / span 2;\n}\n\n.rf-row-span-3 {\n grid-row: span 3 / span 3;\n}\n\n.rf-row-span-9 {\n grid-row: span 9 / span 9;\n}\n\n.rf-row-span-full {\n grid-row: 1 / -1;\n}\n\n.rf-row-start-1 {\n grid-row-start: 1;\n}\n\n.rf-row-start-10 {\n grid-row-start: 10;\n}\n\n.rf-row-start-12 {\n grid-row-start: 12;\n}\n\n.rf-row-end-13 {\n grid-row-end: 13;\n}\n\n.rf-row-end-3 {\n grid-row-end: 3;\n}\n\n.rf-float-right {\n float: right;\n}\n\n.rf-m-0 {\n margin: 0;\n}\n\n.rf-m-4 {\n margin: 1rem;\n}\n\n.rf-m-auto {\n margin: auto;\n}\n\n.-rf-mx-6 {\n margin-left: -1.5rem;\n margin-right: -1.5rem;\n}\n\n.-rf-mx-8 {\n margin-left: -2rem;\n margin-right: -2rem;\n}\n\n.rf-mx-0 {\n margin-left: 0;\n margin-right: 0;\n}\n\n.rf-mx-2 {\n margin-left: .5rem;\n margin-right: .5rem;\n}\n\n.rf-mx-3 {\n margin-left: .75rem;\n margin-right: .75rem;\n}\n\n.rf-mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n\n.rf-mx-8 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n\n.rf-mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.rf-my-1 {\n margin-top: .25rem;\n margin-bottom: .25rem;\n}\n\n.rf-my-2 {\n margin-top: .5rem;\n margin-bottom: .5rem;\n}\n\n.rf-my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.rf-my-auto {\n margin-top: auto;\n margin-bottom: auto;\n}\n\n.-rf-mb-4 {\n margin-bottom: -1rem;\n}\n\n.rf-mb-0 {\n margin-bottom: 0;\n}\n\n.rf-mb-1 {\n margin-bottom: .25rem;\n}\n\n.rf-mb-12 {\n margin-bottom: 3rem;\n}\n\n.rf-mb-16 {\n margin-bottom: 4rem;\n}\n\n.rf-mb-2 {\n margin-bottom: .5rem;\n}\n\n.rf-mb-26 {\n margin-bottom: 6.5rem;\n}\n\n.rf-mb-28 {\n margin-bottom: 7rem;\n}\n\n.rf-mb-3 {\n margin-bottom: .75rem;\n}\n\n.rf-mb-30 {\n margin-bottom: 7.5rem;\n}\n\n.rf-mb-4 {\n margin-bottom: 1rem;\n}\n\n.rf-mb-5 {\n margin-bottom: 1.25rem;\n}\n\n.rf-mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.rf-mb-8 {\n margin-bottom: 2rem;\n}\n\n.rf-ml-1 {\n margin-left: .25rem;\n}\n\n.rf-ml-2 {\n margin-left: .5rem;\n}\n\n.rf-mr-2 {\n margin-right: .5rem;\n}\n\n.rf-mr-4 {\n margin-right: 1rem;\n}\n\n.rf-mt-1 {\n margin-top: .25rem;\n}\n\n.rf-mt-10 {\n margin-top: 2.5rem;\n}\n\n.rf-mt-2 {\n margin-top: .5rem;\n}\n\n.rf-mt-4 {\n margin-top: 1rem;\n}\n\n.rf-mt-5 {\n margin-top: 1.25rem;\n}\n\n.rf-mt-8 {\n margin-top: 2rem;\n}\n\n.rf-mt-\\[0\\.2rem\\] {\n margin-top: .2rem;\n}\n\n.rf-mt-auto {\n margin-top: auto;\n}\n\n.rf-box-border {\n box-sizing: border-box;\n}\n\n.rf-line-clamp-1 {\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-2 {\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-inline {\n display: inline;\n}\n\n.rf-flex {\n display: flex;\n}\n\n.rf-grid {\n display: grid;\n}\n\n.rf-hidden {\n display: none;\n}\n\n.rf-aspect-\\[4\\/3\\] {\n aspect-ratio: 4 / 3;\n}\n\n.rf-aspect-square {\n aspect-ratio: 1;\n}\n\n.rf-aspect-video {\n aspect-ratio: 16 / 9;\n}\n\n.rf-h-0 {\n height: 0;\n}\n\n.rf-h-1\\/2 {\n height: 50%;\n}\n\n.rf-h-1\\/3 {\n height: 33.3333%;\n}\n\n.rf-h-10 {\n height: 2.5rem;\n}\n\n.rf-h-12 {\n height: 3rem;\n}\n\n.rf-h-14 {\n height: 3.5rem;\n}\n\n.rf-h-16 {\n height: 4rem;\n}\n\n.rf-h-18 {\n height: 4.5rem;\n}\n\n.rf-h-2 {\n height: .5rem;\n}\n\n.rf-h-2\\/3 {\n height: 66.6667%;\n}\n\n.rf-h-2\\/5 {\n height: 40%;\n}\n\n.rf-h-24 {\n height: 6rem;\n}\n\n.rf-h-3 {\n height: .75rem;\n}\n\n.rf-h-3\\/10 {\n height: 30%;\n}\n\n.rf-h-32 {\n height: 8rem;\n}\n\n.rf-h-36 {\n height: 9rem;\n}\n\n.rf-h-4 {\n height: 1rem;\n}\n\n.rf-h-48 {\n height: 12rem;\n}\n\n.rf-h-5 {\n height: 1.25rem;\n}\n\n.rf-h-6 {\n height: 1.5rem;\n}\n\n.rf-h-7 {\n height: 1.75rem;\n}\n\n.rf-h-8 {\n height: 2rem;\n}\n\n.rf-h-9 {\n height: 2.25rem;\n}\n\n.rf-h-\\[0\\.875rem\\] {\n height: .875rem;\n}\n\n.rf-h-\\[1\\.25rem\\] {\n height: 1.25rem;\n}\n\n.rf-h-\\[35\\%\\] {\n height: 35%;\n}\n\n.rf-h-\\[50\\%\\] {\n height: 50%;\n}\n\n.rf-h-\\[calc\\(50vw-3rem\\)\\] {\n height: calc(50vw - 3rem);\n}\n\n.rf-h-fit {\n height: fit-content;\n}\n\n.rf-h-full {\n height: 100%;\n}\n\n.rf-h-max {\n height: max-content;\n}\n\n.rf-h-screen {\n height: 100vh;\n}\n\n.rf-max-h-12 {\n max-height: 3rem;\n}\n\n.rf-max-h-16 {\n max-height: 4rem;\n}\n\n.rf-max-h-20 {\n max-height: 5rem;\n}\n\n.rf-max-h-28 {\n max-height: 7rem;\n}\n\n.rf-max-h-4\\/5 {\n max-height: 80%;\n}\n\n.rf-max-h-48 {\n max-height: 12rem;\n}\n\n.rf-max-h-6 {\n max-height: 1.5rem;\n}\n\n.rf-max-h-8 {\n max-height: 2rem;\n}\n\n.rf-max-h-full {\n max-height: 100%;\n}\n\n.rf-max-h-qrcode {\n max-height: 120px;\n}\n\n.rf-max-h-qrcodelarge {\n max-height: 200px;\n}\n\n.rf-max-h-screen {\n max-height: 100vh;\n}\n\n.rf-min-h-12 {\n min-height: 3rem;\n}\n\n.rf-min-h-14 {\n min-height: 3.5rem;\n}\n\n.rf-min-h-16 {\n min-height: 4rem;\n}\n\n.rf-min-h-2\\/5 {\n min-height: 40%;\n}\n\n.rf-min-h-6 {\n min-height: 1.5rem;\n}\n\n.rf-min-h-8 {\n min-height: 2rem;\n}\n\n.rf-min-h-9 {\n min-height: 2.25rem;\n}\n\n.rf-min-h-full {\n min-height: 100%;\n}\n\n.rf-min-h-inherit {\n min-height: inherit;\n}\n\n.rf-w-0 {\n width: 0;\n}\n\n.rf-w-1\\/2 {\n width: 50%;\n}\n\n.rf-w-1\\/3 {\n width: 33.3333%;\n}\n\n.rf-w-1\\/4 {\n width: 25%;\n}\n\n.rf-w-10 {\n width: 2.5rem;\n}\n\n.rf-w-12 {\n width: 3rem;\n}\n\n.rf-w-16 {\n width: 4rem;\n}\n\n.rf-w-18 {\n width: 4.5rem;\n}\n\n.rf-w-2 {\n width: .5rem;\n}\n\n.rf-w-2\\/3 {\n width: 66.6667%;\n}\n\n.rf-w-20 {\n width: 5rem;\n}\n\n.rf-w-24 {\n width: 6rem;\n}\n\n.rf-w-3 {\n width: .75rem;\n}\n\n.rf-w-3\\/20 {\n width: 15%;\n}\n\n.rf-w-3\\/4 {\n width: 75%;\n}\n\n.rf-w-3\\/5 {\n width: 60%;\n}\n\n.rf-w-32 {\n width: 8rem;\n}\n\n.rf-w-36 {\n width: 9rem;\n}\n\n.rf-w-4 {\n width: 1rem;\n}\n\n.rf-w-48 {\n width: 12rem;\n}\n\n.rf-w-5 {\n width: 1.25rem;\n}\n\n.rf-w-6 {\n width: 1.5rem;\n}\n\n.rf-w-7 {\n width: 1.75rem;\n}\n\n.rf-w-8 {\n width: 2rem;\n}\n\n.rf-w-9 {\n width: 2.25rem;\n}\n\n.rf-w-\\[45\\%\\] {\n width: 45%;\n}\n\n.rf-w-\\[90\\%\\] {\n width: 90%;\n}\n\n.rf-w-\\[calc\\(100\\%-3rem\\)\\] {\n width: calc(100% - 3rem);\n}\n\n.rf-w-fit {\n width: fit-content;\n}\n\n.rf-w-full {\n width: 100%;\n}\n\n.rf-w-max {\n width: max-content;\n}\n\n.rf-w-screen {\n width: 100vw;\n}\n\n.rf-min-w-12 {\n min-width: 3rem;\n}\n\n.rf-min-w-24 {\n min-width: 6rem;\n}\n\n.rf-min-w-3\\/20 {\n min-width: 15%;\n}\n\n.rf-min-w-6 {\n min-width: 1.5rem;\n}\n\n.rf-min-w-7 {\n min-width: 1.75rem;\n}\n\n.rf-min-w-\\[45\\%\\] {\n min-width: 45%;\n}\n\n.rf-min-w-full {\n min-width: 100%;\n}\n\n.rf-max-w-1\\/2 {\n max-width: 50%;\n}\n\n.rf-max-w-16 {\n max-width: 4rem;\n}\n\n.rf-max-w-3\\/20 {\n max-width: 15%;\n}\n\n.rf-max-w-6 {\n max-width: 1.5rem;\n}\n\n.rf-max-w-7\\/10 {\n max-width: 70%;\n}\n\n.rf-max-w-\\[100vw\\] {\n max-width: 100vw;\n}\n\n.rf-max-w-\\[45\\%\\] {\n max-width: 45%;\n}\n\n.rf-max-w-\\[500px\\] {\n max-width: 500px;\n}\n\n.rf-max-w-\\[75\\%\\] {\n max-width: 75%;\n}\n\n.rf-max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n}\n\n.rf-max-w-full {\n max-width: 100%;\n}\n\n.rf-max-w-none {\n max-width: none;\n}\n\n.rf-flex-1 {\n flex: 1;\n}\n\n.rf-flex-\\[0_0_40\\%\\] {\n flex: 0 0 40%;\n}\n\n.rf-flex-\\[2_1_0\\%\\] {\n flex: 2;\n}\n\n.rf-flex-\\[4_1_0\\%\\] {\n flex: 4;\n}\n\n.rf-border-collapse {\n border-collapse: collapse;\n}\n\n.rf-origin-center {\n transform-origin: center;\n}\n\n.-rf-translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.-rf-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.-rf-translate-y-full {\n --tw-translate-y: -100%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf--translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-translate-x-1 {\n --tw-translate-x: .25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-translate-x-5 {\n --tw-translate-x: 1.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf--rotate-90 {\n --tw-rotate: -90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-rotate-0 {\n --tw-rotate: 0deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-rotate-90 {\n --tw-rotate: 90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-scale-0 {\n --tw-scale-x: 0;\n --tw-scale-y: 0;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n@keyframes rf-blink {\n 0%, 100% {\n opacity: .2;\n }\n\n 50% {\n opacity: 1;\n }\n}\n\n.rf-animate-blink {\n animation: 1.4s infinite both rf-blink;\n}\n\n@keyframes rf-fadeIn {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n.rf-animate-fadeIn {\n animation: .5s .2s backwards rf-fadeIn;\n}\n\n@keyframes rf-hScroll {\n 0% {\n transform: translateX(0);\n }\n\n 100% {\n transform: translateX(calc(-100% - 2rem));\n }\n}\n\n.rf-animate-hScroll {\n animation: 20s linear infinite rf-hScroll;\n}\n\n@keyframes rf-loader {\n 0% {\n box-shadow: 0 1.5rem 0 -1.5rem var(--rf-color-loader-animation);\n }\n\n 40% {\n box-shadow: 0 1.5rem 0 -.3rem var(--rf-color-loader-animation);\n }\n\n 80% {\n box-shadow: 0 1.5rem 0 -1.5rem var(--rf-color-loader-animation);\n }\n\n 100% {\n box-shadow: 0 1.5rem 0 -1.5rem var(--rf-color-loader-animation);\n }\n}\n\n.rf-animate-loader {\n animation: 1.8s ease-in-out -.16s infinite both rf-loader;\n}\n\n.rf-animate-loaderFadeIn {\n animation: 2s rf-fadeIn;\n}\n\n@keyframes rf-fadeOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n.rf-animate-loaderFadeOut {\n animation: 1s rf-fadeOut;\n}\n\n@keyframes rf-loaderMedium {\n 0% {\n box-shadow: 0 .75rem 0 -.75rem var(--rf-color-loader-animation);\n }\n\n 40% {\n box-shadow: 0 .75rem 0 -.25rem var(--rf-color-loader-animation);\n }\n\n 80% {\n box-shadow: 0 .75rem 0 -.75rem var(--rf-color-loader-animation);\n }\n\n 100% {\n box-shadow: 0 .75rem 0 -.75rem var(--rf-color-loader-animation);\n }\n}\n\n.rf-animate-loaderMedium {\n animation: 1.8s ease-in-out -.16s infinite both rf-loaderMedium;\n}\n\n@keyframes rf-loaderMini {\n 0% {\n box-shadow: 0 .5rem 0 -.5rem var(--rf-color-loader-animation);\n }\n\n 40% {\n box-shadow: 0 .5rem 0 -.1rem var(--rf-color-loader-animation);\n }\n\n 80% {\n box-shadow: 0 .5rem 0 -.5rem var(--rf-color-loader-animation);\n }\n\n 100% {\n box-shadow: 0 .5rem 0 -.5rem var(--rf-color-loader-animation);\n }\n}\n\n.rf-animate-loaderMini {\n animation: 1.8s ease-in-out -.16s infinite both rf-loaderMini;\n}\n\n@keyframes rf-slideBottom {\n 0% {\n opacity: 0;\n transform: translateX(0)translateY(20px);\n }\n\n 100% {\n opacity: 1;\n transform: translateX(0)translateY(0);\n }\n}\n\n.rf-animate-slideBottom {\n animation: .5s .2s backwards rf-slideBottom;\n}\n\n@keyframes rf-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.rf-animate-spin {\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-cursor-pointer {\n cursor: pointer;\n}\n\n.rf-select-none {\n user-select: none;\n}\n\n.rf-resize-none {\n resize: none;\n}\n\n.rf-scroll-pb-4 {\n scroll-padding-bottom: 1rem;\n}\n\n.rf-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n\n.rf-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.rf-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.rf-grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n\n.rf-grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n}\n\n.rf-grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n}\n\n.rf-grid-cols-8 {\n grid-template-columns: repeat(8, minmax(0, 1fr));\n}\n\n.rf-grid-cols-\\[repeat\\(2\\,30\\%\\)\\] {\n grid-template-columns: repeat(2, 30%);\n}\n\n.rf-grid-cols-\\[repeat\\(2\\,45\\%\\)\\] {\n grid-template-columns: repeat(2, 45%);\n}\n\n.rf-grid-cols-\\[repeat\\(3\\,31\\%\\)\\] {\n grid-template-columns: repeat(3, 31%);\n}\n\n.rf-grid-cols-headerContainer {\n grid-template-columns: 5rem 1rem 1fr 1fr;\n}\n\n.rf-grid-cols-printingPreview {\n grid-template-columns: minmax(0, 1fr) 3rem;\n}\n\n.rf-grid-cols-routes {\n grid-template-columns: repeat(3, max-content);\n}\n\n.rf-grid-rows-1 {\n grid-template-rows: repeat(1, minmax(0, 1fr));\n}\n\n.rf-grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n}\n\n.rf-grid-rows-3 {\n grid-template-rows: repeat(3, minmax(0, 1fr));\n}\n\n.rf-grid-rows-4 {\n grid-template-rows: repeat(4, minmax(0, 1fr));\n}\n\n.rf-grid-rows-5 {\n grid-template-rows: repeat(5, minmax(0, 1fr));\n}\n\n.rf-grid-rows-container {\n grid-template-rows: repeat(12, minmax(0, 1fr));\n}\n\n.rf-grid-rows-headerContainer {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n}\n\n.rf-flex-row {\n flex-direction: row;\n}\n\n.rf-flex-col {\n flex-direction: column;\n}\n\n.rf-flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n.rf-flex-wrap {\n flex-wrap: wrap;\n}\n\n.rf-flex-nowrap {\n flex-wrap: nowrap;\n}\n\n.rf-content-around {\n align-content: space-around;\n}\n\n.rf-items-start {\n align-items: flex-start;\n}\n\n.rf-items-end {\n align-items: flex-end;\n}\n\n.rf-items-center {\n align-items: center;\n}\n\n.rf-justify-start {\n justify-content: flex-start;\n}\n\n.rf-justify-end {\n justify-content: flex-end;\n}\n\n.rf-justify-center {\n justify-content: center;\n}\n\n.rf-justify-between {\n justify-content: space-between;\n}\n\n.rf-justify-around {\n justify-content: space-around;\n}\n\n.rf-justify-evenly {\n justify-content: space-evenly;\n}\n\n.rf-gap-1 {\n gap: .25rem;\n}\n\n.rf-gap-12 {\n gap: 3rem;\n}\n\n.rf-gap-2 {\n gap: .5rem;\n}\n\n.rf-gap-3 {\n gap: .75rem;\n}\n\n.rf-gap-4 {\n gap: 1rem;\n}\n\n.rf-gap-5 {\n gap: 1.25rem;\n}\n\n.rf-gap-6 {\n gap: 1.5rem;\n}\n\n.rf-gap-8 {\n gap: 2rem;\n}\n\n.rf-gap-9 {\n gap: 2.25rem;\n}\n\n.rf-gap-\\[10\\%\\] {\n gap: 10%;\n}\n\n.rf-gap-x-\\[3\\.5\\%\\] {\n column-gap: 3.5%;\n}\n\n.rf-divide-x > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-x-reverse: 0;\n border-right-width: calc(1px * var(--tw-divide-x-reverse));\n border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));\n}\n\n.rf-self-auto {\n align-self: auto;\n}\n\n.rf-self-start {\n align-self: flex-start;\n}\n\n.rf-self-end {\n align-self: flex-end;\n}\n\n.rf-self-center {\n align-self: center;\n}\n\n.rf-justify-self-start {\n justify-self: start;\n}\n\n.rf-justify-self-end {\n justify-self: end;\n}\n\n.rf-justify-self-center {\n justify-self: center;\n}\n\n.rf-overflow-hidden {\n overflow: hidden;\n}\n\n.rf-overflow-clip {\n overflow: clip;\n}\n\n.rf-overflow-y-auto {\n overflow-y: auto;\n}\n\n.rf-overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.rf-overflow-y-hidden {\n overflow-y: hidden;\n}\n\n.rf-overflow-y-clip {\n overflow-y: clip;\n}\n\n.rf-overflow-x-visible {\n overflow-x: visible;\n}\n\n.rf-overflow-y-visible {\n overflow-y: visible;\n}\n\n.rf-overflow-x-scroll {\n overflow-x: scroll;\n}\n\n.rf-overflow-y-scroll {\n overflow-y: scroll;\n}\n\n.rf-truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.rf-whitespace-nowrap {\n white-space: nowrap;\n}\n\n.rf-whitespace-break-spaces {\n white-space: break-spaces;\n}\n\n.rf-rounded {\n border-radius: .3125rem;\n}\n\n.rf-rounded-6 {\n border-radius: 1.5rem;\n}\n\n.rf-rounded-8 {\n border-radius: 2rem;\n}\n\n.rf-rounded-\\[20px\\] {\n border-radius: 20px;\n}\n\n.rf-rounded-half {\n border-radius: 50%;\n}\n\n.rf-rounded-lg {\n border-radius: .5rem;\n}\n\n.rf-rounded-max {\n border-radius: 100%;\n}\n\n.rf-rounded-b {\n border-bottom-right-radius: .3125rem;\n border-bottom-left-radius: .3125rem;\n}\n\n.rf-rounded-b-4 {\n border-bottom-right-radius: 1rem;\n border-bottom-left-radius: 1rem;\n}\n\n.rf-rounded-b-lg {\n border-bottom-right-radius: .5rem;\n border-bottom-left-radius: .5rem;\n}\n\n.rf-rounded-t-lg {\n border-top-left-radius: .5rem;\n border-top-right-radius: .5rem;\n}\n\n.rf-border {\n border-width: 1px;\n}\n\n.rf-border-0 {\n border-width: 0;\n}\n\n.rf-border-2 {\n border-width: 2px;\n}\n\n.rf-border-y {\n border-top-width: 1px;\n border-bottom-width: 1px;\n}\n\n.rf-border-b {\n border-bottom-width: 1px;\n}\n\n.rf-border-b-2 {\n border-bottom-width: 2px;\n}\n\n.rf-border-l {\n border-left-width: 1px;\n}\n\n.rf-border-r {\n border-right-width: 1px;\n}\n\n.rf-border-t {\n border-top-width: 1px;\n}\n\n.rf-border-t-0 {\n border-top-width: 0;\n}\n\n.rf-border-none {\n border-style: none;\n}\n\n.rf-border-\\[\\#00000029\\] {\n border-color: #00000029;\n}\n\n.rf-border-\\[\\#1999B1\\] {\n --tw-border-opacity: 1;\n border-color: rgb(25 153 177 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#325981\\] {\n --tw-border-opacity: 1;\n border-color: rgb(50 89 129 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#707070\\] {\n --tw-border-opacity: 1;\n border-color: rgb(112 112 112 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#8B8888\\] {\n --tw-border-opacity: 1;\n border-color: rgb(139 136 136 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#9FA2AA\\] {\n --tw-border-opacity: 1;\n border-color: rgb(159 162 170 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#C7C6C6\\] {\n --tw-border-opacity: 1;\n border-color: rgb(199 198 198 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#F0F0F0\\] {\n --tw-border-opacity: 1;\n border-color: rgb(240 240 240 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-black {\n border-color: var(--rf-color-black);\n}\n\n.rf-border-cardButtonBorderDefault {\n border-color: var(--rf-color-cardButtonBorderDefault);\n}\n\n.rf-border-cardButtonBorderHover {\n border-color: var(--rf-color-cardButtonBorderHover);\n}\n\n.rf-border-cardFrameBorder {\n border-color: var(--rf-color-cardFrameBorder);\n}\n\n.rf-border-formInputButtonBorderDefault {\n border-color: var(--rf-color-formInputButtonBorderDefault);\n}\n\n.rf-border-formInputButtonBorderHover {\n border-color: var(--rf-color-formInputButtonBorderHover);\n}\n\n.rf-border-formInputRadioCheckboxCheckedBorder {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n}\n\n.rf-border-formInputRadioCheckboxUncheckedBorder {\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n}\n\n.rf-border-gray {\n --tw-border-opacity: 1;\n border-color: rgb(128 128 128 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-lightgray {\n --tw-border-opacity: 1;\n border-color: rgb(129 129 129 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-menuBorder {\n --tw-border-opacity: 1;\n border-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-primary {\n border-color: var(--rf-color-primary);\n}\n\n.rf-border-secondary {\n border-color: var(--rf-color-secondary);\n}\n\n.rf-border-templateCheckboxBorder {\n --tw-border-opacity: 1;\n border-color: rgb(112 112 112 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-textBoxBorder {\n --tw-border-opacity: 1;\n border-color: rgb(190 190 190 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-textModePanelBackgroundBot {\n border-color: var(--rf-color-textModePanelBackgroundBot);\n}\n\n.rf-border-textModePanelBackgroundUser {\n border-color: var(--rf-color-textModePanelBackgroundUser);\n}\n\n.rf-border-trueblack {\n --tw-border-opacity: 1;\n border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-truewhite {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-x-primary {\n border-left-color: var(--rf-color-primary);\n border-right-color: var(--rf-color-primary);\n}\n\n.rf-border-y-menuBorder {\n --tw-border-opacity: 1;\n border-top-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n border-bottom-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-\\[\\#C4C5C8\\] {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(196 197 200 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-black {\n border-bottom-color: var(--rf-color-black);\n}\n\n.rf-border-b-menuBorder {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-silver {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(192 192 192 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-transparent {\n border-bottom-color: #0000;\n}\n\n.rf-border-l-menuBorder {\n --tw-border-opacity: 1;\n border-left-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-r-\\[\\#8B8888\\] {\n --tw-border-opacity: 1;\n border-right-color: rgb(139 136 136 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-r-silver {\n --tw-border-opacity: 1;\n border-right-color: rgb(192 192 192 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-t-\\[\\#8B8888\\] {\n --tw-border-opacity: 1;\n border-top-color: rgb(139 136 136 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-t-\\[\\#CBC9C9\\] {\n --tw-border-opacity: 1;\n border-top-color: rgb(203 201 201 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-t-menuBorder {\n --tw-border-opacity: 1;\n border-top-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-bg-\\[\\#00000050\\] {\n background-color: #00000050;\n}\n\n.rf-bg-\\[\\#000000B3\\] {\n background-color: #000000b3;\n}\n\n.rf-bg-\\[\\#121212F2\\] {\n background-color: #121212f2;\n}\n\n.rf-bg-\\[\\#1999B1\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(25 153 177 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#325981\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(50 89 129 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#CDE5FE\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(205 229 254 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#F0F0F0\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(240 240 240 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#F8F8F8\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(248 248 248 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-black {\n background-color: var(--rf-color-black);\n}\n\n.rf-bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-cardButtonBackgroundDefault {\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n}\n\n.rf-bg-cardButtonBackgroundHover {\n background-color: var(--rf-color-cardButtonBackgroundHover);\n}\n\n.rf-bg-cardFrameBackground {\n background-color: var(--rf-color-cardFrameBackground);\n}\n\n.rf-bg-formInputButtonBackgroundDefault {\n background-color: var(--rf-color-formInputButtonBackgroundDefault);\n}\n\n.rf-bg-formInputButtonBackgroundHover {\n background-color: var(--rf-color-formInputButtonBackgroundHover);\n}\n\n.rf-bg-formInputRadioCheckboxUncheckedBackground {\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n}\n\n.rf-bg-gray {\n --tw-bg-opacity: 1;\n background-color: rgb(128 128 128 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-primary {\n background-color: var(--rf-color-primary);\n}\n\n.rf-bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-secondary {\n background-color: var(--rf-color-secondary);\n}\n\n.rf-bg-silver {\n --tw-bg-opacity: 1;\n background-color: rgb(192 192 192 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-templateBackground {\n --tw-bg-opacity: 1;\n background-color: rgb(241 241 241 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-templateEmptyCard {\n --tw-bg-opacity: 1;\n background-color: rgb(232 231 231 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-textModePanelBackgroundBot {\n background-color: var(--rf-color-textModePanelBackgroundBot);\n}\n\n.rf-bg-textModePanelBackgroundUser {\n background-color: var(--rf-color-textModePanelBackgroundUser);\n}\n\n.rf-bg-transparent {\n background-color: #0000;\n}\n\n.rf-bg-truewhite {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-vocalModeSubtitlesBackground {\n background-color: var(--rf-color-vocalModeSubtitlesBackground);\n}\n\n.rf-bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(247 243 246 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-opacity-30 {\n --tw-bg-opacity: .3;\n}\n\n.rf-bg-opacity-50 {\n --tw-bg-opacity: .5;\n}\n\n.rf-bg-opacity-80 {\n --tw-bg-opacity: .8;\n}\n\n.rf-object-cover {\n object-fit: cover;\n}\n\n.rf-p-0 {\n padding: 0;\n}\n\n.rf-p-1 {\n padding: .25rem;\n}\n\n.rf-p-2 {\n padding: .5rem;\n}\n\n.rf-p-3 {\n padding: .75rem;\n}\n\n.rf-p-4 {\n padding: 1rem;\n}\n\n.rf-p-\\[25px\\] {\n padding: 25px;\n}\n\n.rf-p-\\[7px_12px\\] {\n padding: 7px 12px;\n}\n\n.rf-px-1 {\n padding-left: .25rem;\n padding-right: .25rem;\n}\n\n.rf-px-16 {\n padding-left: 4rem;\n padding-right: 4rem;\n}\n\n.rf-px-2 {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.rf-px-3 {\n padding-left: .75rem;\n padding-right: .75rem;\n}\n\n.rf-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.rf-px-48 {\n padding-left: 12rem;\n padding-right: 12rem;\n}\n\n.rf-px-5, .rf-px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.rf-px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n.rf-py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.rf-py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n.rf-py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n\n.rf-py-16 {\n padding-top: 4rem;\n padding-bottom: 4rem;\n}\n\n.rf-py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.rf-py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.rf-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n.rf-py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n\n.rf-py-8 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n\n.rf-pb-10 {\n padding-bottom: 2.5rem;\n}\n\n.rf-pb-12 {\n padding-bottom: 3rem;\n}\n\n.rf-pb-14 {\n padding-bottom: 3.5rem;\n}\n\n.rf-pb-2 {\n padding-bottom: .5rem;\n}\n\n.rf-pb-24 {\n padding-bottom: 6rem;\n}\n\n.rf-pb-3 {\n padding-bottom: .75rem;\n}\n\n.rf-pb-4 {\n padding-bottom: 1rem;\n}\n\n.rf-pb-5, .rf-pb-6 {\n padding-bottom: 1.5rem;\n}\n\n.rf-pb-8 {\n padding-bottom: 2rem;\n}\n\n.rf-pb-\\[15vh\\] {\n padding-bottom: 15vh;\n}\n\n.rf-pl-0 {\n padding-left: 0;\n}\n\n.rf-pl-1 {\n padding-left: .25rem;\n}\n\n.rf-pl-4 {\n padding-left: 1rem;\n}\n\n.rf-pl-6 {\n padding-left: 1.5rem;\n}\n\n.rf-pl-8 {\n padding-left: 2rem;\n}\n\n.rf-pr-1 {\n padding-right: .25rem;\n}\n\n.rf-pr-4 {\n padding-right: 1rem;\n}\n\n.rf-pt-1 {\n padding-top: .25rem;\n}\n\n.rf-pt-11\\/20 {\n padding-top: 55%;\n}\n\n.rf-pt-12 {\n padding-top: 3rem;\n}\n\n.rf-pt-14 {\n padding-top: 3.5rem;\n}\n\n.rf-pt-2 {\n padding-top: .5rem;\n}\n\n.rf-pt-24 {\n padding-top: 6rem;\n}\n\n.rf-pt-3 {\n padding-top: .75rem;\n}\n\n.rf-pt-4 {\n padding-top: 1rem;\n}\n\n.rf-pt-40 {\n padding-top: 10rem;\n}\n\n.rf-pt-6 {\n padding-top: 1.5rem;\n}\n\n.rf-pt-8 {\n padding-top: 2rem;\n}\n\n.rf-pt-\\[25vh\\] {\n padding-top: 25vh;\n}\n\n.rf-pt-\\[26vh\\] {\n padding-top: 26vh;\n}\n\n.rf-text-left {\n text-align: left;\n}\n\n.rf-text-center {\n text-align: center;\n}\n\n.rf-text-justify {\n text-align: justify;\n}\n\n.rf-font-default {\n font-family: Calibri, sans-serif;\n}\n\n.rf-text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.rf-text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n.rf-text-4xl {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-text-5xl {\n font-size: 3rem;\n line-height: 1;\n}\n\n.rf-text-6xl {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-text-7xl {\n font-size: 4.5rem;\n line-height: 1;\n}\n\n.rf-text-8xl {\n font-size: 6rem;\n line-height: 1;\n}\n\n.rf-text-\\[0\\.5rem\\] {\n font-size: .5rem;\n}\n\n.rf-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.rf-text-basecustom {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n.rf-text-lgcustom {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-text-sm {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n.rf-text-sm\\/4 {\n font-size: .875rem;\n line-height: 1rem;\n}\n\n.rf-text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n\n.rf-text-xs {\n font-size: .75rem;\n line-height: 1rem;\n}\n\n.rf-text-xsl {\n font-size: .7rem;\n line-height: 1rem;\n}\n\n.rf-text-xsm {\n font-size: .6rem;\n}\n\n.rf-font-bold {\n font-weight: 600;\n}\n\n.rf-font-light {\n font-weight: 200;\n}\n\n.rf-font-medium {\n font-weight: 300;\n}\n\n.rf-font-semibold {\n font-weight: 400;\n}\n\n.rf-uppercase {\n text-transform: uppercase;\n}\n\n.rf-capitalize {\n text-transform: capitalize;\n}\n\n.rf-normal-case {\n text-transform: none;\n}\n\n.rf-italic {\n font-style: italic;\n}\n\n.rf-leading-4 {\n line-height: 1rem;\n}\n\n.rf-text-\\[\\#1999B1\\] {\n --tw-text-opacity: 1;\n color: rgb(25 153 177 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#325981\\] {\n --tw-text-opacity: 1;\n color: rgb(50 89 129 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#575F6B\\] {\n --tw-text-opacity: 1;\n color: rgb(87 95 107 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#9A9A9A\\] {\n --tw-text-opacity: 1;\n color: rgb(154 154 154 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#A4A7AF\\] {\n --tw-text-opacity: 1;\n color: rgb(164 167 175 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-black {\n color: var(--rf-color-black);\n}\n\n.rf-text-cardButtonTextDefault {\n color: var(--rf-color-cardButtonTextDefault);\n}\n\n.rf-text-cardFrameText {\n color: var(--rf-color-cardFrameText);\n}\n\n.rf-text-formInputButtonTextDefault {\n color: var(--rf-color-formInputButtonTextDefault);\n}\n\n.rf-text-formInputButtonTextHover {\n color: var(--rf-color-formInputButtonTextHover);\n}\n\n.rf-text-formInputRadioCheckboxUncheckedBackground {\n color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n}\n\n.rf-text-formInputTextDefault {\n color: var(--rf-color-formInputTextDefault);\n}\n\n.rf-text-gray {\n --tw-text-opacity: 1;\n color: rgb(128 128 128 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-lightgray {\n --tw-text-opacity: 1;\n color: rgb(129 129 129 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-primary {\n color: var(--rf-color-primary);\n}\n\n.rf-text-secondary {\n color: var(--rf-color-secondary);\n}\n\n.rf-text-textModePanelConversationBot {\n color: var(--rf-color-textModePanelConversationBot);\n}\n\n.rf-text-textModePanelConversationUser {\n color: var(--rf-color-textModePanelConversationUser);\n}\n\n.rf-text-trueblack {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-truewhite {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-vocalModeSubtitlesText {\n color: var(--rf-color-vocalModeSubtitlesText);\n}\n\n.rf-text-white {\n --tw-text-opacity: 1;\n color: rgb(247 243 246 / var(--tw-text-opacity, 1));\n}\n\n.rf-underline {\n text-decoration-line: underline;\n}\n\n.rf-shadow-\\[-3px_-3px_10px_\\#00000099\\] {\n --tw-shadow: -3px -3px 10px #0009;\n --tw-shadow-colored: -3px -3px 10px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_0_15px_0_silver\\] {\n --tw-shadow: 0 0 15px 0 silver;\n --tw-shadow-colored: 0 0 15px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_0_20px_1px_\\#A4A7AF80\\] {\n --tw-shadow: 0 0 20px 1px #a4a7af80;\n --tw-shadow-colored: 0 0 20px 1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_0_3px_6px_\\#00000029\\] {\n --tw-shadow: 0 0 3px 6px #00000029;\n --tw-shadow-colored: 0 0 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_3px_6px_\\#00000029\\] {\n --tw-shadow: 0 3px 6px #00000029;\n --tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_3px_6px_\\#606267\\] {\n --tw-shadow: 0 3px 6px #606267;\n --tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_6px_6px_\\#00000029\\] {\n --tw-shadow: 0 6px 6px #00000029;\n --tw-shadow-colored: 0 6px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[20px_3px_20px_\\#00000029\\] {\n --tw-shadow: 20px 3px 20px #00000029;\n --tw-shadow-colored: 20px 3px 20px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[3px_3px_16px_\\#00000029\\] {\n --tw-shadow: 3px 3px 16px #00000029;\n --tw-shadow-colored: 3px 3px 16px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[3px_3px_6px_\\#00000029\\] {\n --tw-shadow: 3px 3px 6px #00000029;\n --tw-shadow-colored: 3px 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[inset_0_0_6px_\\#0000003B\\] {\n --tw-shadow: inset 0 0 6px #0000003b;\n --tw-shadow-colored: inset 0 0 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[inset_0_12px_12px_-12px_\\#00000029\\,inset_0_-12px_12px_-12px_\\#00000029\\] {\n --tw-shadow: inset 0 12px 12px -12px #00000029, inset 0 -12px 12px -12px #00000029;\n --tw-shadow-colored: inset 0 12px 12px -12px var(--tw-shadow-color), inset 0 -12px 12px -12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-outline-none {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.rf-blur-background {\n --tw-blur: blur(var(--rf-blur-background));\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.rf-filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.rf-transition-all {\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.rf-transition-transform {\n transition-property: transform;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.rf-text-shadow-black {\n text-shadow: 2px 0 5px #000, -2px 0 5px #000, 0 2px 5px #000, 0 -2px 5px #000;\n}\n\n.rf-capitalize-first:first-letter {\n text-transform: uppercase;\n}\n\nol {\n padding-left: 2rem;\n list-style-type: decimal;\n}\n\nul {\n padding-left: 2rem;\n list-style-type: disc;\n}\n\n#retorik-container.rf-portrait:not(.rf-large) .ac-image {\n max-width: 100px;\n}\n\n.rf-glass-background, #retorik-container.portrait .portrait\\:rf-glass-background {\n background-color: var(--rf-color-black);\n --tw-bg-opacity: .62;\n --tw-backdrop-blur: blur(8px);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n\n.rf-loader-bouncing-bot {\n aspect-ratio: 2;\n --_g: no-repeat radial-gradient(circle closest-side, var(--rf-color-textModePanelConversationBot) 90%, transparent);\n background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;\n background-size: 33.3333% 50%;\n}\n\n@keyframes rf-loaderBouncing {\n 20% {\n background-position: 0 0, 50%, 100%;\n }\n\n 40% {\n background-position: 0 100%, 50% 0, 100%;\n }\n\n 60% {\n background-position: 0%, 50% 100%, 100% 0;\n }\n\n 80% {\n background-position: 0%, 50%, 100% 100%;\n }\n}\n\n.rf-loader-bouncing-bot {\n animation: 1s linear infinite rf-loaderBouncing;\n}\n\n.rf-loader-bouncing-white {\n aspect-ratio: 2;\n --_g: no-repeat radial-gradient(circle closest-side, #fff 90%, transparent);\n background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;\n background-size: 33.3333% 50%;\n animation: 1s linear infinite rf-loaderBouncing;\n}\n\n@keyframes rf-loaderPulsation {\n 0% {\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n transform: scale3d(1.1, 1.1, 1);\n }\n\n 100% {\n transform: scale3d(1, 1, 1);\n }\n}\n\n.rf-loader-pulsation {\n animation: 2s cubic-bezier(.65, 0, .34, 1) infinite rf-loaderPulsation;\n}\n\n.rf-loader-pulsation:before {\n content: \"\";\n background-color: var(--rf-color-secondary);\n z-index: -1;\n border-radius: 50%;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n\n@keyframes rf-loaderRipple {\n 0% {\n opacity: 1;\n transform: scale3d(.75, .75, 1);\n }\n\n 100% {\n opacity: 0;\n transform: scale3d(1.5, 1.5, 1);\n }\n}\n\n.rf-loader-pulsation:before {\n animation: 2.4s cubic-bezier(.65, 0, .34, 1) .4s infinite rf-loaderRipple;\n}\n\n.rf-loader-pulsation:after {\n content: \"\";\n background-color: var(--rf-color-secondary);\n z-index: -1;\n border-radius: 50%;\n width: 100%;\n height: 100%;\n animation: 2.4s cubic-bezier(.65, 0, .34, 1) infinite rf-loaderRipple;\n position: absolute;\n}\n\n.rf-loader:before {\n content: \"\";\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n animation: 1.8s ease-in-out -.32s infinite both rf-loader;\n display: block;\n position: absolute;\n right: 1.5rem;\n}\n\n.rf-loader:after {\n content: \"\";\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n animation: 1.8s ease-in-out infinite both rf-loader;\n display: block;\n position: absolute;\n left: 1.5rem;\n}\n\n.rf-loader-medium:before {\n content: \"\";\n border-radius: 50%;\n width: 1rem;\n height: 1rem;\n animation: 1.8s ease-in-out -.32s infinite both rf-loaderMedium;\n display: block;\n position: absolute;\n right: 1rem;\n}\n\n.rf-loader-medium:after {\n content: \"\";\n border-radius: 50%;\n width: 1rem;\n height: 1rem;\n animation: 1.8s ease-in-out infinite both rf-loaderMedium;\n display: block;\n position: absolute;\n left: 1rem;\n}\n\n.rf-loader-mini:before {\n content: \"\";\n border-radius: 50%;\n width: .5rem;\n height: .5rem;\n animation: 1.8s ease-in-out -.32s infinite both rf-loaderMini;\n display: block;\n position: absolute;\n right: .5rem;\n}\n\n.rf-loader-mini:after {\n content: \"\";\n border-radius: 50%;\n width: .5rem;\n height: .5rem;\n animation: 1.8s ease-in-out infinite both rf-loaderMini;\n display: block;\n position: absolute;\n left: .5rem;\n}\n\n.rf-loader-microphone:before, .rf-loader-microphone:after {\n content: \"\";\n --tw-border-opacity: 1;\n border: 6px solid #0000;\n border-top-color: rgb(128 128 128 / var(--tw-border-opacity, 1));\n border-radius: 100%;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.rf-loader-microphone:before {\n z-index: 2;\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-loader-microphone:after {\n --tw-border-opacity: 1;\n border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));\n}\n\n.rf-loader-microphone-primary:before, .rf-loader-microphone-primary:after {\n content: \"\";\n border: 6px solid #0000;\n border-top-color: var(--rf-color-primary);\n border-radius: 100%;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.rf-loader-microphone-primary:before {\n z-index: 2;\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-loader-microphone-primary:after {\n --tw-border-opacity: 1;\n border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));\n}\n\n.rf-loader-microphone-secondary:before, .rf-loader-microphone-secondary:after {\n content: \"\";\n border: 6px solid #0000;\n border-top-color: var(--rf-color-secondary);\n border-radius: 100%;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.rf-loader-microphone-secondary:before {\n z-index: 2;\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-loader-microphone-secondary:after {\n --tw-border-opacity: 1;\n border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));\n}\n\n.rf-loader-counter {\n border-width: 8px;\n border-color: var(--rf-color-primary);\n border-radius: 50%;\n position: relative;\n}\n\n@keyframes rf-loaderCounter {\n 0% {\n clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);\n }\n\n 25% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);\n }\n\n 50% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);\n }\n\n 75% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);\n }\n\n 100% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);\n }\n}\n\n.rf-loader-counter:before {\n border-width: 10px;\n border-color: var(--rf-color-cardFrameBackground);\n content: \"\";\n animation: rf-loaderCounter;\n animation-duration: var(--duration);\n border-radius: 50%;\n animation-timing-function: linear;\n position: absolute;\n inset: -9px;\n transform: rotate(45deg);\n}\n\n.rf-touch-action-none {\n touch-action: none;\n}\n\n.rf-unselectable {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n}\n\n.rf-title-extralarge-bold-size-auto {\n font-size: 2.25rem;\n font-weight: 600;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large .rf-title-extralarge-bold-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-extralarge-bold-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-title-extralarge-size-auto {\n font-size: 2.25rem;\n font-weight: 400;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large .rf-title-extralarge-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-extralarge-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-title-large-size-auto {\n font-size: 1.5rem;\n font-weight: 400;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-title-large-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-large-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n.rf-title-large-bold-size-auto {\n font-size: 1.875rem;\n font-weight: 600;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large .rf-title-large-bold-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-large-bold-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n.rf-title-size-auto {\n font-size: 1.5rem;\n font-weight: 400;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-title-size-auto {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-title-bold-size-auto {\n font-size: 1.5rem;\n font-weight: 600;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-title-bold-size-auto {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-bold-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-subtitle-size-auto {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-subtitle-size-auto {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-subtitle-size-auto {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.rf-text-extralarge-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large .rf-text-extralarge-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-extralarge-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-text-verylarge-size-auto {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-text-verylarge-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-verylarge-size-auto {\n font-size: 4.5rem;\n line-height: 1;\n}\n\n.rf-text-large-size-auto {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-text-large-size-auto {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-large-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-text-medium-size-auto {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large .rf-text-medium-size-auto {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-text-size-auto {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-text-size-auto {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-size-auto {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-text-small-size-auto {\n font-size: .875rem;\n line-height: 1rem;\n}\n\n#retorik-container.rf-large .rf-text-small-size-auto {\n font-size: 1rem;\n line-height: 1.1rem;\n}\n\n.rf-text-extra-small-size-auto {\n font-size: .6rem;\n line-height: .75rem;\n}\n\n#retorik-container.rf-large .rf-text-extra-small-size-auto {\n font-size: .875rem;\n line-height: 1rem;\n}\n\n.rf-small-size-auto {\n font-size: .6rem;\n}\n\n#retorik-container.rf-large .rf-small-size-auto {\n font-size: .75rem;\n line-height: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-small-size-auto {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n.rf-line-clamp-unknown {\n hyphens: auto;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-1 {\n hyphens: auto;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-2 {\n hyphens: auto;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-3 {\n hyphens: auto;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-4 {\n hyphens: auto;\n -webkit-line-clamp: 4;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-5 {\n hyphens: auto;\n -webkit-line-clamp: 5;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-6 {\n hyphens: auto;\n -webkit-line-clamp: 6;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-7 {\n hyphens: auto;\n -webkit-line-clamp: 7;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-8 {\n hyphens: auto;\n -webkit-line-clamp: 8;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-9 {\n hyphens: auto;\n -webkit-line-clamp: 9;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-10 {\n hyphens: auto;\n -webkit-line-clamp: 10;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-overflow-wrap {\n overflow-wrap: anywhere;\n}\n\n.rf-height-fill-available {\n height: stretch;\n}\n\n.rf-width-fill-available {\n width: stretch;\n}\n\n.rf-animation-delay-2 {\n animation-delay: .2s;\n}\n\n.rf-animation-delay-4 {\n animation-delay: .4s;\n}\n\n.rf-scrollbar-thin {\n scrollbar-width: thin;\n scrollbar-color: var(--rf-color-secondary) transparent;\n}\n\n.rf-scrollbar-thin::-webkit-scrollbar {\n width: .2rem;\n height: .2rem;\n margin: .25rem 0;\n}\n\n.rf-scrollbar-thin::-webkit-scrollbar-thumb {\n background-color: var(--rf-color-secondary);\n border-radius: .5rem;\n}\n\n.rf-scrollbar-x-custom::-webkit-scrollbar {\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: 2rem;\n height: .5rem;\n}\n\n.rf-scrollbar-x-custom::-webkit-scrollbar-thumb {\n background-color: var(--rf-color-primary);\n border-radius: 2rem;\n}\n\n.rf-scrollbar-hidden {\n scrollbar-width: none;\n}\n\n.rf-scrollbar-hidden::-webkit-scrollbar {\n display: none;\n}\n\n.rf-opacity-gradient-b {\n -webkit-mask-image: linear-gradient(#000 50%, #0000 100%);\n}\n\n.rf-opacity-gradient-b-thin {\n -webkit-mask-image: linear-gradient(#797676 84%, #0000 100%);\n}\n\n.rf-opacity-gradient-l {\n -webkit-mask-image: linear-gradient(to left, #000 75%, gray 80%, #0000 85%);\n}\n\n.rf-opacity-gradient-l-thin {\n -webkit-mask-image: linear-gradient(to left, #000 90%, gray 95%, #0000 100%);\n}\n\n.rf-opacity-gradient-r {\n -webkit-mask-image: linear-gradient(to right, #000 75%, gray 80%, #0000 85%);\n}\n\n.rf-opacity-gradient-r-thin {\n -webkit-mask-image: linear-gradient(to right, #000 90%, gray 95%, #0000 100%);\n}\n\n.rf-opacity-gradient-h {\n -webkit-mask-image: linear-gradient(to right, #0000 0%, 6%, #000, 94%, #0000 100%);\n}\n\n.rf-card-button {\n border-width: 1px;\n border-color: var(--rf-color-cardButtonBorderDefault);\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n color: var(--rf-color-cardButtonTextDefault);\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button {\n padding: .5rem 1rem;\n}\n\n.rf-card-button:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonBorderHover);\n background-color: var(--rf-color-cardButtonBackgroundHover);\n color: var(--rf-color-cardButtonTextHover);\n}\n\n.rf-card-button-clicked {\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n border-width: 1px;\n border-color: #0000;\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-clicked {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.rf-card-button-positive {\n border-width: 1px;\n border-color: var(--rf-color-cardFrameBackground);\n background-color: var(--rf-color-cardButtonTextDefault);\n color: var(--rf-color-cardFrameBackground);\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-positive {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-positive {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-positive {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-positive:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonTextDefault);\n background-color: var(--rf-color-cardFrameBackground);\n color: var(--rf-color-cardButtonTextDefault);\n}\n\n.rf-card-button-destructive {\n --tw-border-opacity: 1;\n border-width: 1px;\n border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-destructive {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-destructive {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-destructive {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-destructive:hover {\n cursor: pointer;\n --tw-border-opacity: 1;\n border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n\n.rf-card-button-secondary {\n border-width: 1px;\n border-color: var(--rf-color-secondary);\n color: var(--rf-color-secondary);\n background-color: #0000;\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-secondary {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-secondary {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-secondary {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-secondary:hover {\n cursor: pointer;\n border-color: var(--rf-color-secondary);\n background-color: var(--rf-color-secondary);\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.rf-card-button-discover {\n border-width: 1px;\n border-color: var(--rf-color-cardButtonDiscoverBorderDefault);\n background-color: var(--rf-color-cardButtonDiscoverBackgroundDefault);\n color: var(--rf-color-cardButtonDiscoverTextDefault);\n border-radius: .3125rem;\n padding: .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-discover {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.rf-card-button-discover:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonDiscoverBorderHover);\n background-color: var(--rf-color-cardButtonDiscoverBackgroundHover);\n color: var(--rf-color-cardButtonDiscoverTextHover);\n}\n\n.rf-card-button-history {\n cursor: default;\n border-width: 1px;\n border-color: var(--rf-color-cardButtonBorderDefault);\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n color: var(--rf-color-cardButtonTextDefault);\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-history {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-history {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-history {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-mini, .rf-card-button-mini-selected, .rf-card-button-mini-disabled {\n background-color: var(--rf-color-cardFrameBackground);\n border-width: 1px;\n border-radius: .3125rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-mini, #retorik-container.rf-large .rf-card-button-mini-selected, #retorik-container.rf-large .rf-card-button-mini-disabled {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-mini, #retorik-container.rf-large.rf-portrait .rf-card-button-mini-selected, #retorik-container.rf-large.rf-portrait .rf-card-button-mini-disabled {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-card-button-mini {\n border-color: var(--rf-color-cardButtonBorderDefault);\n background-color: var(--rf-color-cardFrameBackground);\n color: var(--rf-color-cardButtonTextDefault);\n}\n\n.rf-card-button-mini:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonBorderHover);\n background-color: var(--rf-color-cardFrameBackground);\n color: var(--rf-color-cardButtonTextHover);\n}\n\n.rf-card-button-mini-selected {\n border-color: var(--rf-color-cardFrameBackground);\n background-color: var(--rf-color-cardButtonBorderDefault);\n color: var(--rf-color-cardFrameBackground);\n}\n\n.lf-player-container {\n align-items: flex-end;\n width: 100%;\n height: 100%;\n display: flex;\n overflow: hidden;\n}\n\n.rf-input-label {\n text-overflow: ellipsis;\n color: var(--rf-color-formInputTextDefault);\n margin-top: .1rem;\n margin-left: .75rem;\n overflow-x: hidden;\n}\n\n#retorik-container.rf-large .rf-input-label {\n margin-top: .25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-input-label {\n margin-top: .2rem;\n}\n\n.rf-radio-custom {\n -webkit-appearance: none;\n appearance: none;\n border-width: 2px;\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: 50%;\n place-content: center;\n width: 1.5rem;\n min-width: 1.5rem;\n height: 1.5rem;\n margin: 0;\n display: grid;\n}\n\n.rf-radio-custom:checked {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxCheckedBackground);\n}\n\n#retorik-container.rf-large .rf-radio-custom {\n width: 1.75rem;\n min-width: 1.75rem;\n height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-radio-custom {\n width: 2rem;\n min-width: 2rem;\n height: 2rem;\n}\n\n.rf-radio-custom:before {\n content: \"\";\n --tw-scale-x: 0;\n --tw-scale-y: 0;\n width: .5rem;\n height: .5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n background-color: var(--rf-color-formInputRadioCheckboxCheckedItem);\n border-radius: 50%;\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n#retorik-container.rf-large .rf-radio-custom:before {\n width: .75rem;\n height: .75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-radio-custom:before {\n width: 1rem;\n height: 1rem;\n}\n\n.rf-radio-custom:checked:before {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-input-hidden {\n -webkit-appearance: none;\n appearance: none;\n margin: 0;\n}\n\n.rf-checkbox-custom {\n -webkit-appearance: none;\n appearance: none;\n border-width: 2px;\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: .3125rem;\n place-content: center;\n width: 1.5rem;\n min-width: 1.5rem;\n height: 1.5rem;\n margin: 0;\n display: grid;\n}\n\n#retorik-container.rf-large .rf-checkbox-custom {\n width: 1.75rem;\n min-width: 1.75rem;\n height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-checkbox-custom {\n width: 2rem;\n min-width: 2rem;\n height: 2rem;\n}\n\n.rf-checkbox-custom:checked {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxCheckedBackground);\n}\n\n.rf-toggle-custom {\n -webkit-appearance: none;\n appearance: none;\n background-color: var(--rf-color-black);\n border-radius: 1.5rem;\n width: 3rem;\n min-width: 3rem;\n height: 1.5rem;\n margin: 0;\n position: relative;\n}\n\n.rf-toggle-custom:checked {\n background-color: var(--rf-color-primary);\n}\n\n#retorik-container.rf-large .rf-toggle-custom {\n border-radius: 1.75rem;\n width: 3.5rem;\n min-width: 3.5rem;\n height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-toggle-custom {\n border-radius: 2rem;\n width: 4rem;\n min-width: 4rem;\n height: 2rem;\n}\n\n.rf-toggle-custom:before {\n content: \"\";\n --tw-translate-x: 0px;\n width: 1rem;\n height: 1rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-radius: 50%;\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n position: absolute;\n top: .25rem;\n left: .25rem;\n}\n\n#retorik-container.rf-large .rf-toggle-custom:before {\n width: 1.25rem;\n height: 1.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-toggle-custom:before {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.rf-toggle-custom:checked:before {\n --tw-translate-x: 1.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large .rf-toggle-custom:checked:before {\n --tw-translate-x: 1.75rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large.rf-portrait .rf-toggle-custom:checked:before {\n --tw-translate-x: 2rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-select-custom {\n -webkit-appearance: none;\n appearance: none;\n border-width: 2px;\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: .3125rem;\n margin: 0;\n padding: 1rem;\n}\n\n.rf-select-custom:hover {\n cursor: pointer;\n}\n\n.rf-select-custom:focus-visible {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n}\n\n.rf-slider-custom {\n -webkit-appearance: none;\n -moz-appearance: none;\n outline-offset: 2px;\n border-radius: .5rem;\n outline: 2px solid #0000;\n width: 100%;\n height: .25rem;\n display: block;\n position: relative;\n}\n\n.rf-slider-custom::-webkit-slider-runnable-track {\n -webkit-appearance: none;\n}\n\n.rf-slider-custom::-moz-track {\n -moz-appearance: none;\n}\n\n.rf-slider-custom::-ms-track {\n appearance: none;\n}\n\n.rf-slider-custom::-webkit-slider-thumb {\n -webkit-appearance: none;\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-style: none;\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n margin-top: -.2rem;\n}\n\n.rf-slider-custom::-webkit-slider-thumb:hover {\n cursor: pointer;\n}\n\n.rf-slider-custom::-moz-range-thumb {\n -webkit-appearance: none;\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-style: none;\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n margin-top: -.2rem;\n}\n\n.rf-slider-custom::-moz-range-thumb:hover {\n cursor: pointer;\n}\n\n.rf-slider-custom::-ms-thumb {\n appearance: none;\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-style: none;\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n margin-top: -.2rem;\n}\n\n.rf-slider-custom::-ms-thumb:hover {\n cursor: pointer;\n}\n\n.rf-likert-custom {\n cursor: pointer;\n outline-offset: 2px;\n -webkit-text-stroke-width: 1px;\n -webkit-text-stroke-color: white;\n background-color: #0000;\n border-style: none;\n outline: 2px solid #0000;\n}\n\n.svgButtonMenu > svg * {\n fill: var(--fill);\n}\n\n.webchat__css-custom-properties {\n width: 100%;\n height: 100%;\n}\n\n.placeholder\\:rf-text-black::placeholder {\n color: var(--rf-color-black);\n}\n\n.placeholder\\:rf-opacity-100::placeholder {\n opacity: 1;\n}\n\n.hover\\:rf-cursor-pointer:hover {\n cursor: pointer;\n}\n\n.hover\\:rf-border-truewhite:hover {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n\n.hover\\:rf-bg-\\[\\#1999B1\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(25 153 177 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:rf-bg-formInputRadioCheckboxCheckedBackground:hover {\n background-color: var(--rf-color-formInputRadioCheckboxCheckedBackground);\n}\n\n.hover\\:rf-bg-transparent:hover {\n background-color: #0000;\n}\n\n.hover\\:rf-bg-truewhite:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:rf-text-\\[\\#1999B1\\]:hover {\n --tw-text-opacity: 1;\n color: rgb(25 153 177 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:rf-text-\\[\\#325981\\]:hover {\n --tw-text-opacity: 1;\n color: rgb(50 89 129 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:rf-text-formInputRadioCheckboxCheckedItem:hover {\n color: var(--rf-color-formInputRadioCheckboxCheckedItem);\n}\n\n.hover\\:rf-text-truewhite:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:rf-shadow-\\[inset_0_0_12px_\\#00000029\\]:hover {\n --tw-shadow: inset 0 0 12px #00000029;\n --tw-shadow-colored: inset 0 0 12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-col-span-full {\n grid-column: 1 / -1;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-col-start-1 {\n grid-column-start: 1;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-row-end-13 {\n grid-row-end: 13;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-w-5\\/6 {\n width: 83.3333%;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-w-9\\/10 {\n width: 90%;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-w-full {\n width: 100%;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-flex-col {\n flex-direction: column;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-items-center {\n align-items: center;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-overflow-x-auto {\n overflow-x: auto;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-border-r-0 {\n border-right-width: 0;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-absolute {\n position: absolute;\n}\n\n#retorik-container.rf-large .large\\:rf-top-8 {\n top: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-m-8 {\n margin: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-my-0 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-my-3 {\n margin-top: .75rem;\n margin-bottom: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mb-0 {\n margin-bottom: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-mb-4 {\n margin-bottom: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mb-6 {\n margin-bottom: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-ml-8 {\n margin-left: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-0 {\n margin-top: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-20 {\n margin-top: 5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-3 {\n margin-top: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-\\[20vh\\] {\n margin-top: 20vh;\n}\n\n#retorik-container.rf-large .large\\:rf-block {\n display: block;\n}\n\n#retorik-container.rf-large .large\\:rf-flex {\n display: flex;\n}\n\n#retorik-container.rf-large .large\\:rf-hidden {\n display: none;\n}\n\n#retorik-container.rf-large .large\\:rf-aspect-video {\n aspect-ratio: 16 / 9;\n}\n\n#retorik-container.rf-large .large\\:rf-h-10 {\n height: 2.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-16 {\n height: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-20 {\n height: 5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-3\\/5 {\n height: 60%;\n}\n\n#retorik-container.rf-large .large\\:rf-h-4 {\n height: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-5 {\n height: 1.25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-6 {\n height: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-8 {\n height: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-\\[1\\.3rem\\] {\n height: 1.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-\\[60vh\\] {\n height: 60vh;\n}\n\n#retorik-container.rf-large .large\\:rf-h-auto {\n height: auto;\n}\n\n#retorik-container.rf-large .large\\:rf-h-full {\n height: 100%;\n}\n\n#retorik-container.rf-large .large\\:rf-max-h-28 {\n max-height: 7rem;\n}\n\n#retorik-container.rf-large .large\\:rf-max-h-\\[2\\.3rem\\] {\n max-height: 2.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-min-h-\\[2\\.3rem\\] {\n min-height: 2.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-1\\/8 {\n width: 12.5%;\n}\n\n#retorik-container.rf-large .large\\:rf-w-14 {\n width: 3.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-16 {\n width: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-4 {\n width: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-5 {\n width: 1.25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-6 {\n width: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-8 {\n width: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-fit {\n width: fit-content;\n}\n\n#retorik-container.rf-large .large\\:rf-w-full {\n width: 100%;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-1\\/2 {\n min-width: 50%;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-1\\/8 {\n min-width: 12.5%;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-16 {\n min-width: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-8 {\n min-width: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-max-w-1\\/8 {\n max-width: 12.5%;\n}\n\n#retorik-container.rf-large .large\\:rf-max-w-\\[12rem\\] {\n max-width: 12rem;\n}\n\n#retorik-container.rf-large .large\\:rf-max-w-full {\n max-width: 100%;\n}\n\n#retorik-container.rf-large .large\\:rf-grid-cols-5 {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n}\n\n#retorik-container.rf-large .large\\:rf-flex-row {\n flex-direction: row;\n}\n\n#retorik-container.rf-large .large\\:rf-flex-col {\n flex-direction: column;\n}\n\n#retorik-container.rf-large .large\\:rf-items-baseline {\n align-items: baseline;\n}\n\n#retorik-container.rf-large .large\\:rf-justify-start {\n justify-content: flex-start;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-1 {\n gap: .25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-3 {\n gap: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-4 {\n gap: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-6 {\n gap: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-overflow-y-scroll {\n overflow-y: scroll;\n}\n\n#retorik-container.rf-large .large\\:rf-border-t-0 {\n border-top-width: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-bg-truewhite {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n#retorik-container.rf-large .large\\:rf-p-4 {\n padding: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-p-\\[25px\\] {\n padding: 25px;\n}\n\n#retorik-container.rf-large .large\\:rf-p-min1 {\n padding: .1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-0 {\n padding-left: 0;\n padding-right: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-px-16 {\n padding-left: 4rem;\n padding-right: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-5, #retorik-container.rf-large .large\\:rf-px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pb-16 {\n padding-bottom: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pl-4 {\n padding-left: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pr-4 {\n padding-right: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pt-16 {\n padding-top: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-text-5xl {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large .large\\:rf-text-6xl {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large .large\\:rf-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-text-basecustom {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-text-sm {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-uppercase {\n text-transform: uppercase;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-h-4 {\n height: 1rem;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-h-6 {\n height: 1.5rem;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-w-6 {\n width: 1.5rem;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-pt-1\\/5 {\n padding-top: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-absolute {\n position: absolute;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-left-4 {\n left: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-top-4 {\n top: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-col-start-1 {\n grid-column-start: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-col-start-2 {\n grid-column-start: 2;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-col-end-8 {\n grid-column-end: 8;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-row-start-7 {\n grid-row-start: 7;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-row-end-11 {\n grid-row-end: 11;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mt-4 {\n margin-top: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mt-\\[20vh\\] {\n margin-top: 20vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mt-\\[25vh\\] {\n margin-top: 25vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-block {\n display: block;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-hidden {\n display: none;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-1\\/2 {\n height: 50%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-14 {\n height: 3.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-24 {\n height: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-5 {\n height: 1.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-6 {\n height: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-\\[50vh\\] {\n height: 50vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-11\\/12 {\n max-height: 91.67%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-36 {\n max-height: 9rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-\\[18vh\\] {\n max-height: 18vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-\\[30vh\\] {\n max-height: 30vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-h-10 {\n min-height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-1\\/2 {\n width: 50%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-14 {\n width: 3.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-16 {\n width: 4rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-24 {\n width: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-3\\/5 {\n width: 60%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-6 {\n width: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-full {\n width: 100%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-w-14 {\n min-width: 3.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-w-24 {\n min-width: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-w-3\\/5 {\n min-width: 60%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-w-2\\/3 {\n max-width: 66.67%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-w-\\[45\\%\\] {\n max-width: 45%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-w-\\[60\\%\\] {\n max-width: 60%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-flex-row {\n flex-direction: row;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-flex-col {\n flex-direction: column;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-justify-center {\n justify-content: center;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-gap-4 {\n gap: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-gap-6 {\n gap: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-self-start {\n align-self: flex-start;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-border-t {\n border-top-width: 1px;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-border-t-menuBorder {\n --tw-border-opacity: 1;\n border-top-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-py-5 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pl-0 {\n padding-left: 0;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-48 {\n padding-top: 12rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-8 {\n padding-top: 2rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-\\[16\\.67\\%\\] {\n padding-top: 16.67%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-\\[20vh\\] {\n padding-top: 20vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-text-basecustomuppercase {\n font-size: 1rem;\n line-height: 1.1rem;\n}\n\n#retorik-container.rf-large.rf-tactile .large-tactile\\:rf-mt-0 {\n margin-top: 0;\n}\n\n#retorik-container.rf-large.rf-tactile .large-tactile\\:rf-flex {\n display: flex;\n}\n\n#retorik-container.rf-large.rf-tactile .large-tactile\\:rf-hidden {\n display: none;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-col-start-3 {\n grid-column-start: 3;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-col-start-4 {\n grid-column-start: 4;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:-rf-mt-4 {\n margin-top: -1rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-h-full {\n height: 100%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-w-\\[48\\%\\] {\n width: 48%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-w-\\[calc\\(80\\%-10rem\\)\\] {\n width: calc(80% - 10rem);\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-min-w-\\[48\\%\\] {\n min-width: 48%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-max-w-\\[calc\\(\\(80\\%-10rem\\)\\*0\\.75\\)\\] {\n max-width: calc(60% - 7.5rem);\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-items-start {\n align-items: flex-start;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-justify-start {\n justify-content: flex-start;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-justify-center {\n justify-content: center;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-self-end {\n align-self: flex-end;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-justify-self-start {\n justify-self: start;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-pb-2 {\n padding-bottom: .5rem;\n}\n\n#retorik-container.rf-mobile .mobile\\:rf-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n#retorik-container.rf-tablet .tablet\\:rf-w-28 {\n width: 7rem;\n}\n\n#retorik-container.rf-tablet .tablet\\:rf-pl-12 {\n padding-left: 3rem;\n}\n\n#retorik-container.rf-tablet .tablet\\:rf-pr-24 {\n padding-right: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-h-10 {\n height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-h-20 {\n height: 5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-min-h-20 {\n min-height: 5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-w-40 {\n width: 10rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-p-5 {\n padding: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-pl-32 {\n padding-left: 8rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-pr-56 {\n padding-right: 14rem;\n}\n\n.ltr\\:rf-left-0:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: 0;\n}\n\n.ltr\\:rf-left-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: .25rem;\n}\n\n.ltr\\:rf-left-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: 1rem;\n}\n\n.ltr\\:rf-right-0:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 0;\n}\n\n.ltr\\:rf-right-12:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 3rem;\n}\n\n.ltr\\:rf-right-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: .5rem;\n}\n\n.ltr\\:rf-right-3:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: .75rem;\n}\n\n.ltr\\:rf-right-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 1rem;\n}\n\n.ltr\\:rf-right-6:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 1.5rem;\n}\n\n.ltr\\:rf-right-9:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 2.25rem;\n}\n\n.ltr\\:rf-col-start-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n grid-column-start: 1;\n}\n\n.ltr\\:rf-ml-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: .25rem;\n}\n\n.ltr\\:rf-ml-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: .5rem;\n}\n\n.ltr\\:rf-ml-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 1rem;\n}\n\n.ltr\\:rf-ml-6:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 1.5rem;\n}\n\n.ltr\\:rf-mr-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: .25rem;\n}\n\n.ltr\\:rf-mr-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: .5rem;\n}\n\n.ltr\\:rf-mr-3:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: .75rem;\n}\n\n.ltr\\:rf-mr-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 1rem;\n}\n\n.ltr\\:rf-mr-5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 1.25rem;\n}\n\n.ltr\\:rf-flex-row:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n flex-direction: row;\n}\n\n.ltr\\:rf-items-start:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n align-items: flex-start;\n}\n\n.ltr\\:rf-justify-start:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n justify-content: flex-start;\n}\n\n.ltr\\:rf-self-end:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n align-self: flex-end;\n}\n\n.ltr\\:rf-rounded-l-lg:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n border-top-left-radius: .5rem;\n border-bottom-left-radius: .5rem;\n}\n\n.ltr\\:rf-rounded-tl-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n border-top-left-radius: 1rem;\n}\n\n.ltr\\:rf-rounded-tr-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n border-top-right-radius: 1rem;\n}\n\n.ltr\\:rf-pl-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: .25rem;\n}\n\n.ltr\\:rf-pl-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 1rem;\n}\n\n.ltr\\:rf-pl-6:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 1.5rem;\n}\n\n.ltr\\:rf-pr-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-right: .5rem;\n}\n\n.ltr\\:rf-pr-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-right: 1rem;\n}\n\n.ltr\\:rf-text-left:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n text-align: left;\n}\n\n.ltr\\:rf-text-right:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n text-align: right;\n}\n\n.ltr\\:rf-text-xs:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n font-size: .75rem;\n line-height: 1rem;\n}\n\n.ltr\\:rf-text-xsm:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n font-size: .6rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-left-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: 1rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-ml-0:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 0;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-ml-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 1rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-mr-3:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: .75rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-mr-30:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 7.5rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-pl-12:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:ltr\\:rf-right-9:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:ltr\\:rf-ml-1\\/5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:ltr\\:rf-mr-1\\/5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:ltr\\:rf-pl-0:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 0;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-ml-1\\/5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-mr-40:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 10rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:-rf-translate-x-1\\/4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n --tw-translate-x: -25%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-pl-1\\/5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-pl-\\[calc\\(50\\%-2\\.5rem\\)\\]:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: calc(50% - 2.5rem);\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-pr-40:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-right: 10rem;\n}\n\n.rtl\\:rf-left-0:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 0;\n}\n\n.rtl\\:rf-left-12:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 3rem;\n}\n\n.rtl\\:rf-left-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: .5rem;\n}\n\n.rtl\\:rf-left-3:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: .75rem;\n}\n\n.rtl\\:rf-left-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 1rem;\n}\n\n.rtl\\:rf-left-6:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 1.5rem;\n}\n\n.rtl\\:rf-left-9:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 2.25rem;\n}\n\n.rtl\\:rf-right-0:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: 0;\n}\n\n.rtl\\:rf-right-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: .25rem;\n}\n\n.rtl\\:rf-right-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: 1rem;\n}\n\n.rtl\\:rf-right-6:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: 1.5rem;\n}\n\n.rtl\\:rf-col-end-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n grid-column-end: 1;\n}\n\n.rtl\\:rf-ml-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: .25rem;\n}\n\n.rtl\\:rf-ml-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: .5rem;\n}\n\n.rtl\\:rf-ml-3:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: .75rem;\n}\n\n.rtl\\:rf-ml-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 1rem;\n}\n\n.rtl\\:rf-ml-5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 1.25rem;\n}\n\n.rtl\\:rf-mr-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: .25rem;\n}\n\n.rtl\\:rf-mr-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: .5rem;\n}\n\n.rtl\\:rf-mr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 1rem;\n}\n\n.rtl\\:rf-mr-6:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 1.5rem;\n}\n\n.rtl\\:rf-flex-row-reverse:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n flex-direction: row-reverse;\n}\n\n.rtl\\:rf-items-end:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n align-items: flex-end;\n}\n\n.rtl\\:rf-justify-end:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n justify-content: flex-end;\n}\n\n.rtl\\:rf-self-start:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n align-self: flex-start;\n}\n\n.rtl\\:rf-rounded-r-lg:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n border-top-right-radius: .5rem;\n border-bottom-right-radius: .5rem;\n}\n\n.rtl\\:rf-rounded-tl-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n border-top-left-radius: 1rem;\n}\n\n.rtl\\:rf-rounded-tr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n border-top-right-radius: 1rem;\n}\n\n.rtl\\:rf-pl-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-left: .5rem;\n}\n\n.rtl\\:rf-pl-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-left: 1rem;\n}\n\n.rtl\\:rf-pr-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: .25rem;\n}\n\n.rtl\\:rf-pr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: 1rem;\n}\n\n.rtl\\:rf-pr-6:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: 1.5rem;\n}\n\n.rtl\\:rf-text-left:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n text-align: left;\n}\n\n.rtl\\:rf-text-right:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n text-align: right;\n}\n\n.rtl\\:rf-text-arabic:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n font-size: 1.125rem;\n line-height: 1.15rem;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-right-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-ml-3:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-ml-30:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 7.5rem;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-mr-0:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 0;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-mr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rtl\\:rf-left-9:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rtl\\:rf-ml-1\\/5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rtl\\:rf-mr-1\\/5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rtl\\:rf-pr-0:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: 0;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-ml-40:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 10rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-mr-1\\/5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-translate-x-1\\/4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n --tw-translate-x: 25%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-pl-40:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-left: 10rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-pr-1\\/5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-pr-\\[calc\\(50\\%-2\\.5rem\\)\\]:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: calc(50% - 2.5rem);\n}\n";
4947
5001
 
4948
5002
 
4949
5003
  var $70dd93cce82a6912$exports = {};
@@ -4956,10 +5010,7 @@ const $184baaa1aacf568a$export$ad7b40b81d5409c = 'data:image/png;base64,iVBORw0K
4956
5010
  const $184baaa1aacf568a$export$1524746c49eeef2b = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAQAAAACach9AAACMUlEQVR4Ae3ShY7jQBAE0Aoz/f9/HTMzhg1zrdKUrJbdx+Kd2nD8VNudfsL/Th///dyQN2TH6f3y/BGpC379rV+S+qqetBOxImNQXL8JCAr2V4iMQXHGNJxeCfZXhSRBcQMfvkOWUdtfzlLgAENmZDcmo2TVmt8OSM2eXxBp3DjHSMFutqS7SbmemzBiR+xpKCNUIRkdkkYxhAkyGoBvyQFEJEefwSmmvBfJuJ6aKqKWnAkvGZOaZXTUgFqYULWNSHUckZuR1HIIimUExutRxwzOLROIG4vKmCKQt364mIlhSyzAf1m9lHZHJZrlAOMMztRRiKimp/rpdJDc9Awry5xTZCte7FHtuS8wJgeYGrex28xNTd086Dik7vUMscQOa8y4DoGtCCSkAKlNwpgNtphjrC6MIHUkR6YWxxs6Sc5xqn222mmCRFzIt8lEdKx+ikCtg91qS2WpwVfBelJCiQJwvzixfI9cxZQWgiSJelKnwBElKYtDOb2MFbhmUigbReQBV0Cg4+qMXSxXSyGUn4UbF8l+7qdSGnTC0XLCmahIgUHLhLOhpVCtw4CzYXvLQWQbJNmxoCsOKAxSgBJno75avolkRw8iIAFcsdc02e9iyCd8tHwmeSSoKTowIgvscSGZUOA7PuCN5b2BX9mQM7S0wYhMNU74zgsPBj3HU7wguAfnxxjFQGBE6pwN+GjME9zHY7zGp8wVxMShYX9NXvEWD3HbwJf4giO4CFIQxXScH1/TM+04kkBiAAAAAElFTkSuQmCC';
4957
5011
 
4958
5012
 
4959
- /**
4960
- * STORYBOOK : there is a conflict between parcel and webpack. Here we use bundle-text from parcel and it's not recognized in webpack, that is used in storybook.
4961
- * To prevent conflict, you need to comment the 3 imports unsign 'bundle-text' above, and the 3 'style' tags in the HTML below.
4962
- */ const $06e5942c9d4d6916$var$DefaultIcon = (0, ($parcel$interopDefault($dWhh5$leaflet))).icon({
5013
+ const $06e5942c9d4d6916$var$DefaultIcon = (0, ($parcel$interopDefault($dWhh5$leaflet))).icon({
4963
5014
  iconUrl: `${(0, $c48ed13ada25d174$export$e56d88b19b5c9fbf).mapArrival}`,
4964
5015
  shadowUrl: (0, $184baaa1aacf568a$export$1524746c49eeef2b),
4965
5016
  iconSize: [
@@ -4974,8 +5025,35 @@ const $184baaa1aacf568a$export$1524746c49eeef2b = 'data:image/png;base64,iVBORw0
4974
5025
  (0, ($parcel$interopDefault($dWhh5$leaflet))).Marker.prototype.options.icon = $06e5942c9d4d6916$var$DefaultIcon;
4975
5026
  const $06e5942c9d4d6916$var$ShadowRoot = ({ children: children })=>{
4976
5027
  const visibility = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.visibility);
5028
+ const customScripts = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.customScripts);
5029
+ const customCSS = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.customCSS);
5030
+ const [alreadyAppliedCustomScripts, setAlreadyAppliedCustomScripts] = (0, $dWhh5$react.useState)([]);
5031
+ const shadowRef = (0, $dWhh5$react.useRef)(null);
5032
+ (0, $dWhh5$react.useEffect)(()=>{
5033
+ if (shadowRef === null || shadowRef === void 0 ? void 0 : shadowRef.current) customScripts.forEach((customScript)=>{
5034
+ if (!alreadyAppliedCustomScripts.includes(customScript)) {
5035
+ var _shadowRef_current;
5036
+ // Add the URL of the script to the already processed ones to prevent duplicate injection
5037
+ setAlreadyAppliedCustomScripts((current)=>[
5038
+ ...current,
5039
+ customScript
5040
+ ]);
5041
+ // Create a script element and inject it in the shadowroot
5042
+ const scriptElement = document.createElement('script');
5043
+ scriptElement.type = 'text/javascript';
5044
+ scriptElement.src = customScript;
5045
+ scriptElement.onload = ()=>{
5046
+ console.log(`Retorik Framework > custom script loaded from ${customScript}`);
5047
+ };
5048
+ (_shadowRef_current = shadowRef.current) === null || _shadowRef_current === void 0 ? void 0 : _shadowRef_current.appendChild(scriptElement);
5049
+ }
5050
+ });
5051
+ }, [
5052
+ customScripts
5053
+ ]);
4977
5054
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$reactshadow))).div, {
4978
5055
  id: "retorik-shadow",
5056
+ ref: shadowRef,
4979
5057
  className: "rf-w-full rf-h-full",
4980
5058
  style: {
4981
5059
  position: 'relative',
@@ -4992,6 +5070,12 @@ const $06e5942c9d4d6916$var$ShadowRoot = ({ children: children })=>{
4992
5070
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("style", {
4993
5071
  type: "text/css",
4994
5072
  children: `${$70dd93cce82a6912$exports}`
5073
+ }),
5074
+ customCSS.map((css, key)=>{
5075
+ return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("link", {
5076
+ rel: "stylesheet",
5077
+ href: css
5078
+ }, key);
4995
5079
  })
4996
5080
  ]
4997
5081
  });
@@ -5186,7 +5270,7 @@ const $ba3150a69d33f468$var$processJson = (json, retorikProps, baseAddress)=>{
5186
5270
  else if (json.directLine_tokenEndpoint) tokenEndpoint = json.directLine_tokenEndpoint;
5187
5271
  else tokenEndpoint = `${baseAddress}${0, $0b4f07c0f09dbbcf$export$d9e38c0112bbdae6}`;
5188
5272
  // Prevent passive speech recognition if no name was given for the character.
5189
- // Used for retrocompatibility since v2.0.4
5273
+ // Used for retrocompatibility since v2.0.4
5190
5274
  if (!json.characterName && json.speechRecognitionOptions) json.speechRecognitionOptions.enableContinuousRecognitionOnAllDevices = false, json.speechRecognitionOptions.enableContinuousRecognitionOn = undefined;
5191
5275
  const props = {
5192
5276
  config: {
@@ -5268,7 +5352,9 @@ const $ba3150a69d33f468$var$processJson = (json, retorikProps, baseAddress)=>{
5268
5352
  useOldRemote: json.useOldRemote != null ? json.useOldRemote : true,
5269
5353
  // Temporary parameter, will be removed
5270
5354
  showTemporaryBanner: undefined,
5271
- preventVirtualKeyboard: undefined
5355
+ preventVirtualKeyboard: undefined,
5356
+ channelData: json.channelData,
5357
+ newsConfig: json.newsConfig
5272
5358
  },
5273
5359
  viewsConfig: {
5274
5360
  homeRoute: 'home',
@@ -5280,9 +5366,7 @@ const $ba3150a69d33f468$var$processJson = (json, retorikProps, baseAddress)=>{
5280
5366
  image: background,
5281
5367
  video: undefined,
5282
5368
  webcam: undefined,
5283
- neutral: undefined,
5284
- blur: undefined,
5285
- overlayOpacity: undefined
5369
+ neutral: undefined
5286
5370
  }
5287
5371
  },
5288
5372
  news: {
@@ -5294,9 +5378,7 @@ const $ba3150a69d33f468$var$processJson = (json, retorikProps, baseAddress)=>{
5294
5378
  image: newsBackground,
5295
5379
  video: undefined,
5296
5380
  webcam: undefined,
5297
- neutral: undefined,
5298
- blur: undefined,
5299
- overlayOpacity: undefined
5381
+ neutral: undefined
5300
5382
  }
5301
5383
  }
5302
5384
  }
@@ -5460,7 +5542,9 @@ const $ba3150a69d33f468$var$processJson = (json, retorikProps, baseAddress)=>{
5460
5542
  defaultCulture: json.defaultCulture,
5461
5543
  supportedCultures: json.supportedCultures,
5462
5544
  // Other data
5463
- disableHistory: json.disableHistory
5545
+ disableHistory: json.disableHistory,
5546
+ customScripts: json.customScripts,
5547
+ customCSS: json.customCSS
5464
5548
  };
5465
5549
  return props;
5466
5550
  }
@@ -5569,12 +5653,12 @@ const $7f86b3828f8979bc$var$TextBlock = ({ text: text, isTitle: isTitle, isSubti
5569
5653
  setStyle(styleToApply);
5570
5654
  }
5571
5655
  }, []);
5572
- return text ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
5656
+ return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
5573
5657
  className: `rf-w-full rf-text-cardFrameText ${style}`,
5574
5658
  dangerouslySetInnerHTML: {
5575
- __html: (0, $04321743da31c8db$export$d07f57595c356899)($7f86b3828f8979bc$var$md.render(text))
5659
+ __html: text ? (0, $04321743da31c8db$export$d07f57595c356899)($7f86b3828f8979bc$var$md.render(text)) : '\u00a0'
5576
5660
  }
5577
- }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {});
5661
+ });
5578
5662
  };
5579
5663
  var $7f86b3828f8979bc$export$2e2bcd8739ae039 = $7f86b3828f8979bc$var$TextBlock;
5580
5664
 
@@ -11141,13 +11225,6 @@ const $f30fe7aba51bf78e$var$Background = ({ config: config, videoLoop: videoLoop
11141
11225
  const [videoDimensions, setVideoDimensions] = (0, $dWhh5$react.useState)(dimensions);
11142
11226
  const [rotation, setRotation] = (0, $dWhh5$react.useState)('');
11143
11227
  const [webcamSizeStyle, setWebcamSizeStyle] = (0, $dWhh5$react.useState)({});
11144
- const blurValue = (0, $dWhh5$react.useMemo)(()=>{
11145
- return {
11146
- '--rf-blur-background': (config === null || config === void 0 ? void 0 : config.blur) !== undefined ? `${config.blur}px` : '0'
11147
- };
11148
- }, [
11149
- config === null || config === void 0 ? void 0 : config.blur
11150
- ]);
11151
11228
  (0, $dWhh5$react.useEffect)(()=>{
11152
11229
  if (config.style === 'webcam') {
11153
11230
  if (isWebcamAllowed) {
@@ -11237,7 +11314,6 @@ const $f30fe7aba51bf78e$var$Background = ({ config: config, videoLoop: videoLoop
11237
11314
  alt: "background image",
11238
11315
  className: "rf-col-span-full rf-row-span-full rf-w-full rf-h-full rf-object-cover rf-filter rf-blur-background",
11239
11316
  style: {
11240
- ...blurValue,
11241
11317
  ...isRTL ? {
11242
11318
  transform: 'scaleX(-1)'
11243
11319
  } : {}
@@ -11248,14 +11324,12 @@ const $f30fe7aba51bf78e$var$Background = ({ config: config, videoLoop: videoLoop
11248
11324
  loop: !!videoLoop,
11249
11325
  muted: !!videoMuted,
11250
11326
  onVideoEnded: onVideoEnded,
11251
- onVideoCanPlay: onVideoCanPlay,
11252
- style: blurValue
11327
+ onVideoCanPlay: onVideoCanPlay
11253
11328
  }),
11254
11329
  config.style === 'webcam' && isWebcamAllowed && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$reactwebcam))), {
11255
11330
  className: `rf-relative rf-col-span-full rf-row-span-full rf-overflow-hidden rf-max-w-none rf-w-screen rf-h-screen rf-filter rf-blur-background rf-border rf-self-center rf-justify-self-center rf-object-cover ${rotation}`,
11256
11331
  ...videoDimensions,
11257
11332
  style: {
11258
- ...blurValue,
11259
11333
  ...webcamSizeStyle
11260
11334
  },
11261
11335
  audio: false,
@@ -11655,6 +11729,7 @@ const $b3293ae5ea012219$var$SendTextBox = ({ className: className })=>{
11655
11729
  setMode((0, $71c613e2e831c34c$export$9484bbecc3c49a2e).vocal);
11656
11730
  };
11657
11731
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
11732
+ id: "retorik-send-textbox",
11658
11733
  className: `rf-relative rf-min-h-12 rf-px-4 rf-text-base rf-pt-3 rf-pb-3 rf-flex rf-items-center rf-border rf-border-textBoxBorder rf-rounded-8 rf-bg-truewhite rf-shadow-[inset_0_0_6px_#0000003B] ${className}`,
11659
11734
  children: [
11660
11735
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("textarea", {
@@ -13452,6 +13527,26 @@ var $18d4a37a7fa81be4$export$2e2bcd8739ae039 = $18d4a37a7fa81be4$var$MicrophoneA
13452
13527
 
13453
13528
 
13454
13529
  const $f49c2c2bc5cff629$var$springDuration = 1050;
13530
+ // Unicode Spaces found here : https://www.fileformat.info/info/unicode/category/Zs/list.htm
13531
+ const $f49c2c2bc5cff629$var$spacingCharacters = [
13532
+ '\u0020',
13533
+ '\u00A0',
13534
+ '\u1680',
13535
+ '\u2000',
13536
+ '\u2001',
13537
+ '\u2002',
13538
+ '\u2003',
13539
+ '\u2004',
13540
+ '\u2005',
13541
+ '\u2006',
13542
+ '\u2007',
13543
+ '\u2008',
13544
+ '\u2009',
13545
+ '\u200A',
13546
+ '\u202F',
13547
+ '\u205F',
13548
+ '\u3000'
13549
+ ];
13455
13550
  const $f49c2c2bc5cff629$var$VoiceInput = ({ className: className })=>{
13456
13551
  const isMobile = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.isMobile);
13457
13552
  const isLandscape = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.isLandscape);
@@ -13459,6 +13554,8 @@ const $f49c2c2bc5cff629$var$VoiceInput = ({ className: className })=>{
13459
13554
  const isWaitingForResponse = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.isWaitingForResponse);
13460
13555
  const [remainingLastRecognitionInterim, setRemainingLastRecognitionInterim] = (0, $dWhh5$react.useState)(null);
13461
13556
  const animationTimerRef = (0, $dWhh5$react.useRef)();
13557
+ const divRef = (0, $dWhh5$react.useRef)(null);
13558
+ const lastSpaceRef = (0, $dWhh5$react.useRef)(0);
13462
13559
  const [spring, api] = (0, $dWhh5$reactspringweb.useSpring)(()=>({
13463
13560
  from: {
13464
13561
  opacity: 1
@@ -13467,11 +13564,36 @@ const $f49c2c2bc5cff629$var$VoiceInput = ({ className: className })=>{
13467
13564
  (0, $dWhh5$react.useEffect)(()=>{
13468
13565
  return ()=>{
13469
13566
  (animationTimerRef === null || animationTimerRef === void 0 ? void 0 : animationTimerRef.current) && clearTimeout(animationTimerRef.current);
13567
+ lastSpaceRef.current = 0;
13470
13568
  };
13471
13569
  }, []);
13472
13570
  (0, $dWhh5$react.useEffect)(()=>{
13473
- if (lastRecognitionInterim) setRemainingLastRecognitionInterim(lastRecognitionInterim);
13474
- else if (remainingLastRecognitionInterim) {
13571
+ if (lastRecognitionInterim) {
13572
+ if (isLandscape && (divRef === null || divRef === void 0 ? void 0 : divRef.current)) {
13573
+ if (divRef.current.scrollHeight > divRef.current.clientHeight) {
13574
+ let lastSpace = 0;
13575
+ for(let i = lastRecognitionInterim.length - 1; i > 0; i--)if ($f49c2c2bc5cff629$var$spacingCharacters.includes(lastRecognitionInterim[i])) {
13576
+ switch(lastSpace){
13577
+ case 0:
13578
+ // First space found, let's wait for another one
13579
+ lastSpace = 1;
13580
+ break;
13581
+ case 1:
13582
+ // Second space found, the next one will be the good one
13583
+ lastSpace = 2;
13584
+ break;
13585
+ case 2:
13586
+ // Take this space as reference to display text
13587
+ lastSpace = 3;
13588
+ lastSpaceRef.current = i;
13589
+ break;
13590
+ }
13591
+ if (lastSpace === 3) break;
13592
+ }
13593
+ }
13594
+ setRemainingLastRecognitionInterim(`${lastSpaceRef.current ? '... ' : ''}${lastRecognitionInterim.substring(lastSpaceRef.current)}`);
13595
+ } else setRemainingLastRecognitionInterim(lastRecognitionInterim);
13596
+ } else if (remainingLastRecognitionInterim) {
13475
13597
  api.start({
13476
13598
  from: {
13477
13599
  opacity: 1
@@ -13489,6 +13611,7 @@ const $f49c2c2bc5cff629$var$VoiceInput = ({ className: className })=>{
13489
13611
  opacity: 1
13490
13612
  });
13491
13613
  setRemainingLastRecognitionInterim(null);
13614
+ lastSpaceRef.current = 0;
13492
13615
  }, $f49c2c2bc5cff629$var$springDuration);
13493
13616
  }
13494
13617
  }, [
@@ -13506,18 +13629,29 @@ const $f49c2c2bc5cff629$var$VoiceInput = ({ className: className })=>{
13506
13629
  ...spring
13507
13630
  },
13508
13631
  children: remainingLastRecognitionInterim
13509
- }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {}) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
13632
+ }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {}) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
13510
13633
  className: "rf-w-full rf-h-full rf-flex rf-flex-col rf-justify-end landscape-retorik:rf-justify-start rf-gap-2",
13511
- children: [
13512
- isLandscape && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $18d4a37a7fa81be4$export$2e2bcd8739ae039), {}),
13513
- remainingLastRecognitionInterim && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $dWhh5$reactspringweb.animated).div, {
13634
+ children: isLandscape ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
13635
+ children: [
13636
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $18d4a37a7fa81be4$export$2e2bcd8739ae039), {}),
13637
+ remainingLastRecognitionInterim && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $dWhh5$reactspringweb.animated).div, {
13638
+ ref: divRef,
13639
+ className: "rf-w-full rf-max-h-16 rf-pt-2 rf-subtitle-size-auto rf-font-bold rf-text-truewhite rf-text-center rf-text-shadow-black rf-overflow-hidden",
13640
+ style: {
13641
+ ...spring
13642
+ },
13643
+ children: remainingLastRecognitionInterim
13644
+ })
13645
+ ]
13646
+ }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
13647
+ children: remainingLastRecognitionInterim && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $dWhh5$reactspringweb.animated).div, {
13514
13648
  className: "rf-w-full rf-py-3 rf-subtitle-size-auto rf-font-bold rf-text-truewhite rf-text-center rf-text-shadow-black",
13515
13649
  style: {
13516
13650
  ...spring
13517
13651
  },
13518
13652
  children: remainingLastRecognitionInterim
13519
13653
  })
13520
- ]
13654
+ })
13521
13655
  })
13522
13656
  });
13523
13657
  };
@@ -13592,6 +13726,7 @@ const $85e61aba8b9a5198$var$Logo = ({ className: className })=>{
13592
13726
  var _configuration_logo;
13593
13727
  const configuration = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.configuration);
13594
13728
  return ((_configuration_logo = configuration.logo) === null || _configuration_logo === void 0 ? void 0 : _configuration_logo.src) ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
13729
+ id: "retorik-customer-logo",
13595
13730
  className: className || 'rf-absolute rf-m-4 large:rf-m-8 rf-top-0 ltr:rf-left-0 rtl:rf-right-0',
13596
13731
  children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("img", {
13597
13732
  src: configuration.logo.src,
@@ -19161,6 +19296,7 @@ const $f0e30ad3081b61d6$var$Grid = ({ title: title, history: history, qrCodeData
19161
19296
  ]);
19162
19297
  (0, $dWhh5$react.useEffect)(()=>{
19163
19298
  switch(nbCards){
19299
+ case 1:
19164
19300
  case 2:
19165
19301
  setClassname('rf-grid-cols-[repeat(2,30%)] rf-grid-rows-1');
19166
19302
  break;
@@ -25320,6 +25456,7 @@ var $01d9bb41fd368021$export$2e2bcd8739ae039 = $01d9bb41fd368021$var$Time;
25320
25456
 
25321
25457
 
25322
25458
 
25459
+
25323
25460
  const $d3f2491623efa760$var$useNews = ()=>{
25324
25461
  var _activity_attachments;
25325
25462
  const activities = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.botEventActivities);
@@ -25354,16 +25491,109 @@ var $d3f2491623efa760$export$2e2bcd8739ae039 = $d3f2491623efa760$var$useNews;
25354
25491
 
25355
25492
 
25356
25493
 
25494
+
25495
+
25496
+
25497
+
25498
+
25499
+ const $5ffb87b569a304f8$var$BannerTopMobile = ({ category: category, title: title, subtitle: subtitle, url: url })=>{
25500
+ const locale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.locale);
25501
+ return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
25502
+ children: [
25503
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25504
+ className: "rf-w-full rf-px-4 rf-py-2 rf-font-bold rf-bg-red-600 rf-whitespace-nowrap rf-text-size-auto",
25505
+ children: category === null || category === void 0 ? void 0 : category.toLocaleUpperCase(locale)
25506
+ }),
25507
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
25508
+ className: "rf-w-full rf-flex rf-flex-row",
25509
+ children: [
25510
+ url && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25511
+ className: "rf-aspect-video rf-w-1/4",
25512
+ style: {
25513
+ backgroundImage: `url(${url})`,
25514
+ backgroundSize: 'cover',
25515
+ backgroundRepeat: 'no-repeat',
25516
+ backgroundPosition: 'center'
25517
+ }
25518
+ }),
25519
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
25520
+ className: "rf-px-4 rf-py-1 rf-font-bold",
25521
+ children: [
25522
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25523
+ className: "rf-text-size-auto rf-line-clamp-1",
25524
+ children: title && title.toLocaleUpperCase(locale)
25525
+ }),
25526
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25527
+ className: "rf-text-basecustom rf-line-clamp-2",
25528
+ children: subtitle ? (0, $04321743da31c8db$export$d07f57595c356899)(subtitle) : '...'
25529
+ })
25530
+ ]
25531
+ })
25532
+ ]
25533
+ })
25534
+ ]
25535
+ });
25536
+ };
25537
+ var $5ffb87b569a304f8$export$2e2bcd8739ae039 = $5ffb87b569a304f8$var$BannerTopMobile;
25538
+
25539
+
25540
+
25541
+
25542
+
25543
+
25544
+ const $a94481e954312e6d$var$BannerTopLarge = ({ category: category, title: title, subtitle: subtitle })=>{
25545
+ const locale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.locale);
25546
+ return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
25547
+ children: [
25548
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
25549
+ className: "rf-w-full rf-flex rf-flex-row rf-justify-start rf-text-size-auto",
25550
+ children: [
25551
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25552
+ className: "rf-px-4 rf-py-3 rf-font-bold rf-bg-red-600 rf-whitespace-nowrap",
25553
+ children: category === null || category === void 0 ? void 0 : category.toLocaleUpperCase(locale)
25554
+ }),
25555
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25556
+ className: "rf-px-4 rf-mb-2 rf-mt-2 large:rf-mt-3 rf-font-bold rf-line-clamp-1",
25557
+ children: title === null || title === void 0 ? void 0 : title.toLocaleUpperCase(locale)
25558
+ })
25559
+ ]
25560
+ }),
25561
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25562
+ className: "rf-w-full rf-h-fit rf-flex rf-flex-row rf-justify-start",
25563
+ children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25564
+ className: "rf-px-4 rf-my-2 large:rf-my-3 rf-title-large-size-auto rf-line-clamp-2",
25565
+ children: subtitle ? (0, $04321743da31c8db$export$d07f57595c356899)(subtitle) : '...'
25566
+ })
25567
+ })
25568
+ ]
25569
+ });
25570
+ };
25571
+ var $a94481e954312e6d$export$2e2bcd8739ae039 = $a94481e954312e6d$var$BannerTopLarge;
25572
+
25573
+
25357
25574
  const $24072221965576dd$var$Banner = ({ news: news })=>{
25358
- var _news_image, _news_image1;
25575
+ var _news_image;
25359
25576
  const translation = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.currentTranslations);
25360
25577
  const locale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.locale);
25361
25578
  const isMobile = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.isMobile);
25362
25579
  const currentWidth = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.currentWidth);
25580
+ const newsConfig = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.configuration.newsConfig);
25363
25581
  const timerRef = (0, $dWhh5$react.useRef)(null);
25364
25582
  const [scrollDuration, setScrollDuration] = (0, $dWhh5$react.useState)(0);
25365
25583
  const [imageSize, setImageSize] = (0, $dWhh5$react.useState)(0);
25366
25584
  const elementRef = (0, $dWhh5$react.useRef)(null);
25585
+ const category = (0, $dWhh5$react.useMemo)(()=>{
25586
+ var _newsConfig_bannerTitleLocalized;
25587
+ if (news.category) return news.category;
25588
+ else if (newsConfig === null || newsConfig === void 0 ? void 0 : (_newsConfig_bannerTitleLocalized = newsConfig.bannerTitleLocalized) === null || _newsConfig_bannerTitleLocalized === void 0 ? void 0 : _newsConfig_bannerTitleLocalized[locale]) return newsConfig.bannerTitleLocalized[locale];
25589
+ else if (newsConfig === null || newsConfig === void 0 ? void 0 : newsConfig.bannerTitle) return newsConfig.bannerTitle;
25590
+ return translation.news.continuous;
25591
+ }, [
25592
+ news,
25593
+ newsConfig,
25594
+ locale,
25595
+ translation
25596
+ ]);
25367
25597
  /**
25368
25598
  * Set animation for text horizontal scrolling if necessary
25369
25599
  */ const updateDuration = ()=>{
@@ -25394,42 +25624,20 @@ const $24072221965576dd$var$Banner = ({ news: news })=>{
25394
25624
  elementRef
25395
25625
  ]);
25396
25626
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
25397
- className: "rf-h-fit rf-z-util rf-col-start-1 rf-col-span-full rf-row-start-9 large:rf-row-start-10 rf-row-span-3 large:rf-mb-6 rf-flex rf-flex-col rf-self-end rf-items-center rf-glass-background rf-text-white",
25627
+ className: "rf-h-fit rf-z-util rf-col-start-1 rf-col-span-full rf-row-start-10 rf-row-span-3 large:rf-mb-6 rf-flex rf-flex-col rf-self-end rf-items-center rf-glass-background rf-text-white",
25398
25628
  children: [
25399
- /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
25400
- className: "rf-w-full rf-flex rf-flex-row rf-justify-start rf-text-size-auto",
25401
- children: [
25402
- /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25403
- className: "rf-px-4 rf-pb-2 rf-pt-2 large:rf-pt-3 rf-font-bold rf-bg-red-600 rf-whitespace-nowrap",
25404
- ref: elementRef,
25405
- children: (news.category || translation.news.continuous).toLocaleUpperCase(locale)
25406
- }),
25407
- /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25408
- className: "rf-px-4 rf-mb-2 rf-mt-2 large:rf-mt-3 rf-font-bold rf-line-clamp-1",
25409
- children: news.title && news.title.toLocaleUpperCase(locale)
25410
- })
25411
- ]
25412
- }),
25413
- /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
25414
- className: "rf-w-full rf-h-fit rf-flex rf-flex-row rf-justify-start",
25415
- children: [
25416
- isMobile && ((_news_image = news.image) === null || _news_image === void 0 ? void 0 : _news_image.url) && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25417
- style: {
25418
- minWidth: `${imageSize}px`,
25419
- backgroundImage: `url(${(_news_image1 = news.image) === null || _news_image1 === void 0 ? void 0 : _news_image1.url})`,
25420
- backgroundSize: 'cover',
25421
- backgroundRepeat: 'no-repeat',
25422
- backgroundPosition: 'center'
25423
- }
25424
- }),
25425
- /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25426
- className: "rf-px-4 rf-my-2 large:rf-my-3 rf-title-large-size-auto rf-line-clamp-2",
25427
- children: news.subtitle ? (0, $04321743da31c8db$export$d07f57595c356899)(news.subtitle) : '...'
25428
- })
25429
- ]
25629
+ isMobile ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $5ffb87b569a304f8$export$2e2bcd8739ae039), {
25630
+ category: category,
25631
+ title: news.title,
25632
+ subtitle: news.subtitle,
25633
+ url: (_news_image = news.image) === null || _news_image === void 0 ? void 0 : _news_image.url
25634
+ }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $a94481e954312e6d$export$2e2bcd8739ae039), {
25635
+ category: category,
25636
+ title: news.title,
25637
+ subtitle: news.subtitle
25430
25638
  }),
25431
25639
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
25432
- className: "rf-w-full ltr:rf-pr-4 rtl:rf-pl-4 rf-py-4 rf-subtitle-size-auto rf-text-black rf-bg-white rf-overflow-clip",
25640
+ className: "rf-w-full ltr:rf-pr-4 rtl:rf-pl-4 rf-py-2 large:rf-py-4 rf-subtitle-size-auto rf-text-black rf-bg-white rf-overflow-clip",
25433
25641
  style: {
25434
25642
  paddingLeft: currentWidth
25435
25643
  },
@@ -25457,6 +25665,7 @@ const $d399eaf5da71d3d6$var$News = ({ intervalInSeconds: intervalInSeconds = 3,
25457
25665
  const route = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.route);
25458
25666
  const isMobile = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.isMobile);
25459
25667
  const retorikNewsEnded = (0, $2793f2455cec0982$export$77e4cc5334565f28)((state)=>state.retorikNewsEnded);
25668
+ const newsConfig = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.configuration.newsConfig);
25460
25669
  const { setCurrentNewsActivity: setCurrentNewsActivity, setRetorikNewsEnded: setRetorikNewsEnded } = (0, $2793f2455cec0982$export$77e4cc5334565f28)((state)=>state.actions);
25461
25670
  const sendEvent = (0, $328a7f03b0982320$export$adc771f45cf9b273)((state)=>state.actions.sendEvent);
25462
25671
  const news = (0, $dWhh5$react.useMemo)(()=>{
@@ -25477,9 +25686,11 @@ const $d399eaf5da71d3d6$var$News = ({ intervalInSeconds: intervalInSeconds = 3,
25477
25686
  (0, $dWhh5$react.useEffect)(()=>{
25478
25687
  const currentNew = news[current];
25479
25688
  if (currentNew) {
25689
+ const textTitle = (newsConfig === null || newsConfig === void 0 ? void 0 : newsConfig.removeTitleFromTextToSpeak) ? '' : `${currentNew.title}, <break/> `;
25690
+ const textSubtitle = (newsConfig === null || newsConfig === void 0 ? void 0 : newsConfig.removeSubtitleFromTextToSpeak) ? '' : `${currentNew.subtitle}: <break/> `;
25480
25691
  const tempActivity = {
25481
25692
  ...activity,
25482
- speak: `${currentNew.title}, <break/> ${currentNew.subtitle}: <break/> ${currentNew.text}`
25693
+ speak: `${textTitle}${textSubtitle}${currentNew.text}`
25483
25694
  };
25484
25695
  setCurrentNewsActivity(tempActivity);
25485
25696
  } else setCurrentNewsActivity(undefined);
@@ -25650,8 +25861,7 @@ const $9b9bf2fb80ceb1cd$var$NewsView = ({ hideMenu: hideMenu, isRetorikNews: isR
25650
25861
  ...configurations.views.news,
25651
25862
  background: {
25652
25863
  video: videoUrl,
25653
- style: 'video',
25654
- blur: 0
25864
+ style: 'video'
25655
25865
  }
25656
25866
  });
25657
25867
  };
@@ -26049,14 +26259,89 @@ var $9242b50f1c1199a7$export$2e2bcd8739ae039 = $9242b50f1c1199a7$var$Container;
26049
26259
 
26050
26260
 
26051
26261
 
26262
+ const $f2ae26d736ec24dc$export$a2ce4fdd6972d6a7 = async (region, key)=>{
26263
+ const tokenRes = await fetch(`https://${region}.api.cognitive.microsoft.com/sts/v1.0/issueToken`, {
26264
+ method: 'POST',
26265
+ headers: {
26266
+ 'Ocp-Apim-Subscription-Key': key
26267
+ }
26268
+ }).then((value)=>{
26269
+ return value.text();
26270
+ }).catch((error)=>{
26271
+ console.log('Error : ', error);
26272
+ return undefined;
26273
+ });
26274
+ return tokenRes;
26275
+ };
26052
26276
 
26053
26277
 
26054
-
26055
-
26056
-
26057
-
26058
-
26059
- const $d441ea54333b2073$var$buildSSML = (activity, locale, speechMarkdownParser, sayAsWords)=>{
26278
+ const $5679d80e89b3df01$export$4bf371fc4fa74a28 = (voices, locale, customVoice, agentData)=>{
26279
+ let voice = null;
26280
+ // Check if a custom voice is defined in the props
26281
+ if (customVoice) {
26282
+ if (customVoice.voice) {
26283
+ // Search voice with its full name (ex: AriaNeural, GuyNeural)
26284
+ const neuralVoice = new RegExp(customVoice.voice, 'iu');
26285
+ voice = voices.find(({ name: name })=>neuralVoice.test(name) || name === customVoice.voice);
26286
+ } else if (customVoice.gender) // Search voice depending on given gender and locale
26287
+ voice = voices.find(({ gender: gender, lang: lang })=>{
26288
+ var _customVoice_gender;
26289
+ return gender.toLowerCase() === (customVoice === null || customVoice === void 0 ? void 0 : (_customVoice_gender = customVoice.gender) === null || _customVoice_gender === void 0 ? void 0 : _customVoice_gender.toLowerCase()) && lang === locale;
26290
+ });
26291
+ }
26292
+ // Get voice depending on locale and gender
26293
+ if (!voice) voice = voices.find(({ gender: gender, lang: lang })=>{
26294
+ var _agentData_gender;
26295
+ return gender.toLowerCase() === ((agentData === null || agentData === void 0 ? void 0 : (_agentData_gender = agentData.gender) === null || _agentData_gender === void 0 ? void 0 : _agentData_gender.toLowerCase()) || 'female') && lang === locale;
26296
+ });
26297
+ // No voice found, fall back to US default voices : female => Aria / male => Guy
26298
+ if (!voice) {
26299
+ var _agentData_gender;
26300
+ const genderedVoice = (agentData === null || agentData === void 0 ? void 0 : (_agentData_gender = agentData.gender) === null || _agentData_gender === void 0 ? void 0 : _agentData_gender.toLowerCase()) === 'female' ? 'AriaNeural' : 'GuyNeural';
26301
+ const neuralVoice = new RegExp(genderedVoice, 'iu');
26302
+ voice = voices.find(({ name: name })=>neuralVoice.test(name));
26303
+ }
26304
+ return voice;
26305
+ };
26306
+
26307
+
26308
+
26309
+
26310
+
26311
+
26312
+
26313
+
26314
+
26315
+
26316
+
26317
+
26318
+ /* Return codes:
26319
+ 0 => do nothing
26320
+ 1 => add to queue
26321
+ 2 => stop current activity + change to the one tested
26322
+ */ const $549323f244f4782c$var$checkLastbotActivity = (lastbotActivity, currentPlaying, currentReplyToId, queuedActivities, endedActivities)=>{
26323
+ // Check if the activity is the one currently being played
26324
+ if (lastbotActivity.id === currentPlaying.id) return 0;
26325
+ // Check if the activity has already been ended
26326
+ if (endedActivities.includes(lastbotActivity.id)) return 0;
26327
+ // Check if the activity has the same replyToId than the one currently being played
26328
+ if (lastbotActivity.replyToId === currentReplyToId) {
26329
+ // Check if the activity is already in the queue
26330
+ let count = 0;
26331
+ if (queuedActivities.length > 0) queuedActivities.forEach((activity)=>{
26332
+ if (activity.id === lastbotActivity.id) count++;
26333
+ });
26334
+ if (count === 0) return 1;
26335
+ else return 0;
26336
+ } else return 2;
26337
+ };
26338
+ var $549323f244f4782c$export$2e2bcd8739ae039 = $549323f244f4782c$var$checkLastbotActivity;
26339
+
26340
+
26341
+
26342
+
26343
+
26344
+ const $d441ea54333b2073$var$buildSSML = (activity, locale, speechMarkdownParser, sayAsWords)=>{
26060
26345
  let speech = activity.speak || activity.text;
26061
26346
  // Replace character not recognized in Microsoft TTS
26062
26347
  speech = speech.replaceAll("\u2019", "'");
@@ -26095,72 +26380,27 @@ function $d441ea54333b2073$export$2e2bcd8739ae039({ activity: activity, voice: v
26095
26380
  }
26096
26381
 
26097
26382
 
26098
- /* Return codes:
26099
- 0 => do nothing
26100
- 1 => add to queue
26101
- 2 => stop current activity + change to the one tested
26102
- */ const $549323f244f4782c$var$checkLastbotActivity = (lastbotActivity, currentPlaying, currentReplyToId, queuedActivities, endedActivities)=>{
26103
- // Check if the activity is the one currently being played
26104
- if (lastbotActivity.id === currentPlaying.id) return 0;
26105
- // Check if the activity has already been ended
26106
- if (endedActivities.includes(lastbotActivity.id)) return 0;
26107
- // Check if the activity has the same replyToId than the one currently being played
26108
- if (lastbotActivity.replyToId === currentReplyToId) {
26109
- // Check if the activity is already in the queue
26110
- let count = 0;
26111
- if (queuedActivities.length > 0) queuedActivities.forEach((activity)=>{
26112
- if (activity.id === lastbotActivity.id) count++;
26113
- });
26114
- if (count === 0) return 1;
26115
- else return 0;
26116
- } else return 2;
26117
- };
26118
- var $549323f244f4782c$export$2e2bcd8739ae039 = $549323f244f4782c$var$checkLastbotActivity;
26119
-
26120
-
26121
- const $f2ae26d736ec24dc$export$a2ce4fdd6972d6a7 = async (region, key)=>{
26122
- const tokenRes = await fetch(`https://${region}.api.cognitive.microsoft.com/sts/v1.0/issueToken`, {
26123
- method: 'POST',
26124
- headers: {
26125
- 'Ocp-Apim-Subscription-Key': key
26126
- }
26127
- }).then((value)=>{
26128
- return value.text();
26129
- }).catch((error)=>{
26130
- console.log('Error : ', error);
26131
- return undefined;
26132
- });
26133
- return tokenRes;
26134
- };
26135
-
26136
-
26137
- const $5679d80e89b3df01$export$4bf371fc4fa74a28 = (voices, locale, customVoice, agentData)=>{
26138
- let voice = null;
26139
- // Check if a custom voice is defined in the props
26140
- if (customVoice) {
26141
- if (customVoice.voice) {
26142
- // Search voice with its full name (ex: AriaNeural, GuyNeural)
26143
- const neuralVoice = new RegExp(customVoice.voice, 'iu');
26144
- voice = voices.find(({ name: name })=>neuralVoice.test(name) || name === customVoice.voice);
26145
- } else if (customVoice.gender) // Search voice depending on given gender and locale
26146
- voice = voices.find(({ gender: gender, lang: lang })=>{
26147
- var _customVoice_gender;
26148
- return gender.toLowerCase() === (customVoice === null || customVoice === void 0 ? void 0 : (_customVoice_gender = customVoice.gender) === null || _customVoice_gender === void 0 ? void 0 : _customVoice_gender.toLowerCase()) && lang === locale;
26149
- });
26383
+ /**
26384
+ * Check if there are some replacement codes for this language, to improve speech synthesis, and then create the utterance
26385
+ * @param {CreateUtteranceParams} params - data needed to create an utterance
26386
+ * @param {SayAs} sayAs - string that should be replaced by their ipa codes
26387
+ * @returns {SpeechSynthesisUtterance}
26388
+ */ const $285c8810199513ef$export$f969af62bba9a48b = (params, sayAs)=>{
26389
+ let sayAsWords = [];
26390
+ if (sayAs) {
26391
+ var _sayAs_common, _sayAs_localized_params_locale;
26392
+ ((_sayAs_common = sayAs.common) === null || _sayAs_common === void 0 ? void 0 : _sayAs_common.length) && (sayAsWords = [
26393
+ ...sayAs.common
26394
+ ]);
26395
+ sayAs.localized && ((_sayAs_localized_params_locale = sayAs.localized[params.locale]) === null || _sayAs_localized_params_locale === void 0 ? void 0 : _sayAs_localized_params_locale.length) && (sayAsWords = [
26396
+ ...sayAsWords,
26397
+ ...sayAs.localized[params.locale]
26398
+ ]);
26150
26399
  }
26151
- // Get voice depending on locale and gender
26152
- if (!voice) voice = voices.find(({ gender: gender, lang: lang })=>{
26153
- var _agentData_gender;
26154
- return gender.toLowerCase() === ((agentData === null || agentData === void 0 ? void 0 : (_agentData_gender = agentData.gender) === null || _agentData_gender === void 0 ? void 0 : _agentData_gender.toLowerCase()) || 'female') && lang === locale;
26400
+ return (0, $d441ea54333b2073$export$2e2bcd8739ae039)({
26401
+ ...params,
26402
+ sayAsWords: sayAsWords
26155
26403
  });
26156
- // No voice found, fall back to US default voices : female => Aria / male => Guy
26157
- if (!voice) {
26158
- var _agentData_gender;
26159
- const genderedVoice = (agentData === null || agentData === void 0 ? void 0 : (_agentData_gender = agentData.gender) === null || _agentData_gender === void 0 ? void 0 : _agentData_gender.toLowerCase()) === 'female' ? 'AriaNeural' : 'GuyNeural';
26160
- const neuralVoice = new RegExp(genderedVoice, 'iu');
26161
- voice = voices.find(({ name: name })=>neuralVoice.test(name));
26162
- }
26163
- return voice;
26164
26404
  };
26165
26405
 
26166
26406
 
@@ -26941,9 +27181,8 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
26941
27181
  var $d31b268c3b702355$export$2e2bcd8739ae039 = $d31b268c3b702355$var$RetorikSpeech;
26942
27182
 
26943
27183
 
26944
- const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews })=>{
27184
+ const $ad561f5c61e38c20$var$SynthesisManager = ({ ponyfill: ponyfill, isRetorikNews: isRetorikNews })=>{
26945
27185
  const cancel = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.cancel);
26946
- const cancelRef = (0, $dWhh5$react.useRef)(false);
26947
27186
  const streamingReplyToId = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.streamingReplyToId);
26948
27187
  const streamingQueue = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.streamingQueue);
26949
27188
  const currentPlaying = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.currentPlaying);
@@ -26951,13 +27190,12 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
26951
27190
  const endedActivities = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.endedActivities);
26952
27191
  const voice = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.voice);
26953
27192
  const customVoice = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.customVoice);
26954
- const ponyfillCredentials = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.ponyfillCredentials);
26955
27193
  const activeRecognitionState = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.activeRecognitionState);
26956
27194
  const externalTextToSpeech = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.externalTextToSpeech);
26957
27195
  const isMicrophoneAllowed = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.isMicrophoneAllowed);
27196
+ const mode = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.mode);
26958
27197
  const route = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.route);
26959
27198
  const locale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.locale);
26960
- const mode = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.mode);
26961
27199
  const agentData = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.agentData);
26962
27200
  const appAvailable = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.appAvailable);
26963
27201
  const preventExpectedInputHint = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.configuration.preventExpectedInputHint);
@@ -26966,154 +27204,75 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
26966
27204
  const lastBotActivity = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.lastBotMessageActivity);
26967
27205
  const checkReplacementLocale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.actions.checkReplacementLocale);
26968
27206
  const setRetorikNewsEnded = (0, $2793f2455cec0982$export$77e4cc5334565f28)((state)=>state.actions.setRetorikNewsEnded);
26969
- const isSpeaking = (0, $dWhh5$react.useRef)(false);
26970
- const { setVoice: setVoice, cancelCurrentUtterance: cancelCurrentUtterance, resetCancelCurrentUtterance: resetCancelCurrentUtterance, setSpeaking: setSpeaking, setCurrentPlaying: setCurrentPlaying, setCurrentReplyToId: setCurrentReplyToId, setEndedActivities: setEndedActivities, setBoundaryData: setBoundaryData, removeFirstFromStreamingQueue: removeFirstFromStreamingQueue, setCurrentStreaming: setCurrentStreaming, killCurrentStreaming: killCurrentStreaming, askPermission: askPermission, toggleMicrophone: toggleMicrophone } = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.actions);
27207
+ const { resetCancelCurrentUtterance: resetCancelCurrentUtterance, setSpeaking: setSpeaking, setCurrentPlaying: setCurrentPlaying, setCurrentReplyToId: setCurrentReplyToId, setEndedActivities: setEndedActivities, setBoundaryData: setBoundaryData, removeFirstFromStreamingQueue: removeFirstFromStreamingQueue, setCurrentStreaming: setCurrentStreaming, killCurrentStreaming: killCurrentStreaming, askPermission: askPermission, toggleMicrophone: toggleMicrophone } = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.actions);
26971
27208
  const addEndedActivity = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.actions.addEndedActivity);
26972
27209
  const dispatchMarkActivity = (0, $328a7f03b0982320$export$adc771f45cf9b273)((state)=>state.actions.dispatchMarkActivity);
26973
27210
  const [utterance, setUtterance] = (0, $dWhh5$react.useState)(null);
26974
27211
  const [nextUtterance, setNextUtterance] = (0, $dWhh5$react.useState)(null);
26975
- const [utteranceEnded, setUtteranceEnded] = (0, $dWhh5$react.useState)(false);
27212
+ const cancelRef = (0, $dWhh5$react.useRef)(false);
27213
+ const isSpeaking = (0, $dWhh5$react.useRef)(false);
27214
+ const isNewsViewRef = (0, $dWhh5$react.useRef)(!!isRetorikNews);
27215
+ const lastListTextPlayedRef = (0, $dWhh5$react.useRef)('');
26976
27216
  const queuedActivitiesRef = (0, $dWhh5$react.useRef)([]);
26977
27217
  const currentActivityRef = (0, $dWhh5$react.useRef)(null);
26978
27218
  const currentPlayingRef = (0, $dWhh5$react.useRef)(null);
26979
- const timerRef = (0, $dWhh5$react.useRef)(null);
26980
- const [isNewsView, setIsNewsView] = (0, $dWhh5$react.useState)(!!isRetorikNews);
26981
- const [ponyfill, setPonyfill] = (0, $dWhh5$react.useState)(undefined);
26982
- const refreshTimerRef = (0, $dWhh5$react.useRef)(null);
26983
- const [lastListTextPlayed, setLastListTextPlayed] = (0, $dWhh5$react.useState)('');
26984
27219
  const tempCurrentStreamingRef = (0, $dWhh5$react.useRef)(null);
26985
27220
  const streamingRelatedMessageRef = (0, $dWhh5$react.useRef)(null);
26986
27221
  /**
26987
- * Async function to retrieve a new token and assign it to the speechConfig inside ponyfill.speechSynthesis
26988
- * @param region string
26989
- * @param key string
26990
- */ const refreshTokenInNineMinutes = async (region, key)=>{
26991
- // A token is valid during 10 minutes, let's refresh it after 9 minutes
26992
- refreshTimerRef.current = setTimeout(async ()=>{
26993
- var _ponyfill_speechSynthesis;
26994
- const token = await (0, $f2ae26d736ec24dc$export$a2ce4fdd6972d6a7)(region, key);
26995
- if (token && (ponyfill === null || ponyfill === void 0 ? void 0 : (_ponyfill_speechSynthesis = ponyfill.speechSynthesis) === null || _ponyfill_speechSynthesis === void 0 ? void 0 : _ponyfill_speechSynthesis.speechConfig)) {
26996
- ponyfill.speechSynthesis.speechConfig.authorizationToken = token;
26997
- refreshTokenInNineMinutes(region, key);
26998
- }
26999
- }, 540000) // 9 minutes
27000
- ;
27001
- };
27002
- const fetchTokenAndCreatePonyfill = async (key, region)=>{
27003
- const token = await (0, $f2ae26d736ec24dc$export$a2ce4fdd6972d6a7)(region, key);
27004
- if (token) setPonyfill((0, $dWhh5$daviaiwebspeechcognitiveservicesdavi.createSpeechSynthesisPonyfill)({
27005
- credentials: {
27006
- region: ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.region,
27007
- authorizationToken: token
27008
- }
27009
- }));
27010
- };
27011
- /**
27012
- * Launch token refresh after ponyfill creation if subscription key and region are given
27013
- */ (0, $dWhh5$react.useEffect)(()=>{
27014
- ponyfill && (ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.subscriptionKey) && (ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.region) && refreshTokenInNineMinutes(ponyfillCredentials.region, ponyfillCredentials.subscriptionKey);
27015
- }, [
27016
- ponyfill
27017
- ]);
27018
- (0, $dWhh5$react.useEffect)(()=>{
27019
- if ((ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.authorizationToken) && (ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.region)) {
27020
- const data = {
27021
- credentials: ponyfillCredentials
27022
- };
27023
- setPonyfill((0, $dWhh5$daviaiwebspeechcognitiveservicesdavi.createSpeechSynthesisPonyfill)(data));
27024
- } else if ((ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.subscriptionKey) && (ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.region)) fetchTokenAndCreatePonyfill(ponyfillCredentials.subscriptionKey, ponyfillCredentials.region);
27025
- }, [
27026
- ponyfillCredentials
27027
- ]);
27028
- const onVoicesChanged = ()=>{
27029
- const voices = ponyfill.speechSynthesis.getVoices();
27030
- if (voices && Array.isArray(voices) && voices.length > 0) setVoice((0, $5679d80e89b3df01$export$4bf371fc4fa74a28)(ponyfill.speechSynthesis.getVoices(), locale, customVoice, agentData));
27031
- };
27032
- /**
27033
27222
  * Check activity locale in case of voice change during the speech, to keep the language defined in activity
27034
27223
  * instead of switching languages between answers that are written in the same language
27035
- * @param activityLocale : string
27036
- * @returns SpeechSynthesisVoice | null
27224
+ * @param {string} activityLocale
27225
+ * @returns {SpeechSynthesisVoice | null}
27037
27226
  */ const getVoiceAfterCheckingActivityLocale = (activityLocale)=>{
27038
27227
  return activityLocale === locale ? voice : (0, $5679d80e89b3df01$export$4bf371fc4fa74a28)(ponyfill.speechSynthesis.getVoices(), activityLocale, customVoice, agentData);
27039
27228
  };
27040
- (0, $dWhh5$react.useEffect)(()=>{
27041
- if (ponyfill) {
27042
- const voices = ponyfill.speechSynthesis.getVoices();
27043
- if (voices && Array.isArray(voices) && voices.length > 0) setVoice((0, $5679d80e89b3df01$export$4bf371fc4fa74a28)(ponyfill.speechSynthesis.getVoices(), locale, customVoice, agentData));
27044
- else ponyfill.speechSynthesis.onvoiceschanged = onVoicesChanged;
27045
- }
27046
- }, [
27047
- ponyfill,
27048
- customVoice,
27049
- agentData,
27050
- locale
27051
- ]);
27052
27229
  /**
27053
- * On call (used with the 'cancelSpeech' event is fired) :
27054
- * - set speechCancelStore's cancel state to false
27055
- */ const cancelSpeech = ()=>{
27056
- !isNewsView && cancelCurrentUtterance();
27057
- };
27058
- const checkSayAsWordsAndCreateUtterance = (params)=>{
27059
- let sayAsWords = [];
27060
- if (speechSynthesisOptions === null || speechSynthesisOptions === void 0 ? void 0 : speechSynthesisOptions.sayAs) {
27061
- var _speechSynthesisOptions_sayAs_common, _speechSynthesisOptions_sayAs, _speechSynthesisOptions_sayAs1, _speechSynthesisOptions_sayAs_localized_locale;
27062
- (speechSynthesisOptions === null || speechSynthesisOptions === void 0 ? void 0 : (_speechSynthesisOptions_sayAs = speechSynthesisOptions.sayAs) === null || _speechSynthesisOptions_sayAs === void 0 ? void 0 : (_speechSynthesisOptions_sayAs_common = _speechSynthesisOptions_sayAs.common) === null || _speechSynthesisOptions_sayAs_common === void 0 ? void 0 : _speechSynthesisOptions_sayAs_common.length) && (sayAsWords = [
27063
- ...speechSynthesisOptions.sayAs.common
27064
- ]);
27065
- (speechSynthesisOptions === null || speechSynthesisOptions === void 0 ? void 0 : (_speechSynthesisOptions_sayAs1 = speechSynthesisOptions.sayAs) === null || _speechSynthesisOptions_sayAs1 === void 0 ? void 0 : _speechSynthesisOptions_sayAs1.localized) && ((_speechSynthesisOptions_sayAs_localized_locale = speechSynthesisOptions.sayAs.localized[locale]) === null || _speechSynthesisOptions_sayAs_localized_locale === void 0 ? void 0 : _speechSynthesisOptions_sayAs_localized_locale.length) && (sayAsWords = [
27066
- ...sayAsWords,
27067
- ...speechSynthesisOptions.sayAs.localized[locale]
27068
- ]);
27069
- }
27070
- return (0, $d441ea54333b2073$export$2e2bcd8739ae039)({
27071
- ...params,
27072
- sayAsWords: sayAsWords
27073
- });
27074
- };
27075
- const checkActivityAndCreateUtterance = (params)=>{
27230
+ * Check if the activity is a list one, to prevent text re-reading on state update
27231
+ * @param {CreateUtteranceParams} params
27232
+ * @returns {SpeechSynthesisUtterance}
27233
+ */ const checkActivityAndCreateUtterance = (params)=>{
27076
27234
  if (params.activity.attachmentLayout && params.activity.attachmentLayout.toLowerCase() === 'davilist') {
27077
27235
  const textToSpeak = params.activity.speak || params.activity.text;
27078
27236
  if (textToSpeak) {
27079
- if (textToSpeak === lastListTextPlayed) return checkSayAsWordsAndCreateUtterance({
27237
+ if (textToSpeak === lastListTextPlayedRef.current) return (0, $285c8810199513ef$export$f969af62bba9a48b)({
27080
27238
  ...params,
27081
27239
  voice: null
27082
- });
27083
- else setLastListTextPlayed(textToSpeak);
27240
+ }, speechSynthesisOptions === null || speechSynthesisOptions === void 0 ? void 0 : speechSynthesisOptions.sayAs);
27241
+ else lastListTextPlayedRef.current = textToSpeak;
27084
27242
  }
27085
27243
  }
27086
- return checkSayAsWordsAndCreateUtterance({
27087
- ...params
27088
- });
27244
+ return (0, $285c8810199513ef$export$f969af62bba9a48b)(params, speechSynthesisOptions === null || speechSynthesisOptions === void 0 ? void 0 : speechSynthesisOptions.sayAs);
27089
27245
  };
27090
- /**
27091
- * On component mount :
27092
- * - attach event listener to 'cancelSpeech' event
27093
- * On component unmount :
27094
- * - reset the timer
27095
- * - detach the event listener
27096
- */ (0, $dWhh5$react.useEffect)(()=>{
27097
- // Event called from the outside to cancel speech
27098
- document.addEventListener('cancelSpeech', cancelSpeech);
27099
- return ()=>{
27100
- timerRef && clearTimeout(timerRef.current);
27101
- refreshTimerRef.current && clearTimeout(refreshTimerRef.current);
27102
- document.removeEventListener('cancelSpeech', cancelSpeech);
27246
+ const resetData = ()=>{
27247
+ queuedActivitiesRef.current = [];
27248
+ tempCurrentStreamingRef.current = null;
27249
+ streamingRelatedMessageRef.current = null;
27250
+ currentPlayingRef.current = null;
27251
+ isSpeaking.current = false;
27252
+ setUtterance(null);
27253
+ setNextUtterance(null);
27254
+ resetCancelCurrentUtterance();
27255
+ };
27256
+ const checkReplacementLocaleAndGetUtterance = (activity, checkReplacement = true, setCurrent = true)=>{
27257
+ setCurrent && (currentActivityRef.current = activity);
27258
+ const replacementLocale = checkReplacement ? checkReplacementLocale(activity.locale || locale) : locale;
27259
+ const params = {
27260
+ activity: activity,
27261
+ voice: getVoiceAfterCheckingActivityLocale(replacementLocale),
27262
+ locale: replacementLocale
27103
27263
  };
27104
- }, []);
27264
+ return checkActivityAndCreateUtterance(params);
27265
+ };
27266
+ const checkDictateState = ()=>{
27267
+ if (!preventExpectedInputHint && mode === (0, $71c613e2e831c34c$export$9484bbecc3c49a2e).vocal && activeRecognitionState === (0, $71c613e2e831c34c$export$3f0071308968cd80).Closed) {
27268
+ if (!isMicrophoneAllowed) askPermission();
27269
+ else toggleMicrophone(true);
27270
+ }
27271
+ };
27105
27272
  (0, $dWhh5$react.useEffect)(()=>{
27106
- if (isNewsView) {
27107
- if (currentNewsActivity && ponyfill) {
27108
- const replacementLocale = checkReplacementLocale(currentNewsActivity.locale || locale);
27109
- const params = {
27110
- activity: currentNewsActivity,
27111
- voice: getVoiceAfterCheckingActivityLocale(replacementLocale),
27112
- locale: replacementLocale
27113
- };
27114
- setUtterance(checkSayAsWordsAndCreateUtterance({
27115
- ...params
27116
- }));
27273
+ if (isNewsViewRef.current) {
27274
+ if (currentNewsActivity) {
27275
+ setUtterance(checkReplacementLocaleAndGetUtterance(currentNewsActivity));
27117
27276
  isSpeaking.current = true;
27118
27277
  } else {
27119
27278
  setUtterance(null);
@@ -27143,13 +27302,8 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27143
27302
  setEndedActivities(ended);
27144
27303
  }
27145
27304
  setCurrentPlaying(undefined);
27146
- currentPlayingRef.current = null;
27147
- queuedActivitiesRef.current = [];
27148
- resetCancelCurrentUtterance();
27149
- setUtterance(null);
27150
- isSpeaking.current = false;
27151
- setNextUtterance(null);
27152
- !isRetorikNews && setIsNewsView(route === (0, $71c613e2e831c34c$export$3565eb3d00ca5a74).News);
27305
+ resetData();
27306
+ if (!isRetorikNews) isNewsViewRef.current = route === (0, $71c613e2e831c34c$export$3565eb3d00ca5a74).News;
27153
27307
  }, [
27154
27308
  route
27155
27309
  ]);
@@ -27161,21 +27315,8 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27161
27315
  */ (0, $dWhh5$react.useEffect)(()=>{
27162
27316
  var _queuedActivitiesRef_current;
27163
27317
  if (appAvailable && ((_queuedActivitiesRef_current = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current === void 0 ? void 0 : _queuedActivitiesRef_current.length)) {
27164
- const activity = queuedActivitiesRef.current[0];
27165
- // Check if the locale in the activity should be replaced
27166
- const replacementLocale = checkReplacementLocale(activity.locale || locale);
27167
- currentActivityRef.current = activity;
27168
- const params = {
27169
- activity: activity,
27170
- voice: getVoiceAfterCheckingActivityLocale(replacementLocale),
27171
- locale: replacementLocale
27172
- };
27173
- const queue = [
27174
- ...queuedActivitiesRef.current
27175
- ];
27176
- queue.splice(0, 1);
27177
- queuedActivitiesRef.current = queue;
27178
- setUtterance(checkActivityAndCreateUtterance(params));
27318
+ setUtterance(checkReplacementLocaleAndGetUtterance(queuedActivitiesRef.current[0]));
27319
+ queuedActivitiesRef.current.splice(0, 1);
27179
27320
  isSpeaking.current = true;
27180
27321
  }
27181
27322
  }, [
@@ -27183,7 +27324,7 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27183
27324
  ]);
27184
27325
  /**
27185
27326
  * On speechCancelStore's cancel state change :
27186
- * - if there is currently non utterance being played, reset cancel state to false
27327
+ * - if there is currently no utterance being played, reset cancel state to false
27187
27328
  * - if an utterance is being played, set it to null to stop playing and prevent data in queue from being played
27188
27329
  * - setting an utterance to null will trigger the handleUtteranceEnded method automatically
27189
27330
  */ (0, $dWhh5$react.useEffect)(()=>{
@@ -27198,7 +27339,6 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27198
27339
  cancel
27199
27340
  ]);
27200
27341
  /**
27201
- * On lastBotActivity, ponyfill states change :
27202
27342
  * - check if the ponyfill is created and the voices loaded
27203
27343
  * - if the activity doesn't have a replyToId value, put it in the queue (used for reminder process)
27204
27344
  * - if the app is not available yet, put the activity in the queue if it is not yet inside
@@ -27207,11 +27347,11 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27207
27347
  * - if an utterance is being played, process the new one (do nothing / put it in the queue / stop the current one and play the new one)
27208
27348
  * - if an utterance has to be created, create it and set the utterance state
27209
27349
  */ (0, $dWhh5$react.useEffect)(()=>{
27210
- if (ponyfill && voice && (lastBotActivity === null || lastBotActivity === void 0 ? void 0 : lastBotActivity.id)) {
27350
+ if (voice && (lastBotActivity === null || lastBotActivity === void 0 ? void 0 : lastBotActivity.id)) {
27211
27351
  let createNewUtterance = false;
27212
27352
  if (!lastBotActivity.replyToId) {
27213
27353
  var _queuedActivitiesRef_current;
27214
- if (isNewsView) ;
27354
+ if (isNewsViewRef.current) ;
27215
27355
  else if (currentPlaying || ((_queuedActivitiesRef_current = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current === void 0 ? void 0 : _queuedActivitiesRef_current.length)) queuedActivitiesRef.current = [
27216
27356
  ...queuedActivitiesRef.current,
27217
27357
  lastBotActivity
@@ -27234,52 +27374,37 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27234
27374
  queuedActivitiesRef.current = [
27235
27375
  lastBotActivity
27236
27376
  ];
27237
- } else if (currentReplyToId === lastBotActivity.replyToId) {
27238
- var _queuedActivitiesRef_current1;
27239
- let count = 0;
27240
- if ((_queuedActivitiesRef_current1 = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current1 === void 0 ? void 0 : _queuedActivitiesRef_current1.length) queuedActivitiesRef.current.forEach((activity)=>{
27241
- if (activity.id === lastBotActivity.id) count++;
27242
- });
27243
- if (count === 0) queuedActivitiesRef.current = [
27244
- ...queuedActivitiesRef.current,
27245
- lastBotActivity
27246
- ];
27247
27377
  } else {
27248
- setCurrentReplyToId(lastBotActivity.replyToId);
27249
- queuedActivitiesRef.current = [
27250
- lastBotActivity
27251
- ];
27252
- }
27253
- } else if (currentActivityRef === null || currentActivityRef === void 0 ? void 0 : currentActivityRef.current) {
27254
- const returnCode = (0, $549323f244f4782c$export$2e2bcd8739ae039)(lastBotActivity, currentActivityRef.current, currentReplyToId, queuedActivitiesRef.current, endedActivities);
27255
- const queue = [
27256
- ...queuedActivitiesRef.current
27257
- ];
27258
- switch(returnCode){
27259
- case 0:
27260
- break;
27261
- case 1:
27262
- // Add the activity to the queue
27263
- queue.push(lastBotActivity);
27264
- queuedActivitiesRef.current = queue;
27265
- break;
27266
- case 2:
27267
- // Stop current activity and play the new one
27268
- queuedActivitiesRef.current = [];
27269
- createNewUtterance = true;
27270
- break;
27378
+ var _queuedActivitiesRef_current1;
27379
+ if (currentReplyToId === lastBotActivity.replyToId) {
27380
+ if (!((_queuedActivitiesRef_current1 = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current1 === void 0 ? void 0 : _queuedActivitiesRef_current1.find((act)=>act.id === lastBotActivity.id))) queuedActivitiesRef.current = [
27381
+ ...queuedActivitiesRef.current,
27382
+ lastBotActivity
27383
+ ];
27384
+ } else {
27385
+ setCurrentReplyToId(lastBotActivity.replyToId);
27386
+ queuedActivitiesRef.current = [
27387
+ lastBotActivity
27388
+ ];
27389
+ }
27271
27390
  }
27272
- } else createNewUtterance = !endedActivities.includes(lastBotActivity.id);
27391
+ } else if (currentActivityRef === null || currentActivityRef === void 0 ? void 0 : currentActivityRef.current) switch((0, $549323f244f4782c$export$2e2bcd8739ae039)(lastBotActivity, currentActivityRef.current, currentReplyToId, queuedActivitiesRef.current, endedActivities)){
27392
+ case 0:
27393
+ break;
27394
+ case 1:
27395
+ // Add the activity to the queue
27396
+ queuedActivitiesRef.current.push(lastBotActivity);
27397
+ break;
27398
+ case 2:
27399
+ // Stop current activity and play the new one
27400
+ queuedActivitiesRef.current = [];
27401
+ createNewUtterance = true;
27402
+ break;
27403
+ }
27404
+ else createNewUtterance = !endedActivities.includes(lastBotActivity.id);
27273
27405
  if (createNewUtterance) {
27274
- currentActivityRef.current = lastBotActivity;
27275
27406
  setCurrentReplyToId(lastBotActivity.replyToId || 'customReplyToIdIfNotPresent');
27276
- const replacementLocale = checkReplacementLocale(lastBotActivity.locale || locale);
27277
- const params = {
27278
- activity: lastBotActivity,
27279
- voice: getVoiceAfterCheckingActivityLocale(replacementLocale),
27280
- locale: replacementLocale
27281
- };
27282
- setUtterance(checkActivityAndCreateUtterance(params));
27407
+ setUtterance(checkReplacementLocaleAndGetUtterance(lastBotActivity));
27283
27408
  isSpeaking.current = true;
27284
27409
  }
27285
27410
  }
@@ -27290,47 +27415,23 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27290
27415
  ]);
27291
27416
  (0, $dWhh5$react.useEffect)(()=>{
27292
27417
  if (streamingReplyToId && streamingQueue.length) {
27293
- const tempActivity = streamingQueue[0];
27294
- const params = {
27295
- activity: tempActivity,
27296
- voice: getVoiceAfterCheckingActivityLocale(locale),
27297
- locale: locale
27298
- };
27299
- removeFirstFromStreamingQueue();
27300
- setUtterance(checkSayAsWordsAndCreateUtterance(params));
27418
+ setUtterance(checkReplacementLocaleAndGetUtterance(streamingQueue[0], false, false));
27301
27419
  isSpeaking.current = true;
27302
27420
  setCurrentPlaying(undefined);
27303
27421
  currentPlayingRef.current = null;
27304
27422
  currentActivityRef.current = null;
27305
- tempCurrentStreamingRef.current = tempActivity.text || null;
27423
+ tempCurrentStreamingRef.current = streamingQueue[0].text || null;
27424
+ removeFirstFromStreamingQueue();
27306
27425
  }
27307
27426
  }, [
27308
27427
  streamingReplyToId
27309
27428
  ]);
27310
- /**
27311
- * On utteranceEnded state change :
27312
- * - if the state is true, an utterance just ended, so the steps are :
27313
- * - call the handleEnded method
27314
- * - set utteranceEnded state to false to wait for another utterance end
27315
- */ (0, $dWhh5$react.useEffect)(()=>{
27316
- if (utteranceEnded) {
27317
- handleEnded();
27318
- setUtteranceEnded(false);
27319
- }
27320
- }, [
27321
- utteranceEnded
27322
- ]);
27323
27429
  (0, $dWhh5$react.useEffect)(()=>{
27324
27430
  if (externalTextToSpeech) {
27325
- const params = {
27326
- activity: {
27327
- speak: externalTextToSpeech,
27328
- locale: locale
27329
- },
27330
- voice: getVoiceAfterCheckingActivityLocale(locale),
27431
+ setUtterance(checkReplacementLocaleAndGetUtterance({
27432
+ speak: externalTextToSpeech,
27331
27433
  locale: locale
27332
- };
27333
- setUtterance(checkSayAsWordsAndCreateUtterance(params));
27434
+ }, false, false));
27334
27435
  isSpeaking.current = true;
27335
27436
  }
27336
27437
  }, [
@@ -27347,7 +27448,7 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27347
27448
  * - set currentPlaying and currentReplyToId states after a small delay to prevent make sure that the display will happen after the speech has begun
27348
27449
  */ const handleUtteranceStart = ()=>{
27349
27450
  setSpeaking(true);
27350
- if (!isNewsView && (currentActivityRef === null || currentActivityRef === void 0 ? void 0 : currentActivityRef.current)) {
27451
+ if (!isNewsViewRef.current && (currentActivityRef === null || currentActivityRef === void 0 ? void 0 : currentActivityRef.current)) {
27351
27452
  setCurrentPlaying(currentActivityRef.current);
27352
27453
  currentPlayingRef.current = currentActivityRef.current;
27353
27454
  currentActivityRef.current.id && dispatchMarkActivity(currentActivityRef.current.id, true);
@@ -27357,31 +27458,18 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27357
27458
  if (streamingReplyToId && streamingQueue.length) {
27358
27459
  const tempActivity = streamingQueue[0];
27359
27460
  if (tempActivity.text) {
27360
- const params = {
27361
- activity: tempActivity,
27362
- voice: getVoiceAfterCheckingActivityLocale(locale),
27363
- locale: locale
27364
- };
27365
- const tempUtterance = checkSayAsWordsAndCreateUtterance(params);
27461
+ const tempUtterance = checkReplacementLocaleAndGetUtterance(streamingQueue[0], false, false);
27366
27462
  tempUtterance.text !== (nextUtterance === null || nextUtterance === void 0 ? void 0 : nextUtterance.text) ? setNextUtterance(tempUtterance) : setNextUtterance(null);
27367
27463
  } else setNextUtterance(null);
27368
27464
  } else setNextUtterance(null);
27369
27465
  setCurrentStreaming(tempCurrentStreamingRef === null || tempCurrentStreamingRef === void 0 ? void 0 : tempCurrentStreamingRef.current);
27370
27466
  };
27371
- /**
27372
- * On call :
27373
- * - set speaking state to false
27374
- * - set utteranceEnded state to true
27375
- */ const handleUtteranceEnd = ()=>{
27467
+ const handleUtteranceEnd = ()=>{
27376
27468
  setSpeaking(false);
27377
- isNewsView ? setRetorikNewsEnded(true) : setUtteranceEnded(true);
27378
27469
  dispatchSpeechEvent(false);
27379
- };
27380
- const checkDictateState = ()=>{
27381
- if (!preventExpectedInputHint && mode === (0, $71c613e2e831c34c$export$9484bbecc3c49a2e).vocal && activeRecognitionState === (0, $71c613e2e831c34c$export$3f0071308968cd80).Closed) {
27382
- if (!isMicrophoneAllowed) askPermission();
27383
- else toggleMicrophone(true);
27384
- }
27470
+ if (isNewsViewRef.current) setRetorikNewsEnded(true);
27471
+ else if (cancelRef.current) resetData();
27472
+ else handleEnded();
27385
27473
  };
27386
27474
  /**
27387
27475
  * On call :
@@ -27399,40 +27487,16 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27399
27487
  }
27400
27488
  }
27401
27489
  setCurrentPlaying(undefined);
27402
- // Check if the audio ended because of a cancel call
27403
- if (cancelRef.current) {
27404
- queuedActivitiesRef.current = [];
27405
- tempCurrentStreamingRef.current = null;
27406
- streamingRelatedMessageRef.current = null;
27407
- resetCancelCurrentUtterance();
27408
- } else if (streamingQueue.length) {
27409
- const tempActivity = streamingQueue[0];
27410
- const params = {
27411
- activity: tempActivity,
27412
- voice: getVoiceAfterCheckingActivityLocale(locale),
27413
- locale: locale
27414
- };
27490
+ if (streamingQueue.length) {
27491
+ futureUtterance = checkReplacementLocaleAndGetUtterance(streamingQueue[0], false);
27492
+ tempCurrentStreamingRef.current = streamingQueue[0].text || null;
27415
27493
  removeFirstFromStreamingQueue();
27416
- futureUtterance = checkSayAsWordsAndCreateUtterance(params);
27417
- tempCurrentStreamingRef.current = tempActivity.text || null;
27418
27494
  } else {
27419
27495
  var _queuedActivitiesRef_current, _currentPlayingRef_current;
27420
27496
  // Launch next activity in the queue and remove it from the queue
27421
27497
  if ((_queuedActivitiesRef_current = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current === void 0 ? void 0 : _queuedActivitiesRef_current.length) {
27422
- const activity = queuedActivitiesRef.current[0];
27423
- const replacementLocale = checkReplacementLocale(activity.locale || locale);
27424
- currentActivityRef.current = activity;
27425
- const params = {
27426
- activity: activity,
27427
- voice: getVoiceAfterCheckingActivityLocale(replacementLocale),
27428
- locale: replacementLocale
27429
- };
27430
- futureUtterance = checkActivityAndCreateUtterance(params);
27431
- const queue = [
27432
- ...queuedActivitiesRef.current
27433
- ];
27434
- queue.splice(0, 1);
27435
- queuedActivitiesRef.current = queue;
27498
+ futureUtterance = checkReplacementLocaleAndGetUtterance(queuedActivitiesRef.current[0]);
27499
+ queuedActivitiesRef.current.splice(0, 1);
27436
27500
  // If a streaming-related message activity is stored, set it as ended and flush it
27437
27501
  if (streamingRelatedMessageRef.current) {
27438
27502
  addEndedActivity(streamingRelatedMessageRef.current.id);
@@ -27450,21 +27514,15 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27450
27514
  isSpeaking.current = !!futureUtterance;
27451
27515
  };
27452
27516
  /**
27453
- * If the previous audio stream ends before the next one is received, we relaunch the new stream as soon as it arrives.
27517
+ * If the previous audio stream ends before the next one is received, we relaunch the new stream as soon as it arrives.
27454
27518
  */ (0, $dWhh5$react.useEffect)(()=>{
27455
27519
  if (!isSpeaking.current) {
27456
27520
  let futureUtterance = null;
27457
27521
  setCurrentPlaying(undefined);
27458
27522
  if (streamingQueue.length) {
27459
- const tempActivity = streamingQueue[0];
27460
- const params = {
27461
- activity: tempActivity,
27462
- voice: getVoiceAfterCheckingActivityLocale(locale),
27463
- locale: locale
27464
- };
27523
+ futureUtterance = checkReplacementLocaleAndGetUtterance(streamingQueue[0], false, false);
27524
+ tempCurrentStreamingRef.current = streamingQueue[0].text || null;
27465
27525
  removeFirstFromStreamingQueue();
27466
- futureUtterance = checkSayAsWordsAndCreateUtterance(params);
27467
- tempCurrentStreamingRef.current = tempActivity.text || null;
27468
27526
  }
27469
27527
  currentPlayingRef.current = null;
27470
27528
  setUtterance(futureUtterance);
@@ -27473,7 +27531,7 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27473
27531
  }, [
27474
27532
  streamingQueue
27475
27533
  ]);
27476
- return ponyfill ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $d31b268c3b702355$export$2e2bcd8739ae039), {
27534
+ return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $d31b268c3b702355$export$2e2bcd8739ae039), {
27477
27535
  ponyfill: ponyfill,
27478
27536
  appAvailable: appAvailable,
27479
27537
  utterance: utterance,
@@ -27481,11 +27539,91 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
27481
27539
  onStart: handleUtteranceStart,
27482
27540
  onError: handleUtteranceEnd,
27483
27541
  onEnd: handleUtteranceEnd
27484
- }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {});
27542
+ });
27485
27543
  };
27486
27544
  var $ad561f5c61e38c20$export$2e2bcd8739ae039 = $ad561f5c61e38c20$var$SynthesisManager;
27487
27545
 
27488
27546
 
27547
+ const $fe06f31a645aa3a1$var$SynthesisPonyfillManager = ({ isRetorikNews: isRetorikNews })=>{
27548
+ const customVoice = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.customVoice);
27549
+ const ponyfillCredentials = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.ponyfillCredentials);
27550
+ const locale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.locale);
27551
+ const agentData = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.agentData);
27552
+ const setVoice = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.actions.setVoice);
27553
+ const [ponyfill, setPonyfill] = (0, $dWhh5$react.useState)(undefined);
27554
+ const refreshTimerRef = (0, $dWhh5$react.useRef)(null);
27555
+ /**
27556
+ * Async function to retrieve a new token and assign it to the speechConfig inside ponyfill.speechSynthesis
27557
+ * @param {string} region
27558
+ * @param {string} key
27559
+ */ const refreshTokenInNineMinutes = async (region, key)=>{
27560
+ // A token is valid during 10 minutes, let's refresh it after 9 minutes
27561
+ refreshTimerRef.current = setTimeout(async ()=>{
27562
+ var _ponyfill_speechSynthesis;
27563
+ const token = await (0, $f2ae26d736ec24dc$export$a2ce4fdd6972d6a7)(region, key);
27564
+ if (token && (ponyfill === null || ponyfill === void 0 ? void 0 : (_ponyfill_speechSynthesis = ponyfill.speechSynthesis) === null || _ponyfill_speechSynthesis === void 0 ? void 0 : _ponyfill_speechSynthesis.speechConfig)) {
27565
+ ponyfill.speechSynthesis.speechConfig.authorizationToken = token;
27566
+ refreshTokenInNineMinutes(region, key);
27567
+ }
27568
+ }, 540000) // 9 minutes
27569
+ ;
27570
+ };
27571
+ /**
27572
+ * Fetch speech synthesis token and create the ponyfill containing all data
27573
+ * @param {string} region
27574
+ * @param {string} key
27575
+ */ const fetchTokenAndCreatePonyfill = async (region, key)=>{
27576
+ const token = await (0, $f2ae26d736ec24dc$export$a2ce4fdd6972d6a7)(region, key);
27577
+ if (token) {
27578
+ setPonyfill((0, $dWhh5$daviaiwebspeechcognitiveservicesdavi.createSpeechSynthesisPonyfill)({
27579
+ credentials: {
27580
+ region: ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.region,
27581
+ authorizationToken: token
27582
+ }
27583
+ }));
27584
+ // Launch token refresh after ponyfill creation
27585
+ refreshTokenInNineMinutes(region, key);
27586
+ }
27587
+ };
27588
+ (0, $dWhh5$react.useEffect)(()=>{
27589
+ if ((ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.authorizationToken) && ponyfillCredentials.region) {
27590
+ const data = {
27591
+ credentials: ponyfillCredentials
27592
+ };
27593
+ setPonyfill((0, $dWhh5$daviaiwebspeechcognitiveservicesdavi.createSpeechSynthesisPonyfill)(data));
27594
+ } else if ((ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.subscriptionKey) && ponyfillCredentials.region) fetchTokenAndCreatePonyfill(ponyfillCredentials.region, ponyfillCredentials.subscriptionKey);
27595
+ }, [
27596
+ ponyfillCredentials
27597
+ ]);
27598
+ const onVoicesChanged = ()=>{
27599
+ const voices = ponyfill === null || ponyfill === void 0 ? void 0 : ponyfill.speechSynthesis.getVoices();
27600
+ if (voices && Array.isArray(voices) && voices.length) setVoice((0, $5679d80e89b3df01$export$4bf371fc4fa74a28)(voices, locale, customVoice, agentData));
27601
+ };
27602
+ (0, $dWhh5$react.useEffect)(()=>{
27603
+ if (ponyfill) {
27604
+ const voices = ponyfill.speechSynthesis.getVoices();
27605
+ if (voices && Array.isArray(voices) && voices.length) setVoice((0, $5679d80e89b3df01$export$4bf371fc4fa74a28)(voices, locale, customVoice, agentData));
27606
+ else ponyfill.speechSynthesis.onvoiceschanged = onVoicesChanged;
27607
+ }
27608
+ }, [
27609
+ ponyfill,
27610
+ customVoice,
27611
+ agentData,
27612
+ locale
27613
+ ]);
27614
+ (0, $dWhh5$react.useEffect)(()=>{
27615
+ return ()=>{
27616
+ refreshTimerRef.current && clearTimeout(refreshTimerRef.current);
27617
+ };
27618
+ }, []);
27619
+ return ponyfill ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $ad561f5c61e38c20$export$2e2bcd8739ae039), {
27620
+ ponyfill: ponyfill,
27621
+ isRetorikNews: isRetorikNews
27622
+ }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {});
27623
+ };
27624
+ var $fe06f31a645aa3a1$export$2e2bcd8739ae039 = $fe06f31a645aa3a1$var$SynthesisPonyfillManager;
27625
+
27626
+
27489
27627
 
27490
27628
 
27491
27629
 
@@ -27715,7 +27853,7 @@ var $b0722e4118e770aa$export$2e2bcd8739ae039 = $b0722e4118e770aa$var$Recognition
27715
27853
  const $9e19251bfed127fc$var$SpeechManager = ({ isRetorikNews: isRetorikNews })=>{
27716
27854
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
27717
27855
  children: [
27718
- /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $ad561f5c61e38c20$export$2e2bcd8739ae039), {
27856
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $fe06f31a645aa3a1$export$2e2bcd8739ae039), {
27719
27857
  isRetorikNews: isRetorikNews
27720
27858
  }),
27721
27859
  !isRetorikNews && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $b0722e4118e770aa$export$2e2bcd8739ae039), {})
@@ -28337,6 +28475,7 @@ const $8f73b7a6f73661a7$var$ChatbotAndSubtitlesContainer = ({ centered: centered
28337
28475
  return agentData ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
28338
28476
  children: [
28339
28477
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
28478
+ id: "retorik-animation-container",
28340
28479
  className: `rf-relative rf-z-agent rf-col-start-1 rf-col-end-9 ${!centered && 'landscape-retorik:ltr:-rf-translate-x-1/4 landscape-retorik:rtl:rf-translate-x-1/4'} rf-row-span-full rf-self-end rf-h-full`,
28341
28480
  style: {
28342
28481
  visibility: visible ? 'visible' : 'hidden',
@@ -28575,14 +28714,14 @@ var $9765bd6ac5154ec8$export$2e2bcd8739ae039 = $9765bd6ac5154ec8$var$getBaseAddr
28575
28714
 
28576
28715
 
28577
28716
 
28578
- const $ce7633a58d99dcca$var$RetorikConfigHandler = ({ config: config, viewsConfig: viewsConfig, chatbotData: chatbotData, chatbotDataWidget: chatbotDataWidget, agentData: agentData, ponyfillFactoryCredentials: ponyfillFactoryCredentials, customVoice: customVoice, colors: colors, skipLoader: skipLoader, defaultMode: defaultMode, GDPR: GDPR, addressData: addressData, externalEventHandler: externalEventHandler, externalComponents: externalComponents, userData: userData, width: width, height: height, menuConfig: menuConfig, environmentPreset: environmentPreset, parent: parent })=>{
28717
+ const $ce7633a58d99dcca$var$RetorikConfigHandler = ({ config: config, viewsConfig: viewsConfig, chatbotData: chatbotData, chatbotDataWidget: chatbotDataWidget, agentData: agentData, ponyfillFactoryCredentials: ponyfillFactoryCredentials, customVoice: customVoice, colors: colors, skipLoader: skipLoader, defaultMode: defaultMode, GDPR: GDPR, customScripts: customScripts, customCSS: customCSS, addressData: addressData, externalEventHandler: externalEventHandler, externalComponents: externalComponents, userData: userData, width: width, height: height, menuConfig: menuConfig, environmentPreset: environmentPreset, parent: parent })=>{
28579
28718
  const { fetchSupportedLanguages: fetchSupportedLanguages, setLanguageData: setLanguageData } = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.actions);
28580
28719
  const setTheme = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.actions.setTheme);
28581
28720
  const baseAddress = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.baseAddress);
28582
28721
  const [fetchedConfig, setFetchedConfig] = (0, $dWhh5$react.useState)();
28583
28722
  const [mainConfig, setMainConfig] = (0, $dWhh5$react.useState)(undefined);
28584
28723
  const { setGDPRDisplay: setGDPRDisplay, setGDPRUserConsent: setGDPRUserConsent, setGDPRWindowData: setGDPRWindowData } = (0, $2793f2455cec0982$export$77e4cc5334565f28)((state)=>state.actions);
28585
- const { setBaseAddress: setBaseAddress, setDisableHistory: setDisableHistory, setEnvironmentPreset: setEnvironmentPreset } = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.actions);
28724
+ const { setBaseAddress: setBaseAddress, setDisableHistory: setDisableHistory, setEnvironmentPreset: setEnvironmentPreset, setCustomScripts: setCustomScripts, setCustomCSS: setCustomCSS } = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.actions);
28586
28725
  const [isConfigUpdated, setIsConfigUpdated] = (0, $dWhh5$react.useState)(false);
28587
28726
  /**
28588
28727
  * Check if emergency data can be retrieved to remove the button in menu if no data available
@@ -28659,7 +28798,7 @@ const $ce7633a58d99dcca$var$RetorikConfigHandler = ({ config: config, viewsConfi
28659
28798
  ]);
28660
28799
  (0, $dWhh5$react.useEffect)(()=>{
28661
28800
  if (fetchedConfig) {
28662
- const { skipLoader: _skipLoader, defaultMode: _defaultMode, config: _config, viewsConfig: _viewsConfig, chatbotData: _chatbotData, chatbotDataWidget: _chatbotDataWidget, agentData: _agentData, addressData: _addressData, ponyfillFactoryCredentials: _ponyfillFactoryCredentials, customVoice: _customVoice, colors: _colors, defaultCulture: defaultCulture, supportedCultures: supportedCultures, disableHistory: disableHistory } = fetchedConfig;
28801
+ const { skipLoader: _skipLoader, defaultMode: _defaultMode, config: _config, viewsConfig: _viewsConfig, chatbotData: _chatbotData, chatbotDataWidget: _chatbotDataWidget, agentData: _agentData, addressData: _addressData, ponyfillFactoryCredentials: _ponyfillFactoryCredentials, customVoice: _customVoice, colors: _colors, defaultCulture: defaultCulture, supportedCultures: supportedCultures, disableHistory: disableHistory, customScripts: _customScripts, customCSS: _customCSS } = fetchedConfig;
28663
28802
  if (defaultCulture && supportedCultures) {
28664
28803
  const { processedDefaultLanguage: processedDefaultLanguage, processedSupported: processedSupported } = (0, $49ef6b13684edff9$export$92cb25ec092104e6)(defaultCulture, supportedCultures, true);
28665
28804
  processedDefaultLanguage && processedSupported && setLanguageData(processedDefaultLanguage, processedSupported);
@@ -28716,6 +28855,8 @@ const $ce7633a58d99dcca$var$RetorikConfigHandler = ({ config: config, viewsConfi
28716
28855
  mergedMainConfig.config.menu = (config === null || config === void 0 ? void 0 : config.menu) || (menuConfig === null || menuConfig === void 0 ? void 0 : menuConfig.menu) || (_config === null || _config === void 0 ? void 0 : _config.menu);
28717
28856
  }
28718
28857
  setDisableHistory(!!disableHistory);
28858
+ setCustomScripts(customScripts || _customScripts || []);
28859
+ setCustomCSS(customCSS || _customCSS || []);
28719
28860
  checkEmergencyAndSetConfig(mergedMainConfig);
28720
28861
  }
28721
28862
  }, [
@@ -28730,6 +28871,7 @@ const $ce7633a58d99dcca$var$RetorikConfigHandler = ({ config: config, viewsConfi
28730
28871
  skipLoader,
28731
28872
  defaultMode,
28732
28873
  GDPR,
28874
+ customScripts,
28733
28875
  addressData,
28734
28876
  externalEventHandler,
28735
28877
  externalComponents,
@@ -29127,23 +29269,26 @@ window.Retorik = {
29127
29269
  ...window.Retorik,
29128
29270
  renderAgent: $3f93eb6d5bf69cb7$export$b69254d879536cde,
29129
29271
  renderWidget: $3f93eb6d5bf69cb7$var$renderWidget,
29130
- showAgent: $33ea75f69090702b$export$ae67eb518a2aae74,
29131
- hideAgent: $33ea75f69090702b$export$e73dbd7ba351e3e,
29132
- setLocale: $33ea75f69090702b$export$c8aadf3621e41efb,
29133
- sendMessage: $33ea75f69090702b$export$465cb47180de50f0,
29134
- sendEvent: $33ea75f69090702b$export$7329bcdc3edcd90e,
29135
- sendActivity: $33ea75f69090702b$export$d4c8c6daac289378,
29136
- displaySubtitles: (0, $33ea75f69090702b$export$708f3eb1d5828832),
29137
- toggleSubtitles: $33ea75f69090702b$export$3fa7f3a227fc16cb,
29272
+ addExternalActivityHandler: $33ea75f69090702b$export$28afdcc603412603,
29273
+ cancelCurrentUtterance: $33ea75f69090702b$export$f3aaae0c8197c567,
29138
29274
  changeAgent: (0, $33ea75f69090702b$export$a72b80ff363563a1),
29139
- toggleMicrophone: $33ea75f69090702b$export$39fcdeae376856e7,
29140
- setMuted: $33ea75f69090702b$export$a1680ba91cc9be33,
29275
+ displaySubtitles: (0, $33ea75f69090702b$export$708f3eb1d5828832),
29276
+ hideAgent: $33ea75f69090702b$export$e73dbd7ba351e3e,
29277
+ pauseConversation: $33ea75f69090702b$export$7431bc5a5c7c9317,
29141
29278
  playExternalSynthesis: $33ea75f69090702b$export$99dcb7840cd85481,
29279
+ resumeConversation: $33ea75f69090702b$export$cceb853b29df842,
29280
+ sendActivity: $33ea75f69090702b$export$d4c8c6daac289378,
29281
+ sendEvent: $33ea75f69090702b$export$7329bcdc3edcd90e,
29282
+ sendMessage: $33ea75f69090702b$export$465cb47180de50f0,
29142
29283
  sendMessageToChatbot: $33ea75f69090702b$export$255ebd0ca6bfba88,
29284
+ setExternalActivityHandlers: $33ea75f69090702b$export$2c7ae0f34657d605,
29285
+ setLocale: $33ea75f69090702b$export$c8aadf3621e41efb,
29286
+ setMuted: $33ea75f69090702b$export$a1680ba91cc9be33,
29143
29287
  setVisibility: $33ea75f69090702b$export$2c64211ecf98e50d,
29144
- toggleVisibility: $33ea75f69090702b$export$7396a2167c7f755e,
29145
- pauseConversation: $33ea75f69090702b$export$7431bc5a5c7c9317,
29146
- resumeConversation: $33ea75f69090702b$export$cceb853b29df842
29288
+ showAgent: $33ea75f69090702b$export$ae67eb518a2aae74,
29289
+ toggleMicrophone: $33ea75f69090702b$export$39fcdeae376856e7,
29290
+ toggleSubtitles: $33ea75f69090702b$export$3fa7f3a227fc16cb,
29291
+ toggleVisibility: $33ea75f69090702b$export$7396a2167c7f755e
29147
29292
  };
29148
29293
 
29149
29294