Yoast SEO - Version 19.6

Version Description

Release Date: August 23rd, 2022

Yoast SEO 19.6 is out today! In this release, weve rolled out some general enhancements. In addition, weve improved the performance of Yoast SEO on bigger, more complex sites. Read more about what's new in Yoast SEO 19.6 in our release post in English or our release post in Spanish!

Bugfixes:

  • Fixes a bug in the Classic Editor where clicking on the SEO link inside the publish box would not always scroll the SEO analysis into view.
  • Fixes a bug where an emoji in our replacement variable editors would not be entirely removed when the backspace/delete button is hit.
  • Fixes a bug where a redirect to our installation success page could happen on admin AJAX calls.

Other:

  • Adds a "Search engines discouraged" notification in the Yoast SEO dashboard when the "Discourage search engines from indexing this site" WordPress setting is turned on.
  • Removes the Ryte integration and deprecates all the relevant classes. More information about this can be found at yoa.st/ryte-deprecation.
Download this release

Release Info

Developer Yoast
Plugin Icon 128x128 Yoast SEO
Version 19.6
Comparing to
See all releases

Code changes from version 19.5.1 to 19.6

Files changed (99) hide show
  1. admin/class-admin-init.php +18 -63
  2. admin/class-admin-recommended-replace-vars.php +2 -2
  3. admin/class-admin-user-profile.php +1 -0
  4. admin/class-expose-shortlinks.php +1 -0
  5. admin/class-gutenberg-compatibility.php +2 -2
  6. admin/class-inclusive-language-notice.php +142 -0
  7. admin/class-yoast-form.php +17 -6
  8. admin/class-yoast-notification.php +1 -1
  9. admin/formatter/class-metabox-formatter.php +111 -63
  10. admin/metabox/class-metabox-analysis-inclusive-language.php +53 -0
  11. admin/metabox/class-metabox-section-inclusive-language.php +45 -0
  12. admin/metabox/class-metabox.php +41 -2
  13. admin/taxonomy/class-taxonomy-fields.php +7 -0
  14. admin/taxonomy/class-taxonomy-metabox.php +14 -2
  15. admin/taxonomy/class-taxonomy.php +15 -2
  16. admin/tracking/class-tracking-settings-data.php +1 -0
  17. admin/views/class-yoast-feature-toggle.php +39 -12
  18. admin/views/class-yoast-feature-toggles.php +15 -0
  19. admin/views/class-yoast-integration-toggles.php +0 -15
  20. admin/views/tabs/dashboard/features.php +29 -1
  21. admin/views/tabs/network/features.php +23 -2
  22. admin/views/user-profile.php +12 -0
  23. css/dist/{admin-global-1951-rtl.css → admin-global-1960-rtl.css} +0 -0
  24. css/dist/{admin-global-1951.css → admin-global-1960.css} +0 -0
  25. css/dist/{adminbar-1951-rtl.css → adminbar-1960-rtl.css} +0 -0
  26. css/dist/{adminbar-1951.css → adminbar-1960.css} +0 -0
  27. css/dist/{alerts-1951-rtl.css → alerts-1960-rtl.css} +0 -0
  28. css/dist/{alerts-1951.css → alerts-1960.css} +0 -0
  29. css/dist/dashboard-1951-rtl.css +0 -1
  30. css/dist/dashboard-1951.css +0 -1
  31. css/dist/dashboard-1960-rtl.css +1 -0
  32. css/dist/dashboard-1960.css +1 -0
  33. css/dist/{edit-page-1951-rtl.css → edit-page-1960-rtl.css} +0 -0
  34. css/dist/{edit-page-1951.css → edit-page-1960.css} +0 -0
  35. css/dist/{elementor-1951-rtl.css → elementor-1960-rtl.css} +0 -0
  36. css/dist/{elementor-1951.css → elementor-1960.css} +0 -0
  37. css/dist/{featured-image-1951-rtl.css → featured-image-1960-rtl.css} +0 -0
  38. css/dist/{featured-image-1951.css → featured-image-1960.css} +0 -0
  39. css/dist/{filter-explanation-1951-rtl.css → filter-explanation-1960-rtl.css} +0 -0
  40. css/dist/{filter-explanation-1951.css → filter-explanation-1960.css} +0 -0
  41. css/dist/{icons-1951-rtl.css → icons-1960-rtl.css} +0 -0
  42. css/dist/{icons-1951.css → icons-1960.css} +0 -0
  43. css/dist/{inside-editor-1951-rtl.css → inside-editor-1960-rtl.css} +0 -0
  44. css/dist/{inside-editor-1951.css → inside-editor-1960.css} +0 -0
  45. css/dist/{metabox-1951-rtl.css → metabox-1960-rtl.css} +0 -0
  46. css/dist/{metabox-1951.css → metabox-1960.css} +0 -0
  47. css/dist/{metabox-primary-category-1951-rtl.css → metabox-primary-category-1960-rtl.css} +0 -0
  48. css/dist/{metabox-primary-category-1951.css → metabox-primary-category-1960.css} +0 -0
  49. css/dist/{modal-1951-rtl.css → modal-1960-rtl.css} +0 -0
  50. css/dist/{modal-1951.css → modal-1960.css} +0 -0
  51. css/dist/{monorepo-1951-rtl.css → monorepo-1960-rtl.css} +0 -0
  52. css/dist/{monorepo-1951.css → monorepo-1960.css} +0 -0
  53. css/dist/new-settings-1951-rtl.css +0 -1
  54. css/dist/new-settings-1951.css +0 -1
  55. css/dist/new-settings-1960-rtl.css +1 -0
  56. css/dist/new-settings-1960.css +1 -0
  57. css/dist/{notifications-1951-rtl.css → notifications-1960-rtl.css} +0 -0
  58. css/dist/{notifications-1951.css → notifications-1960.css} +0 -0
  59. css/dist/{schema-blocks-1951-rtl.css → schema-blocks-1960-rtl.css} +0 -0
  60. css/dist/{schema-blocks-1951.css → schema-blocks-1960.css} +0 -0
  61. css/dist/{score_icon-1951-rtl.css → score_icon-1960-rtl.css} +0 -0
  62. css/dist/{score_icon-1951.css → score_icon-1960.css} +0 -0
  63. css/dist/{search-appearance-1951-rtl.css → search-appearance-1960-rtl.css} +0 -0
  64. css/dist/{search-appearance-1951.css → search-appearance-1960.css} +0 -0
  65. css/dist/{structured-data-blocks-1951-rtl.css → structured-data-blocks-1960-rtl.css} +0 -0
  66. css/dist/{structured-data-blocks-1951.css → structured-data-blocks-1960.css} +0 -0
  67. css/dist/tailwind-1951-rtl.css +0 -1
  68. css/dist/tailwind-1951.css +0 -1
  69. css/dist/tailwind-1960-rtl.css +1 -0
  70. css/dist/tailwind-1960.css +1 -0
  71. css/dist/{toggle-switch-1951-rtl.css → toggle-switch-1960-rtl.css} +1 -1
  72. css/dist/{toggle-switch-1951.css → toggle-switch-1960.css} +1 -1
  73. css/dist/{tooltips-1951-rtl.css → tooltips-1960-rtl.css} +0 -0
  74. css/dist/{tooltips-1951.css → tooltips-1960.css} +0 -0
  75. css/dist/{workouts-1951-rtl.css → workouts-1960-rtl.css} +0 -0
  76. css/dist/{workouts-1951.css → workouts-1960.css} +0 -0
  77. css/dist/{wpseo-dismissible-1951-rtl.css → wpseo-dismissible-1960-rtl.css} +0 -0
  78. css/dist/{wpseo-dismissible-1951.css → wpseo-dismissible-1960.css} +0 -0
  79. css/dist/{yoast-components-1951-rtl.css → yoast-components-1960-rtl.css} +0 -0
  80. css/dist/{yoast-components-1951.css → yoast-components-1960.css} +0 -0
  81. css/dist/{yoast-extensions-1951-rtl.css → yoast-extensions-1960-rtl.css} +0 -0
  82. css/dist/{yoast-extensions-1951.css → yoast-extensions-1960.css} +0 -0
  83. css/dist/{yst_plugin_tools-1951-rtl.css → yst_plugin_tools-1960-rtl.css} +0 -0
  84. css/dist/{yst_plugin_tools-1951.css → yst_plugin_tools-1960.css} +0 -0
  85. css/dist/{yst_seo_score-1951-rtl.css → yst_seo_score-1960-rtl.css} +0 -0
  86. css/dist/{yst_seo_score-1951.css → yst_seo_score-1960.css} +0 -0
  87. inc/class-upgrade.php +10 -0
  88. inc/class-wpseo-custom-fields.php +8 -0
  89. inc/class-wpseo-meta.php +6 -0
  90. inc/options/class-wpseo-option-ms.php +45 -44
  91. inc/options/class-wpseo-option-wpseo.php +44 -42
  92. inc/options/class-wpseo-taxonomy-meta.php +20 -19
  93. js/dist/37.js +1 -1
  94. js/dist/addon-installation.js +2 -2
  95. js/dist/admin-global.js +1 -1
  96. js/dist/admin-modules.js +2 -2
  97. js/dist/analysis-worker.js +1 -1
  98. js/dist/api-client.js +1 -1
  99. js/dist/block-editor.js +9 -10
admin/class-admin-init.php CHANGED
@@ -42,19 +42,13 @@ class WPSEO_Admin_Init {
42
  add_action( 'admin_notices', [ $this, 'permalink_settings_notice' ] );
43
  add_action( 'post_submitbox_misc_actions', [ $this, 'add_publish_box_section' ] );
44
 
45
- /*
46
- * The `admin_notices` hook fires on single site admin pages vs.
47
- * `network_admin_notices` which fires on multisite admin pages and
48
- * `user_admin_notices` which fires on multisite user admin pagss.
49
- */
50
- add_action( 'admin_notices', [ $this, 'search_engines_discouraged_notice' ] );
51
-
52
  $this->load_meta_boxes();
53
  $this->load_taxonomy_class();
54
  $this->load_admin_page_class();
55
  $this->load_admin_user_class();
56
  $this->load_xml_sitemaps_admin();
57
  $this->load_plugin_suggestions();
 
58
  }
59
 
60
  /**
@@ -195,6 +189,23 @@ class WPSEO_Admin_Init {
195
  }
196
  }
197
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
  /**
199
  * Registers the promotion class for our GlotPress instance, then creates a notification with the i18n promo.
200
  *
@@ -245,15 +256,6 @@ class WPSEO_Admin_Init {
245
  }
246
  }
247
 
248
- /**
249
- * Checks whether search engines are discouraged from indexing the site.
250
- *
251
- * @return bool Whether search engines are discouraged from indexing the site.
252
- */
253
- private function are_search_engines_discouraged() {
254
- return (string) get_option( 'blog_public' ) === '0';
255
- }
256
-
257
  /**
258
  * Shows deprecation warnings to the user if a plugin has registered a filter we have deprecated.
259
  */
@@ -351,53 +353,6 @@ class WPSEO_Admin_Init {
351
  }
352
  }
353
 
354
- /**
355
- * Determines whether and where the "search engines discouraged" admin notice should be displayed.
356
- *
357
- * @return bool Whether the "search engines discouraged" admin notice should be displayed.
358
- */
359
- private function should_display_search_engines_discouraged_notice() {
360
- $discouraged_pages = [
361
- 'index.php',
362
- 'plugins.php',
363
- 'update-core.php',
364
- ];
365
-
366
- return (
367
- $this->are_search_engines_discouraged()
368
- && WPSEO_Capability_Utils::current_user_can( 'manage_options' )
369
- && WPSEO_Options::get( 'ignore_search_engines_discouraged_notice', false ) === false
370
- && (
371
- $this->on_wpseo_admin_page()
372
- || in_array( $this->pagenow, $discouraged_pages, true )
373
- )
374
- );
375
- }
376
-
377
- /**
378
- * Displays an admin notice when WordPress is set to discourage search engines from indexing the site.
379
- *
380
- * @return void
381
- */
382
- public function search_engines_discouraged_notice() {
383
- if ( ! $this->should_display_search_engines_discouraged_notice() ) {
384
- return;
385
- }
386
-
387
- printf(
388
- '<div id="robotsmessage" class="notice notice-error"><p><strong>%1$s</strong> %2$s <button type="button" id="robotsmessage-dismiss-button" class="button-link hide-if-no-js" data-nonce="%3$s">%4$s</button></p></div>',
389
- esc_html__( 'Huge SEO Issue: You\'re blocking access to robots.', 'wordpress-seo' ),
390
- sprintf(
391
- /* translators: 1: Link start tag to the WordPress Reading Settings page, 2: Link closing tag. */
392
- esc_html__( 'If you want search engines to show this site in their results, you must %1$sgo to your Reading Settings%2$s and uncheck the box for Search Engine Visibility.', 'wordpress-seo' ),
393
- '<a href="' . esc_url( admin_url( 'options-reading.php' ) ) . '">',
394
- '</a>'
395
- ),
396
- esc_js( wp_create_nonce( 'wpseo-ignore' ) ),
397
- esc_html__( 'I don\'t want this site to show in the search results.', 'wordpress-seo' )
398
- );
399
- }
400
-
401
  /**
402
  * Adds a custom Yoast section within the Classic Editor publish box.
403
  *
42
  add_action( 'admin_notices', [ $this, 'permalink_settings_notice' ] );
43
  add_action( 'post_submitbox_misc_actions', [ $this, 'add_publish_box_section' ] );
44
 
 
 
 
 
 
 
 
45
  $this->load_meta_boxes();
46
  $this->load_taxonomy_class();
47
  $this->load_admin_page_class();
48
  $this->load_admin_user_class();
49
  $this->load_xml_sitemaps_admin();
50
  $this->load_plugin_suggestions();
51
+ $this->set_inclusive_language_notice();
52
  }
53
 
54
  /**
189
  }
190
  }
191
 
192
+ /**
193
+ * Sets the inclusive language notification.
194
+ *
195
+ * Notification should pop up if user has Premium activated, the site language is English and the feature toggle is not switched on.
196
+ */
197
+ protected function set_inclusive_language_notice() {
198
+ $inclusive_language = new WPSEO_Inclusive_Language_Notice( Yoast_Notification_Center::get() );
199
+
200
+ if ( $inclusive_language->should_show_notification() ) {
201
+ $inclusive_language->add_notification();
202
+ $inclusive_language->dismiss_notice_listener();
203
+ }
204
+ else {
205
+ $inclusive_language->remove_notification();
206
+ }
207
+ }
208
+
209
  /**
210
  * Registers the promotion class for our GlotPress instance, then creates a notification with the i18n promo.
211
  *
256
  }
257
  }
258
 
 
 
 
 
 
 
 
 
 
259
  /**
260
  * Shows deprecation warnings to the user if a plugin has registered a filter we have deprecated.
261
  */
353
  }
354
  }
355
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
356
  /**
357
  * Adds a custom Yoast section within the Classic Editor publish box.
358
  *
admin/class-admin-recommended-replace-vars.php CHANGED
@@ -30,7 +30,7 @@ class WPSEO_Admin_Recommended_Replace_Vars {
30
  'post_format' => [ 'sitename', 'term_title', 'sep', 'page' ],
31
 
32
  // Custom taxonomy.
33
- 'term-in-custom-taxomomy' => [ 'sitename', 'term_title', 'sep', 'term_hierarchy' ],
34
 
35
  // Settings - archive pages.
36
  'author_archive' => [ 'sitename', 'title', 'sep', 'page' ],
@@ -55,7 +55,7 @@ class WPSEO_Admin_Recommended_Replace_Vars {
55
  return $taxonomy;
56
  }
57
 
58
- return 'term-in-custom-taxomomy';
59
  }
60
 
61
  /**
30
  'post_format' => [ 'sitename', 'term_title', 'sep', 'page' ],
31
 
32
  // Custom taxonomy.
33
+ 'term-in-custom-taxonomy' => [ 'sitename', 'term_title', 'sep', 'term_hierarchy' ],
34
 
35
  // Settings - archive pages.
36
  'author_archive' => [ 'sitename', 'title', 'sep', 'page' ],
55
  return $taxonomy;
56
  }
57
 
58
+ return 'term-in-custom-taxonomy';
59
  }
60
 
61
  /**
admin/class-admin-user-profile.php CHANGED
@@ -74,6 +74,7 @@ class WPSEO_Admin_User_Profile {
74
  update_user_meta( $user_id, 'wpseo_noindex_author', $this->filter_input_post( 'wpseo_noindex_author' ) );
75
  update_user_meta( $user_id, 'wpseo_content_analysis_disable', $this->filter_input_post( 'wpseo_content_analysis_disable' ) );
76
  update_user_meta( $user_id, 'wpseo_keyword_analysis_disable', $this->filter_input_post( 'wpseo_keyword_analysis_disable' ) );
 
77
  }
78
 
79
  /**
74
  update_user_meta( $user_id, 'wpseo_noindex_author', $this->filter_input_post( 'wpseo_noindex_author' ) );
75
  update_user_meta( $user_id, 'wpseo_content_analysis_disable', $this->filter_input_post( 'wpseo_content_analysis_disable' ) );
76
  update_user_meta( $user_id, 'wpseo_keyword_analysis_disable', $this->filter_input_post( 'wpseo_keyword_analysis_disable' ) );
77
+ update_user_meta( $user_id, 'wpseo_inclusive_language_analysis_disable', $this->filter_input_post( 'wpseo_inclusive_language_analysis_disable' ) );
78
  }
79
 
80
  /**
admin/class-expose-shortlinks.php CHANGED
@@ -52,6 +52,7 @@ class WPSEO_Expose_Shortlinks implements WPSEO_WordPress_Integration {
52
  'shortlinks.upsell.metabox.word_complexity' => 'https://yoa.st/word-complexity-metabox',
53
  'shortlinks.upsell.gsc.create_redirect_button' => 'https://yoa.st/redirects',
54
  'shortlinks.readability_analysis_info' => 'https://yoa.st/readability-analysis',
 
55
  'shortlinks.activate_premium_info' => 'https://yoa.st/activate-subscription',
56
  'shortlinks.upsell.sidebar.morphology_upsell_metabox' => 'https://yoa.st/morphology-upsell-metabox',
57
  'shortlinks.upsell.sidebar.morphology_upsell_sidebar' => 'https://yoa.st/morphology-upsell-sidebar',
52
  'shortlinks.upsell.metabox.word_complexity' => 'https://yoa.st/word-complexity-metabox',
53
  'shortlinks.upsell.gsc.create_redirect_button' => 'https://yoa.st/redirects',
54
  'shortlinks.readability_analysis_info' => 'https://yoa.st/readability-analysis',
55
+ 'shortlinks.inclusive_language_analysis_info' => 'https://yoa.st/inclusive-language-analysis',
56
  'shortlinks.activate_premium_info' => 'https://yoa.st/activate-subscription',
57
  'shortlinks.upsell.sidebar.morphology_upsell_metabox' => 'https://yoa.st/morphology-upsell-metabox',
58
  'shortlinks.upsell.sidebar.morphology_upsell_sidebar' => 'https://yoa.st/morphology-upsell-sidebar',
admin/class-gutenberg-compatibility.php CHANGED
@@ -15,14 +15,14 @@ class WPSEO_Gutenberg_Compatibility {
15
  *
16
  * @var string
17
  */
18
- const CURRENT_RELEASE = '13.8.1';
19
 
20
  /**
21
  * The minimally supported version of Gutenberg by the plugin.
22
  *
23
  * @var string
24
  */
25
- const MINIMUM_SUPPORTED = '13.8.1';
26
 
27
  /**
28
  * Holds the current version.
15
  *
16
  * @var string
17
  */
18
+ const CURRENT_RELEASE = '13.9.0';
19
 
20
  /**
21
  * The minimally supported version of Gutenberg by the plugin.
22
  *
23
  * @var string
24
  */
25
+ const MINIMUM_SUPPORTED = '13.9.0';
26
 
