ghost 5.111.0 → 5.112.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/components/tryghost-adapter-cache-memory-ttl-5.112.0.tgz +0 -0
- package/components/{tryghost-adapter-cache-redis-5.111.0.tgz → tryghost-adapter-cache-redis-5.112.0.tgz} +0 -0
- package/components/{tryghost-adapter-manager-5.111.0.tgz → tryghost-adapter-manager-5.112.0.tgz} +0 -0
- package/components/tryghost-announcement-bar-settings-5.112.0.tgz +0 -0
- package/components/{tryghost-api-framework-5.111.0.tgz → tryghost-api-framework-5.112.0.tgz} +0 -0
- package/components/{tryghost-api-version-compatibility-service-5.111.0.tgz → tryghost-api-version-compatibility-service-5.112.0.tgz} +0 -0
- package/components/{tryghost-audience-feedback-5.111.0.tgz → tryghost-audience-feedback-5.112.0.tgz} +0 -0
- package/components/tryghost-bookshelf-repository-5.112.0.tgz +0 -0
- package/components/tryghost-bootstrap-socket-5.112.0.tgz +0 -0
- package/components/{tryghost-captcha-service-5.111.0.tgz → tryghost-captcha-service-5.112.0.tgz} +0 -0
- package/components/tryghost-constants-5.112.0.tgz +0 -0
- package/components/tryghost-custom-fonts-5.112.0.tgz +0 -0
- package/components/{tryghost-custom-theme-settings-service-5.111.0.tgz → tryghost-custom-theme-settings-service-5.112.0.tgz} +0 -0
- package/components/{tryghost-data-generator-5.111.0.tgz → tryghost-data-generator-5.112.0.tgz} +0 -0
- package/components/tryghost-domain-events-5.112.0.tgz +0 -0
- package/components/{tryghost-donations-5.111.0.tgz → tryghost-donations-5.112.0.tgz} +0 -0
- package/components/{tryghost-email-addresses-5.111.0.tgz → tryghost-email-addresses-5.112.0.tgz} +0 -0
- package/components/{tryghost-email-analytics-provider-mailgun-5.111.0.tgz → tryghost-email-analytics-provider-mailgun-5.112.0.tgz} +0 -0
- package/components/{tryghost-email-analytics-service-5.111.0.tgz → tryghost-email-analytics-service-5.112.0.tgz} +0 -0
- package/components/{tryghost-email-content-generator-5.111.0.tgz → tryghost-email-content-generator-5.112.0.tgz} +0 -0
- package/components/{tryghost-email-events-5.111.0.tgz → tryghost-email-events-5.112.0.tgz} +0 -0
- package/components/tryghost-email-service-5.112.0.tgz +0 -0
- package/components/{tryghost-email-suppression-list-5.111.0.tgz → tryghost-email-suppression-list-5.112.0.tgz} +0 -0
- package/components/{tryghost-express-dynamic-redirects-5.111.0.tgz → tryghost-express-dynamic-redirects-5.112.0.tgz} +0 -0
- package/components/{tryghost-external-media-inliner-5.111.0.tgz → tryghost-external-media-inliner-5.112.0.tgz} +0 -0
- package/components/tryghost-extract-api-key-5.112.0.tgz +0 -0
- package/components/tryghost-ghost-5.112.0.tgz +0 -0
- package/components/{tryghost-html-to-plaintext-5.111.0.tgz → tryghost-html-to-plaintext-5.112.0.tgz} +0 -0
- package/components/tryghost-i18n-5.112.0.tgz +0 -0
- package/components/{tryghost-identity-token-service-5.111.0.tgz → tryghost-identity-token-service-5.112.0.tgz} +0 -0
- package/components/{tryghost-importer-handler-content-files-5.111.0.tgz → tryghost-importer-handler-content-files-5.112.0.tgz} +0 -0
- package/components/{tryghost-importer-revue-5.111.0.tgz → tryghost-importer-revue-5.112.0.tgz} +0 -0
- package/components/tryghost-in-memory-repository-5.112.0.tgz +0 -0
- package/components/{tryghost-job-manager-5.111.0.tgz → tryghost-job-manager-5.112.0.tgz} +0 -0
- package/components/tryghost-link-redirects-5.112.0.tgz +0 -0
- package/components/tryghost-link-replacer-5.112.0.tgz +0 -0
- package/components/{tryghost-magic-link-5.111.0.tgz → tryghost-magic-link-5.112.0.tgz} +0 -0
- package/components/{tryghost-mail-events-5.111.0.tgz → tryghost-mail-events-5.112.0.tgz} +0 -0
- package/components/{tryghost-mailgun-client-5.111.0.tgz → tryghost-mailgun-client-5.112.0.tgz} +0 -0
- package/components/{tryghost-member-attribution-5.111.0.tgz → tryghost-member-attribution-5.112.0.tgz} +0 -0
- package/components/tryghost-member-events-5.112.0.tgz +0 -0
- package/components/{tryghost-members-api-5.111.0.tgz → tryghost-members-api-5.112.0.tgz} +0 -0
- package/components/tryghost-members-csv-5.112.0.tgz +0 -0
- package/components/{tryghost-members-importer-5.111.0.tgz → tryghost-members-importer-5.112.0.tgz} +0 -0
- package/components/{tryghost-members-offers-5.111.0.tgz → tryghost-members-offers-5.112.0.tgz} +0 -0
- package/components/tryghost-members-payments-5.112.0.tgz +0 -0
- package/components/{tryghost-members-ssr-5.111.0.tgz → tryghost-members-ssr-5.112.0.tgz} +0 -0
- package/components/{tryghost-members-stripe-service-5.111.0.tgz → tryghost-members-stripe-service-5.112.0.tgz} +0 -0
- package/components/{tryghost-milestones-5.111.0.tgz → tryghost-milestones-5.112.0.tgz} +0 -0
- package/components/{tryghost-minifier-5.111.0.tgz → tryghost-minifier-5.112.0.tgz} +0 -0
- package/components/{tryghost-mw-api-version-mismatch-5.111.0.tgz → tryghost-mw-api-version-mismatch-5.112.0.tgz} +0 -0
- package/components/tryghost-mw-cache-control-5.112.0.tgz +0 -0
- package/components/{tryghost-mw-error-handler-5.111.0.tgz → tryghost-mw-error-handler-5.112.0.tgz} +0 -0
- package/components/{tryghost-mw-session-from-token-5.111.0.tgz → tryghost-mw-session-from-token-5.112.0.tgz} +0 -0
- package/components/{tryghost-mw-update-user-last-seen-5.111.0.tgz → tryghost-mw-update-user-last-seen-5.112.0.tgz} +0 -0
- package/components/tryghost-mw-version-match-5.112.0.tgz +0 -0
- package/components/tryghost-mw-vhost-5.112.0.tgz +0 -0
- package/components/{tryghost-package-json-5.111.0.tgz → tryghost-package-json-5.112.0.tgz} +0 -0
- package/components/tryghost-post-events-5.112.0.tgz +0 -0
- package/components/tryghost-post-revisions-5.112.0.tgz +0 -0
- package/components/{tryghost-posts-service-5.111.0.tgz → tryghost-posts-service-5.112.0.tgz} +0 -0
- package/components/{tryghost-prometheus-metrics-5.111.0.tgz → tryghost-prometheus-metrics-5.112.0.tgz} +0 -0
- package/components/tryghost-recommendations-5.112.0.tgz +0 -0
- package/components/{tryghost-referrers-5.111.0.tgz → tryghost-referrers-5.112.0.tgz} +0 -0
- package/components/{tryghost-security-5.111.0.tgz → tryghost-security-5.112.0.tgz} +0 -0
- package/components/tryghost-session-service-5.112.0.tgz +0 -0
- package/components/{tryghost-settings-path-manager-5.111.0.tgz → tryghost-settings-path-manager-5.112.0.tgz} +0 -0
- package/components/{tryghost-slack-notifications-5.111.0.tgz → tryghost-slack-notifications-5.112.0.tgz} +0 -0
- package/components/tryghost-tiers-5.112.0.tgz +0 -0
- package/components/tryghost-version-notifications-data-service-5.112.0.tgz +0 -0
- package/components/{tryghost-webmentions-5.111.0.tgz → tryghost-webmentions-5.112.0.tgz} +0 -0
- package/core/boot.js +0 -3
- package/core/built/admin/assets/admin-x-activitypub/admin-x-activitypub.js +10216 -9646
- package/core/built/admin/assets/admin-x-settings/{CodeEditorView-1298238e.mjs → CodeEditorView-ad8698fe.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
- package/core/built/admin/assets/admin-x-settings/{index-2707471f.mjs → index-2713e469.mjs} +2750 -2714
- package/core/built/admin/assets/admin-x-settings/{index-0f51ccb5.mjs → index-463cec50.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{modals-f5983704.mjs → modals-033e8fc4.mjs} +4 -4
- package/core/built/admin/assets/{chunk.524.405c43b2cb20553b51d9.js → chunk.524.db49da6fd8ae155205a4.js} +5 -5
- package/core/built/admin/assets/{chunk.582.eb4b096f29c97c9d6a64.js → chunk.582.0bf715eb6807f7641706.js} +8 -8
- package/core/built/admin/assets/{ghost-87cffc153ec73d217c1ae9f9207ea5e1.js → ghost-62bd4d4c837d453e1038808dc1cd1e4c.js} +9 -7
- package/core/built/admin/assets/img/ap-nodes-01ee317529e6353a1c34a062c388f1e7.png +0 -0
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +12944 -12924
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +136 -134
- package/core/built/admin/assets/posts/posts.js +2 -2
- package/core/built/admin/index.html +3 -3
- package/core/frontend/helpers/get.js +2 -3
- package/core/frontend/src/cards/css/cta.css +38 -36
- package/core/server/api/endpoints/utils/serializers/input/settings.js +2 -1
- package/core/server/api/endpoints/utils/serializers/input/utils/settings-key-group-mapper.js +2 -1
- package/core/server/api/endpoints/utils/serializers/input/utils/settings-key-type-mapper.js +2 -1
- package/core/server/data/migrations/versions/5.112/2025-03-10-10-01-01-add-require-mfa-setting.js +8 -0
- package/core/server/data/schema/default-settings/default-settings.json +6 -0
- package/core/server/models/invite.js +4 -5
- package/core/server/models/post.js +3 -9
- package/core/server/models/relations/authors.js +2 -4
- package/core/server/models/role-utils.js +38 -0
- package/core/server/models/role.js +5 -3
- package/core/server/models/user.js +5 -3
- package/core/server/services/activitypub/ActivityPubService.js +116 -0
- package/core/server/services/activitypub/ActivityPubService.ts +139 -0
- package/core/server/services/activitypub/ActivityPubServiceWrapper.js +1 -1
- package/core/server/services/stats/MembersStatsService.js +167 -0
- package/core/server/services/stats/MrrStatsService.js +161 -0
- package/core/server/services/stats/ReferrersStatsService.js +164 -0
- package/core/server/services/stats/StatsService.js +63 -0
- package/core/server/services/stats/SubscriptionStatsService.js +180 -0
- package/core/server/services/stats/service.js +1 -1
- package/core/server/services/url/Resources.js +1 -1
- package/package.json +138 -141
- package/tsconfig.tsbuildinfo +1 -1
- package/yarn.lock +30 -72
- package/components/tryghost-activitypub-5.111.0.tgz +0 -0
- package/components/tryghost-adapter-cache-memory-ttl-5.111.0.tgz +0 -0
- package/components/tryghost-announcement-bar-settings-5.111.0.tgz +0 -0
- package/components/tryghost-bookshelf-repository-5.111.0.tgz +0 -0
- package/components/tryghost-bootstrap-socket-5.111.0.tgz +0 -0
- package/components/tryghost-constants-5.111.0.tgz +0 -0
- package/components/tryghost-custom-fonts-5.111.0.tgz +0 -0
- package/components/tryghost-domain-events-5.111.0.tgz +0 -0
- package/components/tryghost-email-service-5.111.0.tgz +0 -0
- package/components/tryghost-extract-api-key-5.111.0.tgz +0 -0
- package/components/tryghost-ghost-5.111.0.tgz +0 -0
- package/components/tryghost-i18n-5.111.0.tgz +0 -0
- package/components/tryghost-in-memory-repository-5.111.0.tgz +0 -0
- package/components/tryghost-link-redirects-5.111.0.tgz +0 -0
- package/components/tryghost-link-replacer-5.111.0.tgz +0 -0
- package/components/tryghost-member-events-5.111.0.tgz +0 -0
- package/components/tryghost-members-csv-5.111.0.tgz +0 -0
- package/components/tryghost-members-payments-5.111.0.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.111.0.tgz +0 -0
- package/components/tryghost-mw-version-match-5.111.0.tgz +0 -0
- package/components/tryghost-mw-vhost-5.111.0.tgz +0 -0
- package/components/tryghost-post-events-5.111.0.tgz +0 -0
- package/components/tryghost-post-revisions-5.111.0.tgz +0 -0
- package/components/tryghost-recommendations-5.111.0.tgz +0 -0
- package/components/tryghost-session-service-5.111.0.tgz +0 -0
- package/components/tryghost-stats-service-5.111.0.tgz +0 -0
- package/components/tryghost-tiers-5.111.0.tgz +0 -0
- package/components/tryghost-version-notifications-data-service-5.111.0.tgz +0 -0
- package/core/demo.js +0 -6
- package/core/demo.ts +0 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(`@import"https://fonts.bunny.net/css?family=cardo:400,700";@import"https://fonts.bunny.net/css?family=manrope:300,500,700";@import"https://fonts.bunny.net/css?family=merriweather:300,700";@import"https://fonts.bunny.net/css?family=nunito:400,600,700";@import"https://fonts.bunny.net/css?family=old-standard-tt:400,700";@import"https://fonts.bunny.net/css?family=prata:400";@import"https://fonts.bunny.net/css?family=roboto:400,500,700";@import"https://fonts.bunny.net/css?family=rufina:400,500,700";@import"https://fonts.bunny.net/css?family=tenor-sans:400";@import"https://fonts.bunny.net/css?family=space-grotesk:700";@import"https://fonts.bunny.net/css?family=chakra-petch:400";@import"https://fonts.bunny.net/css?family=noto-sans:400,700";@import"https://fonts.bunny.net/css?family=poppins:400,700";@import"https://fonts.bunny.net/css?family=fira-sans:400,700";@import"https://fonts.bunny.net/css?family=inter:400,700";@import"https://fonts.bunny.net/css?family=noto-serif:400,700";@import"https://fonts.bunny.net/css?family=lora:400,700";@import"https://fonts.bunny.net/css?family=ibm-plex-serif:400,700";@import"https://fonts.bunny.net/css?family=space-mono:400,700";@import"https://fonts.bunny.net/css?family=fira-mono:400,700";@import"https://fonts.bunny.net/css?family=jetbrains-mono:400,700";.shade *,.shade :before,.shade :after{box-sizing:border-box;max-width:revert;max-height:revert;min-width:revert;min-height:revert;border-width:0;border-style:solid;border-color:#ebeef0}.shade :before,.shade :after{--tw-content: ""}.shade html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.shade body{margin:0;line-height:inherit}.shade hr{height:0;color:inherit;border-top-width:1px}.shade abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.shade h1,.shade h2,.shade h3,.shade h4,.shade h5,.shade h6{margin:0;padding:0}.shade a{color:inherit;text-decoration:inherit}.shade b,.shade strong{font-weight:bolder}.shade code,.shade kbd,.shade samp,.shade pre{font-family:Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}.shade small{font-size:80%}.shade sub,.shade sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.shade sub{bottom:-.25em}.shade sup{top:-.5em}.shade table{text-indent:0;border-color:inherit;border-collapse:collapse;margin:0;width:auto;max-width:auto}.shade table td,.shade table th{padding:unset;vertical-align:middle;text-align:left;line-height:auto;-webkit-user-select:text;-moz-user-select:text;user-select:text}.shade button,.shade input,.shade optgroup,.shade select,.shade textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0;outline:none}.shade button,.shade select{text-transform:none;letter-spacing:inherit;border-radius:inherit;-moz-appearance:auto;appearance:auto;-webkit-appearance:auto;background:unset}.shade button,.shade [type=reset],.shade [type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}.shade :-moz-focusring{outline:none}.shade :-moz-ui-invalid{box-shadow:none}.shade progress{vertical-align:baseline}.shade ::-webkit-inner-spin-button,.shade ::-webkit-outer-spin-button{height:auto}.shade [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.shade ::-webkit-search-decoration{-webkit-appearance:none}.shade ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.shade summary{display:list-item}.shade blockquote,.shade dl,.shade dd,.shade h1,.shade h2,.shade h3,.shade h4,.shade h5,.shade h6,.shade hr,.shade figure,.shade p,.shade pre{margin:0}.shade fieldset{margin:0;padding:0}.shade legend{padding:0}.shade ol,.shade ul,.shade menu{list-style:none;margin:0;padding:0}.shade li{margin:unset;line-height:unset}.shade textarea{resize:vertical}.shade input::-moz-placeholder,.shade textarea::-moz-placeholder{opacity:1;--tw-text-opacity: 1;color:rgb(174 183 193 / var(--tw-text-opacity))}.shade input::placeholder,.shade textarea::placeholder{opacity:1;--tw-text-opacity: 1;color:rgb(174 183 193 / var(--tw-text-opacity))}.shade button:focus-visible,.shade input:focus-visible{outline:none}.shade img,.shade svg,.shade video,.shade canvas,.shade audio,.shade iframe,.shade embed,.shade object{display:block;vertical-align:middle}.shade img,.shade video{max-width:100%;height:auto}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(20 184 255 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(20 184 255 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:root{--background: 0 0% 100%;--foreground: 216 11% 9%;--muted: 200 12% 96%;--muted-foreground: 211 11% 43%;--popover: 0 0% 100%;--popover-foreground: 216 11% 9%;--border: 204 14% 93%;--input: 204 14% 93%;--card: 0 0% 100%;--card-foreground: 216 11% 9%;--primary: 216 11% 9%;--primary-foreground: 0 0% 100%;--secondary: 204 14% 93%;--secondary-foreground: 216 11% 9%;--accent: 200 12% 96%;--accent-foreground: 216 11% 9%;--destructive: 354 92% 50%;--destructive-foreground: 0 0% 100%;--ring: 215 13% 63%;--radius: 9px;--chart-1: 221.2 83.2% 53.3%;--chart-2: 212 95% 68%;--chart-3: 216 92% 60%;--chart-4: 210 98% 78%;--chart-5: 212 97% 87%;--sidebar-background: 0 0% 100%;--sidebar-foreground: 216 11% 9%;--sidebar-primary: 216 11% 9%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 200 12% 96%;--sidebar-accent-foreground: 216 11% 9%;--sidebar-border: 210 13% 88%;--sidebar-ring: 215 13% 63%}.dark{--background: 216 11% 9%;--foreground: 210 13% 88%;--muted: 210 11% 25%;--muted-foreground: 210 13% 63%;--accent: 210 11% 25%;--accent-foreground: 200 12% 96%;--popover: 216 11% 9%;--popover-foreground: 212 13% 72%;--border: 210 11% 25%;--input: 210 11% 25%;--card: 216 11% 9%;--card-foreground: 213 31% 91%;--primary: 200 12% 96%;--primary-foreground: 216 11% 9%;--secondary: 216 11% 9%;--secondary-foreground: 200 12% 96%;--destructive: 354 81% 31%;--destructive-foreground: 240 11% 98%;--ring: 210 11% 25%;--chart-1: 221.2 83.2% 53.3%;--chart-2: 212 95% 68%;--chart-3: 216 92% 60%;--chart-4: 210 98% 78%;--chart-5: 212 97% 87%;--sidebar-background: 216 11% 9%;--sidebar-foreground: 200 12% 96%;--sidebar-primary: 210 11% 25%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 210 11% 25%;--sidebar-accent-foreground: 200 12% 96%;--sidebar-border: 210 11% 25%;--sidebar-ring: 210 13% 55%}@font-face{font-family:Inter;src:local("Inter") format("truetype-variations");font-weight:100 900}.shade{font-family:Inter,-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif;font-size:1.4rem;line-height:1.5;--tw-text-opacity: 1;color:rgb(21 23 26 / var(--tw-text-opacity))}body{background-color:hsl(var(--background));font-family:Inter,-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif;color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.shade .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.shade .pointer-events-none{pointer-events:none}.shade .fixed{position:fixed}.shade .absolute{position:absolute}.shade .relative{position:relative}.shade .inset-0{inset:0px}.shade .inset-x-0{left:0px;right:0px}.shade .inset-y-0{top:0px;bottom:0px}.shade .bottom-0{bottom:0px}.shade .left-0{left:0px}.shade .left-2{left:.8rem}.shade .left-\\[50\\%\\]{left:50%}.shade .right-0{right:0px}.shade .right-1{right:.4rem}.shade .right-2{right:.8rem}.shade .right-3{right:1.2rem}.shade .right-4{right:1.6rem}.shade .top-0{top:0px}.shade .top-1\\.5{top:.6rem}.shade .top-3\\.5{top:1.4rem}.shade .top-4{top:1.6rem}.shade .top-\\[50\\%\\]{top:50%}.shade .top-\\[8vmin\\]{top:8vmin}.shade .z-10{z-index:10}.shade .z-20{z-index:20}.shade .z-50{z-index:50}.shade .col-span-2{grid-column:span 2 / span 2}.shade .-mx-1{margin-left:-.4rem;margin-right:-.4rem}.shade .mx-2{margin-left:.8rem;margin-right:.8rem}.shade .mx-3\\.5{margin-left:1.4rem;margin-right:1.4rem}.shade .mx-auto{margin-left:auto;margin-right:auto}.shade .my-0\\.5{margin-top:.2rem;margin-bottom:.2rem}.shade .my-1{margin-top:.4rem;margin-bottom:.4rem}.shade .my-8{margin-top:3.2rem;margin-bottom:3.2rem}.shade .-mt-1{margin-top:-.4rem}.shade .-mt-px{margin-top:-1px}.shade .ml-auto{margin-left:auto}.shade .mt-2{margin-top:.8rem}.shade .mt-4{margin-top:1.6rem}.shade .block{display:block}.shade .inline-block{display:inline-block}.shade .flex{display:flex}.shade .inline-flex{display:inline-flex}.shade .table{display:table}.shade .grid{display:grid}.shade .hidden{display:none}.shade .aspect-auto{aspect-ratio:auto}.shade .aspect-square{aspect-ratio:1 / 1}.shade .aspect-video{aspect-ratio:16 / 9}.shade .size-4{width:1.6rem;height:1.6rem}.shade .h-10{height:4rem}.shade .h-12{height:4.8rem}.shade .h-2{height:.8rem}.shade .h-2\\.5{height:1rem}.shade .h-3{height:1.2rem}.shade .h-3\\.5{height:1.4rem}.shade .h-4{height:1.6rem}.shade .h-5{height:2rem}.shade .h-6{height:2.4rem}.shade .h-7{height:2.8rem}.shade .h-8{height:3.2rem}.shade .h-9{height:3.6rem}.shade .h-\\[1px\\]{height:1px}.shade .h-\\[250px\\]{height:250px}.shade .h-\\[34px\\]{height:34px}.shade .h-\\[44px\\]{height:44px}.shade .h-auto{height:auto}.shade .h-full{height:100%}.shade .h-px{height:1px}.shade .h-svh{height:100svh}.shade .min-h-0{min-height:0px}.shade .min-h-5{min-height:2rem}.shade .min-h-\\[250px\\]{min-height:250px}.shade .min-h-\\[38px\\]{min-height:38px}.shade .min-h-full{min-height:100%}.shade .min-h-svh{min-height:100svh}.shade .w-0{width:0px}.shade .w-1{width:.4rem}.shade .w-1\\/3{width:33.333333%}.shade .w-2{width:.8rem}.shade .w-2\\.5{width:1rem}.shade .w-3{width:1.2rem}.shade .w-3\\.5{width:1.4rem}.shade .w-3\\/4{width:75%}.shade .w-4{width:1.6rem}.shade .w-5{width:2rem}.shade .w-6{width:2.4rem}.shade .w-7{width:2.8rem}.shade .w-8{width:3.2rem}.shade .w-9{width:3.6rem}.shade .w-\\[--sidebar-width\\]{width:var(--sidebar-width)}.shade .w-\\[100px\\]{width:100px}.shade .w-\\[1px\\]{width:1px}.shade .w-\\[calc\\(100\\%\\+8px\\)\\]{width:calc(100% + 8px)}.shade .w-auto{width:auto}.shade .w-full{width:100%}.shade .min-w-0{min-width:0px}.shade .min-w-48{min-width:19.2rem}.shade .min-w-5{min-width:2rem}.shade .min-w-\\[8rem\\]{min-width:8rem}.shade .max-w-2xl{max-width:67.2rem}.shade .max-w-\\[--skeleton-width\\]{max-width:var(--skeleton-width)}.shade .max-w-\\[960px\\]{max-width:960px}.shade .max-w-lg{max-width:51.2rem}.shade .max-w-page{max-width:148rem}.shade .flex-1{flex:1 1 0%}.shade .shrink-0{flex-shrink:0}.shade .grow{flex-grow:1}.shade .basis-\\[300px\\]{flex-basis:300px}.shade .caption-bottom{caption-side:bottom}.shade .-translate-x-1\\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade .-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade .translate-x-\\[-50\\%\\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade .translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade .translate-y-\\[-50\\%\\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade .transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.shade .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.shade .cursor-default{cursor:default}.shade .cursor-pointer{cursor:pointer}.shade .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.shade .scroll-m-20{scroll-margin:8rem}.shade .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.shade .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.shade .grid-cols-\\[auto_300px\\]{grid-template-columns:auto 300px}.shade .flex-col{flex-direction:column}.shade .flex-col-reverse{flex-direction:column-reverse}.shade .flex-wrap{flex-wrap:wrap}.shade .items-start{align-items:flex-start}.shade .items-end{align-items:flex-end}.shade .items-center{align-items:center}.shade .items-stretch{align-items:stretch}.shade .justify-center{justify-content:center}.shade .justify-between{justify-content:space-between}.shade .gap-0{gap:0px}.shade .gap-0\\.5{gap:.2rem}.shade .gap-1{gap:.4rem}.shade .gap-1\\.5{gap:.6rem}.shade .gap-2{gap:.8rem}.shade .gap-3{gap:1.2rem}.shade .gap-4{gap:1.6rem}.shade .gap-5{gap:2rem}.shade .gap-6{gap:2.4rem}.shade .gap-7{gap:2.8rem}.shade .gap-px{gap:1px}.shade :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(.6rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.6rem * var(--tw-space-y-reverse))}.shade :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(.8rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.8rem * var(--tw-space-y-reverse))}.shade .self-start{align-self:flex-start}.shade .overflow-auto{overflow:auto}.shade .overflow-hidden{overflow:hidden}.shade .whitespace-nowrap{white-space:nowrap}.shade .break-words{overflow-wrap:break-word}.shade .rounded-\\[2px\\]{border-radius:2px}.shade .rounded-full{border-radius:9999px}.shade .rounded-lg{border-radius:var(--radius)}.shade .rounded-md{border-radius:calc(var(--radius) - 2px)}.shade .rounded-sm{border-radius:calc(var(--radius) - 4px)}.shade .rounded-xl{border-radius:1.2rem}.shade .border{border-width:1px}.shade .border-\\[1\\.5px\\]{border-width:1.5px}.shade .border-b{border-bottom-width:1px}.shade .border-l{border-left-width:1px}.shade .border-r{border-right-width:1px}.shade .border-t{border-top-width:1px}.shade .border-dashed{border-style:dashed}.shade .border-\\[--color-border\\]{border-color:var(--color-border)}.shade .border-border{border-color:hsl(var(--border))}.shade .border-border\\/50{border-color:hsl(var(--border) / .5)}.shade .border-gray-200{--tw-border-opacity: 1;border-color:rgb(235 238 240 / var(--tw-border-opacity))}.shade .border-input{border-color:hsl(var(--input))}.shade .border-sidebar-border{border-color:hsl(var(--sidebar-border))}.shade .border-transparent{border-color:transparent}.shade .bg-\\[--color-bg\\]{background-color:var(--color-bg)}.shade .bg-background{background-color:hsl(var(--background))}.shade .bg-black\\/30{background-color:#15171a4d}.shade .bg-black\\/80{background-color:#15171acc}.shade .bg-border{background-color:hsl(var(--border))}.shade .bg-card{background-color:hsl(var(--card))}.shade .bg-destructive{background-color:hsl(var(--destructive))}.shade .bg-destructive\\/20{background-color:hsl(var(--destructive) / .2)}.shade .bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(244 245 246 / var(--tw-bg-opacity))}.shade .bg-green\\/20{background-color:#30cf4333}.shade .bg-muted{background-color:hsl(var(--muted))}.shade .bg-muted\\/50{background-color:hsl(var(--muted) / .5)}.shade .bg-muted\\/70{background-color:hsl(var(--muted) / .7)}.shade .bg-popover{background-color:hsl(var(--popover))}.shade .bg-primary{background-color:hsl(var(--primary))}.shade .bg-primary\\/10{background-color:hsl(var(--primary) / .1)}.shade .bg-secondary{background-color:hsl(var(--secondary))}.shade .bg-sidebar{background-color:hsl(var(--sidebar-background))}.shade .bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.shade .bg-transparent{background-color:transparent}.shade .bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.shade .fill-current{fill:currentColor}.shade .fill-foreground{fill:hsl(var(--foreground))}.shade .fill-muted-foreground{fill:hsl(var(--muted-foreground))}.shade .p-0{padding:0}.shade .p-1{padding:.4rem}.shade .p-2{padding:.8rem}.shade .p-5{padding:2rem}.shade .p-6{padding:2.4rem}.shade .px-0{padding-left:0;padding-right:0}.shade .px-1{padding-left:.4rem;padding-right:.4rem}.shade .px-1\\.5{padding-left:.6rem;padding-right:.6rem}.shade .px-2{padding-left:.8rem;padding-right:.8rem}.shade .px-2\\.5{padding-left:1rem;padding-right:1rem}.shade .px-3{padding-left:1.2rem;padding-right:1.2rem}.shade .px-6{padding-left:2.4rem;padding-right:2.4rem}.shade .px-8{padding-left:3.2rem;padding-right:3.2rem}.shade .px-\\[3px\\]{padding-left:3px;padding-right:3px}.shade .py-0\\.5{padding-top:.2rem;padding-bottom:.2rem}.shade .py-1{padding-top:.4rem;padding-bottom:.4rem}.shade .py-1\\.5{padding-top:.6rem;padding-bottom:.6rem}.shade .py-2{padding-top:.8rem;padding-bottom:.8rem}.shade .py-3{padding-top:1.2rem;padding-bottom:1.2rem}.shade .py-5{padding-top:2rem;padding-bottom:2rem}.shade .py-6{padding-top:2.4rem;padding-bottom:2.4rem}.shade .pb-1{padding-bottom:.4rem}.shade .pb-3{padding-bottom:1.2rem}.shade .pl-6{padding-left:2.4rem}.shade .pl-8{padding-left:3.2rem}.shade .pr-2{padding-right:.8rem}.shade .pt-0{padding-top:0}.shade .pt-3{padding-top:1.2rem}.shade .pt-9{padding-top:3.6rem}.shade .text-left{text-align:left}.shade .text-center{text-align:center}.shade .text-right{text-align:right}.shade .align-middle{vertical-align:middle}.shade .font-mono{font-family:Consolas,Liberation Mono,Menlo,Courier,monospace}.shade .text-2xl{font-size:2.2rem}.shade .text-3xl{font-size:2.7rem}.shade .text-base{font-size:1.4rem}.shade .text-lg{font-size:1.5rem}.shade .text-md{font-size:1.4rem}.shade .text-sm{font-size:1.3rem}.shade .text-xl{font-size:1.7rem}.shade .text-xs{font-size:1.2rem}.shade .font-bold{font-weight:700}.shade .font-medium{font-weight:500}.shade .font-normal{font-weight:400}.shade .font-semibold{font-weight:600}.shade .tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.shade .leading-none{line-height:1}.shade .leading-supertight{line-height:1.1em}.shade .tracking-normal{letter-spacing:0}.shade .tracking-tight{letter-spacing:-.01em}.shade .tracking-wider{letter-spacing:.025em}.shade .text-black{--tw-text-opacity: 1;color:rgb(21 23 26 / var(--tw-text-opacity))}.shade .text-card-foreground{color:hsl(var(--card-foreground))}.shade .text-destructive{color:hsl(var(--destructive))}.shade .text-destructive-foreground{color:hsl(var(--destructive-foreground))}.shade .text-foreground{color:hsl(var(--foreground))}.shade .text-gray-600{--tw-text-opacity: 1;color:rgb(149 161 173 / var(--tw-text-opacity))}.shade .text-gray-700{--tw-text-opacity: 1;color:rgb(124 139 154 / var(--tw-text-opacity))}.shade .text-gray-800{--tw-text-opacity: 1;color:rgb(98 109 121 / var(--tw-text-opacity))}.shade .text-green{--tw-text-opacity: 1;color:rgb(48 207 67 / var(--tw-text-opacity))}.shade .text-muted-foreground{color:hsl(var(--muted-foreground))}.shade .text-popover-foreground{color:hsl(var(--popover-foreground))}.shade .text-primary{color:hsl(var(--primary))}.shade .text-primary-foreground{color:hsl(var(--primary-foreground))}.shade .text-red{--tw-text-opacity: 1;color:rgb(245 11 35 / var(--tw-text-opacity))}.shade .text-secondary-foreground{color:hsl(var(--secondary-foreground))}.shade .text-secondary-foreground\\/70{color:hsl(var(--secondary-foreground) / .7)}.shade .text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.shade .text-sidebar-foreground\\/70{color:hsl(var(--sidebar-foreground) / .7)}.shade .underline{text-decoration-line:underline}.shade .underline-offset-4{text-underline-offset:4px}.shade .opacity-60{opacity:.6}.shade .opacity-70{opacity:.7}.shade .shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-border\\)\\)\\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .shadow-lg{--tw-shadow: 0 0 7px rgba(0, 0, 0, .08), 0 2.1px 2.2px -5px rgba(0, 0, 0, .011), 0 5.1px 5.3px -5px rgba(0, 0, 0, .016), 0 9.5px 10px -5px rgba(0, 0, 0, .02), 0 17px 17.9px -5px rgba(0, 0, 0, .024), 0 31.8px 33.4px -5px rgba(0, 0, 0, .029), 0 76px 80px -5px rgba(0, 0, 0, .04);--tw-shadow-colored: 0 0 7px var(--tw-shadow-color), 0 2.1px 2.2px -5px var(--tw-shadow-color), 0 5.1px 5.3px -5px var(--tw-shadow-color), 0 9.5px 10px -5px var(--tw-shadow-color), 0 17px 17.9px -5px var(--tw-shadow-color), 0 31.8px 33.4px -5px var(--tw-shadow-color), 0 76px 80px -5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .shadow-md{--tw-shadow: 0 0 1px rgba(0,0,0,.12), 0 1px 6px rgba(0,0,0,.03), 0 8px 10px -8px rgba(0,0,0,.05), 0px 24px 37px -21px rgba(0, 0, 0, .05);--tw-shadow-colored: 0 0 1px var(--tw-shadow-color), 0 1px 6px var(--tw-shadow-color), 0 8px 10px -8px var(--tw-shadow-color), 0px 24px 37px -21px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .shadow-sm{--tw-shadow: 0 0 1px rgba(0,0,0,.12), 0 1px 6px rgba(0,0,0,.03), 0 8px 10px -8px rgba(0,0,0,.1);--tw-shadow-colored: 0 0 1px var(--tw-shadow-color), 0 1px 6px var(--tw-shadow-color), 0 8px 10px -8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .shadow-xl{--tw-shadow: 0 2.8px 2.2px rgba(0, 0, 0, .02), 0 6.7px 5.3px rgba(0, 0, 0, .028), 0 12.5px 10px rgba(0, 0, 0, .035), 0 22.3px 17.9px rgba(0, 0, 0, .042), 0 41.8px 33.4px rgba(0, 0, 0, .05), 0 100px 80px rgba(0, 0, 0, .07);--tw-shadow-colored: 0 2.8px 2.2px var(--tw-shadow-color), 0 6.7px 5.3px var(--tw-shadow-color), 0 12.5px 10px var(--tw-shadow-color), 0 22.3px 17.9px var(--tw-shadow-color), 0 41.8px 33.4px var(--tw-shadow-color), 0 100px 80px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .outline-none{outline:2px solid transparent;outline-offset:2px}.shade .outline{outline-style:solid}.shade .ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.shade .ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.shade .filter{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)}.shade .backdrop-blur-none{--tw-backdrop-blur: ;-webkit-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);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)}.shade .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-\\[left\\,right\\,width\\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-\\[margin\\,opa\\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-\\[width\\,height\\,padding\\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-\\[width\\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .duration-200{transition-duration:.2s}.shade .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.shade .ease-linear{transition-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.shade .animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.shade .fade-in-0{--tw-enter-opacity: 0}.shade .zoom-in-95{--tw-enter-scale: .95}.shade .duration-200{animation-duration:.2s}.shade .ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.shade .ease-linear{animation-timing-function:linear}.shade{line-height:1.5;-ms-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;letter-spacing:unset;height:100vh;width:100%;overflow-x:hidden;overflow-y:auto}@media (max-width: 800px){.shade{height:calc(100vh - 55px)}}.dark .shade{color:#fafafb}.dark .shade .gh-loading-orb-container{background-color:#000}.dark .shade .gh-loading-orb{filter:invert(100%)}.shade .no-scrollbar::-webkit-scrollbar{display:none}.shade .no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.gh-prose-links a{color:#30cf43}.shade .file\\:border-0::file-selector-button{border-width:0px}.shade .file\\:bg-transparent::file-selector-button{background-color:transparent}.shade .file\\:text-sm::file-selector-button{font-size:1.3rem}.shade .file\\:font-medium::file-selector-button{font-weight:500}.shade .file\\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.shade .placeholder\\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.shade .placeholder\\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.shade .before\\:absolute:before{content:var(--tw-content);position:absolute}.shade .before\\:-inset-x-2:before{content:var(--tw-content);left:-.8rem;right:-.8rem}.shade .before\\:-inset-y-px:before{content:var(--tw-content);top:-1px;bottom:-1px}.shade .before\\:rounded-md:before{content:var(--tw-content);border-radius:calc(var(--radius) - 2px)}.shade .before\\:content-\\[\\"\\"\\]:before{--tw-content: "";content:var(--tw-content)}.shade .after\\:absolute:after{content:var(--tw-content);position:absolute}.shade .after\\:-inset-2:after{content:var(--tw-content);inset:-.8rem}.shade .after\\:inset-y-0:after{content:var(--tw-content);top:0px;bottom:0px}.shade .after\\:left-1\\/2:after{content:var(--tw-content);left:50%}.shade .after\\:w-\\[2px\\]:after{content:var(--tw-content);width:2px}.shade .first\\:mt-0:first-child{margin-top:0}.shade .first-of-type\\:pl-0:first-of-type{padding-left:0}.shade .last-of-type\\:pr-0:last-of-type{padding-right:0}.shade .hover\\:border-transparent:hover{border-color:transparent}.shade .hover\\:bg-accent:hover{background-color:hsl(var(--accent))}.shade .hover\\:bg-destructive\\/90:hover{background-color:hsl(var(--destructive) / .9)}.shade .hover\\:bg-muted\\/50:hover{background-color:hsl(var(--muted) / .5)}.shade .hover\\:bg-primary\\/90:hover{background-color:hsl(var(--primary) / .9)}.shade .hover\\:bg-secondary\\/80:hover{background-color:hsl(var(--secondary) / .8)}.shade .hover\\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.shade .hover\\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.shade .hover\\:text-foreground:hover{color:hsl(var(--foreground))}.shade .hover\\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.shade .hover\\:underline:hover{text-decoration-line:underline}.shade .hover\\:opacity-100:hover{opacity:1}.shade .hover\\:shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-accent\\)\\)\\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .hover\\:before\\:bg-muted\\/50:hover:before{content:var(--tw-content);background-color:hsl(var(--muted) / .5)}.shade .hover\\:after\\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.shade .focus\\:bg-accent:focus{background-color:hsl(var(--accent))}.shade .focus\\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.shade .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.shade .focus\\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.shade .focus\\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.shade .focus\\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.shade .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.shade .focus-visible\\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.shade .focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.shade .focus-visible\\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.shade .focus-visible\\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.shade .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.shade .active\\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.shade .active\\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.shade .disabled\\:pointer-events-none:disabled{pointer-events:none}.shade .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.shade .disabled\\:opacity-50:disabled{opacity:.5}.shade :is(.group\\/menu-item:focus-within .group-focus-within\\/menu-item\\:opacity-100){opacity:1}.shade :is(.group\\/menu-item:hover .group-hover\\/menu-item\\:opacity-100){opacity:1}.shade :is(.peer\\/menu-button:hover~.peer-hover\\/menu-button\\:text-sidebar-accent-foreground){color:hsl(var(--sidebar-accent-foreground))}.shade .has-\\[\\[data-variant\\=inset\\]\\]\\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.shade :is(.group\\/menu-item:has([data-sidebar=menu-action]) .group-has-\\[\\[data-sidebar\\=menu-action\\]\\]\\/menu-item\\:pr-8){padding-right:3.2rem}.shade .aria-disabled\\:pointer-events-none[aria-disabled=true]{pointer-events:none}.shade .aria-disabled\\:opacity-50[aria-disabled=true]{opacity:.5}.shade .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.shade .data-\\[active\\=true\\]\\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.shade .data-\\[state\\=active\\]\\:bg-background[data-state=active]{background-color:hsl(var(--background))}.shade .data-\\[state\\=active\\]\\:bg-muted\\/70[data-state=active]{background-color:hsl(var(--muted) / .7)}.shade .data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.shade .data-\\[state\\=open\\]\\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.shade .data-\\[state\\=selected\\]\\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.shade .data-\\[active\\=true\\]\\:font-semibold[data-active=true],.shade .data-\\[state\\=active\\]\\:font-semibold[data-state=active]{font-weight:600}.shade .data-\\[active\\=true\\]\\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.shade .data-\\[state\\=active\\]\\:text-black[data-state=active]{--tw-text-opacity: 1;color:rgb(21 23 26 / var(--tw-text-opacity))}.shade .data-\\[state\\=active\\]\\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.shade .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.shade .data-\\[state\\=open\\]\\:opacity-100[data-state=open]{opacity:1}.shade .data-\\[state\\=active\\]\\:shadow-md[data-state=active]{--tw-shadow: 0 0 1px rgba(0,0,0,.12), 0 1px 6px rgba(0,0,0,.03), 0 8px 10px -8px rgba(0,0,0,.05), 0px 24px 37px -21px rgba(0, 0, 0, .05);--tw-shadow-colored: 0 0 1px var(--tw-shadow-color), 0 1px 6px var(--tw-shadow-color), 0 8px 10px -8px var(--tw-shadow-color), 0px 24px 37px -21px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .data-\\[state\\=open\\]\\:backdrop-blur-\\[3px\\][data-state=open]{--tw-backdrop-blur: blur(3px);-webkit-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);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)}.shade .data-\\[state\\=closed\\]\\:duration-300[data-state=closed]{transition-duration:.3s}.shade .data-\\[state\\=open\\]\\:duration-500[data-state=open]{transition-duration:.5s}.shade .data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.shade .data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.shade .data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.shade .data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.shade .data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.shade .data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.shade .data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.8rem}.shade .data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .8rem}.shade .data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.8rem}.shade .data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .8rem}.shade .data-\\[state\\=closed\\]\\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.shade .data-\\[state\\=closed\\]\\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.shade .data-\\[state\\=closed\\]\\:slide-out-to-left-1\\/2[data-state=closed]{--tw-exit-translate-x: -50%}.shade .data-\\[state\\=closed\\]\\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.shade .data-\\[state\\=closed\\]\\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.shade .data-\\[state\\=closed\\]\\:slide-out-to-top-\\[48\\%\\][data-state=closed]{--tw-exit-translate-y: -48%}.shade .data-\\[state\\=open\\]\\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.shade .data-\\[state\\=open\\]\\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.shade .data-\\[state\\=open\\]\\:slide-in-from-left-1\\/2[data-state=open]{--tw-enter-translate-x: -50%}.shade .data-\\[state\\=open\\]\\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.shade .data-\\[state\\=open\\]\\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.shade .data-\\[state\\=open\\]\\:slide-in-from-top-\\[48\\%\\][data-state=open]{--tw-enter-translate-y: -48%}.shade .data-\\[state\\=closed\\]\\:duration-300[data-state=closed]{animation-duration:.3s}.shade .data-\\[state\\=open\\]\\:duration-500[data-state=open]{animation-duration:.5s}.shade .data-\\[state\\=active\\]\\:after\\:absolute[data-state=active]:after{content:var(--tw-content);position:absolute}.shade .data-\\[state\\=active\\]\\:after\\:inset-x-0[data-state=active]:after{content:var(--tw-content);left:0px;right:0px}.shade .data-\\[state\\=active\\]\\:after\\:bottom-\\[-5px\\][data-state=active]:after{content:var(--tw-content);bottom:-5px}.shade .data-\\[state\\=active\\]\\:after\\:h-0\\.5[data-state=active]:after{content:var(--tw-content);height:.2rem}.shade .data-\\[state\\=active\\]\\:after\\:bg-black[data-state=active]:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(21 23 26 / var(--tw-bg-opacity))}.shade .data-\\[state\\=active\\]\\:after\\:content-\\[\\"\\"\\][data-state=active]:after{--tw-content: "";content:var(--tw-content)}.shade .data-\\[state\\=open\\]\\:hover\\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.shade .data-\\[state\\=open\\]\\:hover\\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.shade :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:left-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\]){left:calc(var(--sidebar-width) * -1)}.shade :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:right-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\]){right:calc(var(--sidebar-width) * -1)}.shade :is(.group[data-side=left] .group-data-\\[side\\=left\\]\\:-right-4){right:-1.6rem}.shade :is(.group[data-side=right] .group-data-\\[side\\=right\\]\\:left-0){left:0px}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:-mt-8){margin-top:-3.2rem}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:hidden){display:none}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:\\!size-8){width:3.2rem!important;height:3.2rem!important}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:w-\\[--sidebar-width-icon\\]){width:var(--sidebar-width-icon)}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)_\\+_theme\\(spacing\\.4\\)\\)\\]){width:calc(var(--sidebar-width-icon) + 1.6rem)}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)_\\+_theme\\(spacing\\.4\\)_\\+2px\\)\\]){width:calc(var(--sidebar-width-icon) + 1.6rem + 2px)}.shade :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:w-0){width:0px}.shade :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:translate-x-0){--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade :is(.group[data-side=right] .group-data-\\[side\\=right\\]\\:rotate-180){--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:overflow-hidden){overflow:hidden}.shade :is(.group[data-variant=floating] .group-data-\\[variant\\=floating\\]\\:rounded-lg){border-radius:var(--radius)}.shade :is(.group[data-variant=floating] .group-data-\\[variant\\=floating\\]\\:border){border-width:1px}.shade :is(.group[data-side=left] .group-data-\\[side\\=left\\]\\:border-r){border-right-width:1px}.shade :is(.group[data-side=right] .group-data-\\[side\\=right\\]\\:border-l){border-left-width:1px}.shade :is(.group[data-variant=floating] .group-data-\\[variant\\=floating\\]\\:border-sidebar-border){border-color:hsl(var(--sidebar-border))}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:\\!p-0){padding:0!important}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:\\!p-2){padding:.8rem!important}.shade :is(.group\\/item[data-state=active] .group-data-\\[state\\=active\\]\\/item\\:text-gray-800){--tw-text-opacity: 1;color:rgb(98 109 121 / var(--tw-text-opacity))}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:opacity-0){opacity:0}.shade :is(.group[data-variant=floating] .group-data-\\[variant\\=floating\\]\\:shadow){--tw-shadow: 0 0 1px rgba(0,0,0,.05), 0 5px 18px rgba(0,0,0,.08);--tw-shadow-colored: 0 0 1px var(--tw-shadow-color), 0 5px 18px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:after\\:left-full):after{content:var(--tw-content);left:100%}.shade :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:hover\\:bg-sidebar:hover){background-color:hsl(var(--sidebar-background))}.shade :is(.peer\\/menu-button[data-size=default]~.peer-data-\\[size\\=default\\]\\/menu-button\\:top-1\\.5){top:.6rem}.shade :is(.peer\\/menu-button[data-size=default]~.peer-data-\\[size\\=default\\]\\/menu-button\\:top-2){top:.8rem}.shade :is(.peer\\/menu-button[data-size=lg]~.peer-data-\\[size\\=lg\\]\\/menu-button\\:top-2\\.5){top:1rem}.shade :is(.peer\\/menu-button[data-size=lg]~.peer-data-\\[size\\=lg\\]\\/menu-button\\:top-3){top:1.2rem}.shade :is(.peer\\/menu-button[data-size=sm]~.peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1){top:.4rem}.shade :is(.peer\\/menu-button[data-size=sm]~.peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1\\.5){top:.6rem}.shade :is(.peer[data-variant=inset]~.peer-data-\\[variant\\=inset\\]\\:min-h-\\[calc\\(100svh-theme\\(spacing\\.4\\)\\)\\]){min-height:calc(100svh - 1.6rem)}.shade :is(.peer\\/menu-button[data-active=true]~.peer-data-\\[active\\=true\\]\\/menu-button\\:text-sidebar-accent-foreground){color:hsl(var(--sidebar-accent-foreground))}@media (min-width: 480px){.shade .sm\\:mt-0{margin-top:0}.shade .sm\\:flex{display:flex}.shade .sm\\:max-w-sm{max-width:38.4rem}.shade .sm\\:flex-row{flex-direction:row}.shade .sm\\:justify-end{justify-content:flex-end}.shade .sm\\:gap-2\\.5{gap:1rem}.shade :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(.8rem * var(--tw-space-x-reverse));margin-left:calc(.8rem * calc(1 - var(--tw-space-x-reverse)))}.shade .sm\\:rounded-lg{border-radius:var(--radius)}.shade .sm\\:text-left{text-align:left}}@media (min-width: 640px){.shade .md\\:block{display:block}.shade .md\\:flex{display:flex}.shade .md\\:text-sm{font-size:1.3rem}.shade .md\\:opacity-0{opacity:0}.shade .after\\:md\\:hidden:after{content:var(--tw-content);display:none}.shade :is(.peer[data-variant=inset]~.md\\:peer-data-\\[variant\\=inset\\]\\:m-2){margin:.8rem}.shade :is(.peer[data-state=collapsed][data-variant=inset]~.md\\:peer-data-\\[state\\=collapsed\\]\\:peer-data-\\[variant\\=inset\\]\\:ml-2){margin-left:.8rem}.shade :is(.peer[data-variant=inset]~.md\\:peer-data-\\[variant\\=inset\\]\\:ml-0){margin-left:0}.shade :is(.peer[data-variant=inset]~.md\\:peer-data-\\[variant\\=inset\\]\\:rounded-xl){border-radius:1.2rem}.shade :is(.peer[data-variant=inset]~.md\\:peer-data-\\[variant\\=inset\\]\\:shadow){--tw-shadow: 0 0 1px rgba(0,0,0,.05), 0 5px 18px rgba(0,0,0,.08);--tw-shadow-colored: 0 0 1px var(--tw-shadow-color), 0 5px 18px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}.shade .dark\\:bg-\\[\\#101114\\]:where(.dark,.dark *){--tw-bg-opacity: 1;background-color:rgb(16 17 20 / var(--tw-bg-opacity))}.shade .\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0:has([role=checkbox]){padding-right:0}.shade :is(.\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\]>[role=checkbox]){--tw-translate-y: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade :is(.\\[\\&\\>button\\]\\:hidden>button){display:none}.shade :is(.\\[\\&\\>span\\:last-child\\]\\:truncate>span:last-child){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shade :is(.\\[\\&\\>svg\\]\\:size-4>svg){width:1.6rem;height:1.6rem}.shade :is(.\\[\\&\\>svg\\]\\:h-2\\.5>svg){height:1rem}.shade :is(.\\[\\&\\>svg\\]\\:h-3>svg){height:1.2rem}.shade :is(.\\[\\&\\>svg\\]\\:h-3\\.5>svg){height:1.4rem}.shade :is(.\\[\\&\\>svg\\]\\:w-2\\.5>svg){width:1rem}.shade :is(.\\[\\&\\>svg\\]\\:w-3>svg){width:1.2rem}.shade :is(.\\[\\&\\>svg\\]\\:w-3\\.5>svg){width:1.4rem}.shade :is(.\\[\\&\\>svg\\]\\:shrink-0>svg){flex-shrink:0}.shade :is(.\\[\\&\\>svg\\]\\:text-muted-foreground>svg){color:hsl(var(--muted-foreground))}.shade :is(.\\[\\&\\>svg\\]\\:text-sidebar-accent-foreground>svg){color:hsl(var(--sidebar-accent-foreground))}.shade :is(.\\[\\&\\>tr\\]\\:last\\:border-b-0:last-child>tr){border-bottom-width:0px}.shade :is(.\\[\\&_\\.recharts-cartesian-axis-tick_text\\]\\:fill-muted-foreground .recharts-cartesian-axis-tick text){fill:hsl(var(--muted-foreground))}.shade :is(.\\[\\&_\\.recharts-cartesian-grid_line\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border\\/50 .recharts-cartesian-grid line[stroke="#ccc"]){stroke:hsl(var(--border) / .5)}.shade :is(.\\[\\&_\\.recharts-curve\\.recharts-tooltip-cursor\\]\\:stroke-border .recharts-curve.recharts-tooltip-cursor){stroke:hsl(var(--border))}.shade :is(.\\[\\&_\\.recharts-dot\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent .recharts-dot[stroke="#fff"]){stroke:transparent}.shade :is(.\\[\\&_\\.recharts-layer\\]\\:outline-none .recharts-layer){outline:2px solid transparent;outline-offset:2px}.shade :is(.\\[\\&_\\.recharts-polar-grid_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border .recharts-polar-grid [stroke="#ccc"]){stroke:hsl(var(--border))}.shade :is(.\\[\\&_\\.recharts-radial-bar-background-sector\\]\\:fill-muted .recharts-radial-bar-background-sector){fill:hsl(var(--muted))}.shade :is(.\\[\\&_\\.recharts-rectangle\\.recharts-tooltip-cursor\\]\\:fill-muted .recharts-rectangle.recharts-tooltip-cursor){fill:hsl(var(--muted))}.shade :is(.\\[\\&_\\.recharts-reference-line_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border .recharts-reference-line [stroke="#ccc"]){stroke:hsl(var(--border))}.shade :is(.\\[\\&_\\.recharts-sector\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent .recharts-sector[stroke="#fff"]){stroke:transparent}.shade :is(.\\[\\&_\\.recharts-sector\\]\\:outline-none .recharts-sector){outline:2px solid transparent;outline-offset:2px}.shade :is(.\\[\\&_\\.recharts-surface\\]\\:outline-none .recharts-surface){outline:2px solid transparent;outline-offset:2px}.shade :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.shade :is(.\\[\\&_svg\\]\\:size-3 svg){width:1.2rem;height:1.2rem}.shade :is(.\\[\\&_svg\\]\\:size-4 svg){width:1.6rem;height:1.6rem}.shade :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}.shade :is(.\\[\\&_tr\\:hover\\:before\\]\\:bg-transparent tr:hover):before{background-color:transparent}.shade :is(.\\[\\&_tr\\]\\:border-transparent tr){border-color:transparent}.shade :is(:hover+.\\[\\:hover_\\+_\\&\\]\\:border-transparent){border-color:transparent}.shade :is([data-side=left][data-collapsible=offcanvas] .\\[\\[data-side\\=left\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-right-2){right:-.8rem}.shade :is([data-side=left][data-state=collapsed] .\\[\\[data-side\\=left\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize){cursor:e-resize}.shade :is([data-side=left] .\\[\\[data-side\\=left\\]_\\&\\]\\:cursor-w-resize){cursor:w-resize}.shade :is([data-side=right][data-collapsible=offcanvas] .\\[\\[data-side\\=right\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-left-2){left:-.8rem}.shade :is([data-side=right][data-state=collapsed] .\\[\\[data-side\\=right\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize){cursor:w-resize}.shade :is([data-side=right] .\\[\\[data-side\\=right\\]_\\&\\]\\:cursor-e-resize){cursor:e-resize}`)),document.head.appendChild(a)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(`@import"https://fonts.bunny.net/css?family=cardo:400,700";@import"https://fonts.bunny.net/css?family=manrope:300,500,700";@import"https://fonts.bunny.net/css?family=merriweather:300,700";@import"https://fonts.bunny.net/css?family=nunito:400,600,700";@import"https://fonts.bunny.net/css?family=old-standard-tt:400,700";@import"https://fonts.bunny.net/css?family=prata:400";@import"https://fonts.bunny.net/css?family=roboto:400,500,700";@import"https://fonts.bunny.net/css?family=rufina:400,500,700";@import"https://fonts.bunny.net/css?family=tenor-sans:400";@import"https://fonts.bunny.net/css?family=space-grotesk:700";@import"https://fonts.bunny.net/css?family=chakra-petch:400";@import"https://fonts.bunny.net/css?family=noto-sans:400,700";@import"https://fonts.bunny.net/css?family=poppins:400,700";@import"https://fonts.bunny.net/css?family=fira-sans:400,700";@import"https://fonts.bunny.net/css?family=inter:400,700";@import"https://fonts.bunny.net/css?family=noto-serif:400,700";@import"https://fonts.bunny.net/css?family=lora:400,700";@import"https://fonts.bunny.net/css?family=ibm-plex-serif:400,700";@import"https://fonts.bunny.net/css?family=space-mono:400,700";@import"https://fonts.bunny.net/css?family=fira-mono:400,700";@import"https://fonts.bunny.net/css?family=jetbrains-mono:400,700";.shade *,.shade :before,.shade :after{box-sizing:border-box;max-width:revert;max-height:revert;min-width:revert;min-height:revert;border-width:0;border-style:solid;border-color:#ebeef0}.shade :before,.shade :after{--tw-content: ""}.shade html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.shade body{margin:0;line-height:inherit}.shade hr{height:0;color:inherit;border-top-width:1px}.shade abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.shade h1,.shade h2,.shade h3,.shade h4,.shade h5,.shade h6{margin:0;padding:0}.shade a{color:inherit;text-decoration:inherit}.shade b,.shade strong{font-weight:bolder}.shade code,.shade kbd,.shade samp,.shade pre{font-family:Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}.shade small{font-size:80%}.shade sub,.shade sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.shade sub{bottom:-.25em}.shade sup{top:-.5em}.shade table{text-indent:0;border-color:inherit;border-collapse:collapse;margin:0;width:auto;max-width:auto}.shade table td,.shade table th{padding:unset;vertical-align:middle;text-align:left;line-height:auto;-webkit-user-select:text;-moz-user-select:text;user-select:text}.shade button,.shade input,.shade optgroup,.shade select,.shade textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0;outline:none}.shade button,.shade select{text-transform:none;letter-spacing:inherit;border-radius:inherit;-moz-appearance:auto;appearance:auto;-webkit-appearance:auto;background:unset}.shade button,.shade [type=reset],.shade [type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}.shade :-moz-focusring{outline:none}.shade :-moz-ui-invalid{box-shadow:none}.shade progress{vertical-align:baseline}.shade ::-webkit-inner-spin-button,.shade ::-webkit-outer-spin-button{height:auto}.shade [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.shade ::-webkit-search-decoration{-webkit-appearance:none}.shade ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.shade summary{display:list-item}.shade blockquote,.shade dl,.shade dd,.shade h1,.shade h2,.shade h3,.shade h4,.shade h5,.shade h6,.shade hr,.shade figure,.shade p,.shade pre{margin:0}.shade fieldset{margin:0;padding:0}.shade legend{padding:0}.shade ol,.shade ul,.shade menu{list-style:none;margin:0;padding:0}.shade li{margin:unset;line-height:unset}.shade textarea{resize:vertical}.shade input::-moz-placeholder,.shade textarea::-moz-placeholder{opacity:1;--tw-text-opacity: 1;color:rgb(174 183 193 / var(--tw-text-opacity))}.shade input::placeholder,.shade textarea::placeholder{opacity:1;--tw-text-opacity: 1;color:rgb(174 183 193 / var(--tw-text-opacity))}.shade button:focus-visible,.shade input:focus-visible{outline:none}.shade img,.shade svg,.shade video,.shade canvas,.shade audio,.shade iframe,.shade embed,.shade object{display:block;vertical-align:middle}.shade img,.shade video{max-width:100%;height:auto}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(20 184 255 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(20 184 255 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:root{--background: 0 0% 100%;--foreground: 216 11% 9%;--muted: 200 12% 96%;--muted-foreground: 211 11% 43%;--popover: 0 0% 100%;--popover-foreground: 216 11% 9%;--border: 204 14% 93%;--input: 204 14% 93%;--card: 0 0% 100%;--card-foreground: 216 11% 9%;--primary: 216 11% 9%;--primary-foreground: 0 0% 100%;--secondary: 204 14% 93%;--secondary-foreground: 216 11% 9%;--accent: 200 12% 96%;--accent-foreground: 216 11% 9%;--destructive: 354 92% 50%;--destructive-foreground: 0 0% 100%;--ring: 215 13% 63%;--radius: 9px;--chart-1: 221.2 83.2% 53.3%;--chart-2: 212 95% 68%;--chart-3: 216 92% 60%;--chart-4: 210 98% 78%;--chart-5: 212 97% 87%;--sidebar-background: 0 0% 100%;--sidebar-foreground: 216 11% 9%;--sidebar-primary: 216 11% 9%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 200 12% 96%;--sidebar-accent-foreground: 216 11% 9%;--sidebar-border: 210 13% 88%;--sidebar-ring: 215 13% 63%}.dark{--background: 216 11% 9%;--foreground: 210 13% 88%;--muted: 210 11% 25%;--muted-foreground: 210 13% 63%;--accent: 210 11% 25%;--accent-foreground: 200 12% 96%;--popover: 216 11% 9%;--popover-foreground: 212 13% 72%;--border: 210 11% 25%;--input: 210 11% 25%;--card: 216 11% 9%;--card-foreground: 213 31% 91%;--primary: 200 12% 96%;--primary-foreground: 216 11% 9%;--secondary: 216 11% 9%;--secondary-foreground: 200 12% 96%;--destructive: 354 81% 31%;--destructive-foreground: 240 11% 98%;--ring: 210 11% 25%;--chart-1: 221.2 83.2% 53.3%;--chart-2: 212 95% 68%;--chart-3: 216 92% 60%;--chart-4: 210 98% 78%;--chart-5: 212 97% 87%;--sidebar-background: 216 11% 9%;--sidebar-foreground: 200 12% 96%;--sidebar-primary: 210 11% 25%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 210 11% 25%;--sidebar-accent-foreground: 200 12% 96%;--sidebar-border: 210 11% 25%;--sidebar-ring: 210 13% 55%}@font-face{font-family:Inter;src:local("Inter") format("truetype-variations");font-weight:100 900}.shade{font-family:Inter,-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif;font-size:1.4rem;line-height:1.5;--tw-text-opacity: 1;color:rgb(21 23 26 / var(--tw-text-opacity))}body{background-color:hsl(var(--background));font-family:Inter,-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif;color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.shade .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.shade .pointer-events-none{pointer-events:none}.shade .fixed{position:fixed}.shade .absolute{position:absolute}.shade .relative{position:relative}.shade .inset-0{inset:0px}.shade .inset-x-0{left:0px;right:0px}.shade .inset-y-0{top:0px;bottom:0px}.shade .bottom-0{bottom:0px}.shade .left-0{left:0px}.shade .left-2{left:.8rem}.shade .left-\\[50\\%\\]{left:50%}.shade .right-0{right:0px}.shade .right-1{right:.4rem}.shade .right-2{right:.8rem}.shade .right-3{right:1.2rem}.shade .right-4{right:1.6rem}.shade .top-0{top:0px}.shade .top-1\\.5{top:.6rem}.shade .top-3\\.5{top:1.4rem}.shade .top-4{top:1.6rem}.shade .top-\\[50\\%\\]{top:50%}.shade .top-\\[8vmin\\]{top:8vmin}.shade .z-10{z-index:10}.shade .z-20{z-index:20}.shade .z-50{z-index:50}.shade .col-span-2{grid-column:span 2 / span 2}.shade .-mx-1{margin-left:-.4rem;margin-right:-.4rem}.shade .mx-2{margin-left:.8rem;margin-right:.8rem}.shade .mx-3\\.5{margin-left:1.4rem;margin-right:1.4rem}.shade .mx-auto{margin-left:auto;margin-right:auto}.shade .my-0\\.5{margin-top:.2rem;margin-bottom:.2rem}.shade .my-1{margin-top:.4rem;margin-bottom:.4rem}.shade .my-8{margin-top:3.2rem;margin-bottom:3.2rem}.shade .-mt-1{margin-top:-.4rem}.shade .-mt-px{margin-top:-1px}.shade .ml-auto{margin-left:auto}.shade .mt-2{margin-top:.8rem}.shade .mt-4{margin-top:1.6rem}.shade .block{display:block}.shade .inline-block{display:inline-block}.shade .flex{display:flex}.shade .inline-flex{display:inline-flex}.shade .table{display:table}.shade .grid{display:grid}.shade .hidden{display:none}.shade .aspect-auto{aspect-ratio:auto}.shade .aspect-square{aspect-ratio:1 / 1}.shade .aspect-video{aspect-ratio:16 / 9}.shade .size-4{width:1.6rem;height:1.6rem}.shade .h-10{height:4rem}.shade .h-11{height:4.4rem}.shade .h-12{height:4.8rem}.shade .h-2{height:.8rem}.shade .h-2\\.5{height:1rem}.shade .h-3{height:1.2rem}.shade .h-3\\.5{height:1.4rem}.shade .h-4{height:1.6rem}.shade .h-5{height:2rem}.shade .h-6{height:2.4rem}.shade .h-7{height:2.8rem}.shade .h-8{height:3.2rem}.shade .h-9{height:3.6rem}.shade .h-\\[1px\\]{height:1px}.shade .h-\\[250px\\]{height:250px}.shade .h-\\[34px\\]{height:34px}.shade .h-\\[44px\\]{height:44px}.shade .h-auto{height:auto}.shade .h-full{height:100%}.shade .h-px{height:1px}.shade .h-svh{height:100svh}.shade .min-h-0{min-height:0px}.shade .min-h-5{min-height:2rem}.shade .min-h-\\[250px\\]{min-height:250px}.shade .min-h-\\[38px\\]{min-height:38px}.shade .min-h-full{min-height:100%}.shade .min-h-svh{min-height:100svh}.shade .w-0{width:0px}.shade .w-1{width:.4rem}.shade .w-1\\/3{width:33.333333%}.shade .w-2{width:.8rem}.shade .w-2\\.5{width:1rem}.shade .w-3{width:1.2rem}.shade .w-3\\.5{width:1.4rem}.shade .w-3\\/4{width:75%}.shade .w-4{width:1.6rem}.shade .w-5{width:2rem}.shade .w-6{width:2.4rem}.shade .w-7{width:2.8rem}.shade .w-8{width:3.2rem}.shade .w-9{width:3.6rem}.shade .w-\\[--sidebar-width\\]{width:var(--sidebar-width)}.shade .w-\\[100px\\]{width:100px}.shade .w-\\[1px\\]{width:1px}.shade .w-\\[calc\\(100\\%\\+8px\\)\\]{width:calc(100% + 8px)}.shade .w-auto{width:auto}.shade .w-full{width:100%}.shade .min-w-0{min-width:0px}.shade .min-w-48{min-width:19.2rem}.shade .min-w-5{min-width:2rem}.shade .min-w-\\[8rem\\]{min-width:8rem}.shade .max-w-2xl{max-width:67.2rem}.shade .max-w-\\[--skeleton-width\\]{max-width:var(--skeleton-width)}.shade .max-w-\\[960px\\]{max-width:960px}.shade .max-w-lg{max-width:51.2rem}.shade .max-w-page{max-width:148rem}.shade .flex-1{flex:1 1 0%}.shade .shrink-0{flex-shrink:0}.shade .grow{flex-grow:1}.shade .basis-\\[300px\\]{flex-basis:300px}.shade .caption-bottom{caption-side:bottom}.shade .-translate-x-1\\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade .-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade .translate-x-\\[-50\\%\\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade .translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade .translate-y-\\[-50\\%\\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade .transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.shade .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.shade .cursor-default{cursor:default}.shade .cursor-pointer{cursor:pointer}.shade .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.shade .scroll-m-20{scroll-margin:8rem}.shade .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.shade .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.shade .grid-cols-\\[auto_300px\\]{grid-template-columns:auto 300px}.shade .flex-col{flex-direction:column}.shade .flex-col-reverse{flex-direction:column-reverse}.shade .flex-wrap{flex-wrap:wrap}.shade .items-start{align-items:flex-start}.shade .items-end{align-items:flex-end}.shade .items-center{align-items:center}.shade .items-stretch{align-items:stretch}.shade .justify-center{justify-content:center}.shade .justify-between{justify-content:space-between}.shade .gap-0{gap:0px}.shade .gap-0\\.5{gap:.2rem}.shade .gap-1{gap:.4rem}.shade .gap-1\\.5{gap:.6rem}.shade .gap-2{gap:.8rem}.shade .gap-3{gap:1.2rem}.shade .gap-4{gap:1.6rem}.shade .gap-5{gap:2rem}.shade .gap-6{gap:2.4rem}.shade .gap-7{gap:2.8rem}.shade .gap-px{gap:1px}.shade :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(.6rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.6rem * var(--tw-space-y-reverse))}.shade :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(.8rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.8rem * var(--tw-space-y-reverse))}.shade .self-start{align-self:flex-start}.shade .overflow-auto{overflow:auto}.shade .overflow-hidden{overflow:hidden}.shade .whitespace-nowrap{white-space:nowrap}.shade .break-words{overflow-wrap:break-word}.shade .rounded-\\[2px\\]{border-radius:2px}.shade .rounded-full{border-radius:9999px}.shade .rounded-lg{border-radius:var(--radius)}.shade .rounded-md{border-radius:calc(var(--radius) - 2px)}.shade .rounded-sm{border-radius:calc(var(--radius) - 4px)}.shade .rounded-xl{border-radius:1.2rem}.shade .border{border-width:1px}.shade .border-\\[1\\.5px\\]{border-width:1.5px}.shade .border-b{border-bottom-width:1px}.shade .border-l{border-left-width:1px}.shade .border-r{border-right-width:1px}.shade .border-t{border-top-width:1px}.shade .border-dashed{border-style:dashed}.shade .border-\\[--color-border\\]{border-color:var(--color-border)}.shade .border-border{border-color:hsl(var(--border))}.shade .border-border\\/50{border-color:hsl(var(--border) / .5)}.shade .border-gray-200{--tw-border-opacity: 1;border-color:rgb(235 238 240 / var(--tw-border-opacity))}.shade .border-input{border-color:hsl(var(--input))}.shade .border-sidebar-border{border-color:hsl(var(--sidebar-border))}.shade .border-transparent{border-color:transparent}.shade .bg-\\[--color-bg\\]{background-color:var(--color-bg)}.shade .bg-background{background-color:hsl(var(--background))}.shade .bg-black\\/30{background-color:#15171a4d}.shade .bg-black\\/80{background-color:#15171acc}.shade .bg-border{background-color:hsl(var(--border))}.shade .bg-card{background-color:hsl(var(--card))}.shade .bg-destructive{background-color:hsl(var(--destructive))}.shade .bg-destructive\\/20{background-color:hsl(var(--destructive) / .2)}.shade .bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(244 245 246 / var(--tw-bg-opacity))}.shade .bg-green\\/20{background-color:#30cf4333}.shade .bg-muted{background-color:hsl(var(--muted))}.shade .bg-muted\\/50{background-color:hsl(var(--muted) / .5)}.shade .bg-muted\\/70{background-color:hsl(var(--muted) / .7)}.shade .bg-popover{background-color:hsl(var(--popover))}.shade .bg-primary{background-color:hsl(var(--primary))}.shade .bg-primary\\/10{background-color:hsl(var(--primary) / .1)}.shade .bg-secondary{background-color:hsl(var(--secondary))}.shade .bg-sidebar{background-color:hsl(var(--sidebar-background))}.shade .bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.shade .bg-transparent{background-color:transparent}.shade .bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.shade .fill-current{fill:currentColor}.shade .fill-foreground{fill:hsl(var(--foreground))}.shade .fill-muted-foreground{fill:hsl(var(--muted-foreground))}.shade .p-0{padding:0}.shade .p-1{padding:.4rem}.shade .p-2{padding:.8rem}.shade .p-5{padding:2rem}.shade .p-6{padding:2.4rem}.shade .px-0{padding-left:0;padding-right:0}.shade .px-1{padding-left:.4rem;padding-right:.4rem}.shade .px-1\\.5{padding-left:.6rem;padding-right:.6rem}.shade .px-2{padding-left:.8rem;padding-right:.8rem}.shade .px-2\\.5{padding-left:1rem;padding-right:1rem}.shade .px-3{padding-left:1.2rem;padding-right:1.2rem}.shade .px-6{padding-left:2.4rem;padding-right:2.4rem}.shade .px-8{padding-left:3.2rem;padding-right:3.2rem}.shade .px-\\[3px\\]{padding-left:3px;padding-right:3px}.shade .py-0\\.5{padding-top:.2rem;padding-bottom:.2rem}.shade .py-1{padding-top:.4rem;padding-bottom:.4rem}.shade .py-1\\.5{padding-top:.6rem;padding-bottom:.6rem}.shade .py-2{padding-top:.8rem;padding-bottom:.8rem}.shade .py-3{padding-top:1.2rem;padding-bottom:1.2rem}.shade .py-5{padding-top:2rem;padding-bottom:2rem}.shade .py-6{padding-top:2.4rem;padding-bottom:2.4rem}.shade .pb-1{padding-bottom:.4rem}.shade .pb-3{padding-bottom:1.2rem}.shade .pl-6{padding-left:2.4rem}.shade .pl-8{padding-left:3.2rem}.shade .pr-2{padding-right:.8rem}.shade .pt-0{padding-top:0}.shade .pt-3{padding-top:1.2rem}.shade .pt-9{padding-top:3.6rem}.shade .text-left{text-align:left}.shade .text-center{text-align:center}.shade .text-right{text-align:right}.shade .align-middle{vertical-align:middle}.shade .font-mono{font-family:Consolas,Liberation Mono,Menlo,Courier,monospace}.shade .text-2xl{font-size:2.2rem}.shade .text-3xl{font-size:2.7rem}.shade .text-base{font-size:1.4rem}.shade .text-lg{font-size:1.5rem}.shade .text-md{font-size:1.4rem}.shade .text-sm{font-size:1.3rem}.shade .text-xl{font-size:1.7rem}.shade .text-xs{font-size:1.2rem}.shade .font-bold{font-weight:700}.shade .font-medium{font-weight:500}.shade .font-normal{font-weight:400}.shade .font-semibold{font-weight:600}.shade .tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.shade .leading-none{line-height:1}.shade .leading-supertight{line-height:1.1em}.shade .tracking-normal{letter-spacing:0}.shade .tracking-tight{letter-spacing:-.01em}.shade .tracking-wider{letter-spacing:.025em}.shade .text-black{--tw-text-opacity: 1;color:rgb(21 23 26 / var(--tw-text-opacity))}.shade .text-card-foreground{color:hsl(var(--card-foreground))}.shade .text-destructive{color:hsl(var(--destructive))}.shade .text-destructive-foreground{color:hsl(var(--destructive-foreground))}.shade .text-foreground{color:hsl(var(--foreground))}.shade .text-gray-600{--tw-text-opacity: 1;color:rgb(149 161 173 / var(--tw-text-opacity))}.shade .text-gray-700{--tw-text-opacity: 1;color:rgb(124 139 154 / var(--tw-text-opacity))}.shade .text-gray-800{--tw-text-opacity: 1;color:rgb(98 109 121 / var(--tw-text-opacity))}.shade .text-green{--tw-text-opacity: 1;color:rgb(48 207 67 / var(--tw-text-opacity))}.shade .text-muted-foreground{color:hsl(var(--muted-foreground))}.shade .text-popover-foreground{color:hsl(var(--popover-foreground))}.shade .text-primary{color:hsl(var(--primary))}.shade .text-primary-foreground{color:hsl(var(--primary-foreground))}.shade .text-red{--tw-text-opacity: 1;color:rgb(245 11 35 / var(--tw-text-opacity))}.shade .text-secondary-foreground{color:hsl(var(--secondary-foreground))}.shade .text-secondary-foreground\\/70{color:hsl(var(--secondary-foreground) / .7)}.shade .text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.shade .text-sidebar-foreground\\/70{color:hsl(var(--sidebar-foreground) / .7)}.shade .underline{text-decoration-line:underline}.shade .underline-offset-4{text-underline-offset:4px}.shade .opacity-60{opacity:.6}.shade .opacity-70{opacity:.7}.shade .shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-border\\)\\)\\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .shadow-lg{--tw-shadow: 0 0 7px rgba(0, 0, 0, .08), 0 2.1px 2.2px -5px rgba(0, 0, 0, .011), 0 5.1px 5.3px -5px rgba(0, 0, 0, .016), 0 9.5px 10px -5px rgba(0, 0, 0, .02), 0 17px 17.9px -5px rgba(0, 0, 0, .024), 0 31.8px 33.4px -5px rgba(0, 0, 0, .029), 0 76px 80px -5px rgba(0, 0, 0, .04);--tw-shadow-colored: 0 0 7px var(--tw-shadow-color), 0 2.1px 2.2px -5px var(--tw-shadow-color), 0 5.1px 5.3px -5px var(--tw-shadow-color), 0 9.5px 10px -5px var(--tw-shadow-color), 0 17px 17.9px -5px var(--tw-shadow-color), 0 31.8px 33.4px -5px var(--tw-shadow-color), 0 76px 80px -5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .shadow-md{--tw-shadow: 0 0 1px rgba(0,0,0,.12), 0 1px 6px rgba(0,0,0,.03), 0 8px 10px -8px rgba(0,0,0,.05), 0px 24px 37px -21px rgba(0, 0, 0, .05);--tw-shadow-colored: 0 0 1px var(--tw-shadow-color), 0 1px 6px var(--tw-shadow-color), 0 8px 10px -8px var(--tw-shadow-color), 0px 24px 37px -21px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .shadow-sm{--tw-shadow: 0 0 1px rgba(0,0,0,.12), 0 1px 6px rgba(0,0,0,.03), 0 8px 10px -8px rgba(0,0,0,.1);--tw-shadow-colored: 0 0 1px var(--tw-shadow-color), 0 1px 6px var(--tw-shadow-color), 0 8px 10px -8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .shadow-xl{--tw-shadow: 0 2.8px 2.2px rgba(0, 0, 0, .02), 0 6.7px 5.3px rgba(0, 0, 0, .028), 0 12.5px 10px rgba(0, 0, 0, .035), 0 22.3px 17.9px rgba(0, 0, 0, .042), 0 41.8px 33.4px rgba(0, 0, 0, .05), 0 100px 80px rgba(0, 0, 0, .07);--tw-shadow-colored: 0 2.8px 2.2px var(--tw-shadow-color), 0 6.7px 5.3px var(--tw-shadow-color), 0 12.5px 10px var(--tw-shadow-color), 0 22.3px 17.9px var(--tw-shadow-color), 0 41.8px 33.4px var(--tw-shadow-color), 0 100px 80px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .outline-none{outline:2px solid transparent;outline-offset:2px}.shade .outline{outline-style:solid}.shade .ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.shade .ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.shade .filter{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)}.shade .backdrop-blur-none{--tw-backdrop-blur: ;-webkit-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);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)}.shade .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-\\[left\\,right\\,width\\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-\\[margin\\,opa\\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-\\[width\\,height\\,padding\\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-\\[width\\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.shade .duration-200{transition-duration:.2s}.shade .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.shade .ease-linear{transition-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.shade .animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.shade .fade-in-0{--tw-enter-opacity: 0}.shade .zoom-in-95{--tw-enter-scale: .95}.shade .duration-200{animation-duration:.2s}.shade .ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.shade .ease-linear{animation-timing-function:linear}.shade{line-height:1.5;-ms-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;letter-spacing:unset;height:100vh;width:100%;overflow-x:hidden;overflow-y:auto}@media (max-width: 800px){.shade{height:calc(100vh - 55px)}}.dark .shade{color:#fafafb}.dark .shade .gh-loading-orb-container{background-color:#000}.dark .shade .gh-loading-orb{filter:invert(100%)}.shade .no-scrollbar::-webkit-scrollbar{display:none}.shade .no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.gh-prose-links a{color:#30cf43}.shade .file\\:border-0::file-selector-button{border-width:0px}.shade .file\\:bg-transparent::file-selector-button{background-color:transparent}.shade .file\\:text-sm::file-selector-button{font-size:1.3rem}.shade .file\\:font-medium::file-selector-button{font-weight:500}.shade .file\\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.shade .placeholder\\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.shade .placeholder\\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.shade .before\\:absolute:before{content:var(--tw-content);position:absolute}.shade .before\\:-inset-x-2:before{content:var(--tw-content);left:-.8rem;right:-.8rem}.shade .before\\:-inset-y-px:before{content:var(--tw-content);top:-1px;bottom:-1px}.shade .before\\:rounded-md:before{content:var(--tw-content);border-radius:calc(var(--radius) - 2px)}.shade .before\\:content-\\[\\"\\"\\]:before{--tw-content: "";content:var(--tw-content)}.shade .after\\:absolute:after{content:var(--tw-content);position:absolute}.shade .after\\:-inset-2:after{content:var(--tw-content);inset:-.8rem}.shade .after\\:inset-y-0:after{content:var(--tw-content);top:0px;bottom:0px}.shade .after\\:left-1\\/2:after{content:var(--tw-content);left:50%}.shade .after\\:w-\\[2px\\]:after{content:var(--tw-content);width:2px}.shade .first\\:mt-0:first-child{margin-top:0}.shade .first-of-type\\:pl-0:first-of-type{padding-left:0}.shade .last-of-type\\:pr-0:last-of-type{padding-right:0}.shade .hover\\:border-transparent:hover{border-color:transparent}.shade .hover\\:bg-accent:hover{background-color:hsl(var(--accent))}.shade .hover\\:bg-destructive\\/90:hover{background-color:hsl(var(--destructive) / .9)}.shade .hover\\:bg-muted\\/50:hover{background-color:hsl(var(--muted) / .5)}.shade .hover\\:bg-primary\\/90:hover{background-color:hsl(var(--primary) / .9)}.shade .hover\\:bg-secondary\\/80:hover{background-color:hsl(var(--secondary) / .8)}.shade .hover\\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.shade .hover\\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.shade .hover\\:text-foreground:hover{color:hsl(var(--foreground))}.shade .hover\\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.shade .hover\\:underline:hover{text-decoration-line:underline}.shade .hover\\:opacity-100:hover{opacity:1}.shade .hover\\:shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-accent\\)\\)\\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .hover\\:before\\:bg-muted\\/50:hover:before{content:var(--tw-content);background-color:hsl(var(--muted) / .5)}.shade .hover\\:after\\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.shade .focus\\:bg-accent:focus{background-color:hsl(var(--accent))}.shade .focus\\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.shade .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.shade .focus\\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.shade .focus\\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.shade .focus\\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.shade .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.shade .focus-visible\\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.shade .focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.shade .focus-visible\\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.shade .focus-visible\\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.shade .focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.shade .active\\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.shade .active\\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.shade .disabled\\:pointer-events-none:disabled{pointer-events:none}.shade .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.shade .disabled\\:opacity-50:disabled{opacity:.5}.shade :is(.group\\/menu-item:focus-within .group-focus-within\\/menu-item\\:opacity-100){opacity:1}.shade :is(.group\\/menu-item:hover .group-hover\\/menu-item\\:opacity-100){opacity:1}.shade :is(.peer\\/menu-button:hover~.peer-hover\\/menu-button\\:text-sidebar-accent-foreground){color:hsl(var(--sidebar-accent-foreground))}.shade .has-\\[\\[data-variant\\=inset\\]\\]\\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.shade :is(.group\\/menu-item:has([data-sidebar=menu-action]) .group-has-\\[\\[data-sidebar\\=menu-action\\]\\]\\/menu-item\\:pr-8){padding-right:3.2rem}.shade .aria-disabled\\:pointer-events-none[aria-disabled=true]{pointer-events:none}.shade .aria-disabled\\:opacity-50[aria-disabled=true]{opacity:.5}.shade .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.shade .data-\\[active\\=true\\]\\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.shade .data-\\[state\\=active\\]\\:bg-background[data-state=active]{background-color:hsl(var(--background))}.shade .data-\\[state\\=active\\]\\:bg-muted\\/70[data-state=active]{background-color:hsl(var(--muted) / .7)}.shade .data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.shade .data-\\[state\\=open\\]\\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.shade .data-\\[state\\=selected\\]\\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.shade .data-\\[active\\=true\\]\\:font-semibold[data-active=true],.shade .data-\\[state\\=active\\]\\:font-semibold[data-state=active]{font-weight:600}.shade .data-\\[active\\=true\\]\\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.shade .data-\\[state\\=active\\]\\:text-black[data-state=active]{--tw-text-opacity: 1;color:rgb(21 23 26 / var(--tw-text-opacity))}.shade .data-\\[state\\=active\\]\\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.shade .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.shade .data-\\[state\\=open\\]\\:opacity-100[data-state=open]{opacity:1}.shade .data-\\[state\\=active\\]\\:shadow-md[data-state=active]{--tw-shadow: 0 0 1px rgba(0,0,0,.12), 0 1px 6px rgba(0,0,0,.03), 0 8px 10px -8px rgba(0,0,0,.05), 0px 24px 37px -21px rgba(0, 0, 0, .05);--tw-shadow-colored: 0 0 1px var(--tw-shadow-color), 0 1px 6px var(--tw-shadow-color), 0 8px 10px -8px var(--tw-shadow-color), 0px 24px 37px -21px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade .data-\\[state\\=open\\]\\:backdrop-blur-\\[3px\\][data-state=open]{--tw-backdrop-blur: blur(3px);-webkit-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);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)}.shade .data-\\[state\\=closed\\]\\:duration-300[data-state=closed]{transition-duration:.3s}.shade .data-\\[state\\=open\\]\\:duration-500[data-state=open]{transition-duration:.5s}.shade .data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.shade .data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.shade .data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.shade .data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.shade .data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.shade .data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.shade .data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.8rem}.shade .data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .8rem}.shade .data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.8rem}.shade .data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .8rem}.shade .data-\\[state\\=closed\\]\\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.shade .data-\\[state\\=closed\\]\\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.shade .data-\\[state\\=closed\\]\\:slide-out-to-left-1\\/2[data-state=closed]{--tw-exit-translate-x: -50%}.shade .data-\\[state\\=closed\\]\\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.shade .data-\\[state\\=closed\\]\\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.shade .data-\\[state\\=closed\\]\\:slide-out-to-top-\\[48\\%\\][data-state=closed]{--tw-exit-translate-y: -48%}.shade .data-\\[state\\=open\\]\\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.shade .data-\\[state\\=open\\]\\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.shade .data-\\[state\\=open\\]\\:slide-in-from-left-1\\/2[data-state=open]{--tw-enter-translate-x: -50%}.shade .data-\\[state\\=open\\]\\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.shade .data-\\[state\\=open\\]\\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.shade .data-\\[state\\=open\\]\\:slide-in-from-top-\\[48\\%\\][data-state=open]{--tw-enter-translate-y: -48%}.shade .data-\\[state\\=closed\\]\\:duration-300[data-state=closed]{animation-duration:.3s}.shade .data-\\[state\\=open\\]\\:duration-500[data-state=open]{animation-duration:.5s}.shade .data-\\[state\\=active\\]\\:after\\:absolute[data-state=active]:after{content:var(--tw-content);position:absolute}.shade .data-\\[state\\=active\\]\\:after\\:inset-x-0[data-state=active]:after{content:var(--tw-content);left:0px;right:0px}.shade .data-\\[state\\=active\\]\\:after\\:bottom-\\[-5px\\][data-state=active]:after{content:var(--tw-content);bottom:-5px}.shade .data-\\[state\\=active\\]\\:after\\:h-0\\.5[data-state=active]:after{content:var(--tw-content);height:.2rem}.shade .data-\\[state\\=active\\]\\:after\\:bg-black[data-state=active]:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(21 23 26 / var(--tw-bg-opacity))}.shade .data-\\[state\\=active\\]\\:after\\:content-\\[\\"\\"\\][data-state=active]:after{--tw-content: "";content:var(--tw-content)}.shade .data-\\[state\\=open\\]\\:hover\\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.shade .data-\\[state\\=open\\]\\:hover\\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.shade :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:left-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\]){left:calc(var(--sidebar-width) * -1)}.shade :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:right-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\]){right:calc(var(--sidebar-width) * -1)}.shade :is(.group[data-side=left] .group-data-\\[side\\=left\\]\\:-right-4){right:-1.6rem}.shade :is(.group[data-side=right] .group-data-\\[side\\=right\\]\\:left-0){left:0px}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:-mt-8){margin-top:-3.2rem}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:hidden){display:none}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:\\!size-8){width:3.2rem!important;height:3.2rem!important}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:w-\\[--sidebar-width-icon\\]){width:var(--sidebar-width-icon)}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)_\\+_theme\\(spacing\\.4\\)\\)\\]){width:calc(var(--sidebar-width-icon) + 1.6rem)}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)_\\+_theme\\(spacing\\.4\\)_\\+2px\\)\\]){width:calc(var(--sidebar-width-icon) + 1.6rem + 2px)}.shade :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:w-0){width:0px}.shade :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:translate-x-0){--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade :is(.group[data-side=right] .group-data-\\[side\\=right\\]\\:rotate-180){--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:overflow-hidden){overflow:hidden}.shade :is(.group[data-variant=floating] .group-data-\\[variant\\=floating\\]\\:rounded-lg){border-radius:var(--radius)}.shade :is(.group[data-variant=floating] .group-data-\\[variant\\=floating\\]\\:border){border-width:1px}.shade :is(.group[data-side=left] .group-data-\\[side\\=left\\]\\:border-r){border-right-width:1px}.shade :is(.group[data-side=right] .group-data-\\[side\\=right\\]\\:border-l){border-left-width:1px}.shade :is(.group[data-variant=floating] .group-data-\\[variant\\=floating\\]\\:border-sidebar-border){border-color:hsl(var(--sidebar-border))}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:\\!p-0){padding:0!important}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:\\!p-2){padding:.8rem!important}.shade :is(.group\\/item[data-state=active] .group-data-\\[state\\=active\\]\\/item\\:text-gray-800){--tw-text-opacity: 1;color:rgb(98 109 121 / var(--tw-text-opacity))}.shade :is(.group[data-collapsible=icon] .group-data-\\[collapsible\\=icon\\]\\:opacity-0){opacity:0}.shade :is(.group[data-variant=floating] .group-data-\\[variant\\=floating\\]\\:shadow){--tw-shadow: 0 0 1px rgba(0,0,0,.05), 0 5px 18px rgba(0,0,0,.08);--tw-shadow-colored: 0 0 1px var(--tw-shadow-color), 0 5px 18px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shade :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:after\\:left-full):after{content:var(--tw-content);left:100%}.shade :is(.group[data-collapsible=offcanvas] .group-data-\\[collapsible\\=offcanvas\\]\\:hover\\:bg-sidebar:hover){background-color:hsl(var(--sidebar-background))}.shade :is(.peer\\/menu-button[data-size=default]~.peer-data-\\[size\\=default\\]\\/menu-button\\:top-1\\.5){top:.6rem}.shade :is(.peer\\/menu-button[data-size=default]~.peer-data-\\[size\\=default\\]\\/menu-button\\:top-2){top:.8rem}.shade :is(.peer\\/menu-button[data-size=lg]~.peer-data-\\[size\\=lg\\]\\/menu-button\\:top-2\\.5){top:1rem}.shade :is(.peer\\/menu-button[data-size=lg]~.peer-data-\\[size\\=lg\\]\\/menu-button\\:top-3){top:1.2rem}.shade :is(.peer\\/menu-button[data-size=sm]~.peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1){top:.4rem}.shade :is(.peer\\/menu-button[data-size=sm]~.peer-data-\\[size\\=sm\\]\\/menu-button\\:top-1\\.5){top:.6rem}.shade :is(.peer[data-variant=inset]~.peer-data-\\[variant\\=inset\\]\\:min-h-\\[calc\\(100svh-theme\\(spacing\\.4\\)\\)\\]){min-height:calc(100svh - 1.6rem)}.shade :is(.peer\\/menu-button[data-active=true]~.peer-data-\\[active\\=true\\]\\/menu-button\\:text-sidebar-accent-foreground){color:hsl(var(--sidebar-accent-foreground))}@media (min-width: 480px){.shade .sm\\:mt-0{margin-top:0}.shade .sm\\:flex{display:flex}.shade .sm\\:max-w-sm{max-width:38.4rem}.shade .sm\\:flex-row{flex-direction:row}.shade .sm\\:justify-end{justify-content:flex-end}.shade .sm\\:gap-2\\.5{gap:1rem}.shade :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(.8rem * var(--tw-space-x-reverse));margin-left:calc(.8rem * calc(1 - var(--tw-space-x-reverse)))}.shade .sm\\:rounded-lg{border-radius:var(--radius)}.shade .sm\\:text-left{text-align:left}}@media (min-width: 640px){.shade .md\\:block{display:block}.shade .md\\:flex{display:flex}.shade .md\\:text-sm{font-size:1.3rem}.shade .md\\:opacity-0{opacity:0}.shade .after\\:md\\:hidden:after{content:var(--tw-content);display:none}.shade :is(.peer[data-variant=inset]~.md\\:peer-data-\\[variant\\=inset\\]\\:m-2){margin:.8rem}.shade :is(.peer[data-state=collapsed][data-variant=inset]~.md\\:peer-data-\\[state\\=collapsed\\]\\:peer-data-\\[variant\\=inset\\]\\:ml-2){margin-left:.8rem}.shade :is(.peer[data-variant=inset]~.md\\:peer-data-\\[variant\\=inset\\]\\:ml-0){margin-left:0}.shade :is(.peer[data-variant=inset]~.md\\:peer-data-\\[variant\\=inset\\]\\:rounded-xl){border-radius:1.2rem}.shade :is(.peer[data-variant=inset]~.md\\:peer-data-\\[variant\\=inset\\]\\:shadow){--tw-shadow: 0 0 1px rgba(0,0,0,.05), 0 5px 18px rgba(0,0,0,.08);--tw-shadow-colored: 0 0 1px var(--tw-shadow-color), 0 5px 18px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}.shade .dark\\:bg-\\[\\#101114\\]:where(.dark,.dark *){--tw-bg-opacity: 1;background-color:rgb(16 17 20 / var(--tw-bg-opacity))}.shade .\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0:has([role=checkbox]){padding-right:0}.shade :is(.\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\]>[role=checkbox]){--tw-translate-y: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.shade :is(.\\[\\&\\>button\\]\\:hidden>button){display:none}.shade :is(.\\[\\&\\>span\\:last-child\\]\\:truncate>span:last-child){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shade :is(.\\[\\&\\>svg\\]\\:size-4>svg){width:1.6rem;height:1.6rem}.shade :is(.\\[\\&\\>svg\\]\\:h-2\\.5>svg){height:1rem}.shade :is(.\\[\\&\\>svg\\]\\:h-3>svg){height:1.2rem}.shade :is(.\\[\\&\\>svg\\]\\:h-3\\.5>svg){height:1.4rem}.shade :is(.\\[\\&\\>svg\\]\\:w-2\\.5>svg){width:1rem}.shade :is(.\\[\\&\\>svg\\]\\:w-3>svg){width:1.2rem}.shade :is(.\\[\\&\\>svg\\]\\:w-3\\.5>svg){width:1.4rem}.shade :is(.\\[\\&\\>svg\\]\\:shrink-0>svg){flex-shrink:0}.shade :is(.\\[\\&\\>svg\\]\\:text-muted-foreground>svg){color:hsl(var(--muted-foreground))}.shade :is(.\\[\\&\\>svg\\]\\:text-sidebar-accent-foreground>svg){color:hsl(var(--sidebar-accent-foreground))}.shade :is(.\\[\\&\\>tr\\]\\:last\\:border-b-0:last-child>tr){border-bottom-width:0px}.shade :is(.\\[\\&_\\.recharts-cartesian-axis-tick_text\\]\\:fill-muted-foreground .recharts-cartesian-axis-tick text){fill:hsl(var(--muted-foreground))}.shade :is(.\\[\\&_\\.recharts-cartesian-grid_line\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border\\/50 .recharts-cartesian-grid line[stroke="#ccc"]){stroke:hsl(var(--border) / .5)}.shade :is(.\\[\\&_\\.recharts-curve\\.recharts-tooltip-cursor\\]\\:stroke-border .recharts-curve.recharts-tooltip-cursor){stroke:hsl(var(--border))}.shade :is(.\\[\\&_\\.recharts-dot\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent .recharts-dot[stroke="#fff"]){stroke:transparent}.shade :is(.\\[\\&_\\.recharts-layer\\]\\:outline-none .recharts-layer){outline:2px solid transparent;outline-offset:2px}.shade :is(.\\[\\&_\\.recharts-polar-grid_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border .recharts-polar-grid [stroke="#ccc"]){stroke:hsl(var(--border))}.shade :is(.\\[\\&_\\.recharts-radial-bar-background-sector\\]\\:fill-muted .recharts-radial-bar-background-sector){fill:hsl(var(--muted))}.shade :is(.\\[\\&_\\.recharts-rectangle\\.recharts-tooltip-cursor\\]\\:fill-muted .recharts-rectangle.recharts-tooltip-cursor){fill:hsl(var(--muted))}.shade :is(.\\[\\&_\\.recharts-reference-line_\\[stroke\\=\\'\\#ccc\\'\\]\\]\\:stroke-border .recharts-reference-line [stroke="#ccc"]){stroke:hsl(var(--border))}.shade :is(.\\[\\&_\\.recharts-sector\\[stroke\\=\\'\\#fff\\'\\]\\]\\:stroke-transparent .recharts-sector[stroke="#fff"]){stroke:transparent}.shade :is(.\\[\\&_\\.recharts-sector\\]\\:outline-none .recharts-sector){outline:2px solid transparent;outline-offset:2px}.shade :is(.\\[\\&_\\.recharts-surface\\]\\:outline-none .recharts-surface){outline:2px solid transparent;outline-offset:2px}.shade :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.shade :is(.\\[\\&_svg\\]\\:size-3 svg){width:1.2rem;height:1.2rem}.shade :is(.\\[\\&_svg\\]\\:size-4 svg){width:1.6rem;height:1.6rem}.shade :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}.shade :is(.\\[\\&_tr\\:hover\\:before\\]\\:bg-transparent tr:hover):before{background-color:transparent}.shade :is(.\\[\\&_tr\\]\\:border-transparent tr){border-color:transparent}.shade :is(:hover+.\\[\\:hover_\\+_\\&\\]\\:border-transparent){border-color:transparent}.shade :is([data-side=left][data-collapsible=offcanvas] .\\[\\[data-side\\=left\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-right-2){right:-.8rem}.shade :is([data-side=left][data-state=collapsed] .\\[\\[data-side\\=left\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-e-resize){cursor:e-resize}.shade :is([data-side=left] .\\[\\[data-side\\=left\\]_\\&\\]\\:cursor-w-resize){cursor:w-resize}.shade :is([data-side=right][data-collapsible=offcanvas] .\\[\\[data-side\\=right\\]\\[data-collapsible\\=offcanvas\\]_\\&\\]\\:-left-2){left:-.8rem}.shade :is([data-side=right][data-state=collapsed] .\\[\\[data-side\\=right\\]\\[data-state\\=collapsed\\]_\\&\\]\\:cursor-w-resize){cursor:w-resize}.shade :is([data-side=right] .\\[\\[data-side\\=right\\]_\\&\\]\\:cursor-e-resize){cursor:e-resize}`)),document.head.appendChild(a)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
|
|
2
2
|
var bc = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
|
|
3
3
|
function We(e) {
|
|
4
4
|
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
|
|
@@ -3220,7 +3220,7 @@ const Ty = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, $y = _e, M
|
|
|
3220
3220
|
size: {
|
|
3221
3221
|
default: "h-[34px] px-3 py-2",
|
|
3222
3222
|
sm: "h-7 rounded-md px-3 text-xs [&_svg]:size-3",
|
|
3223
|
-
lg: "h-
|
|
3223
|
+
lg: "h-11 rounded-md px-8 text-md font-semibold",
|
|
3224
3224
|
icon: "h-9 w-9"
|
|
3225
3225
|
}
|
|
3226
3226
|
},
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<title>Ghost Admin</title>
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
<meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22cdnUrl%22%3A%22%22%2C%22editorUrl%22%3A%22%22%2C%22rootURL%22%3A%22%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%225.
|
|
11
|
+
<meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22cdnUrl%22%3A%22%22%2C%22editorUrl%22%3A%22%22%2C%22rootURL%22%3A%22%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%225.112%22%2C%22name%22%3A%22ghost-admin%22%7D%2C%22ember-simple-auth%22%3A%7B%7D%2C%22%40sentry%2Fember%22%3A%7B%22disablePerformance%22%3Atrue%2C%22sentry%22%3A%7B%7D%7D%2C%22ember-cli-mirage%22%3A%7B%22usingProxy%22%3Afalse%2C%22useDefaultPassthroughs%22%3Atrue%7D%2C%22exportApplicationGlobal%22%3Afalse%2C%22ember-load%22%3A%7B%22loadingIndicatorClass%22%3A%22ember-load-indicator%22%7D%2C%22editorFilename%22%3A%22koenig-lexical.umd.js%22%2C%22editorHash%22%3A%225ea6a6e0ae%22%2C%22adminXDemoFilename%22%3A%22admin-x-demo.js%22%2C%22adminXDemoHash%22%3A%2215e68d0314%22%2C%22adminXSettingsFilename%22%3A%22admin-x-settings.js%22%2C%22adminXSettingsHash%22%3A%22b89b845936%22%2C%22adminXActivitypubFilename%22%3A%22admin-x-activitypub.js%22%2C%22adminXActivitypubHash%22%3A%228b10f84a3e%22%2C%22postsFilename%22%3A%22posts.js%22%2C%22postsHash%22%3A%22cb54d87657%22%2C%22adminXActivitypubCustomUrl%22%3A%22https%3A%2F%2Fcdn.jsdelivr.net%2Fghost%2Fadmin-x-activitypub%400%2Fdist%2Fadmin-x-activitypub.js%22%7D" />
|
|
12
12
|
|
|
13
13
|
<meta name="HandheldFriendly" content="True" />
|
|
14
14
|
<meta name="MobileOptimized" content="320" />
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
|
|
59
59
|
<script src="assets/vendor-fca15534b8426c0567400113c63a3e21.js"></script>
|
|
60
60
|
<script src="assets/chunk.874.461cb3cf5b6b36915f8c.js"></script>
|
|
61
|
-
<script src="assets/chunk.524.
|
|
62
|
-
<script src="assets/ghost-
|
|
61
|
+
<script src="assets/chunk.524.db49da6fd8ae155205a4.js"></script>
|
|
62
|
+
<script src="assets/ghost-62bd4d4c837d453e1038808dc1cd1e4c.js"></script>
|
|
63
63
|
</body>
|
|
64
64
|
</html>
|
|
@@ -338,11 +338,10 @@ module.exports = async function get(resource, options) {
|
|
|
338
338
|
errorDetails: {
|
|
339
339
|
api: `${controllerName}.${action}`,
|
|
340
340
|
apiOptions,
|
|
341
|
+
time: totalMs,
|
|
341
342
|
returnedRows: returnedRowsCount
|
|
342
343
|
}
|
|
343
|
-
})
|
|
344
|
-
time: totalMs
|
|
345
|
-
});
|
|
344
|
+
}));
|
|
346
345
|
}
|
|
347
346
|
}
|
|
348
347
|
}
|
|
@@ -42,28 +42,35 @@
|
|
|
42
42
|
background: rgba(135, 85, 236, 0.12);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
.kg-cta-sponsor-label {
|
|
46
|
-
margin: 0
|
|
47
|
-
padding:
|
|
45
|
+
.kg-cta-sponsor-label-wrapper {
|
|
46
|
+
margin: 0 1.5em;
|
|
47
|
+
padding: .7em 0;
|
|
48
48
|
border-bottom: 1px solid rgba(124, 139, 154, 0.2);
|
|
49
|
-
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
|
50
|
-
font-size: 12px;
|
|
51
|
-
font-weight: 600;
|
|
52
|
-
text-transform: uppercase;
|
|
53
|
-
text-wrap: pretty;
|
|
54
49
|
}
|
|
55
50
|
|
|
56
51
|
@media (max-width: 600px) {
|
|
57
|
-
.kg-cta-sponsor-label {
|
|
58
|
-
margin: 0
|
|
59
|
-
padding:
|
|
52
|
+
.kg-cta-sponsor-label-wrapper {
|
|
53
|
+
margin: 0 1.25em;
|
|
54
|
+
padding: .5em 0;
|
|
60
55
|
}
|
|
61
56
|
}
|
|
62
57
|
|
|
63
|
-
.kg-cta-bg-none .kg-cta-sponsor-label {
|
|
58
|
+
.kg-cta-bg-none .kg-cta-sponsor-label-wrapper {
|
|
64
59
|
margin: 0;
|
|
60
|
+
padding-top: 0;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.kg-cta-has-img .kg-cta-sponsor-label-wrapper:not(.kg-cta-bg-none .kg-cta-sponsor-label-wrapper):not(.kg-cta-minimal .kg-cta-sponsor-label-wrapper) {
|
|
64
|
+
border-bottom: 0;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
.kg-cta-sponsor-label {
|
|
68
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
|
69
|
+
font-size: 12px;
|
|
70
|
+
font-weight: 600;
|
|
71
|
+
text-transform: uppercase;
|
|
72
|
+
text-wrap: pretty;
|
|
73
|
+
}
|
|
67
74
|
|
|
68
75
|
.kg-cta-sponsor-label p span:not(a span) {
|
|
69
76
|
color: color-mix(in srgb, currentColor 45%, transparent);
|
|
@@ -75,29 +82,33 @@
|
|
|
75
82
|
|
|
76
83
|
.kg-cta-content {
|
|
77
84
|
display: flex;
|
|
78
|
-
padding:
|
|
79
|
-
gap:
|
|
85
|
+
padding: 1.5em;
|
|
86
|
+
gap: 1.5em;
|
|
80
87
|
}
|
|
81
88
|
|
|
82
89
|
@media (max-width: 600px) {
|
|
83
90
|
.kg-cta-content {
|
|
84
|
-
padding:
|
|
85
|
-
gap:
|
|
91
|
+
padding: 1.25em;
|
|
92
|
+
gap: 1.25em;
|
|
86
93
|
}
|
|
87
94
|
}
|
|
88
95
|
|
|
96
|
+
.kg-cta-has-img .kg-cta-sponsor-label-wrapper + .kg-cta-content:not(.kg-cta-bg-none .kg-cta-content):not(.kg-cta-minimal .kg-cta-content) {
|
|
97
|
+
padding-top: 0;
|
|
98
|
+
}
|
|
99
|
+
|
|
89
100
|
.kg-cta-bg-none .kg-cta-content {
|
|
90
|
-
padding:
|
|
101
|
+
padding: 1.5em 0;
|
|
91
102
|
border-bottom: 1px solid rgba(124, 139, 154, 0.2);
|
|
92
103
|
}
|
|
93
104
|
|
|
94
|
-
.kg-cta-bg-none .kg-cta-content:not(.kg-cta-sponsor-label + .kg-cta-content) {
|
|
105
|
+
.kg-cta-bg-none .kg-cta-content:not(.kg-cta-sponsor-label-wrapper + .kg-cta-content) {
|
|
95
106
|
border-top: 1px solid rgba(124, 139, 154, 0.2);
|
|
96
107
|
}
|
|
97
108
|
|
|
98
109
|
@media (max-width: 600px) {
|
|
99
110
|
.kg-cta-bg-none .kg-cta-content {
|
|
100
|
-
padding:
|
|
111
|
+
padding: 1.25em 0;
|
|
101
112
|
}
|
|
102
113
|
}
|
|
103
114
|
|
|
@@ -119,12 +130,12 @@
|
|
|
119
130
|
.kg-cta-content-inner {
|
|
120
131
|
display: flex;
|
|
121
132
|
flex-direction: column;
|
|
122
|
-
gap:
|
|
133
|
+
gap: 1.5em;
|
|
123
134
|
}
|
|
124
135
|
|
|
125
136
|
@media (max-width: 600px) {
|
|
126
137
|
.kg-cta-content-inner {
|
|
127
|
-
gap:
|
|
138
|
+
gap: 1.25em;
|
|
128
139
|
}
|
|
129
140
|
}
|
|
130
141
|
|
|
@@ -133,6 +144,7 @@
|
|
|
133
144
|
}
|
|
134
145
|
|
|
135
146
|
.kg-cta-image-container img {
|
|
147
|
+
margin: 0;
|
|
136
148
|
object-fit: cover;
|
|
137
149
|
border-radius: 6px;
|
|
138
150
|
}
|
|
@@ -150,16 +162,13 @@
|
|
|
150
162
|
}
|
|
151
163
|
}
|
|
152
164
|
|
|
153
|
-
.kg-cta-immersive .kg-cta-text {
|
|
154
|
-
text-align: center;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
165
|
.kg-cta-text p {
|
|
166
|
+
margin: 0;
|
|
158
167
|
text-wrap: pretty;
|
|
159
168
|
}
|
|
160
169
|
|
|
161
170
|
.kg-cta-text p + p {
|
|
162
|
-
margin-top:
|
|
171
|
+
margin-top: 1.25em;
|
|
163
172
|
}
|
|
164
173
|
|
|
165
174
|
.kg-cta-text a {
|
|
@@ -171,7 +180,10 @@ a.kg-cta-button {
|
|
|
171
180
|
position: static;
|
|
172
181
|
align-items: center;
|
|
173
182
|
justify-content: center;
|
|
183
|
+
padding: 0 1em;
|
|
184
|
+
height: 2.5em;
|
|
174
185
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
|
186
|
+
font-size: 0.95em;
|
|
175
187
|
font-weight: 500;
|
|
176
188
|
line-height: 1.65;
|
|
177
189
|
text-decoration: none;
|
|
@@ -179,16 +191,6 @@ a.kg-cta-button {
|
|
|
179
191
|
transition: opacity 0.2s ease-in-out;
|
|
180
192
|
}
|
|
181
193
|
|
|
182
|
-
.kg-cta-minimal a.kg-cta-button {
|
|
183
|
-
padding: 0 2rem;
|
|
184
|
-
height: 2.4em;
|
|
185
|
-
font-size: 0.95em;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
.kg-cta-immersive a.kg-cta-button {
|
|
189
|
-
padding: .8rem 2rem;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
194
|
a.kg-cta-button:hover {
|
|
193
195
|
opacity: 0.85;
|
|
194
196
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
const _ = require('lodash');
|
|
2
1
|
const tpl = require('@tryghost/tpl');
|
|
3
2
|
const errors = require('@tryghost/errors');
|
|
4
3
|
const constants = require('@tryghost/constants');
|
|
@@ -6,7 +5,7 @@ const security = require('@tryghost/security');
|
|
|
6
5
|
const settingsCache = require('../../shared/settings-cache');
|
|
7
6
|
const limitService = require('../services/limits');
|
|
8
7
|
const ghostBookshelf = require('./base');
|
|
9
|
-
|
|
8
|
+
const {setIsRoles} = require('./role-utils');
|
|
10
9
|
const messages = {
|
|
11
10
|
notEnoughPermission: 'You do not have permission to perform this action',
|
|
12
11
|
roleNotFound: 'Role not found',
|
|
@@ -86,10 +85,10 @@ Invite = ghostBookshelf.Model.extend({
|
|
|
86
85
|
|
|
87
86
|
let allowed = [];
|
|
88
87
|
if (loadedPermissions.user) {
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
const {isOwner, isAdmin, isEitherEditor} = setIsRoles(loadedPermissions);
|
|
89
|
+
if (isOwner || isAdmin) {
|
|
91
90
|
allowed = ['Administrator', 'Editor', 'Author', 'Contributor'];
|
|
92
|
-
} else if (
|
|
91
|
+
} else if (isEitherEditor) {
|
|
93
92
|
allowed = ['Author', 'Contributor'];
|
|
94
93
|
}
|
|
95
94
|
} else if (loadedPermissions.apiKey) {
|
|
@@ -21,6 +21,7 @@ const {BadRequestError} = require('@tryghost/errors');
|
|
|
21
21
|
const {PostRevisions} = require('@tryghost/post-revisions');
|
|
22
22
|
const {mobiledocToLexical} = require('@tryghost/kg-converters');
|
|
23
23
|
const labs = require('../../shared/labs');
|
|
24
|
+
const {setIsRoles} = require('./role-utils');
|
|
24
25
|
|
|
25
26
|
const messages = {
|
|
26
27
|
isAlreadyPublished: 'Your post is already published, please reload your page.',
|
|
@@ -1478,10 +1479,7 @@ Post = ghostBookshelf.Model.extend({
|
|
|
1478
1479
|
|
|
1479
1480
|
// NOTE: the `authors` extension is the parent of the post model. It also has a permissible function.
|
|
1480
1481
|
permissible: async function permissible(postModel, action, context, unsafeAttrs, loadedPermissions, hasUserPermission, hasApiKeyPermission) {
|
|
1481
|
-
let isContributor;
|
|
1482
|
-
let isOwner;
|
|
1483
|
-
let isAdmin;
|
|
1484
|
-
let isEditor;
|
|
1482
|
+
let {isContributor, isOwner, isAdmin, isEitherEditor} = setIsRoles(loadedPermissions);
|
|
1485
1483
|
let isIntegration;
|
|
1486
1484
|
let isEdit;
|
|
1487
1485
|
let isAdd;
|
|
@@ -1499,10 +1497,6 @@ Post = ghostBookshelf.Model.extend({
|
|
|
1499
1497
|
return postModel.get('status') === 'draft';
|
|
1500
1498
|
}
|
|
1501
1499
|
|
|
1502
|
-
isContributor = loadedPermissions.user && _.some(loadedPermissions.user.roles, {name: 'Contributor'});
|
|
1503
|
-
isOwner = loadedPermissions.user && _.some(loadedPermissions.user.roles, {name: 'Owner'});
|
|
1504
|
-
isAdmin = loadedPermissions.user && _.some(loadedPermissions.user.roles, {name: 'Administrator'});
|
|
1505
|
-
isEditor = loadedPermissions.user && _.some(loadedPermissions.user.roles, {name: 'Editor'});
|
|
1506
1500
|
isIntegration = loadedPermissions.apiKey && _.some(loadedPermissions.apiKey.roles, {name: 'Admin Integration'});
|
|
1507
1501
|
|
|
1508
1502
|
isEdit = (action === 'edit');
|
|
@@ -1525,7 +1519,7 @@ Post = ghostBookshelf.Model.extend({
|
|
|
1525
1519
|
} else if (isContributor && isDestroy) {
|
|
1526
1520
|
// If destroying, only allow contributor to destroy their own draft posts
|
|
1527
1521
|
hasUserPermission = isDraft();
|
|
1528
|
-
} else if (!(isOwner || isAdmin ||
|
|
1522
|
+
} else if (!(isOwner || isAdmin || isEitherEditor || isIntegration)) {
|
|
1529
1523
|
hasUserPermission = !isChanging('visibility');
|
|
1530
1524
|
}
|
|
1531
1525
|
|
|
@@ -2,6 +2,7 @@ const _ = require('lodash');
|
|
|
2
2
|
const tpl = require('@tryghost/tpl');
|
|
3
3
|
const errors = require('@tryghost/errors');
|
|
4
4
|
const {sequence} = require('@tryghost/promise');
|
|
5
|
+
const {setIsRoles} = require('../role-utils');
|
|
5
6
|
|
|
6
7
|
const messages = {
|
|
7
8
|
noUserFound: 'No user found',
|
|
@@ -305,8 +306,7 @@ module.exports.extendModel = function extendModel(Post, Posts, ghostBookshelf) {
|
|
|
305
306
|
const self = this;
|
|
306
307
|
const postModel = postModelOrId;
|
|
307
308
|
let origArgs;
|
|
308
|
-
|
|
309
|
-
let isAuthor;
|
|
309
|
+
const {isContributor, isAuthor} = setIsRoles(loadedPermissions);
|
|
310
310
|
let isEdit;
|
|
311
311
|
let isAdd;
|
|
312
312
|
let isDestroy;
|
|
@@ -332,8 +332,6 @@ module.exports.extendModel = function extendModel(Post, Posts, ghostBookshelf) {
|
|
|
332
332
|
});
|
|
333
333
|
}
|
|
334
334
|
|
|
335
|
-
isContributor = loadedPermissions.user && _.some(loadedPermissions.user.roles, {name: 'Contributor'});
|
|
336
|
-
isAuthor = loadedPermissions.user && _.some(loadedPermissions.user.roles, {name: 'Author'});
|
|
337
335
|
isEdit = (action === 'edit');
|
|
338
336
|
isAdd = (action === 'add');
|
|
339
337
|
isDestroy = (action === 'destroy');
|