27
  /**
28
  * Holds the current version.
admin/class-inclusive-language-notice.php ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WPSEO plugin file.
4
+ *
5
+ * @package WPSEO\Admin
6
+ */
7
+
8
+ /**
9
+ * Represents the notice for the Inclusive language feature.
10
+ */
11
+ class WPSEO_Inclusive_Language_Notice {
12
+
13
+ /**
14
+ * Holds the name of the user meta key.
15
+ *
16
+ * The value of this database field holds whether the user has dismissed this notice or not.
17
+ *
18
+ * @var string
19
+ */
20
+ const USER_META_DISMISSED = 'wpseo-remove-inclusive-language-notice';
21
+
22
+ /**
23
+ * Holds the option name.
24
+ *
25
+ * @var string
26
+ */
27
+ const OPTION_NAME = 'wpseo';
28
+
29
+ /**
30
+ * The Premium version in which the Inclusive language feature was added.
31
+ */
32
+ const PREMIUM_VERSION_ADDED = '19.2-RC1';
33
+
34
+ /**
35
+ * Holds the notification center.
36
+ *
37
+ * @var Yoast_Notification_Center
38
+ */
39
+ protected $notification_center;
40
+
41
+ /**
42
+ * WPSEO_Inclusive_Language_Notice constructor.
43
+ *
44
+ * @param Yoast_Notification_Center $notification_center The notification center to add notifications to.
45
+ */
46
+ public function __construct( Yoast_Notification_Center $notification_center ) {
47
+ $this->notification_center = $notification_center;
48
+ }
49
+
50
+ /**
51
+ * Listener for the notice.
52
+ */
53
+ public function dismiss_notice_listener() {
54
+ if ( filter_input( INPUT_GET, 'yoast_dismiss' ) !== 'upsell' ) {
55
+ return;
56
+ }
57
+
58
+ $this->dismiss_notice();
59
+
60
+ wp_safe_redirect( admin_url( 'admin.php?page=wpseo_dashboard' ) );
61
+ exit;
62
+ }
63
+
64
+ /**
65
+ * Adds a notification to the notification center.
66
+ */
67
+ public function add_notification() {
68
+ $this->notification_center->add_notification( $this->get_notification() );
69
+ }
70
+
71
+ /**
72
+ * Removes a notification from the notification center.
73
+ */
74
+ public function remove_notification() {
75
+ $this->notification_center->remove_notification( $this->get_notification() );
76
+ }
77
+
78
+ /**
79
+ * Whether the notification should be shown.
80
+ *
81
+ * @return bool Whether or not the notification should be shown.
82
+ */
83
+ public function should_show_notification() {
84
+ $availability = new WPSEO_Metabox_Analysis_Inclusive_Language();
85
+
86
+ return YoastSEO()->helpers->product->is_premium()
87
+ && YoastSEO()->helpers->language->has_inclusive_language_support( \WPSEO_Language_Utils::get_language( \get_locale() ) )
88
+ && ! $availability->is_globally_enabled()
89
+ && \version_compare( YoastSEO()->helpers->product->get_premium_version(), self::PREMIUM_VERSION_ADDED, '>=' );
90
+ }
91
+
92
+ /**
93
+ * Gets the notification value.
94
+ *
95
+ * @return Yoast_Notification
96
+ */
97
+ protected function get_notification() {
98
+ if ( is_multisite() && get_site_option( 'wpseo_ms' )['allow_inclusive_language_analysis_active'] === false ) {
99
+ $message = sprintf(
100
+ /* translators: %1$s is a link to the Features tab on the Yoast SEO Dashboard page, %2$s is a link to the blog post about this feature, %3$s is the link closing tag. */
101
+ __(
102
+ '<strong>New in Yoast SEO Premium 19.2:</strong> Did you know that you can now get feedback on the use of inclusive language? This feature is disabled by default. Please contact your Network admin if you want to enable it. %2$sLearn more about this feature%3$s.',
103
+ 'wordpress-seo'
104
+ ),
105
+ '<a href="' . admin_url( 'admin.php?page=wpseo_dashboard#top#features' ) . '">',
106
+ '<a href="' . WPSEO_Shortlinker::get( 'https://yoa.st/inclusive-language-notification' ) . '" target="_blank">',
107
+ '</a>'
108
+ );
109
+ }
110
+ else {
111
+ $message = sprintf(
112
+ /* translators: %1$s is a link to the Features tab on the Yoast SEO Dashboard page, %2$s is a link to the blog post about this feature, %3$s is the link closing tag. */
113
+ __(
114
+ '<strong>New in Yoast SEO Premium 19.2:</strong> Did you know that you can now %1$senable the beta version of our inclusive language feature%3$s to get feedback on the use of inclusive language? This feature is disabled by default. %2$sLearn more about this feature%3$s.',
115
+ 'wordpress-seo'
116
+ ),
117
+ '<a href="' . admin_url( 'admin.php?page=wpseo_dashboard#top#features' ) . '">',
118
+ '<a href="' . WPSEO_Shortlinker::get( 'https://yoa.st/inclusive-language-notification' ) . '" target="_blank">',
119
+ '</a>'
120
+ );
121
+ }
122
+
123
+ $notification = new Yoast_Notification(
124
+ $message,
125
+ [
126
+ 'type' => Yoast_Notification::WARNING,
127
+ 'id' => 'wpseo-inclusive-language-notice',
128
+ 'capabilities' => 'wpseo_manage_options',
129
+ 'priority' => 0.8,
130
+ ]
131
+ );
132
+
133
+ return $notification;
134
+ }
135
+
136
+ /**
137
+ * Dismisses the notice.
138
+ */
139
+ protected function dismiss_notice() {
140
+ update_user_meta( get_current_user_id(), self::USER_META_DISMISSED, true );
141
+ }
142
+ }
admin/class-yoast-form.php CHANGED
@@ -874,8 +874,14 @@ class Yoast_Form {
874
 
875
  // Show disabled note if attribute does not exists or does exist and is set to true.
876
  if ( ! isset( $attr['show_disabled_note'] ) || ( $attr['show_disabled_note'] === true ) ) {
877
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- output escaped before.
878
- echo $this->get_disabled_note( $variable );
 
 
 
 
 
 
879
  }
880
 
881
  echo '<div class="switch-toggle switch-candy switch-yoast-seo">';
@@ -1021,21 +1027,26 @@ class Yoast_Form {
1021
  /**
1022
  * Gets the explanation note to print if a given control is disabled.
1023
  *
1024
- * @param string $variable The variable within the option to print a disabled note for.
 
1025
  *
1026
  * @return string Explanation note HTML string, or empty string if no note necessary.
1027
  */
1028
- protected function get_disabled_note( $variable ) {
1029
- if ( ! $this->is_control_disabled( $variable ) ) {
1030
  return '';
1031
  }
1032
-
1033
  $disabled_message = esc_html__( 'This feature has been disabled by the network admin.', 'wordpress-seo' );
1034
 
1035
  // The explanation to show when disabling the Usage tracking feature for multisite subsites.
1036
  if ( $this->is_tracking_on_subsite( $variable ) ) {
1037
  $disabled_message = esc_html__( 'This feature has been disabled since subsites never send tracking data.', 'wordpress-seo' );
1038
  }
 
 
 
 
 
1039
  return '<p class="disabled-note">' . $disabled_message . '</p>';
1040
  }
1041
 
874
 
875
  // Show disabled note if attribute does not exists or does exist and is set to true.
876
  if ( ! isset( $attr['show_disabled_note'] ) || ( $attr['show_disabled_note'] === true ) ) {
877
+ if ( isset( $attr['note_when_disabled'] ) ) {
878
+ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- output escaped before.
879
+ echo $this->get_disabled_note( $variable, $attr['note_when_disabled'] );
880
+ }
881
+ else {
882
+ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- output escaped before.
883
+ echo $this->get_disabled_note( $variable );
884
+ }
885
  }
886
 
887
  echo '<div class="switch-toggle switch-candy switch-yoast-seo">';
1027
  /**
1028
  * Gets the explanation note to print if a given control is disabled.
1029
  *
1030
+ * @param string $variable The variable within the option to print a disabled note for.
1031
+ * @param string $custom_note An optional custom note to print instead.
1032
  *
1033
  * @return string Explanation note HTML string, or empty string if no note necessary.
1034
  */
1035
+ protected function get_disabled_note( $variable, $custom_note = '' ) {
1036
+ if ( $custom_note === '' && ! $this->is_control_disabled( $variable ) ) {
1037
  return '';
1038
  }
 
1039
  $disabled_message = esc_html__( 'This feature has been disabled by the network admin.', 'wordpress-seo' );
1040
 
1041
  // The explanation to show when disabling the Usage tracking feature for multisite subsites.
1042
  if ( $this->is_tracking_on_subsite( $variable ) ) {
1043
  $disabled_message = esc_html__( 'This feature has been disabled since subsites never send tracking data.', 'wordpress-seo' );
1044
  }
1045
+
1046
+ if ( $custom_note ) {
1047
+ $disabled_message = esc_html( $custom_note );
1048
+ }
1049
+
1050
  return '<p class="disabled-note">' . $disabled_message . '</p>';
1051
  }
1052
 
admin/class-yoast-notification.php CHANGED
@@ -119,7 +119,7 @@ class Yoast_Notification {
119
  }
120
 
121
  /**
122
- * Retrieve the is of the user to show the notification for.
123
  *
124
  * Returns the id of the current user if not user has been sent.
125
  *
119
  }
120
 
121
  /**
122
+ * Retrieve the id of the user to show the notification for.
123
  *
124
  * Returns the id of the current user if not user has been sent.
125
  *
admin/formatter/class-metabox-formatter.php CHANGED
@@ -5,6 +5,9 @@
5
  * @package WPSEO\Admin\Formatter
6
  */
7
 
 
 
 
8
  use Yoast\WP\SEO\Config\Schema_Types;
9
  use Yoast\WP\SEO\Config\SEMrush_Client;
10
  use Yoast\WP\SEO\Exceptions\OAuth\Authentication_Failed_Exception;
@@ -50,135 +53,167 @@ class WPSEO_Metabox_Formatter {
50
  * @return array Default settings for the metabox.
51
  */
52
  private function get_defaults() {
53
- $analysis_seo = new WPSEO_Metabox_Analysis_SEO();
54
- $analysis_readability = new WPSEO_Metabox_Analysis_Readability();
55
- $schema_types = new Schema_Types();
56
- $is_wincher_active = YoastSEO()->helpers->wincher->is_active();
 
57
 
58
  return [
59
- 'author_name' => get_the_author_meta( 'display_name' ),
60
- 'site_name' => get_bloginfo( 'name' ),
61
- 'sitewide_social_image' => WPSEO_Options::get( 'og_default_image' ),
62
- 'search_url' => '',
63
- 'post_edit_url' => '',
64
- 'base_url' => '',
65
- 'contentTab' => __( 'Readability', 'wordpress-seo' ),
66
- 'keywordTab' => __( 'Keyphrase:', 'wordpress-seo' ),
67
- 'removeKeyword' => __( 'Remove keyphrase', 'wordpress-seo' ),
68
- 'contentLocale' => get_locale(),
69
- 'userLocale' => \get_user_locale(),
70
- 'translations' => $this->get_translations(),
71
- 'keyword_usage' => [],
72
- 'title_template' => '',
73
- 'metadesc_template' => '',
74
- 'contentAnalysisActive' => $analysis_readability->is_enabled() ? 1 : 0,
75
- 'keywordAnalysisActive' => $analysis_seo->is_enabled() ? 1 : 0,
76
- 'cornerstoneActive' => WPSEO_Options::get( 'enable_cornerstone_content', false ) ? 1 : 0,
77
- 'semrushIntegrationActive' => WPSEO_Options::get( 'semrush_integration_active', true ) ? 1 : 0,
78
- 'intl' => $this->get_content_analysis_component_translations(),
79
- 'isRtl' => is_rtl(),
80
- 'isPremium' => YoastSEO()->helpers->product->is_premium(),
81
- 'wordFormRecognitionActive' => YoastSEO()->helpers->language->is_word_form_recognition_active( WPSEO_Language_Utils::get_language( get_locale() ) ),
82
- 'siteIconUrl' => get_site_icon_url(),
83
- 'countryCode' => WPSEO_Options::get( 'semrush_country_code', false ),
84
- 'SEMrushLoginStatus' => WPSEO_Options::get( 'semrush_integration_active', true ) ? $this->get_semrush_login_status() : false,
85
- 'showSocial' => [
 
86
  'facebook' => WPSEO_Options::get( 'opengraph', false ),
87
  'twitter' => WPSEO_Options::get( 'twitter', false ),
88
  ],
89
- 'schema' => [
90
  'displayFooter' => WPSEO_Capability_Utils::current_user_can( 'wpseo_manage_options' ),
91
  'pageTypeOptions' => $schema_types->get_page_type_options(),
92
  'articleTypeOptions' => $schema_types->get_article_type_options(),
93
  ],
94
- 'twitterCardType' => YoastSEO()->helpers->options->get( 'twitter_card_type' ),
95
 
96
  /**
97
  * Filter to determine if the markers should be enabled or not.
98
  *
99
  * @param bool $showMarkers Should the markers being enabled. Default = true.
100
  */
101
- 'show_markers' => apply_filters( 'wpseo_enable_assessment_markers', true ),
102
- 'publish_box' => [
103
  'labels' => [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  'content' => [
105
  'na' => sprintf(
106
- /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the readability score. */
107
  __( '%1$sReadability%2$s: %3$s', 'wordpress-seo' ),
108
  '<a href="#yoast-readability-analysis-collapsible-metabox">',
109
  '</a>',
110
  '<strong>' . __( 'Not available', 'wordpress-seo' ) . '</strong>'
111
  ),
112
  'bad' => sprintf(
113
- /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the readability score. */
114
  __( '%1$sReadability%2$s: %3$s', 'wordpress-seo' ),
115
  '<a href="#yoast-readability-analysis-collapsible-metabox">',
116
  '</a>',
117
  '<strong>' . __( 'Needs improvement', 'wordpress-seo' ) . '</strong>'
118
  ),
119
  'ok' => sprintf(
120
- /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the readability score. */
121
  __( '%1$sReadability%2$s: %3$s', 'wordpress-seo' ),
122
  '<a href="#yoast-readability-analysis-collapsible-metabox">',
123
  '</a>',
124
  '<strong>' . __( 'OK', 'wordpress-seo' ) . '</strong>'
125
  ),
126
  'good' => sprintf(
127
- /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the readability score. */
128
  __( '%1$sReadability%2$s: %3$s', 'wordpress-seo' ),
129
  '<a href="#yoast-readability-analysis-collapsible-metabox">',
130
  '</a>',
131
  '<strong>' . __( 'Good', 'wordpress-seo' ) . '</strong>'
132
  ),
133
  ],
134
- 'keyword' => [
135
  'na' => sprintf(
136
- /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the SEO score. */
137
- __( '%1$sSEO%2$s: %3$s', 'wordpress-seo' ),
138
- '<a href="#yoast-seo-analysis-collapsible-metabox">',
139
  '</a>',
140
  '<strong>' . __( 'Not available', 'wordpress-seo' ) . '</strong>'
141
  ),
142
  'bad' => sprintf(
143
- /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the SEO score. */
144
- __( '%1$sSEO%2$s: %3$s', 'wordpress-seo' ),
145
- '<a href="#yoast-seo-analysis-collapsible-metabox">',
146
  '</a>',
147
  '<strong>' . __( 'Needs improvement', 'wordpress-seo' ) . '</strong>'
148
  ),
149
  'ok' => sprintf(
150
- /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the SEO score. */
151
- __( '%1$sSEO%2$s: %3$s', 'wordpress-seo' ),
152
- '<a href="#yoast-seo-analysis-collapsible-metabox">',
153
  '</a>',
154
  '<strong>' . __( 'OK', 'wordpress-seo' ) . '</strong>'
155
  ),
156
  'good' => sprintf(
157
- /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the SEO score. */
158
- __( '%1$sSEO%2$s: %3$s', 'wordpress-seo' ),
159
- '<a href="#yoast-seo-analysis-collapsible-metabox">',
160
  '</a>',
161
  '<strong>' . __( 'Good', 'wordpress-seo' ) . '</strong>'
162
  ),
163
  ],
164
  ],
165
  ],
166
- 'markdownEnabled' => $this->is_markdown_enabled(),
167
- 'analysisHeadingTitle' => __( 'Analysis', 'wordpress-seo' ),
168
- 'zapierIntegrationActive' => WPSEO_Options::get( 'zapier_integration_active', false ) ? 1 : 0,
169
- 'zapierConnectedStatus' => ! empty( WPSEO_Options::get( 'zapier_subscription', [] ) ) ? 1 : 0,
170
- 'wincherIntegrationActive' => ( $is_wincher_active ) ? 1 : 0,
171
- 'wincherLoginStatus' => ( $is_wincher_active ) ? YoastSEO()->helpers->wincher->login_status() : false,
172
- 'wincherWebsiteId' => WPSEO_Options::get( 'wincher_website_id', '' ),
173
- 'wincherAutoAddKeyphrases' => WPSEO_Options::get( 'wincher_automatically_add_keyphrases', false ),
174
- 'wordproofIntegrationActive' => YoastSEO()->helpers->wordproof->is_active() ? 1 : 0,
175
-
176
  /**
177
  * Filter to determine whether the PreviouslyUsedKeyword assessment should run.
178
  *
179
  * @param bool $previouslyUsedKeywordActive Whether the PreviouslyUsedKeyword assessment should run.
180
  */
181
- 'previouslyUsedKeywordActive' => apply_filters( 'wpseo_previously_used_keyword_active', true ),
182
  ];
183
  }
184
 
@@ -274,6 +309,19 @@ class WPSEO_Metabox_Formatter {
274
  return $semrush_client->has_valid_tokens();
275
  }
276
 
 
 
 
 
 
 
 
 
 
 
 
 
 
277
  /* ********************* DEPRECATED METHODS ********************* */
278
 
279
  /**
5
  * @package WPSEO\Admin\Formatter
6
  */
7
 
8
+ use Yoast\WP\SEO\Conditionals\Third_Party\Polylang_Conditional;
9
+ use Yoast\WP\SEO\Conditionals\Third_Party\TranslatePress_Conditional;
10
+ use Yoast\WP\SEO\Conditionals\Third_Party\WPML_Conditional;
11
  use Yoast\WP\SEO\Config\Schema_Types;
12
  use Yoast\WP\SEO\Config\SEMrush_Client;
13
  use Yoast\WP\SEO\Exceptions\OAuth\Authentication_Failed_Exception;
53
  * @return array Default settings for the metabox.
54
  */
55
  private function get_defaults() {
56
+ $analysis_seo = new WPSEO_Metabox_Analysis_SEO();
57
+ $analysis_readability = new WPSEO_Metabox_Analysis_Readability();
58
+ $analysis_inclusive_language = new WPSEO_Metabox_Analysis_Inclusive_Language();
59
+ $schema_types = new Schema_Types();
60
+ $is_wincher_active = YoastSEO()->helpers->wincher->is_active();
61
 
62
  return [
63
+ 'author_name' => get_the_author_meta( 'display_name' ),
64
+ 'site_name' => get_bloginfo( 'name' ),
65
+ 'sitewide_social_image' => WPSEO_Options::get( 'og_default_image' ),
66
+ 'search_url' => '',
67
+ 'post_edit_url' => '',
68
+ 'base_url' => '',
69
+ 'contentTab' => __( 'Readability', 'wordpress-seo' ),
70
+ 'keywordTab' => __( 'Keyphrase:', 'wordpress-seo' ),
71
+ 'removeKeyword' => __( 'Remove keyphrase', 'wordpress-seo' ),
72
+ 'contentLocale' => get_locale(),
73
+ 'userLocale' => \get_user_locale(),
74
+ 'translations' => $this->get_translations(),
75
+ 'keyword_usage' => [],
76
+ 'title_template' => '',
77
+ 'metadesc_template' => '',
78
+ 'contentAnalysisActive' => $analysis_readability->is_enabled() ? 1 : 0,
79
+ 'keywordAnalysisActive' => $analysis_seo->is_enabled() ? 1 : 0,
80
+ 'inclusiveLanguageAnalysisActive' => $analysis_inclusive_language->is_enabled() ? 1 : 0,
81
+ 'cornerstoneActive' => WPSEO_Options::get( 'enable_cornerstone_content', false ) ? 1 : 0,
82
+ 'semrushIntegrationActive' => WPSEO_Options::get( 'semrush_integration_active', true ) ? 1 : 0,
83
+ 'intl' => $this->get_content_analysis_component_translations(),
84
+ 'isRtl' => is_rtl(),
85
+ 'isPremium' => YoastSEO()->helpers->product->is_premium(),
86
+ 'wordFormRecognitionActive' => YoastSEO()->helpers->language->is_word_form_recognition_active( WPSEO_Language_Utils::get_language( get_locale() ) ),
87
+ 'siteIconUrl' => get_site_icon_url(),
88
+ 'countryCode' => WPSEO_Options::get( 'semrush_country_code', false ),
89
+ 'SEMrushLoginStatus' => WPSEO_Options::get( 'semrush_integration_active', true ) ? $this->get_semrush_login_status() : false,
90
+ 'showSocial' => [
91
  'facebook' => WPSEO_Options::get( 'opengraph', false ),
92
  'twitter' => WPSEO_Options::get( 'twitter', false ),
93
  ],
94
+ 'schema' => [
95
  'displayFooter' => WPSEO_Capability_Utils::current_user_can( 'wpseo_manage_options' ),
96
  'pageTypeOptions' => $schema_types->get_page_type_options(),
97
  'articleTypeOptions' => $schema_types->get_article_type_options(),
98
  ],
99
+ 'twitterCardType' => YoastSEO()->helpers->options->get( 'twitter_card_type' ),
100
 
101
  /**
102
  * Filter to determine if the markers should be enabled or not.
103
  *
104
  * @param bool $showMarkers Should the markers being enabled. Default = true.
105
  */
106
+ 'show_markers' => apply_filters( 'wpseo_enable_assessment_markers', true ),
107
+ 'publish_box' => [
108
  'labels' => [
109
+ 'keyword' => [
110
+ 'na' => sprintf(
111
+ /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the SEO score. */
112
+ __( '%1$sSEO%2$s: %3$s', 'wordpress-seo' ),
113
+ '<a href="#yoast-seo-analysis-collapsible-metabox">',
114
+ '</a>',
115
+ '<strong>' . __( 'Not available', 'wordpress-seo' ) . '</strong>'
116
+ ),
117
+ 'bad' => sprintf(
118
+ /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the SEO score. */
119
+ __( '%1$sSEO%2$s: %3$s', 'wordpress-seo' ),
120
+ '<a href="#yoast-seo-analysis-collapsible-metabox">',
121
+ '</a>',
122
+ '<strong>' . __( 'Needs improvement', 'wordpress-seo' ) . '</strong>'
123
+ ),
124
+ 'ok' => sprintf(
125
+ /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the SEO score. */
126
+ __( '%1$sSEO%2$s: %3$s', 'wordpress-seo' ),
127
+ '<a href="#yoast-seo-analysis-collapsible-metabox">',
128
+ '</a>',
129
+ '<strong>' . __( 'OK', 'wordpress-seo' ) . '</strong>'
130
+ ),
131
+ 'good' => sprintf(
132
+ /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the SEO score. */
133
+ __( '%1$sSEO%2$s: %3$s', 'wordpress-seo' ),
134
+ '<a href="#yoast-seo-analysis-collapsible-metabox">',
135
+ '</a>',
136
+ '<strong>' . __( 'Good', 'wordpress-seo' ) . '</strong>'
137
+ ),
138
+ ],
139
  'content' => [
140
  'na' => sprintf(
141
+ /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the readability score. */
142
  __( '%1$sReadability%2$s: %3$s', 'wordpress-seo' ),
143
  '<a href="#yoast-readability-analysis-collapsible-metabox">',
144
  '</a>',
145
  '<strong>' . __( 'Not available', 'wordpress-seo' ) . '</strong>'
146
  ),
147
  'bad' => sprintf(
148
+ /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the readability score. */
149
  __( '%1$sReadability%2$s: %3$s', 'wordpress-seo' ),
150
  '<a href="#yoast-readability-analysis-collapsible-metabox">',
151
  '</a>',
152
  '<strong>' . __( 'Needs improvement', 'wordpress-seo' ) . '</strong>'
153
  ),
154
  'ok' => sprintf(
155
+ /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the readability score. */
156
  __( '%1$sReadability%2$s: %3$s', 'wordpress-seo' ),
157
  '<a href="#yoast-readability-analysis-collapsible-metabox">',
158
  '</a>',
159
  '<strong>' . __( 'OK', 'wordpress-seo' ) . '</strong>'
160
  ),
161
  'good' => sprintf(
162
+ /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the readability score. */
163
  __( '%1$sReadability%2$s: %3$s', 'wordpress-seo' ),
164
  '<a href="#yoast-readability-analysis-collapsible-metabox">',
165
  '</a>',
166
  '<strong>' . __( 'Good', 'wordpress-seo' ) . '</strong>'
167
  ),
168
  ],
169
+ 'inclusive-language' => [
170
  'na' => sprintf(
171
+ /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the inclusive language score. */
172
+ __( '%1$sInclusive language%2$s: %3$s', 'wordpress-seo' ),
173
+ '<a href="#yoast-inclusive-language-analysis-collapsible-metabox">',
174
  '</a>',
175
  '<strong>' . __( 'Not available', 'wordpress-seo' ) . '</strong>'
176
  ),
177
  'bad' => sprintf(
178
+ /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the inclusive language score. */
179
+ __( '%1$sInclusive language%2$s: %3$s', 'wordpress-seo' ),
180
+ '<a href="#yoast-inclusive-language-analysis-collapsible-metabox">',
181
  '</a>',
182
  '<strong>' . __( 'Needs improvement', 'wordpress-seo' ) . '</strong>'
183
  ),
184
  'ok' => sprintf(
185
+ /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the inclusive language score. */
186
+ __( '%1$sInclusive language%2$s: %3$s', 'wordpress-seo' ),
187
+ '<a href="#yoast-inclusive-language-analysis-collapsible-metabox">',
188
  '</a>',
189
  '<strong>' . __( 'OK', 'wordpress-seo' ) . '</strong>'
190
  ),
191
  'good' => sprintf(
192
+ /* translators: %1$s expands to the opening anchor tag, %2$s to the closing anchor tag, %3$s to the inclusive language score. */
193
+ __( '%1$sInclusive language%2$s: %3$s', 'wordpress-seo' ),
194
+ '<a href="#yoast-inclusive-language-analysis-collapsible-metabox">',
195
  '</a>',
196
  '<strong>' . __( 'Good', 'wordpress-seo' ) . '</strong>'
197
  ),
198
  ],
199
  ],
200
  ],
201
+ 'markdownEnabled' => $this->is_markdown_enabled(),
202
+ 'analysisHeadingTitle' => __( 'Analysis', 'wordpress-seo' ),
203
+ 'zapierIntegrationActive' => WPSEO_Options::get( 'zapier_integration_active', false ) ? 1 : 0,
204
+ 'zapierConnectedStatus' => ! empty( WPSEO_Options::get( 'zapier_subscription', [] ) ) ? 1 : 0,
205
+ 'wincherIntegrationActive' => ( $is_wincher_active ) ? 1 : 0,
206
+ 'wincherLoginStatus' => ( $is_wincher_active ) ? YoastSEO()->helpers->wincher->login_status() : false,
207
+ 'wincherWebsiteId' => WPSEO_Options::get( 'wincher_website_id', '' ),
208
+ 'wincherAutoAddKeyphrases' => WPSEO_Options::get( 'wincher_automatically_add_keyphrases', false ),
209
+ 'wordproofIntegrationActive' => YoastSEO()->helpers->wordproof->is_active() ? 1 : 0,
210
+ 'multilingualPluginActive' => $this->multilingual_plugin_active(),
211
  /**
212
  * Filter to determine whether the PreviouslyUsedKeyword assessment should run.
213
  *
214
  * @param bool $previouslyUsedKeywordActive Whether the PreviouslyUsedKeyword assessment should run.
215
  */
216
+ 'previouslyUsedKeywordActive' => apply_filters( 'wpseo_previously_used_keyword_active', true ),
217
  ];
218
  }
219
 
309
  return $semrush_client->has_valid_tokens();
310
  }
311
 
312
+ /**
313
+ * Checks whether a multilingual plugin is currently active. Currently, we only check the following plugins: WPML, Polylang, and TranslatePress.
314
+ *
315
+ * @return bool Whether a multilingual plugin is currently active.
316
+ */
317
+ private function multilingual_plugin_active() {
318
+ $wpml_active = YoastSEO()->classes->get( WPML_Conditional::class )->is_met();
319
+ $polylang_active = YoastSEO()->classes->get( Polylang_Conditional::class )->is_met();
320
+ $translatepress_active = YoastSEO()->classes->get( TranslatePress_Conditional::class )->is_met();
321
+
322
+ return ( $wpml_active || $polylang_active || $translatepress_active );
323
+ }
324
+
325
  /* ********************* DEPRECATED METHODS ********************* */
326
 
327
  /**
admin/metabox/class-metabox-analysis-inclusive-language.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WPSEO plugin file.
4
+ *
5
+ * @package WPSEO\Admin\Metabox
6
+ */
7
+
8
+ /**
9
+ * Represents the inclusive language analysis.
10
+ */
11
+ class WPSEO_Metabox_Analysis_Inclusive_Language implements WPSEO_Metabox_Analysis {
12
+
13
+ /**
14
+ * Whether this analysis is enabled.
15
+ *
16
+ * @return bool Whether or not this analysis is enabled.
17
+ */
18
+ public function is_enabled() {
19
+ return $this->is_globally_enabled() && $this->is_user_enabled() && $this->is_current_version_supported()
20
+ && YoastSEO()->helpers->product->is_premium()
21
+ && YoastSEO()->helpers->language->has_inclusive_language_support( \WPSEO_Language_Utils::get_language( \get_locale() ) );
22
+ }
23
+
24
+ /**
25
+ * Whether or not this analysis is enabled by the user.
26
+ *
27
+ * @return bool Whether or not this analysis is enabled by the user.
28
+ */
29
+ public function is_user_enabled() {
30
+ return ! get_the_author_meta( 'wpseo_inclusive_language_analysis_disable', get_current_user_id() );
31
+ }
32
+
33
+ /**
34
+ * Whether or not this analysis is enabled globally.
35
+ *
36
+ * @return bool Whether or not this analysis is enabled globally.
37
+ */
38
+ public function is_globally_enabled() {
39
+ return WPSEO_Options::get( 'inclusive_language_analysis_active', false );
40
+ }
41
+
42
+ /**
43
+ * Whether or not a certain premium version support inclusive language feature.
44
+ *
45
+ * @return bool Whether or not a certain premium version support inclusive language feature.
46
+ */
47
+ private function is_current_version_supported() {
48
+ $is_premium = YoastSEO()->helpers->product->is_premium();
49
+ $premium_version = YoastSEO()->helpers->product->get_premium_version();
50
+
51
+ return $is_premium && \version_compare( $premium_version, '19.2-RC1', '>=' );
52
+ }
53
+ }
admin/metabox/class-metabox-section-inclusive-language.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WPSEO plugin file.
4
+ *
5
+ * @package WPSEO\Admin
6
+ */
7
+
8
+ use Yoast\WP\SEO\Presenters\Admin\Beta_Badge_Presenter;
9
+
10
+ /**
11
+ * Generates and displays the React root element for a metabox section.
12
+ */
13
+ class WPSEO_Metabox_Section_Inclusive_Language implements WPSEO_Metabox_Section {
14
+
15
+ /**
16
+ * Name of the section, used as an identifier in the HTML.
17
+ *
18
+ * @var string
19
+ */
20
+ public $name = 'inclusive-language';
21
+
22
+ /**
23
+ * Outputs the section link.
24
+ */
25
+ public function display_link() {
26
+ printf(
27
+ '<li role="presentation"><a role="tab" href="#wpseo-meta-section-%1$s" id="wpseo-meta-tab-%1$s" aria-controls="wpseo-meta-section-%1$s" class="wpseo-meta-section-link">
28
+ <div class="wpseo-score-icon-container" id="wpseo-inclusive-language-score-icon"></div><span>%2$s</span>&nbsp;%3$s</a></li>',
29
+ esc_attr( $this->name ),
30
+ esc_html__( 'Inclusive language', 'wordpress-seo' ),
31
+ new Beta_Badge_Presenter( 'inclusive-language-beta-badge' )
32
+ );
33
+ }
34
+
35
+ /**
36
+ * Outputs the section content.
37
+ */
38
+ public function display_content() {
39
+ printf(
40
+ '<div role="tabpanel" id="wpseo-meta-section-%1$s" aria-labelledby="wpseo-meta-tab-%1$s" tabindex="0" class="wpseo-meta-section">',
41
+ esc_attr( $this->name )
42
+ );
43
+ echo '<div id="wpseo-metabox-inclusive-language-root" class="wpseo-metabox-root"></div>', '</div>';
44
+ }
45
+ }
admin/metabox/class-metabox.php CHANGED
@@ -37,6 +37,13 @@ class WPSEO_Metabox extends WPSEO_Meta {
37
  */
38
  protected $readability_analysis;
39
 
 
 
 
 
 
 
 
40
  /**
41
  * The metabox editor object.
42
  *
@@ -92,8 +99,9 @@ class WPSEO_Metabox extends WPSEO_Meta {
92
  new Input_Helper()
93
  );
94
 
95
- $this->seo_analysis = new WPSEO_Metabox_Analysis_SEO();
96
- $this->readability_analysis = new WPSEO_Metabox_Analysis_Readability();
 
97
  }
98
 
99
  /**
@@ -424,6 +432,10 @@ class WPSEO_Metabox extends WPSEO_Meta {
424
  $tabs[] = new WPSEO_Metabox_Section_Readability();
425
  }
426
 
 
 
 
 
427
  if ( $this->is_advanced_metadata_enabled ) {
428
  $tabs[] = new WPSEO_Metabox_Section_React(
429
  'schema',
@@ -817,6 +829,10 @@ class WPSEO_Metabox extends WPSEO_Meta {
817
  return true;
818
  }
819
 
 
 
 
 
820
  return false;
821
  }
822
 
@@ -908,6 +924,7 @@ class WPSEO_Metabox extends WPSEO_Meta {
908
  'userLanguageCode' => WPSEO_Language_Utils::get_language( \get_user_locale() ),
909
  'isPost' => true,
910
  'isBlockEditor' => $is_block_editor,
 
911
  'postStatus' => get_post_status( $post_id ),
912
  'analysis' => [
913
  'plugins' => $plugins_script_data,
@@ -1103,12 +1120,34 @@ class WPSEO_Metabox extends WPSEO_Meta {
1103
  return $custom_replace_vars;
1104
  }
1105
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1106
  foreach ( $custom_fields as $custom_field_name => $custom_field ) {
1107
  // Skip private custom fields.
1108
  if ( substr( $custom_field_name, 0, 1 ) === '_' ) {
1109
  continue;
1110
  }
1111
 
 
 
 
 
 
1112
  // Skip custom field values that are serialized.
1113
  if ( is_serialized( $custom_field[0] ) ) {
1114
  continue;
37
  */
38
  protected $readability_analysis;
39
 
40
+ /**
41
+ * Helper to determine whether or not the inclusive language analysis is enabled.
42
+ *
43
+ * @var WPSEO_Metabox_Analysis_Inclusive_Language
44
+ */
45
+ protected $inclusive_language_analysis;
46
+
47
  /**
48
  * The metabox editor object.
49
  *
99
  new Input_Helper()
100
  );
101
 
102
+ $this->seo_analysis = new WPSEO_Metabox_Analysis_SEO();
103
+ $this->readability_analysis = new WPSEO_Metabox_Analysis_Readability();
104
+ $this->inclusive_language_analysis = new WPSEO_Metabox_Analysis_Inclusive_Language();
105
  }
106
 
107
  /**
432
  $tabs[] = new WPSEO_Metabox_Section_Readability();
433
  }
434
 
435
+ if ( $this->inclusive_language_analysis->is_enabled() ) {
436
+ $tabs[] = new WPSEO_Metabox_Section_Inclusive_Language();
437
+ }
438
+
439
  if ( $this->is_advanced_metadata_enabled ) {
440
  $tabs[] = new WPSEO_Metabox_Section_React(
441
  'schema',
829
  return true;
830
  }
831
 
832
+ if ( $key === 'inclusive_language_score' && ! $this->inclusive_language_analysis->is_enabled() ) {
833
+ return true;
834
+ }
835
+
836
  return false;
837
  }
838
 
924
  'userLanguageCode' => WPSEO_Language_Utils::get_language( \get_user_locale() ),
925
  'isPost' => true,
926
  'isBlockEditor' => $is_block_editor,
927
+ 'postId' => $post_id,
928
  'postStatus' => get_post_status( $post_id ),
929
  'analysis' => [
930
  'plugins' => $plugins_script_data,
1120
  return $custom_replace_vars;
1121
  }
1122
 
1123
+ $meta = YoastSEO()->meta->for_post( $post->ID );
1124
+
1125
+ if ( ! $meta ) {
1126
+ return $custom_replace_vars;
1127
+ }
1128
+
1129
+ // Simply concatenate all fields containing replace vars so we can handle them all with a single regex find.
1130
+ $replace_vars_fields = implode(
1131
+ ' ',
1132
+ [
1133
+ $meta->presentation->title,
1134
+ $meta->presentation->meta_description,
1135
+ ]
1136
+ );
1137
+
1138
+ preg_match_all( '/%%cf_([A-Za-z0-9_]+)%%/', $replace_vars_fields, $matches );
1139
+ $fields_to_include = $matches[1];
1140
  foreach ( $custom_fields as $custom_field_name => $custom_field ) {
1141
  // Skip private custom fields.
1142
  if ( substr( $custom_field_name, 0, 1 ) === '_' ) {
1143
  continue;
1144
  }
1145
 
1146
+ // Skip custom fields that are not used, new ones will be fetched dynamically.
1147
+ if ( ! in_array( $custom_field_name, $fields_to_include, true ) ) {
1148
+ continue;
1149
+ }
1150
+
1151
  // Skip custom field values that are serialized.
1152
  if ( is_serialized( $custom_field[0] ) ) {
1153
  continue;
admin/taxonomy/class-taxonomy-fields.php CHANGED
@@ -72,6 +72,13 @@ class WPSEO_Taxonomy_Fields {
72
  'options' => '',
73
  'hide' => false,
74
  ],
 
 
 
 
 
 
 
75
  'focuskw' => [
76
  'label' => '',
77
  'description' => '',
72
  'options' => '',
73
  'hide' => false,
74
  ],
75
+ 'inclusive_language_score' => [
76
+ 'label' => '',
77
+ 'description' => '',
78
+ 'type' => 'hidden',
79
+ 'options' => '',
80
+ 'hide' => false,
81
+ ],
82
  'focuskw' => [
83
  'label' => '',
84
  'description' => '',
admin/taxonomy/class-taxonomy-metabox.php CHANGED
@@ -45,6 +45,13 @@ class WPSEO_Taxonomy_Metabox {
45
  */
46
  protected $readability_analysis;
47
 
 
 
 
 
 
 
 
48
  /**
49
  * The constructor.
50
  *
@@ -56,8 +63,9 @@ class WPSEO_Taxonomy_Metabox {
56
  $this->taxonomy = $taxonomy;
57
  $this->is_social_enabled = WPSEO_Options::get( 'opengraph', false ) || WPSEO_Options::get( 'twitter', false );
58
 
59
- $this->seo_analysis = new WPSEO_Metabox_Analysis_SEO();
60
- $this->readability_analysis = new WPSEO_Metabox_Analysis_Readability();
 
61
  }
62
 
63
  /**
@@ -140,6 +148,10 @@ class WPSEO_Taxonomy_Metabox {
140
  $tabs[] = new WPSEO_Metabox_Section_Readability();
141
  }
142
 
 
 
 
 
143
  if ( $this->is_social_enabled ) {
144
  $tabs[] = new WPSEO_Metabox_Section_React(
145
  'social',
45
  */
46
  protected $readability_analysis;
47
 
48
+ /**
49
+ * Helper to determine whether or not the inclusive language analysis is enabled.
50
+ *
51
+ * @var WPSEO_Metabox_Analysis_Inclusive_Language
52
+ */
53
+ protected $inclusive_language_analysis;
54
+
55
  /**
56
  * The constructor.
57
  *
63
  $this->taxonomy = $taxonomy;
64
  $this->is_social_enabled = WPSEO_Options::get( 'opengraph', false ) || WPSEO_Options::get( 'twitter', false );
65
 
66
+ $this->seo_analysis = new WPSEO_Metabox_Analysis_SEO();
67
+ $this->readability_analysis = new WPSEO_Metabox_Analysis_Readability();
68
+ $this->inclusive_language_analysis = new WPSEO_Metabox_Analysis_Inclusive_Language();
69
  }
70
 
71
  /**
148
  $tabs[] = new WPSEO_Metabox_Section_Readability();
149
  }
150
 
151
+ if ( $this->inclusive_language_analysis->is_enabled() ) {
152
+ $tabs[] = new WPSEO_Metabox_Section_Inclusive_Language();
153
+ }
154
+
155
  if ( $this->is_social_enabled ) {
156
  $tabs[] = new WPSEO_Metabox_Section_React(
157
  'social',
admin/taxonomy/class-taxonomy.php CHANGED
@@ -33,6 +33,13 @@ class WPSEO_Taxonomy {
33
  */
34
  private $analysis_readability;
35
 
 
 
 
 
 
 
 
36
  /**
37
  * Class constructor.
38
  */
@@ -46,8 +53,9 @@ class WPSEO_Taxonomy {
46
  if ( self::is_term_overview( $GLOBALS['pagenow'] ) ) {
47
  new WPSEO_Taxonomy_Columns();
48
  }
49
- $this->analysis_seo = new WPSEO_Metabox_Analysis_SEO();
50
- $this->analysis_readability = new WPSEO_Metabox_Analysis_Readability();
 
51
  }
52
 
53
  /**
@@ -168,6 +176,7 @@ class WPSEO_Taxonomy {
168
  'metabox' => $this->localize_term_scraper_script(),
169
  'userLanguageCode' => WPSEO_Language_Utils::get_language( \get_user_locale() ),
170
  'isTerm' => true,
 
171
  ];
172
  $asset_manager->localize_script( 'term-edit', 'wpseoScriptData', $script_data );
173
  $asset_manager->enqueue_user_language_script();
@@ -225,6 +234,10 @@ class WPSEO_Taxonomy {
225
  return true;
226
  }
227
 
 
 
 
 
228
  return false;
229
  }
230
 
33
  */
34
  private $analysis_readability;
35
 
36
+ /**
37
+ * Holds the metabox inclusive language analysis instance.
38
+ *
39
+ * @var WPSEO_Metabox_Analysis_Inclusive_Language
40
+ */
41
+ private $analysis_inclusive_language;
42
+
43
  /**
44
  * Class constructor.
45
  */
53
  if ( self::is_term_overview( $GLOBALS['pagenow'] ) ) {
54
  new WPSEO_Taxonomy_Columns();
55
  }
56
+ $this->analysis_seo = new WPSEO_Metabox_Analysis_SEO();
57
+ $this->analysis_readability = new WPSEO_Metabox_Analysis_Readability();
58
+ $this->analysis_inclusive_language = new WPSEO_Metabox_Analysis_Inclusive_Language();
59
  }
60
 
61
  /**
176
  'metabox' => $this->localize_term_scraper_script(),
177
  'userLanguageCode' => WPSEO_Language_Utils::get_language( \get_user_locale() ),
178
  'isTerm' => true,
179
+ 'postId' => $tag_id,
180
  ];
181
  $asset_manager->localize_script( 'term-edit', 'wpseoScriptData', $script_data );
182
  $asset_manager->enqueue_user_language_script();
234
  return true;
235
  }
236
 
237
+ if ( $key === 'wpseo_inclusive_language_score' && ! $this->analysis_inclusive_language->is_enabled() ) {
238
+ return true;
239
+ }
240
+
241
  return false;
242
  }
243
 
admin/tracking/class-tracking-settings-data.php CHANGED
@@ -75,6 +75,7 @@ class WPSEO_Tracking_Settings_Data implements WPSEO_Collection {
75
  'environment_type',
76
  'content_analysis_active',
77
  'keyword_analysis_active',
 
78
  'enable_admin_bar_menu',
79
  'enable_cornerstone_content',
80
  'enable_xml_sitemap',
75
  'environment_type',
76
  'content_analysis_active',
77
  'keyword_analysis_active',
78
+ 'inclusive_language_analysis_active',
79
  'enable_admin_bar_menu',
80
  'enable_cornerstone_content',
81
  'enable_xml_sitemap',
admin/views/class-yoast-feature-toggle.php CHANGED
@@ -31,6 +31,30 @@ class Yoast_Feature_Toggle {
31
  */
32
  protected $premium = false;
33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  /**
35
  * Feature toggle label.
36
  *
@@ -109,18 +133,21 @@ class Yoast_Feature_Toggle {
109
  * @param array $args {
110
  * Feature toggle arguments.
111
  *
112
- * @type string $name Required. Feature toggle identifier.
113
- * @type string $setting Required. Name of the setting the feature toggle is associated with.
114
- * @type string $disabled Whether the feature is premium or not.
115
- * @type string $label Feature toggle label.
116
- * @type string $read_more_url URL to learn more about the feature. Default empty string.
117
- * @type string $premium_upsell_url URL to buy premium. Default empty string.
118
- * @type string $read_more_label Label for the learn more link. Default empty string.
119
- * @type string $extra Additional help content for the feature. Default empty string.
120
- * @type int $order Value to specify the feature toggle order. A lower value indicates
121
- * a higher priority. Default 100.
122
- * @type bool $disabled Disable the integration toggle. Default false.
123
- * @type string $new Whether the feature is new or not.
 
 
 
124
  * }
125
  *
126
  * @throws InvalidArgumentException Thrown when a required argument is missing.
31
  */
32
  protected $premium = false;
33
 
34
+ /**
35
+ * Whether the feature is in beta or not.
36
+ *
37
+ * @var bool
38
+ */
39
+ protected $in_beta = false;
40
+
41
+ /**
42
+ * The Premium version in which this feature has been added.
43
+ *
44
+ * @var string
45
+ */
46
+ protected $premium_version = '';
47
+
48
+ /**
49
+ * The languages in which this feature is supported.
50
+ * E.g. for language specific analysis support.
51
+ *
52
+ * If empty, the feature is considered to have support in all languages.
53
+ *
54
+ * @var string[]
55
+ */
56
+ protected $supported_languages = [];
57
+
58
  /**
59
  * Feature toggle label.
60
  *
133
  * @param array $args {
134
  * Feature toggle arguments.
135
  *
136
+ * @type string $name Required. Feature toggle identifier.
137
+ * @type string $setting Required. Name of the setting the feature toggle is associated with.
138
+ * @type string $disabled Whether the feature is premium or not.
139
+ * @type string $label Feature toggle label.
140
+ * @type string $read_more_url URL to learn more about the feature. Default empty string.
141
+ * @type string $premium_upsell_url URL to buy premium. Default empty string.
142
+ * @type string $read_more_label Label for the learn more link. Default empty string.
143
+ * @type string $extra Additional help content for the feature. Default empty string.
144
+ * @type int $order Value to specify the feature toggle order. A lower value indicates
145
+ * a higher priority. Default 100.
146
+ * @type bool $disabled Disable the integration toggle. Default false.
147
+ * @type string $new Whether the feature is new or not.
148
+ * @type bool $in_beta Whether the feature is in beta or not.
149
+ * @type array $supported_languages The languages that this feature supports.
150
+ * @type string $premium_version The Premium version in which this feature was added.
151
  * }
152
  *
153
  * @throws InvalidArgumentException Thrown when a required argument is missing.
admin/views/class-yoast-feature-toggles.php CHANGED
@@ -5,6 +5,7 @@
5
  * @package WPSEO\Admin
6
  */
7
 
 
8
  use Yoast\WP\SEO\Presenters\Admin\Alert_Presenter;
9
 
10
  /**
@@ -86,6 +87,20 @@ class Yoast_Feature_Toggles {
86
  'read_more_url' => 'https://yoa.st/2ao',
87
  'order' => 20,
88
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  (object) [
90
  'name' => __( 'Cornerstone content', 'wordpress-seo' ),
91
  'setting' => 'enable_cornerstone_content',
5
  * @package WPSEO\Admin
6
  */
7
 
8
+ use Yoast\WP\SEO\Helpers\Language_Helper;
9
  use Yoast\WP\SEO\Presenters\Admin\Alert_Presenter;
10
 
11
  /**
87
  'read_more_url' => 'https://yoa.st/2ao',
88
  'order' => 20,
89
  ],
90
+ (object) [
91
+ 'name' => __( 'Inclusive language analysis', 'wordpress-seo' ),
92
+ 'premium' => true,
93
+ 'premium_version' => '19.2-RC1',
94
+ 'in_beta' => true,
95
+ 'supported_languages' => Language_Helper::$languages_with_inclusive_language_support,
96
+ 'setting' => 'inclusive_language_analysis_active',
97
+ 'label' => __( 'The inclusive language analysis offers suggestions to write more inclusive copy.', 'wordpress-seo' ),
98
+ 'read_more_label' => __( 'Discover why inclusive language is important for SEO.', 'wordpress-seo' ),
99
+ 'read_more_url' => 'https://yoa.st/inclusive-language-features-free',
100
+ 'premium_url' => 'https://yoa.st/inclusive-language-features-premium',
101
+ 'premium_upsell_url' => 'https://yoa.st/get-inclusive-language',
102
+ 'order' => 25,
103
+ ],
104
  (object) [
105
  'name' => __( 'Cornerstone content', 'wordpress-seo' ),
106
  'setting' => 'enable_cornerstone_content',
admin/views/class-yoast-integration-toggles.php CHANGED
@@ -73,21 +73,6 @@ class Yoast_Integration_Toggles {
73
  ),
74
  'order' => 10,
75
  ],
76
- (object) [
77
- /* translators: %s: Ryte */
78
- 'name' => sprintf( __( '%s integration', 'wordpress-seo' ), 'Ryte' ),
79
- 'setting' => 'ryte_indexability',
80
- 'label' => sprintf(
81
- /* translators: 1: Ryte, 2: Yoast SEO */
82
- __( '%1$s will check weekly if your site is still indexable by search engines and %2$s will notify you when this is not the case.', 'wordpress-seo' ),
83
- 'Ryte',
84
- 'Yoast SEO'
85
- ),
86
- /* translators: %s: Ryte */
87
- 'read_more_label' => sprintf( __( 'Read more about how %s works.', 'wordpress-seo' ), 'Ryte ' ),
88
- 'read_more_url' => 'https://yoa.st/2an',
89
- 'order' => 15,
90
- ],
91
  (object) [
92
  /* translators: %s: Zapier. */
93
  'name' => \sprintf( \esc_html__( '%s integration', 'wordpress-seo' ), 'Zapier' ),
73
  ),
74
  'order' => 10,
75
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  (object) [
77
  /* translators: %s: Zapier. */
78
  'name' => \sprintf( \esc_html__( '%s integration', 'wordpress-seo' ), 'Zapier' ),
admin/views/tabs/dashboard/features.php CHANGED
@@ -7,6 +7,7 @@
7
  * @uses Yoast_Form $yform Form object.
8
  */
9
 
 
10
  use Yoast\WP\SEO\Presenters\Admin\Premium_Badge_Presenter;
11
 
12
  if ( ! defined( 'WPSEO_VERSION' ) ) {
@@ -28,6 +29,17 @@ $feature_toggles = Yoast_Feature_Toggles::instance()->get_all();
28
  );
29
 
30
  foreach ( $feature_toggles as $feature ) {
 
 
 
 
 
 
 
 
 
 
 
31
  $help_text = esc_html( $feature->label );
32
  if ( ! empty( $feature->extra ) ) {
33
  $help_text .= ' ' . $feature->extra;
@@ -57,16 +69,31 @@ $feature_toggles = Yoast_Feature_Toggles::instance()->get_all();
57
  $name .= ' ' . new Premium_Badge_Presenter( $feature->name );
58
  }
59
 
 
 
 
 
60
  $disabled = false;
61
  $show_premium_upsell = false;
62
  $premium_upsell_url = '';
63
-
64
  if ( $feature->premium === true && YoastSEO()->helpers->product->is_premium() === false ) {
65
  $disabled = true;
66
  $show_premium_upsell = true;
67
  $premium_upsell_url = WPSEO_Shortlinker::get( $feature->premium_upsell_url );
68
  }
69
 
 
 
 
 
 
 
 
 
 
 
 
70
  $preserve_disabled_value = false;
71
  if ( $disabled ) {
72
  $preserve_disabled_value = true;
@@ -85,6 +112,7 @@ $feature_toggles = Yoast_Feature_Toggles::instance()->get_all();
85
  'preserve_disabled_value' => $preserve_disabled_value,
86
  'show_premium_upsell' => $show_premium_upsell,
87
  'premium_upsell_url' => $premium_upsell_url,
 
88
  ]
89
  );
90
 
7
  * @uses Yoast_Form $yform Form object.
8
  */
9
 
10
+ use Yoast\WP\SEO\Presenters\Admin\Beta_Badge_Presenter;
11
  use Yoast\WP\SEO\Presenters\Admin\Premium_Badge_Presenter;
12
 
13
  if ( ! defined( 'WPSEO_VERSION' ) ) {
29
  );
30
 
31
  foreach ( $feature_toggles as $feature ) {
32
+ $is_premium = YoastSEO()->helpers->product->is_premium();
33
+ $premium_version = YoastSEO()->helpers->product->get_premium_version();
34
+
35
+ if ( $feature->premium && $feature->premium_version ) {
36
+ $not_supported_in_current_premium_version = $is_premium && \version_compare( $premium_version, $feature->premium_version, '<' );
37
+
38
+ if ( $not_supported_in_current_premium_version ) {
39
+ continue;
40
+ }
41
+ }
42
+
43
  $help_text = esc_html( $feature->label );
44
  if ( ! empty( $feature->extra ) ) {
45
  $help_text .= ' ' . $feature->extra;
69
  $name .= ' ' . new Premium_Badge_Presenter( $feature->name );
70
  }
71
 
72
+ if ( ! empty( $feature->in_beta ) && $feature->in_beta === true ) {
73
+ $name .= ' ' . new Beta_Badge_Presenter( $feature->name );
74
+ }
75
+
76
  $disabled = false;
77
  $show_premium_upsell = false;
78
  $premium_upsell_url = '';
79
+ $note_when_disabled = '';
80
  if ( $feature->premium === true && YoastSEO()->helpers->product->is_premium() === false ) {
81
  $disabled = true;
82
  $show_premium_upsell = true;
83
  $premium_upsell_url = WPSEO_Shortlinker::get( $feature->premium_upsell_url );
84
  }
85
 
86
+ $current_language = WPSEO_Language_Utils::get_language( \get_locale() );
87
+ $feature_is_not_supported_in_current_language = $feature->supported_languages && ! \in_array( $current_language, $feature->supported_languages, true );
88
+
89
+ if ( $feature_is_not_supported_in_current_language ) {
90
+ $disabled = true;
91
+ $show_premium_upsell = false;
92
+ $note_when_disabled = __( 'This feature has been disabled, since it is not supported for your language yet.', 'wordpress-seo' );
93
+ // Do not show Premium or Beta badge.
94
+ $name = $feature->name;
95
+ }
96
+
97
  $preserve_disabled_value = false;
98
  if ( $disabled ) {
99
  $preserve_disabled_value = true;
112
  'preserve_disabled_value' => $preserve_disabled_value,
113
  'show_premium_upsell' => $show_premium_upsell,
114
  'premium_upsell_url' => $premium_upsell_url,
115
+ 'note_when_disabled' => $note_when_disabled,
116
  ]
117
  );
118
 
admin/views/tabs/network/features.php CHANGED
@@ -7,6 +7,7 @@
7
  * @uses Yoast_Form $yform Form object.
8
  */
9
 
 
10
  use Yoast\WP\SEO\Presenters\Admin\Premium_Badge_Presenter;
11
 
12
  if ( ! defined( 'WPSEO_VERSION' ) ) {
@@ -28,15 +29,29 @@ $feature_toggles = Yoast_Feature_Toggles::instance()->get_all();
28
  );
29
 
30
  foreach ( $feature_toggles as $feature ) {
 
 
 
 
 
 
 
 
 
 
 
31
  $help_text = esc_html( $feature->label );
32
  if ( ! empty( $feature->extra ) ) {
33
  $help_text .= ' ' . $feature->extra;
34
  }
35
  if ( ! empty( $feature->read_more_label ) ) {
36
- $help_text .= ' ';
 
 
 
37
  $help_text .= sprintf(
38
  '<a href="%1$s" target="_blank" rel="noopener noreferrer">%2$s</a>',
39
- esc_url( WPSEO_Shortlinker::get( $feature->read_more_url ) ),
40
  esc_html( $feature->read_more_label )
41
  );
42
  }
@@ -53,9 +68,14 @@ $feature_toggles = Yoast_Feature_Toggles::instance()->get_all();
53
  $name .= ' ' . new Premium_Badge_Presenter( $feature->name );
54
  }
55
 
 
 
 
 
56
  $disabled = false;
57
  $show_premium_upsell = false;
58
  $premium_upsell_url = '';
 
59
 
60
  if ( $feature->premium === true && YoastSEO()->helpers->product->is_premium() === false ) {
61
  $disabled = true;
@@ -81,6 +101,7 @@ $feature_toggles = Yoast_Feature_Toggles::instance()->get_all();
81
  'preserve_disabled_value' => $preserve_disabled_value,
82
  'show_premium_upsell' => $show_premium_upsell,
83
  'premium_upsell_url' => $premium_upsell_url,
 
84
  ]
85
  );
86
  }
7
  * @uses Yoast_Form $yform Form object.
8
  */
9
 
10
+ use Yoast\WP\SEO\Presenters\Admin\Beta_Badge_Presenter;
11
  use Yoast\WP\SEO\Presenters\Admin\Premium_Badge_Presenter;
12
 
13
  if ( ! defined( 'WPSEO_VERSION' ) ) {
29
  );
30
 
31
  foreach ( $feature_toggles as $feature ) {
32
+ $is_premium = YoastSEO()->helpers->product->is_premium();
33
+ $premium_version = YoastSEO()->helpers->product->get_premium_version();
34
+
35
+ if ( $feature->premium && $feature->premium_version ) {
36
+ $not_supported_in_current_premium_version = $is_premium && \version_compare( $premium_version, $feature->premium_version, '<' );
37
+
38
+ if ( $not_supported_in_current_premium_version ) {
39
+ continue;
40
+ }
41
+ }
42
+
43
  $help_text = esc_html( $feature->label );
44
  if ( ! empty( $feature->extra ) ) {
45
  $help_text .= ' ' . $feature->extra;
46
  }
47
  if ( ! empty( $feature->read_more_label ) ) {
48
+ $url = $feature->read_more_url;
49
+ if ( ! empty( $feature->premium ) && $feature->premium === true ) {
50
+ $url = $feature->premium_url;
51
+ }
52
  $help_text .= sprintf(
53
  '<a href="%1$s" target="_blank" rel="noopener noreferrer">%2$s</a>',
54
+ esc_url( WPSEO_Shortlinker::get( $url ) ),
55
  esc_html( $feature->read_more_label )
56
  );
57
  }
68
  $name .= ' ' . new Premium_Badge_Presenter( $feature->name );
69
  }
70
 
71
+ if ( ! empty( $feature->in_beta ) && $feature->in_beta === true ) {
72
+ $name .= ' ' . new Beta_Badge_Presenter( $feature->name );
73
+ }
74
+
75
  $disabled = false;
76
  $show_premium_upsell = false;
77
  $premium_upsell_url = '';
78
+ $note_when_disabled = '';
79
 
80
  if ( $feature->premium === true && YoastSEO()->helpers->product->is_premium() === false ) {
81
  $disabled = true;
101
  'preserve_disabled_value' => $preserve_disabled_value,
102
  'show_premium_upsell' => $show_premium_upsell,
103
  'premium_upsell_url' => $premium_upsell_url,
104
+ 'note_when_disabled' => $note_when_disabled,
105
  ]
106
  );
107
  }
admin/views/user-profile.php CHANGED
@@ -60,4 +60,16 @@ $wpseo_no_index_author_label = sprintf(
60
  <?php esc_html_e( 'Removes the readability analysis section from the metabox and disables all readability-related suggestions.', 'wordpress-seo' ); ?>
61
  </p>
62
  <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
63
  </div>
60
  <?php esc_html_e( 'Removes the readability analysis section from the metabox and disables all readability-related suggestions.', 'wordpress-seo' ); ?>
61
  </p>
62
  <?php endif; ?>
63
+
64
+ <?php if ( WPSEO_Options::get( 'inclusive_language_analysis_active', false ) ) : ?>
65
+ <input class="yoast-settings__checkbox double" type="checkbox" id="wpseo_inclusive_language_analysis_disable"
66
+ name="wpseo_inclusive_language_analysis_disable" aria-describedby="wpseo_inclusive_language_analysis_disable_desc"
67
+ value="on" <?php echo ( get_the_author_meta( 'wpseo_inclusive_language_analysis_disable', $user->ID ) === 'on' ) ? 'checked' : ''; ?> />
68
+ <label class="yoast-label-strong"
69
+ for="wpseo_inclusive_language_analysis_disable"><?php esc_html_e( 'Disable inclusive language analysis', 'wordpress-seo' ); ?></label>
70
+ <br>
71
+ <p class="description" id="wpseo_inclusive_language_analysis_disable_desc">
72
+ <?php esc_html_e( 'Removes the inclusive language analysis section from the metabox and disables all inclusive language-related suggestions.', 'wordpress-seo' ); ?>
73
+ </p>
74
+ <?php endif; ?>
75
  </div>
css/dist/{admin-global-1951-rtl.css → admin-global-1960-rtl.css} RENAMED
File without changes
css/dist/{admin-global-1951.css → admin-global-1960.css} RENAMED
File without changes
css/dist/{adminbar-1951-rtl.css → adminbar-1960-rtl.css} RENAMED
File without changes
css/dist/{adminbar-1951.css → adminbar-1960.css} RENAMED
File without changes
css/dist/{alerts-1951-rtl.css → alerts-1960-rtl.css} RENAMED
File without changes
css/dist/{alerts-1951.css → alerts-1960.css} RENAMED
File without changes
css/dist/dashboard-1951-rtl.css DELETED
@@ -1 +0,0 @@
1
- #yoast-seo-dashboard-widget h3{font-weight:700}#yoast-seo-dashboard-widget .assessments,#yoast-seo-dashboard-widget .score-assessments{padding-right:0}#yoast-seo-dashboard-widget .wincher-seo-performance,#yoast-seo-dashboard-widget .wordpress-feed{border-top:1px solid #eee;margin:16px -12px 0;padding:12px 12px 0}#yoast-seo-dashboard-widget .wordpress-feed .wordpress-feed__post{margin-top:12px}#yoast-seo-dashboard-widget .wordpress-feed .wordpress-feed__footer{border-top:1px solid #eee;margin:0 -12px;padding:4px 12px 0}#yoast-seo-ryte-assessment{border-top:1px solid #eee;margin:12px -12px 0;padding:12px 12px 0}#yoast-seo-ryte-assessment .button{margin-left:8px}#yoast-seo-ryte-assessment .button.landing-page{background:#a4286a;border-color:#7b1e4f #6f1b47 #6f1b47;box-shadow:0 1px 0 #6f1b47;color:#fff}#yoast-seo-ryte-assessment .button.landing-page:focus,#yoast-seo-ryte-assessment .button.landing-page:hover{background:#90235d;border-color:#6f1b47}#yoast-seo-ryte-assessment .button.landing-page:focus{box-shadow:0 1px 0 #7b1e4f,0 0 2px 1px #a35685}#yoast-seo-ryte-assessment .button.landing-page:active{background:#7b1e4f;border-color:#6f1b47;box-shadow:inset 0 2px 0 #6f1b47;vertical-align:top}#yoast-seo-dashboard-widget:empty:before{animation:rotate 2s linear infinite;background-image:url(../../packages/js/images/Yoast_SEO_Icon.svg);content:"";display:block;height:40px;margin:25px auto;width:40px}@keyframes rotate{0%{transform:perspective(120px) rotateX(0deg) rotateY(0deg);-webkit-transform:perspective(120px) rotateX(0deg) rotateY(0deg)}to{transform:perspective(120px) rotateX(0deg) rotateY(-1turn);-webkit-transform:perspective(120px) rotateX(0deg) rotateY(-1turn)}}
 
css/dist/dashboard-1951.css DELETED
@@ -1 +0,0 @@
1
- #yoast-seo-dashboard-widget h3{font-weight:700}#yoast-seo-dashboard-widget .assessments,#yoast-seo-dashboard-widget .score-assessments{padding-left:0}#yoast-seo-dashboard-widget .wincher-seo-performance,#yoast-seo-dashboard-widget .wordpress-feed{border-top:1px solid #eee;margin:16px -12px 0;padding:12px 12px 0}#yoast-seo-dashboard-widget .wordpress-feed .wordpress-feed__post{margin-top:12px}#yoast-seo-dashboard-widget .wordpress-feed .wordpress-feed__footer{border-top:1px solid #eee;margin:0 -12px;padding:4px 12px 0}#yoast-seo-ryte-assessment{border-top:1px solid #eee;margin:12px -12px 0;padding:12px 12px 0}#yoast-seo-ryte-assessment .button{margin-right:8px}#yoast-seo-ryte-assessment .button.landing-page{background:#a4286a;border-color:#7b1e4f #6f1b47 #6f1b47;box-shadow:0 1px 0 #6f1b47;color:#fff}#yoast-seo-ryte-assessment .button.landing-page:focus,#yoast-seo-ryte-assessment .button.landing-page:hover{background:#90235d;border-color:#6f1b47}#yoast-seo-ryte-assessment .button.landing-page:focus{box-shadow:0 1px 0 #7b1e4f,0 0 2px 1px #a35685}#yoast-seo-ryte-assessment .button.landing-page:active{background:#7b1e4f;border-color:#6f1b47;box-shadow:inset 0 2px 0 #6f1b47;vertical-align:top}#yoast-seo-dashboard-widget:empty:before{animation:rotate 2s linear infinite;background-image:url(../../packages/js/images/Yoast_SEO_Icon.svg);content:"";display:block;height:40px;margin:25px auto;width:40px}@keyframes rotate{0%{transform:perspective(120px) rotateX(0deg) rotateY(0deg);-webkit-transform:perspective(120px) rotateX(0deg) rotateY(0deg)}to{transform:perspective(120px) rotateX(0deg) rotateY(1turn);-webkit-transform:perspective(120px) rotateX(0deg) rotateY(1turn)}}
 
css/dist/dashboard-1960-rtl.css ADDED
@@ -0,0 +1 @@
 
1
+ #yoast-seo-dashboard-widget h3{font-weight:700}#yoast-seo-dashboard-widget .assessments,#yoast-seo-dashboard-widget .score-assessments{padding-right:0}#yoast-seo-dashboard-widget .wincher-seo-performance,#yoast-seo-dashboard-widget .wordpress-feed{border-top:1px solid #eee;margin:16px -12px 0;padding:12px 12px 0}#yoast-seo-dashboard-widget .wordpress-feed .wordpress-feed__post{margin-top:12px}#yoast-seo-dashboard-widget .wordpress-feed .wordpress-feed__footer{border-top:1px solid #eee;margin:0 -12px;padding:4px 12px 0}#yoast-seo-dashboard-widget:empty:before{animation:rotate 2s linear infinite;background-image:url(../../packages/js/images/Yoast_SEO_Icon.svg);content:"";display:block;height:40px;margin:25px auto;width:40px}@keyframes rotate{0%{transform:perspective(120px) rotateX(0deg) rotateY(0deg);-webkit-transform:perspective(120px) rotateX(0deg) rotateY(0deg)}to{transform:perspective(120px) rotateX(0deg) rotateY(-1turn);-webkit-transform:perspective(120px) rotateX(0deg) rotateY(-1turn)}}
css/dist/dashboard-1960.css ADDED
@@ -0,0 +1 @@
 
1
+ #yoast-seo-dashboard-widget h3{font-weight:700}#yoast-seo-dashboard-widget .assessments,#yoast-seo-dashboard-widget .score-assessments{padding-left:0}#yoast-seo-dashboard-widget .wincher-seo-performance,#yoast-seo-dashboard-widget .wordpress-feed{border-top:1px solid #eee;margin:16px -12px 0;padding:12px 12px 0}#yoast-seo-dashboard-widget .wordpress-feed .wordpress-feed__post{margin-top:12px}#yoast-seo-dashboard-widget .wordpress-feed .wordpress-feed__footer{border-top:1px solid #eee;margin:0 -12px;padding:4px 12px 0}#yoast-seo-dashboard-widget:empty:before{animation:rotate 2s linear infinite;background-image:url(../../packages/js/images/Yoast_SEO_Icon.svg);content:"";display:block;height:40px;margin:25px auto;width:40px}@keyframes rotate{0%{transform:perspective(120px) rotateX(0deg) rotateY(0deg);-webkit-transform:perspective(120px) rotateX(0deg) rotateY(0deg)}to{transform:perspective(120px) rotateX(0deg) rotateY(1turn);-webkit-transform:perspective(120px) rotateX(0deg) rotateY(1turn)}}
css/dist/{edit-page-1951-rtl.css → edit-page-1960-rtl.css} RENAMED
File without changes
css/dist/{edit-page-1951.css → edit-page-1960.css} RENAMED
File without changes
css/dist/{elementor-1951-rtl.css → elementor-1960-rtl.css} RENAMED
File without changes
css/dist/{elementor-1951.css → elementor-1960.css} RENAMED
File without changes
css/dist/{featured-image-1951-rtl.css → featured-image-1960-rtl.css} RENAMED
File without changes
css/dist/{featured-image-1951.css → featured-image-1960.css} RENAMED
File without changes
css/dist/{filter-explanation-1951-rtl.css → filter-explanation-1960-rtl.css} RENAMED
File without changes
css/dist/{filter-explanation-1951.css → filter-explanation-1960.css} RENAMED
File without changes
css/dist/{icons-1951-rtl.css → icons-1960-rtl.css} RENAMED
File without changes
css/dist/{icons-1951.css → icons-1960.css} RENAMED
File without changes
css/dist/{inside-editor-1951-rtl.css → inside-editor-1960-rtl.css} RENAMED
File without changes
css/dist/{inside-editor-1951.css → inside-editor-1960.css} RENAMED
File without changes
css/dist/{metabox-1951-rtl.css → metabox-1960-rtl.css} RENAMED
File without changes
css/dist/{metabox-1951.css → metabox-1960.css} RENAMED
File without changes
css/dist/{metabox-primary-category-1951-rtl.css → metabox-primary-category-1960-rtl.css} RENAMED
File without changes
css/dist/{metabox-primary-category-1951.css → metabox-primary-category-1960.css} RENAMED
File without changes
css/dist/{modal-1951-rtl.css → modal-1960-rtl.css} RENAMED
File without changes
css/dist/{modal-1951.css → modal-1960.css} RENAMED
File without changes
css/dist/{monorepo-1951-rtl.css → monorepo-1960-rtl.css} RENAMED
File without changes
css/dist/{monorepo-1951.css → monorepo-1960.css} RENAMED
File without changes
css/dist/new-settings-1951-rtl.css DELETED
@@ -1 +0,0 @@
1
- .yst-mobile-navigation__top{position:sticky;top:0;width:100%;z-index:10}@media (min-width:768px){.yst-mobile-navigation__top{display:none}}.yst-mobile-navigation__dialog{bottom:0;display:flex;right:0;position:fixed;left:0;top:0;z-index:40}.yst-root *,.yst-root :after,.yst-root :before{border:0 solid #e5e7eb;box-sizing:border-box}.yst-root :after,.yst-root :before{--tw-content:""}.yst-root{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;margin:0;tab-size:4}.yst-root hr{border-top-width:1px;color:inherit;height:0}.yst-root abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.yst-root h1,.yst-root h2,.yst-root h3,.yst-root h4,.yst-root h5,.yst-root h6{font-size:inherit;font-weight:inherit}.yst-root a{color:inherit;text-decoration:inherit}.yst-root b,.yst-root strong{font-weight:bolder}.yst-root code,.yst-root kbd,.yst-root pre,.yst-root samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}.yst-root small{font-size:80%}.yst-root sub,.yst-root sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}.yst-root sub{bottom:-.25em}.yst-root sup{top:-.5em}.yst-root table{border-collapse:collapse;border-color:inherit;text-indent:0}.yst-root button,.yst-root input,.yst-root optgroup,.yst-root select,.yst-root textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}.yst-root button,.yst-root select{text-transform:none}.yst-root [type=button],.yst-root [type=reset],.yst-root [type=submit],.yst-root button{-webkit-appearance:button;background-color:initial;background-image:none}.yst-root :-moz-focusring{outline:auto}.yst-root :-moz-ui-invalid{box-shadow:none}.yst-root progress{vertical-align:initial}.yst-root ::-webkit-inner-spin-button,.yst-root ::-webkit-outer-spin-button{height:auto}.yst-root [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.yst-root ::-webkit-search-decoration{-webkit-appearance:none}.yst-root ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.yst-root summary{display:list-item}.yst-root blockquote,.yst-root dd,.yst-root dl,.yst-root figure,.yst-root h1,.yst-root h2,.yst-root h3,.yst-root h4,.yst-root h5,.yst-root h6,.yst-root hr,.yst-root p,.yst-root pre{margin:0}.yst-root fieldset{margin:0;padding:0}.yst-root legend{padding:0}.yst-root menu,.yst-root ol,.yst-root ul{list-style:none;margin:0;padding:0}.yst-root textarea{resize:vertical}.yst-root input::placeholder,.yst-root textarea::placeholder{color:#9ca3af;opacity:1}.yst-root [role=button],.yst-root button{cursor:pointer}.yst-root :disabled{cursor:default}.yst-root audio,.yst-root canvas,.yst-root embed,.yst-root iframe,.yst-root img,.yst-root object,.yst-root svg,.yst-root video{display:block;vertical-align:middle}.yst-root img,.yst-root video{height:auto;max-width:100%}.yst-root [type=date],.yst-root [type=datetime-local],.yst-root [type=email],.yst-root [type=month],.yst-root [type=number],.yst-root [type=password],.yst-root [type=search],.yst-root [type=tel],.yst-root [type=text],.yst-root [type=time],.yst-root [type=url],.yst-root [type=week]{--tw-shadow:0 0 #0000;-webkit-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}.yst-root [type=date]:focus,.yst-root [type=datetime-local]:focus,.yst-root [type=email]:focus,.yst-root [type=month]:focus,.yst-root [type=number]:focus,.yst-root [type=password]:focus,.yst-root [type=search]:focus,.yst-root [type=tel]:focus,.yst-root [type=text]:focus,.yst-root [type=time]:focus,.yst-root [type=url]:focus,.yst-root [type=week]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--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);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px}.yst-root [type=date]::placeholder,.yst-root [type=datetime-local]::placeholder,.yst-root [type=email]::placeholder,.yst-root [type=month]::placeholder,.yst-root [type=number]::placeholder,.yst-root [type=password]::placeholder,.yst-root [type=search]::placeholder,.yst-root [type=tel]::placeholder,.yst-root [type=text]::placeholder,.yst-root [type=time]::placeholder,.yst-root [type=url]::placeholder,.yst-root [type=week]::placeholder{color:#6b7280;opacity:1}.yst-root [type=date]::-webkit-datetime-edit-fields-wrapper,.yst-root [type=datetime-local]::-webkit-datetime-edit-fields-wrapper,.yst-root [type=email]::-webkit-datetime-edit-fields-wrapper,.yst-root [type=month]::-webkit-datetime-edit-fields-wrapper,.yst-root [type=number]::-webkit-datetime-edit-fields-wrapper,.yst-root [type=password]::-webkit-datetime-edit-fields-wrapper,.yst-root [type=search]::-webkit-datetime-edit-fields-wrapper,.yst-root [type=tel]::-webkit-datetime-edit-fields-wrapper,.yst-root [type=text]::-webkit-datetime-edit-fields-wrapper,.yst-root [type=time]::-webkit-datetime-edit-fields-wrapper,.yst-root [type=url]::-webkit-datetime-edit-fields-wrapper,.yst-root [type=week]::-webkit-datetime-edit-fields-wrapper{padding:0}.yst-root [type=date]::-webkit-date-and-time-value,.yst-root [type=datetime-local]::-webkit-date-and-time-value,.yst-root [type=email]::-webkit-date-and-time-value,.yst-root [type=month]::-webkit-date-and-time-value,.yst-root [type=number]::-webkit-date-and-time-value,.yst-root [type=password]::-webkit-date-and-time-value,.yst-root [type=search]::-webkit-date-and-time-value,.yst-root [type=tel]::-webkit-date-and-time-value,.yst-root [type=text]::-webkit-date-and-time-value,.yst-root [type=time]::-webkit-date-and-time-value,.yst-root [type=url]::-webkit-date-and-time-value,.yst-root [type=week]::-webkit-date-and-time-value{min-height:1.5em}.yst-root [type=date]::-webkit-datetime-edit,.yst-root [type=date]::-webkit-datetime-edit-day-field,.yst-root [type=date]::-webkit-datetime-edit-hour-field,.yst-root [type=date]::-webkit-datetime-edit-meridiem-field,.yst-root [type=date]::-webkit-datetime-edit-millisecond-field,.yst-root [type=date]::-webkit-datetime-edit-minute-field,.yst-root [type=date]::-webkit-datetime-edit-month-field,.yst-root [type=date]::-webkit-datetime-edit-second-field,.yst-root [type=date]::-webkit-datetime-edit-year-field,.yst-root [type=datetime-local]::-webkit-datetime-edit,.yst-root [type=datetime-local]::-webkit-datetime-edit-day-field,.yst-root [type=datetime-local]::-webkit-datetime-edit-hour-field,.yst-root [type=datetime-local]::-webkit-datetime-edit-meridiem-field,.yst-root [type=datetime-local]::-webkit-datetime-edit-millisecond-field,.yst-root [type=datetime-local]::-webkit-datetime-edit-minute-field,.yst-root [type=datetime-local]::-webkit-datetime-edit-month-field,.yst-root [type=datetime-local]::-webkit-datetime-edit-second-field,.yst-root [type=datetime-local]::-webkit-datetime-edit-year-field,.yst-root [type=email]::-webkit-datetime-edit,.yst-root [type=email]::-webkit-datetime-edit-day-field,.yst-root [type=email]::-webkit-datetime-edit-hour-field,.yst-root [type=email]::-webkit-datetime-edit-meridiem-field,.yst-root [type=email]::-webkit-datetime-edit-millisecond-field,.yst-root [type=email]::-webkit-datetime-edit-minute-field,.yst-root [type=email]::-webkit-datetime-edit-month-field,.yst-root [type=email]::-webkit-datetime-edit-second-field,.yst-root [type=email]::-webkit-datetime-edit-year-field,.yst-root [type=month]::-webkit-datetime-edit,.yst-root [type=month]::-webkit-datetime-edit-day-field,.yst-root [type=month]::-webkit-datetime-edit-hour-field,.yst-root [type=month]::-webkit-datetime-edit-meridiem-field,.yst-root [type=month]::-webkit-datetime-edit-millisecond-field,.yst-root [type=month]::-webkit-datetime-edit-minute-field,.yst-root [type=month]::-webkit-datetime-edit-month-field,.yst-root [type=month]::-webkit-datetime-edit-second-field,.yst-root [type=month]::-webkit-datetime-edit-year-field,.yst-root [type=number]::-webkit-datetime-edit,.yst-root [type=number]::-webkit-datetime-edit-day-field,.yst-root [type=number]::-webkit-datetime-edit-hour-field,.yst-root [type=number]::-webkit-datetime-edit-meridiem-field,.yst-root [type=number]::-webkit-datetime-edit-millisecond-field,.yst-root [type=number]::-webkit-datetime-edit-minute-field,.yst-root [type=number]::-webkit-datetime-edit-month-field,.yst-root [type=number]::-webkit-datetime-edit-second-field,.yst-root [type=number]::-webkit-datetime-edit-year-field,.yst-root [type=password]::-webkit-datetime-edit,.yst-root [type=password]::-webkit-datetime-edit-day-field,.yst-root [type=password]::-webkit-datetime-edit-hour-field,.yst-root [type=password]::-webkit-datetime-edit-meridiem-field,.yst-root [type=password]::-webkit-datetime-edit-millisecond-field,.yst-root [type=password]::-webkit-datetime-edit-minute-field,.yst-root [type=password]::-webkit-datetime-edit-month-field,.yst-root [type=password]::-webkit-datetime-edit-second-field,.yst-root [type=password]::-webkit-datetime-edit-year-field,.yst-root [type=search]::-webkit-datetime-edit,.yst-root [type=search]::-webkit-datetime-edit-day-field,.yst-root [type=search]::-webkit-datetime-edit-hour-field,.yst-root [type=search]::-webkit-datetime-edit-meridiem-field,.yst-root [type=search]::-webkit-datetime-edit-millisecond-field,.yst-root [type=search]::-webkit-datetime-edit-minute-field,.yst-root [type=search]::-webkit-datetime-edit-month-field,.yst-root [type=search]::-webkit-datetime-edit-second-field,.yst-root [type=search]::-webkit-datetime-edit-year-field,.yst-root [type=tel]::-webkit-datetime-edit,.yst-root [type=tel]::-webkit-datetime-edit-day-field,.yst-root [type=tel]::-webkit-datetime-edit-hour-field,.yst-root [type=tel]::-webkit-datetime-edit-meridiem-field,.yst-root [type=tel]::-webkit-datetime-edit-millisecond-field,.yst-root [type=tel]::-webkit-datetime-edit-minute-field,.yst-root [type=tel]::-webkit-datetime-edit-month-field,.yst-root [type=tel]::-webkit-datetime-edit-second-field,.yst-root [type=tel]::-webkit-datetime-edit-year-field,.yst-root [type=text]::-webkit-datetime-edit,.yst-root [type=text]::-webkit-datetime-edit-day-field,.yst-root [type=text]::-webkit-datetime-edit-hour-field,.yst-root [type=text]::-webkit-datetime-edit-meridiem-field,.yst-root [type=text]::-webkit-datetime-edit-millisecond-field,.yst-root [type=text]::-webkit-datetime-edit-minute-field,.yst-root [type=text]::-webkit-datetime-edit-month-field,.yst-root [type=text]::-webkit-datetime-edit-second-field,.yst-root [type=text]::-webkit-datetime-edit-year-field,.yst-root [type=time]::-webkit-datetime-edit,.yst-root [type=time]::-webkit-datetime-edit-day-field,.yst-root [type=time]::-webkit-datetime-edit-hour-field,.yst-root [type=time]::-webkit-datetime-edit-meridiem-field,.yst-root [type=time]::-webkit-datetime-edit-millisecond-field,.yst-root [type=time]::-webkit-datetime-edit-minute-field,.yst-root [type=time]::-webkit-datetime-edit-month-field,.yst-root [type=time]::-webkit-datetime-edit-second-field,.yst-root [type=time]::-webkit-datetime-edit-year-field,.yst-root [type=url]::-webkit-datetime-edit,.yst-root [type=url]::-webkit-datetime-edit-day-field,.yst-root [type=url]::-webkit-datetime-edit-hour-field,.yst-root [type=url]::-webkit-datetime-edit-meridiem-field,.yst-root [type=url]::-webkit-datetime-edit-millisecond-field,.yst-root [type=url]::-webkit-datetime-edit-minute-field,.yst-root [type=url]::-webkit-datetime-edit-month-field,.yst-root [type=url]::-webkit-datetime-edit-second-field,.yst-root [type=url]::-webkit-datetime-edit-year-field,.yst-root [type=week]::-webkit-datetime-edit,.yst-root [type=week]::-webkit-datetime-edit-day-field,.yst-root [type=week]::-webkit-datetime-edit-hour-field,.yst-root [type=week]::-webkit-datetime-edit-meridiem-field,.yst-root [type=week]::-webkit-datetime-edit-millisecond-field,.yst-root [type=week]::-webkit-datetime-edit-minute-field,.yst-root [type=week]::-webkit-datetime-edit-month-field,.yst-root [type=week]::-webkit-datetime-edit-second-field,.yst-root [type=week]::-webkit-datetime-edit-year-field{padding-bottom:0;padding-top:0}.yst-root textarea{--tw-shadow:0 0 #0000;-webkit-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}.yst-root textarea:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--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);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px}.yst-root textarea::placeholder{color:#6b7280;opacity:1}.yst-root select{--tw-shadow:0 0 #0000;-webkit-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}.yst-root select:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--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);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px}.yst-root select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:left .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-left:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}.yst-root select[multiple]{--tw-shadow:0 0 #0000;-webkit-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}.yst-root select[multiple]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--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);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px}.yst-root [type=checkbox]{--tw-shadow:0 0 #0000;-webkit-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:#6b7280;border-radius:0;border-width:1px;color:#2563eb;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;user-select:none;vertical-align:middle;width:1rem}.yst-root [type=checkbox]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--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);outline:2px solid #0000;outline-offset:2px}.yst-root [type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%}.yst-root [type=checkbox]:checked,.yst-root [type=checkbox]:checked:focus,.yst-root [type=checkbox]:checked:hover,.yst-root [type=checkbox]:indeterminate{background-color:currentColor;border-color:#0000}.yst-root [type=checkbox]:indeterminate{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%}.yst-root [type=checkbox]:indeterminate:focus,.yst-root [type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:#0000}.yst-root [type=radio]{--tw-shadow:0 0 #0000;-webkit-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:#6b7280;border-radius:100%;border-width:1px;color:#2563eb;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;user-select:none;vertical-align:middle;width:1rem}.yst-root [type=radio]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--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);outline:2px solid #0000;outline-offset:2px}.yst-root [type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%}.yst-root [type=radio]:checked,.yst-root [type=radio]:checked:focus,.yst-root [type=radio]:checked:hover{background-color:currentColor;border-color:#0000}.yst-root{--tw-text-opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:rgb(107 114 128/var(--tw-text-opacity));font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:.8125rem;font-weight:400;line-height:1.5}.yst-root a{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.yst-root a:hover{--tw-text-opacity:1;color:rgb(99 102 241/var(--tw-text-opacity))}.yst-root svg path{stroke-width:inherit}.yst-root .yst-radio__input,.yst-root a:focus{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.yst-root .yst-radio__input{transition-property:none}.yst-root .yst-radio__input:checked:before{content:var(--tw-content);display:none}*,::backdrop,:after,:before{--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-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:#3b82f680;--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: }.yst-root .yst-alert{border-radius:.375rem;display:flex;gap:.75rem;padding:1rem}.yst-root .yst-alert a{color:inherit;font-weight:500}.yst-root .yst-alert--info{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity));color:rgb(30 64 175/var(--tw-text-opacity))}.yst-root .yst-alert--info .yst-alert__icon{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.yst-root .yst-alert--warning{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity));color:rgb(146 64 14/var(--tw-text-opacity))}.yst-root .yst-alert--warning .yst-alert__icon{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity))}.yst-root .yst-alert--success{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity));color:rgb(22 101 52/var(--tw-text-opacity))}.yst-root .yst-alert--success .yst-alert__icon{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.yst-root .yst-alert--error{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity));color:rgb(153 27 27/var(--tw-text-opacity))}.yst-root .yst-alert--error .yst-alert__icon{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.yst-root .yst-alert__icon{flex-grow:0;flex-shrink:0;height:1.25rem;width:1.25rem}.yst-root .yst-badge{--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(219 234 254/var(--tw-bg-opacity));border-radius:9999px;color:rgb(30 64 175/var(--tw-text-opacity));display:inline-flex;font-size:.75rem;font-weight:500;padding-right:.5rem;padding-left:.5rem;vertical-align:middle;white-space:nowrap}.yst-root .yst-badge--info{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity));color:rgb(30 58 138/var(--tw-text-opacity))}.yst-root .yst-badge--upsell{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity));color:rgb(120 53 15/var(--tw-text-opacity))}.yst-root .yst-badge--plain{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity));color:rgb(31 41 55/var(--tw-text-opacity))}.yst-root .yst-button{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);align-items:center;border-radius:.375rem;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);cursor:pointer;display:inline-flex;font-size:.8125rem;font-weight:500;line-height:1rem;padding:.5rem .75rem;-webkit-text-decoration-line:none;text-decoration-line:none}.yst-root .yst-button: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);--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity));--tw-ring-offset-width:2px;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid #0000;outline-offset:2px}.yst-root .yst-button--primary{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(164 40 106/var(--tw-bg-opacity));border-color:#0000;color:rgb(255 255 255/var(--tw-text-opacity))}.yst-root .yst-button--primary:hover{--tw-bg-opacity:1;background-color:rgb(123 30 80/var(--tw-bg-opacity))}.yst-root .yst-button--secondary{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(209 213 219/var(--tw-border-opacity));color:rgb(55 65 81/var(--tw-text-opacity))}.yst-root .yst-button--secondary:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.yst-root .yst-button--error{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity));border-color:#0000;color:rgb(255 255 255/var(--tw-text-opacity))}.yst-root .yst-button--error:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.yst-root .yst-button--error:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(220 38 38/var(--tw-ring-opacity))}.yst-root .yst-button--upsell{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(252 211 77/var(--tw-bg-opacity));border-color:#0000;color:rgb(120 53 15/var(--tw-text-opacity))}.yst-root .yst-button--upsell:hover{--tw-bg-opacity:1;background-color:rgb(251 191 36/var(--tw-bg-opacity))}.yst-root .yst-button--upsell:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(251 191 36/var(--tw-ring-opacity))}.yst-root .yst-button--large{font-size:1rem;padding:.75rem 1.5rem}.yst-root .yst-button--small{font-size:.75rem;padding:.375rem .625rem}.yst-root .yst-button--disabled{cursor:not-allowed;opacity:.5}.yst-root .yst-button--disabled: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(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)}.yst-root .yst-checkbox{align-items:center;display:flex}.yst-root .yst-checkbox__input{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.25rem;color:rgb(164 40 106/var(--tw-text-opacity));height:1rem;width:1rem}.yst-root .yst-checkbox__input:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity))}.yst-root .yst-checkbox__label{margin-right:.75rem}.yst-root .yst-label{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity));display:flex;font-size:.8125rem;font-weight:500}.yst-root .yst-link{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity));cursor:pointer;-webkit-text-decoration-line:underline;text-decoration-line:underline}.yst-root .yst-link:hover{--tw-text-opacity:1;color:rgb(67 56 202/var(--tw-text-opacity))}.yst-root .yst-link--primary{--tw-text-opacity:1;color:rgb(164 40 106/var(--tw-text-opacity))}.yst-root .yst-link--primary:hover{--tw-text-opacity:1;color:rgb(148 36 95/var(--tw-text-opacity))}.yst-root .yst-link--error{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.yst-root .yst-link--error:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.yst-root .yst-progress-bar{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity));border-radius:9999px;display:block;overflow:hidden;width:100%}.yst-root .yst-progress-bar__progress{--tw-bg-opacity:1;background-color:rgb(164 40 106/var(--tw-bg-opacity));border-radius:9999px;display:block;height:.375rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:linear}.yst-root .yst-radio{align-items:center;display:flex}.yst-root .yst-radio--inline-block{display:inline-flex}.yst-root .yst-radio--inline-block .yst-radio__input{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.yst-root .yst-radio--inline-block .yst-radio__input:checked+.yst-radio__content .yst-radio__label{--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);--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity));border-color:#0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.yst-root .yst-radio--inline-block .yst-radio__input:checked+.yst-radio__content .yst-radio__check{visibility:visible}.yst-root .yst-radio--inline-block .yst-radio__content{position:relative}.yst-root .yst-radio--inline-block .yst-radio__label{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.5rem;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);cursor:pointer;display:flex;font-size:1rem;height:3.5rem;justify-content:center;margin-right:0;width:3.5rem}.yst-root .yst-radio--inline-block .yst-radio__label:hover{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity))}.yst-root .yst-radio--inline-block .yst-radio__label:focus{outline:2px solid #0000;outline-offset:2px}.yst-root .yst-radio--inline-block .yst-radio__check{--tw-text-opacity:1;color:rgb(148 36 95/var(--tw-text-opacity));height:1.25rem;position:absolute;left:.125rem;top:.125rem;visibility:hidden;width:1.25rem}.yst-root .yst-radio__input{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity));color:rgb(164 40 106/var(--tw-text-opacity));height:1rem;width:1rem}.yst-root .yst-radio__input:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity))}.yst-root .yst-radio__label{margin-right:.75rem}.yst-root .yst-select{max-width:24rem;position:relative}.yst-root .yst-select--error .yst-select__button{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity));color:rgb(127 29 29/var(--tw-text-opacity))}.yst-root .yst-select--error .yst-select__button::placeholder{--tw-placeholder-opacity:1;color:rgb(252 165 165/var(--tw-placeholder-opacity))}.yst-root .yst-select--error .yst-select__button:focus{--tw-border-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity));border-color:rgb(239 68 68/var(--tw-border-opacity));outline:2px solid #0000;outline-offset:2px}.yst-root .yst-select__button{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.375rem;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(55 65 81/var(--tw-text-opacity));cursor:default;display:flex;justify-content:space-between;line-height:1.5rem;padding:.5rem .75rem;position:relative;text-align:right;width:100%}.yst-root .yst-select__button:focus{--tw-border-opacity:1;--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);--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity));border-color:rgb(164 40 106/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid #0000;outline-offset:2px}.yst-root .yst-select__button-icon{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity));flex-grow:0;flex-shrink:0;height:1.25rem;pointer-events:none;width:1.25rem}.yst-root .yst-select__button-icon--error{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.yst-root .yst-select__options{--tw-bg-opacity:1;--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);--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);--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity));--tw-ring-opacity:0.05;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.375rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);margin-top:.25rem;max-height:15rem;overflow:auto;padding-bottom:.25rem;padding-top:.25rem;position:absolute;width:100%;z-index:10}.yst-root .yst-select__options:focus{outline:2px solid #0000;outline-offset:2px}@media (min-width:640px){.yst-root .yst-select__options{font-size:.8125rem}}.yst-root .yst-select__option{--tw-text-opacity:1;align-items:center;color:rgb(17 24 39/var(--tw-text-opacity));cursor:default;display:flex;justify-content:space-between;padding:.5rem .75rem;position:relative;-webkit-user-select:none;user-select:none}.yst-root .yst-select__option--active{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(148 36 95/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.yst-root .yst-select__button-label,.yst-root .yst-select__option-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yst-root .yst-select__option-label--selected{font-weight:600}.yst-root .yst-select__option-icon{--tw-text-opacity:1;color:rgb(148 36 95/var(--tw-text-opacity));flex-shrink:0;height:1.25rem;width:1.25rem}.yst-root .yst-select__option-icon--active{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.yst-root .yst-tag-input{display:flex;flex-wrap:wrap}.yst-root .yst-tag-input>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.375rem*(1 - var(--tw-space-x-reverse)));margin-left:calc(.375rem*var(--tw-space-x-reverse))}.yst-root .yst-tag-input{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.375rem;border-width:1px;color:rgb(55 65 81/var(--tw-text-opacity));font-size:.8125rem;line-height:1.5rem;padding:.5rem .75rem}.yst-root .yst-tag-input::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity))}.yst-root .yst-tag-input{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 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)}.yst-root .yst-tag-input:focus-within{--tw-border-opacity:1;--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);--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity));border-color:rgb(164 40 106/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.yst-root .yst-tag-input--disabled{cursor:not-allowed;opacity:.5}.yst-root .yst-tag-input--disabled:focus-within{--tw-border-opacity:1;--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(var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:rgb(209 213 219/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.yst-root .yst-tag-input--disabled .yst-tag-input__tag{cursor:not-allowed}.yst-root .yst-tag-input--disabled .yst-tag-input__tag:focus,.yst-root .yst-tag-input--disabled .yst-tag-input__tag: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(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);outline:2px solid #0000;outline-offset:2px}.yst-root .yst-tag-input--disabled .yst-tag-input__remove-tag{cursor:not-allowed}.yst-root .yst-tag-input--disabled .yst-tag-input__remove-tag:hover{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.yst-root .yst-tag-input--disabled .yst-tag-input__remove-tag: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(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);outline:2px solid #0000;outline-offset:2px}.yst-root .yst-tag-input--disabled .yst-tag-input__input{cursor:not-allowed}.yst-root .yst-tag-input__tag{--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(243 244 246/var(--tw-bg-opacity));border-radius:9999px;color:rgb(31 41 55/var(--tw-text-opacity));cursor:pointer;display:flex;font-size:.75rem;font-weight:500;padding:.125rem .625rem}.yst-root .yst-tag-input__tag:focus,.yst-root .yst-tag-input__tag: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);--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid #0000;outline-offset:2px}.yst-root .yst-tag-input__remove-tag{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity));border-radius:.375rem;color:rgb(156 163 175/var(--tw-text-opacity));display:inline-flex;margin-right:.125rem;margin-left:-.25rem}.yst-root .yst-tag-input__remove-tag:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.yst-root .yst-tag-input__remove-tag: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);--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid #0000;outline-offset:2px}.yst-root .yst-tag-input__input{border-style:none;display:inline-flex;flex:1 1 0%;font-size:.8125rem;margin:0;padding:0}.yst-root .yst-tag-input__input: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(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);outline:2px solid #0000;outline-offset:2px}.yst-root .yst-text-input{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.375rem;border-width:1px;color:rgb(55 65 81/var(--tw-text-opacity));font-size:.8125rem;padding:.5rem .75rem;width:100%}.yst-root .yst-text-input::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity))}.yst-root .yst-text-input{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 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)}.yst-root .yst-text-input:focus{--tw-border-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity));border-color:rgb(164 40 106/var(--tw-border-opacity));outline:2px solid #0000;outline-offset:2px}.yst-root .yst-text-input--disabled{cursor:not-allowed;opacity:.5}.yst-root .yst-text-input--disabled: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(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)}.yst-root .yst-textarea{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.375rem;border-width:1px;color:rgb(55 65 81/var(--tw-text-opacity));font-size:.8125rem;padding:.5rem .75rem;width:100%}.yst-root .yst-textarea::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity))}.yst-root .yst-textarea{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 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)}.yst-root .yst-textarea:focus{--tw-border-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity));border-color:rgb(164 40 106/var(--tw-border-opacity));outline:2px solid #0000;outline-offset:2px}.yst-root .yst-textarea--disabled{cursor:not-allowed;opacity:.5}.yst-root .yst-textarea--disabled: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(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)}.yst-root .yst-title{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity));font-weight:500;line-height:1.25}.yst-root .yst-title--1{font-size:1.5rem}.yst-root .yst-title--2{font-size:1.125rem}.yst-root .yst-title--3{font-size:.875rem}.yst-root .yst-title--4{font-size:1rem}.yst-root .yst-toggle{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity));border-color:#0000;border-radius:9999px;border-width:2px;cursor:pointer;display:inline-flex;flex-shrink:0;height:1.5rem;position:relative;transition-duration:.2s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1);width:2.75rem}.yst-root .yst-toggle: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);--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity));--tw-ring-offset-width:2px;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid #0000;outline-offset:2px}.yst-root .yst-toggle--checked{--tw-bg-opacity:1;background-color:rgb(164 40 106/var(--tw-bg-opacity))}.yst-root .yst-toggle--checked .yst-toggle__handle{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.yst-root .yst-toggle--disabled{cursor:not-allowed;opacity:.5}.yst-root .yst-toggle--disabled: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(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)}.yst-root .yst-toggle__handle{--tw-translate-x:0px;--tw-bg-opacity:1;--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);--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(var(--tw-ring-offset-width)) var(--tw-ring-color);align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:9999px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:flex;height:1.25rem;justify-content:center;pointer-events:none;position:relative;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.2s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-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-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);width:1.25rem}.yst-root .yst-toggle__icon{stroke:currentColor;stroke-width:2;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));flex-grow:0;flex-shrink:0;height:.625rem;transition-duration:.1s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);width:.625rem}.yst-root .yst-toggle__icon--check{--tw-text-opacity:1;color:rgb(164 40 106/var(--tw-text-opacity))}.yst-root .yst-toggle__icon--x{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}[dir=rtl] .yst-root .yst-toggle--checked .yst-toggle__handle{--tw-translate-x:-1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.yst-root .yst-checkbox-group__label{margin-bottom:1rem}.yst-root .yst-checkbox-group__options{display:flex;flex-direction:column;gap:.75rem}.yst-root .yst-checkbox-group__description{margin-bottom:1rem}.yst-root .yst-file-import{max-width:640px}.yst-root .yst-file-import>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.yst-root .yst-file-import__select{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border:2px dashed rgb(209 213 219/var(--tw-border-opacity));border-radius:.375rem;padding:1.25rem 1.5rem 1.5rem;text-align:center;transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);width:100%}.yst-root .yst-file-import__select.yst-is-drag-over{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(250 244 248/var(--tw-bg-opacity));border-color:rgb(219 169 195/var(--tw-border-opacity))}.yst-root .yst-file-import__select.yst-is-drag-over .yst-file-import__select-content{pointer-events:none}.yst-root .yst-file-import__select.yst-is-drag-over .yst-file-import__select-icon{--tw-translate-y:-0.5rem;--tw-text-opacity:1;color:rgb(191 105 151/var(--tw-text-opacity));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.yst-root .yst-file-import__select-content{align-items:center;display:inline-flex;flex-direction:column;max-width:20rem}.yst-root .yst-file-import__select-content>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.yst-root .yst-file-import__select-content{text-align:center}.yst-root .yst-file-import__select-icon{stroke-width:1;--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity));height:3rem;margin-right:auto;margin-left:auto;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);width:3rem}.yst-root .yst-file-import__select-icon>path{stroke-width:1}.yst-root .yst-file-import__input{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.yst-root .yst-file-import__input:focus+.yst-file-import__select-label{--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);--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity));--tw-ring-offset-width:2px;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid #0000;outline-offset:2px}.yst-root .yst-file-import__select-labels{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity));display:flex;font-weight:400}.yst-root .yst-file-import__select-label{border-radius:.375rem;font-weight:500}.yst-root .yst-file-import__feedback{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.375rem;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding:1rem}.yst-root .yst-file-import__feedback-header{align-items:flex-start;display:flex}.yst-root .yst-file-import__feedback-header>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-left:calc(1rem*var(--tw-space-x-reverse))}.yst-root .yst-file-import__feedback-figure{--tw-bg-opacity:1;align-items:center;background-color:rgb(246 234 240/var(--tw-bg-opacity));border-radius:9999px;display:flex;height:2rem;justify-content:center;width:2rem}.yst-root .yst-file-import__feedback-figure>svg{--tw-text-opacity:1;color:rgb(164 40 106/var(--tw-text-opacity));height:1.25rem;width:1.25rem}.yst-root .yst-file-import__feedback-title{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity));display:block;font-weight:500;margin-bottom:.125rem;overflow-wrap:break-word}.yst-root .yst-file-import__feedback-description{display:block;font-size:.75rem;font-weight:500}.yst-root .yst-file-import__abort-button{--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(243 244 246/var(--tw-bg-opacity));border-radius:9999px;color:rgb(107 114 128/var(--tw-text-opacity));display:inline-flex;flex-shrink:0;height:1.25rem;justify-content:center;width:1.25rem}.yst-root .yst-file-import__abort-button:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity));color:rgb(75 85 99/var(--tw-text-opacity))}.yst-root .yst-file-import__abort-button:focus{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(164 40 106/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity));outline:2px solid #0000;outline-offset:2px}.yst-root .yst-file-import__abort-button>svg{height:.75rem;width:.75rem}.yst-root .yst-file-import__abort-button>svg>path{stroke-width:3}.yst-root .yst-file-import__status-icon{height:1.25rem;width:1.25rem}.yst-root .yst-file-import__feedback-content{margin-top:1.5rem}.yst-root .yst-file-import__feedback-content>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.yst-root .yst-modal{bottom:0;right:0;overflow-y:auto;position:fixed;left:0;top:0;z-index:10}.yst-root .yst-modal__body{min-height:100vh;padding-right:1rem;padding-left:1rem;text-align:center}.yst-root .yst-modal__overlay{--tw-bg-opacity:0.75;background-color:rgb(107 114 128/var(--tw-bg-opacity));bottom:0;right:0;position:fixed;left:0;top:0;transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.yst-root .yst-modal__center{display:inline-block;height:100vh;vertical-align:middle}.yst-root .yst-modal__content{--tw-bg-opacity:1;--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:inline-block;max-width:36rem;overflow:hidden;padding:1.5rem;text-align:right;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);vertical-align:middle;width:100%}.yst-root .yst-modal__close{display:block;position:absolute;left:1rem;top:1rem}.yst-root .yst-modal__close-button{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.375rem;color:rgb(156 163 175/var(--tw-text-opacity))}.yst-root .yst-modal__close-button:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.yst-root .yst-modal__close-button: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);--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity));--tw-ring-offset-width:2px;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid #0000;outline-offset:2px}.yst-root .yst-notifications{display:flex;flex-direction:column;pointer-events:none;position:fixed;width:100%;z-index:20}.yst-root .yst-notifications>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.yst-root .yst-notifications--bottom-center{align-items:center;bottom:2rem}.yst-root .yst-notifications--bottom-left{bottom:2rem;right:2rem}.yst-root .yst-notifications--top-center{align-items:center;top:2rem}.yst-root .yst-notification{--tw-bg-opacity:1;--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);--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);--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity));--tw-ring-opacity:0.05;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);padding:1rem;pointer-events:auto;width:20rem;z-index:20}.yst-root .yst-notification--info .yst-notification__icon{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.yst-root .yst-notification--warning .yst-notification__icon{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity))}.yst-root .yst-notification--success .yst-notification__icon{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.yst-root .yst-notification--error .yst-notification__icon{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.yst-root .yst-notification__icon{height:1.25rem;width:1.25rem}.yst-root .yst-radio-group--inline-block .yst-radio-group__options{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}.yst-root .yst-radio-group__label{margin-bottom:1rem}.yst-root .yst-radio-group__options{display:flex;flex-direction:column;gap:.5rem}.yst-root .yst-radio-group__description{margin-bottom:1rem}.yst-root .yst-select-field__label{margin-bottom:.5rem}.yst-root .yst-select-field__options{display:flex;flex-direction:column;gap:.75rem}.yst-root .yst-select-field__description{margin-top:.5rem}.yst-root .yst-select-field__error{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity));margin-top:.5rem}.yst-root .yst-tag-field--disabled .yst-tag-field__label{cursor:not-allowed;opacity:.5}.yst-root .yst-tag-field__input--error{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity));color:rgb(127 29 29/var(--tw-text-opacity));padding-left:2.25rem}.yst-root .yst-tag-field__input--error:focus{--tw-border-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity));border-color:rgb(239 68 68/var(--tw-border-opacity))}.yst-root .yst-tag-field__label{align-items:center}.yst-root .yst-tag-field__description{margin-top:.5rem}.yst-root .yst-tag-field__error-icon{align-items:center;bottom:0;display:flex;flex-grow:0;flex-shrink:0;margin-left:.75rem;position:absolute;left:0;top:0}.yst-root .yst-tag-field__error-icon>svg{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity));height:1.25rem;pointer-events:none;width:1.25rem}.yst-root .yst-tag-field__error{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity));font-size:.8125rem;margin-top:.5rem}.yst-root .yst-text-field--disabled .yst-text-field__description,.yst-root .yst-text-field--disabled .yst-text-field__label{opacity:.5}.yst-root .yst-text-field--disabled .yst-text-field__label{cursor:not-allowed}.yst-root .yst-text-field__input--error{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity));color:rgb(127 29 29/var(--tw-text-opacity));padding-left:2.25rem}.yst-root .yst-text-field__input--error:focus{--tw-border-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity));border-color:rgb(239 68 68/var(--tw-border-opacity))}.yst-root .yst-text-field__label{align-items:center}.yst-root .yst-text-field__description{margin-top:.5rem}.yst-root .yst-text-field__error-icon{align-items:center;bottom:0;display:flex;flex-grow:0;flex-shrink:0;margin-left:.75rem;position:absolute;left:0;top:0}.yst-root .yst-text-field__error-icon>svg{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity));height:1.25rem;pointer-events:none;width:1.25rem}.yst-root .yst-text-field__error{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity));font-size:.8125rem;margin-top:.5rem}.yst-root .yst-textarea-field__input--error{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity));color:rgb(127 29 29/var(--tw-text-opacity))}.yst-root .yst-textarea-field__input--error:focus{--tw-border-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity));border-color:rgb(239 68 68/var(--tw-border-opacity))}.yst-root .yst-textarea-field__label{align-items:center;display:flex;margin-bottom:.5rem}.yst-root .yst-textarea-field__description{margin-top:.5rem}.yst-root .yst-textarea-field__error-icon{bottom:0;pointer-events:none;position:absolute;left:.25rem;top:.25rem}.yst-root .yst-textarea-field__error-icon>svg{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity));height:1.25rem;width:1.25rem}.yst-root .yst-textarea-field__error{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity));font-size:.8125rem;margin-top:.5rem}.yst-root .yst-toggle-field{align-items:center;display:flex;justify-content:space-between;max-width:24rem}.yst-root .yst-toggle-field--disabled .yst-toggle-field__label,.yst-root .yst-toggle-field--disabled .yst-toggle-field__text{cursor:not-allowed}.yst-root .yst-toggle-field--disabled .yst-toggle-field__description,.yst-root .yst-toggle-field--disabled .yst-toggle-field__label{opacity:.5}.yst-root .yst-toggle-field__text{margin-left:1.5rem}.yst-root .yst-toggle-field__description{margin-top:.25rem}.yst-root .yst-toggle-field__options{display:flex;flex-direction:column;gap:.75rem}.yst-root .yst-notifications--bottom-left{right:calc(160px + 2rem);z-index:9991}@media (min-width:601px) and (max-width:768px){.yst-root .yst-mobile-navigation__top{top:46px}}.yst-root .yst-mobile-navigation__dialog{z-index:99999}.yst-root .yst-replacevar{position:relative}.yst-root .yst-replacevar__label{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity));cursor:pointer;display:flex;font-size:.8125rem;font-weight:500;margin-bottom:.5rem}.yst-root .yst-replacevar__button-insert{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);align-items:center;border-radius:.375rem;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);cursor:pointer;display:inline-flex;font-size:.8125rem;font-weight:500;line-height:1rem;margin-bottom:.5rem;padding:.5rem .75rem;-webkit-text-decoration-line:none;text-decoration-line:none}.yst-root .yst-replacevar__button-insert: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);--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity));--tw-ring-offset-width:2px;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid #0000;outline-offset:2px}.yst-root .yst-replacevar__button-insert:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.yst-root .yst-replacevar__button-insert{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(209 213 219/var(--tw-border-opacity));color:rgb(55 65 81/var(--tw-text-opacity))}.yst-root .yst-replacevar__button-insert:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.yst-root .yst-replacevar__editor{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.375rem;border-width:1px;color:rgb(55 65 81/var(--tw-text-opacity));font-size:.8125rem;padding:.5rem .75rem;width:100%}.yst-root .yst-replacevar__editor::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity))}.yst-root .yst-replacevar__editor{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 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)}.yst-root .yst-replacevar__editor:focus-within{--tw-border-opacity:0;--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);--tw-ring-opacity:1;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity));border-color:rgb(164 40 106/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid #0000;outline-offset:2px}.yst-root .yst-replacevar__editor [data-popper-reference-hidden]{--tw-bg-opacity:1;--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);--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);--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity));--tw-ring-opacity:0.05;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.375rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);padding-bottom:.25rem;padding-top:.25rem;width:14rem;z-index:10}.yst-root .yst-replacevar__editor [data-popper-reference-hidden]:focus{outline:2px solid #0000;outline-offset:2px}.yst-root .yst-replacevar__editor [data-popper-reference-hidden] div>div{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity));cursor:pointer;display:block;font-size:.8125rem;padding:.5rem 1rem;-webkit-text-decoration-line:none;text-decoration-line:none}.yst-root .yst-replacevar__editor [data-popper-reference-hidden] div>div:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity));color:rgb(17 24 39/var(--tw-text-opacity))}.yst-root .yst-replacevar--description .yst-replacevar__editor{min-height:5rem}.yst-root .yst-replacevar__mention{--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(243 244 246/var(--tw-bg-opacity));border-radius:9999px;color:rgb(31 41 55/var(--tw-text-opacity));display:inline-flex;font-size:.75rem;font-weight:500;margin:.125rem;padding:.125rem .625rem}.yst-sr-only{clip:rect(0,0,0,0)!important;border-width:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.yst-pointer-events-none{pointer-events:none!important}.yst-fixed{position:fixed!important}.yst-absolute{position:absolute!important}.yst-relative{position:relative!important}.yst-sticky{position:sticky!important}.yst-inset-0{right:0!important;left:0!important}.yst-inset-0,.yst-inset-y-0{bottom:0!important;top:0!important}.yst--left-3{right:-.75rem!important}.yst-top-0{top:0!important}.yst-right-0{left:0!important}.yst-bottom-12{bottom:3rem!important}.yst-top-2{top:.5rem!important}.yst-right-2{left:.5rem!important}.yst-left-4{right:1rem!important}.yst--bottom-6{bottom:-1.5rem!important}.yst-top-8{top:2rem!important}.yst-left-0{right:0!important}.yst--top-0\.5{top:-.125rem!important}.yst--top-0{top:0!important}.yst-z-30{z-index:30!important}.yst-z-40{z-index:40!important}.yst-z-10{z-index:10!important}.yst-z-20{z-index:20!important}.yst-mx-auto{margin-right:auto!important;margin-left:auto!important}.yst-my-6{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.yst-my-auto{margin-bottom:auto!important;margin-top:auto!important}.yst-my-4{margin-bottom:1rem!important;margin-top:1rem!important}.yst-my-0{margin-bottom:0!important;margin-top:0!important}.yst-my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.yst-my-12{margin-bottom:3rem!important;margin-top:3rem!important}.yst--mx-6{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.yst-my-8{margin-bottom:2rem!important;margin-top:2rem!important}.yst-my-16{margin-bottom:4rem!important;margin-top:4rem!important}.yst--ml-2\.5{margin-right:-.625rem!important}.yst--ml-2{margin-right:-.5rem!important}.yst-mt-1\.5{margin-top:.375rem!important}.yst-mt-1{margin-top:.25rem!important}.yst-ml-4{margin-right:1rem!important}.yst-mb-1{margin-bottom:.25rem!important}.yst--ml-1{margin-right:-.25rem!important}.yst-ml-8{margin-right:2rem!important}.yst--mr-14{margin-left:-3.5rem!important}.yst-mb-2{margin-bottom:.5rem!important}.yst-mr-2{margin-left:.5rem!important}.yst-mt-6{margin-top:1.5rem!important}.yst-mt-auto{margin-top:auto!important}.yst-ml-3{margin-right:.75rem!important}.yst-mr-1{margin-left:.25rem!important}.yst-mr-5{margin-left:1.25rem!important}.yst-mb-6{margin-bottom:1.5rem!important}.yst-mt-8{margin-top:2rem!important}.yst-ml-auto{margin-right:auto!important}.yst-mt-12{margin-top:3rem!important}.yst-mt-4{margin-top:1rem!important}.yst-ml-6{margin-right:1.5rem!important}.yst-mb-3{margin-bottom:.75rem!important}.yst-mt-3{margin-top:.75rem!important}.yst-ml-1{margin-right:.25rem!important}.yst-mb-8{margin-bottom:2rem!important}.yst-mb-12{margin-bottom:3rem!important}.yst--ml-px{margin-right:-1px!important}.yst-ml-12{margin-right:3rem!important}.yst-mb-0{margin-bottom:0!important}.yst--mt-6{margin-top:-1.5rem!important}.yst-mt-2{margin-top:.5rem!important}.yst-mb-4{margin-bottom:1rem!important}.yst-ml-1\.5{margin-right:.375rem!important}.yst-mt-7{margin-top:1.75rem!important}.yst-mr-8{margin-left:2rem!important}.yst-mr-3{margin-left:.75rem!important}.yst--mt-4{margin-top:-1rem!important}.yst-mr-6{margin-left:1.5rem!important}.yst-mt-\[27\.5px\]{margin-top:27.5px!important}.yst-mt-5{margin-top:1.25rem!important}.yst-mt-0{margin-top:0!important}.yst-ml-2{margin-right:.5rem!important}.yst-block{display:block!important}.yst-inline-block{display:inline-block!important}.yst-flex{display:flex!important}.yst-inline-flex{display:inline-flex!important}.yst-grid{display:grid!important}.yst-hidden{display:none!important}.yst-h-6{height:1.5rem!important}.yst-h-5{height:1.25rem!important}.yst-h-4{height:1rem!important}.yst-h-12{height:3rem!important}.yst-h-0{height:0!important}.yst-h-full{height:100%!important}.yst-h-16{height:4rem!important}.yst-h-3{height:.75rem!important}.yst-h-8{height:2rem!important}.yst-h-0\.5{height:.125rem!important}.yst-h-\[90vh\]{height:90vh!important}.yst-h-4\/5{height:80%!important}.yst-h-\[120px\]{height:120px!important}.yst-h-2\.5{height:.625rem!important}.yst-h-2{height:.5rem!important}.yst-h-24{height:6rem!important}.yst-h-48{height:12rem!important}.yst-h-96{height:24rem!important}.yst-h-\[45px\]{height:45px!important}.yst-h-14{height:3.5rem!important}.yst-h-28{height:7rem!important}.yst-max-h-60{max-height:15rem!important}.yst-min-h-screen{min-height:100vh!important}.yst-min-h-full{min-height:100%!important}.yst-w-6{width:1.5rem!important}.yst-w-0{width:0!important}.yst-w-5{width:1.25rem!important}.yst-w-full{width:100%!important}.yst-w-4{width:1rem!important}.yst-w-12{width:3rem!important}.yst-w-3{width:.75rem!important}.yst-w-8{width:2rem!important}.yst-w-\[440px\]{width:440px!important}.yst-w-\[350px\]{width:350px!important}.yst-w-\[150px\]{width:150px!important}.yst-w-44{width:11rem!important}.yst-w-56{width:14rem!important}.yst-w-2\.5{width:.625rem!important}.yst-w-2{width:.5rem!important}.yst-w-0\.5{width:.125rem!important}.yst-w-48{width:12rem!important}.yst-w-96{width:24rem!important}.yst-w-14{width:3.5rem!important}.yst-w-\[463px\]{width:463px!important}.yst-w-24{width:6rem!important}.yst-min-w-full{min-width:100%!important}.yst-min-w-0{min-width:0!important}.yst-max-w-xs{max-width:20rem!important}.yst-max-w-sm{max-width:24rem!important}.yst-max-w-2xl{max-width:42rem!important}.yst-max-w-screen-sm{max-width:640px!important}.yst-max-w-6xl{max-width:72rem!important}.yst-max-w-none{max-width:none!important}.yst-max-w-5xl{max-width:64rem!important}.yst-max-w-\[500px\]{max-width:500px!important}.yst-flex-1{flex:1 1 0%!important}.yst-flex-shrink-0,.yst-shrink-0{flex-shrink:0!important}.yst-flex-grow,.yst-grow{flex-grow:1!important}.yst-origin-top{transform-origin:top!important}.yst-translate-y-4{--tw-translate-y:1rem!important}.yst-translate-y-0,.yst-translate-y-4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.yst-translate-y-0{--tw-translate-y:0px!important}.yst-translate-y-full{--tw-translate-y:100%!important}.yst--translate-y-full,.yst-translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.yst--translate-y-full{--tw-translate-y:-100%!important}.yst-scale-y-0{--tw-scale-y:0!important}.yst-scale-y-0,.yst-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}@keyframes yst-spin{to{transform:rotate(-1turn)}}.yst-animate-spin{animation:yst-spin 1s linear infinite!important}.yst-cursor-wait{cursor:wait!important}.yst-cursor-not-allowed{cursor:not-allowed!important}.yst-cursor-default{cursor:default!important}.yst-select-none{-webkit-user-select:none!important;user-select:none!important}.yst-list-disc{list-style-type:disc!important}.yst-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))!important}.yst-flex-row{flex-direction:row!important}.yst-flex-row-reverse{flex-direction:row-reverse!important}.yst-flex-col{flex-direction:column!important}.yst-flex-wrap{flex-wrap:wrap!important}.yst-items-start{align-items:flex-start!important}.yst-items-end{align-items:flex-end!important}.yst-items-center{align-items:center!important}.yst-justify-center{justify-content:center!important}.yst-justify-between{justify-content:space-between!important}.yst-gap-3{gap:.75rem!important}.yst-gap-6{gap:1.5rem!important}.yst-gap-1\.5{gap:.375rem!important}.yst-gap-1{gap:.25rem!important}.yst-gap-4{gap:1rem!important}.yst-gap-2{gap:.5rem!important}.yst-space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0!important;margin-right:calc(2rem*(1 - var(--tw-space-x-reverse)))!important;margin-left:calc(2rem*var(--tw-space-x-reverse))!important}.yst-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))!important;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))!important}.yst-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(.25rem*var(--tw-space-y-reverse))!important;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))!important}.yst-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(.75rem*var(--tw-space-y-reverse))!important;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))!important}.yst-space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(2rem*var(--tw-space-y-reverse))!important;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))!important}.yst-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0!important;border-bottom-width:calc(1px*var(--tw-divide-y-reverse))!important;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))!important}.yst-divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1!important;border-color:rgb(229 231 235/var(--tw-divide-opacity))!important}.yst-self-end{align-self:flex-end!important}.yst-self-center{align-self:center!important}.yst-overflow-auto{overflow:auto!important}.yst-overflow-hidden{overflow:hidden!important}.yst-overflow-y-auto{overflow-y:auto!important}.yst-overflow-x-scroll{overflow-x:scroll!important}.yst-truncate{overflow:hidden!important;text-overflow:ellipsis!important}.yst-truncate,.yst-whitespace-nowrap{white-space:nowrap!important}.yst-whitespace-pre-line{white-space:pre-line!important}.yst-rounded-md{border-radius:.375rem!important}.yst-rounded-full{border-radius:9999px!important}.yst-rounded-lg{border-radius:.5rem!important}.yst-rounded-b-lg{border-bottom-right-radius:.5rem!important;border-bottom-left-radius:.5rem!important}.yst-rounded-r-md{border-bottom-left-radius:.375rem!important;border-top-left-radius:.375rem!important}.yst-border{border-width:1px!important}.yst-border-2{border-width:2px!important}.yst-border-0{border-width:0!important}.yst-border-l{border-right-width:1px!important}.yst-border-b{border-bottom-width:1px!important}.yst-border-r{border-left-width:1px!important}.yst-border-t{border-top-width:1px!important}.yst-border-dashed{border-style:dashed!important}.yst-border-gray-200{--tw-border-opacity:1!important;border-color:rgb(229 231 235/var(--tw-border-opacity))!important}.yst-border-transparent{border-color:#0000!important}.yst-border-primary-500{--tw-border-opacity:1!important;border-color:rgb(164 40 106/var(--tw-border-opacity))!important}.yst-border-gray-300{--tw-border-opacity:1!important;border-color:rgb(209 213 219/var(--tw-border-opacity))!important}.yst-border-red-300{--tw-border-opacity:1!important;border-color:rgb(252 165 165/var(--tw-border-opacity))!important}.yst-border-red-500{--tw-border-opacity:1!important;border-color:rgb(239 68 68/var(--tw-border-opacity))!important}.yst-border-emerald-600{--tw-border-opacity:1!important;border-color:rgb(5 150 105/var(--tw-border-opacity))!important}.yst-bg-white{--tw-bg-opacity:1!important;background-color:rgb(255 255 255/var(--tw-bg-opacity))!important}.yst-bg-gray-200{--tw-bg-opacity:1!important;background-color:rgb(229 231 235/var(--tw-bg-opacity))!important}.yst-bg-gray-600{--tw-bg-opacity:1!important;background-color:rgb(75 85 99/var(--tw-bg-opacity))!important}.yst-bg-gray-50{--tw-bg-opacity:1!important;background-color:rgb(249 250 251/var(--tw-bg-opacity))!important}.yst-bg-primary-500{--tw-bg-opacity:1!important;background-color:rgb(164 40 106/var(--tw-bg-opacity))!important}.yst-bg-transparent{background-color:initial!important}.yst-bg-gray-300{--tw-bg-opacity:1!important;background-color:rgb(209 213 219/var(--tw-bg-opacity))!important}.yst-bg-gray-500{--tw-bg-opacity:1!important;background-color:rgb(107 114 128/var(--tw-bg-opacity))!important}.yst-bg-gray-100{--tw-bg-opacity:1!important;background-color:rgb(243 244 246/var(--tw-bg-opacity))!important}.yst-bg-blue-100{--tw-bg-opacity:1!important;background-color:rgb(219 234 254/var(--tw-bg-opacity))!important}.yst-bg-yellow-100{--tw-bg-opacity:1!important;background-color:rgb(254 249 195/var(--tw-bg-opacity))!important}.yst-bg-red-100{--tw-bg-opacity:1!important;background-color:rgb(254 226 226/var(--tw-bg-opacity))!important}.yst-bg-green-100{--tw-bg-opacity:1!important;background-color:rgb(220 252 231/var(--tw-bg-opacity))!important}.yst-bg-primary-200{--tw-bg-opacity:1!important;background-color:rgb(232 201 218/var(--tw-bg-opacity))!important}.yst-bg-opacity-75{--tw-bg-opacity:0.75!important}.yst-stroke-3{stroke-width:3px!important}.yst-stroke-1{stroke-width:1!important}.yst-object-contain{object-fit:contain!important}.yst-object-cover{object-fit:cover!important}.yst-object-center{object-position:center!important}.yst-p-1{padding:.25rem!important}.yst-p-4{padding:1rem!important}.yst-p-6{padding:1.5rem!important}.yst-p-8{padding:2rem!important}.yst-p-2\.5{padding:.625rem!important}.yst-p-2{padding:.5rem!important}.yst-p-3{padding:.75rem!important}.yst-px-3{padding-right:.75rem!important;padding-left:.75rem!important}.yst-py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.yst-px-4{padding-right:1rem!important;padding-left:1rem!important}.yst-px-6{padding-right:1.5rem!important;padding-left:1.5rem!important}.yst-py-4{padding-bottom:1rem!important;padding-top:1rem!important}.yst-py-3{padding-bottom:.75rem!important;padding-top:.75rem!important}.yst-py-6{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.yst-px-8{padding-right:2rem!important;padding-left:2rem!important}.yst-pb-10{padding-bottom:2.5rem!important}.yst-pt-1{padding-top:.25rem!important}.yst-pt-8{padding-top:2rem!important}.yst-pb-1{padding-bottom:.25rem!important}.yst-pb-8{padding-bottom:2rem!important}.yst-pt-4{padding-top:1rem!important}.yst-pb-20{padding-bottom:5rem!important}.yst-pt-5{padding-top:1.25rem!important}.yst-pb-4{padding-bottom:1rem!important}.yst-pr-4{padding-left:1rem!important}.yst-pt-6{padding-top:1.5rem!important}.yst-pl-3{padding-right:.75rem!important}.yst-pr-2{padding-left:.5rem!important}.yst-pl-0{padding-right:0!important}.yst-pr-10{padding-left:2.5rem!important}.yst-pr-9{padding-left:2.25rem!important}.yst-text-left{text-align:right!important}.yst-text-center{text-align:center!important}.yst-align-bottom{vertical-align:bottom!important}.yst-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.yst-text-sm{font-size:.8125rem!important}.yst-text-xs{font-size:.75rem!important}.yst-text-4xl{font-size:2.25rem!important}.yst-text-2xl{font-size:1.5rem!important}.yst-text-base{font-size:1rem!important}.yst-text-lg{font-size:1.125rem!important}.yst-text-tiny{font-size:.875rem!important}.yst-text-xxs{font-size:.675rem!important}.yst-font-medium{font-weight:500!important}.yst-font-extrabold{font-weight:800!important}.yst-font-\[650\]{font-weight:650!important}.yst-font-semibold{font-weight:600!important}.yst-font-normal{font-weight:400!important}.yst-uppercase{text-transform:uppercase!important}.yst-italic{font-style:italic!important}.yst-leading-10{line-height:2.5rem!important}.yst-leading-6{line-height:1.5rem!important}.yst-leading-8{line-height:2rem!important}.yst-leading-tight{line-height:1.25!important}.yst-leading-4{line-height:1rem!important}.yst-tracking-wider{letter-spacing:.05em!important}.yst-tracking-tight{letter-spacing:-.025em!important}.yst-tracking-wide{letter-spacing:.025em!important}.yst-text-green-500{--tw-text-opacity:1!important;color:rgb(34 197 94/var(--tw-text-opacity))!important}.yst-text-red-500{--tw-text-opacity:1!important;color:rgb(239 68 68/var(--tw-text-opacity))!important}.yst-text-gray-700{--tw-text-opacity:1!important;color:rgb(55 65 81/var(--tw-text-opacity))!important}.yst-text-gray-400{--tw-text-opacity:1!important;color:rgb(156 163 175/var(--tw-text-opacity))!important}.yst-text-gray-900{--tw-text-opacity:1!important;color:rgb(17 24 39/var(--tw-text-opacity))!important}.yst-text-gray-600{--tw-text-opacity:1!important;color:rgb(75 85 99/var(--tw-text-opacity))!important}.yst-text-gray-800{--tw-text-opacity:1!important;color:rgb(31 41 55/var(--tw-text-opacity))!important}.yst-text-white{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity))!important}.yst-text-gray-500{--tw-text-opacity:1!important;color:rgb(107 114 128/var(--tw-text-opacity))!important}.yst-text-primary-500{--tw-text-opacity:1!important;color:rgb(164 40 106/var(--tw-text-opacity))!important}.yst-text-lime-600{--tw-text-opacity:1!important;color:rgb(101 163 13/var(--tw-text-opacity))!important}.yst-text-green-400{--tw-text-opacity:1!important;color:rgb(74 222 128/var(--tw-text-opacity))!important}.yst-text-\[\#111827\]{--tw-text-opacity:1!important;color:rgb(17 24 39/var(--tw-text-opacity))!important}.yst-text-yellow-900{--tw-text-opacity:1!important;color:rgb(113 63 18/var(--tw-text-opacity))!important}.yst-text-red-600{--tw-text-opacity:1!important;color:rgb(220 38 38/var(--tw-text-opacity))!important}.yst-text-blue-500{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity))!important}.yst-text-blue-800{--tw-text-opacity:1!important;color:rgb(30 64 175/var(--tw-text-opacity))!important}.yst-text-yellow-500{--tw-text-opacity:1!important;color:rgb(234 179 8/var(--tw-text-opacity))!important}.yst-text-yellow-800{--tw-text-opacity:1!important;color:rgb(133 77 14/var(--tw-text-opacity))!important}.yst-text-red-800{--tw-text-opacity:1!important;color:rgb(153 27 27/var(--tw-text-opacity))!important}.yst-text-emerald-600{--tw-text-opacity:1!important;color:rgb(5 150 105/var(--tw-text-opacity))!important}.yst-text-green-800{--tw-text-opacity:1!important;color:rgb(22 101 52/var(--tw-text-opacity))!important}.yst-text-red-900{--tw-text-opacity:1!important;color:rgb(127 29 29/var(--tw-text-opacity))!important}.yst-text-indigo-600{--tw-text-opacity:1!important;color:rgb(79 70 229/var(--tw-text-opacity))!important}.yst-no-underline{-webkit-text-decoration-line:none!important;text-decoration-line:none!important}.yst-opacity-0{opacity:0!important}.yst-opacity-100{opacity:1!important}.yst-opacity-25{opacity:.25!important}.yst-opacity-75{opacity:.75!important}.yst-opacity-50{opacity:.5!important}.yst-shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)!important}.yst-shadow-md,.yst-shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.yst-shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)!important}.yst-shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important}.yst-shadow,.yst-shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.yst-shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a!important;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)!important}.yst-shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d!important;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)!important}.yst-shadow-lg,.yst-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.yst-shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)!important}.yst-outline-none{outline:2px solid #0000!important;outline-offset:2px!important}.yst-ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.yst-ring-gray-200{--tw-ring-opacity:1!important;--tw-ring-color:rgb(229 231 235/var(--tw-ring-opacity))!important}.yst-ring-black{--tw-ring-opacity:1!important;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity))!important}.yst-ring-opacity-5{--tw-ring-opacity:0.05!important}.yst-ring-offset-2{--tw-ring-offset-width:2px!important}.yst-ring-offset-primary-500{--tw-ring-offset-color:#a4286a!important}.yst-grayscale{--tw-grayscale:grayscale(100%)!important}.yst-filter,.yst-grayscale{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)!important}.yst-transition-opacity{transition-duration:.15s!important;transition-property:opacity!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.yst-transition{transition-duration:.15s!important;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.yst-transition-colors{transition-duration:.15s!important;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.yst-transition-transform{transition-duration:.15s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.yst-transition-all{transition-duration:.15s!important;transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.yst-transition-\[width\]{transition-duration:.15s!important;transition-property:width!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.yst-delay-200{transition-delay:.2s!important}.yst-delay-\[900ms\]{transition-delay:.9s!important}.yst-delay-300{transition-delay:.3s!important}.yst-duration-1000{transition-duration:1s!important}.yst-duration-200{transition-duration:.2s!important}.yst-duration-300{transition-duration:.3s!important}.yst-duration-150{transition-duration:.15s!important}.yst-duration-100{transition-duration:.1s!important}.yst-duration-500{transition-duration:.5s!important}.yst-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.yst-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)!important}.yst-ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)!important}.yst-ease-linear{transition-timing-function:linear!important}.odd\:yst-bg-white:nth-child(odd){--tw-bg-opacity:1!important;background-color:rgb(255 255 255/var(--tw-bg-opacity))!important}.even\:yst-bg-gray-50:nth-child(2n){--tw-bg-opacity:1!important;background-color:rgb(249 250 251/var(--tw-bg-opacity))!important}.focus-within\:yst-border-primary-500:focus-within{--tw-border-opacity:1!important;border-color:rgb(164 40 106/var(--tw-border-opacity))!important}.focus-within\:yst-outline-none:focus-within{outline:2px solid #0000!important;outline-offset:2px!important}.focus-within\:yst-ring-1:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.focus-within\:yst-ring-primary-500:focus-within{--tw-ring-opacity:1!important;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity))!important}.hover\:yst-bg-gray-50:hover{--tw-bg-opacity:1!important;background-color:rgb(249 250 251/var(--tw-bg-opacity))!important}.hover\:yst-text-gray-500:hover{--tw-text-opacity:1!important;color:rgb(107 114 128/var(--tw-text-opacity))!important}.hover\:yst-text-gray-900:hover{--tw-text-opacity:1!important;color:rgb(17 24 39/var(--tw-text-opacity))!important}.hover\:yst-text-indigo-500:hover{--tw-text-opacity:1!important;color:rgb(99 102 241/var(--tw-text-opacity))!important}.hover\:yst-text-primary-500:hover{--tw-text-opacity:1!important;color:rgb(164 40 106/var(--tw-text-opacity))!important}.focus\:yst-border-primary-500:focus{--tw-border-opacity:1!important;border-color:rgb(164 40 106/var(--tw-border-opacity))!important}.focus\:yst-border-red-500:focus{--tw-border-opacity:1!important;border-color:rgb(239 68 68/var(--tw-border-opacity))!important}.focus\:yst-border-emerald-600:focus{--tw-border-opacity:1!important;border-color:rgb(5 150 105/var(--tw-border-opacity))!important}.focus\:yst-bg-gray-600:focus{--tw-bg-opacity:1!important;background-color:rgb(75 85 99/var(--tw-bg-opacity))!important}.focus\:yst-text-primary-500:focus{--tw-text-opacity:1!important;color:rgb(164 40 106/var(--tw-text-opacity))!important}.focus\:yst-outline-none:focus{outline:2px solid #0000!important;outline-offset:2px!important}.focus\:yst-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important}.focus\:yst-ring-1:focus,.focus\:yst-ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.focus\:yst-ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important}.focus\:yst-ring-inset:focus{--tw-ring-inset:inset!important}.focus\:yst-ring-indigo-500:focus{--tw-ring-opacity:1!important;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity))!important}.focus\:yst-ring-primary-500:focus{--tw-ring-opacity:1!important;--tw-ring-color:rgb(164 40 106/var(--tw-ring-opacity))!important}.focus\:yst-ring-white:focus{--tw-ring-opacity:1!important;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity))!important}.focus\:yst-ring-red-500:focus{--tw-ring-opacity:1!important;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity))!important}.focus\:yst-ring-emerald-600:focus{--tw-ring-opacity:1!important;--tw-ring-color:rgb(5 150 105/var(--tw-ring-opacity))!important}.focus\:yst-ring-offset-2:focus{--tw-ring-offset-width:2px!important}.yst-group:hover .group-hover\:yst-text-gray-500{--tw-text-opacity:1!important;color:rgb(107 114 128/var(--tw-text-opacity))!important}@media (min-width:640px){.sm\:yst-my-8{margin-bottom:2rem!important;margin-top:2rem!important}.sm\:yst-mb-0{margin-bottom:0!important}.sm\:yst-ml-3{margin-right:.75rem!important}.sm\:yst-block{display:block!important}.sm\:yst-inline-block{display:inline-block!important}.sm\:yst-flex{display:flex!important}.sm\:yst-h-screen{height:100vh!important}.sm\:yst-w-auto{width:auto!important}.sm\:yst-w-full{width:100%!important}.sm\:yst-max-w-lg{max-width:32rem!important}.sm\:yst-translate-y-0{--tw-translate-y:0px!important}.sm\:yst-scale-95,.sm\:yst-translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.sm\:yst-scale-95{--tw-scale-x:.95!important;--tw-scale-y:.95!important}.sm\:yst-scale-100{--tw-scale-x:1!important;--tw-scale-y:1!important}.sm\:yst-scale-100,.sm\:yst-scale-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.sm\:yst-scale-90{--tw-scale-x:.9!important;--tw-scale-y:.9!important}.sm\:yst-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.sm\:yst-flex-row-reverse{flex-direction:row-reverse!important}.sm\:yst-p-0{padding:0!important}.sm\:yst-p-6{padding:1.5rem!important}.sm\:yst-align-middle{vertical-align:middle!important}.sm\:yst-text-sm{font-size:.8125rem!important}}@media (min-width:768px){.md\:yst-absolute{position:absolute!important}.md\:yst--ml-5{margin-right:-1.25rem!important}.md\:yst-block{display:block!important}.md\:yst-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.md\:yst-flex-row{flex-direction:row!important}.md\:yst-gap-4{gap:1rem!important}.md\:yst-p-8{padding:2rem!important}}@media (min-width:1024px){.lg\:yst-col-span-1{grid-column:span 1/span 1!important}.lg\:yst-col-span-2{grid-column:span 2/span 2!important}.lg\:yst-mt-0{margin-top:0!important}.lg\:yst-grid{display:grid!important}.lg\:yst-w-64{width:16rem!important}.lg\:yst-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}.lg\:yst-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.lg\:yst-gap-12{gap:3rem!important}}