Really Simple SSL - Version 6.0.3

Version Description

  • Fix: Rest Optimizer causing other plugins to deactivate when recommended plugins were activated, props @sardelich
Download this release

Release Info

Developer RogierLankhorst
Plugin Icon 128x128 Really Simple SSL
Version 6.0.3
Comparing to
See all releases

Code changes from version 5.3.5 to 6.0.3

Files changed (99) hide show
  1. assets/cross.svg +0 -1
  2. assets/css/admin.css +2741 -0
  3. assets/css/admin.css.map +1 -0
  4. assets/css/admin.min.css +1 -0
  5. assets/css/admin.scss +67 -0
  6. assets/css/admin/base.scss +96 -0
  7. assets/css/admin/index.php +2 -0
  8. assets/css/admin/layout.scss +245 -0
  9. assets/css/{variables.css → admin/modules/animations.scss} +0 -0
  10. assets/css/admin/modules/bullets.scss +61 -0
  11. assets/css/admin/modules/buttons.scss +58 -0
  12. assets/css/admin/modules/datatables.scss +89 -0
  13. assets/css/admin/modules/header.scss +45 -0
  14. assets/css/admin/modules/icons.scss +8 -0
  15. assets/css/admin/modules/modal.scss +94 -0
  16. assets/css/admin/modules/new-features.scss +35 -0
  17. assets/css/admin/modules/notices.scss +4 -0
  18. assets/css/admin/modules/onboarding.scss +36 -0
  19. assets/css/admin/modules/other-plugins.scss +93 -0
  20. assets/css/admin/modules/placeholder.scss +60 -0
  21. assets/css/admin/modules/progress.scss +289 -0
  22. assets/css/admin/modules/ssltest.scss +159 -0
  23. assets/css/admin/modules/tips-tricks.scss +60 -0
  24. assets/css/admin/modules/tooltip.scss +363 -0
  25. assets/css/admin/modules/wizard.scss +87 -0
  26. assets/css/admin/modules/wizard/fields.scss +100 -0
  27. assets/css/admin/modules/wizard/learning-mode.scss +55 -0
  28. assets/css/admin/modules/wizard/letsencrypt.scss +123 -0
  29. assets/css/admin/modules/wizard/menu.scss +85 -0
  30. assets/css/admin/modules/wizard/mixed-content-scan.scss +49 -0
  31. assets/css/admin/modules/wizard/notice.scss +81 -0
  32. assets/css/admin/modules/wizard/permissions-policy.scss +7 -0
  33. assets/css/admin/modules/wizard/snackbar.scss +18 -0
  34. assets/css/admin/states.scss +114 -0
  35. assets/css/admin/theme.scss +63 -0
  36. assets/css/main-rtl.css +0 -968
  37. assets/css/main-rtl.min.css +0 -1
  38. assets/css/main.css +0 -968
  39. assets/css/main.css.map +0 -1
  40. assets/css/main.less +0 -914
  41. assets/css/main.min.css +0 -1
  42. assets/css/rtl/admin.min.css +1 -0
  43. assets/css/variables.css.map +0 -0
  44. assets/css/variables.less +0 -127
  45. assets/css/variables.min.css +0 -0
  46. assets/css/variables.scss +143 -0
  47. assets/css/wcag.css +0 -95
  48. assets/css/wcag.css.map +0 -1
  49. assets/css/wcag.less +0 -118
  50. assets/css/wcag.min.css +0 -1
  51. assets/icon-128x128.png +0 -0
  52. assets/img/icon.png +0 -0
  53. assets/img/index.php +1 -0
  54. assets/img/really-simple-plugins.svg +1 -0
  55. assets/img/really-simple-ssl-logo.svg +1 -0
  56. assets/index.php +1 -0
  57. assets/js/scripts.js +0 -160
  58. assets/js/scripts.min.js +0 -1
  59. assets/really-simple-plugins.png +0 -0
  60. assets/really-simple-ssl-logo.png +0 -0
  61. class-admin.php +944 -3093
  62. class-certificate.php +16 -25
  63. class-front-end.php +11 -48
  64. class-help.php +0 -145
  65. class-installer.php +144 -0
  66. class-mixed-content-fixer.php +28 -36
  67. class-multisite.php +283 -830
  68. class-server.php +1 -1
  69. class-site-health.php +106 -30
  70. class-url.php +0 -5
  71. class-rsssl-wp-cli.php → class-wp-cli.php +2 -2
  72. compatibility.php +53 -0
  73. force-deactivate.txt +21 -34
  74. functions.php +74 -14
  75. grid/css/grid-rtl.css +0 -709
  76. grid/css/grid-rtl.css.map +0 -1
  77. grid/css/grid-rtl.less +0 -792
  78. grid/css/grid-rtl.min.css +0 -1
  79. grid/css/grid.css +0 -709
  80. grid/css/grid.css.map +0 -1
  81. grid/css/grid.less +0 -793
  82. grid/css/grid.min.css +0 -1
  83. grid/templates/grid-container.php +0 -10
  84. grid/templates/grid-element.php +0 -16
  85. grid/templates/header.php +0 -8
  86. grid/templates/ms-settings.php +0 -3
  87. grid/templates/other-plugins.php +0 -57
  88. grid/templates/our-plugins-header.php +0 -5
  89. grid/templates/progress-footer.php +0 -56
  90. grid/templates/progress-header.php +0 -20
  91. grid/templates/progress.php +0 -64
  92. grid/templates/settings-footer.php +0 -3
  93. grid/templates/settings.php +0 -7
  94. grid/templates/support-footer.php +0 -8
  95. grid/templates/support.php +0 -45
  96. grid/templates/tips-tricks-footer.php +0 -3
  97. grid/templates/tips-tricks.php +0 -63
  98. gulpfile.js +56 -0
  99. languages/really-simple-ssl.pot +2150 -1313
assets/cross.svg DELETED
@@ -1 +0,0 @@
1
- <svg id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0, 0, 400,400"><g id="svgg"><path id="path0" d="M55.692 37.024 C 43.555 40.991,36.316 50.669,36.344 62.891 C 36.369 73.778,33.418 70.354,101.822 138.867 L 162.858 200.000 101.822 261.133 C 33.434 329.630,36.445 326.135,36.370 337.109 C 36.270 351.953,47.790 363.672,62.483 363.672 C 73.957 363.672,68.975 367.937,138.084 298.940 L 199.995 237.127 261.912 298.936 C 331.022 367.926,326.053 363.672,337.517 363.672 C 351.804 363.672,363.610 352.027,363.655 337.891 C 363.689 326.943,367.629 331.524,299.116 262.841 C 265.227 228.868,237.500 200.586,237.500 199.991 C 237.500 199.395,265.228 171.117,299.117 137.150 C 367.625 68.484,363.672 73.081,363.672 62.092 C 363.672 48.021,351.832 36.371,337.500 36.341 C 326.067 36.316,331.025 32.070,261.909 101.066 L 199.990 162.877 138.472 101.388 C 87.108 50.048,76.310 39.616,73.059 38.191 C 68.251 36.083,60.222 35.543,55.692 37.024 " stroke="none" fill="#000000" fill-rule="evenodd"></path></g></svg>
 
assets/css/admin.css ADDED
@@ -0,0 +1,2741 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "UTF-8";
2
+ /**
3
+ *
4
+ * Prefix everything
5
+ * Name descriptively
6
+ * Structure radically
7
+ *
8
+ * CSS Structure
9
+ * css/
10
+ * ├─ admin/
11
+ * │ ├─ base.scss
12
+ * │ ├─ layout.scss
13
+ * │ ├─ modules/
14
+ * │ │ ├─ modal.scss
15
+ * │ │ ├─ button.scss
16
+ * │ │ ├─ modal.scss
17
+ * │ │ ├─ notices.scss
18
+ * │ │ ├─ tips-and-tricks.scss
19
+ * │ │ ├─ etc.....
20
+ * │ ├─ states.scss
21
+ * │ ├─ theme.scss
22
+ * ├─ admin.scss
23
+ * ├─ admin.min.css
24
+ * ├─ admin.css
25
+ * ├─ variables.scss
26
+ *
27
+ */
28
+ :root {
29
+ --rsp-spacing-xxs: 5px;
30
+ --rsp-spacing-xs: 10px;
31
+ --rsp-spacing-s: 15px;
32
+ --rsp-spacing-m: 20px;
33
+ --rsp-spacing-l: 25px;
34
+ --rsp-spacing-xl: 30px;
35
+ --rsp-grid-margin: var(--rsp-spacing-s);
36
+ --rsp-grid-gap: var(--rsp-spacing-m);
37
+ --rsp-border-radius: 12px;
38
+ --rsp-border-radius-s: 8px;
39
+ --rsp-border: 1px solid var(--rsp-border-color);
40
+ --rsp-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;
41
+ --rsp-box-shadow-dark: rgba(0, 0, 0, 0.2) 0px 4px 6px -1px, rgba(0, 0, 0, 0.12) 1px 0px 4px 1px;
42
+ --rsp-border-color: #dfdfdf;
43
+ --rsp-black: #333;
44
+ --rsp-white: #fff;
45
+ --rsp-yellow: #f4bf3e;
46
+ --rsp-blue: #29b6f6;
47
+ --rsp-dark-blue: #1E73BE;
48
+ --rsp-green: #2e8a37;
49
+ --rsp-red: #D7263D;
50
+ --rsp-pink: #E35899;
51
+ --rsp-wp-blue: #007cba;
52
+ --rsp-yellow-faded: #f2e6c9;
53
+ --rsp-blue-faded: #ecf8fe;
54
+ --rsp-dark-blue-faded: #ebf2f9;
55
+ --rsp-green-faded: #ecf4ed;
56
+ --rsp-red-faded: #fbebed;
57
+ --rsp-pink-faded: #fceff5;
58
+ --rsp-wp-blue-faded: #c6e0ef;
59
+ --rsp-background-block-color: var(--rsp-white);
60
+ --rsp-background-color: #f0f0f1;
61
+ --rsp-input-background-color: #fff;
62
+ --rsp-input-text-color: var(--rsp-text-color);
63
+ --rsp-input-border-color: var(--rsp-grey-400);
64
+ --rsp-text-color: rgba(26, 26, 26, 0.95);
65
+ --rsp-text-color-invert: rgba(255, 255, 255, 0.95);
66
+ --rsp-text-color-white: rgba(255, 255, 255, 0.95);
67
+ --rsp-text-color-light: rgba(69, 69, 82, 0.95);
68
+ --rsp-grey-100: #fafafa;
69
+ --rsp-grey-200: #f9f9f9;
70
+ --rsp-grey-300: #ededed;
71
+ --rsp-grey-400: #c6c6c6;
72
+ --rsp-grey-500: #737373;
73
+ --rsp-grey-600: #696969;
74
+ --rsp-color-success: var(--rsp-green);
75
+ --rsp-color-error: var(--rsp-red);
76
+ --rsp-color-warning: var(--rsp-yellow);
77
+ --rsp-color-open: var(--rsp-yellow);
78
+ --rsp-color-disabled: var(--rsp-grey-300);
79
+ --rsp-fs-100: 0.6875rem;
80
+ --rsp-fs-200: 0.8rem;
81
+ --rsp-fs-300: 0.8125rem;
82
+ --rsp-fs-400: 0.875rem;
83
+ --rsp-fs-500: 1rem;
84
+ --rsp-fs-600: 1.125rem;
85
+ --rsp-fs-700: 1.25rem;
86
+ --rsp-fs-800: 1.5rem;
87
+ --rsp-fs-900: 3.5rem;
88
+ }
89
+
90
+ @keyframes fade-in {
91
+ 0% {
92
+ opacity: 0;
93
+ }
94
+
95
+ 100% {
96
+ opacity: 1;
97
+ }
98
+ }
99
+
100
+ .rsssl {
101
+ margin: 0;
102
+ margin-left: -20px;
103
+ font-size: var(--rsp-fs-300);
104
+ box-sizing: border-box;
105
+ color: var(--rsp-text-color);
106
+ background-color: var(--rsp-background-color);
107
+ font-weight: 400;
108
+ line-height: 1.5;
109
+ }
110
+
111
+ @media only screen and (max-width: 782px) {
112
+ .rsssl {
113
+ margin-left: -9px;
114
+ }
115
+ }
116
+
117
+ .rsssl *, .rsssl *:before, .rsssl *:after {
118
+ box-sizing: inherit;
119
+ }
120
+
121
+ .rsssl body, .rsssl h1, .rsssl h2, .rsssl h3, .rsssl h4, .rsssl h5, .rsssl h6, .rsssl p, .rsssl ol, .rsssl ul {
122
+ margin: 0;
123
+ padding: 0;
124
+ }
125
+
126
+ .rsssl img {
127
+ max-width: 100%;
128
+ height: auto;
129
+ }
130
+
131
+ .rsssl h1, .rsssl h2, .rsssl h3, .rsssl h4, .rsssl h5, .rsssl h6 {
132
+ color: var(--rsp-text-color);
133
+ line-height: 1.5;
134
+ }
135
+
136
+ .rsssl .rsssl-h0 {
137
+ font-size: var(--rsp-fs-900);
138
+ font-weight: 700;
139
+ }
140
+
141
+ .rsssl h1, .rsssl .rsssl-h1 {
142
+ font-size: var(--rsp-fs-800);
143
+ line-height: 1.5;
144
+ font-weight: 500;
145
+ }
146
+
147
+ .rsssl h2, .rsssl .rsssl-h2 {
148
+ font-size: var(--rsp-fs-700);
149
+ font-weight: 700;
150
+ }
151
+
152
+ .rsssl h3, .rsssl .rsssl-h3 {
153
+ font-size: var(--rsp-fs-600);
154
+ font-weight: 600;
155
+ }
156
+
157
+ .rsssl h4, .rsssl .rsssl-h4 {
158
+ font-size: var(--rsp-fs-600);
159
+ font-weight: 600;
160
+ }
161
+
162
+ .rsssl h5, .rsssl .rsssl-h5 {
163
+ font-size: var(--rsp-fs-400);
164
+ font-weight: 400;
165
+ }
166
+
167
+ .rsssl h6, .rsssl .rsssl-h6 {
168
+ font-size: var(--rsp-fs-300);
169
+ }
170
+
171
+ .rsssl p {
172
+ color: var(--rsp-text-color);
173
+ font-weight: 400;
174
+ font-size: var(--rsp-fs-300);
175
+ line-height: 1.5;
176
+ }
177
+
178
+ .rsssl .rsssl-small-text {
179
+ font-size: var(--rsp-fs-200);
180
+ line-height: 1.5;
181
+ color: var(--rsp-text-color-light);
182
+ }
183
+
184
+ .rsssl a, .rsssl .rsssl-link {
185
+ color: var(--rsp-text-color);
186
+ }
187
+
188
+ .rsssl .rsssl-notice-hook-element {
189
+ display: none !important;
190
+ }
191
+
192
+ .rsssl .error:not(.really-simple-plugins), .rsssl .notice:not(.really-simple-plugins), .rsssl .update-nag:not(.really-simple-plugins), .rsssl .notice-info:not(.really-simple-plugins) {
193
+ display: none !important;
194
+ }
195
+
196
+ /* Grid */
197
+ .rsssl .rsssl-header, .rsssl .rsssl-content-area {
198
+ max-width: clamp(300px, 100% - var(--rsp-grid-gap) * 2, 1600px);
199
+ margin: 0 auto;
200
+ }
201
+
202
+ @media (max-width: 1599px) {
203
+ .rsssl .rsssl-header, .rsssl .rsssl-content-area {
204
+ --rsp-grid-gap: var(--rsp-spacing-m);
205
+ }
206
+ }
207
+
208
+ @media (max-width: 1440px) {
209
+ .rsssl .rsssl-header, .rsssl .rsssl-content-area {
210
+ --rsp-grid-gap: var(--rsp-spacing-s);
211
+ }
212
+ }
213
+
214
+ @media (max-width: 1366px) {
215
+ .rsssl .rsssl-header, .rsssl .rsssl-content-area {
216
+ --rsp-grid-gap: var(--rsp-spacing-xs);
217
+ }
218
+ }
219
+
220
+ .rsssl .rsssl-header-container .rsssl-header {
221
+ display: flex;
222
+ flex-wrap: wrap;
223
+ justify-content: space-between;
224
+ height: 70px;
225
+ box-sizing: border-box;
226
+ background-color: var(--rsp-background-block-color);
227
+ }
228
+
229
+ @media (max-width: 1080px) {
230
+ .rsssl .rsssl-header-container .rsssl-header {
231
+ height: 100%;
232
+ }
233
+ }
234
+
235
+ @media (max-width: 576px) {
236
+ .rsssl .rsssl-logo {
237
+ display: none;
238
+ }
239
+ }
240
+
241
+ .rsssl .rsssl-header-left {
242
+ display: flex;
243
+ font-size: var(--rsp-fs-400);
244
+ }
245
+
246
+ @media (max-width: 1080px) {
247
+ .rsssl .rsssl-header-left {
248
+ justify-content: center;
249
+ margin: var(--rsp-spacing-xs) 0;
250
+ order: 3;
251
+ width: 100%;
252
+ background-color: var(--rsp-background-block-color);
253
+ }
254
+ }
255
+
256
+ .rsssl .rsssl-header-left .rsssl-header-menu {
257
+ margin: auto 15px;
258
+ }
259
+
260
+ .rsssl .rsssl-header-left .rsssl-header-menu ul {
261
+ display: flex;
262
+ }
263
+
264
+ .rsssl .rsssl-header-left .rsssl-header-menu li {
265
+ margin-bottom: 0;
266
+ }
267
+
268
+ .rsssl .rsssl-header-left .rsssl-header-menu a {
269
+ padding: 23px 15px;
270
+ text-decoration: none;
271
+ color: var(--rsp-text-color);
272
+ height: 100%;
273
+ border-bottom: 4px solid transparent;
274
+ transition: border 0.3s ease-out;
275
+ box-sizing: border-box;
276
+ -moz-box-sizing: border-box;
277
+ -webkit-box-sizing: border-box;
278
+ }
279
+
280
+ @media (max-width: 1080px) {
281
+ .rsssl .rsssl-header-left .rsssl-header-menu a {
282
+ padding: 10px 15px;
283
+ }
284
+ }
285
+
286
+ .rsssl .rsssl-header-left .rsssl-header-menu a.active {
287
+ border-bottom: 4px solid var(--rsp-brand-primary);
288
+ }
289
+
290
+ .rsssl .rsssl-header-left .rsssl-header-menu a:hover {
291
+ color: var(--rsp-brand-primary);
292
+ }
293
+
294
+ .rsssl .rsssl-header-right {
295
+ display: flex;
296
+ flex-wrap: wrap;
297
+ align-items: center;
298
+ margin-left: auto;
299
+ gap: var(--rsp-spacing-s);
300
+ min-height: 52px;
301
+ }
302
+
303
+ .rsssl .rsssl-header-right select {
304
+ max-width: 60ch;
305
+ }
306
+
307
+ @media (max-width: 576px) {
308
+ .rsssl .rsssl-header-right {
309
+ display: none;
310
+ }
311
+ }
312
+
313
+ @media (max-width: 782px) {
314
+ .rsssl .rsssl-header-right .button {
315
+ display: none;
316
+ }
317
+ }
318
+
319
+ .rsssl .rsssl-content-area {
320
+ margin-top: var(--rsp-grid-gap);
321
+ }
322
+
323
+ .rsssl .rsssl-header-container {
324
+ background: var(--rsp-background-block-color);
325
+ }
326
+
327
+ .rsssl .rsssl-grid {
328
+ display: grid;
329
+ grid-template-columns: repeat(4, 1fr);
330
+ grid-auto-rows: max-content;
331
+ gap: var(--rsp-grid-gap);
332
+ min-height: calc(100vh - 32px - 80px - 20px - var(--rsp-grid-gap));
333
+ }
334
+
335
+ .rsssl .rsssl-grid.rsssl-settings {
336
+ grid-template-columns: minmax(275px, max-content) 2fr minmax(min-content, 1fr);
337
+ }
338
+
339
+ @media only screen and (max-width: 1080px) {
340
+ .rsssl .rsssl-grid.rsssl-settings {
341
+ grid-template-columns: repeat(4, 1fr);
342
+ }
343
+
344
+ .rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-menu, .rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-settings, .rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-help {
345
+ grid-column: 1/-1;
346
+ }
347
+ }
348
+
349
+ @media only screen and (max-width: 1280px) {
350
+ .rsssl .rsssl-grid {
351
+ grid-template-columns: repeat(2, 1fr);
352
+ }
353
+ }
354
+
355
+ @media only screen and (max-width: 1080px) {
356
+ .rsssl .rsssl-grid {
357
+ max-width: 790px;
358
+ width: calc(100% - var(--rsp-grid-gap) * 2);
359
+ }
360
+ }
361
+
362
+ .rsssl .rsssl-grid-item {
363
+ background: var(--rsp-background-block-color);
364
+ box-shadow: var(--rsp-box-shadow);
365
+ border-radius: var(--rsp-border-radius);
366
+ transition: all 1s ease;
367
+ display: flex;
368
+ flex-wrap: wrap;
369
+ justify-content: flex-start;
370
+ flex-direction: column;
371
+ flex-basis: 100%;
372
+ grid-column: span 1;
373
+ grid-row: span 1;
374
+ }
375
+
376
+ .rsssl .rsssl-grid-item.rsssl-disabled {
377
+ min-height: 200px;
378
+ }
379
+
380
+ @media (max-width: 1080px) {
381
+ .rsssl .rsssl-grid-item {
382
+ grid-column: span 4;
383
+ }
384
+ }
385
+
386
+ .rsssl .rsssl-grid-item.no-background {
387
+ background: none;
388
+ border: none;
389
+ box-shadow: none;
390
+ }
391
+
392
+ .rsssl .rsssl-grid-item.rsssl-column-2 {
393
+ grid-column: span 2;
394
+ }
395
+
396
+ @media (max-width: 1080px) {
397
+ .rsssl .rsssl-grid-item.rsssl-column-2 {
398
+ grid-column: span 4;
399
+ }
400
+ }
401
+
402
+ .rsssl .rsssl-grid-item.rsssl-row-2 {
403
+ grid-row: span 2;
404
+ min-height: 400px;
405
+ }
406
+
407
+ .rsssl .rsssl-grid-item-header {
408
+ width: 100%;
409
+ box-sizing: border-box;
410
+ display: flex;
411
+ align-items: center;
412
+ justify-content: space-between;
413
+ min-height: calc(30px + var(--rsp-spacing-s) * 2);
414
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
415
+ }
416
+
417
+ @media screen and (max-width: 1280px) {
418
+ .rsssl .rsssl-grid-item-header {
419
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
420
+ }
421
+ }
422
+
423
+ @media screen and (max-width: 1080px) {
424
+ .rsssl .rsssl-grid-item-header {
425
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
426
+ }
427
+ }
428
+
429
+ .rsssl .rsssl-grid-item-header:empty {
430
+ display: none;
431
+ }
432
+
433
+ .rsssl .rsssl-grid-item-title {
434
+ margin: 4px 0 4px 0;
435
+ }
436
+
437
+ .rsssl .rsssl-grid-item-controls {
438
+ font-size: var(--rsp-fs-200);
439
+ display: flex;
440
+ gap: var(--rsp-spacing-s);
441
+ }
442
+
443
+ .rsssl .rsssl-grid-item-content {
444
+ width: 100%;
445
+ box-sizing: border-box;
446
+ padding-inline: var(--rsp-spacing-l);
447
+ flex-grow: 100;
448
+ }
449
+
450
+ @media screen and (max-width: 1280px) {
451
+ .rsssl .rsssl-grid-item-content {
452
+ padding-inline: var(--rsp-spacing-m);
453
+ }
454
+ }
455
+
456
+ @media screen and (max-width: 1080px) {
457
+ .rsssl .rsssl-grid-item-content {
458
+ padding-inline: var(--rsp-spacing-s);
459
+ }
460
+ }
461
+
462
+ .rsssl .rsssl-grid-item-content:empty {
463
+ display: none;
464
+ }
465
+
466
+ .rsssl .rsssl-grid-item-footer {
467
+ display: flex;
468
+ flex-wrap: wrap;
469
+ align-items: center;
470
+ justify-content: space-between;
471
+ gap: var(--rsp-grid-margin);
472
+ width: 100%;
473
+ min-height: calc(30px + var(--rsp-spacing-s) * 2);
474
+ box-sizing: border-box;
475
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
476
+ align-self: flex-end;
477
+ }
478
+
479
+ @media screen and (max-width: 1280px) {
480
+ .rsssl .rsssl-grid-item-footer {
481
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
482
+ }
483
+ }
484
+
485
+ @media screen and (max-width: 1080px) {
486
+ .rsssl .rsssl-grid-item-footer {
487
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
488
+ }
489
+ }
490
+
491
+ .rsssl .rsssl-grid-item-footer .rsssl-legend {
492
+ display: flex;
493
+ }
494
+
495
+ .rsssl .rsssl-grid-item-footer .rsssl-legend span {
496
+ padding-left: 5px;
497
+ }
498
+
499
+ .rsssl .rsssl-grid-item-footer:empty {
500
+ display: none;
501
+ }
502
+
503
+ .rsssl .rsssl-grid-item .rsssl-flex-push-right {
504
+ margin-left: auto;
505
+ }
506
+
507
+ .rsssl .rsssl-grid-item .rsssl-flex-push-left {
508
+ margin-right: auto;
509
+ }
510
+
511
+ .rsssl-modal-backdrop {
512
+ position: fixed;
513
+ top: 0;
514
+ right: 0;
515
+ bottom: 0;
516
+ left: 0;
517
+ background-color: rgba(0, 0, 0, 0.6);
518
+ width: 100%;
519
+ height: 100%;
520
+ z-index: 2;
521
+ }
522
+
523
+ .rsssl-modal {
524
+ width: clamp(300px, 75ch, 100vw - 50px);
525
+ position: fixed;
526
+ z-index: 3;
527
+ border-radius: var(--rsp-border-radius);
528
+ background-color: var(--rsp-white);
529
+ top: 50%;
530
+ left: 50%;
531
+ transform: translate(-50%, -50%);
532
+ margin: 25px auto;
533
+ }
534
+
535
+ .rsssl-modal .rsssl-modal-header {
536
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
537
+ display: flex;
538
+ justify-content: space-between;
539
+ align-items: center;
540
+ border-radius: var(--rsp-border-radius);
541
+ }
542
+
543
+ @media screen and (max-width: 1280px) {
544
+ .rsssl-modal .rsssl-modal-header {
545
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
546
+ }
547
+ }
548
+
549
+ @media screen and (max-width: 1080px) {
550
+ .rsssl-modal .rsssl-modal-header {
551
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
552
+ }
553
+ }
554
+
555
+ .rsssl-modal .rsssl-modal-header .modal-title {
556
+ margin: 0;
557
+ background-color: white;
558
+ }
559
+
560
+ .rsssl-modal .rsssl-modal-header .rsssl-modal-close {
561
+ cursor: pointer;
562
+ background: none;
563
+ border: none;
564
+ font-weight: 700;
565
+ }
566
+
567
+ .rsssl-modal .rsssl-modal-header button img {
568
+ height: 16px;
569
+ width: 16px;
570
+ }
571
+
572
+ .rsssl-modal .rsssl-modal-content {
573
+ position: relative;
574
+ font-size: var(--rsp-fs-300);
575
+ line-height: 1.5;
576
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
577
+ }
578
+
579
+ @media screen and (max-width: 1280px) {
580
+ .rsssl-modal .rsssl-modal-content {
581
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
582
+ }
583
+ }
584
+
585
+ @media screen and (max-width: 1080px) {
586
+ .rsssl-modal .rsssl-modal-content {
587
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
588
+ }
589
+ }
590
+
591
+ .rsssl-modal .rsssl-modal-content .rsssl-modal-subtitle {
592
+ font-size: var(--rsp-fs-600);
593
+ font-weight: 600;
594
+ margin-bottom: var(--rsp-spacing-xs);
595
+ }
596
+
597
+ .rsssl-modal .rsssl-modal-content .rsssl-modal-description {
598
+ overflow-wrap: anywhere;
599
+ margin-top: 0;
600
+ font-weight: 400;
601
+ line-height: 1.5;
602
+ margin-bottom: var(--rsp-spacing-s);
603
+ }
604
+
605
+ .rsssl-modal .rsssl-modal-footer {
606
+ display: flex;
607
+ flex-direction: row;
608
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
609
+ gap: 10px;
610
+ }
611
+
612
+ @media screen and (max-width: 1280px) {
613
+ .rsssl-modal .rsssl-modal-footer {
614
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
615
+ }
616
+ }
617
+
618
+ @media screen and (max-width: 1080px) {
619
+ .rsssl-modal .rsssl-modal-footer {
620
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
621
+ }
622
+ }
623
+
624
+ .rsssl-modal .rsssl-modal-footer .button {
625
+ display: flex;
626
+ align-items: flex-start;
627
+ justify-content: center;
628
+ min-width: 105px;
629
+ text-align: center;
630
+ border-radius: 6px;
631
+ }
632
+
633
+ .rsssl-modal .rsssl-modal-footer .rsssl-button-help {
634
+ background-color: #D7263D;
635
+ color: white;
636
+ border-color: #D7263D;
637
+ }
638
+
639
+ .rsssl-modal .rsssl-modal-footer .rsssl-button-help:hover {
640
+ opacity: 0.9;
641
+ }
642
+
643
+ .rsssl-header-container .rsssl-header {
644
+ display: flex;
645
+ justify-content: space-between;
646
+ height: 70px;
647
+ box-sizing: border-box;
648
+ }
649
+
650
+ .rsssl-header-container .rsssl-header img {
651
+ margin: auto 0;
652
+ height: 26px;
653
+ }
654
+
655
+ .rsssl-header-container .rsssl-header .rsssl-header-menu {
656
+ display: flex;
657
+ align-items: center;
658
+ height: 100%;
659
+ padding: 0 20px;
660
+ box-sizing: border-box;
661
+ }
662
+
663
+ .rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item {
664
+ display: flex;
665
+ align-items: center;
666
+ height: 100%;
667
+ padding: 0 20px;
668
+ box-sizing: border-box;
669
+ }
670
+
671
+ .rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item:first-child {
672
+ margin-left: 0;
673
+ }
674
+
675
+ .rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item:last-child {
676
+ margin-right: 0;
677
+ }
678
+
679
+ .rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item.rsssl-header-menu-item-active {
680
+ background-color: #f5f5f5;
681
+ }
682
+
683
+ .rsssl-header-container .rsssl-header .rsssl-header-actions {
684
+ display: flex;
685
+ align-items: center;
686
+ margin-left: auto;
687
+ gap: var(--rsp-spacing-s);
688
+ }
689
+
690
+ .rsssl-header-container .rsssl-header .rsssl-header-actions select {
691
+ max-width: 60ch;
692
+ }
693
+
694
+ .rsssl a.button, .rsssl button.button, .rsssl input.button, .rsssl span.button {
695
+ font-size: var(--rsp-fs-300);
696
+ font-weight: 400;
697
+ transition: all 0.3s ease;
698
+ min-height: 10px;
699
+ }
700
+
701
+ .rsssl a.button.button-secondary, .rsssl a.button.button-default, .rsssl button.button.button-secondary, .rsssl button.button.button-default, .rsssl input.button.button-secondary, .rsssl input.button.button-default, .rsssl span.button.button-secondary, .rsssl span.button.button-default {
702
+ background: transparent;
703
+ }
704
+
705
+ .rsssl a.button.button-black, .rsssl button.button.button-black, .rsssl input.button.button-black, .rsssl span.button.button-black {
706
+ border: 1px solid var(--rsp-black);
707
+ background: var(--rsp-black);
708
+ color: var(--rsp-text-color-white);
709
+ }
710
+
711
+ .rsssl a.button.button-black:hover, .rsssl a.button.button-black:focus, .rsssl a.button.button-black:active, .rsssl button.button.button-black:hover, .rsssl button.button.button-black:focus, .rsssl button.button.button-black:active, .rsssl input.button.button-black:hover, .rsssl input.button.button-black:focus, .rsssl input.button.button-black:active, .rsssl span.button.button-black:hover, .rsssl span.button.button-black:focus, .rsssl span.button.button-black:active {
712
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--rsp-black);
713
+ }
714
+
715
+ .rsssl a.button.button-tertiary, .rsssl a.button.button-red, .rsssl button.button.button-tertiary, .rsssl button.button.button-red, .rsssl input.button.button-tertiary, .rsssl input.button.button-red, .rsssl span.button.button-tertiary, .rsssl span.button.button-red {
716
+ border: 0 solid transparent;
717
+ background: var(--rsp-red);
718
+ color: var(--rsp-text-color-white);
719
+ }
720
+
721
+ .rsssl a.button.button-tertiary:hover, .rsssl a.button.button-tertiary:focus, .rsssl a.button.button-tertiary:active, .rsssl a.button.button-red:hover, .rsssl a.button.button-red:focus, .rsssl a.button.button-red:active, .rsssl button.button.button-tertiary:hover, .rsssl button.button.button-tertiary:focus, .rsssl button.button.button-tertiary:active, .rsssl button.button.button-red:hover, .rsssl button.button.button-red:focus, .rsssl button.button.button-red:active, .rsssl input.button.button-tertiary:hover, .rsssl input.button.button-tertiary:focus, .rsssl input.button.button-tertiary:active, .rsssl input.button.button-red:hover, .rsssl input.button.button-red:focus, .rsssl input.button.button-red:active, .rsssl span.button.button-tertiary:hover, .rsssl span.button.button-tertiary:focus, .rsssl span.button.button-tertiary:active, .rsssl span.button.button-red:hover, .rsssl span.button.button-red:focus, .rsssl span.button.button-red:active {
722
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--rsp-red);
723
+ background: var(--rsp-red);
724
+ color: var(--rsp-text-color-white);
725
+ }
726
+
727
+ .rsssl a.rsssl-button-small, .rsssl button.rsssl-button-small, .rsssl input.rsssl-button-small {
728
+ font-size: var(--rsp-fs-100);
729
+ font-weight: 300;
730
+ min-height: auto;
731
+ }
732
+
733
+ .rsssl .rsssl-button-small + .rsssl-button-small {
734
+ margin-left: 10px;
735
+ }
736
+
737
+ /* Documents overview */
738
+ .rsssl-shortcode {
739
+ right: 10000px;
740
+ position: absolute;
741
+ background-color: #fff;
742
+ padding: 0;
743
+ white-space: nowrap;
744
+ }
745
+
746
+ .shortcode {
747
+ cursor: pointer;
748
+ }
749
+
750
+ .rsssl .rsssl-bullet {
751
+ height: 13px;
752
+ width: 13px;
753
+ flex: 0 0 13px;
754
+ border-radius: 50%;
755
+ display: inline-block;
756
+ background-color: var(--rsp-grey-300);
757
+ }
758
+
759
+ .rsssl .rsssl-bullet.rsp-yellow {
760
+ background-color: var(--rsp-yellow);
761
+ }
762
+
763
+ .rsssl .rsssl-bullet.rsp-blue {
764
+ background-color: var(--rsp-blue);
765
+ }
766
+
767
+ .rsssl .rsssl-bullet.rsp-pink {
768
+ background-color: var(--rsp-pink);
769
+ }
770
+
771
+ .rsssl .rsssl-bullet.rsp-red, .rsssl .rsssl-bullet.rsssl-bullet-error {
772
+ background-color: var(--rsp-red);
773
+ }
774
+
775
+ .rsssl .rsssl-bullet.rsp-green, .rsssl .rsssl-bullet.rsssl-bullet-success {
776
+ background-color: var(--rsp-green);
777
+ }
778
+
779
+ .rsssl .rsssl-bullet.rsp-blue-yellow {
780
+ background: var(--rsp-blue);
781
+ background: linear-gradient(77deg, rgb(41, 182, 246) 0%, rgb(41, 182, 246) 30%, rgb(244, 191, 62) 70%, rgb(244, 191, 62) 100%);
782
+ animation: gradient 2s ease infinite;
783
+ background-size: 200% 200%;
784
+ }
785
+
786
+ .rsssl .rsssl-legend {
787
+ display: flex;
788
+ width: max-content;
789
+ color: var(--rsp-text-color-light);
790
+ align-items: center;
791
+ min-width: 0;
792
+ gap: var(--rsp-spacing-xxs);
793
+ text-decoration: none;
794
+ }
795
+
796
+ .rsssl .rsssl-legend:first-of-type {
797
+ margin-left: auto;
798
+ }
799
+
800
+ @keyframes gradient {
801
+ 0% {
802
+ background-position: 0% 50%;
803
+ }
804
+
805
+ 50% {
806
+ background-position: 100% 50%;
807
+ }
808
+
809
+ 100% {
810
+ background-position: 0% 50%;
811
+ }
812
+ }
813
+
814
+ .rsssl-icon {
815
+ display: flex;
816
+ align-items: center;
817
+ justify-content: center;
818
+ }
819
+
820
+ .rsssl-icon svg {
821
+ fill: currentColor;
822
+ }
823
+
824
+ .rsssl-modal.rsssl-onboarding {
825
+ width: clamp(300px, 100ch, 100vw);
826
+ }
827
+
828
+ .rsssl-modal.rsssl-onboarding .rsssl-logo {
829
+ height: 26px;
830
+ }
831
+
832
+ .rsssl-modal.rsssl-onboarding .rsssl-modal-content {
833
+ padding-top: var(--rsp-spacing-xs);
834
+ line-height: 2.2;
835
+ }
836
+
837
+ .rsssl-modal.rsssl-onboarding .rsssl-modal-content ul {
838
+ margin-bottom: var(--rsp-spacing-m);
839
+ }
840
+
841
+ .rsssl-modal.rsssl-onboarding .rsssl-modal-content ul li {
842
+ display: flex;
843
+ align-items: flex-start;
844
+ margin-bottom: var(--rsp-spacing-xxs);
845
+ }
846
+
847
+ .rsssl-modal.rsssl-onboarding .rsssl-modal-content ul li .rsssl-icon {
848
+ margin-top: 7px;
849
+ margin-right: 7px;
850
+ }
851
+
852
+ .rsssl-modal.rsssl-onboarding .rsssl-modal-content-step-footer {
853
+ display: flex;
854
+ align-items: center;
855
+ margin-top: var(--rsp-spacing-l);
856
+ gap: var(--rsp-spacing-m);
857
+ }
858
+
859
+ .rsssl-modal.rsssl-onboarding .rsssl-modal-content-step-footer .components-toggle-control .components-base-control__field {
860
+ margin: 0;
861
+ }
862
+
863
+ .rsssl-ssllabs.rsssl-block-highlight {
864
+ border: 0;
865
+ -o-animation: fadeItBlock 3s ease-in-out;
866
+ animation: fadeItBlock 3s ease-in-out;
867
+ }
868
+
869
+ @-o-keyframes fadeItBlock {
870
+ 0% {
871
+ border: 0;
872
+ }
873
+
874
+ 30% {
875
+ border: 2px solid var(--rsp-green);
876
+ }
877
+
878
+ 100% {
879
+ border: 0;
880
+ }
881
+ }
882
+
883
+ @keyframes fadeItBlock {
884
+ 0% {
885
+ border: 0;
886
+ }
887
+
888
+ 30% {
889
+ border: 2px solid var(--rsp-green);
890
+ }
891
+
892
+ 100% {
893
+ border: 0;
894
+ }
895
+ }
896
+
897
+ .rsssl-grid-item.rsssl-progress .rsssl-grid-item-content {
898
+ padding: 0;
899
+ }
900
+
901
+ .rsssl-grid-item.rsssl-progress .rsssl-placeholder {
902
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
903
+ }
904
+
905
+ @media screen and (max-width: 1280px) {
906
+ .rsssl-grid-item.rsssl-progress .rsssl-placeholder {
907
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
908
+ }
909
+ }
910
+
911
+ @media screen and (max-width: 1080px) {
912
+ .rsssl-grid-item.rsssl-progress .rsssl-placeholder {
913
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
914
+ }
915
+ }
916
+
917
+ .rsssl-progress-block .rsssl-progress {
918
+ overflow: hidden;
919
+ height: 20px;
920
+ border-radius: 5px;
921
+ background-color: #f7f7f7;
922
+ }
923
+
924
+ .rsssl-progress-block .rsssl-progress .rsssl-bar {
925
+ height: 100%;
926
+ background-color: var(--rsp-color-success);
927
+ }
928
+
929
+ .rsssl-progress-block .rsssl-progress .rsssl-bar.rsssl-orange {
930
+ background-color: var(--rsp-color-warning);
931
+ }
932
+
933
+ .rsssl-progress-block .rsssl-progress-bar {
934
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
935
+ padding-block: 0;
936
+ border-radius: 5px;
937
+ }
938
+
939
+ @media screen and (max-width: 1280px) {
940
+ .rsssl-progress-block .rsssl-progress-bar {
941
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
942
+ }
943
+ }
944
+
945
+ @media screen and (max-width: 1080px) {
946
+ .rsssl-progress-block .rsssl-progress-bar {
947
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
948
+ }
949
+ }
950
+
951
+ .rsssl-progress-block .rsssl-progress-text {
952
+ display: flex;
953
+ align-items: center;
954
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
955
+ padding-block: var(--rsp-spacing-s);
956
+ justify-content: flex-start;
957
+ gap: var(--rsp-spacing-m);
958
+ }
959
+
960
+ @media screen and (max-width: 1280px) {
961
+ .rsssl-progress-block .rsssl-progress-text {
962
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
963
+ }
964
+ }
965
+
966
+ @media screen and (max-width: 1080px) {
967
+ .rsssl-progress-block .rsssl-progress-text {
968
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
969
+ }
970
+ }
971
+
972
+ .rsssl-progress-block .rsssl-progress-text .rsssl-progress-percentage {
973
+ font-size: var(--rsp-fs-800);
974
+ font-weight: 700;
975
+ }
976
+
977
+ .rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span {
978
+ font-weight: 500;
979
+ font-size: var(--rsp-fs-600);
980
+ }
981
+
982
+ .rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span a {
983
+ margin-left: 3px;
984
+ }
985
+
986
+ @media only screen and (max-width: 1366px) and (min-width: 1280px) {
987
+ .rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span {
988
+ font-size: var(--rsp-fs-500);
989
+ }
990
+ }
991
+
992
+ .rsssl-header-html {
993
+ display: flex;
994
+ color: var(--rsp-text-color-light);
995
+ }
996
+
997
+ .rsssl-header-html .rsssl-toggle-active {
998
+ text-decoration: underline;
999
+ }
1000
+
1001
+ .rsssl-task-switcher-container {
1002
+ display: flex;
1003
+ border-radius: var(--rsp-border-radius);
1004
+ }
1005
+
1006
+ .rsssl-task-switcher-container .rsssl-task-switcher:first-of-type {
1007
+ border-right: 1px solid var(--rsp-grey-400);
1008
+ padding-right: 10px;
1009
+ }
1010
+
1011
+ .rsssl-task-switcher-container .rsssl-task-switcher:last-of-type {
1012
+ padding-left: 10px;
1013
+ }
1014
+
1015
+ .rsssl-task-switcher {
1016
+ font-size: var(--rsp-fs-200);
1017
+ cursor: pointer;
1018
+ transition: 0.3s;
1019
+ }
1020
+
1021
+ .rsssl-task-switcher:hover {
1022
+ text-decoration: underline;
1023
+ }
1024
+
1025
+ .rsssl-active-filter-remaining .rsssl-remaining-tasks, .rsssl-active-filter-all .rsssl-all-tasks {
1026
+ text-decoration: underline;
1027
+ }
1028
+
1029
+ /**
1030
+ * Task element, list of tasks
1031
+ */
1032
+ .rsssl-task-element {
1033
+ display: flex;
1034
+ align-items: flex-start;
1035
+ justify-content: center;
1036
+ gap: var(--rsp-spacing-m);
1037
+ padding-bottom: var(--rsp-spacing-s);
1038
+ }
1039
+
1040
+ @media (max-width: 1280px) {
1041
+ .rsssl-task-element {
1042
+ gap: var(--rsp-spacing-xs);
1043
+ }
1044
+ }
1045
+
1046
+ .rsssl-task-element .rsssl-task-message {
1047
+ flex: 1;
1048
+ font-size: var(--rsp-fs-300);
1049
+ }
1050
+
1051
+ .rsssl-task-element .rsssl-task-form {
1052
+ margin-top: var(--rsp-spacing-xxs);
1053
+ display: flex;
1054
+ gap: var(--rsp-spacing-xs);
1055
+ }
1056
+
1057
+ .rsssl-task-element .rsssl-task-enable {
1058
+ cursor: pointer;
1059
+ line-height: 1.5;
1060
+ }
1061
+
1062
+ .rsssl-task-element .rsssl-task-dismiss:hover {
1063
+ transform: scale(1.1);
1064
+ }
1065
+
1066
+ .rsssl-task-element .rsssl-task-dismiss button {
1067
+ all: initial;
1068
+ cursor: pointer;
1069
+ padding: 4px;
1070
+ }
1071
+
1072
+ .rsssl-task-element .rsssl-task-dismiss svg {
1073
+ height: 12px;
1074
+ width: 12px;
1075
+ }
1076
+
1077
+ .rsssl-scroll-container {
1078
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
1079
+ height: 230px;
1080
+ overflow-y: auto;
1081
+ padding-block: 0;
1082
+ padding-top: var(--rsp-spacing-s);
1083
+ border-radius: 0;
1084
+ }
1085
+
1086
+ @media screen and (max-width: 1280px) {
1087
+ .rsssl-scroll-container {
1088
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
1089
+ }
1090
+ }
1091
+
1092
+ @media screen and (max-width: 1080px) {
1093
+ .rsssl-scroll-container {
1094
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
1095
+ }
1096
+ }
1097
+
1098
+ .rsssl-scroll-container::-webkit-scrollbar-track {
1099
+ border-radius: 10px;
1100
+ -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0);
1101
+ background-color: transparent;
1102
+ }
1103
+
1104
+ .rsssl-scroll-container::-webkit-scrollbar {
1105
+ width: 8px;
1106
+ border-radius: 10px;
1107
+ background-color: var(--rsp-grey-300);
1108
+ }
1109
+
1110
+ .rsssl-scroll-container::-webkit-scrollbar-thumb {
1111
+ background-color: var(--rsp-grey-400);
1112
+ border-radius: 10px;
1113
+ }
1114
+
1115
+ .rsssl-progress-status-container {
1116
+ margin-right: 40px;
1117
+ }
1118
+
1119
+ .rsssl-task-status, .rsssl-locked-overlay .rsssl-progress-status {
1120
+ display: block;
1121
+ min-width: 100px;
1122
+ text-align: center;
1123
+ border-radius: 15px;
1124
+ padding: 4px 8px;
1125
+ font-size: var(--rsp-fs-100);
1126
+ font-weight: 600;
1127
+ }
1128
+
1129
+ .rsssl-task-status.rsssl-premium, .rsssl-locked-overlay .rsssl-premium.rsssl-progress-status {
1130
+ min-width: 100px !important;
1131
+ }
1132
+
1133
+ @media (max-width: 1280px) {
1134
+ .rsssl-task-status, .rsssl-locked-overlay .rsssl-progress-status {
1135
+ min-width: 80px;
1136
+ }
1137
+ }
1138
+
1139
+ .rsssl-task-status.rsssl-completed, .rsssl-locked-overlay .rsssl-completed.rsssl-progress-status, .rsssl-task-status.rsssl-success, .rsssl-locked-overlay .rsssl-success.rsssl-progress-status {
1140
+ background-color: var(--rsp-color-success);
1141
+ color: var(--rsp-text-color-white);
1142
+ }
1143
+
1144
+ .rsssl-task-status.rsssl-open, .rsssl-locked-overlay .rsssl-open.rsssl-progress-status {
1145
+ background-color: var(--rsp-color-open);
1146
+ }
1147
+
1148
+ .rsssl-task-status.rsssl-warning, .rsssl-locked-overlay .rsssl-warning.rsssl-progress-status {
1149
+ background-color: var(--rsp-color-error);
1150
+ color: var(--rsp-text-color-white);
1151
+ }
1152
+
1153
+ .rsssl-task-status.rsssl-premium, .rsssl-locked-overlay .rsssl-premium.rsssl-progress-status {
1154
+ background-color: var(--rsp-blue);
1155
+ color: var(--rsp-text-color-white);
1156
+ }
1157
+
1158
+ @media (max-width: 1080px) {
1159
+ .rsssl-scroll-container .rsssl-task-status, .rsssl-scroll-container .rsssl-locked-overlay .rsssl-progress-status, .rsssl-locked-overlay .rsssl-scroll-container .rsssl-progress-status {
1160
+ aspect-ratio: 1/1;
1161
+ min-width: 10px;
1162
+ height: 16px;
1163
+ border-radius: 100%;
1164
+ text-indent: -9999px;
1165
+ /* sends the text off-screen */
1166
+ white-space: nowrap;
1167
+ }
1168
+ }
1169
+
1170
+ .rsssl-plusone {
1171
+ min-width: 15px;
1172
+ height: 15px;
1173
+ font-size: var(--rsp-fs-100);
1174
+ line-height: 1.5;
1175
+ display: inline-block;
1176
+ vertical-align: top;
1177
+ box-sizing: border-box;
1178
+ margin: 1px 0 -1px 2px;
1179
+ padding: 0 5px;
1180
+ border-radius: 9px;
1181
+ background-color: #d63638;
1182
+ color: #fff;
1183
+ text-align: center;
1184
+ }
1185
+
1186
+ @media only screen and (max-width: 1366px) {
1187
+ .rsssl-footer-left {
1188
+ display: none;
1189
+ }
1190
+ }
1191
+
1192
+ .rsssl-grid-item.rsssl-ssllabs .rsssl-grid-item-content {
1193
+ padding: 0;
1194
+ }
1195
+
1196
+ .rsssl-ssllabs .rsssl-placeholder {
1197
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
1198
+ }
1199
+
1200
+ @media screen and (max-width: 1280px) {
1201
+ .rsssl-ssllabs .rsssl-placeholder {
1202
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
1203
+ }
1204
+ }
1205
+
1206
+ @media screen and (max-width: 1080px) {
1207
+ .rsssl-ssllabs .rsssl-placeholder {
1208
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
1209
+ }
1210
+ }
1211
+
1212
+ .rsssl-ssllabs .rsssl-inactive .rsssl-score-snippet {
1213
+ color: var(--rsp-color-disabled);
1214
+ }
1215
+
1216
+ .rsssl-ssllabs .rsssl-inactive .rsssl-ssl-test > div {
1217
+ background: var(--rsp-grey-300);
1218
+ }
1219
+
1220
+ .rsssl-ssllabs .rsssl-inactive .rsssl-details:last-of-type {
1221
+ opacity: 0.2;
1222
+ }
1223
+
1224
+ .rsssl-ssllabs .rsssl-ssl-test-container {
1225
+ background: var(--rsp-grey-100);
1226
+ padding: 20px 25px;
1227
+ }
1228
+
1229
+ .rsssl-ssllabs .rsssl-ssl-test-container.rsssl-error {
1230
+ background: var(--rsp-red-faded);
1231
+ }
1232
+
1233
+ .rsssl-ssllabs .rsssl-ssl-test-container.rsssl-success {
1234
+ background: var(--rsp-green-faded);
1235
+ }
1236
+
1237
+ @media only screen and (max-width: 1599px) and (min-width: 1280px) {
1238
+ .rsssl-ssllabs .rsssl-ssl-test-container {
1239
+ padding: 5px;
1240
+ }
1241
+ }
1242
+
1243
+ .rsssl-ssllabs .rsssl-ssl-test {
1244
+ display: flex;
1245
+ gap: 15px;
1246
+ }
1247
+
1248
+ .rsssl-ssllabs .rsssl-ssl-test > div {
1249
+ flex: 1;
1250
+ background-color: #fff;
1251
+ }
1252
+
1253
+ @media only screen and (max-width: 1599px) and (min-width: 1280px) {
1254
+ .rsssl-ssllabs .rsssl-ssl-test > div {
1255
+ background-color: transparent;
1256
+ }
1257
+ }
1258
+
1259
+ .rsssl-ssllabs .rsssl-ssl-test-grade {
1260
+ text-align: center;
1261
+ display: flex;
1262
+ align-items: center;
1263
+ justify-content: center;
1264
+ font-size: var(--rsp-fs-900);
1265
+ font-weight: 700;
1266
+ border-radius: 8px;
1267
+ }
1268
+
1269
+ .rsssl-ssllabs .rsssl-ssl-test-grade.rsssl-grade-inactive {
1270
+ display: flex;
1271
+ }
1272
+
1273
+ .rsssl-ssllabs .rsssl-ssl-test-grade.rsssl-grade-inactive div {
1274
+ width: 20px;
1275
+ height: 8px;
1276
+ margin: auto auto;
1277
+ background-color: var(--rsp-black);
1278
+ border-radius: 50px;
1279
+ }
1280
+
1281
+ .rsssl-ssllabs .rsssl-ssl-test-information {
1282
+ padding: 10px 0;
1283
+ max-width: 50%;
1284
+ border-radius: var(--rsp-border-radius);
1285
+ }
1286
+
1287
+ .rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container {
1288
+ display: flex;
1289
+ }
1290
+
1291
+ .rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet {
1292
+ white-space: nowrap;
1293
+ padding: 0 8px;
1294
+ font-size: var(--rsp-fs-100);
1295
+ margin: 5px 10px;
1296
+ border-radius: 3px;
1297
+ color: var(--rsp-text-color);
1298
+ }
1299
+
1300
+ .rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet.rsssl-test-inactive {
1301
+ background-color: var(--rsp-grey-200);
1302
+ color: var(--rsp-color-disabled);
1303
+ }
1304
+
1305
+ .rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet.rsssl-test-processing {
1306
+ background-color: var(--rsp-yellow);
1307
+ color: var(--rsp-black);
1308
+ }
1309
+
1310
+ .rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet.rsssl-test-success {
1311
+ background-color: var(--rsp-color-success);
1312
+ color: var(--rsp-text-color-white);
1313
+ }
1314
+
1315
+ .rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet.rsssl-test-error {
1316
+ background-color: var(--rsp-brand-primary);
1317
+ color: var(--rsp-black);
1318
+ }
1319
+
1320
+ .rsssl-ssllabs .rsssl-details {
1321
+ margin: var(--rsp-spacing-m);
1322
+ display: flex;
1323
+ }
1324
+
1325
+ .rsssl-ssllabs .rsssl-details .rsssl-detail-icon {
1326
+ width: 30px;
1327
+ }
1328
+
1329
+ .rsssl-ssllabs .rsssl-details .rsssl-detail-icon .rsssl-icon {
1330
+ margin-top: 2px;
1331
+ }
1332
+
1333
+ .rsssl-ssllabs .rsssl-details .rsssl-status-red {
1334
+ color: var(--rsp-red);
1335
+ }
1336
+
1337
+ @media only screen and (max-width: 1599px) and (min-width: 1280px) {
1338
+ .rsssl-ssllabs .rsssl-details {
1339
+ margin: var(--rsp-spacing-s);
1340
+ }
1341
+ }
1342
+
1343
+ .rsssl-ssllabs .rsssl-details + .rsssl-details {
1344
+ margin-top: 0;
1345
+ }
1346
+
1347
+ .rsssl-gridblock-progress-container.rsssl-error .rsssl-gridblock-progress {
1348
+ background: var(--rsp-color-warning);
1349
+ }
1350
+
1351
+ .rsssl-gridblock-progress-container.rsssl-inactive {
1352
+ height: 4px;
1353
+ width: 100%;
1354
+ display: flex;
1355
+ background: var(--rsp-grey-300);
1356
+ }
1357
+
1358
+ .rsssl-gridblock-progress-container.rsssl-inactive .rsssl-gridblock-progress {
1359
+ transition: width 1s ease-in-out;
1360
+ background: var(--rsp-green);
1361
+ }
1362
+
1363
+ .rsssl-placeholder {
1364
+ box-sizing: border-box;
1365
+ width: 100%;
1366
+ text-align: left;
1367
+ margin: 0;
1368
+ padding-bottom: 24px;
1369
+ color: #1e1e1e;
1370
+ -moz-font-smoothing: subpixel-antialiased;
1371
+ -webkit-font-smoothing: subpixel-antialiased;
1372
+ border-radius: 2px;
1373
+ background-color: #fff;
1374
+ flex-grow: 100;
1375
+ }
1376
+
1377
+ .rsssl-placeholder .rsssl-placeholder-line {
1378
+ float: left;
1379
+ width: 100%;
1380
+ height: 16px;
1381
+ margin-top: 12px;
1382
+ border-radius: 7px;
1383
+ background-image: linear-gradient(90deg, #ddd 0px, #e8e8e8 40px, #ddd 80px);
1384
+ background-size: 600px;
1385
+ animation: shine-lines 1.6s infinite linear;
1386
+ }
1387
+
1388
+ .rsssl-placeholder .rsssl-placeholder-line:last-of-type {
1389
+ margin-bottom: 24px;
1390
+ }
1391
+
1392
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(1) {
1393
+ width: 69%;
1394
+ }
1395
+
1396
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(2) {
1397
+ width: 73%;
1398
+ }
1399
+
1400
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(3) {
1401
+ width: 87%;
1402
+ }
1403
+
1404
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(4) {
1405
+ width: 61%;
1406
+ }
1407
+
1408
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(5) {
1409
+ width: 97%;
1410
+ }
1411
+
1412
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(6) {
1413
+ width: 89%;
1414
+ }
1415
+
1416
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(7) {
1417
+ width: 84%;
1418
+ }
1419
+
1420
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(8) {
1421
+ width: 69%;
1422
+ }
1423
+
1424
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(9) {
1425
+ width: 86%;
1426
+ }
1427
+
1428
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(10) {
1429
+ width: 84%;
1430
+ }
1431
+
1432
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(11) {
1433
+ width: 69%;
1434
+ }
1435
+
1436
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(12) {
1437
+ width: 70%;
1438
+ }
1439
+
1440
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(13) {
1441
+ width: 92%;
1442
+ }
1443
+
1444
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(14) {
1445
+ width: 98%;
1446
+ }
1447
+
1448
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(15) {
1449
+ width: 98%;
1450
+ }
1451
+
1452
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(16) {
1453
+ width: 93%;
1454
+ }
1455
+
1456
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(17) {
1457
+ width: 75%;
1458
+ }
1459
+
1460
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(18) {
1461
+ width: 99%;
1462
+ }
1463
+
1464
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(19) {
1465
+ width: 64%;
1466
+ }
1467
+
1468
+ .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(20) {
1469
+ width: 100%;
1470
+ }
1471
+
1472
+ .rsssl-placeholder .rsssl-placeholder-line ~ .rsssl-placeholder-line {
1473
+ background-color: #ddd;
1474
+ }
1475
+
1476
+ @keyframes shine-lines {
1477
+ 0% {
1478
+ background-position: -400px;
1479
+ }
1480
+
1481
+ 100% {
1482
+ background-position: 220px;
1483
+ }
1484
+ }
1485
+
1486
+ .rsssl .rsssl-other-plugins .rsssl-placeholder {
1487
+ background-color: transparent;
1488
+ }
1489
+
1490
+ .rsssl .rsssl-other-plugins .rsp-logo img {
1491
+ height: 20px;
1492
+ }
1493
+
1494
+ .rsssl .rsssl-other-plugins-container {
1495
+ display: flex !important;
1496
+ flex-direction: row;
1497
+ flex-wrap: wrap;
1498
+ margin-bottom: 10px;
1499
+ font-size: var(--rsp-fs-300);
1500
+ line-height: 1.7;
1501
+ gap: var(--rsp-spacing-xxs);
1502
+ }
1503
+
1504
+ @media screen and (max-width: 992px) {
1505
+ .rsssl .rsssl-other-plugins-container {
1506
+ flex-direction: row;
1507
+ overflow: hidden;
1508
+ }
1509
+ }
1510
+
1511
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element {
1512
+ width: 100%;
1513
+ display: flex;
1514
+ align-content: space-between;
1515
+ justify-content: space-between;
1516
+ gap: 10px;
1517
+ --rsp-other-plugins-color: var(---rsp-brand-primary);
1518
+ }
1519
+
1520
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-zip-recipes {
1521
+ --rsp-other-plugins-color: var(--rsp-pink);
1522
+ }
1523
+
1524
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-burst-statistics {
1525
+ --rsp-other-plugins-color: var(--rsp-green);
1526
+ }
1527
+
1528
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-complianz-gdpr {
1529
+ --rsp-other-plugins-color: var(--rsp-blue);
1530
+ }
1531
+
1532
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-complianz-terms-conditions {
1533
+ --rsp-other-plugins-color: var(--rsp-black);
1534
+ }
1535
+
1536
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-really-simple-ssl {
1537
+ --rsp-other-plugins-color: var(--rsp-yellow);
1538
+ }
1539
+
1540
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a {
1541
+ width: max-content;
1542
+ color: var(--rsp-text-color-light);
1543
+ transition: color 0.3s ease;
1544
+ display: flex;
1545
+ align-items: center;
1546
+ min-width: 0;
1547
+ gap: var(--rsp-spacing-xs);
1548
+ text-decoration: none;
1549
+ }
1550
+
1551
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover {
1552
+ color: var(--rsp-other-plugins-color);
1553
+ text-decoration: underline;
1554
+ }
1555
+
1556
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover .rsssl-bullet {
1557
+ background-color: var(--rsp-other-plugins-color);
1558
+ }
1559
+
1560
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover .rsssl-other-plugins-content {
1561
+ text-decoration: underline;
1562
+ }
1563
+
1564
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-bullet {
1565
+ transition: background-color 0.3s ease;
1566
+ background-color: var(--rsp-other-plugins-color);
1567
+ }
1568
+
1569
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-other-plugins-content {
1570
+ white-space: nowrap;
1571
+ overflow: hidden;
1572
+ text-overflow: ellipsis;
1573
+ }
1574
+
1575
+ .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-other-plugin-status {
1576
+ min-width: fit-content;
1577
+ }
1578
+
1579
+ .rsssl-tips_tricks .rsssl-grid-item-header .rsssl-grid-item-controls {
1580
+ height: 28px;
1581
+ }
1582
+
1583
+ .rsssl-tips-tricks-container {
1584
+ display: flex !important;
1585
+ flex-direction: row;
1586
+ flex-wrap: wrap;
1587
+ margin-bottom: 10px;
1588
+ font-size: var(--rsp-fs-300);
1589
+ line-height: 1.7;
1590
+ gap: var(--rsp-spacing-xxs);
1591
+ }
1592
+
1593
+ @media screen and (max-width: 992px) {
1594
+ .rsssl-tips-tricks-container {
1595
+ flex-direction: row;
1596
+ overflow: hidden;
1597
+ }
1598
+ }
1599
+
1600
+ .rsssl-tips-tricks-container .rsssl-tips-tricks-element {
1601
+ width: calc(50% - var(--rsp-spacing-xxs));
1602
+ }
1603
+
1604
+ @media (max-width: 782px) {
1605
+ .rsssl-tips-tricks-container .rsssl-tips-tricks-element {
1606
+ width: 100%;
1607
+ }
1608
+ }
1609
+
1610
+ .rsssl-tips-tricks-container .rsssl-tips-tricks-element a {
1611
+ color: var(--rsp-text-color-light);
1612
+ transition: color 0.3s ease;
1613
+ display: flex;
1614
+ align-items: center;
1615
+ gap: var(--rsp-spacing-xs);
1616
+ min-width: 0;
1617
+ /* or some value */
1618
+ text-decoration: none;
1619
+ }
1620
+
1621
+ .rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover {
1622
+ color: var(--rsp-brand-primary);
1623
+ text-decoration: underline;
1624
+ }
1625
+
1626
+ .rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover svg path {
1627
+ fill: var(--rsp-brand-primary);
1628
+ }
1629
+
1630
+ .rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover .rsssl-tips-tricks-content {
1631
+ text-decoration: underline;
1632
+ }
1633
+
1634
+ .rsssl-tips-tricks-container .rsssl-tips-tricks-element .rsssl-bullet {
1635
+ transition: background-color 0.3s ease;
1636
+ background-color: var(--rsp-grey-300);
1637
+ }
1638
+
1639
+ .rsssl-tips-tricks-container .rsssl-tips-tricks-element .rsssl-tips-tricks-content {
1640
+ white-space: nowrap;
1641
+ overflow: hidden;
1642
+ text-overflow: ellipsis;
1643
+ }
1644
+
1645
+ .rsssl div[class^=rsssl-wizard-] .rsssl-helplink {
1646
+ color: var(--rsp-text-color);
1647
+ }
1648
+
1649
+ .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item {
1650
+ position: relative;
1651
+ margin-bottom: var(--rsp-grid-gap);
1652
+ }
1653
+
1654
+ @media (max-width: 1080px) {
1655
+ .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item {
1656
+ grid-column: span 4;
1657
+ }
1658
+ }
1659
+
1660
+ .rsssl div[class^=rsssl-wizard-].rsssl-column-2 {
1661
+ grid-column: span 2;
1662
+ }
1663
+
1664
+ @media (max-width: 1080px) {
1665
+ .rsssl div[class^=rsssl-wizard-].rsssl-column-2 {
1666
+ grid-column: span 4;
1667
+ }
1668
+ }
1669
+
1670
+ .rsssl div[class^=rsssl-wizard-] .rsssl-locked {
1671
+ position: absolute;
1672
+ z-index: 10;
1673
+ top: 0;
1674
+ left: 0;
1675
+ bottom: 0;
1676
+ right: 0;
1677
+ background: rgba(255, 255, 255, 0.8);
1678
+ border-radius: var(--rsp-border-radius);
1679
+ }
1680
+
1681
+ .rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-shield-overlay {
1682
+ height: 0;
1683
+ top: calc(100% - 190px);
1684
+ position: relative;
1685
+ align-items: center;
1686
+ justify-content: center;
1687
+ display: flex;
1688
+ }
1689
+
1690
+ .rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay {
1691
+ z-index: 1;
1692
+ top: calc(100% - 95px);
1693
+ position: relative;
1694
+ display: flex;
1695
+ align-items: center;
1696
+ gap: var(--rsp-spacing-s);
1697
+ background-color: var(--rsp-white);
1698
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
1699
+ border-radius: var(--rsp-border-radius-input);
1700
+ margin: var(--rsp-spacing-s);
1701
+ box-shadow: var(--rsp-box-shadow);
1702
+ }
1703
+
1704
+ @media screen and (max-width: 1280px) {
1705
+ .rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay {
1706
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
1707
+ }
1708
+ }
1709
+
1710
+ @media screen and (max-width: 1080px) {
1711
+ .rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay {
1712
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
1713
+ }
1714
+ }
1715
+
1716
+ .rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay .rsssl-open {
1717
+ float: left;
1718
+ margin-right: 12px;
1719
+ }
1720
+
1721
+ .rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay .rsssl-progress-status {
1722
+ float: left;
1723
+ margin-right: 20px;
1724
+ }
1725
+
1726
+ .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer {
1727
+ justify-content: flex-end;
1728
+ padding: 0;
1729
+ display: flex;
1730
+ flex-wrap: wrap;
1731
+ align-items: center;
1732
+ gap: var(--rsp-grid-margin);
1733
+ width: 100%;
1734
+ min-height: 20px;
1735
+ box-sizing: border-box;
1736
+ align-self: flex-end;
1737
+ }
1738
+
1739
+ .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer .rsssl-legend {
1740
+ display: flex;
1741
+ }
1742
+
1743
+ .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer .rsssl-legend span {
1744
+ padding-left: 5px;
1745
+ }
1746
+
1747
+ .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer:empty {
1748
+ display: none;
1749
+ }
1750
+
1751
+ .rsssl-wizard-help {
1752
+ display: flex;
1753
+ flex-wrap: wrap;
1754
+ align-content: flex-start;
1755
+ gap: var(--rsp-spacing-xs);
1756
+ }
1757
+
1758
+ .rsssl-wizard-help details {
1759
+ font-size: var(--rsp-fs-200);
1760
+ }
1761
+
1762
+ .rsssl-wizard-help details .rsssl-help-more-info {
1763
+ display: flex;
1764
+ flex-direction: row;
1765
+ margin-top: 12px;
1766
+ }
1767
+
1768
+ .rsssl-wizard-help details summary {
1769
+ display: grid;
1770
+ grid-template-columns: 1fr auto;
1771
+ justify-content: space-between;
1772
+ font-size: var(--rsp-fs-300);
1773
+ font-weight: 600;
1774
+ cursor: pointer;
1775
+ }
1776
+
1777
+ .rsssl-wizard-help details summary::-webkit-details-marker {
1778
+ display: none;
1779
+ }
1780
+
1781
+ .rsssl-wizard-help details summary:first-of-type {
1782
+ list-style-type: none;
1783
+ }
1784
+
1785
+ .rsssl-wizard-help details summary .rsssl-icon {
1786
+ transition: all 0.3s ease-in-out;
1787
+ transform: rotate(0deg);
1788
+ }
1789
+
1790
+ .rsssl-wizard-help code {
1791
+ white-space: pre-line;
1792
+ display: block;
1793
+ }
1794
+
1795
+ .rsssl-wizard-help summary, .rsssl-wizard-help p {
1796
+ font-size: var(--rsp-fs-200);
1797
+ }
1798
+
1799
+ .rsssl-wizard-help details[open] {
1800
+ padding: var(--rsp-spacing-s) var(--rsp-spacing-m);
1801
+ }
1802
+
1803
+ .rsssl-wizard-help details[open] summary {
1804
+ padding: 0;
1805
+ padding-bottom: var(--rsp-spacing-xs);
1806
+ }
1807
+
1808
+ .rsssl-wizard-help details[open] summary .rsssl-icon {
1809
+ transform: rotate(180deg);
1810
+ }
1811
+
1812
+ .rsssl-wizard-help .rsssl-help-header {
1813
+ width: 100%;
1814
+ display: flex;
1815
+ padding: 10px;
1816
+ }
1817
+
1818
+ .rsssl-wizard-help .rsssl-help-header .rsssl-help-title {
1819
+ font-size: 18px;
1820
+ }
1821
+
1822
+ .rsssl-wizard-help .rsssl-help-header .rsssl-help-control {
1823
+ margin-left: auto;
1824
+ cursor: pointer;
1825
+ }
1826
+
1827
+ .rsssl-wizard-help-notice {
1828
+ width: 100%;
1829
+ background: var(--rsp-background-block-color);
1830
+ box-shadow: var(--rsp-box-shadow);
1831
+ border-radius: var(--rsp-border-radius);
1832
+ border-radius: var(--rsp-border-radius-s);
1833
+ height: fit-content;
1834
+ background-color: var(--rsp-dark-blue-faded);
1835
+ }
1836
+
1837
+ .rsssl-wizard-help-notice.rsssl-warning {
1838
+ background-color: var(--rsp-yellow-faded);
1839
+ }
1840
+
1841
+ .rsssl-wizard-help-notice summary, .rsssl-wizard-help-notice p {
1842
+ padding: var(--rsp-spacing-s) var(--rsp-spacing-m);
1843
+ }
1844
+
1845
+ .rsssl-wizard-menu {
1846
+ height: fit-content;
1847
+ }
1848
+
1849
+ .rsssl-wizard-menu .rsssl-grid-item-content {
1850
+ padding: 0;
1851
+ padding-bottom: var(--rsp-spacing-l);
1852
+ }
1853
+
1854
+ .rsssl-wizard-menu-items .rsssl-menu-item a {
1855
+ display: flex;
1856
+ align-items: center;
1857
+ gap: var(--rsp-spacing-xs);
1858
+ text-decoration: none;
1859
+ color: var(--rsp-text-color);
1860
+ font-size: var(--rsp-fs-400);
1861
+ padding-block: var(--rsp-spacing-xs);
1862
+ padding-inline: var(--rsp-spacing-l);
1863
+ transition: all 0.2s ease-in-out;
1864
+ border-left: 4px solid transparent;
1865
+ }
1866
+
1867
+ @media screen and (max-width: 1280px) {
1868
+ .rsssl-wizard-menu-items .rsssl-menu-item a {
1869
+ padding-inline: var(--rsp-spacing-m);
1870
+ }
1871
+ }
1872
+
1873
+ @media screen and (max-width: 1080px) {
1874
+ .rsssl-wizard-menu-items .rsssl-menu-item a {
1875
+ padding-inline: var(--rsp-spacing-s);
1876
+ }
1877
+ }
1878
+
1879
+ .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-active > a {
1880
+ color: var(--rsp-dark-blue);
1881
+ font-weight: 600;
1882
+ border-left: 4px solid var(--rsp-dark-blue);
1883
+ }
1884
+
1885
+ .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a {
1886
+ font-weight: 600;
1887
+ flex-wrap: wrap;
1888
+ }
1889
+
1890
+ .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a .rsssl-menu-item-featured-pill {
1891
+ background: var(--rsp-green);
1892
+ color: var(--rsp-text-color-white);
1893
+ padding: 2px 9px;
1894
+ border-radius: var(--rsp-border-radius);
1895
+ font-size: var(--rsp-fs-100);
1896
+ }
1897
+
1898
+ .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-premium a {
1899
+ background: var(--rsp-dark-blue-faded);
1900
+ flex-wrap: wrap;
1901
+ }
1902
+
1903
+ .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-premium a .rsssl-menu-item-featured-pill {
1904
+ background: var(--rsp-dark-blue);
1905
+ color: var(--rsp-text-color-white);
1906
+ padding: 2px 9px;
1907
+ border-radius: var(--rsp-border-radius);
1908
+ font-size: var(--rsp-fs-100);
1909
+ }
1910
+
1911
+ .rsssl-wizard-menu-items .rsssl-premium-menu-item {
1912
+ background: var(--rsp-dark-blue-faded);
1913
+ }
1914
+
1915
+ .rsssl-wizard-menu-items .rsssl-premium-menu-item div {
1916
+ display: flex;
1917
+ align-items: center;
1918
+ gap: var(--rsp-spacing-xs);
1919
+ text-decoration: none;
1920
+ color: var(--rsp-text-color);
1921
+ font-size: var(--rsp-fs-400);
1922
+ padding-block: var(--rsp-spacing-xs);
1923
+ padding-inline: var(--rsp-spacing-l);
1924
+ transition: all 0.2s ease-in-out;
1925
+ border-left: 4px solid transparent;
1926
+ }
1927
+
1928
+ @media screen and (max-width: 1280px) {
1929
+ .rsssl-wizard-menu-items .rsssl-premium-menu-item div {
1930
+ padding-inline: var(--rsp-spacing-m);
1931
+ }
1932
+ }
1933
+
1934
+ @media screen and (max-width: 1080px) {
1935
+ .rsssl-wizard-menu-items .rsssl-premium-menu-item div {
1936
+ padding-inline: var(--rsp-spacing-s);
1937
+ }
1938
+ }
1939
+
1940
+ .rsssl-wizard-menu-items .rsssl-submenu-item a {
1941
+ padding-left: calc(var(--rsp-spacing-l) + var(--rsp-spacing-m));
1942
+ font-size: var(--rsp-fs-300);
1943
+ }
1944
+
1945
+ .rsssl div[class^=rsssl-wizard-] .components-flex {
1946
+ display: flex;
1947
+ flex-direction: row;
1948
+ align-items: center;
1949
+ justify-content: space-between;
1950
+ }
1951
+
1952
+ .rsssl div[class^=rsssl-wizard-] .components-flex .components-flex-item label {
1953
+ margin: 0;
1954
+ }
1955
+
1956
+ .rsssl div[class^=rsssl-wizard-] .components-flex .components-input-control__container {
1957
+ max-width: max-content;
1958
+ }
1959
+
1960
+ .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-content label {
1961
+ font-size: var(--rsp-fs-300);
1962
+ font-weight: 400;
1963
+ line-height: 1.5;
1964
+ text-transform: unset;
1965
+ box-sizing: border-box;
1966
+ display: inherit;
1967
+ max-width: 100%;
1968
+ z-index: 1;
1969
+ overflow: hidden;
1970
+ text-overflow: ellipsis;
1971
+ white-space: nowrap;
1972
+ }
1973
+
1974
+ .rsssl div[class^=rsssl-wizard-] .components-base-control__field {
1975
+ margin-bottom: 0;
1976
+ }
1977
+
1978
+ .rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-base-control__field, .rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-flex {
1979
+ display: flex;
1980
+ flex-direction: row-reverse;
1981
+ align-items: center;
1982
+ justify-content: space-between;
1983
+ }
1984
+
1985
+ .rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-base-control__field .components-form-toggle, .rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-flex .components-form-toggle {
1986
+ margin-right: 0;
1987
+ }
1988
+
1989
+ .rsssl div[class^=rsssl-wizard-] .components-form-toggle.is-checked .components-form-toggle__track {
1990
+ background-color: var(--rsp-green);
1991
+ }
1992
+
1993
+ .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item .rsssl-grid-item-content {
1994
+ padding: var(--rsp-spacing-xs) 0;
1995
+ }
1996
+
1997
+ .rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap, .rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro {
1998
+ padding-block: var(--rsp-spacing-s);
1999
+ padding-inline: var(--rsp-spacing-l);
2000
+ overflow: hidden;
2001
+ }
2002
+
2003
+ @media screen and (max-width: 1280px) {
2004
+ .rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap, .rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro {
2005
+ padding-inline: var(--rsp-spacing-m);
2006
+ }
2007
+ }
2008
+
2009
+ @media screen and (max-width: 1080px) {
2010
+ .rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap, .rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro {
2011
+ padding-inline: var(--rsp-spacing-s);
2012
+ }
2013
+ }
2014
+
2015
+ .rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap > .rsssl-field-wrap, .rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro > .rsssl-field-wrap {
2016
+ padding: 0;
2017
+ }
2018
+
2019
+ .rsssl div[class^=rsssl-wizard-] .rsssl-field-button {
2020
+ display: flex;
2021
+ justify-content: space-between;
2022
+ flex-wrap: wrap;
2023
+ align-items: center;
2024
+ }
2025
+
2026
+ .rsssl .rsssl-highlight {
2027
+ background-color: transparent;
2028
+ border-left: 4px solid var(--rsp-green);
2029
+ -o-animation: fadeIt 3s ease-in-out;
2030
+ animation: fadeIt 3s ease-in-out;
2031
+ }
2032
+
2033
+ @-o-keyframes fadeIt {
2034
+ 0% {
2035
+ background-color: transparent;
2036
+ }
2037
+
2038
+ 30% {
2039
+ background-color: var(--rsp-green-faded);
2040
+ }
2041
+
2042
+ 100% {
2043
+ border-right: 0;
2044
+ background-color: inherit;
2045
+ }
2046
+ }
2047
+
2048
+ @keyframes fadeIt {
2049
+ 0% {
2050
+ background-color: transparent;
2051
+ border-right: 0;
2052
+ }
2053
+
2054
+ 30% {
2055
+ background-color: var(--rsp-green-faded);
2056
+ }
2057
+
2058
+ 100% {
2059
+ background-color: inherit;
2060
+ }
2061
+ }
2062
+
2063
+ .rsssl-license .rsssl-task-element {
2064
+ padding-top: var(--rsp-spacing-s);
2065
+ padding-bottom: 0;
2066
+ }
2067
+
2068
+ .rsssl-license .rsssl-license-field {
2069
+ display: flex;
2070
+ }
2071
+
2072
+ .rsssl .components-snackbar-list.edit-site-notices {
2073
+ width: max-content;
2074
+ position: fixed;
2075
+ bottom: var(--rsp-spacing-m);
2076
+ right: var(--rsp-spacing-l);
2077
+ }
2078
+
2079
+ .rsssl .components-snackbar-list.edit-site-notices > div {
2080
+ margin-left: auto;
2081
+ }
2082
+
2083
+ .rsssl .components-snackbar-list.edit-site-notices .components-snackbar {
2084
+ background: var(--rsp-background-block-color);
2085
+ box-shadow: var(--rsp-box-shadow);
2086
+ border-radius: var(--rsp-border-radius);
2087
+ color: var(--rsp-color-success);
2088
+ background-color: #fff;
2089
+ font-weight: 700;
2090
+ font-size: 14px;
2091
+ }
2092
+
2093
+ .rsssl-mixedcontentscan .rsssl-mixed-content-placeholder {
2094
+ height: 250px;
2095
+ }
2096
+
2097
+ .rsssl-mixedcontentscan .rsssl-mixed-content-placeholder div {
2098
+ background-color: var(--rsp-grey-200);
2099
+ margin: 10px 0;
2100
+ height: 20px;
2101
+ }
2102
+
2103
+ .rsssl-mixedcontentscan .rsssl-shield-overlay {
2104
+ height: 250px;
2105
+ align-items: center;
2106
+ justify-content: center;
2107
+ display: flex;
2108
+ }
2109
+
2110
+ .rsssl-mixedcontentscan .rsssl-field-wrap .rdt_TableCol, .rsssl-mixedcontentscan .rsssl-field-wrap .rdt_TableCell {
2111
+ min-width: 80px;
2112
+ }
2113
+
2114
+ .rsssl-mixedcontentscan .rsssl-progress-container .rsssl-progress-bar {
2115
+ border-radius: 5px;
2116
+ height: 20px;
2117
+ background-color: var(--rsp-green);
2118
+ }
2119
+
2120
+ .rsssl-mixedcontentscan .rsssl-task-status, .rsssl-mixedcontentscan .rsssl-locked-overlay .rsssl-progress-status, .rsssl-locked-overlay .rsssl-mixedcontentscan .rsssl-progress-status {
2121
+ min-width: min-content;
2122
+ }
2123
+
2124
+ .rsssl-mixedcontentscan .rsssl-task-status.rsssl-warning, .rsssl-mixedcontentscan .rsssl-locked-overlay .rsssl-warning.rsssl-progress-status, .rsssl-locked-overlay .rsssl-mixedcontentscan .rsssl-warning.rsssl-progress-status {
2125
+ background-color: var(--rsp-yellow);
2126
+ color: var(--rsp-text-color);
2127
+ }
2128
+
2129
+ .rsssl-mixedcontentscan button.button {
2130
+ line-height: 1.5;
2131
+ min-height: 10px;
2132
+ }
2133
+
2134
+ .rsssl-mixedcontentscan .rsssl-grid-item-content-footer {
2135
+ display: flex;
2136
+ gap: var(--rsp-spacing-s);
2137
+ }
2138
+
2139
+ .rsssl-mixedcontentscan .rsssl-current-scan-action, .rsssl-mixedcontentscan .rsssl-mixed-content-description {
2140
+ margin: 10px 5px;
2141
+ font-size: var(--rsp-fs-300);
2142
+ }
2143
+
2144
+ .rsssl-learningmode-placeholder {
2145
+ height: 150px;
2146
+ }
2147
+
2148
+ .rsssl-learningmode-placeholder div {
2149
+ background-color: var(--rsp-grey-200);
2150
+ margin: 10px 0;
2151
+ height: 20px;
2152
+ }
2153
+
2154
+ .rsssl-learning-mode-delete {
2155
+ cursor: pointer;
2156
+ background: none;
2157
+ border: none;
2158
+ font-size: 1.5em;
2159
+ font-weight: 700;
2160
+ }
2161
+
2162
+ .rsssl-locked-overlay .rsssl-open {
2163
+ float: left;
2164
+ margin-right: 12px;
2165
+ }
2166
+
2167
+ .rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-completed, .rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-enforced {
2168
+ background-color: var(--rsp-color-success);
2169
+ color: #fff;
2170
+ }
2171
+
2172
+ .rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode {
2173
+ background-color: var(--rsp-color-open);
2174
+ }
2175
+
2176
+ .rsssl-locked-overlay .rsssl-progress-status.rsssl-disabled, .rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-disabled {
2177
+ background-color: var(--rsp-color-disabled);
2178
+ }
2179
+
2180
+ .rsssl-learning-mode-footer {
2181
+ display: flex;
2182
+ align-items: center;
2183
+ justify-content: flex-start;
2184
+ gap: var(--rsp-spacing-s);
2185
+ }
2186
+
2187
+ .rsssl-learning-mode-footer select {
2188
+ margin-left: auto;
2189
+ }
2190
+
2191
+ .rsssl-learning-mode-footer label {
2192
+ display: flex;
2193
+ align-items: center;
2194
+ }
2195
+
2196
+ .rsssl-learning-mode-footer label input {
2197
+ margin-top: 0;
2198
+ }
2199
+
2200
+ .rsssl-lets-encrypt-tests {
2201
+ margin: var(--rsp-spacing-xs) var(--rsp-spacing-xl);
2202
+ }
2203
+
2204
+ .rsssl-lets-encrypt-tests .rsssl-progress-bar {
2205
+ padding-block: 0;
2206
+ margin-bottom: var(--rsp-spacing-m);
2207
+ }
2208
+
2209
+ .rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress {
2210
+ overflow: hidden;
2211
+ height: var(--rsp-spacing-m);
2212
+ border-radius: 5px;
2213
+ background-color: var(--rsp-grey-200);
2214
+ }
2215
+
2216
+ .rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress .rsssl-bar {
2217
+ height: 100%;
2218
+ background-color: var(--rsp-color-success);
2219
+ }
2220
+
2221
+ .rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress .rsssl-bar.rsssl-orange {
2222
+ background-color: var(--rsp-color-warning);
2223
+ }
2224
+
2225
+ .rsssl-lets-encrypt-tests p {
2226
+ margin-bottom: var(--rsp-spacing-m);
2227
+ }
2228
+
2229
+ .rsssl-lets-encrypt-tests .rsssl-progress-text {
2230
+ display: flex;
2231
+ align-items: center;
2232
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
2233
+ padding-block: 0;
2234
+ padding-top: var(--rsp-spacing-xs);
2235
+ }
2236
+
2237
+ @media screen and (max-width: 1280px) {
2238
+ .rsssl-lets-encrypt-tests .rsssl-progress-text {
2239
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
2240
+ }
2241
+ }
2242
+
2243
+ @media screen and (max-width: 1080px) {
2244
+ .rsssl-lets-encrypt-tests .rsssl-progress-text {
2245
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
2246
+ }
2247
+ }
2248
+
2249
+ .rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-percentage {
2250
+ font-size: 32px;
2251
+ font-weight: 700;
2252
+ }
2253
+
2254
+ .rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-text-span {
2255
+ margin-left: 35px;
2256
+ font-size: 18px;
2257
+ font-weight: 600;
2258
+ }
2259
+
2260
+ .rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-text-span a {
2261
+ margin-left: 3px;
2262
+ }
2263
+
2264
+ .rsssl-lets-encrypt-tests ul li {
2265
+ display: flex;
2266
+ margin-bottom: 15px;
2267
+ /*Nested li */
2268
+ }
2269
+
2270
+ .rsssl-lets-encrypt-tests ul li .rsssl-icon {
2271
+ margin-right: 7px;
2272
+ }
2273
+
2274
+ .rsssl-lets-encrypt-tests ul li ul li:before {
2275
+ background-color: var(--rsp-grey-500);
2276
+ color: #fff;
2277
+ height: 6px;
2278
+ width: 6px;
2279
+ border-radius: 50%;
2280
+ content: "";
2281
+ position: absolute;
2282
+ margin-top: 7px;
2283
+ margin-left: -19px;
2284
+ }
2285
+
2286
+ .rsssl-lets-encrypt-tests .rsssl-test-results ul li {
2287
+ display: block;
2288
+ }
2289
+
2290
+ .rsssl-lets-encrypt-tests .rsssl-test-results h4 {
2291
+ margin: var(--rsp-spacing-m) 0;
2292
+ }
2293
+
2294
+ .rsssl-lets-encrypt-tests .rsssl-test-results a + button {
2295
+ margin-left: var(--rsp-spacing-m);
2296
+ }
2297
+
2298
+ .rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-certificate-data {
2299
+ display: none;
2300
+ }
2301
+
2302
+ .rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div {
2303
+ display: flex;
2304
+ flex-direction: row;
2305
+ }
2306
+
2307
+ .rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div .rsssl-dns-domain, .rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div .rsssl-dns-field {
2308
+ margin-right: var(--rsp-spacing-m);
2309
+ width: 50%;
2310
+ }
2311
+
2312
+ .rsssl-lets-encrypt-tests .rsssl-modal-content-step-footer {
2313
+ display: flex;
2314
+ align-items: center;
2315
+ margin-top: var(--rsp-spacing-l);
2316
+ gap: var(--rsp-spacing-m);
2317
+ }
2318
+
2319
+ .rsssl-lets-encrypt-tests .rsssl-modal-content-step-footer .components-toggle-control .components-base-control__field {
2320
+ margin: 0;
2321
+ flex-direction: initial;
2322
+ }
2323
+
2324
+ .rsssl-lets-encrypt-tests .rsssl-modal-content-step-footer .components-toggle-control .components-base-control__field .components-toggle-control__label {
2325
+ margin-right: 12px;
2326
+ }
2327
+
2328
+ .rsssl-lets-encrypt-tests .rsssl-modal-subtitle {
2329
+ display: none;
2330
+ }
2331
+
2332
+ .rsssl div[class^=rsssl-wizard-] .rsssl-permissions_policy .rsssl-locked .rsssl-shield-overlay {
2333
+ top: calc(100% - 300px);
2334
+ }
2335
+
2336
+ /**
2337
+ Admin notice
2338
+ */
2339
+ .rsssl-field-wrap .rdt_TableCol, .rsssl-field-wrap .rdt_TableCell {
2340
+ min-width: 50px;
2341
+ }
2342
+
2343
+ .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child {
2344
+ flex-grow: 0;
2345
+ flex-direction: row-reverse;
2346
+ }
2347
+
2348
+ .rsssl-field-wrap .rdt_TableRow {
2349
+ padding: var(--rsp-spacing-xs) 0;
2350
+ }
2351
+
2352
+ .rsssl-field-wrap .rdt_TableRow:nth-child(odd) {
2353
+ background-color: var(--rsp-grey-200);
2354
+ }
2355
+
2356
+ .rsssl-field-wrap .rdt_TableRow .rdt_TableCell:last-child {
2357
+ flex-grow: 0;
2358
+ }
2359
+
2360
+ .rsssl-field-wrap .rdt_TableRow .rsssl-status-allowed, .rsssl-field-wrap .rdt_TableRow .rsssl-status-revoked {
2361
+ min-width: 110px;
2362
+ margin-right: 20px;
2363
+ }
2364
+
2365
+ .rsssl-field-wrap .rsssl-csp-revoked > div:nth-child(-n+3) {
2366
+ opacity: 0.3;
2367
+ }
2368
+
2369
+ .rsssl-content_security_policy .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child {
2370
+ flex-grow: 0;
2371
+ min-width: initial;
2372
+ }
2373
+
2374
+ .rsssl-content_security_policy .rsssl-field-wrap .rdt_TableRow .rdt_TableCell:last-child {
2375
+ flex-grow: 0;
2376
+ min-width: initial;
2377
+ }
2378
+
2379
+ .rsssl-content_security_policy .rsssl-field-wrap .rsssl-csp-revoked > div:nth-child(-n+3) {
2380
+ opacity: 0.3;
2381
+ }
2382
+
2383
+ nav.rdt_Pagination > div > svg {
2384
+ display: none !important;
2385
+ }
2386
+
2387
+ .rsssl-content_security_policy .rsssl-field-wrap > div > div, .rsssl-xml_rpc .rsssl-field-wrap > div > div {
2388
+ overflow-x: inherit;
2389
+ overflow-y: inherit;
2390
+ }
2391
+
2392
+ .rsssl-permissions_policy .rdt_TableRow .rdt_TableCell:last-child {
2393
+ min-width: fit-content;
2394
+ }
2395
+
2396
+ .rsssl-permissions_policy .rdt_TableRow .rdt_TableCell:last-child .components-input-control__container {
2397
+ min-width: fit-content;
2398
+ }
2399
+
2400
+ .rsssl-mixed-content-datatable > div > div {
2401
+ display: flex;
2402
+ }
2403
+
2404
+ .rsssl .rsssl-new-features-block .rsssl-grid-item-content {
2405
+ display: flex;
2406
+ flex-direction: column;
2407
+ justify-content: space-between;
2408
+ }
2409
+
2410
+ .rsssl .rsssl-new-features {
2411
+ display: flex;
2412
+ flex-direction: row;
2413
+ flex-wrap: wrap;
2414
+ gap: var(--rsp-spacing-xs);
2415
+ }
2416
+
2417
+ @media only screen and (max-width: 1599px) and (min-width: 1280px) {
2418
+ .rsssl .rsssl-new-features {
2419
+ gap: var(--rsp-spacing-xxs);
2420
+ }
2421
+ }
2422
+
2423
+ .rsssl .rsssl-new-feature {
2424
+ width: 100%;
2425
+ color: var(--rsp-text-color-light);
2426
+ display: flex;
2427
+ align-items: flex-start;
2428
+ min-width: 0;
2429
+ gap: var(--rsp-spacing-xs);
2430
+ text-decoration: none;
2431
+ }
2432
+
2433
+ .rsssl .rsssl-new-feature .rsssl-icon {
2434
+ margin-top: 2px;
2435
+ }
2436
+
2437
+ .rsssl .rsssl-new-feature .rsssl-new-feature-desc p {
2438
+ font-size: var(--rsp-fs-300);
2439
+ }
2440
+
2441
+ /* rsssl-rsssl-tooltip for settings page */
2442
+ /* Base styles for the element that has a rsssl-tooltip */
2443
+ [data-rsssl-tooltip],
2444
+ .rsssl-tooltip {
2445
+ position: relative;
2446
+ cursor: pointer;
2447
+ }
2448
+
2449
+ /* Base styles for the entire tooltip */
2450
+ [data-rsssl-tooltip]:before,
2451
+ [data-rsssl-tooltip]:after,
2452
+ .rsssl-tooltip:before,
2453
+ .rsssl-tooltip:after {
2454
+ position: absolute;
2455
+ visibility: hidden;
2456
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
2457
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
2458
+ opacity: 0;
2459
+ -webkit-transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, -webkit-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
2460
+ -moz-transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, -moz-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
2461
+ transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
2462
+ -webkit-transform: translate3d(0, 0, 0);
2463
+ -moz-transform: translate3d(0, 0, 0);
2464
+ transform: translate3d(0, 0, 0);
2465
+ pointer-events: none;
2466
+ }
2467
+
2468
+ /* Show the entire rsssl-tooltip on hover and focus */
2469
+ [data-rsssl-tooltip]:hover:before,
2470
+ [data-rsssl-tooltip]:hover:after,
2471
+ [data-rsssl-tooltip]:focus:before,
2472
+ [data-rsssl-tooltip]:focus:after,
2473
+ .rsssl-tooltip:hover:before,
2474
+ .rsssl-tooltip:hover:after,
2475
+ .rsssl-tooltip:focus:before,
2476
+ .rsssl-tooltip:focus:after {
2477
+ visibility: visible;
2478
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
2479
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
2480
+ opacity: 1;
2481
+ }
2482
+
2483
+ /* Base styles for the rsssl-tooltip's directional arrow */
2484
+ .rsssl-tooltip:before,
2485
+ [data-rsssl-tooltip]:before {
2486
+ z-index: 1001;
2487
+ border: 6px solid transparent;
2488
+ background: transparent;
2489
+ content: "";
2490
+ }
2491
+
2492
+ /* Base styles for the rsssl-tooltip's content area */
2493
+ .rsssl-tooltip:after,
2494
+ [data-rsssl-tooltip]:after {
2495
+ z-index: 1000;
2496
+ padding: 8px;
2497
+ width: 220px;
2498
+ background-color: #000;
2499
+ background-color: hsla(0deg, 0%, 20%, 0.9);
2500
+ color: #fff;
2501
+ content: attr(data-rsssl-tooltip);
2502
+ font-size: 14px;
2503
+ line-height: 1.2;
2504
+ }
2505
+
2506
+ /* Directions */
2507
+ /* Top (default) */
2508
+ .rsssl-tooltip-right {
2509
+ font-weight: normal;
2510
+ }
2511
+
2512
+ [data-rsssl-tooltip]:before,
2513
+ [data-rsssl-tooltip]:after,
2514
+ .rsssl-tooltip:before,
2515
+ .rsssl-tooltip:after,
2516
+ .rsssl-tooltip-top:before,
2517
+ .rsssl-tooltip-top:after {
2518
+ bottom: 100%;
2519
+ left: 50%;
2520
+ }
2521
+
2522
+ [data-rsssl-tooltip]:before,
2523
+ .rsssl-tooltip:before,
2524
+ .rsssl-tooltip-top:before {
2525
+ margin-left: -6px;
2526
+ margin-bottom: -12px;
2527
+ border-top-color: #000;
2528
+ border-top-color: hsla(0deg, 0%, 20%, 0.9);
2529
+ }
2530
+
2531
+ /* Horizontally align top/bottom rsssl-tooltips */
2532
+ [data-rsssl-tooltip]:after,
2533
+ .rsssl-tooltip:after,
2534
+ .rsssl-tooltip-top:after {
2535
+ margin-left: -80px;
2536
+ }
2537
+
2538
+ [data-rsssl-tooltip]:hover:before,
2539
+ [data-rsssl-tooltip]:hover:after,
2540
+ [data-rsssl-tooltip]:focus:before,
2541
+ [data-rsssl-tooltip]:focus:after,
2542
+ .rsssl-tooltip:hover:before,
2543
+ .rsssl-tooltip:hover:after,
2544
+ .rsssl-tooltip:focus:before,
2545
+ .rsssl-tooltip:focus:after,
2546
+ .rsssl-tooltip-top:hover:before,
2547
+ .rsssl-tooltip-top:hover:after,
2548
+ .rsssl-tooltip-top:focus:before,
2549
+ .rsssl-tooltip-top:focus:after {
2550
+ -webkit-transform: translateY(-12px);
2551
+ -moz-transform: translateY(-12px);
2552
+ transform: translateY(-12px);
2553
+ }
2554
+
2555
+ /* Left */
2556
+ .rsssl-tooltip-left:before,
2557
+ .rsssl-tooltip-left:after {
2558
+ right: 100%;
2559
+ /*bottom: 50%;*/
2560
+ left: auto;
2561
+ }
2562
+
2563
+ .rsssl-tooltip-left:before {
2564
+ margin-left: 0;
2565
+ margin-right: -12px;
2566
+ margin-bottom: 0;
2567
+ border-top-color: transparent;
2568
+ border-left-color: #000;
2569
+ border-left-color: hsla(0deg, 0%, 20%, 0.9);
2570
+ }
2571
+
2572
+ .rsssl-tooltip-left:hover:before,
2573
+ .rsssl-tooltip-left:hover:after,
2574
+ .rsssl-tooltip-left:focus:before,
2575
+ .rsssl-tooltip-left:focus:after {
2576
+ -webkit-transform: translateX(-12px);
2577
+ -moz-transform: translateX(-12px);
2578
+ transform: translateX(-12px);
2579
+ }
2580
+
2581
+ /* Bottom */
2582
+ .rsssl-tooltip-bottom:before,
2583
+ .rsssl-tooltip-bottom:after {
2584
+ top: 100%;
2585
+ bottom: auto;
2586
+ left: 50%;
2587
+ }
2588
+
2589
+ .rsssl-tooltip-bottom:before {
2590
+ margin-top: -12px;
2591
+ margin-bottom: 0;
2592
+ border-top-color: transparent;
2593
+ border-bottom-color: #000;
2594
+ border-bottom-color: hsla(0deg, 0%, 20%, 0.9);
2595
+ }
2596
+
2597
+ .rsssl-tooltip-bottom:hover:before,
2598
+ .rsssl-tooltip-bottom:hover:after,
2599
+ .rsssl-tooltip-bottom:focus:before,
2600
+ .rsssl-tooltip-bottom:focus:after {
2601
+ -webkit-transform: translateY(12px);
2602
+ -moz-transform: translateY(12px);
2603
+ transform: translateY(12px);
2604
+ }
2605
+
2606
+ /* Right */
2607
+ .rsssl-tooltip-right:before,
2608
+ .rsssl-tooltip-right:after {
2609
+ bottom: 50%;
2610
+ left: 100%;
2611
+ }
2612
+
2613
+ .rsssl-tooltip-right:before {
2614
+ margin-bottom: 0;
2615
+ margin-left: -12px;
2616
+ border-top-color: transparent;
2617
+ border-right-color: #000;
2618
+ border-right-color: hsla(0deg, 0%, 20%, 0.9);
2619
+ }
2620
+
2621
+ .rsssl-tooltip-right:hover:before,
2622
+ .rsssl-tooltip-right:hover:after,
2623
+ .rsssl-tooltip-right:focus:before,
2624
+ .rsssl-tooltip-right:focus:after {
2625
+ -webkit-transform: translateX(12px);
2626
+ -moz-transform: translateX(12px);
2627
+ transform: translateX(12px);
2628
+ }
2629
+
2630
+ /* Move directional arrows down a bit for left/right rsssl-tooltips */
2631
+ .rsssl-tooltip-left:before,
2632
+ .rsssl-tooltip-right:before {
2633
+ top: 3px;
2634
+ }
2635
+
2636
+ /* Vertically center rsssl-tooltip content for left/right rsssl-tooltips */
2637
+ .rsssl-tooltip-left:after,
2638
+ .rsssl-tooltip-right:after {
2639
+ margin-left: 0;
2640
+ margin-bottom: -25px;
2641
+ }
2642
+
2643
+ .rsssl {
2644
+ /*skeleton*/
2645
+ /*loader*/
2646
+ }
2647
+
2648
+ .rsssl .rsssl-skeleton:empty {
2649
+ margin: auto;
2650
+ margin-bottom: 25px;
2651
+ width: 100%;
2652
+ height: 235px;
2653
+ /* change height to see repeat-y behavior */
2654
+ background-image: linear-gradient(100deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5) 70%, rgba(255, 255, 255, 0.5) 15%), linear-gradient(#f2f2f2 38px, transparent 0), linear-gradient(#f2f2f2 38px, transparent 0), linear-gradient(#f2f2f2 38px, transparent 0), linear-gradient(#f2f2f2 38px, transparent 0);
2655
+ background-repeat: repeat-y;
2656
+ background-size: 50px 200px, 100% 117px, 100% 117px, 100% 117px, 100% 117px;
2657
+ background-position: 0 0, 1px 1px, 1px 40px, 1px 79px, 1px 118px;
2658
+ background-color: #d6d8db;
2659
+ border-right: 1px solid #d6d8db;
2660
+ animation: shine 2.5s infinite;
2661
+ }
2662
+
2663
+ @keyframes shine {
2664
+ to {
2665
+ background-position: 100% 0, 1px 1px, 1px 40px, 1px 79px, 1px 118px;
2666
+ }
2667
+ }
2668
+
2669
+ .rsssl .rsssl-loader {
2670
+ margin: 0;
2671
+ width: 50px;
2672
+ height: 15px;
2673
+ text-align: center;
2674
+ font-size: 10px;
2675
+ }
2676
+
2677
+ .rsssl .rsssl-loader > div {
2678
+ margin: 1px;
2679
+ background-color: #333;
2680
+ height: 100%;
2681
+ width: 3px;
2682
+ display: inline-block;
2683
+ -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out;
2684
+ animation: sk-stretchdelay 1.2s infinite ease-in-out;
2685
+ }
2686
+
2687
+ .rsssl .rsssl-loader.rsssl-loader-white > div {
2688
+ background-color: #fff;
2689
+ }
2690
+
2691
+ .rsssl .rsssl-loader .rect2 {
2692
+ -webkit-animation-delay: -1.1s;
2693
+ animation-delay: -1.1s;
2694
+ }
2695
+
2696
+ .rsssl .rsssl-loader .rect3 {
2697
+ -webkit-animation-delay: -1s;
2698
+ animation-delay: -1s;
2699
+ }
2700
+
2701
+ .rsssl .rsssl-loader .rect4 {
2702
+ -webkit-animation-delay: -0.9s;
2703
+ animation-delay: -0.9s;
2704
+ }
2705
+
2706
+ .rsssl .rsssl-loader .rect5 {
2707
+ -webkit-animation-delay: -0.8s;
2708
+ animation-delay: -0.8s;
2709
+ }
2710
+
2711
+ .rsssl .button-primary .rsssl-loader div {
2712
+ background-color: #fff;
2713
+ }
2714
+
2715
+ @-webkit-keyframes sk-stretchdelay {
2716
+ 0%, 40%, 100% {
2717
+ -webkit-transform: scaleY(0.4);
2718
+ }
2719
+
2720
+ 20% {
2721
+ -webkit-transform: scaleY(1);
2722
+ }
2723
+ }
2724
+
2725
+ @keyframes sk-stretchdelay {
2726
+ 0%, 40%, 100% {
2727
+ transform: scaleY(0.4);
2728
+ -webkit-transform: scaleY(0.4);
2729
+ }
2730
+
2731
+ 20% {
2732
+ transform: scaleY(1);
2733
+ -webkit-transform: scaleY(1);
2734
+ }
2735
+ }
2736
+
2737
+ .rsssl {
2738
+ --rsp-brand-primary: var(--rsp-yellow);
2739
+ --rsp-brand-secondary: var(--rsp-blue);
2740
+ --rsp-brand-primary-faded: var(--rsp-yellow-faded);
2741
+ }
assets/css/admin.css.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sourceRoot":"","sources":["admin.scss","variables.scss","admin/base.scss","admin/layout.scss","admin/modules/modal.scss","admin/modules/header.scss","admin/modules/buttons.scss","admin/modules/bullets.scss","admin/modules/icons.scss","admin/modules/onboarding.scss","admin/modules/progress.scss","admin/modules/ssltest.scss","admin/modules/placeholder.scss","admin/modules/other-plugins.scss","admin/modules/tips-tricks.scss","admin/modules/wizard.scss","admin/modules/wizard/notice.scss","admin/modules/wizard/menu.scss","admin/modules/wizard/fields.scss","admin/modules/wizard/snackbar.scss","admin/modules/wizard/mixed-content-scan.scss","admin/modules/wizard/learning-mode.scss","admin/modules/wizard/letsencrypt.scss","admin/modules/notices.scss","admin/modules/datatables.scss","admin/modules/security-features.scss","admin/modules/tooltip.scss","admin/states.scss","admin/theme.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACSA;EAEE;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAGA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA0BA;EACA;EACA;;AA1BA;EAjFF;IAkFA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;AAEF;EA5FF;IA6FI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;;AAmEJ;EACE;IAAO;;EACP;IAAO;;;ACnLT;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACD;EACA;;AAGC;EACD;EACA;EACA;;AAGC;EACD;EACA;EACA;EACA;;AAGC;EACD;EACA;EACA;;AAGC;EACD;EACA;EACA;;AAGC;EACD;EACA;EACA;;AAGC;EACD;EACA;EACA;;AAGC;EACD;EACA;;AAGC;EACD;EACA;EACA;EACA;;AAGC;EACD;EACA;EACA;;AAGC;EACD;;AAEC;EACE;;AAIF;EACD;;AAKA;EACE;;;ACnGH;AAEE;EACE;EACA;;AACA;EAHF;IAII;;;AAEF;EANF;IAOI;;;AAEF;EATF;IAUI;;;AASJ;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EAPF;IAQI;;;AAIJ;EACE;EACA;;AACA;EAHF;IAII;IACA;IACA;IACA;IACA;;;AAGF;EACE;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EAVF;IAWI;;;AAEF;EACE;;AAGF;EACE;;AAMR;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;IACE;;;AAMN;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;AAIJ;EFGA;EACA;EACA;EEHE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAZF;IAaI;;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AACA;EAFF;IAGI;;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EF9BJ;;AAEA;EEuBE;IFtBA;;;AAEF;EEoBE;IFnBA;;;AAEF;EEiBE;IFhBA;;;AEwBE;EACE;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EFlBJ;EEoBI;;AFlBJ;EEcE;IFbA;;;AAEF;EEWE;IFVA;;;AAEF;EEQE;IFPA;;;AEaE;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EFnEJ;EEqEI;;AFnEJ;EEyDE;IFxDA;;;AAEF;EEsDE;IFrDA;;;AAEF;EEmDE;IFlDA;;;AE8DE;EACE;;AAEA;EACE;;AAIJ;EACE;;AAIJ;EACE;;AAGF;EACE;;;ACvNN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EHuGA;EGrGE;EACA;EACA;EACA;;AHoGF;EGzGA;IH0GE;;;AAEF;EG5GA;IH6GE;;;AAEF;EG/GA;IHgHE;;;AG1GA;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAKN;EACE;EACA;EACA;EH4EF;;AAEA;EGjFA;IHkFE;;;AAEF;EGpFA;IHqFE;;;AAEF;EGvFA;IHwFE;;;AGnFA;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAGJ;EACE;EACA;EH4DF;EG1DE;;AH4DF;EGhEA;IHiEE;;;AAEF;EGnEA;IHoEE;;;AAEF;EGtEA;IHuEE;;;AGjEA;EACE;EACA;EACA;EACA;EAIA;EAEA;;AAGF;EACE;EACA;EACA;;AACA;EACE;;;ACxFR;EACE;EACA;EACA;EACA;;AAEA;EACD;EACA;;AAEC;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;;AAIN;EACD;EACA;EACA;EACA;;AAEA;EACE;;;ACvCD;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AAON;EACE;EACA;EACA;;;AAGJ;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;ACnDA;EACD;EACA;EACA;EACA;EACA;EACE;;AACF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAEF;EACE;EACA;EACA;EACA;;AAGF;EACC;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAID;EACD;IACE;;EAEF;IACE;;EAEF;IACE;;;;AC3DH;EACE;EACA;EACA;;AACA;EACE;;;ACLJ;EACE;;AACA;EACE;;AAEF;EACE;EACA;EACA;EACA;;AACA;EACE;;AAGJ;EACE;;AACA;EACE;;AAGJ;EACE;EACA;EACA;EACA;;AACA;EACE;;ACzBJ;EACE;;AAGF;ETyHA;;AAEA;ES3HA;IT4HE;;;AAEF;ES9HA;IT+HE;;;AAEF;ESjIA;ITkIE;;;;AS5HF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAKN;ETmGA;ESjGE;;ATmGF;ESrGA;ITsGE;;;AAEF;ESxGA;ITyGE;;;AAEF;ES3GA;IT4GE;;;ASvGF;EACE;EACA;ET4FF;ES1FE;EACA;EACA;;AT0FF;EShGA;ITiGE;;;AAEF;ESnGA;IToGE;;;AAEF;EStGA;ITuGE;;;AS9FA;EACE;EACA;;AAGF;EACE;;AAEA;EACE;;;AAMR;EACE;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;;AAGE;EACE;EACA;;AAGF;EACE;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;EACA;EACA;EACA;EACA;;AACA;EANF;IAOI;;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAKA;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAMN;ETlBE;ESoBA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;EACA;;AThCA;ESgBF;ITfI;;;AAEF;ESaF;ITZI;;;AAEF;ESUF;ITTI;;;AS4BF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EARF;IASI;;;AAEF;EAXF;IAYI;IACA;IACA;IACA;IACA;IACA;;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACnPF;EACE;;;AAIA;EVyHA;;AAEA;EU3HA;IV4HE;;;AAEF;EU9HA;IV+HE;;;AAEF;EUjIA;IVkIE;;;AU9HF;EACE;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AACA;EACE;EACA;EACA;EACA;;AAKN;EACE;EACA;;AACA;EACG;;AACD;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAQZ;EACE;EAQA;;AAPA;EACE;;AACA;EACE;;AAON;EACE;;;AAOA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;;ACpGN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EAtBF;EACA;EA0BE;;AAJA;EACE;;AAKA;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AAKN;EACE;;;AAKJ;EACE;IACE;;EAEF;IACE;;;ACxDF;EACD;;AAGC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EATC;IAUC;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACD;;AAGC;EACD;;AAGC;EACD;;AAGC;EACD;;AAGC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACD;;AAGC;EACD;;AAKA;EACD;EACA;;AAGC;EACD;EACA;EACA;;AAEC;EACD;;;AC9EF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EATF;IAUC;IACA;;;AAGC;EACD;;AACA;EAFC;IAGC;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACD;EACA;;AAEA;EACE;;AAGF;EACE;;AAKH;EACE;EACA;;AAEF;EACE;EACA;EACA;;;AC/CC;EACE;;AAGF;EACE;EACA;;AACA;EAHF;IAII;;;AAGJ;EACE;;AACA;EAFF;IAGI;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EdyFN;EcvFM;EACA;EACA;;AduFN;EclGI;IdmGF;;;AAEF;EcrGI;IdsGF;;;AAEF;EcxGI;IdyGF;;;Ac5FI;EACE;EACA;;AAGF;EACE;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AACA;EACE;;AAIJ;EACE;;;AC3ER;EACE;EACA;EACA;EACA;;AACA;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;EACA;;AAIN;EACE;;AAEF;EACE;;AACA;EACE;EACA;;AACA;EACE;;;AAMR;EACE;Ef8EA;EACA;EACA;Ee9EA;EACA;;AACA;EACE;EACA;;AAEF;EACE;;;ACnDJ;EACE;;AACA;EACE;EACA;;;AAKA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EhB8IJ;EgB5II;EACA;;AhB6IJ;EgBvJE;IhBwJA;;;AAEF;EgB1JE;IhB2JA;;;AAEF;EgB7JE;IhB8JA;;;AgBjJE;EAEE;EACA;EACA;;AAKF;EAGE;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;;AAON;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AAMR;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EhBuFJ;EgBrFI;EACA;;AhBsFJ;EgBhGE;IhBiGA;;;AAEF;EgBnGE;IhBoGA;;;AAEF;EgBtGE;IhBuGA;;;AgBxFA;EACE;EACA;;;AC/EF;EACE;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAGJ;EACE;;AAGA;EACE;EACA;EACA;EACA;;AACA;EACI;;AAKN;EACE;;AAGJ;EACE;EjB4HJ;EiB1HI;;AjB4HJ;EiB/HE;IjBgIA;;;AAEF;EiBlIE;IjBmIA;;;AAEF;EiBrIE;IjBsIA;;;AiBlIE;EACE;;AAGJ;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;IAAO;;EACP;IAAO;;EACP;IACE;IACA;;;AAGJ;EACE;IACE;IACA;;EAEF;IAAO;;EACP;IAAO;;;;ACrET;EACE;EACA;EACA;EACA;;AACA;EACE;;AAEF;ElB+GF;EACA;EACA;EkB/GI;;;ACTF;EACE;EACA;;AAGJ;EACE;;AACA;EACE;EACA;;AAGJ;EACE;EACA;;AAEF;EACE;EACA;;;ACpBJ;EACE;EACA;EACA;EACA;EACA;;;ACLF;EACE;;AACA;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAMR;EACE;;AAGF;EACE;EACA;ErBkGF;EqBhGE;EACA;;ArBiGF;EqBtGA;IrBuGE;;;AAEF;EqBzGA;IrB0GE;;;AAEF;EqB5GA;IrB6GE;;;AqBtGA;EACE;EACA;;AAGF;EACE;EACA;EACA;;AACA;EACE;;AAMJ;EACE;AAKA;;AAJA;EACE;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMJ;EACE;;AAEF;EACE;;AAEF;EACE;;AAIA;EACE;EACA;;AACA;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;;AACA;EACE;;AAUN;EACE;;;ACjHJ;AAAA;AAAA;AAKE;EACD;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;AChBH;EACE;;;AAEF;EACE;;;AAGF;EACE;;;ACNE;EACE;EACA;EACA;;AAGJ;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;;ACvBN;AACA;AACA;AAAA;EAEE;EACA;;;AAGF;AACA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;EACA,oBACQ;EAGR,iBACQ;EAGR,YACQ;EAGR;EACA;EACA;EACA;;;AAGF;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQE;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAEA;AACA;EACE;;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;EACA;;;AAGF;AAAA;AAAA;EAGE;EACA;EACA;EACA;;;AAGF;AACA;AAAA;AAAA;EAGE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;AACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;;;AAGF;AACA;AAAA;EAEE;EACA;;;AChNF;AACE;AAiDA;;AA5CA;EACD;EACA;EACA;EACA;EAEA,kBACE;EAMF;EAEA,iBACE;EAMF,qBACE;EAMF;EACA;EACA;;AAEC;EACD;IACE,qBACE;;;AASH;EACD;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAID;EACD;;AAKC;EACD;IAAgB;;EAChB;IAAM;;;AAGL;EACD;IACE;IACA;;EACC;IACD;IACA;;;;AC7GH;EAEE;EACA;EACA","file":"admin.css"}
assets/css/admin.min.css ADDED
@@ -0,0 +1 @@
 
1
+ @charset "UTF-8";:root{--rsp-spacing-xxs:5px;--rsp-spacing-xs:10px;--rsp-spacing-s:15px;--rsp-spacing-m:20px;--rsp-spacing-l:25px;--rsp-spacing-xl:30px;--rsp-grid-margin:var(--rsp-spacing-s);--rsp-grid-gap:var(--rsp-spacing-m);--rsp-border-radius:12px;--rsp-border-radius-s:8px;--rsp-border:1px solid var(--rsp-border-color);--rsp-box-shadow:rgba(0,0,0,0.1) 0 4px 6px -1px,rgba(0,0,0,0.06) 0 2px 4px -1px;--rsp-box-shadow-dark:rgba(0,0,0,0.2) 0 4px 6px -1px,rgba(0,0,0,0.12) 1px 0 4px 1px;--rsp-border-color:#dfdfdf;--rsp-black:#333;--rsp-white:#fff;--rsp-yellow:#f4bf3e;--rsp-blue:#29b6f6;--rsp-dark-blue:#1e73be;--rsp-green:#2e8a37;--rsp-red:#d7263d;--rsp-pink:#e35899;--rsp-wp-blue:#007cba;--rsp-yellow-faded:#f2e6c9;--rsp-blue-faded:#ecf8fe;--rsp-dark-blue-faded:#ebf2f9;--rsp-green-faded:#ecf4ed;--rsp-red-faded:#fbebed;--rsp-pink-faded:#fceff5;--rsp-wp-blue-faded:#c6e0ef;--rsp-background-block-color:var(--rsp-white);--rsp-background-color:#f0f0f1;--rsp-input-background-color:#fff;--rsp-input-text-color:var(--rsp-text-color);--rsp-input-border-color:var(--rsp-grey-400);--rsp-text-color:rgba(26,26,26,0.95);--rsp-text-color-invert:rgba(255,255,255,0.95);--rsp-text-color-white:rgba(255,255,255,0.95);--rsp-text-color-light:rgba(69,69,82,0.95);--rsp-grey-100:#fafafa;--rsp-grey-200:#f9f9f9;--rsp-grey-300:#ededed;--rsp-grey-400:#c6c6c6;--rsp-grey-500:#737373;--rsp-grey-600:#696969;--rsp-color-success:var(--rsp-green);--rsp-color-error:var(--rsp-red);--rsp-color-warning:var(--rsp-yellow);--rsp-color-open:var(--rsp-yellow);--rsp-color-disabled:var(--rsp-grey-300);--rsp-fs-100:.6875rem;--rsp-fs-200:.8rem;--rsp-fs-300:.8125rem;--rsp-fs-400:.875rem;--rsp-fs-500:1rem;--rsp-fs-600:1.125rem;--rsp-fs-700:1.25rem;--rsp-fs-800:1.5rem;--rsp-fs-900:3.5rem}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.rsssl{margin:0;margin-left:-20px;font-size:var(--rsp-fs-300);box-sizing:border-box;color:var(--rsp-text-color);background-color:var(--rsp-background-color);font-weight:400;line-height:1.5}@media only screen and (max-width:782px){.rsssl{margin-left:-9px}}.rsssl *,.rsssl *:before,.rsssl *:after{box-sizing:inherit}.rsssl body,.rsssl h1,.rsssl h2,.rsssl h3,.rsssl h4,.rsssl h5,.rsssl h6,.rsssl p,.rsssl ol,.rsssl ul{margin:0;padding:0}.rsssl img{max-width:100%;height:auto}.rsssl h1,.rsssl h2,.rsssl h3,.rsssl h4,.rsssl h5,.rsssl h6{color:var(--rsp-text-color);line-height:1.5}.rsssl .rsssl-h0{font-size:var(--rsp-fs-900);font-weight:700}.rsssl h1,.rsssl .rsssl-h1{font-size:var(--rsp-fs-800);line-height:1.5;font-weight:500}.rsssl h2,.rsssl .rsssl-h2{font-size:var(--rsp-fs-700);font-weight:700}.rsssl h3,.rsssl .rsssl-h3{font-size:var(--rsp-fs-600);font-weight:600}.rsssl h4,.rsssl .rsssl-h4{font-size:var(--rsp-fs-600);font-weight:600}.rsssl h5,.rsssl .rsssl-h5{font-size:var(--rsp-fs-400);font-weight:400}.rsssl h6,.rsssl .rsssl-h6{font-size:var(--rsp-fs-300)}.rsssl p{color:var(--rsp-text-color);font-weight:400;font-size:var(--rsp-fs-300);line-height:1.5}.rsssl .rsssl-small-text{font-size:var(--rsp-fs-200);line-height:1.5;color:var(--rsp-text-color-light)}.rsssl a,.rsssl .rsssl-link{color:var(--rsp-text-color)}.rsssl .rsssl-notice-hook-element{display:none !important}.rsssl .error:not(.really-simple-plugins),.rsssl .notice:not(.really-simple-plugins),.rsssl .update-nag:not(.really-simple-plugins),.rsssl .notice-info:not(.really-simple-plugins){display:none !important}.rsssl .rsssl-header,.rsssl .rsssl-content-area{max-width:clamp(300px,100% - var(--rsp-grid-gap) * 2,1600px);margin:0 auto}@media(max-width:1599px){.rsssl .rsssl-header,.rsssl .rsssl-content-area{--rsp-grid-gap:var(--rsp-spacing-m)}}@media(max-width:1440px){.rsssl .rsssl-header,.rsssl .rsssl-content-area{--rsp-grid-gap:var(--rsp-spacing-s)}}@media(max-width:1366px){.rsssl .rsssl-header,.rsssl .rsssl-content-area{--rsp-grid-gap:var(--rsp-spacing-xs)}}.rsssl .rsssl-header-container .rsssl-header{display:flex;flex-wrap:wrap;justify-content:space-between;height:70px;box-sizing:border-box;background-color:var(--rsp-background-block-color)}@media(max-width:1080px){.rsssl .rsssl-header-container .rsssl-header{height:100%}}@media(max-width:576px){.rsssl .rsssl-logo{display:none}}.rsssl .rsssl-header-left{display:flex;font-size:var(--rsp-fs-400)}@media(max-width:1080px){.rsssl .rsssl-header-left{justify-content:center;margin:var(--rsp-spacing-xs) 0;order:3;width:100%;background-color:var(--rsp-background-block-color)}}.rsssl .rsssl-header-left .rsssl-header-menu{margin:auto 15px}.rsssl .rsssl-header-left .rsssl-header-menu ul{display:flex}.rsssl .rsssl-header-left .rsssl-header-menu li{margin-bottom:0}.rsssl .rsssl-header-left .rsssl-header-menu a{padding:23px 15px;text-decoration:none;color:var(--rsp-text-color);height:100%;border-bottom:4px solid transparent;transition:border .3s ease-out;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}@media(max-width:1080px){.rsssl .rsssl-header-left .rsssl-header-menu a{padding:10px 15px}}.rsssl .rsssl-header-left .rsssl-header-menu a.active{border-bottom:4px solid var(--rsp-brand-primary)}.rsssl .rsssl-header-left .rsssl-header-menu a:hover{color:var(--rsp-brand-primary)}.rsssl .rsssl-header-right{display:flex;flex-wrap:wrap;align-items:center;margin-left:auto;gap:var(--rsp-spacing-s);min-height:52px}.rsssl .rsssl-header-right select{max-width:60ch}@media(max-width:576px){.rsssl .rsssl-header-right{display:none}}@media(max-width:782px){.rsssl .rsssl-header-right .button{display:none}}.rsssl .rsssl-content-area{margin-top:var(--rsp-grid-gap)}.rsssl .rsssl-header-container{background:var(--rsp-background-block-color)}.rsssl .rsssl-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:max-content;gap:var(--rsp-grid-gap);min-height:calc(100vh - 32px - 80px - 20px - var(--rsp-grid-gap))}.rsssl .rsssl-grid.rsssl-settings{grid-template-columns:minmax(275px,max-content) 2fr minmax(min-content,1fr)}@media only screen and (max-width:1080px){.rsssl .rsssl-grid.rsssl-settings{grid-template-columns:repeat(4,1fr)}.rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-menu,.rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-settings,.rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-help{grid-column:1/-1}}@media only screen and (max-width:1280px){.rsssl .rsssl-grid{grid-template-columns:repeat(2,1fr)}}@media only screen and (max-width:1080px){.rsssl .rsssl-grid{max-width:790px;width:calc(100% - var(--rsp-grid-gap) * 2)}}.rsssl .rsssl-grid-item{background:var(--rsp-background-block-color);box-shadow:var(--rsp-box-shadow);border-radius:var(--rsp-border-radius);transition:all 1s ease;display:flex;flex-wrap:wrap;justify-content:flex-start;flex-direction:column;flex-basis:100%;grid-column:span 1;grid-row:span 1}.rsssl .rsssl-grid-item.rsssl-disabled{min-height:200px}@media(max-width:1080px){.rsssl .rsssl-grid-item{grid-column:span 4}}.rsssl .rsssl-grid-item.no-background{background:0;border:0;box-shadow:none}.rsssl .rsssl-grid-item.rsssl-column-2{grid-column:span 2}@media(max-width:1080px){.rsssl .rsssl-grid-item.rsssl-column-2{grid-column:span 4}}.rsssl .rsssl-grid-item.rsssl-row-2{grid-row:span 2;min-height:400px}.rsssl .rsssl-grid-item-header{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;min-height:calc(30px + var(--rsp-spacing-s) * 2);padding:var(--rsp-spacing-m) var(--rsp-spacing-l)}@media screen and (max-width:1280px){.rsssl .rsssl-grid-item-header{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl .rsssl-grid-item-header{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl .rsssl-grid-item-header:empty{display:none}.rsssl .rsssl-grid-item-title{margin:4px 0 4px 0}.rsssl .rsssl-grid-item-controls{font-size:var(--rsp-fs-200);display:flex;gap:var(--rsp-spacing-s)}.rsssl .rsssl-grid-item-content{width:100%;box-sizing:border-box;padding-inline:var(--rsp-spacing-l);flex-grow:100}@media screen and (max-width:1280px){.rsssl .rsssl-grid-item-content{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl .rsssl-grid-item-content{padding-inline:var(--rsp-spacing-s)}}.rsssl .rsssl-grid-item-content:empty{display:none}.rsssl .rsssl-grid-item-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--rsp-grid-margin);width:100%;min-height:calc(30px + var(--rsp-spacing-s) * 2);box-sizing:border-box;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);align-self:flex-end}@media screen and (max-width:1280px){.rsssl .rsssl-grid-item-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl .rsssl-grid-item-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl .rsssl-grid-item-footer .rsssl-legend{display:flex}.rsssl .rsssl-grid-item-footer .rsssl-legend span{padding-left:5px}.rsssl .rsssl-grid-item-footer:empty{display:none}.rsssl .rsssl-grid-item .rsssl-flex-push-right{margin-left:auto}.rsssl .rsssl-grid-item .rsssl-flex-push-left{margin-right:auto}.rsssl-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,0.6);width:100%;height:100%;z-index:2}.rsssl-modal{width:clamp(300px,75ch,100vw - 50px);position:fixed;z-index:3;border-radius:var(--rsp-border-radius);background-color:var(--rsp-white);top:50%;left:50%;transform:translate(-50%,-50%);margin:25px auto}.rsssl-modal .rsssl-modal-header{padding:var(--rsp-spacing-m) var(--rsp-spacing-l);display:flex;justify-content:space-between;align-items:center;border-radius:var(--rsp-border-radius)}@media screen and (max-width:1280px){.rsssl-modal .rsssl-modal-header{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-modal .rsssl-modal-header{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-modal .rsssl-modal-header .modal-title{margin:0;background-color:white}.rsssl-modal .rsssl-modal-header .rsssl-modal-close{cursor:pointer;background:0;border:0;font-weight:700}.rsssl-modal .rsssl-modal-header button img{height:16px;width:16px}.rsssl-modal .rsssl-modal-content{position:relative;font-size:var(--rsp-fs-300);line-height:1.5;padding:var(--rsp-spacing-m) var(--rsp-spacing-l)}@media screen and (max-width:1280px){.rsssl-modal .rsssl-modal-content{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-modal .rsssl-modal-content{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-modal .rsssl-modal-content .rsssl-modal-subtitle{font-size:var(--rsp-fs-600);font-weight:600;margin-bottom:var(--rsp-spacing-xs)}.rsssl-modal .rsssl-modal-content .rsssl-modal-description{overflow-wrap:anywhere;margin-top:0;font-weight:400;line-height:1.5;margin-bottom:var(--rsp-spacing-s)}.rsssl-modal .rsssl-modal-footer{display:flex;flex-direction:row;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);gap:10px}@media screen and (max-width:1280px){.rsssl-modal .rsssl-modal-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-modal .rsssl-modal-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-modal .rsssl-modal-footer .button{display:flex;align-items:flex-start;justify-content:center;min-width:105px;text-align:center;border-radius:6px}.rsssl-modal .rsssl-modal-footer .rsssl-button-help{background-color:#d7263d;color:white;border-color:#d7263d}.rsssl-modal .rsssl-modal-footer .rsssl-button-help:hover{opacity:.9}.rsssl-header-container .rsssl-header{display:flex;justify-content:space-between;height:70px;box-sizing:border-box}.rsssl-header-container .rsssl-header img{margin:auto 0;height:26px}.rsssl-header-container .rsssl-header .rsssl-header-menu{display:flex;align-items:center;height:100%;padding:0 20px;box-sizing:border-box}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item{display:flex;align-items:center;height:100%;padding:0 20px;box-sizing:border-box}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item:first-child{margin-left:0}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item:last-child{margin-right:0}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item.rsssl-header-menu-item-active{background-color:#f5f5f5}.rsssl-header-container .rsssl-header .rsssl-header-actions{display:flex;align-items:center;margin-left:auto;gap:var(--rsp-spacing-s)}.rsssl-header-container .rsssl-header .rsssl-header-actions select{max-width:60ch}.rsssl a.button,.rsssl button.button,.rsssl input.button,.rsssl span.button{font-size:var(--rsp-fs-300);font-weight:400;transition:all .3s ease;min-height:10px}.rsssl a.button.button-secondary,.rsssl a.button.button-default,.rsssl button.button.button-secondary,.rsssl button.button.button-default,.rsssl input.button.button-secondary,.rsssl input.button.button-default,.rsssl span.button.button-secondary,.rsssl span.button.button-default{background:transparent}.rsssl a.button.button-black,.rsssl button.button.button-black,.rsssl input.button.button-black,.rsssl span.button.button-black{border:1px solid var(--rsp-black);background:var(--rsp-black);color:var(--rsp-text-color-white)}.rsssl a.button.button-black:hover,.rsssl a.button.button-black:focus,.rsssl a.button.button-black:active,.rsssl button.button.button-black:hover,.rsssl button.button.button-black:focus,.rsssl button.button.button-black:active,.rsssl input.button.button-black:hover,.rsssl input.button.button-black:focus,.rsssl input.button.button-black:active,.rsssl span.button.button-black:hover,.rsssl span.button.button-black:focus,.rsssl span.button.button-black:active{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--rsp-black)}.rsssl a.button.button-tertiary,.rsssl a.button.button-red,.rsssl button.button.button-tertiary,.rsssl button.button.button-red,.rsssl input.button.button-tertiary,.rsssl input.button.button-red,.rsssl span.button.button-tertiary,.rsssl span.button.button-red{border:0 solid transparent;background:var(--rsp-red);color:var(--rsp-text-color-white)}.rsssl a.button.button-tertiary:hover,.rsssl a.button.button-tertiary:focus,.rsssl a.button.button-tertiary:active,.rsssl a.button.button-red:hover,.rsssl a.button.button-red:focus,.rsssl a.button.button-red:active,.rsssl button.button.button-tertiary:hover,.rsssl button.button.button-tertiary:focus,.rsssl button.button.button-tertiary:active,.rsssl button.button.button-red:hover,.rsssl button.button.button-red:focus,.rsssl button.button.button-red:active,.rsssl input.button.button-tertiary:hover,.rsssl input.button.button-tertiary:focus,.rsssl input.button.button-tertiary:active,.rsssl input.button.button-red:hover,.rsssl input.button.button-red:focus,.rsssl input.button.button-red:active,.rsssl span.button.button-tertiary:hover,.rsssl span.button.button-tertiary:focus,.rsssl span.button.button-tertiary:active,.rsssl span.button.button-red:hover,.rsssl span.button.button-red:focus,.rsssl span.button.button-red:active{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--rsp-red);background:var(--rsp-red);color:var(--rsp-text-color-white)}.rsssl a.rsssl-button-small,.rsssl button.rsssl-button-small,.rsssl input.rsssl-button-small{font-size:var(--rsp-fs-100);font-weight:300;min-height:auto}.rsssl .rsssl-button-small+.rsssl-button-small{margin-left:10px}.rsssl-shortcode{right:10000px;position:absolute;background-color:#fff;padding:0;white-space:nowrap}.shortcode{cursor:pointer}.rsssl .rsssl-bullet{height:13px;width:13px;flex:0 0 13px;border-radius:50%;display:inline-block;background-color:var(--rsp-grey-300)}.rsssl .rsssl-bullet.rsp-yellow{background-color:var(--rsp-yellow)}.rsssl .rsssl-bullet.rsp-blue{background-color:var(--rsp-blue)}.rsssl .rsssl-bullet.rsp-pink{background-color:var(--rsp-pink)}.rsssl .rsssl-bullet.rsp-red,.rsssl .rsssl-bullet.rsssl-bullet-error{background-color:var(--rsp-red)}.rsssl .rsssl-bullet.rsp-green,.rsssl .rsssl-bullet.rsssl-bullet-success{background-color:var(--rsp-green)}.rsssl .rsssl-bullet.rsp-blue-yellow{background:var(--rsp-blue);background:linear-gradient(77deg,#29b6f6 0,#29b6f6 30%,#f4bf3e 70%,#f4bf3e 100%);animation:gradient 2s ease infinite;background-size:200% 200%}.rsssl .rsssl-legend{display:flex;width:max-content;color:var(--rsp-text-color-light);align-items:center;min-width:0;gap:var(--rsp-spacing-xxs);text-decoration:none}.rsssl .rsssl-legend:first-of-type{margin-left:auto}@keyframes gradient{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}.rsssl-icon{display:flex;align-items:center;justify-content:center}.rsssl-icon svg{fill:currentColor}.rsssl-modal.rsssl-onboarding{width:clamp(300px,100ch,100vw)}.rsssl-modal.rsssl-onboarding .rsssl-logo{height:26px}.rsssl-modal.rsssl-onboarding .rsssl-modal-content{padding-top:var(--rsp-spacing-xs);line-height:2.2}.rsssl-modal.rsssl-onboarding .rsssl-modal-content ul{margin-bottom:var(--rsp-spacing-m)}.rsssl-modal.rsssl-onboarding .rsssl-modal-content ul li{display:flex;align-items:flex-start;margin-bottom:var(--rsp-spacing-xxs)}.rsssl-modal.rsssl-onboarding .rsssl-modal-content ul li .rsssl-icon{margin-top:7px;margin-right:7px}.rsssl-modal.rsssl-onboarding .rsssl-modal-content-step-footer{display:flex;align-items:center;margin-top:var(--rsp-spacing-l);gap:var(--rsp-spacing-m)}.rsssl-modal.rsssl-onboarding .rsssl-modal-content-step-footer .components-toggle-control .components-base-control__field{margin:0}.rsssl-ssllabs.rsssl-block-highlight{border:0;-o-animation:fadeItBlock 3s ease-in-out;animation:fadeItBlock 3s ease-in-out}@-o-keyframes fadeItBlock{0%{border:0}30%{border:2px solid var(--rsp-green)}100%{border:0}}@keyframes fadeItBlock{0%{border:0}30%{border:2px solid var(--rsp-green)}100%{border:0}}.rsssl-grid-item.rsssl-progress .rsssl-grid-item-content{padding:0}.rsssl-grid-item.rsssl-progress .rsssl-placeholder{padding:var(--rsp-spacing-m) var(--rsp-spacing-l)}@media screen and (max-width:1280px){.rsssl-grid-item.rsssl-progress .rsssl-placeholder{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-grid-item.rsssl-progress .rsssl-placeholder{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-progress-block .rsssl-progress{overflow:hidden;height:20px;border-radius:5px;background-color:#f7f7f7}.rsssl-progress-block .rsssl-progress .rsssl-bar{height:100%;background-color:var(--rsp-color-success)}.rsssl-progress-block .rsssl-progress .rsssl-bar.rsssl-orange{background-color:var(--rsp-color-warning)}.rsssl-progress-block .rsssl-progress-bar{padding:var(--rsp-spacing-m) var(--rsp-spacing-l);padding-block:0;border-radius:5px}@media screen and (max-width:1280px){.rsssl-progress-block .rsssl-progress-bar{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-progress-block .rsssl-progress-bar{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-progress-block .rsssl-progress-text{display:flex;align-items:center;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);padding-block:var(--rsp-spacing-s);justify-content:flex-start;gap:var(--rsp-spacing-m)}@media screen and (max-width:1280px){.rsssl-progress-block .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-progress-block .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-progress-block .rsssl-progress-text .rsssl-progress-percentage{font-size:var(--rsp-fs-800);font-weight:700}.rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span{font-weight:500;font-size:var(--rsp-fs-600)}.rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span a{margin-left:3px}@media only screen and (max-width:1366px) and (min-width:1280px){.rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span{font-size:var(--rsp-fs-500)}}.rsssl-header-html{display:flex;color:var(--rsp-text-color-light)}.rsssl-header-html .rsssl-toggle-active{text-decoration:underline}.rsssl-task-switcher-container{display:flex;border-radius:var(--rsp-border-radius)}.rsssl-task-switcher-container .rsssl-task-switcher:first-of-type{border-right:1px solid var(--rsp-grey-400);padding-right:10px}.rsssl-task-switcher-container .rsssl-task-switcher:last-of-type{padding-left:10px}.rsssl-task-switcher{font-size:var(--rsp-fs-200);cursor:pointer;transition:.3s}.rsssl-task-switcher:hover{text-decoration:underline}.rsssl-active-filter-remaining .rsssl-remaining-tasks,.rsssl-active-filter-all .rsssl-all-tasks{text-decoration:underline}.rsssl-task-element{display:flex;align-items:flex-start;justify-content:center;gap:var(--rsp-spacing-m);padding-bottom:var(--rsp-spacing-s)}@media(max-width:1280px){.rsssl-task-element{gap:var(--rsp-spacing-xs)}}.rsssl-task-element .rsssl-task-message{flex:1;font-size:var(--rsp-fs-300)}.rsssl-task-element .rsssl-task-form{margin-top:var(--rsp-spacing-xxs);display:flex;gap:var(--rsp-spacing-xs)}.rsssl-task-element .rsssl-task-enable{cursor:pointer;line-height:1.5}.rsssl-task-element .rsssl-task-dismiss:hover{transform:scale(1.1)}.rsssl-task-element .rsssl-task-dismiss button{all:initial;cursor:pointer;padding:4px}.rsssl-task-element .rsssl-task-dismiss svg{height:12px;width:12px}.rsssl-scroll-container{padding:var(--rsp-spacing-m) var(--rsp-spacing-l);height:230px;overflow-y:auto;padding-block:0;padding-top:var(--rsp-spacing-s);border-radius:0}@media screen and (max-width:1280px){.rsssl-scroll-container{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-scroll-container{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-scroll-container::-webkit-scrollbar-track{border-radius:10px;-webkit-box-shadow:inset 0 0 2px rgba(0,0,0,0);background-color:transparent}.rsssl-scroll-container::-webkit-scrollbar{width:8px;border-radius:10px;background-color:var(--rsp-grey-300)}.rsssl-scroll-container::-webkit-scrollbar-thumb{background-color:var(--rsp-grey-400);border-radius:10px}.rsssl-progress-status-container{margin-right:40px}.rsssl-task-status,.rsssl-locked-overlay .rsssl-progress-status{display:block;min-width:100px;text-align:center;border-radius:15px;padding:4px 8px;font-size:var(--rsp-fs-100);font-weight:600}.rsssl-task-status.rsssl-premium,.rsssl-locked-overlay .rsssl-premium.rsssl-progress-status{min-width:100px !important}@media(max-width:1280px){.rsssl-task-status,.rsssl-locked-overlay .rsssl-progress-status{min-width:80px}}.rsssl-task-status.rsssl-completed,.rsssl-locked-overlay .rsssl-completed.rsssl-progress-status,.rsssl-task-status.rsssl-success,.rsssl-locked-overlay .rsssl-success.rsssl-progress-status{background-color:var(--rsp-color-success);color:var(--rsp-text-color-white)}.rsssl-task-status.rsssl-open,.rsssl-locked-overlay .rsssl-open.rsssl-progress-status{background-color:var(--rsp-color-open)}.rsssl-task-status.rsssl-warning,.rsssl-locked-overlay .rsssl-warning.rsssl-progress-status{background-color:var(--rsp-color-error);color:var(--rsp-text-color-white)}.rsssl-task-status.rsssl-premium,.rsssl-locked-overlay .rsssl-premium.rsssl-progress-status{background-color:var(--rsp-blue);color:var(--rsp-text-color-white)}@media(max-width:1080px){.rsssl-scroll-container .rsssl-task-status,.rsssl-scroll-container .rsssl-locked-overlay .rsssl-progress-status,.rsssl-locked-overlay .rsssl-scroll-container .rsssl-progress-status{aspect-ratio:1/1;min-width:10px;height:16px;border-radius:100%;text-indent:-9999px;white-space:nowrap}}.rsssl-plusone{min-width:15px;height:15px;font-size:var(--rsp-fs-100);line-height:1.5;display:inline-block;vertical-align:top;box-sizing:border-box;margin:1px 0 -1px 2px;padding:0 5px;border-radius:9px;background-color:#d63638;color:#fff;text-align:center}@media only screen and (max-width:1366px){.rsssl-footer-left{display:none}}.rsssl-grid-item.rsssl-ssllabs .rsssl-grid-item-content{padding:0}.rsssl-ssllabs .rsssl-placeholder{padding:var(--rsp-spacing-m) var(--rsp-spacing-l)}@media screen and (max-width:1280px){.rsssl-ssllabs .rsssl-placeholder{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-ssllabs .rsssl-placeholder{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-ssllabs .rsssl-inactive .rsssl-score-snippet{color:var(--rsp-color-disabled)}.rsssl-ssllabs .rsssl-inactive .rsssl-ssl-test>div{background:var(--rsp-grey-300)}.rsssl-ssllabs .rsssl-inactive .rsssl-details:last-of-type{opacity:.2}.rsssl-ssllabs .rsssl-ssl-test-container{background:var(--rsp-grey-100);padding:20px 25px}.rsssl-ssllabs .rsssl-ssl-test-container.rsssl-error{background:var(--rsp-red-faded)}.rsssl-ssllabs .rsssl-ssl-test-container.rsssl-success{background:var(--rsp-green-faded)}@media only screen and (max-width:1599px) and (min-width:1280px){.rsssl-ssllabs .rsssl-ssl-test-container{padding:5px}}.rsssl-ssllabs .rsssl-ssl-test{display:flex;gap:15px}.rsssl-ssllabs .rsssl-ssl-test>div{flex:1;background-color:#fff}@media only screen and (max-width:1599px) and (min-width:1280px){.rsssl-ssllabs .rsssl-ssl-test>div{background-color:transparent}}.rsssl-ssllabs .rsssl-ssl-test-grade{text-align:center;display:flex;align-items:center;justify-content:center;font-size:var(--rsp-fs-900);font-weight:700;border-radius:8px}.rsssl-ssllabs .rsssl-ssl-test-grade.rsssl-grade-inactive{display:flex}.rsssl-ssllabs .rsssl-ssl-test-grade.rsssl-grade-inactive div{width:20px;height:8px;margin:auto auto;background-color:var(--rsp-black);border-radius:50px}.rsssl-ssllabs .rsssl-ssl-test-information{padding:10px 0;max-width:50%;border-radius:var(--rsp-border-radius)}.rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container{display:flex}.rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet{white-space:nowrap;padding:0 8px;font-size:var(--rsp-fs-100);margin:5px 10px;border-radius:3px;color:var(--rsp-text-color)}.rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet.rsssl-test-inactive{background-color:var(--rsp-grey-200);color:var(--rsp-color-disabled)}.rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet.rsssl-test-processing{background-color:var(--rsp-yellow);color:var(--rsp-black)}.rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet.rsssl-test-success{background-color:var(--rsp-color-success);color:var(--rsp-text-color-white)}.rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet.rsssl-test-error{background-color:var(--rsp-brand-primary);color:var(--rsp-black)}.rsssl-ssllabs .rsssl-details{margin:var(--rsp-spacing-m);display:flex}.rsssl-ssllabs .rsssl-details .rsssl-detail-icon{width:30px}.rsssl-ssllabs .rsssl-details .rsssl-detail-icon .rsssl-icon{margin-top:2px}.rsssl-ssllabs .rsssl-details .rsssl-status-red{color:var(--rsp-red)}@media only screen and (max-width:1599px) and (min-width:1280px){.rsssl-ssllabs .rsssl-details{margin:var(--rsp-spacing-s)}}.rsssl-ssllabs .rsssl-details+.rsssl-details{margin-top:0}.rsssl-gridblock-progress-container.rsssl-error .rsssl-gridblock-progress{background:var(--rsp-color-warning)}.rsssl-gridblock-progress-container.rsssl-inactive{height:4px;width:100%;display:flex;background:var(--rsp-grey-300)}.rsssl-gridblock-progress-container.rsssl-inactive .rsssl-gridblock-progress{transition:width 1s ease-in-out;background:var(--rsp-green)}.rsssl-placeholder{box-sizing:border-box;width:100%;text-align:left;margin:0;padding-bottom:24px;color:#1e1e1e;-moz-font-smoothing:subpixel-antialiased;-webkit-font-smoothing:subpixel-antialiased;border-radius:2px;background-color:#fff;flex-grow:100}.rsssl-placeholder .rsssl-placeholder-line{float:left;width:100%;height:16px;margin-top:12px;border-radius:7px;background-image:linear-gradient(90deg,#ddd 0,#e8e8e8 40px,#ddd 80px);background-size:600px;animation:shine-lines 1.6s infinite linear}.rsssl-placeholder .rsssl-placeholder-line:last-of-type{margin-bottom:24px}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(1){width:69%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(2){width:73%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(3){width:87%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(4){width:61%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(5){width:97%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(6){width:89%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(7){width:84%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(8){width:69%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(9){width:86%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(10){width:84%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(11){width:69%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(12){width:70%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(13){width:92%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(14){width:98%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(15){width:98%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(16){width:93%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(17){width:75%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(18){width:99%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(19){width:64%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(20){width:100%}.rsssl-placeholder .rsssl-placeholder-line ~ .rsssl-placeholder-line{background-color:#ddd}@keyframes shine-lines{0%{background-position:-400px}100%{background-position:220px}}.rsssl .rsssl-other-plugins .rsssl-placeholder{background-color:transparent}.rsssl .rsssl-other-plugins .rsp-logo img{height:20px}.rsssl .rsssl-other-plugins-container{display:flex !important;flex-direction:row;flex-wrap:wrap;margin-bottom:10px;font-size:var(--rsp-fs-300);line-height:1.7;gap:var(--rsp-spacing-xxs)}@media screen and (max-width:992px){.rsssl .rsssl-other-plugins-container{flex-direction:row;overflow:hidden}}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element{width:100%;display:flex;align-content:space-between;justify-content:space-between;gap:10px;--rsp-other-plugins-color:var(---rsp-brand-primary)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-zip-recipes{--rsp-other-plugins-color:var(--rsp-pink)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-burst-statistics{--rsp-other-plugins-color:var(--rsp-green)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-complianz-gdpr{--rsp-other-plugins-color:var(--rsp-blue)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-complianz-terms-conditions{--rsp-other-plugins-color:var(--rsp-black)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-really-simple-ssl{--rsp-other-plugins-color:var(--rsp-yellow)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a{width:max-content;color:var(--rsp-text-color-light);transition:color .3s ease;display:flex;align-items:center;min-width:0;gap:var(--rsp-spacing-xs);text-decoration:none}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover{color:var(--rsp-other-plugins-color);text-decoration:underline}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover .rsssl-bullet{background-color:var(--rsp-other-plugins-color)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover .rsssl-other-plugins-content{text-decoration:underline}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-bullet{transition:background-color .3s ease;background-color:var(--rsp-other-plugins-color)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-other-plugins-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-other-plugin-status{min-width:fit-content}.rsssl-tips_tricks .rsssl-grid-item-header .rsssl-grid-item-controls{height:28px}.rsssl-tips-tricks-container{display:flex !important;flex-direction:row;flex-wrap:wrap;margin-bottom:10px;font-size:var(--rsp-fs-300);line-height:1.7;gap:var(--rsp-spacing-xxs)}@media screen and (max-width:992px){.rsssl-tips-tricks-container{flex-direction:row;overflow:hidden}}.rsssl-tips-tricks-container .rsssl-tips-tricks-element{width:calc(50% - var(--rsp-spacing-xxs))}@media(max-width:782px){.rsssl-tips-tricks-container .rsssl-tips-tricks-element{width:100%}}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a{color:var(--rsp-text-color-light);transition:color .3s ease;display:flex;align-items:center;gap:var(--rsp-spacing-xs);min-width:0;text-decoration:none}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover{color:var(--rsp-brand-primary);text-decoration:underline}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover svg path{fill:var(--rsp-brand-primary)}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover .rsssl-tips-tricks-content{text-decoration:underline}.rsssl-tips-tricks-container .rsssl-tips-tricks-element .rsssl-bullet{transition:background-color .3s ease;background-color:var(--rsp-grey-300)}.rsssl-tips-tricks-container .rsssl-tips-tricks-element .rsssl-tips-tricks-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rsssl div[class^=rsssl-wizard-] .rsssl-helplink{color:var(--rsp-text-color)}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item{position:relative;margin-bottom:var(--rsp-grid-gap)}@media(max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item{grid-column:span 4}}.rsssl div[class^=rsssl-wizard-].rsssl-column-2{grid-column:span 2}@media(max-width:1080px){.rsssl div[class^=rsssl-wizard-].rsssl-column-2{grid-column:span 4}}.rsssl div[class^=rsssl-wizard-] .rsssl-locked{position:absolute;z-index:10;top:0;left:0;bottom:0;right:0;background:rgba(255,255,255,0.8);border-radius:var(--rsp-border-radius)}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-shield-overlay{height:0;top:calc(100% - 190px);position:relative;align-items:center;justify-content:center;display:flex}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay{z-index:1;top:calc(100% - 95px);position:relative;display:flex;align-items:center;gap:var(--rsp-spacing-s);background-color:var(--rsp-white);padding:var(--rsp-spacing-m) var(--rsp-spacing-l);border-radius:var(--rsp-border-radius-input);margin:var(--rsp-spacing-s);box-shadow:var(--rsp-box-shadow)}@media screen and (max-width:1280px){.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay .rsssl-open{float:left;margin-right:12px}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay .rsssl-progress-status{float:left;margin-right:20px}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer{justify-content:flex-end;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--rsp-grid-margin);width:100%;min-height:20px;box-sizing:border-box;align-self:flex-end}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer .rsssl-legend{display:flex}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer .rsssl-legend span{padding-left:5px}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer:empty{display:none}.rsssl-wizard-help{display:flex;flex-wrap:wrap;align-content:flex-start;gap:var(--rsp-spacing-xs)}.rsssl-wizard-help details{font-size:var(--rsp-fs-200)}.rsssl-wizard-help details .rsssl-help-more-info{display:flex;flex-direction:row;margin-top:12px}.rsssl-wizard-help details summary{display:grid;grid-template-columns:1fr auto;justify-content:space-between;font-size:var(--rsp-fs-300);font-weight:600;cursor:pointer}.rsssl-wizard-help details summary::-webkit-details-marker{display:none}.rsssl-wizard-help details summary:first-of-type{list-style-type:none}.rsssl-wizard-help details summary .rsssl-icon{transition:all .3s ease-in-out;transform:rotate(0)}.rsssl-wizard-help code{white-space:pre-line;display:block}.rsssl-wizard-help summary,.rsssl-wizard-help p{font-size:var(--rsp-fs-200)}.rsssl-wizard-help details[open]{padding:var(--rsp-spacing-s) var(--rsp-spacing-m)}.rsssl-wizard-help details[open] summary{padding:0;padding-bottom:var(--rsp-spacing-xs)}.rsssl-wizard-help details[open] summary .rsssl-icon{transform:rotate(180deg)}.rsssl-wizard-help .rsssl-help-header{width:100%;display:flex;padding:10px}.rsssl-wizard-help .rsssl-help-header .rsssl-help-title{font-size:18px}.rsssl-wizard-help .rsssl-help-header .rsssl-help-control{margin-left:auto;cursor:pointer}.rsssl-wizard-help-notice{width:100%;background:var(--rsp-background-block-color);box-shadow:var(--rsp-box-shadow);border-radius:var(--rsp-border-radius);border-radius:var(--rsp-border-radius-s);height:fit-content;background-color:var(--rsp-dark-blue-faded)}.rsssl-wizard-help-notice.rsssl-warning{background-color:var(--rsp-yellow-faded)}.rsssl-wizard-help-notice summary,.rsssl-wizard-help-notice p{padding:var(--rsp-spacing-s) var(--rsp-spacing-m)}.rsssl-wizard-menu{height:fit-content}.rsssl-wizard-menu .rsssl-grid-item-content{padding:0;padding-bottom:var(--rsp-spacing-l)}.rsssl-wizard-menu-items .rsssl-menu-item a{display:flex;align-items:center;gap:var(--rsp-spacing-xs);text-decoration:none;color:var(--rsp-text-color);font-size:var(--rsp-fs-400);padding-block:var(--rsp-spacing-xs);padding-inline:var(--rsp-spacing-l);transition:all .2s ease-in-out;border-left:4px solid transparent}@media screen and (max-width:1280px){.rsssl-wizard-menu-items .rsssl-menu-item a{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl-wizard-menu-items .rsssl-menu-item a{padding-inline:var(--rsp-spacing-s)}}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-active>a{color:var(--rsp-dark-blue);font-weight:600;border-left:4px solid var(--rsp-dark-blue)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a{font-weight:600;flex-wrap:wrap}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a .rsssl-menu-item-featured-pill{background:var(--rsp-green);color:var(--rsp-text-color-white);padding:2px 9px;border-radius:var(--rsp-border-radius);font-size:var(--rsp-fs-100)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-premium a{background:var(--rsp-dark-blue-faded);flex-wrap:wrap}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-premium a .rsssl-menu-item-featured-pill{background:var(--rsp-dark-blue);color:var(--rsp-text-color-white);padding:2px 9px;border-radius:var(--rsp-border-radius);font-size:var(--rsp-fs-100)}.rsssl-wizard-menu-items .rsssl-premium-menu-item{background:var(--rsp-dark-blue-faded)}.rsssl-wizard-menu-items .rsssl-premium-menu-item div{display:flex;align-items:center;gap:var(--rsp-spacing-xs);text-decoration:none;color:var(--rsp-text-color);font-size:var(--rsp-fs-400);padding-block:var(--rsp-spacing-xs);padding-inline:var(--rsp-spacing-l);transition:all .2s ease-in-out;border-left:4px solid transparent}@media screen and (max-width:1280px){.rsssl-wizard-menu-items .rsssl-premium-menu-item div{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl-wizard-menu-items .rsssl-premium-menu-item div{padding-inline:var(--rsp-spacing-s)}}.rsssl-wizard-menu-items .rsssl-submenu-item a{padding-left:calc(var(--rsp-spacing-l) + var(--rsp-spacing-m));font-size:var(--rsp-fs-300)}.rsssl div[class^=rsssl-wizard-] .components-flex{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.rsssl div[class^=rsssl-wizard-] .components-flex .components-flex-item label{margin:0}.rsssl div[class^=rsssl-wizard-] .components-flex .components-input-control__container{max-width:max-content}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-content label{font-size:var(--rsp-fs-300);font-weight:400;line-height:1.5;text-transform:unset;box-sizing:border-box;display:inherit;max-width:100%;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rsssl div[class^=rsssl-wizard-] .components-base-control__field{margin-bottom:0}.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-base-control__field,.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-flex{display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between}.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-base-control__field .components-form-toggle,.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-flex .components-form-toggle{margin-right:0}.rsssl div[class^=rsssl-wizard-] .components-form-toggle.is-checked .components-form-toggle__track{background-color:var(--rsp-green)}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item .rsssl-grid-item-content{padding:var(--rsp-spacing-xs) 0}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro{padding-block:var(--rsp-spacing-s);padding-inline:var(--rsp-spacing-l);overflow:hidden}@media screen and (max-width:1280px){.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro{padding-inline:var(--rsp-spacing-s)}}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap>.rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro>.rsssl-field-wrap{padding:0}.rsssl div[class^=rsssl-wizard-] .rsssl-field-button{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center}.rsssl .rsssl-highlight{background-color:transparent;border-left:4px solid var(--rsp-green);-o-animation:fadeIt 3s ease-in-out;animation:fadeIt 3s ease-in-out}@-o-keyframes fadeIt{0%{background-color:transparent}30%{background-color:var(--rsp-green-faded)}100%{border-right:0;background-color:inherit}}@keyframes fadeIt{0%{background-color:transparent;border-right:0}30%{background-color:var(--rsp-green-faded)}100%{background-color:inherit}}.rsssl-license .rsssl-task-element{padding-top:var(--rsp-spacing-s);padding-bottom:0}.rsssl-license .rsssl-license-field{display:flex}.rsssl .components-snackbar-list.edit-site-notices{width:max-content;position:fixed;bottom:var(--rsp-spacing-m);right:var(--rsp-spacing-l)}.rsssl .components-snackbar-list.edit-site-notices>div{margin-left:auto}.rsssl .components-snackbar-list.edit-site-notices .components-snackbar{background:var(--rsp-background-block-color);box-shadow:var(--rsp-box-shadow);border-radius:var(--rsp-border-radius);color:var(--rsp-color-success);background-color:#fff;font-weight:700;font-size:14px}.rsssl-mixedcontentscan .rsssl-mixed-content-placeholder{height:250px}.rsssl-mixedcontentscan .rsssl-mixed-content-placeholder div{background-color:var(--rsp-grey-200);margin:10px 0;height:20px}.rsssl-mixedcontentscan .rsssl-shield-overlay{height:250px;align-items:center;justify-content:center;display:flex}.rsssl-mixedcontentscan .rsssl-field-wrap .rdt_TableCol,.rsssl-mixedcontentscan .rsssl-field-wrap .rdt_TableCell{min-width:80px}.rsssl-mixedcontentscan .rsssl-progress-container .rsssl-progress-bar{border-radius:5px;height:20px;background-color:var(--rsp-green)}.rsssl-mixedcontentscan .rsssl-task-status,.rsssl-mixedcontentscan .rsssl-locked-overlay .rsssl-progress-status,.rsssl-locked-overlay .rsssl-mixedcontentscan .rsssl-progress-status{min-width:min-content}.rsssl-mixedcontentscan .rsssl-task-status.rsssl-warning,.rsssl-mixedcontentscan .rsssl-locked-overlay .rsssl-warning.rsssl-progress-status,.rsssl-locked-overlay .rsssl-mixedcontentscan .rsssl-warning.rsssl-progress-status{background-color:var(--rsp-yellow);color:var(--rsp-text-color)}.rsssl-mixedcontentscan button.button{line-height:1.5;min-height:10px}.rsssl-mixedcontentscan .rsssl-grid-item-content-footer{display:flex;gap:var(--rsp-spacing-s)}.rsssl-mixedcontentscan .rsssl-current-scan-action,.rsssl-mixedcontentscan .rsssl-mixed-content-description{margin:10px 5px;font-size:var(--rsp-fs-300)}.rsssl-learningmode-placeholder{height:150px}.rsssl-learningmode-placeholder div{background-color:var(--rsp-grey-200);margin:10px 0;height:20px}.rsssl-learning-mode-delete{cursor:pointer;background:0;border:0;font-size:1.5em;font-weight:700}.rsssl-locked-overlay .rsssl-open{float:left;margin-right:12px}.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-completed,.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-enforced{background-color:var(--rsp-color-success);color:#fff}.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode{background-color:var(--rsp-color-open)}.rsssl-locked-overlay .rsssl-progress-status.rsssl-disabled,.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-disabled{background-color:var(--rsp-color-disabled)}.rsssl-learning-mode-footer{display:flex;align-items:center;justify-content:flex-start;gap:var(--rsp-spacing-s)}.rsssl-learning-mode-footer select{margin-left:auto}.rsssl-learning-mode-footer label{display:flex;align-items:center}.rsssl-learning-mode-footer label input{margin-top:0}.rsssl-lets-encrypt-tests{margin:var(--rsp-spacing-xs) var(--rsp-spacing-xl)}.rsssl-lets-encrypt-tests .rsssl-progress-bar{padding-block:0;margin-bottom:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress{overflow:hidden;height:var(--rsp-spacing-m);border-radius:5px;background-color:var(--rsp-grey-200)}.rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress .rsssl-bar{height:100%;background-color:var(--rsp-color-success)}.rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress .rsssl-bar.rsssl-orange{background-color:var(--rsp-color-warning)}.rsssl-lets-encrypt-tests p{margin-bottom:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-progress-text{display:flex;align-items:center;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);padding-block:0;padding-top:var(--rsp-spacing-xs)}@media screen and (max-width:1280px){.rsssl-lets-encrypt-tests .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-lets-encrypt-tests .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-percentage{font-size:32px;font-weight:700}.rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-text-span{margin-left:35px;font-size:18px;font-weight:600}.rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-text-span a{margin-left:3px}.rsssl-lets-encrypt-tests ul li{display:flex;margin-bottom:15px}.rsssl-lets-encrypt-tests ul li .rsssl-icon{margin-right:7px}.rsssl-lets-encrypt-tests ul li ul li:before{background-color:var(--rsp-grey-500);color:#fff;height:6px;width:6px;border-radius:50%;content:"";position:absolute;margin-top:7px;margin-left:-19px}.rsssl-lets-encrypt-tests .rsssl-test-results ul li{display:block}.rsssl-lets-encrypt-tests .rsssl-test-results h4{margin:var(--rsp-spacing-m) 0}.rsssl-lets-encrypt-tests .rsssl-test-results a+button{margin-left:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-certificate-data{display:none}.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div{display:flex;flex-direction:row}.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div .rsssl-dns-domain,.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div .rsssl-dns-field{margin-right:var(--rsp-spacing-m);width:50%}.rsssl-lets-encrypt-tests .rsssl-modal-content-step-footer{display:flex;align-items:center;margin-top:var(--rsp-spacing-l);gap:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-modal-content-step-footer .components-toggle-control .components-base-control__field{margin:0;flex-direction:initial}.rsssl-lets-encrypt-tests .rsssl-modal-content-step-footer .components-toggle-control .components-base-control__field .components-toggle-control__label{margin-right:12px}.rsssl-lets-encrypt-tests .rsssl-modal-subtitle{display:none}.rsssl div[class^=rsssl-wizard-] .rsssl-permissions_policy .rsssl-locked .rsssl-shield-overlay{top:calc(100% - 300px)}.rsssl-field-wrap .rdt_TableCol,.rsssl-field-wrap .rdt_TableCell{min-width:50px}.rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child{flex-grow:0;flex-direction:row-reverse}.rsssl-field-wrap .rdt_TableRow{padding:var(--rsp-spacing-xs) 0}.rsssl-field-wrap .rdt_TableRow:nth-child(odd){background-color:var(--rsp-grey-200)}.rsssl-field-wrap .rdt_TableRow .rdt_TableCell:last-child{flex-grow:0}.rsssl-field-wrap .rdt_TableRow .rsssl-status-allowed,.rsssl-field-wrap .rdt_TableRow .rsssl-status-revoked{min-width:110px;margin-right:20px}.rsssl-field-wrap .rsssl-csp-revoked>div:nth-child(-n+3){opacity:.3}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child{flex-grow:0;min-width:initial}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableRow .rdt_TableCell:last-child{flex-grow:0;min-width:initial}.rsssl-content_security_policy .rsssl-field-wrap .rsssl-csp-revoked>div:nth-child(-n+3){opacity:.3}nav.rdt_Pagination>div>svg{display:none !important}.rsssl-content_security_policy .rsssl-field-wrap>div>div,.rsssl-xml_rpc .rsssl-field-wrap>div>div{overflow-x:inherit;overflow-y:inherit}.rsssl-permissions_policy .rdt_TableRow .rdt_TableCell:last-child{min-width:fit-content}.rsssl-permissions_policy .rdt_TableRow .rdt_TableCell:last-child .components-input-control__container{min-width:fit-content}.rsssl-mixed-content-datatable>div>div{display:flex}.rsssl .rsssl-new-features-block .rsssl-grid-item-content{display:flex;flex-direction:column;justify-content:space-between}.rsssl .rsssl-new-features{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--rsp-spacing-xs)}@media only screen and (max-width:1599px) and (min-width:1280px){.rsssl .rsssl-new-features{gap:var(--rsp-spacing-xxs)}}.rsssl .rsssl-new-feature{width:100%;color:var(--rsp-text-color-light);display:flex;align-items:flex-start;min-width:0;gap:var(--rsp-spacing-xs);text-decoration:none}.rsssl .rsssl-new-feature .rsssl-icon{margin-top:2px}.rsssl .rsssl-new-feature .rsssl-new-feature-desc p{font-size:var(--rsp-fs-300)}[data-rsssl-tooltip],.rsssl-tooltip{position:relative;cursor:pointer}[data-rsssl-tooltip]:before,[data-rsssl-tooltip]:after,.rsssl-tooltip:before,.rsssl-tooltip:after{position:absolute;visibility:hidden;-ms-filter:"alpha(opacity=0)";filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-webkit-transform .2s cubic-bezier(0.71,1.7,0.77,1.24);-moz-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-moz-transform .2s cubic-bezier(0.71,1.7,0.77,1.24);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,transform .2s cubic-bezier(0.71,1.7,0.77,1.24);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);pointer-events:none}[data-rsssl-tooltip]:hover:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:focus:after,.rsssl-tooltip:hover:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:focus:after{visibility:visible;-ms-filter:"alpha(opacity=100)";filter:alpha(opacity=100);opacity:1}.rsssl-tooltip:before,[data-rsssl-tooltip]:before{z-index:1001;border:6px solid transparent;background:transparent;content:""}.rsssl-tooltip:after,[data-rsssl-tooltip]:after{z-index:1000;padding:8px;width:220px;background-color:#000;background-color:hsla(0,0%,20%,0.9);color:#fff;content:attr(data-rsssl-tooltip);font-size:14px;line-height:1.2}.rsssl-tooltip-right{font-weight:normal}[data-rsssl-tooltip]:before,[data-rsssl-tooltip]:after,.rsssl-tooltip:before,.rsssl-tooltip:after,.rsssl-tooltip-top:before,.rsssl-tooltip-top:after{bottom:100%;left:50%}[data-rsssl-tooltip]:before,.rsssl-tooltip:before,.rsssl-tooltip-top:before{margin-left:-6px;margin-bottom:-12px;border-top-color:#000;border-top-color:hsla(0,0%,20%,0.9)}[data-rsssl-tooltip]:after,.rsssl-tooltip:after,.rsssl-tooltip-top:after{margin-left:-80px}[data-rsssl-tooltip]:hover:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:focus:after,.rsssl-tooltip:hover:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:focus:after,.rsssl-tooltip-top:hover:before,.rsssl-tooltip-top:hover:after,.rsssl-tooltip-top:focus:before,.rsssl-tooltip-top:focus:after{-webkit-transform:translateY(-12px);-moz-transform:translateY(-12px);transform:translateY(-12px)}.rsssl-tooltip-left:before,.rsssl-tooltip-left:after{right:100%;left:auto}.rsssl-tooltip-left:before{margin-left:0;margin-right:-12px;margin-bottom:0;border-top-color:transparent;border-left-color:#000;border-left-color:hsla(0,0%,20%,0.9)}.rsssl-tooltip-left:hover:before,.rsssl-tooltip-left:hover:after,.rsssl-tooltip-left:focus:before,.rsssl-tooltip-left:focus:after{-webkit-transform:translateX(-12px);-moz-transform:translateX(-12px);transform:translateX(-12px)}.rsssl-tooltip-bottom:before,.rsssl-tooltip-bottom:after{top:100%;bottom:auto;left:50%}.rsssl-tooltip-bottom:before{margin-top:-12px;margin-bottom:0;border-top-color:transparent;border-bottom-color:#000;border-bottom-color:hsla(0,0%,20%,0.9)}.rsssl-tooltip-bottom:hover:before,.rsssl-tooltip-bottom:hover:after,.rsssl-tooltip-bottom:focus:before,.rsssl-tooltip-bottom:focus:after{-webkit-transform:translateY(12px);-moz-transform:translateY(12px);transform:translateY(12px)}.rsssl-tooltip-right:before,.rsssl-tooltip-right:after{bottom:50%;left:100%}.rsssl-tooltip-right:before{margin-bottom:0;margin-left:-12px;border-top-color:transparent;border-right-color:#000;border-right-color:hsla(0,0%,20%,0.9)}.rsssl-tooltip-right:hover:before,.rsssl-tooltip-right:hover:after,.rsssl-tooltip-right:focus:before,.rsssl-tooltip-right:focus:after{-webkit-transform:translateX(12px);-moz-transform:translateX(12px);transform:translateX(12px)}.rsssl-tooltip-left:before,.rsssl-tooltip-right:before{top:3px}.rsssl-tooltip-left:after,.rsssl-tooltip-right:after{margin-left:0;margin-bottom:-25px}.rsssl .rsssl-skeleton:empty{margin:auto;margin-bottom:25px;width:100%;height:235px;background-image:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,0.5) 70%,rgba(255,255,255,0.5) 15%),linear-gradient(#f2f2f2 38px,transparent 0),linear-gradient(#f2f2f2 38px,transparent 0),linear-gradient(#f2f2f2 38px,transparent 0),linear-gradient(#f2f2f2 38px,transparent 0);background-repeat:repeat-y;background-size:50px 200px,100% 117px,100% 117px,100% 117px,100% 117px;background-position:0 0,1px 1px,1px 40px,1px 79px,1px 118px;background-color:#d6d8db;border-right:1px solid #d6d8db;animation:shine 2.5s infinite}@keyframes shine{to{background-position:100% 0,1px 1px,1px 40px,1px 79px,1px 118px}}.rsssl .rsssl-loader{margin:0;width:50px;height:15px;text-align:center;font-size:10px}.rsssl .rsssl-loader>div{margin:1px;background-color:#333;height:100%;width:3px;display:inline-block;-webkit-animation:sk-stretchdelay 1.2s infinite ease-in-out;animation:sk-stretchdelay 1.2s infinite ease-in-out}.rsssl .rsssl-loader.rsssl-loader-white>div{background-color:#fff}.rsssl .rsssl-loader .rect2{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.rsssl .rsssl-loader .rect3{-webkit-animation-delay:-1s;animation-delay:-1s}.rsssl .rsssl-loader .rect4{-webkit-animation-delay:-0.9s;animation-delay:-0.9s}.rsssl .rsssl-loader .rect5{-webkit-animation-delay:-0.8s;animation-delay:-0.8s}.rsssl .button-primary .rsssl-loader div{background-color:#fff}@-webkit-keyframes sk-stretchdelay{0%,40%,100%{-webkit-transform:scaleY(0.4)}20%{-webkit-transform:scaleY(1)}}@keyframes sk-stretchdelay{0%,40%,100%{transform:scaleY(0.4);-webkit-transform:scaleY(0.4)}20%{transform:scaleY(1);-webkit-transform:scaleY(1)}}.rsssl{--rsp-brand-primary:var(--rsp-yellow);--rsp-brand-secondary:var(--rsp-blue);--rsp-brand-primary-faded:var(--rsp-yellow-faded)}
assets/css/admin.scss ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ *
3
+ * Prefix everything
4
+ * Name descriptively
5
+ * Structure radically
6
+ *
7
+ * CSS Structure
8
+ * css/
9
+ * ├─ admin/
10
+ * │ ├─ base.scss
11
+ * │ ├─ layout.scss
12
+ * │ ├─ modules/
13
+ * │ │ ├─ modal.scss
14
+ * │ │ ├─ button.scss
15
+ * │ │ ├─ modal.scss
16
+ * │ │ ├─ notices.scss
17
+ * │ │ ├─ tips-and-tricks.scss
18
+ * │ │ ├─ etc.....
19
+ * │ ├─ states.scss
20
+ * │ ├─ theme.scss
21
+ * ├─ admin.scss
22
+ * ├─ admin.min.css
23
+ * ├─ admin.css
24
+ * ├─ variables.scss
25
+ *
26
+ */
27
+
28
+ @import 'variables.scss';
29
+ @import 'admin/base.scss';
30
+ @import 'admin/layout.scss';
31
+ @import 'admin/modules/modal.scss';
32
+ @import 'admin/modules/header.scss';
33
+ @import 'admin/modules/buttons.scss';
34
+ @import 'admin/modules/bullets.scss';
35
+ @import 'admin/modules/icons.scss';
36
+
37
+ @import 'admin/modules/onboarding.scss';
38
+ @import 'admin/modules/progress.scss';
39
+ @import 'admin/modules/ssltest.scss';
40
+ @import "admin/modules/placeholder.scss";
41
+ @import 'admin/modules/other-plugins.scss';
42
+ @import 'admin/modules/tips-tricks.scss';
43
+ @import 'admin/modules/wizard.scss';
44
+ @import 'admin/modules/wizard/notice.scss';
45
+ @import 'admin/modules/wizard/menu.scss';
46
+ @import 'admin/modules/wizard/fields.scss';
47
+ @import 'admin/modules/wizard/snackbar.scss';
48
+ @import 'admin/modules/wizard/mixed-content-scan.scss';
49
+ @import 'admin/modules/wizard/learning-mode.scss';
50
+ @import 'admin/modules/wizard/letsencrypt.scss';
51
+ @import 'admin/modules/wizard/permissions-policy.scss';
52
+ @import 'admin/modules/notices.scss';
53
+ @import 'admin/modules/datatables.scss';
54
+ @import 'admin/modules/new-features.scss';
55
+
56
+ //@import 'admin/modules/dark-mode.scss';
57
+ //@import 'admin/modules/icons.scss';
58
+
59
+
60
+ @import 'admin/modules/animations.scss';
61
+ @import 'admin/modules/tooltip.scss';
62
+ //@import 'admin/modules/icons.scss';
63
+
64
+ //@import 'admin/modules/suggested-plugins.scss';
65
+
66
+ @import 'admin/states.scss';
67
+ @import 'admin/theme.scss';
assets/css/admin/base.scss ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl {
2
+ margin: 0;
3
+ margin-left: -20px;
4
+ font-size: var(--rsp-fs-300);
5
+ box-sizing: border-box;
6
+ color: var(--rsp-text-color);
7
+ background-color: var(--rsp-background-color);
8
+ font-weight: 400;
9
+ line-height: 1.5;
10
+ @media only screen and ( max-width: $rsp-break-xs) {
11
+ margin-left: -9px;
12
+ }
13
+
14
+ *, *:before, *:after {
15
+ box-sizing: inherit;
16
+ }
17
+
18
+ body, h1, h2, h3, h4, h5, h6, p, ol, ul {
19
+ margin: 0;
20
+ padding: 0;
21
+ }
22
+
23
+ img {
24
+ max-width: 100%;
25
+ height: auto;
26
+ }
27
+
28
+ h1, h2, h3, h4, h5, h6 {
29
+ color: var(--rsp-text-color);
30
+ line-height: 1.5;
31
+ }
32
+
33
+ .rsssl-h0 {
34
+ font-size: var(--rsp-fs-900);
35
+ font-weight: 700;
36
+ }
37
+
38
+ h1, .rsssl-h1 {
39
+ font-size: var(--rsp-fs-800);
40
+ line-height: 1.5;
41
+ font-weight: 500;
42
+ }
43
+
44
+ h2, .rsssl-h2 {
45
+ font-size: var(--rsp-fs-700);
46
+ font-weight: 700;
47
+ }
48
+
49
+ h3, .rsssl-h3 {
50
+ font-size: var(--rsp-fs-600);
51
+ font-weight: 600;
52
+ }
53
+
54
+ h4, .rsssl-h4 {
55
+ font-size: var(--rsp-fs-600);
56
+ font-weight: 600;
57
+ }
58
+
59
+ h5, .rsssl-h5 {
60
+ font-size: var(--rsp-fs-400);
61
+ font-weight: 400;
62
+ }
63
+
64
+ h6, .rsssl-h6 {
65
+ font-size: var(--rsp-fs-300);
66
+ }
67
+
68
+ p {
69
+ color: var(--rsp-text-color);
70
+ font-weight: 400;
71
+ font-size: var(--rsp-fs-300);
72
+ line-height: 1.5;
73
+ }
74
+
75
+ .rsssl-small-text {
76
+ font-size: var(--rsp-fs-200);
77
+ line-height: 1.5;
78
+ color: var(--rsp-text-color-light);
79
+ }
80
+
81
+ a, .rsssl-link{
82
+ color: var(--rsp-text-color);
83
+ }
84
+
85
+ //wordpress inserts notices after the first h1 or h2. To prevent breaking layout we insert an empty h1 tag at the start of our page, where WP can insert the notice.
86
+ .rsssl-notice-hook-element {
87
+ display: none !important;
88
+ }
89
+
90
+ // Hide nags from other plugins
91
+ .error, .notice, .update-nag, .notice-info {
92
+ &:not(.really-simple-plugins) {
93
+ display: none !important;
94
+ }
95
+ }
96
+ }
assets/css/admin/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // Silence is golden.
assets/css/admin/layout.scss ADDED
@@ -0,0 +1,245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Grid */
2
+ .rsssl {
3
+ .rsssl-header, .rsssl-content-area {
4
+ max-width: clamp(300px, calc(100% - var(--rsp-grid-gap) * 2), 1600px);
5
+ margin: 0 auto;
6
+ @media(max-width: $rsp-break-xxl) {
7
+ --rsp-grid-gap: var(--rsp-spacing-m);
8
+ }
9
+ @media(max-width: $rsp-break-xl) { // 1440px
10
+ --rsp-grid-gap: var(--rsp-spacing-s);
11
+ }
12
+ @media(max-width: $rsp-break-l) { // 1366px
13
+ --rsp-grid-gap: var(--rsp-spacing-xs);
14
+ }
15
+ @media(max-width: $rsp-break-m) { // 1280px
16
+ }
17
+ @media(max-width: $rsp-break-s) { // 1080px
18
+
19
+ }
20
+ }
21
+
22
+ .rsssl-header-container .rsssl-header {
23
+ display: flex;
24
+ flex-wrap: wrap;
25
+ justify-content: space-between;
26
+ height: 70px;
27
+ box-sizing: border-box;
28
+ background-color: var(--rsp-background-block-color);
29
+ @media(max-width: $rsp-break-s) {
30
+ height: 100%;
31
+ }
32
+ }
33
+ .rsssl-logo {
34
+ @media(max-width: $rsp-break-xxs) {
35
+ display:none;
36
+ }
37
+ }
38
+ .rsssl-header-left {
39
+ display: flex;
40
+ font-size: var(--rsp-fs-400);
41
+
42
+ @media(max-width: $rsp-break-s) {
43
+ justify-content: center;
44
+ margin: var(--rsp-spacing-xs) 0;
45
+ order: 3;
46
+ width: 100%;
47
+ background-color: var(--rsp-background-block-color);
48
+ }
49
+
50
+ .rsssl-header-menu {
51
+ margin: auto 15px;
52
+
53
+ ul {
54
+ display: flex;
55
+ }
56
+
57
+ li {
58
+ margin-bottom: 0;
59
+ }
60
+
61
+ a {
62
+ padding: 23px 15px;
63
+ text-decoration: none;
64
+ color: var(--rsp-text-color);
65
+ height: 100%;
66
+ border-bottom: 4px solid transparent;
67
+ transition: border 0.3s ease-out;
68
+ box-sizing: border-box;
69
+ -moz-box-sizing: border-box;
70
+ -webkit-box-sizing: border-box;
71
+ @media(max-width: $rsp-break-s) {
72
+ padding: 10px 15px;
73
+ }
74
+ &.active {
75
+ border-bottom: 4px solid var(--rsp-brand-primary);
76
+ }
77
+
78
+ &:hover {
79
+ color: var(--rsp-brand-primary);
80
+ }
81
+ }
82
+ }
83
+ }
84
+
85
+ .rsssl-header-right {
86
+ display: flex;
87
+ flex-wrap: wrap;
88
+ align-items: center;
89
+ margin-left: auto;
90
+ gap: var(--rsp-spacing-s);
91
+ min-height: 52px;
92
+
93
+ select {
94
+ max-width: 60ch;
95
+ }
96
+ @media(max-width: $rsp-break-xxs) {
97
+ display:none;
98
+ }
99
+ @media(max-width: $rsp-break-xs) {
100
+ .button {
101
+ display: none;
102
+ }
103
+ }
104
+ }
105
+
106
+
107
+ .rsssl-content-area {
108
+ margin-top: var(--rsp-grid-gap);
109
+ }
110
+
111
+ .rsssl-header-container {
112
+ background: var(--rsp-background-block-color);
113
+ }
114
+
115
+ .rsssl-grid {
116
+ display: grid;
117
+ grid-template-columns: repeat(4, 1fr);
118
+ grid-auto-rows: max-content;
119
+ gap: var(--rsp-grid-gap);
120
+ min-height: calc(100vh - 32px - 80px - 20px - var(--rsp-grid-gap)); //32px = wordpress bar, 80px = cmplz bar, 20px = margin-top, 20px is grid gap
121
+ &.rsssl-settings{
122
+ grid-template-columns: minmax(275px, max-content) 2fr minmax(min-content, 1fr);
123
+ @media only screen and ( max-width: $rsp-break-s) {
124
+ grid-template-columns: repeat(4, 1fr);
125
+ .rsssl-wizard-menu, .rsssl-wizard-settings, .rsssl-wizard-help {
126
+ grid-column: 1 / -1;
127
+ }
128
+ }
129
+ }
130
+ @media only screen and ( max-width: $rsp-break-m) {
131
+ grid-template-columns: repeat(2,1fr);
132
+ }
133
+
134
+ @media only screen and ( max-width: $rsp-break-s) {
135
+ max-width:790px;
136
+ width: calc(100% - var(--rsp-grid-gap) * 2)
137
+ }
138
+ }
139
+
140
+ .rsssl-grid-item {
141
+ @include rsssl-block;
142
+ &.rsssl-disabled {
143
+ min-height:200px;//add min height on disabled so the settings is visible behind the locked div.
144
+ }
145
+ transition: all 1s ease;
146
+ display: flex;
147
+ flex-wrap: wrap;
148
+ justify-content: flex-start;
149
+ flex-direction: column;
150
+ flex-basis: 100%;
151
+ //min-height: 200px;//seems odd for blocks with only one item: lots of white space
152
+ grid-column: span 1;
153
+ grid-row: span 1;
154
+
155
+ @media(max-width: $rsp-break-s) {
156
+ grid-column: span 4;
157
+ }
158
+
159
+ &.no-background {
160
+ background: none;
161
+ border: none;
162
+ box-shadow: none;
163
+ }
164
+
165
+ &.rsssl-column-2 {
166
+ grid-column: span 2;
167
+ @media(max-width: $rsp-break-s) {
168
+ grid-column: span 4;
169
+ }
170
+ }
171
+
172
+ &.rsssl-row-2 {
173
+ grid-row: span 2;
174
+ min-height: 400px;
175
+ }
176
+
177
+ &-header {
178
+ width: 100%;
179
+ box-sizing: border-box;
180
+ display: flex;
181
+ align-items: center;
182
+ justify-content: space-between;
183
+ min-height: calc(30px + var(--rsp-spacing-s) * 2);
184
+ @include rsssl-block-padding;
185
+
186
+ &:empty {
187
+ display: none;
188
+ }
189
+ }
190
+
191
+ &-title {
192
+ margin: 4px 0 4px 0;
193
+ }
194
+
195
+ &-controls {
196
+ font-size: var(--rsp-fs-200);
197
+ display: flex;
198
+ gap: var(--rsp-spacing-s);
199
+ }
200
+
201
+ &-content {
202
+ width: 100%;
203
+ box-sizing: border-box;
204
+ @include rsssl-inline-block-padding;
205
+ flex-grow: 100;
206
+
207
+ &:empty {
208
+ display: none;
209
+ }
210
+ }
211
+
212
+ &-footer {
213
+ display: flex;
214
+ flex-wrap: wrap;
215
+ align-items: center;
216
+ justify-content: space-between;
217
+ gap: var(--rsp-grid-margin);
218
+ width: 100%;
219
+ min-height: calc(30px + var(--rsp-spacing-s) * 2);
220
+ box-sizing: border-box;
221
+ @include rsssl-block-padding;
222
+ align-self: flex-end;
223
+
224
+ .rsssl-legend {
225
+ display: flex;
226
+
227
+ span {
228
+ padding-left: 5px;
229
+ }
230
+ }
231
+
232
+ &:empty {
233
+ display: none;
234
+ }
235
+ }
236
+
237
+ .rsssl-flex-push-right {
238
+ margin-left: auto;
239
+ }
240
+
241
+ .rsssl-flex-push-left {
242
+ margin-right: auto;
243
+ }
244
+ }
245
+ }
assets/css/{variables.css → admin/modules/animations.scss} RENAMED
File without changes
assets/css/admin/modules/bullets.scss ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl{
2
+ // rsssl bullets
3
+ .rsssl-bullet {
4
+ height: 13px;
5
+ width: 13px;
6
+ flex: 0 0 13px;
7
+ border-radius: 50%;
8
+ display: inline-block;
9
+ background-color: var(--rsp-grey-300);
10
+ &.rsp-yellow {
11
+ background-color: var(--rsp-yellow);
12
+ }
13
+
14
+ &.rsp-blue {
15
+ background-color: var(--rsp-blue);
16
+ }
17
+
18
+ &.rsp-pink {
19
+ background-color: var(--rsp-pink);
20
+ }
21
+
22
+ &.rsp-red, &.rsssl-bullet-error {
23
+ background-color: var(--rsp-red);
24
+ }
25
+
26
+ &.rsp-green, &.rsssl-bullet-success {
27
+ background-color: var(--rsp-green);
28
+ }
29
+ &.rsp-blue-yellow {
30
+ background: var(--rsp-blue);
31
+ background: linear-gradient(77deg, rgba(41, 182, 246, 1) 0%, rgba(41, 182, 246, 1) 30%, rgba(244, 191, 62, 1) 70%, rgba(244, 191, 62, 1) 100%);
32
+ animation: gradient 2s ease infinite;
33
+ background-size: 200% 200%;
34
+ }
35
+ }
36
+ .rsssl-legend{
37
+ display: flex;
38
+
39
+ width: max-content;
40
+ color: var(--rsp-text-color-light);
41
+ align-items: center;
42
+ min-width: 0;
43
+ gap: var(--rsp-spacing-xxs);
44
+ text-decoration: none;
45
+ &:first-of-type{
46
+ margin-left: auto;
47
+ }
48
+ }
49
+
50
+ @keyframes gradient {
51
+ 0% {
52
+ background-position: 0% 50%;
53
+ }
54
+ 50% {
55
+ background-position: 100% 50%;
56
+ }
57
+ 100% {
58
+ background-position: 0% 50%;
59
+ }
60
+ }
61
+ }
assets/css/admin/modules/buttons.scss ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl {
2
+ a.button, button.button, input.button, span.button {
3
+ font-size: var(--rsp-fs-300);
4
+ font-weight: 400;
5
+ transition: all 0.3s ease;
6
+ min-height: 10px;
7
+
8
+ &.button-secondary, &.button-default{
9
+ background: transparent;
10
+ }
11
+
12
+ &.button-black {
13
+ border: 1px solid var(--rsp-black);
14
+ background: var(--rsp-black);
15
+ color: var(--rsp-text-color-white);
16
+
17
+ &:hover, &:focus, &:active {
18
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--rsp-black);
19
+ }
20
+ }
21
+
22
+ &.button-tertiary, &.button-red {
23
+ border: 0 solid transparent;
24
+ background: var(--rsp-red);
25
+ color: var(--rsp-text-color-white);
26
+
27
+ &:hover, &:focus, &:active {
28
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--rsp-red);
29
+ background: var(--rsp-red);
30
+ color: var(--rsp-text-color-white);
31
+ }
32
+ }
33
+ }
34
+ }
35
+
36
+ .rsssl {
37
+ a.rsssl-button-small, button.rsssl-button-small, input.rsssl-button-small {
38
+ font-size: var(--rsp-fs-100);
39
+ font-weight: 300;
40
+ min-height: auto;
41
+ }
42
+ //on the dashboard, keep a minimum distance between two buttons
43
+ .rsssl-button-small + .rsssl-button-small{
44
+ margin-left:10px;
45
+ }
46
+ }
47
+ /* Documents overview */
48
+ .rsssl-shortcode {
49
+ right: 10000px;
50
+ position: absolute;
51
+ background-color: #fff;
52
+ padding: 0;
53
+ white-space: nowrap;
54
+ }
55
+
56
+ .shortcode {
57
+ cursor: pointer;
58
+ }
assets/css/admin/modules/datatables.scss ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl-field-wrap {
2
+ .rdt_TableCol, .rdt_TableCell {
3
+ min-width:50px;
4
+ }
5
+ .rdt_TableHeadRow {
6
+ .rdt_TableCol:last-child {
7
+ flex-grow:0;
8
+ flex-direction: row-reverse;
9
+ //margin-right: 20px;
10
+ }
11
+ }
12
+ .rdt_TableRow {
13
+ &:nth-child(odd){
14
+ background-color:var(--rsp-grey-200)
15
+ }
16
+ padding:var(--rsp-spacing-xs) 0;
17
+ .rdt_TableCell:last-child {
18
+ flex-grow:0;
19
+ }
20
+ .rsssl-status-allowed, .rsssl-status-revoked{
21
+ min-width:110px;
22
+ margin-right:20px;
23
+ }
24
+ }
25
+
26
+ .rsssl-csp-revoked >div:nth-child(-n+3) {
27
+ opacity:0.3;
28
+ }
29
+ }
30
+
31
+
32
+ .rsssl-content_security_policy .rsssl-field-wrap {
33
+ .rdt_TableHeadRow {
34
+ .rdt_TableCol:last-child {
35
+ flex-grow:0;
36
+ min-width:initial;
37
+ }
38
+ .rdt_TableCol:nth-last-child(2) {
39
+ //flex-direction: row-reverse;
40
+ }
41
+ }
42
+
43
+
44
+ .rdt_TableRow {
45
+ .rsssl-status-allowed, .rsssl-status-revoked, .rsssl-learning-mode-delete{
46
+ //margin-right:0;
47
+ }
48
+ .rdt_TableCell:last-child {
49
+ flex-grow:0;
50
+ min-width:initial;
51
+ }
52
+ .rdt_TableCell:nth-last-child(2) {
53
+ //flex-direction: row-reverse;
54
+ //margin-right:10px;
55
+ }
56
+ }
57
+
58
+ .rsssl-csp-revoked >div:nth-child(-n+3) {
59
+ opacity:0.3;
60
+ }
61
+ }
62
+
63
+ //wp-core also adds an svg for the select dropdown, so we hide the one from the react datatables component
64
+ nav.rdt_Pagination>div>svg {
65
+ display:none !important;
66
+ }
67
+
68
+ .rsssl-content_security_policy, .rsssl-xml_rpc {
69
+ .rsssl-field-wrap >div >div {
70
+ overflow-x:inherit;
71
+ overflow-y:inherit;
72
+ }
73
+ }
74
+
75
+ .rsssl-permissions_policy {
76
+ .rdt_TableRow {
77
+ .rdt_TableCell:last-child {
78
+ min-width: fit-content;
79
+ .components-input-control__container {
80
+ min-width: fit-content;
81
+ }
82
+ }
83
+ }
84
+ }
85
+ .rsssl-mixed-content-datatable{
86
+ & > div > div {
87
+ display: flex;
88
+ }
89
+ }
assets/css/admin/modules/header.scss ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl-header-container .rsssl-header {
2
+ display: flex;
3
+ justify-content: space-between;
4
+ height: 70px;
5
+ box-sizing: border-box;
6
+
7
+ img {
8
+ margin: auto 0;
9
+ height: 26px;
10
+ }
11
+ .rsssl-header-menu {
12
+ display: flex;
13
+ align-items: center;
14
+ height: 100%;
15
+ padding: 0 20px;
16
+ box-sizing: border-box;
17
+ .rsssl-header-menu-item {
18
+ display: flex;
19
+ align-items: center;
20
+ height: 100%;
21
+ padding: 0 20px;
22
+ box-sizing: border-box;
23
+ &:first-child {
24
+ margin-left: 0;
25
+ }
26
+ &:last-child {
27
+ margin-right: 0;
28
+ }
29
+ &.rsssl-header-menu-item-active {
30
+ background-color: #f5f5f5;
31
+ }
32
+ }
33
+ }
34
+ .rsssl-header-actions {
35
+ display: flex;
36
+ align-items: center;
37
+ margin-left: auto;
38
+ gap: var(--rsp-spacing-s);
39
+
40
+ select {
41
+ max-width: 60ch;
42
+ }
43
+ }
44
+
45
+ }
assets/css/admin/modules/icons.scss ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ .rsssl-icon{
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ svg{
6
+ fill: currentColor;
7
+ }
8
+ }
assets/css/admin/modules/modal.scss ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl-modal-backdrop {
2
+ position: fixed;
3
+ top: 0;
4
+ right: 0;
5
+ bottom: 0;
6
+ left: 0;
7
+ background-color: rgba(0, 0, 0, 0.6);
8
+ width: 100%;
9
+ height: 100%;
10
+ z-index: 2;
11
+ }
12
+
13
+ .rsssl-modal {
14
+ width: clamp(300px, 75ch, calc(100vw - 50px) );
15
+ position: fixed;
16
+ z-index: 3;
17
+ border-radius: var(--rsp-border-radius);
18
+ background-color: var(--rsp-white);
19
+ top: 50%;
20
+ left: 50%;
21
+ transform: translate(-50%, -50%);
22
+ margin: 25px auto;
23
+
24
+ .rsssl-modal-header {
25
+ @include rsssl-block-padding;
26
+ display: flex;
27
+ justify-content: space-between;
28
+ align-items: center;
29
+ border-radius: var(--rsp-border-radius);
30
+ .modal-title {
31
+ margin: 0;
32
+ background-color: white;
33
+ }
34
+ .rsssl-modal-close {
35
+ cursor: pointer;
36
+ background: none;
37
+ border: none;
38
+ font-weight: 700;
39
+ }
40
+ button {
41
+ img {
42
+ height: 16px;
43
+ width: 16px;
44
+ }
45
+ }
46
+ }
47
+
48
+ .rsssl-modal-content {
49
+ position: relative;
50
+ font-size: var(--rsp-fs-300);
51
+ line-height: 1.5;
52
+ @include rsssl-block-padding;
53
+ .rsssl-modal-subtitle {
54
+ font-size: var(--rsp-fs-600);
55
+ font-weight: 600;
56
+ margin-bottom: var(--rsp-spacing-xs);
57
+ }
58
+ .rsssl-modal-description {
59
+ overflow-wrap: anywhere;
60
+ margin-top: 0;
61
+ font-weight: 400;
62
+ line-height: 1.5;
63
+ margin-bottom: var(--rsp-spacing-s);
64
+ }
65
+ }
66
+ .rsssl-modal-footer {
67
+ display: flex;
68
+ flex-direction: row;
69
+ @include rsssl-block-padding;
70
+ gap:10px;
71
+ // text-align: right;
72
+ .button {
73
+ display: flex;
74
+ align-items: flex-start;
75
+ justify-content: center;
76
+ min-width: 105px;
77
+
78
+ //height: 45px;
79
+ //width: 100%;
80
+ text-align: center;
81
+ // margin-right: 20px;
82
+ border-radius: 6px;
83
+ }
84
+
85
+ .rsssl-button-help {
86
+ background-color: #D7263D;
87
+ color: white;
88
+ border-color: #D7263D;
89
+ &:hover {
90
+ opacity: 0.9;
91
+ }
92
+ }
93
+ }
94
+ }
assets/css/admin/modules/new-features.scss ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl{
2
+ .rsssl-new-features-block{
3
+ .rsssl-grid-item-content{
4
+ display: flex;
5
+ flex-direction: column;
6
+ justify-content: space-between;
7
+ }
8
+ }
9
+ .rsssl-new-features{
10
+ display: flex;
11
+ flex-direction: row;
12
+ flex-wrap: wrap;
13
+ gap: var(--rsp-spacing-xs);
14
+ @media only screen and (max-width: $rsp-break-xxl) and (min-width: $rsp-break-m) {
15
+ gap: var(--rsp-spacing-xxs);
16
+ }
17
+ }
18
+ .rsssl-new-feature{
19
+ width: 100%;
20
+ color: var(--rsp-text-color-light);
21
+ display: flex;
22
+ align-items: flex-start;
23
+ min-width: 0;
24
+ gap: var(--rsp-spacing-xs);
25
+ text-decoration: none;
26
+ .rsssl-icon{
27
+ margin-top: 2px;
28
+ }
29
+ .rsssl-new-feature-desc {
30
+ p {
31
+ font-size:var(--rsp-fs-300);
32
+ }
33
+ }
34
+ }
35
+ }
assets/css/admin/modules/notices.scss ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /**
2
+ Admin notice
3
+ */
4
+
assets/css/admin/modules/onboarding.scss ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl-modal.rsssl-onboarding {
2
+ width: clamp(300px, 100ch, 100vw );
3
+ .rsssl-logo {
4
+ height: 26px;
5
+ }
6
+ .rsssl-modal-content{
7
+ padding-top: var(--rsp-spacing-xs);
8
+ line-height: 2.2;
9
+ ul{
10
+ margin-bottom: var(--rsp-spacing-m);
11
+ li {
12
+ display: flex;
13
+ align-items: flex-start;
14
+ margin-bottom: var(--rsp-spacing-xxs);
15
+ .rsssl-icon{
16
+ margin-top: 7px;
17
+ margin-right:7px;
18
+ }
19
+ }
20
+ }
21
+ }
22
+ .rsssl-modal-content-step-footer {
23
+ display:flex;
24
+ align-items: center;
25
+ margin-top: var(--rsp-spacing-l);
26
+ gap: var(--rsp-spacing-m);
27
+ .components-toggle-control .components-base-control__field{
28
+ margin:0;
29
+ }
30
+ button, a, label{
31
+ //font-size: var(--rsp-fs-400);
32
+ //font-weight: 500;
33
+ //line-height: 1.5;
34
+ }
35
+ }
36
+ }
assets/css/admin/modules/other-plugins.scss ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl {
2
+ .rsssl-other-plugins {
3
+ .rsssl-placeholder {
4
+ background-color:transparent;
5
+ }
6
+ .rsp-logo img {
7
+ height: 20px;
8
+ }
9
+ }
10
+
11
+ .rsssl-other-plugins-container {
12
+ display: flex !important;
13
+ flex-direction: row;
14
+ flex-wrap: wrap;
15
+ margin-bottom: 10px;
16
+ font-size: var(--rsp-fs-300);
17
+ line-height: 1.7;
18
+ gap: var(--rsp-spacing-xxs);
19
+
20
+ @media screen and (max-width: 992px) {
21
+ flex-direction: row;
22
+ overflow: hidden;
23
+ }
24
+
25
+ .rsssl-other-plugins-element {
26
+ width: 100%;
27
+ display: flex;
28
+ align-content: space-between;
29
+ justify-content: space-between;
30
+ gap: 10px;
31
+ --rsp-other-plugins-color: var(---rsp-brand-primary);
32
+
33
+ &.rsssl-zip-recipes {
34
+ --rsp-other-plugins-color: var(--rsp-pink);
35
+ }
36
+
37
+ &.rsssl-burst-statistics {
38
+ --rsp-other-plugins-color: var(--rsp-green);
39
+ }
40
+
41
+ &.rsssl-complianz-gdpr {
42
+ --rsp-other-plugins-color: var(--rsp-blue);
43
+ }
44
+
45
+ &.rsssl-complianz-terms-conditions {
46
+ --rsp-other-plugins-color: var(--rsp-black);
47
+ }
48
+
49
+ &.rsssl-really-simple-ssl {
50
+ --rsp-other-plugins-color: var(--rsp-yellow);
51
+ }
52
+
53
+ a {
54
+ width: max-content;
55
+ color: var(--rsp-text-color-light);
56
+ transition: color 0.3s ease;
57
+ display: flex;
58
+ align-items: center;
59
+ min-width: 0;
60
+ gap: var(--rsp-spacing-xs);
61
+ text-decoration: none;
62
+
63
+ &:hover {
64
+ color: var(--rsp-other-plugins-color);
65
+ text-decoration: underline;
66
+
67
+ .rsssl-bullet {
68
+ background-color: var(--rsp-other-plugins-color);
69
+ }
70
+
71
+ .rsssl-other-plugins-content {
72
+ text-decoration: underline;
73
+ }
74
+ }
75
+ }
76
+
77
+ .rsssl-bullet {
78
+ transition: background-color 0.3s ease;
79
+ background-color: var(--rsp-other-plugins-color);
80
+ }
81
+
82
+ .rsssl-other-plugins-content {
83
+ white-space: nowrap;
84
+ overflow: hidden;
85
+ text-overflow: ellipsis;
86
+ }
87
+
88
+ .rsssl-other-plugin-status {
89
+ min-width: fit-content;
90
+ }
91
+ }
92
+ }
93
+ }
assets/css/admin/modules/placeholder.scss ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @function randomNum($min, $max) {
2
+ $rand: random();
3
+ $randomNum: $min + floor($rand * (($max - $min) + 1));
4
+
5
+ @return $randomNum;
6
+ }
7
+
8
+ $base-color: #ddd;
9
+ $shine-color: #e8e8e8;
10
+ $animation-duration: 1.6s;
11
+ @mixin background-gradient {
12
+ background-image: linear-gradient(90deg, $base-color 0px, $shine-color 40px, $base-color 80px);
13
+ background-size: 600px;
14
+ }
15
+
16
+ .rsssl-placeholder {
17
+ box-sizing: border-box;
18
+ width: 100%;
19
+ text-align: left;
20
+ margin: 0;
21
+ padding-bottom: 24px;
22
+ color: #1e1e1e;
23
+ -moz-font-smoothing: subpixel-antialiased;
24
+ -webkit-font-smoothing: subpixel-antialiased;
25
+ border-radius: 2px;
26
+ background-color: #fff;
27
+ flex-grow: 100;
28
+
29
+ .rsssl-placeholder-line {
30
+ float: left;
31
+ width: 100%;
32
+ height: 16px;
33
+ margin-top: 12px;
34
+ border-radius: 7px;
35
+ &:last-of-type{
36
+ margin-bottom: 24px;
37
+ }
38
+ @include background-gradient;
39
+ animation: shine-lines $animation-duration infinite linear;
40
+ @for $i from 1 through 20 {
41
+ &:nth-of-type( #{$i} ) {
42
+ width: ( random(40) + 60 ) * 1%;
43
+ }
44
+ }
45
+ }
46
+
47
+ .rsssl-placeholder-line ~ .rsssl-placeholder-line {
48
+ background-color: #ddd;
49
+ }
50
+
51
+ }
52
+
53
+ @keyframes shine-lines {
54
+ 0% {
55
+ background-position:- 400px;
56
+ }
57
+ 100% {
58
+ background-position: 220px;
59
+ }
60
+ }
assets/css/admin/modules/progress.scss ADDED
@@ -0,0 +1,289 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl-ssllabs {
2
+ &.rsssl-block-highlight {
3
+ border: 0;
4
+ -o-animation: fadeItBlock 3s ease-in-out;
5
+ animation: fadeItBlock 3s ease-in-out;
6
+ }
7
+
8
+ @-o-keyframes fadeItBlock {
9
+ 0% {
10
+ border: 0;
11
+ }
12
+ 30% {
13
+ border: 2px solid var(--rsp-green);
14
+ }
15
+ 100% {
16
+ border: 0;
17
+ }
18
+ }
19
+
20
+ @keyframes fadeItBlock {
21
+ 0% {
22
+ border: 0;
23
+
24
+ }
25
+ 30% {
26
+ border: 2px solid var(--rsp-green);
27
+ }
28
+ 100% {
29
+ border: 0;
30
+ }
31
+ }
32
+ }
33
+
34
+ .rsssl-grid-item.rsssl-progress {
35
+ .rsssl-grid-item-content {
36
+ padding: 0;
37
+ }
38
+
39
+ .rsssl-placeholder {
40
+ @include rsssl-block-padding;
41
+ }
42
+ }
43
+
44
+ .rsssl-progress-block {
45
+ .rsssl-progress {
46
+ overflow: hidden;
47
+ height: 20px;
48
+ border-radius: 5px;
49
+ background-color: #f7f7f7;
50
+
51
+ .rsssl-bar {
52
+ height: 100%;
53
+ background-color: var(--rsp-color-success);
54
+
55
+ &.rsssl-orange {
56
+ background-color: var(--rsp-color-warning);
57
+ }
58
+ }
59
+ }
60
+
61
+ .rsssl-progress-bar {
62
+ @include rsssl-block-padding;
63
+ padding-block: 0;
64
+ border-radius:5px;
65
+ }
66
+
67
+ .rsssl-progress-text {
68
+ display: flex;
69
+ align-items: center;
70
+ @include rsssl-block-padding;
71
+ padding-block: var(--rsp-spacing-s);
72
+ justify-content: flex-start;
73
+ gap: var(--rsp-spacing-m);
74
+
75
+
76
+ .rsssl-progress-percentage {
77
+ font-size: var(--rsp-fs-800);
78
+ font-weight: 700;
79
+ }
80
+
81
+ .rsssl-progress-text-span {
82
+ font-weight: 500;
83
+ font-size: var(--rsp-fs-600);
84
+ a {
85
+ margin-left: 3px;
86
+ }
87
+ @media only screen and (max-width: $rsp-break-l) and (min-width: $rsp-break-m) {
88
+ font-size: var(--rsp-fs-500);
89
+ }
90
+ }
91
+ }
92
+ }
93
+
94
+ .rsssl-header-html {
95
+ display: flex;
96
+ color: var(--rsp-text-color-light);
97
+
98
+ .rsssl-toggle-active {
99
+ text-decoration: underline;
100
+ }
101
+ }
102
+
103
+ .rsssl-task-switcher-container {
104
+ display: flex;
105
+ border-radius: var(--rsp-border-radius);
106
+
107
+ .rsssl-task-switcher {
108
+ &:first-of-type {
109
+ border-right: 1px solid var(--rsp-grey-400);
110
+ padding-right: 10px;
111
+ }
112
+
113
+ &:last-of-type {
114
+ padding-left: 10px;
115
+ }
116
+ }
117
+ }
118
+
119
+ .rsssl-task-switcher {
120
+ font-size: var(--rsp-fs-200);
121
+ cursor: pointer;
122
+ transition: 0.3s;
123
+
124
+ &:hover {
125
+ text-decoration: underline;
126
+ }
127
+ }
128
+
129
+ .rsssl-active-filter-remaining .rsssl-remaining-tasks, .rsssl-active-filter-all .rsssl-all-tasks {
130
+ text-decoration: underline;
131
+ }
132
+
133
+ /**
134
+ * Task element, list of tasks
135
+ */
136
+
137
+ .rsssl-task-element {
138
+ display: flex;
139
+ align-items: flex-start;
140
+ justify-content: center;
141
+ gap: var(--rsp-spacing-m);
142
+ padding-bottom: var(--rsp-spacing-s);
143
+ @media(max-width: $rsp-break-m) {
144
+ gap: var(--rsp-spacing-xs);
145
+ }
146
+
147
+ .rsssl-task-message {
148
+ flex: 1;
149
+ font-size: var(--rsp-fs-300);
150
+ }
151
+
152
+ .rsssl-task-form {
153
+ margin-top: var(--rsp-spacing-xxs);
154
+ display: flex;
155
+ gap: var(--rsp-spacing-xs);
156
+ }
157
+
158
+ .rsssl-task-enable {
159
+ cursor: pointer;
160
+ line-height: 1.5;
161
+ }
162
+
163
+ .rsssl-task-dismiss {
164
+
165
+ &:hover {
166
+ transform: scale(1.1);
167
+ }
168
+
169
+ button {
170
+ all: initial; //remove default button styles
171
+ cursor: pointer;
172
+ padding: 4px;
173
+ }
174
+
175
+ svg {
176
+ height: 12px;
177
+ width: 12px;
178
+ }
179
+ }
180
+
181
+ }
182
+
183
+ .rsssl-scroll-container {
184
+ @include rsssl-block-padding;
185
+ //--rsp-scroll-bg-clr: var(--rsp-white);
186
+ height: 230px;
187
+ overflow-y: auto;
188
+ padding-block: 0;
189
+ padding-top: var(--rsp-spacing-s);
190
+ border-radius: 0;
191
+ //background-image: linear-gradient(to top, var(--rsp-scroll-bg-clr), var(--rsp-scroll-bg-clr)),
192
+ //linear-gradient(to top, var(--rsp-scroll-bg-clr), var(--rsp-scroll-bg-clr)),
193
+ //linear-gradient(to top, rgba(0, 0, 0, 0.15), rgba(255, 255, 255, 0)),
194
+ //linear-gradient(to bottom, rgba(0, 0, 0, 0.15), rgba(255, 255, 255, 0));
195
+ //background-position: bottom center, top center, bottom center, top center;
196
+ //background-color: var(--rsp-scroll-bg-clr);
197
+ //background-repeat: no-repeat;
198
+ //background-size: 100% 25px, 100% 25px, 100% 15px, 100% 15px;
199
+ //background-attachment: local, local, scroll, scroll;
200
+
201
+
202
+ &::-webkit-scrollbar-track {
203
+ border-radius: 10px;
204
+ -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0);
205
+ background-color: transparent;
206
+ }
207
+
208
+ &::-webkit-scrollbar {
209
+ width: 8px;
210
+ border-radius: 10px;
211
+ background-color: var(--rsp-grey-300);
212
+ }
213
+
214
+ &::-webkit-scrollbar-thumb {
215
+ background-color: var(--rsp-grey-400);
216
+ border-radius: 10px;
217
+ }
218
+ }
219
+
220
+ .rsssl-progress-status-container {
221
+ margin-right: 40px;
222
+ }
223
+
224
+ .rsssl-task-status {
225
+ display: block;
226
+ min-width: 100px;
227
+ text-align: center;
228
+ border-radius: 15px;
229
+ padding: 4px 8px;
230
+ font-size: var(--rsp-fs-100);
231
+ font-weight: 600;
232
+ &.rsssl-premium {
233
+ min-width:100px !important;
234
+ }
235
+ @media(max-width: $rsp-break-m) {
236
+ min-width: 80px;
237
+ }
238
+
239
+ &.rsssl-completed, &.rsssl-success {
240
+ background-color: var(--rsp-color-success);
241
+ color: var(--rsp-text-color-white);
242
+ }
243
+
244
+ &.rsssl-open {
245
+ background-color: var(--rsp-color-open);
246
+ }
247
+
248
+ &.rsssl-warning {
249
+ background-color: var(--rsp-color-error);
250
+ color: var(--rsp-text-color-white);
251
+ }
252
+
253
+ &.rsssl-premium {
254
+ background-color: var(--rsp-blue);
255
+ color: var(--rsp-text-color-white);
256
+ }
257
+ }
258
+ .rsssl-scroll-container .rsssl-task-status{
259
+ @media(max-width: $rsp-break-s) {
260
+ aspect-ratio: 1 / 1;
261
+ min-width: 10px;
262
+ height: 16px;
263
+ border-radius: 100%;
264
+ text-indent: -9999px; /* sends the text off-screen */
265
+ white-space: nowrap;
266
+ }
267
+ }
268
+ .rsssl-plusone {
269
+ min-width: 15px;
270
+ height: 15px;
271
+ font-size: var(--rsp-fs-100);
272
+ line-height: 1.5;
273
+ display: inline-block;
274
+ vertical-align: top;
275
+ box-sizing: border-box;
276
+ margin: 1px 0 -1px 2px;
277
+ padding: 0 5px;
278
+ border-radius: 9px;
279
+ background-color: #d63638;
280
+ color: #fff;
281
+ text-align: center;
282
+ }
283
+
284
+ @media only screen and (max-width: $rsp-break-l) {
285
+ .rsssl-footer-left {
286
+ display:none;
287
+ }
288
+ }
289
+
assets/css/admin/modules/ssltest.scss ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl-grid-item.rsssl-ssllabs .rsssl-grid-item-content {
2
+ padding: 0;
3
+ }
4
+
5
+ .rsssl-ssllabs {
6
+ .rsssl-placeholder {
7
+ @include rsssl-block-padding;
8
+ }
9
+
10
+ .rsssl-inactive {
11
+ .rsssl-score-snippet {
12
+ color: var(--rsp-color-disabled)
13
+ }
14
+ .rsssl-ssl-test > div {
15
+ background: var(--rsp-grey-300);
16
+ }
17
+ .rsssl-details {
18
+ &:last-of-type {
19
+ opacity: 0.2;
20
+ }
21
+ }
22
+ }
23
+
24
+ .rsssl-ssl-test-container {
25
+ background: var(--rsp-grey-100);
26
+ padding: 20px 25px;
27
+
28
+ &.rsssl-error {
29
+ background: var(--rsp-red-faded);
30
+ }
31
+
32
+ &.rsssl-success {
33
+ background: var(--rsp-green-faded);
34
+ }
35
+ @media only screen and (max-width: $rsp-break-xxl) and (min-width: $rsp-break-m) {
36
+ padding: 5px;
37
+ }
38
+ }
39
+
40
+ .rsssl-ssl-test {
41
+ display: flex;
42
+ gap: 15px;
43
+
44
+ > div {
45
+ flex: 1;
46
+ background-color: #fff;
47
+ @media only screen and (max-width: $rsp-break-xxl) and (min-width: $rsp-break-m) {
48
+ background-color:transparent
49
+ }
50
+ }
51
+
52
+ &-grade {
53
+ text-align: center;
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ font-size: var(--rsp-fs-900);
58
+ font-weight: 700;
59
+ border-radius: 8px;
60
+
61
+ &.rsssl-grade-inactive {
62
+ display: flex;
63
+
64
+ div {
65
+ width: 20px;
66
+ height: 8px;
67
+ margin: auto auto;
68
+ background-color: var(--rsp-black);
69
+ border-radius: 50px;
70
+ }
71
+ }
72
+ }
73
+
74
+ &-information {
75
+ padding: 10px 0;
76
+ max-width: 50%;
77
+ border-radius: var(--rsp-border-radius);
78
+
79
+ .rsssl-score-container {
80
+ display: flex;
81
+
82
+ .rsssl-score-snippet {
83
+ white-space: nowrap;
84
+ padding: 0 8px;
85
+ font-size: var(--rsp-fs-100);
86
+ margin: 5px 10px;
87
+ border-radius: 3px;
88
+ color: var(--rsp-text-color);
89
+
90
+ &.rsssl-test-inactive {
91
+ background-color: var(--rsp-grey-200);
92
+ color: var(--rsp-color-disabled);
93
+ }
94
+
95
+ &.rsssl-test-processing {
96
+ background-color: var(--rsp-yellow);
97
+ color: var(--rsp-black);
98
+ }
99
+
100
+ &.rsssl-test-success {
101
+ background-color: var(--rsp-color-success);
102
+ color: var(--rsp-text-color-white);
103
+ }
104
+
105
+ &.rsssl-test-error {
106
+ background-color: var(--rsp-brand-primary);
107
+ color: var(--rsp-black);
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
+
114
+ .rsssl-details {
115
+ margin: var(--rsp-spacing-m);
116
+ display: flex;
117
+
118
+ .rsssl-detail-icon {
119
+ width: 30px;
120
+ .rsssl-icon {
121
+ margin-top: 2px;
122
+ }
123
+ }
124
+ .rsssl-status-red {
125
+ color: var(--rsp-red);
126
+ }
127
+ @media only screen and (max-width: $rsp-break-xxl) and (min-width: $rsp-break-m) {
128
+ margin: var(--rsp-spacing-s);
129
+ }
130
+ }
131
+
132
+ .rsssl-details + .rsssl-details {
133
+ margin-top: 0;
134
+ }
135
+ }
136
+
137
+
138
+ .rsssl-gridblock-progress-container {
139
+ &.rsssl-error {
140
+ .rsssl-gridblock-progress {
141
+ background: var(--rsp-color-warning);
142
+ }
143
+ }
144
+
145
+ &.rsssl-inactive {
146
+ height: 4px;
147
+ width: 100%;
148
+ display: flex;
149
+ background: var(--rsp-grey-300);
150
+
151
+ .rsssl-gridblock-progress {
152
+ transition: width 1s ease-in-out;
153
+ background: var(--rsp-green);
154
+ }
155
+ }
156
+ }
157
+
158
+
159
+
assets/css/admin/modules/tips-tricks.scss ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl-tips_tricks{
2
+ .rsssl-grid-item-header{
3
+ .rsssl-grid-item-controls{
4
+ height: 28px;
5
+ }
6
+ }
7
+ }
8
+ .rsssl-tips-tricks-container {
9
+ display: flex !important;
10
+ flex-direction: row;
11
+ flex-wrap: wrap;
12
+ margin-bottom: 10px;
13
+ font-size: var(--rsp-fs-300);
14
+ line-height: 1.7;
15
+ gap: var(--rsp-spacing-xxs);
16
+
17
+ @media screen and (max-width: 992px) {
18
+ flex-direction: row;
19
+ overflow: hidden;
20
+ }
21
+
22
+ .rsssl-tips-tricks-element {
23
+ width: calc(50% - var(--rsp-spacing-xxs));
24
+ @media( max-width: $rsp-break-xs ){
25
+ width: 100%;
26
+ }
27
+ a {
28
+ color: var(--rsp-text-color-light);
29
+ transition: color 0.3s ease;
30
+ display: flex;
31
+ align-items: center;
32
+ gap: var(--rsp-spacing-xs);
33
+ min-width: 0; /* or some value */
34
+ text-decoration: none;
35
+
36
+ &:hover {
37
+ color: var(--rsp-brand-primary);
38
+ text-decoration: underline;
39
+
40
+ svg path{
41
+ fill: var(--rsp-brand-primary);
42
+ }
43
+
44
+ .rsssl-tips-tricks-content {
45
+ text-decoration: underline;
46
+ }
47
+ }
48
+ }
49
+
50
+ .rsssl-bullet {
51
+ transition: background-color 0.3s ease;
52
+ background-color: var(--rsp-grey-300);
53
+ }
54
+ .rsssl-tips-tricks-content {
55
+ white-space: nowrap;
56
+ overflow: hidden;
57
+ text-overflow: ellipsis;
58
+ }
59
+ }
60
+ }
assets/css/admin/modules/tooltip.scss ADDED
@@ -0,0 +1,363 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* rsssl-rsssl-tooltip for settings page */
2
+ /* Base styles for the element that has a rsssl-tooltip */
3
+ [data-rsssl-tooltip],
4
+ .rsssl-tooltip {
5
+ position: relative;
6
+ cursor: pointer;
7
+ }
8
+
9
+ /* Base styles for the entire tooltip */
10
+ [data-rsssl-tooltip]:before,
11
+ [data-rsssl-tooltip]:after,
12
+ .rsssl-tooltip:before,
13
+ .rsssl-tooltip:after {
14
+ position: absolute;
15
+ visibility: hidden;
16
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
17
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
18
+ opacity: 0;
19
+ -webkit-transition:
20
+ opacity 0.2s ease-in-out,
21
+ visibility 0.2s ease-in-out,
22
+ -webkit-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
23
+ -moz-transition:
24
+ opacity 0.2s ease-in-out,
25
+ visibility 0.2s ease-in-out,
26
+ -moz-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
27
+ transition:
28
+ opacity 0.2s ease-in-out,
29
+ visibility 0.2s ease-in-out,
30
+ transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
31
+ -webkit-transform: translate3d(0, 0, 0);
32
+ -moz-transform: translate3d(0, 0, 0);
33
+ transform: translate3d(0, 0, 0);
34
+ pointer-events: none;
35
+ }
36
+
37
+ /* Show the entire rsssl-tooltip on hover and focus */
38
+ [data-rsssl-tooltip]:hover:before,
39
+ [data-rsssl-tooltip]:hover:after,
40
+ [data-rsssl-tooltip]:focus:before,
41
+ [data-rsssl-tooltip]:focus:after,
42
+ .rsssl-tooltip:hover:before,
43
+ .rsssl-tooltip:hover:after,
44
+ .rsssl-tooltip:focus:before,
45
+ .rsssl-tooltip:focus:after {
46
+ visibility: visible;
47
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
48
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
49
+ opacity: 1;
50
+ }
51
+
52
+ /* Base styles for the rsssl-tooltip's directional arrow */
53
+ .rsssl-tooltip:before,
54
+ [data-rsssl-tooltip]:before {
55
+ z-index: 1001;
56
+ border: 6px solid transparent;
57
+ background: transparent;
58
+ content: "";
59
+ }
60
+
61
+ /* Base styles for the rsssl-tooltip's content area */
62
+ .rsssl-tooltip:after,
63
+ [data-rsssl-tooltip]:after {
64
+ z-index: 1000;
65
+ padding: 8px;
66
+ width: 220px;
67
+ background-color: #000;
68
+ background-color: hsla(0, 0%, 20%, 0.9);
69
+ color: #fff;
70
+ content: attr(data-rsssl-tooltip);
71
+ font-size: 14px;
72
+ line-height: 1.2;
73
+ }
74
+
75
+ /* Directions */
76
+
77
+ /* Top (default) */
78
+ .rsssl-tooltip-right {
79
+ font-weight:normal;
80
+ }
81
+ [data-rsssl-tooltip]:before,
82
+ [data-rsssl-tooltip]:after,
83
+ .rsssl-tooltip:before,
84
+ .rsssl-tooltip:after,
85
+ .rsssl-tooltip-top:before,
86
+ .rsssl-tooltip-top:after {
87
+ bottom: 100%;
88
+ left: 50%;
89
+ }
90
+
91
+ [data-rsssl-tooltip]:before,
92
+ .rsssl-tooltip:before,
93
+ .rsssl-tooltip-top:before {
94
+ margin-left: -6px;
95
+ margin-bottom: -12px;
96
+ border-top-color: #000;
97
+ border-top-color: hsla(0, 0%, 20%, 0.9);
98
+ }
99
+
100
+ /* Horizontally align top/bottom rsssl-tooltips */
101
+ [data-rsssl-tooltip]:after,
102
+ .rsssl-tooltip:after,
103
+ .rsssl-tooltip-top:after {
104
+ margin-left: -80px;
105
+ }
106
+
107
+ [data-rsssl-tooltip]:hover:before,
108
+ [data-rsssl-tooltip]:hover:after,
109
+ [data-rsssl-tooltip]:focus:before,
110
+ [data-rsssl-tooltip]:focus:after,
111
+ .rsssl-tooltip:hover:before,
112
+ .rsssl-tooltip:hover:after,
113
+ .rsssl-tooltip:focus:before,
114
+ .rsssl-tooltip:focus:after,
115
+ .rsssl-tooltip-top:hover:before,
116
+ .rsssl-tooltip-top:hover:after,
117
+ .rsssl-tooltip-top:focus:before,
118
+ .rsssl-tooltip-top:focus:after {
119
+ -webkit-transform: translateY(-12px);
120
+ -moz-transform: translateY(-12px);
121
+ transform: translateY(-12px);
122
+ }
123
+
124
+ /* Left */
125
+ .rsssl-tooltip-left:before,
126
+ .rsssl-tooltip-left:after {
127
+ right: 100%;
128
+ /*bottom: 50%;*/
129
+ left: auto;
130
+ }
131
+
132
+ .rsssl-tooltip-left:before {
133
+ margin-left: 0;
134
+ margin-right: -12px;
135
+ margin-bottom: 0;
136
+ border-top-color: transparent;
137
+ border-left-color: #000;
138
+ border-left-color: hsla(0, 0%, 20%, 0.9);
139
+ }
140
+
141
+ .rsssl-tooltip-left:hover:before,
142
+ .rsssl-tooltip-left:hover:after,
143
+ .rsssl-tooltip-left:focus:before,
144
+ .rsssl-tooltip-left:focus:after {
145
+ -webkit-transform: translateX(-12px);
146
+ -moz-transform: translateX(-12px);
147
+ transform: translateX(-12px);
148
+ }
149
+
150
+ /* Bottom */
151
+ .rsssl-tooltip-bottom:before,
152
+ .rsssl-tooltip-bottom:after {
153
+ top: 100%;
154
+ bottom: auto;
155
+ left: 50%;
156
+ }
157
+
158
+ .rsssl-tooltip-bottom:before {
159
+ margin-top: -12px;
160
+ margin-bottom: 0;
161
+ border-top-color: transparent;
162
+ border-bottom-color: #000;
163
+ border-bottom-color: hsla(0, 0%, 20%, 0.9);
164
+ }
165
+
166
+ .rsssl-tooltip-bottom:hover:before,
167
+ .rsssl-tooltip-bottom:hover:after,
168
+ .rsssl-tooltip-bottom:focus:before,
169
+ .rsssl-tooltip-bottom:focus:after {
170
+ -webkit-transform: translateY(12px);
171
+ -moz-transform: translateY(12px);
172
+ transform: translateY(12px);
173
+ }
174
+
175
+ /* Right */
176
+ .rsssl-tooltip-right:before,
177
+ .rsssl-tooltip-right:after {
178
+ bottom: 50%;
179
+ left: 100%;
180
+ }
181
+
182
+ .rsssl-tooltip-right:before {
183
+ margin-bottom: 0;
184
+ margin-left: -12px;
185
+ border-top-color: transparent;
186
+ border-right-color: #000;
187
+ border-right-color: hsla(0, 0%, 20%, 0.9);
188
+ }
189
+
190
+ .rsssl-tooltip-right:hover:before,
191
+ .rsssl-tooltip-right:hover:after,
192
+ .rsssl-tooltip-right:focus:before,
193
+ .rsssl-tooltip-right:focus:after {
194
+ -webkit-transform: translateX(12px);
195
+ -moz-transform: translateX(12px);
196
+ transform: translateX(12px);
197
+ }
198
+
199
+ /* Move directional arrows down a bit for left/right rsssl-tooltips */
200
+ .rsssl-tooltip-left:before,
201
+ .rsssl-tooltip-right:before {
202
+ top: 3px;
203
+ }
204
+
205
+ /* Vertically center rsssl-tooltip content for left/right rsssl-tooltips */
206
+ .rsssl-tooltip-left:after,
207
+ .rsssl-tooltip-right:after {
208
+ margin-left: 0;
209
+ margin-bottom: -25px;
210
+
211
+ }
212
+ //
213
+ ///* START TOOLTIP STYLES */
214
+ //[rsssl-tooltip] {
215
+ // position: relative; /* opinion 1 */
216
+ // margin-left: 5px;
217
+ //}
218
+ //
219
+ ///* Applies to all tooltips */
220
+ //[rsssl-tooltip]::before,
221
+ //[rsssl-tooltip]::after {
222
+ // text-transform: none; /* opinion 2 */
223
+ // font-size: 1em; /* opinion 3 */
224
+ // line-height: 1;
225
+ // user-select: none;
226
+ // pointer-events: none;
227
+ // position: absolute;
228
+ // display: none;
229
+ // opacity: 0;
230
+ //}
231
+ //
232
+ //[rsssl-tooltip]::before {
233
+ // content: '';
234
+ // border: 5px solid transparent; /* opinion 4 */
235
+ // z-index: 1001; /* absurdity 1 */
236
+ //}
237
+ //
238
+ //[rsssl-tooltip]::after {
239
+ // content: attr(rsssl-tooltip); /* magic! */
240
+ // min-width: 3em;
241
+ // font-weight:normal;
242
+ // overflow: hidden;
243
+ // text-overflow: ellipsis;
244
+ // padding: 1ch 1.5ch;
245
+ // border-radius: .3ch;
246
+ // box-shadow: 0 1em 2em -.5em rgba(0, 0, 0, 0.35);
247
+ // background: #333;
248
+ // color: #fff;
249
+ // z-index: 1000; /* absurdity 2 */
250
+ //}
251
+ //
252
+ ///* Make the tooltips respond to hover */
253
+ //[rsssl-tooltip]:hover::before,
254
+ //[rsssl-tooltip]:hover::after {
255
+ // display: block;
256
+ //}
257
+ //
258
+ ///* don't show empty tooltips */
259
+ //[rsssl-tooltip='']::before,
260
+ //[rsssl-tooltip='']::after {
261
+ // display: none !important;
262
+ //}
263
+ //
264
+ ///* FLOW: UP */
265
+ //[rsssl-tooltip]:not([flow])::before,
266
+ //[rsssl-tooltip][flow^="up"]::before {
267
+ // bottom: 100%;
268
+ // border-bottom-width: 0;
269
+ // border-top-color: #333;
270
+ //}
271
+ //
272
+ //[rsssl-tooltip]:not([flow])::after,
273
+ //[rsssl-tooltip][flow^="up"]::after {
274
+ // bottom: calc(100% + 5px);
275
+ //}
276
+ //
277
+ //[rsssl-tooltip]:not([flow])::before,
278
+ //[rsssl-tooltip]:not([flow])::after,
279
+ //[rsssl-tooltip][flow^="up"]::before,
280
+ //[rsssl-tooltip][flow^="up"]::after {
281
+ // left: 50%;
282
+ // transform: translate(-50%, -.5em);
283
+ //}
284
+ //
285
+ ///* FLOW: DOWN */
286
+ //[rsssl-tooltip][flow^="down"]::before {
287
+ // top: 100%;
288
+ // border-top-width: 0;
289
+ // border-bottom-color: #333;
290
+ //}
291
+ //
292
+ //[rsssl-tooltip][flow^="down"]::after {
293
+ // top: calc(100% + 5px);
294
+ //}
295
+ //
296
+ //[rsssl-tooltip][flow^="down"]::before,
297
+ //[rsssl-tooltip][flow^="down"]::after {
298
+ // left: 50%;
299
+ // transform: translate(-50%, .5em);
300
+ //}
301
+ //
302
+ ///* FLOW: LEFT */
303
+ //[rsssl-tooltip][flow^="left"]::before {
304
+ // top: 50%;
305
+ // border-right-width: 0;
306
+ // border-left-color: #333;
307
+ // left: calc(0em - 5px);
308
+ // transform: translate(-.5em, -50%);
309
+ //}
310
+ //
311
+ //[rsssl-tooltip][flow^="left"]::after {
312
+ // top: 50%;
313
+ // right: calc(100% + 5px);
314
+ // transform: translate(-.5em, -50%);
315
+ //}
316
+ //
317
+ ///* FLOW: RIGHT */
318
+ //[rsssl-tooltip][flow^="right"]::before {
319
+ // top: 50%;
320
+ // border-left-width: 0;
321
+ // border-right-color: #333;
322
+ // right: calc(0em - 19px);
323
+ // transform: translate(.5em, -50%);
324
+ //}
325
+ //
326
+ //[rsssl-tooltip][flow^="right"]::after {
327
+ // top: 50%;
328
+ // left: calc(100% + 19px);
329
+ // transform: translate(.5em, -50%);
330
+ // min-width:300px;
331
+ //}
332
+ //
333
+ ///* KEYFRAMES */
334
+ //@keyframes tooltips-vert {
335
+ // to {
336
+ // opacity: .9;
337
+ // transform: translate(-50%, 0);
338
+ // }
339
+ //}
340
+ //
341
+ //@keyframes tooltips-horz {
342
+ // to {
343
+ // opacity: .9;
344
+ // transform: translate(0, -50%);
345
+ // }
346
+ //}
347
+ //
348
+ ///* FX All The Things */
349
+ //[rsssl-tooltip]:not([flow]):hover::before,
350
+ //[rsssl-tooltip]:not([flow]):hover::after,
351
+ //[rsssl-tooltip][flow^="up"]:hover::before,
352
+ //[rsssl-tooltip][flow^="up"]:hover::after,
353
+ //[rsssl-tooltip][flow^="down"]:hover::before,
354
+ //[rsssl-tooltip][flow^="down"]:hover::after {
355
+ // animation: tooltips-vert 300ms ease-out forwards;
356
+ //}
357
+ //
358
+ //[rsssl-tooltip][flow^="left"]:hover::before,
359
+ //[rsssl-tooltip][flow^="left"]:hover::after,
360
+ //[rsssl-tooltip][flow^="right"]:hover::before,
361
+ //[rsssl-tooltip][flow^="right"]:hover::after {
362
+ // animation: tooltips-horz 300ms ease-out forwards;
363
+ //}
assets/css/admin/modules/wizard.scss ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl {
2
+ div[class^="rsssl-wizard-"] { // starts with selector
3
+ .rsssl-helplink {
4
+ color: var(--rsp-text-color);
5
+ }
6
+
7
+ .rsssl-grid-item {
8
+ position: relative; //to ensure the rsssl-lock stays within the div
9
+ margin-bottom: var(--rsp-grid-gap);
10
+ @media(max-width: $rsp-break-s) {
11
+ grid-column: span 4;
12
+ }
13
+ }
14
+ &.rsssl-column-2{
15
+ grid-column: span 2;
16
+ @media(max-width: $rsp-break-s) {
17
+ grid-column: span 4;
18
+ }
19
+ }
20
+
21
+ .rsssl-locked {
22
+ position: absolute;
23
+ z-index: 10;
24
+ top: 0;
25
+ left: 0;
26
+ bottom: 0;
27
+ right: 0;
28
+ background: rgba(255, 255, 255, 0.8);
29
+ border-radius: var(--rsp-border-radius);
30
+ .rsssl-shield-overlay {
31
+ height: 0;
32
+ top: calc(100% - 190px);
33
+ position: relative;
34
+ align-items: center;
35
+ justify-content: center;
36
+ display: flex;
37
+ }
38
+ .rsssl-locked-overlay {
39
+ z-index: 1;
40
+ top: calc(100% - 95px);
41
+ position: relative;
42
+ display: flex;
43
+ align-items: center;
44
+ gap: var(--rsp-spacing-s);
45
+ background-color: var(--rsp-white);
46
+ @include rsssl-block-padding;
47
+ border-radius: var(--rsp-border-radius-input);
48
+ margin: var(--rsp-spacing-s);
49
+ box-shadow: var(--rsp-box-shadow);
50
+
51
+ .rsssl-open {
52
+ float: left;
53
+ margin-right: 12px;
54
+ }
55
+
56
+ .rsssl-progress-status {
57
+ float: left;
58
+ margin-right: 20px;
59
+ }
60
+ }
61
+ }
62
+
63
+ .rsssl-grid-item-footer {
64
+ justify-content: flex-end;
65
+ padding: 0;
66
+ display: flex;
67
+ flex-wrap: wrap;
68
+ align-items: center;
69
+ gap: var(--rsp-grid-margin);
70
+ width: 100%;
71
+ min-height: 20px;
72
+ box-sizing: border-box;
73
+ align-self: flex-end;
74
+
75
+ .rsssl-legend {
76
+ display: flex;
77
+ span {
78
+ padding-left: 5px;
79
+ }
80
+ }
81
+
82
+ &:empty {
83
+ display: none;
84
+ }
85
+ }
86
+ }
87
+ }
assets/css/admin/modules/wizard/fields.scss ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl{
2
+ div[class^="rsssl-wizard-"]{ // starts with selector
3
+ .components-flex{
4
+ display: flex;
5
+ flex-direction: row;
6
+ align-items: center;
7
+ justify-content: space-between;
8
+ .components-flex-item label{
9
+ margin: 0;
10
+ }
11
+ .components-input-control__container {
12
+ max-width: max-content;
13
+ }
14
+ }
15
+ .rsssl-grid-item-content label{
16
+ font-size: var(--rsp-fs-300);
17
+ font-weight: 400;
18
+ line-height: 1.5;
19
+ text-transform: unset;
20
+ box-sizing: border-box;
21
+ display: inherit;
22
+ max-width: 100%;
23
+ z-index: 1;
24
+ overflow: hidden;
25
+ text-overflow: ellipsis;
26
+ white-space: nowrap;
27
+ }
28
+ .components-base-control__field{
29
+ margin-bottom: 0;
30
+ }
31
+ .components-toggle-control{
32
+ .components-base-control__field, .components-flex{
33
+ display: flex;
34
+ flex-direction: row-reverse;
35
+ align-items: center;
36
+ justify-content: space-between;
37
+ .components-form-toggle{
38
+ margin-right: 0;
39
+ }
40
+ }
41
+ }
42
+ .components-form-toggle.is-checked .components-form-toggle__track{
43
+ background-color: var(--rsp-green);
44
+ }
45
+ .rsssl-grid-item{
46
+ .rsssl-grid-item-content{
47
+ padding: var(--rsp-spacing-xs) 0;
48
+ }
49
+ }
50
+ .rsssl-field-wrap, .rsssl-settings-block-intro{
51
+ padding-block: var(--rsp-spacing-s);
52
+ @include rsssl-inline-block-padding;
53
+ overflow: hidden;
54
+ & > .rsssl-field-wrap{
55
+ padding: 0;
56
+ }
57
+ }
58
+ .rsssl-field-button{
59
+ display: flex;
60
+ justify-content: space-between;
61
+ flex-wrap: wrap;
62
+ align-items: center;
63
+ }
64
+ }
65
+
66
+ .rsssl-highlight {
67
+ background-color: transparent;
68
+ border-left: 4px solid var(--rsp-green);
69
+ -o-animation: fadeIt 3s ease-in-out;
70
+ animation: fadeIt 3s ease-in-out;
71
+ }
72
+
73
+ @-o-keyframes fadeIt {
74
+ 0% { background-color: transparent; }
75
+ 30% { background-color: var(--rsp-green-faded); }
76
+ 100% {
77
+ border-right: 0;
78
+ background-color: inherit;
79
+ }
80
+ }
81
+ @keyframes fadeIt {
82
+ 0% {
83
+ background-color: transparent;
84
+ border-right: 0;
85
+ }
86
+ 30% { background-color: var(--rsp-green-faded); }
87
+ 100% { background-color: inherit; }
88
+ }
89
+ }
90
+
91
+ //switch padding to top, to prevent tasks from getting stuck to text field
92
+ .rsssl-license {
93
+ .rsssl-task-element {
94
+ padding-top: var(--rsp-spacing-s);
95
+ padding-bottom: 0;
96
+ }
97
+ .rsssl-license-field{
98
+ display:flex;
99
+ }
100
+ }
assets/css/admin/modules/wizard/learning-mode.scss ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl-learningmode-placeholder {
2
+ height:150px;
3
+ div {
4
+ background-color:var(--rsp-grey-200);
5
+ margin:10px 0;
6
+ height:20px;
7
+ }
8
+ }
9
+
10
+ .rsssl-learning-mode-delete {
11
+ cursor: pointer;
12
+ background: none;
13
+ border: none;
14
+ font-size: 1.5em;
15
+ font-weight: 700;
16
+ }
17
+ .rsssl-locked-overlay {
18
+ .rsssl-open {
19
+ float: left;
20
+ margin-right: 12px;
21
+ }
22
+
23
+ .rsssl-progress-status {
24
+ @extend .rsssl-task-status;
25
+ &.rsssl-learning-mode-completed, &.rsssl-learning-mode-enforced {
26
+ background-color: var(--rsp-color-success);
27
+ color:#fff;
28
+ }
29
+ &.rsssl-learning-mode {
30
+ background-color: var(--rsp-color-open);
31
+
32
+ }
33
+ &.rsssl-disabled, &.rsssl-learning-mode-disabled {
34
+ background-color: var(--rsp-color-disabled);
35
+ }
36
+
37
+ }
38
+ }
39
+
40
+ .rsssl-learning-mode-footer {
41
+ display:flex;
42
+ align-items: center;
43
+ justify-content: flex-start;
44
+ gap: var(--rsp-spacing-s);
45
+ select {
46
+ margin-left:auto;
47
+ }
48
+ label {
49
+ display: flex;
50
+ align-items: center;
51
+ input{
52
+ margin-top: 0;
53
+ }
54
+ }
55
+ }
assets/css/admin/modules/wizard/letsencrypt.scss ADDED
@@ -0,0 +1,123 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl-lets-encrypt-tests {
2
+ margin:var(--rsp-spacing-xs) var(--rsp-spacing-xl);
3
+ .rsssl-progress-bar {
4
+ padding-block: 0;
5
+ margin-bottom:var(--rsp-spacing-m);
6
+ .rsssl-progress {
7
+ overflow: hidden;
8
+ height: var(--rsp-spacing-m);
9
+ border-radius: 5px;
10
+ background-color: var(--rsp-grey-200);
11
+
12
+ .rsssl-bar {
13
+ height: 100%;
14
+ background-color: var(--rsp-color-success);
15
+
16
+ &.rsssl-orange {
17
+ background-color: var(--rsp-color-warning);
18
+ }
19
+ }
20
+ }
21
+ }
22
+
23
+ p {
24
+ margin-bottom:var(--rsp-spacing-m);
25
+ }
26
+
27
+ .rsssl-progress-text {
28
+ display: flex;
29
+ align-items: center;
30
+ @include rsssl-block-padding;
31
+ padding-block: 0;
32
+ padding-top: var(--rsp-spacing-xs);
33
+
34
+ .rsssl-progress-percentage {
35
+ font-size: 32px;
36
+ font-weight: 700;
37
+ }
38
+
39
+ .rsssl-progress-text-span {
40
+ margin-left: 35px;
41
+ font-size: 18px;
42
+ font-weight: 600;
43
+ a {
44
+ margin-left: 3px;
45
+ }
46
+ }
47
+ }
48
+
49
+ ul {
50
+ li {
51
+ display:flex;
52
+ margin-bottom:15px;
53
+ .rsssl-icon {
54
+ margin-right:7px;
55
+ }
56
+
57
+ /*Nested li */
58
+ ul li:before {
59
+ background-color: var(--rsp-grey-500);
60
+ color: #fff;
61
+ height: 6px;
62
+ width: 6px;
63
+ border-radius: 50%;
64
+ content: '';
65
+ position: absolute;
66
+ margin-top: 7px;
67
+ margin-left: -19px;
68
+ }
69
+ }
70
+ }
71
+
72
+ .rsssl-test-results {
73
+ ul {
74
+ li {
75
+ display:block;
76
+ }
77
+ }
78
+ h4 {
79
+ margin:var(--rsp-spacing-m) 0;
80
+ }
81
+ a+button {
82
+ margin-left:var(--rsp-spacing-m);
83
+ }
84
+ .rsssl-certificate-data {
85
+ display:none;
86
+ }
87
+ .rsssl-dns-text-records {
88
+
89
+ div {
90
+ display:flex;
91
+ flex-direction: row;
92
+ .rsssl-dns-domain, .rsssl-dns-field {
93
+ margin-right:var(--rsp-spacing-m);
94
+ width: 50%;
95
+ }
96
+ }
97
+ }
98
+ }
99
+
100
+ .rsssl-modal-content-step-footer {
101
+ display:flex;
102
+ align-items: center;
103
+ margin-top: var(--rsp-spacing-l);
104
+ gap: var(--rsp-spacing-m);
105
+ .components-toggle-control .components-base-control__field{
106
+ margin:0;
107
+ flex-direction: initial;
108
+ .components-toggle-control__label {
109
+ margin-right:12px;
110
+ }
111
+ }
112
+ //button, a, label{
113
+ // font-size: var(--rsp-fs-400);
114
+ // font-weight: 500;
115
+ // line-height: 1.5;
116
+ //}
117
+ }
118
+
119
+ .rsssl-modal-subtitle {
120
+ display:none;
121
+ }
122
+ }
123
+
assets/css/admin/modules/wizard/menu.scss ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl-wizard-menu{
2
+ height: fit-content;
3
+ .rsssl-grid-item-content{
4
+ padding: 0;
5
+ padding-bottom: var(--rsp-spacing-l);
6
+ }
7
+ }
8
+ .rsssl-wizard-menu-items {
9
+ .rsssl-menu-item{
10
+ a{
11
+ display: flex;
12
+ align-items: center;
13
+ gap: var(--rsp-spacing-xs);
14
+ text-decoration: none;
15
+ color: var(--rsp-text-color);
16
+ font-size: var(--rsp-fs-400);
17
+ padding-block: var(--rsp-spacing-xs);
18
+ @include rsssl-inline-block-padding;
19
+ transition: all 0.2s ease-in-out;
20
+ border-left: 4px solid transparent;
21
+ }
22
+ &.rsssl-active{
23
+ > a{
24
+ //text-decoration: underline;
25
+ color: var(--rsp-dark-blue);
26
+ font-weight: 600;
27
+ border-left: 4px solid var(--rsp-dark-blue);
28
+ //background-color: #f2e6c966;
29
+ }
30
+ }
31
+ &.rsssl-featured{
32
+ a{
33
+ //padding-block: var(--rsp-spacing-m);
34
+ //background: var(--rsp-dark-blue-faded);
35
+ font-weight: 600;
36
+ flex-wrap: wrap;
37
+ .rsssl-menu-item-featured-pill{
38
+ background: var(--rsp-green);
39
+ color: var(--rsp-text-color-white);
40
+ padding: 2px 9px;
41
+ border-radius: var(--rsp-border-radius);
42
+ font-size: var(--rsp-fs-100);
43
+ }
44
+ }
45
+ }
46
+
47
+
48
+ &.rsssl-premium{
49
+ a{
50
+ background: var(--rsp-dark-blue-faded);
51
+ flex-wrap: wrap;
52
+ .rsssl-menu-item-featured-pill{
53
+ background: var(--rsp-dark-blue);
54
+ color: var(--rsp-text-color-white);
55
+ padding: 2px 9px;
56
+ border-radius: var(--rsp-border-radius);
57
+ font-size: var(--rsp-fs-100);
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ .rsssl-premium-menu-item {
64
+ background: var(--rsp-dark-blue-faded);
65
+ div {
66
+ display: flex;
67
+ align-items: center;
68
+ gap: var(--rsp-spacing-xs);
69
+ text-decoration: none;
70
+ color: var(--rsp-text-color);
71
+ font-size: var(--rsp-fs-400);
72
+ padding-block: var(--rsp-spacing-xs);
73
+ @include rsssl-inline-block-padding;
74
+ transition: all 0.2s ease-in-out;
75
+ border-left: 4px solid transparent;
76
+ }
77
+ }
78
+
79
+ .rsssl-submenu-item{
80
+ a{
81
+ padding-left: calc(var(--rsp-spacing-l) + var(--rsp-spacing-m));
82
+ font-size: var(--rsp-fs-300);
83
+ }
84
+ }
85
+ }
assets/css/admin/modules/wizard/mixed-content-scan.scss ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl-mixedcontentscan {
2
+ .rsssl-mixed-content-placeholder {
3
+ height:250px;
4
+ div {
5
+ background-color:var(--rsp-grey-200);
6
+ margin:10px 0;
7
+ height:20px;
8
+ }
9
+ }
10
+ .rsssl-shield-overlay {
11
+ height:250px;
12
+ align-items: center;
13
+ justify-content: center;
14
+ display:flex;
15
+ }
16
+
17
+ .rsssl-field-wrap {
18
+ .rdt_TableCol, .rdt_TableCell {
19
+ min-width: 80px;
20
+ }
21
+ }
22
+
23
+ .rsssl-progress-container {
24
+ .rsssl-progress-bar {
25
+ border-radius:5px;
26
+ height:20px;
27
+ background-color:var(--rsp-green);
28
+ }
29
+ }
30
+ .rsssl-task-status{
31
+ min-width: min-content;
32
+ &.rsssl-warning {
33
+ background-color: var(--rsp-yellow);
34
+ color: var(--rsp-text-color);
35
+ }
36
+ }
37
+ button.button{
38
+ line-height: 1.5;
39
+ min-height: 10px;
40
+ }
41
+ .rsssl-grid-item-content-footer{
42
+ display: flex;
43
+ gap: var(--rsp-spacing-s);
44
+ }
45
+ .rsssl-current-scan-action, .rsssl-mixed-content-description {
46
+ margin:10px 5px;
47
+ font-size: var(--rsp-fs-300);
48
+ }
49
+ }
assets/css/admin/modules/wizard/notice.scss ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl-wizard-help {
2
+ display: flex;
3
+ flex-wrap: wrap;
4
+ align-content: flex-start;
5
+ gap: var(--rsp-spacing-xs);
6
+ details{
7
+ font-size: var(--rsp-fs-200);
8
+ .rsssl-help-more-info {
9
+ display: flex;
10
+ flex-direction: row;
11
+ margin-top: 12px;
12
+ }
13
+ summary {
14
+
15
+ display: grid;
16
+ grid-template-columns: 1fr auto;
17
+ justify-content: space-between;
18
+ font-size: var(--rsp-fs-300);
19
+ font-weight: 600;
20
+ cursor:pointer;
21
+ &::-webkit-details-marker {
22
+ display:none;
23
+ }
24
+ &:first-of-type {
25
+ list-style-type: none;
26
+ }
27
+ .rsssl-icon{
28
+ transition: all .3s ease-in-out;
29
+ transform: rotate(0deg);
30
+ }
31
+ }
32
+ }
33
+ code{
34
+ white-space: pre-line;
35
+ display: block;
36
+ }
37
+ summary, p {
38
+ font-size: var(--rsp-fs-200);
39
+ }
40
+ details[open]{
41
+ padding: var(--rsp-spacing-s) var(--rsp-spacing-m);
42
+ summary{
43
+ padding: 0;
44
+ padding-bottom: var(--rsp-spacing-xs);
45
+ .rsssl-icon{
46
+ transform: rotate(180deg);
47
+ }
48
+ }
49
+ }
50
+ }
51
+
52
+ .rsssl-wizard-help {
53
+ .rsssl-help-header {
54
+ width:100%;
55
+ display:flex;
56
+ padding:10px;
57
+ .rsssl-help-title{
58
+ font-size:18px;
59
+ }
60
+ .rsssl-help-control {
61
+ margin-left:auto;
62
+ cursor:pointer;
63
+ }
64
+
65
+ }
66
+ }
67
+
68
+ .rsssl-wizard-help-notice {
69
+ width: 100%;
70
+ @include rsssl-block;
71
+ border-radius: var(--rsp-border-radius-s);
72
+ height: fit-content;
73
+ background-color: var(--rsp-dark-blue-faded);
74
+ &.rsssl-warning {
75
+ background-color: var(--rsp-yellow-faded);
76
+ }
77
+ summary, p{
78
+ padding: var(--rsp-spacing-s) var(--rsp-spacing-m);
79
+ }
80
+ }
81
+
assets/css/admin/modules/wizard/permissions-policy.scss ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ .rsssl div[class^=rsssl-wizard-] {
2
+ .rsssl-permissions_policy {
3
+ .rsssl-locked .rsssl-shield-overlay {
4
+ top:calc(100% - 300px);
5
+ }
6
+ }
7
+ }
assets/css/admin/modules/wizard/snackbar.scss ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl{
2
+ .components-snackbar-list.edit-site-notices{
3
+ width: max-content;
4
+ position: fixed;
5
+ bottom: var(--rsp-spacing-m);
6
+ right: var(--rsp-spacing-l);
7
+ & > div{
8
+ margin-left: auto;
9
+ }
10
+ .components-snackbar{
11
+ @include rsssl-block;
12
+ color: var(--rsp-color-success);
13
+ background-color: #fff;
14
+ font-weight:700;
15
+ font-size:14px;
16
+ }
17
+ }
18
+ }
assets/css/admin/states.scss ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl{
2
+ /*skeleton*/
3
+ $panelheight : 38px;
4
+ $panelborder : 1px;
5
+ $paneloffset : 3*($panelborder+$panelheight);
6
+ $rows : 6;
7
+ .rsssl-skeleton:empty {
8
+ margin: auto;
9
+ margin-bottom: 25px;
10
+ width: 100%;
11
+ height: ($rows*$panelheight)+($rows+1)*$panelborder; /* change height to see repeat-y behavior */
12
+
13
+ background-image:
14
+ linear-gradient( 100deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5) 70%, rgba(255, 255, 255, 0.5) 15% ),
15
+ linear-gradient( #f2f2f2 $panelheight, transparent 0 ),
16
+ linear-gradient( #f2f2f2 $panelheight, transparent 0 ),
17
+ linear-gradient( #f2f2f2 $panelheight, transparent 0 ),
18
+ linear-gradient( #f2f2f2 $panelheight, transparent 0 );
19
+
20
+ background-repeat: repeat-y;
21
+
22
+ background-size:
23
+ 50px 200px, /* highlight */
24
+ 100% $paneloffset,
25
+ 100% $paneloffset,
26
+ 100% $paneloffset,
27
+ 100% $paneloffset;
28
+
29
+ background-position:
30
+ 0 0, /* highlight */
31
+ $panelborder $panelborder,
32
+ $panelborder $panelheight+(2*$panelborder),
33
+ $panelborder (2*$panelheight)+(3*$panelborder),
34
+ $panelborder (3*$panelheight)+(4*$panelborder);
35
+
36
+ background-color:#d6d8db;
37
+ border-right: $panelborder solid #d6d8db;
38
+ animation: shine 2.5s infinite;
39
+ }
40
+ @keyframes shine {
41
+ to {
42
+ background-position:
43
+ 100% 0, /* move highlight to right */
44
+ $panelborder $panelborder,
45
+ $panelborder $panelheight+(2*$panelborder),
46
+ $panelborder (2*$panelheight)+(3*$panelborder),
47
+ $panelborder (3*$panelheight)+(4*$panelborder);
48
+ }
49
+ }
50
+
51
+ /*loader*/
52
+ .rsssl-loader {
53
+ margin: 0;
54
+ width: 50px;
55
+ height: 15px;
56
+ text-align: center;
57
+ font-size: 10px;
58
+ > div {
59
+ margin:1px;
60
+ background-color: #333;
61
+ height: 100%;
62
+ width: 3px;
63
+ display: inline-block;
64
+ -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out;
65
+ animation: sk-stretchdelay 1.2s infinite ease-in-out;
66
+ }
67
+
68
+ &.rsssl-loader-white >div {
69
+ background-color: #fff;
70
+ }
71
+
72
+ .rect2 {
73
+ -webkit-animation-delay: -1.1s;
74
+ animation-delay: -1.1s;
75
+ }
76
+
77
+ .rect3 {
78
+ -webkit-animation-delay: -1.0s;
79
+ animation-delay: -1.0s;
80
+ }
81
+
82
+ .rect4 {
83
+ -webkit-animation-delay: -0.9s;
84
+ animation-delay: -0.9s;
85
+ }
86
+
87
+ .rect5 {
88
+ -webkit-animation-delay: -0.8s;
89
+ animation-delay: -0.8s;
90
+ }
91
+ }
92
+
93
+ .button-primary .rsssl-loader div {
94
+ background-color: #fff;
95
+ }
96
+
97
+
98
+
99
+ @-webkit-keyframes sk-stretchdelay {
100
+ 0%, 40%, 100% { -webkit-transform: scaleY(0.4) }
101
+ 20% { -webkit-transform: scaleY(1.0) }
102
+ }
103
+
104
+ @keyframes sk-stretchdelay {
105
+ 0%, 40%, 100% {
106
+ transform: scaleY(0.4);
107
+ -webkit-transform: scaleY(0.4);
108
+ } 20% {
109
+ transform: scaleY(1.0);
110
+ -webkit-transform: scaleY(1.0);
111
+ }
112
+ }
113
+
114
+ }
assets/css/admin/theme.scss ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rsssl{
2
+ // Plugin specific variables down here please
3
+ --rsp-brand-primary: var(--rsp-yellow);
4
+ --rsp-brand-secondary: var(--rsp-blue);
5
+ --rsp-brand-primary-faded: var(--rsp-yellow-faded);
6
+ }
7
+ //@media (prefers-color-scheme: dark) {
8
+ // :root {
9
+ // // Borders and stuff;
10
+ // --rsp-border: 1px solid var(--rsp-border-color);
11
+ // --rsp-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;
12
+ // --rsp-box-shadow-dark: rgba(0, 0, 0, 0.2) 0px 4px 6px -1px, rgba(0, 0, 0, 0.12) 1px 0px 4px 1px;
13
+ // --rsp-border-color: #dfdfdf;
14
+ //
15
+ // // RSP Brand Colors
16
+ // --rsp-black: #333;
17
+ // --rsp-white: #fff;
18
+ // --rsp-yellow: #f4bf3e;
19
+ // --rsp-blue: #29b6f6;
20
+ // --rsp-dark-blue: #1E73BE;
21
+ // --rsp-green: #2e8a37;
22
+ // --rsp-red: #D7263D;
23
+ // --rsp-pink: #E35899;
24
+ // --rsp-wp-blue: #007cba;
25
+ //
26
+ // --rsp-yellow-faded: #f2e6c9;
27
+ // --rsp-blue-faded: #ecf8fe;
28
+ // --rsp-dark-blue-faded: #ebf2f9;
29
+ // --rsp-green-faded: #ecf4ed;
30
+ // --rsp-red-faded: #fbebed;
31
+ // --rsp-pink-faded: #fceff5;
32
+ // --rsp-wp-blue-faded: #c6e0ef;
33
+ //
34
+ // --rsp-background-block-color: var(--rsp-black);
35
+ // --rsp-background-color: var(--rsp-grey-600);
36
+ //
37
+ // //Input colors
38
+ // --rsp-input-background-color: #fff;
39
+ // --rsp-input-text-color: var(--rsp-text-color);
40
+ // --rsp-input-border-color: var(--rsp-grey-400);
41
+ //
42
+ // --rsp-text-color: rgba(255, 255, 255, 0.95);
43
+ // --rsp-text-color-invert: rgba(26, 26, 26, 0.95);
44
+ // --rsp-text-color-white: rgba(255, 255, 255, 0.95);
45
+ // --rsp-text-color-light: rgba(69, 69, 82, 0.95);
46
+ //
47
+ // --rsp-grey-100: #fafafa;
48
+ // --rsp-grey-200: #f9f9f9;
49
+ // --rsp-grey-300: #ededed;
50
+ // --rsp-grey-400: #c6c6c6;
51
+ // --rsp-grey-500: #737373;
52
+ // --rsp-grey-600: #696969;
53
+ //
54
+ // // Notification colors
55
+ // --rsp-color-success: var(--rsp-green);
56
+ // --rsp-color-error: var(--rsp-red);
57
+ // --rsp-color-open: var(--rsp-yellow);
58
+ // --rsp-color-disabled: var(--rsp-grey-300);
59
+ // }
60
+ // .rsssl-header .rsssl-logo{
61
+ // filter: brightness(0) invert(1);
62
+ // }
63
+ //}
assets/css/main-rtl.css DELETED
@@ -1,968 +0,0 @@
1
- .rsssl-high-contrast {
2
- /**
3
- Let's Encrypt
4
- */
5
- }
6
- .rsssl-high-contrast .rsssl-progress-status.rsssl-success,
7
- .rsssl-high-contrast .rsssl-progress-status.rsssl-warning,
8
- .rsssl-high-contrast .rsssl-progress-status.rsssl-premium,
9
- .rsssl-high-contrast .rsssl-progress-status.rsssl-open {
10
- background-color: black !important;
11
- color: white;
12
- }
13
- .rsssl-high-contrast .rsssl-wizard-progress-bar-value {
14
- background: black !important;
15
- }
16
- .rsssl-high-contrast .rsssl-icon.rsssl-success {
17
- color: black !important;
18
- }
19
- .rsssl-high-contrast .rsssl-icon.rsssl-success svg {
20
- stroke: black !important;
21
- fill: black !important;
22
- }
23
- .rsssl-high-contrast .rsssl-help-warning-wrap .rsssl-notice {
24
- color: white !important;
25
- }
26
- .rsssl-high-contrast .rsssl-help-warning-wrap .rsssl-warning {
27
- background-color: black;
28
- }
29
- .rsssl-high-contrast .progress .bar {
30
- background-color: black !important;
31
- }
32
- .rsssl-high-contrast .rsssl-notice a {
33
- color: white !important;
34
- }
35
- .rsssl-high-contrast .rsssl.progress {
36
- background-color: black !important;
37
- }
38
- .rsssl-high-contrast .select2-results__option--highlighted[aria-selected] {
39
- background-color: black;
40
- }
41
- .rsssl-high-contrast .rsssl-save-settings-feedback {
42
- color: black !important;
43
- }
44
- .rsssl-high-contrast .nav-tab-active {
45
- border-bottom: 2px solid black !important;
46
- }
47
- .rsssl-high-contrast .rsssl-update-count {
48
- background-color: black !important;
49
- }
50
- .rsssl-high-contrast .paginate_button.current {
51
- background-color: black !important;
52
- color: white;
53
- border: 1px solid black;
54
- }
55
- .rsssl-high-contrast .rsssl-tasks {
56
- color: black !important;
57
- }
58
- .rsssl-high-contrast .rsssl-close-warning-x {
59
- color: black;
60
- }
61
- .rsssl-high-contrast .update-count {
62
- background-color: black;
63
- }
64
- .rsssl-high-contrast .rsssl-bullet:hover {
65
- background-color: black;
66
- }
67
- .rsssl-high-contrast .button-rsssl-primary,
68
- .rsssl-high-contrast .button-primary,
69
- .rsssl-high-contrast .button-secondary,
70
- .rsssl-high-contrast .button-rsssl-secondary,
71
- .rsssl-high-contrast .button-rsssl-tertiary,
72
- .rsssl-high-contrast .revoke-from-csp,
73
- .rsssl-high-contrast .button-default {
74
- background-color: black !important;
75
- border-color: black !important;
76
- color: white;
77
- }
78
- .rsssl-high-contrast .button:hover {
79
- color: white;
80
- }
81
- .rsssl-high-contrast input:checked + .rsssl-slider {
82
- background-color: black;
83
- }
84
- .rsssl-high-contrast .rsssl-help-modal,
85
- .rsssl-high-contrast .rsssl-help-modal h2 {
86
- background-color: black !important;
87
- color: white !important;
88
- }
89
- .rsssl-high-contrast .rsssl-help-modal.rsssl-notice:after {
90
- border-left: 15px solid black;
91
- }
92
- .rsssl-high-contrast .rsssl-priority {
93
- border: 1px solid white !important;
94
- }
95
- /**move to css variables in time */
96
- :root {
97
- --rsp-break-xs: 400px;
98
- --rsp-break-s: 576px;
99
- --rsp-break-m: 768px;
100
- --rsp-break-l: 992px;
101
- --rsp-break-xl: 1200px;
102
- --rsp-break-xxl: 1400px;
103
- --rsp-spacing-xs: 10px;
104
- --rsp-spacing-s: 15px;
105
- --rsp-spacing-m: 20px;
106
- --rsp-spacing-l: 30px;
107
- --rsp-spacing-xl: 40px;
108
- --rsp-grid-margin: var(--rsp-spacing-xs);
109
- --rsp-grid-gap: var(--rsp-spacing-m);
110
- --rsp-border-radius: 12px;
111
- --rsp-border: 1px solid var(--rsp-border-color);
112
- --rsp-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;
113
- --rsp-border-color: #dfdfdf;
114
- --rsp-black: #333;
115
- --rsp-white: #fff;
116
- --rsp-yellow: #f4bf3e;
117
- --rsp-blue: #29b6f6;
118
- --rsp-dark-blue: #5A6FA5;
119
- --rsp-green: #2e8a37;
120
- --rsp-red: #D7263D;
121
- --rsp-pink: #E35899;
122
- --rsp-orange: #f39c12;
123
- --rsp-yellow-faded: rgba(244, 191, 62, 0.1);
124
- --rsp-blue-faded: rgba(41, 182, 246, 0.1);
125
- --rsp-dark-blue-faded: rgba(41, 182, 246, 0.1);
126
- --rsp-green-faded: rgba(46, 138, 55, 0.1);
127
- --rsp-red-faded: rgba(215, 38, 61, 0.1);
128
- --rsp-pink-faded: rgba(227, 88, 153, 0.1);
129
- --rsp-orange-faded: rgba(243, 156, 18, 0.1);
130
- --rsp-background-block-color: var(--rsp-white);
131
- --rsp-background-color: #f0f0f1;
132
- --rsp-input-background-color: #F1F1F1;
133
- --rsp-input-text-color: var(--rsp-text-color);
134
- --rsp-input-border-color: #8c8f94;
135
- --rsp-text-color: rgba(26, 26, 26, 0.9);
136
- --rsp-text-color-invert: rgba(255, 255, 255, 0.9);
137
- --rsp-text-color-white: rgba(255, 255, 255, 0.9);
138
- --rsp-text-color-light: rgba(69, 69, 82, 0.9);
139
- --rsp-grey-200: #fafafa;
140
- --rsp-grey-300: #ededed;
141
- --rsp-grey-400: #c6c6c6;
142
- --rsp-grey-500: #737373;
143
- --rsp-grey-600: #696969;
144
- --rsp-color-success: var(--rsp-green);
145
- --rsp-color-error: var(--rsp-red);
146
- --rsp-color-warning: var(--rsp-orange);
147
- --rsp-color-open: var(--rsp-yellow);
148
- --rsp-fs-100: 0.6125rem;
149
- --rsp-fs-200: 0.625rem;
150
- --rsp-fs-300: 0.8125rem;
151
- --rsp-fs-400: 0.875rem;
152
- --rsp-fs-500: 1rem;
153
- --rsp-fs-600: 1.125rem;
154
- --rsp-fs-700: 1.25rem;
155
- --rsp-fs-800: 1.5rem;
156
- --rsp-fs-900: 2.5rem;
157
- --rsp-brand-primary: var(--rsp-green);
158
- --rsp-brand-secondary: var(--rsp-yellow);
159
- --rsp-brand-primary-faded: var(--rsp-green-faded);
160
- }
161
- /*
162
- Hide nags from other plugins
163
- */
164
- .error:not(.really-simple-plugins),
165
- .notice:not(.really-simple-plugins),
166
- .update-nag:not(.really-simple-plugins),
167
- .notice-info:not(.really-simple-plugins) {
168
- display: none !important;
169
- }
170
- .rsssl-spacer {
171
- width: 10px;
172
- }
173
- .rsssl-scroll-container {
174
- height: 227px;
175
- overflow-y: auto;
176
- border-radius: 0;
177
- }
178
- .rsssl-scroll-container::-webkit-scrollbar-track {
179
- border-radius: 10px;
180
- -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0);
181
- background-color: transparent;
182
- }
183
- .rsssl-scroll-container::-webkit-scrollbar {
184
- border-radius: 10px;
185
- width: 8px;
186
- background-color: var(--rsp-grey-300);
187
- cursor: pointer;
188
- }
189
- .rsssl-scroll-container::-webkit-scrollbar-thumb {
190
- background-color: var(--rsp-grey-400);
191
- border-radius: 10px;
192
- }
193
- /* comments on settings pages */
194
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text {
195
- color: #888;
196
- font-size: 13px;
197
- font-weight: normal;
198
- font-style: italic;
199
- padding-bottom: 0 !important;
200
- margin-top: 0 !important;
201
- }
202
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text td {
203
- padding-top: 0!important;
204
- }
205
- .rsssl-networksettings-overlay {
206
- position: absolute;
207
- top: 0;
208
- right: 0;
209
- bottom: 0;
210
- left: 0;
211
- background: rgba(255, 255, 255, 0.8);
212
- }
213
- .rsssl-networksettings-overlay .rsssl-disabled-settings-overlay {
214
- position: absolute;
215
- width: calc(100% - 65px);
216
- bottom: 0;
217
- background-color: #fff;
218
- padding: 20px;
219
- margin: 12px;
220
- box-shadow: 0 0 5px 5px rgba(223, 222, 222, 0.4);
221
- }
222
- .rsssl-networksettings-overlay .rsssl-disabled-settings-overlay .rsssl-open {
223
- float: right;
224
- margin-left: 12px;
225
- }
226
- /* Hide review on own settings page */
227
- #rsssl_do_activate_ssl {
228
- margin-left: 10px;
229
- }
230
- .rlrsssl-review {
231
- display: none;
232
- }
233
- .rsssl-main {
234
- flex: 1;
235
- width: 80%;
236
- float: right;
237
- }
238
- .rsssl-sidebar img {
239
- max-width: 100%;
240
- /*height:inherit;*/
241
- }
242
- .really-simple-ssl-table {
243
- display: flex;
244
- flex-direction: column;
245
- }
246
- .rsssl-table-td-main-content {
247
- width: 100%;
248
- }
249
- .really-simple-ssl-table tr:first-child {
250
- border-top-right-radius: 0.55rem;
251
- border-top-left-radius: 0.55rem;
252
- }
253
- .really-simple-ssl-table tr:last-child {
254
- margin-bottom: 0;
255
- border-bottom-right-radius: 0.55rem;
256
- border-bottom-left-radius: 0.55rem;
257
- }
258
- .really-simple-ssl-table tr {
259
- position: relative;
260
- padding-right: 5px;
261
- padding-top: 10px;
262
- background-color: #fff;
263
- }
264
- .debug-log {
265
- background-color: #fff;
266
- padding: 15px;
267
- }
268
- .rsssl-icons {
269
- width: 15px;
270
- height: 15px;
271
- }
272
- .rsssl-update-count {
273
- margin-right: 4px !important;
274
- display: inline-block;
275
- vertical-align: top;
276
- box-sizing: border-box;
277
- margin: 1px 2px -1px 0;
278
- padding: 0 5px;
279
- min-width: 18px;
280
- height: 18px;
281
- border-radius: 9px;
282
- background-color: #D7263D;
283
- color: #fff;
284
- font-size: 11px;
285
- line-height: 1.6;
286
- text-align: center;
287
- z-index: 26;
288
- }
289
- /* rsssl-rsssl-tooltip for settings page */
290
- /* Base styles for the element that has a rsssl-tooltip */
291
- [data-rsssl-tooltip],
292
- .rsssl-tooltip {
293
- position: relative;
294
- cursor: pointer;
295
- }
296
- /* Base styles for the entire tooltip */
297
- [data-rsssl-tooltip]:before,
298
- [data-rsssl-tooltip]:after,
299
- .rsssl-tooltip:before,
300
- .rsssl-tooltip:after {
301
- position: absolute;
302
- visibility: hidden;
303
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
304
- filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
305
- opacity: 0;
306
- -webkit-transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, -webkit-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
307
- -moz-transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, -moz-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
308
- transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
309
- -webkit-transform: translate3d(0, 0, 0);
310
- -moz-transform: translate3d(0, 0, 0);
311
- transform: translate3d(0, 0, 0);
312
- pointer-events: none;
313
- }
314
- /* Show the entire rsssl-tooltip on hover and focus */
315
- [data-rsssl-tooltip]:hover:before,
316
- [data-rsssl-tooltip]:hover:after,
317
- [data-rsssl-tooltip]:focus:before,
318
- [data-rsssl-tooltip]:focus:after,
319
- .rsssl-tooltip:hover:before,
320
- .rsssl-tooltip:hover:after,
321
- .rsssl-tooltip:focus:before,
322
- .rsssl-tooltip:focus:after {
323
- visibility: visible;
324
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
325
- filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
326
- opacity: 1;
327
- }
328
- /* Base styles for the rsssl-tooltip's directional arrow */
329
- .rsssl-tooltip:before,
330
- [data-rsssl-tooltip]:before {
331
- z-index: 1001;
332
- border: 6px solid transparent;
333
- background: transparent;
334
- content: "";
335
- }
336
- /* Base styles for the rsssl-tooltip's content area */
337
- .rsssl-tooltip:after,
338
- [data-rsssl-tooltip]:after {
339
- z-index: 1000;
340
- padding: 8px;
341
- width: 220px;
342
- background-color: #000;
343
- background-color: hsla(0, 0%, 20%, 0.9);
344
- color: #fff;
345
- content: attr(data-rsssl-tooltip);
346
- font-size: 14px;
347
- line-height: 1.2;
348
- }
349
- /* Directions */
350
- /* Top (default) */
351
- .rsssl-tooltip-right {
352
- font-weight: normal;
353
- }
354
- [data-rsssl-tooltip]:before,
355
- [data-rsssl-tooltip]:after,
356
- .rsssl-tooltip:before,
357
- .rsssl-tooltip:after,
358
- .rsssl-tooltip-top:before,
359
- .rsssl-tooltip-top:after {
360
- bottom: 100%;
361
- right: 50%;
362
- }
363
- [data-rsssl-tooltip]:before,
364
- .rsssl-tooltip:before,
365
- .rsssl-tooltip-top:before {
366
- margin-right: -6px;
367
- margin-bottom: -12px;
368
- border-top-color: #000;
369
- border-top-color: hsla(0, 0%, 20%, 0.9);
370
- }
371
- /* Horizontally align top/bottom rsssl-tooltips */
372
- [data-rsssl-tooltip]:after,
373
- .rsssl-tooltip:after,
374
- .rsssl-tooltip-top:after {
375
- margin-right: -80px;
376
- }
377
- [data-rsssl-tooltip]:hover:before,
378
- [data-rsssl-tooltip]:hover:after,
379
- [data-rsssl-tooltip]:focus:before,
380
- [data-rsssl-tooltip]:focus:after,
381
- .rsssl-tooltip:hover:before,
382
- .rsssl-tooltip:hover:after,
383
- .rsssl-tooltip:focus:before,
384
- .rsssl-tooltip:focus:after,
385
- .rsssl-tooltip-top:hover:before,
386
- .rsssl-tooltip-top:hover:after,
387
- .rsssl-tooltip-top:focus:before,
388
- .rsssl-tooltip-top:focus:after {
389
- -webkit-transform: translateY(-12px);
390
- -moz-transform: translateY(-12px);
391
- transform: translateY(-12px);
392
- }
393
- /* Left */
394
- .rsssl-tooltip-left:before,
395
- .rsssl-tooltip-left:after {
396
- left: 100%;
397
- /*bottom: 50%;*/
398
- right: auto;
399
- }
400
- .rsssl-tooltip-left:before {
401
- margin-right: 0;
402
- margin-left: -12px;
403
- margin-bottom: 0;
404
- border-top-color: transparent;
405
- border-right-color: #000;
406
- border-right-color: hsla(0, 0%, 20%, 0.9);
407
- }
408
- .rsssl-tooltip-left:hover:before,
409
- .rsssl-tooltip-left:hover:after,
410
- .rsssl-tooltip-left:focus:before,
411
- .rsssl-tooltip-left:focus:after {
412
- -webkit-transform: translateX(12px);
413
- -moz-transform: translateX(12px);
414
- transform: translateX(12px);
415
- }
416
- /* Bottom */
417
- .rsssl-tooltip-bottom:before,
418
- .rsssl-tooltip-bottom:after {
419
- top: 100%;
420
- bottom: auto;
421
- right: 50%;
422
- }
423
- .rsssl-tooltip-bottom:before {
424
- margin-top: -12px;
425
- margin-bottom: 0;
426
- border-top-color: transparent;
427
- border-bottom-color: #000;
428
- border-bottom-color: hsla(0, 0%, 20%, 0.9);
429
- }
430
- .rsssl-tooltip-bottom:hover:before,
431
- .rsssl-tooltip-bottom:hover:after,
432
- .rsssl-tooltip-bottom:focus:before,
433
- .rsssl-tooltip-bottom:focus:after {
434
- -webkit-transform: translateY(12px);
435
- -moz-transform: translateY(12px);
436
- transform: translateY(12px);
437
- }
438
- /* Right */
439
- .rsssl-tooltip-right:before,
440
- .rsssl-tooltip-right:after {
441
- bottom: 50%;
442
- right: 100%;
443
- }
444
- .rsssl-tooltip-right:before {
445
- margin-bottom: 0;
446
- margin-right: -12px;
447
- border-top-color: transparent;
448
- border-left-color: #000;
449
- border-left-color: hsla(0, 0%, 20%, 0.9);
450
- }
451
- .rsssl-tooltip-right:hover:before,
452
- .rsssl-tooltip-right:hover:after,
453
- .rsssl-tooltip-right:focus:before,
454
- .rsssl-tooltip-right:focus:after {
455
- -webkit-transform: translateX(-12px);
456
- -moz-transform: translateX(-12px);
457
- transform: translateX(-12px);
458
- }
459
- /* Move directional arrows down a bit for left/right rsssl-tooltips */
460
- .rsssl-tooltip-left:before,
461
- .rsssl-tooltip-right:before {
462
- top: 3px;
463
- }
464
- /* Vertically center rsssl-tooltip content for left/right rsssl-tooltips */
465
- .rsssl-tooltip-left:after,
466
- .rsssl-tooltip-right:after {
467
- margin-right: 0;
468
- margin-bottom: -25px;
469
- }
470
- /* Styling for the sidebar in the admin tab of the free plugin */
471
- .rsssl-really-simple-plugins-logo {
472
- background-color: #ececec;
473
- margin-right: -15px;
474
- margin-left: -15px;
475
- }
476
- .rsssl-sidebar {
477
- width: 240px;
478
- margin-top: 20px;
479
- padding-right: 15px;
480
- padding-left: 15px;
481
- margin-left: 15px;
482
- padding-bottom: 15px;
483
- background-color: #ECECEC;
484
- }
485
- .rsssl-sidebar-single-content-container {
486
- min-height: 125px;
487
- padding-bottom: 35px;
488
- margin-bottom: 10px;
489
- background-color: #fff;
490
- width: 100%;
491
- border-radius: 3%;
492
- }
493
- .rsssl-sidebar-single-content-container-pro {
494
- background-color: #fff;
495
- min-height: 125px;
496
- padding-bottom: 35px;
497
- margin-bottom: 10px;
498
- width: 100%;
499
- border-radius: 3%;
500
- }
501
- .rsssl-sidebar-title h3 {
502
- font-size: 0.9em;
503
- }
504
- .rsssl-sidebar-text-content-pro {
505
- font-weight: 700;
506
- font-size: 0.8em;
507
- width: 90%;
508
- /*min-height: 100px;*/
509
- margin: auto;
510
- }
511
- .rsssl-sidebar-text-content {
512
- width: 45%;
513
- padding-top: 5px;
514
- padding-left: 7px;
515
- font-weight: 700;
516
- font-size: 0.8em;
517
- float: left;
518
- margin: 10px auto;
519
- }
520
- .rsssl-pro-image {
521
- height: 30px;
522
- margin-top: 6px;
523
- }
524
- .rsssl-sidebar-image-pro {
525
- width: 90%;
526
- margin: 10px;
527
- }
528
- .rsssl-sidebar-image {
529
- width: 100px;
530
- float: right;
531
- padding: 10px;
532
- height: 100px;
533
- }
534
- @media screen and (max-width: 1024px) and (min-width: 541px) {
535
- /* Let the main container be 100% width again */
536
- .rsssl-main {
537
- width: 100%;
538
- }
539
- .rsssl-sidebar-title {
540
- /*margin: auto;*/
541
- text-align: center;
542
- }
543
- .rsssl-container {
544
- flex-direction: column;
545
- }
546
- .rsssl-sidebar {
547
- width: 100%;
548
- /*padding-left: 10%;*/
549
- }
550
- .rsssl-really-simple-plugins-logo {
551
- width: 40%;
552
- }
553
- .rsssl-sidebar-single-content-container {
554
- background-color: #fff;
555
- width: 40%;
556
- padding-right: 25px;
557
- float: right;
558
- margin-left: 25px;
559
- }
560
- .rsssl-sidebar-single-content-container-pro {
561
- width: 40%;
562
- padding-right: 25px;
563
- margin: auto auto 25px;
564
- }
565
- .rsssl-sidebar-um-text-content {
566
- width: 40%;
567
- }
568
- .rsssl-pro-image {
569
- display: none;
570
- }
571
- }
572
- @media screen and (max-width: 540px) {
573
- .rsssl-main {
574
- width: 100%;
575
- }
576
- .rsssl-container {
577
- flex-direction: column;
578
- }
579
- .rsssl-sidebar {
580
- display: grid;
581
- text-align: -webkit-center;
582
- width: 70%;
583
- }
584
- .rsssl-sidebar-um-text-content {
585
- width: 45%;
586
- }
587
- .rsssl-sidebar-single-content-container-pro {
588
- padding-bottom: 10px;
589
- }
590
- .rsssl-sidebar-single-content-container {
591
- padding-bottom: 10px;
592
- }
593
- }
594
- .rsssl-sidebar h4 {
595
- font-size: 14px;
596
- font-style: italic;
597
- }
598
- .rsssl-wrapper {
599
- padding: 30px;
600
- }
601
- .rsssl-sidebar-list {
602
- font-size: 0.9em;
603
- }
604
- #rsssl-premium-button-pro {
605
- display: inline-table;
606
- width: 40%;
607
- text-align: center;
608
- float: left;
609
- font-size: inherit;
610
- height: 25px;
611
- -webkit-border-radius: 12px;
612
- -moz-border-radius: 12px;
613
- border-radius: 12px;
614
- border: none;
615
- background-color: #000000;
616
- color: white;
617
- margin-left: 5px;
618
- }
619
- .rsssl-sidebar-content {
620
- float: right;
621
- padding-bottom: 10px;
622
- }
623
- hr {
624
- display: block;
625
- height: 1px;
626
- border: 0;
627
- border-top: 1px solid #ccc;
628
- margin: 1em 0;
629
- padding: 0;
630
- }
631
- .rsssl-container {
632
- display: flex;
633
- }
634
- #rsssl-premium-button {
635
- display: inline-table;
636
- width: 40%;
637
- text-align: center;
638
- float: left;
639
- font-size: inherit;
640
- height: 25px;
641
- border-radius: 12px;
642
- border: none;
643
- background-color: #000000;
644
- color: white;
645
- margin-left: 5px;
646
- }
647
- .rsssl-more-info-button {
648
- border: none;
649
- border-radius: 50px;
650
- clear: both;
651
- margin-top: 10px;
652
- }
653
- /*
654
- cool checkbox sliders
655
- */
656
- .rsssl-switch {
657
- position: relative;
658
- display: inline-block;
659
- width: 35px;
660
- height: 18px;
661
- }
662
- .rsssl-switch input {
663
- position: absolute;
664
- opacity: 0;
665
- display: block !important;
666
- }
667
- .rsssl-slider {
668
- position: absolute;
669
- cursor: pointer;
670
- top: 0;
671
- right: 0;
672
- left: 0;
673
- bottom: 0;
674
- background-color: #ccc;
675
- -webkit-transition: 0.4s;
676
- transition: 0.4s;
677
- }
678
- .rsssl-slider:before {
679
- position: absolute;
680
- content: "";
681
- height: 14px;
682
- width: 14px;
683
- right: 3px;
684
- bottom: 2.2px;
685
- background-color: white;
686
- -webkit-transition: 0.4s;
687
- transition: 0.4s;
688
- }
689
- .rsssl-slider.rsssl-round {
690
- border-radius: 20px;
691
- }
692
- .rsssl-slider.rsssl-round:before {
693
- border-radius: 50%;
694
- }
695
- input:checked + .rsssl-slider {
696
- background-color: #2DAAE1;
697
- }
698
- input:checked + .rsssl-slider:before {
699
- -webkit-transform: translateX(-16px);
700
- -ms-transform: translateX(-16px);
701
- transform: translateX(-16px);
702
- }
703
- input:disabled + .rsssl-slider {
704
- background-color: #b3e0f4;
705
- }
706
- input:focus + .rsssl-slider {
707
- box-shadow: 0 0 1px #2DAAE1;
708
- }
709
- .debug-log {
710
- width: 90%;
711
- }
712
- .rsssl-dashboard-plusone {
713
- margin-right: 8px;
714
- }
715
- .rsssl-highlight {
716
- background-color: #fff;
717
- border-left: 4px solid #61ce70;
718
- -o-animation: fadeIt 5s ease-in-out;
719
- animation: fadeIt 5s ease-in-out;
720
- }
721
- @-o-keyframes fadeIt {
722
- 0% {
723
- background-color: #FFFFFF;
724
- }
725
- 30% {
726
- background-color: #d6efd6;
727
- }
728
- 100% {
729
- border-right: 0;
730
- background-color: inherit;
731
- }
732
- }
733
- @keyframes fadeIt {
734
- 0% {
735
- background-color: #FFFFFF;
736
- border-right: 0;
737
- }
738
- 30% {
739
- background-color: #d6efd6;
740
- }
741
- 100% {
742
- background-color: inherit;
743
- }
744
- }
745
- .form-table th {
746
- padding-right: 10px;
747
- }
748
- .rsssl-dashboard-dismiss .close {
749
- all: initial;
750
- }
751
- .rsssl-dashboard-dismiss span {
752
- font-size: 1.5em;
753
- color: black;
754
- font-family: sans-serif;
755
- }
756
- .rsssl-dashboard-dismiss span img {
757
- height: 12px;
758
- width: 12px;
759
- }
760
- .rsssl-dashboard-dismiss span:hover {
761
- cursor: pointer;
762
- color: grey;
763
- }
764
- /* License page */
765
- .rsssl-grid .rsssl-item.rsssl-license-grid .item-container .form-table tbody tr {
766
- max-width: 100%;
767
- width: 100%;
768
- }
769
- .rsssl-grid .rsssl-item.rsssl-license-grid .item-container .rsssl-grid-item-footer input + input {
770
- margin-right: 20px;
771
- }
772
- .rsssl_notice_license {
773
- font-size: 13px !important;
774
- border-radius: 0.25rem;
775
- padding: 10px 15px;
776
- margin: 10px 0;
777
- background-color: #29b6f6;
778
- border: 1px solid #29b6f6;
779
- color: #fff;
780
- }
781
- .rsssl_notice_license h1 {
782
- font-size: 16px;
783
- }
784
- .rsssl_notice_license p {
785
- font-size: 13px !important;
786
- }
787
- .rsssl_notice_license.success {
788
- background-color: #dff0d8;
789
- border-color: #d0e9c6;
790
- color: #3c763d;
791
- }
792
- .rsssl_notice_license.warning {
793
- color: #000;
794
- background-color: #FBC43D;
795
- border-color: #FBC43D;
796
- }
797
- .rsssl_notice_license ul {
798
- list-style-type: disc;
799
- margin-right: 22px;
800
- }
801
- /**
802
- settings saved
803
- */
804
- .rsssl-container .rsssl-settings-saved,
805
- #rsssl-wizard .rsssl-settings-saved {
806
- display: none;
807
- opacity: 0;
808
- top: 20px;
809
- height: 45px;
810
- position: fixed;
811
- background-color: #fff;
812
- z-index: 999999;
813
- right: 50%;
814
- transform: translateX(50%);
815
- text-align: right;
816
- box-shadow: 0 0 5px 5px rgba(222, 222, 222, 0.2);
817
- }
818
- .rsssl-container .rsssl-settings-saved .rsssl-success,
819
- #rsssl-wizard .rsssl-settings-saved .rsssl-success {
820
- color: #61ce70;
821
- }
822
- .rsssl-container .rsssl-settings-saved svg,
823
- #rsssl-wizard .rsssl-settings-saved svg {
824
- stroke: #61ce70;
825
- fill: #61ce70;
826
- }
827
- .rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon,
828
- #rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon {
829
- display: flex;
830
- align-content: center;
831
- padding: 0 20px;
832
- }
833
- .rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon .rsssl-icon,
834
- #rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon .rsssl-icon {
835
- margin: 12px 0 0 0;
836
- height: 30px;
837
- width: 30px;
838
- }
839
- .rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon span,
840
- #rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon span {
841
- display: flex;
842
- align-self: center;
843
- font-size: 12px;
844
- font-weight: 400;
845
- color: #696969;
846
- }
847
- .rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon div,
848
- #rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon div {
849
- display: flex;
850
- align-self: center;
851
- }
852
- .rsssl-container .rsssl-settings-saved.rsssl-settings-saved--fade-in,
853
- #rsssl-wizard .rsssl-settings-saved.rsssl-settings-saved--fade-in {
854
- display: block;
855
- -webkit-animation: fadeInFromNone 5s ease-in-out;
856
- -moz-animation: fadeInFromNone 5s ease-in-out;
857
- -o-animation: fadeInFromNone 5s ease-in-out;
858
- animation: fadeInFromNone 5s ease-in-out;
859
- }
860
- @-webkit-keyframes fadeInFromNone {
861
- 0% {
862
- display: none;
863
- opacity: 0;
864
- top: 20px;
865
- }
866
- 5% {
867
- display: block;
868
- opacity: 0;
869
- top: -10px;
870
- }
871
- 15% {
872
- display: block;
873
- opacity: 1;
874
- top: 20px;
875
- }
876
- 90% {
877
- display: block;
878
- opacity: 1;
879
- top: 20px;
880
- }
881
- 100% {
882
- display: none;
883
- opacity: 0;
884
- top: 20px;
885
- }
886
- }
887
- @-moz-keyframes fadeInFromNone {
888
- 0% {
889
- display: none;
890
- opacity: 0;
891
- top: 20px;
892
- }
893
- 5% {
894
- display: block;
895
- opacity: 0;
896
- top: -10px;
897
- }
898
- 15% {
899
- display: block;
900
- opacity: 1;
901
- top: 20px;
902
- }
903
- 90% {
904
- display: block;
905
- opacity: 1;
906
- top: 20px;
907
- }
908
- 100% {
909
- display: none;
910
- opacity: 0;
911
- top: 20px;
912
- }
913
- }
914
- @-o-keyframes fadeInFromNone {
915
- 0% {
916
- display: none;
917
- opacity: 0;
918
- top: 20px;
919
- }
920
- 5% {
921
- display: block;
922
- opacity: 0;
923
- top: -10px;
924
- }
925
- 15% {
926
- display: block;
927
- opacity: 1;
928
- top: 20px;
929
- }
930
- 90% {
931
- display: block;
932
- opacity: 1;
933
- top: 20px;
934
- }
935
- 100% {
936
- display: none;
937
- opacity: 0;
938
- top: 20px;
939
- }
940
- }
941
- @keyframes fadeInFromNone {
942
- 0% {
943
- display: none;
944
- opacity: 0;
945
- top: 20px;
946
- }
947
- 5% {
948
- display: block;
949
- opacity: 0;
950
- top: -10px;
951
- }
952
- 15% {
953
- display: block;
954
- opacity: 1;
955
- top: 20px;
956
- }
957
- 90% {
958
- display: block;
959
- opacity: 1;
960
- top: 20px;
961
- }
962
- 100% {
963
- display: none;
964
- opacity: 0;
965
- top: 20px;
966
- }
967
- }
968
- /*# sourceMappingURL=main.css.map */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/main-rtl.min.css DELETED
@@ -1 +0,0 @@
1
- @-o-keyframes fadeIt{0%{background-color:#fff}30%{background-color:#d6efd6}to{border-right:0;background-color:inherit}}@keyframes fadeIt{0%{background-color:#fff;border-right:0}30%{background-color:#d6efd6}to{background-color:inherit}}@-webkit-keyframes fadeInFromNone{0%,to{display:none;opacity:0;top:20px}5%{display:block;opacity:0;top:-10px}15%,90%{display:block;opacity:1;top:20px}}@-moz-keyframes fadeInFromNone{0%,to{display:none;opacity:0;top:20px}5%{display:block;opacity:0;top:-10px}15%,90%{display:block;opacity:1;top:20px}}@-o-keyframes fadeInFromNone{0%,to{display:none;opacity:0;top:20px}5%{display:block;opacity:0;top:-10px}15%,90%{display:block;opacity:1;top:20px}}@keyframes fadeInFromNone{0%,to{display:none;opacity:0;top:20px}5%{display:block;opacity:0;top:-10px}15%,90%{display:block;opacity:1;top:20px}}.rsssl-high-contrast .rsssl-progress-status.rsssl-open,.rsssl-high-contrast .rsssl-progress-status.rsssl-premium,.rsssl-high-contrast .rsssl-progress-status.rsssl-success,.rsssl-high-contrast .rsssl-progress-status.rsssl-warning{background-color:#000!important;color:#fff}.rsssl-high-contrast .rsssl-wizard-progress-bar-value{background:#000!important}.rsssl-high-contrast .rsssl-icon.rsssl-success,.rsssl-high-contrast .rsssl-save-settings-feedback{color:#000!important}.rsssl-high-contrast .rsssl-icon.rsssl-success svg{stroke:#000!important;fill:#000!important}.rsssl-high-contrast .rsssl-help-warning-wrap .rsssl-notice,.rsssl-high-contrast .rsssl-notice a{color:#fff!important}.rsssl-high-contrast .rsssl-help-warning-wrap .rsssl-warning{background-color:#000}.rsssl-high-contrast .progress .bar,.rsssl-high-contrast .rsssl.progress{background-color:#000!important}.rsssl-high-contrast .select2-results__option--highlighted[aria-selected]{background-color:#000}.rsssl-high-contrast .nav-tab-active{border-bottom:2px solid #000!important}.rsssl-high-contrast .rsssl-update-count{background-color:#000!important}.rsssl-high-contrast .paginate_button.current{background-color:#000!important;color:#fff;border:1px solid #000}.rsssl-high-contrast .rsssl-tasks{color:#000!important}.rsssl-high-contrast .rsssl-close-warning-x{color:#000}.rsssl-high-contrast .rsssl-bullet:hover,.rsssl-high-contrast .update-count{background-color:#000}.rsssl-high-contrast .button-default,.rsssl-high-contrast .button-primary,.rsssl-high-contrast .button-rsssl-primary,.rsssl-high-contrast .button-rsssl-secondary,.rsssl-high-contrast .button-rsssl-tertiary,.rsssl-high-contrast .button-secondary,.rsssl-high-contrast .revoke-from-csp{background-color:#000!important;border-color:#000!important;color:#fff}.rsssl-high-contrast .button:hover{color:#fff}.rsssl-high-contrast input:checked+.rsssl-slider{background-color:#000}.rsssl-high-contrast .rsssl-help-modal,.rsssl-high-contrast .rsssl-help-modal h2{background-color:#000!important;color:#fff!important}.rsssl-high-contrast .rsssl-help-modal.rsssl-notice:after{border-left:15px solid #000}.rsssl-high-contrast .rsssl-priority{border:1px solid #fff!important}:root{--rsp-break-xs:400px;--rsp-break-s:576px;--rsp-break-m:768px;--rsp-break-l:992px;--rsp-break-xl:1200px;--rsp-break-xxl:1400px;--rsp-spacing-xs:10px;--rsp-spacing-s:15px;--rsp-spacing-m:20px;--rsp-spacing-l:30px;--rsp-spacing-xl:40px;--rsp-grid-margin:var(--rsp-spacing-xs);--rsp-grid-gap:var(--rsp-spacing-m);--rsp-border-radius:12px;--rsp-border:1px solid var(--rsp-border-color);--rsp-box-shadow:rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;--rsp-border-color:#dfdfdf;--rsp-black:#333;--rsp-white:#fff;--rsp-yellow:#f4bf3e;--rsp-blue:#29b6f6;--rsp-dark-blue:#5A6FA5;--rsp-green:#2e8a37;--rsp-red:#D7263D;--rsp-pink:#E35899;--rsp-orange:#f39c12;--rsp-yellow-faded:rgba(244, 191, 62, 0.1);--rsp-blue-faded:rgba(41, 182, 246, 0.1);--rsp-dark-blue-faded:rgba(41, 182, 246, 0.1);--rsp-green-faded:rgba(46, 138, 55, 0.1);--rsp-red-faded:rgba(215, 38, 61, 0.1);--rsp-pink-faded:rgba(227, 88, 153, 0.1);--rsp-orange-faded:rgba(243, 156, 18, 0.1);--rsp-background-block-color:var(--rsp-white);--rsp-background-color:#f0f0f1;--rsp-input-background-color:#F1F1F1;--rsp-input-text-color:var(--rsp-text-color);--rsp-input-border-color:#8c8f94;--rsp-text-color:rgba(26, 26, 26, 0.9);--rsp-text-color-invert:rgba(255, 255, 255, 0.9);--rsp-text-color-white:rgba(255, 255, 255, 0.9);--rsp-text-color-light:rgba(69, 69, 82, 0.9);--rsp-grey-200:#fafafa;--rsp-grey-300:#ededed;--rsp-grey-400:#c6c6c6;--rsp-grey-500:#737373;--rsp-grey-600:#696969;--rsp-color-success:var(--rsp-green);--rsp-color-error:var(--rsp-red);--rsp-color-warning:var(--rsp-orange);--rsp-color-open:var(--rsp-yellow);--rsp-fs-100:0.6125rem;--rsp-fs-200:0.625rem;--rsp-fs-300:0.8125rem;--rsp-fs-400:0.875rem;--rsp-fs-500:1rem;--rsp-fs-600:1.125rem;--rsp-fs-700:1.25rem;--rsp-fs-800:1.5rem;--rsp-fs-900:2.5rem;--rsp-brand-primary:var(--rsp-green);--rsp-brand-secondary:var(--rsp-yellow);--rsp-brand-primary-faded:var(--rsp-green-faded)}.error:not(.really-simple-plugins),.notice-info:not(.really-simple-plugins),.notice:not(.really-simple-plugins),.update-nag:not(.really-simple-plugins){display:none!important}.rsssl-spacer{width:10px}.rsssl-scroll-container{height:227px;overflow-y:auto;border-radius:0}.rsssl-scroll-container::-webkit-scrollbar-track{border-radius:10px;-webkit-box-shadow:inset 0 0 2px transparent;background-color:transparent}.rsssl-scroll-container::-webkit-scrollbar{border-radius:10px;width:8px;background-color:var(--rsp-grey-300);cursor:pointer}.rsssl-scroll-container::-webkit-scrollbar-thumb{background-color:var(--rsp-grey-400);border-radius:10px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text{color:#888;font-size:13px;font-weight:400;font-style:italic;padding-bottom:0!important;margin-top:0!important}.rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text td{padding-top:0!important}.rsssl-networksettings-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(255,255,255,.8)}.rsssl-networksettings-overlay .rsssl-disabled-settings-overlay{position:absolute;width:calc(100% - 65px);bottom:0;background-color:#fff;padding:20px;margin:12px;box-shadow:0 0 5px 5px rgba(223,222,222,.4)}.rsssl-networksettings-overlay .rsssl-disabled-settings-overlay .rsssl-open{float:right;margin-left:12px}#rsssl_do_activate_ssl{margin-left:10px}.rlrsssl-review{display:none}.rsssl-main{flex:1;width:80%;float:right}.rsssl-sidebar img{max-width:100%}.really-simple-ssl-table{display:flex;flex-direction:column}.rsssl-table-td-main-content{width:100%}.really-simple-ssl-table tr:first-child{border-top-right-radius:.55rem;border-top-left-radius:.55rem}.really-simple-ssl-table tr:last-child{margin-bottom:0;border-bottom-right-radius:.55rem;border-bottom-left-radius:.55rem}.really-simple-ssl-table tr{position:relative;padding-right:5px;padding-top:10px;background-color:#fff}.debug-log{background-color:#fff;padding:15px}.rsssl-icons{width:15px;height:15px}.rsssl-update-count{margin-right:4px!important;display:inline-block;vertical-align:top;box-sizing:border-box;margin:1px 2px -1px 0;padding:0 5px;min-width:18px;height:18px;border-radius:9px;background-color:#d7263d;color:#fff;font-size:11px;line-height:1.6;text-align:center;z-index:26}.rsssl-tooltip,[data-rsssl-tooltip]{position:relative;cursor:pointer}.rsssl-tooltip:after,.rsssl-tooltip:before,[data-rsssl-tooltip]:after,[data-rsssl-tooltip]:before{position:absolute;visibility:hidden;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);opacity:0;-webkit-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-webkit-transform .2s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-moz-transform .2s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,transform .2s cubic-bezier(.71,1.7,.77,1.24);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);pointer-events:none}.rsssl-tooltip:focus:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:hover:before,[data-rsssl-tooltip]:focus:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:hover:before{visibility:visible;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1}.rsssl-tooltip:before,[data-rsssl-tooltip]:before{z-index:1001;border:6px solid transparent;background:0 0;content:""}.rsssl-tooltip:after,[data-rsssl-tooltip]:after{z-index:1000;padding:8px;width:220px;background-color:#000;background-color:rgba(51,51,51,.9);color:#fff;content:attr(data-rsssl-tooltip);font-size:14px;line-height:1.2}.rsssl-tooltip-right{font-weight:400}.rsssl-tooltip-top:after,.rsssl-tooltip-top:before,.rsssl-tooltip:after,.rsssl-tooltip:before,[data-rsssl-tooltip]:after,[data-rsssl-tooltip]:before{bottom:100%;right:50%}.rsssl-tooltip-top:before,.rsssl-tooltip:before,[data-rsssl-tooltip]:before{margin-right:-6px;margin-bottom:-12px;border-top-color:#000;border-top-color:rgba(51,51,51,.9)}.rsssl-tooltip-top:after,.rsssl-tooltip:after,[data-rsssl-tooltip]:after{margin-right:-80px}.rsssl-tooltip-top:focus:after,.rsssl-tooltip-top:focus:before,.rsssl-tooltip-top:hover:after,.rsssl-tooltip-top:hover:before,.rsssl-tooltip:focus:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:hover:before,[data-rsssl-tooltip]:focus:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:hover:before{-webkit-transform:translateY(-12px);-moz-transform:translateY(-12px);transform:translateY(-12px)}.rsssl-tooltip-left:after,.rsssl-tooltip-left:before{left:100%;right:auto}.rsssl-tooltip-left:before{margin-right:0;margin-left:-12px;margin-bottom:0;border-top-color:transparent;border-right-color:#000;border-right-color:rgba(51,51,51,.9)}.rsssl-tooltip-left:focus:after,.rsssl-tooltip-left:focus:before,.rsssl-tooltip-left:hover:after,.rsssl-tooltip-left:hover:before{-webkit-transform:translateX(12px);-moz-transform:translateX(12px);transform:translateX(12px)}.rsssl-tooltip-bottom:after,.rsssl-tooltip-bottom:before{top:100%;bottom:auto;right:50%}.rsssl-tooltip-bottom:before{margin-top:-12px;margin-bottom:0;border-top-color:transparent;border-bottom-color:#000;border-bottom-color:rgba(51,51,51,.9)}.rsssl-tooltip-bottom:focus:after,.rsssl-tooltip-bottom:focus:before,.rsssl-tooltip-bottom:hover:after,.rsssl-tooltip-bottom:hover:before{-webkit-transform:translateY(12px);-moz-transform:translateY(12px);transform:translateY(12px)}.rsssl-tooltip-right:after,.rsssl-tooltip-right:before{bottom:50%;right:100%}.rsssl-tooltip-right:before{margin-bottom:0;margin-right:-12px;border-top-color:transparent;border-left-color:#000;border-left-color:rgba(51,51,51,.9)}.rsssl-tooltip-right:focus:after,.rsssl-tooltip-right:focus:before,.rsssl-tooltip-right:hover:after,.rsssl-tooltip-right:hover:before{-webkit-transform:translateX(-12px);-moz-transform:translateX(-12px);transform:translateX(-12px)}.rsssl-tooltip-left:before,.rsssl-tooltip-right:before{top:3px}.rsssl-tooltip-left:after,.rsssl-tooltip-right:after{margin-right:0;margin-bottom:-25px}.rsssl-really-simple-plugins-logo{background-color:#ececec;margin-right:-15px;margin-left:-15px}.rsssl-sidebar{width:240px;margin-top:20px;padding-right:15px;padding-left:15px;margin-left:15px;padding-bottom:15px;background-color:#ececec}.rsssl-sidebar-single-content-container,.rsssl-sidebar-single-content-container-pro{background-color:#fff;min-height:125px;padding-bottom:35px;margin-bottom:10px;width:100%;border-radius:3%}.rsssl-sidebar-title h3{font-size:.9em}.rsssl-sidebar-text-content,.rsssl-sidebar-text-content-pro{font-weight:700;font-size:.8em;width:90%;margin:auto}.rsssl-sidebar-text-content{width:45%;padding-top:5px;padding-left:7px;float:left;margin:10px auto}.rsssl-pro-image{height:30px;margin-top:6px}.rsssl-sidebar-image-pro{width:90%;margin:10px}.rsssl-sidebar-image{width:100px;float:right;padding:10px;height:100px}@media screen and (max-width:1024px) and (min-width:541px){.rsssl-main{width:100%}.rsssl-sidebar-title{text-align:center}.rsssl-container{flex-direction:column}.rsssl-sidebar{width:100%}.rsssl-really-simple-plugins-logo{width:40%}.rsssl-sidebar-single-content-container{background-color:#fff;width:40%;padding-right:25px;float:right;margin-left:25px}.rsssl-sidebar-single-content-container-pro{width:40%;padding-right:25px;margin:auto auto 25px}.rsssl-sidebar-um-text-content{width:40%}.rsssl-pro-image{display:none}}@media screen and (max-width:540px){.rsssl-main{width:100%}.rsssl-container{flex-direction:column}.rsssl-sidebar{display:grid;text-align:-webkit-center;width:70%}.rsssl-sidebar-um-text-content{width:45%}.rsssl-sidebar-single-content-container,.rsssl-sidebar-single-content-container-pro{padding-bottom:10px}}.rsssl-sidebar h4{font-size:14px;font-style:italic}.rsssl-wrapper{padding:30px}.rsssl-sidebar-list{font-size:.9em}#rsssl-premium-button-pro{-webkit-border-radius:12px;-moz-border-radius:12px}.rsssl-sidebar-content{float:right;padding-bottom:10px}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}.rsssl-container{display:flex}#rsssl-premium-button,#rsssl-premium-button-pro{display:inline-table;width:40%;text-align:center;float:left;font-size:inherit;height:25px;border-radius:12px;border:0;background-color:#000;color:#fff;margin-left:5px}.rsssl-more-info-button{border:0;border-radius:50px;clear:both;margin-top:10px}.rsssl-switch{position:relative;display:inline-block;width:35px;height:18px}.rsssl-switch input{position:absolute;opacity:0;display:block!important}.rsssl-slider,.rsssl-slider:before{position:absolute;-webkit-transition:.4s;transition:.4s}.rsssl-slider{cursor:pointer;top:0;right:0;left:0;bottom:0;background-color:#ccc}.rsssl-slider:before{content:"";height:14px;width:14px;right:3px;bottom:2.2px;background-color:#fff}.rsssl-slider.rsssl-round{border-radius:20px}.rsssl-slider.rsssl-round:before{border-radius:50%}input:checked+.rsssl-slider{background-color:#2daae1}input:checked+.rsssl-slider:before{-webkit-transform:translateX(-16px);-ms-transform:translateX(-16px);transform:translateX(-16px)}input:disabled+.rsssl-slider{background-color:#b3e0f4}input:focus+.rsssl-slider{box-shadow:0 0 1px #2daae1}.debug-log{width:90%}.rsssl-dashboard-plusone{margin-right:8px}.rsssl-highlight{background-color:#fff;border-left:4px solid #61ce70;-o-animation:fadeIt 5s ease-in-out;animation:fadeIt 5s ease-in-out}.form-table th{padding-right:10px}.rsssl-dashboard-dismiss .close{all:initial}.rsssl-dashboard-dismiss span{font-size:1.5em;color:#000;font-family:sans-serif}.rsssl-dashboard-dismiss span img{height:12px;width:12px}.rsssl-dashboard-dismiss span:hover{cursor:pointer;color:gray}.rsssl-grid .rsssl-item.rsssl-license-grid .item-container .form-table tbody tr{max-width:100%;width:100%}.rsssl-grid .rsssl-item.rsssl-license-grid .item-container .rsssl-grid-item-footer input+input{margin-right:20px}.rsssl_notice_license{border-radius:.25rem;padding:10px 15px;margin:10px 0;background-color:#29b6f6;border:1px solid #29b6f6;color:#fff}.rsssl_notice_license h1{font-size:16px}.rsssl_notice_license,.rsssl_notice_license p{font-size:13px!important}.rsssl_notice_license.success{background-color:#dff0d8;border-color:#d0e9c6;color:#3c763d}.rsssl_notice_license.warning{color:#000;background-color:#fbc43d;border-color:#fbc43d}.rsssl_notice_license ul{list-style-type:disc;margin-right:22px}#rsssl-wizard .rsssl-settings-saved,.rsssl-container .rsssl-settings-saved{display:none;opacity:0;top:20px;height:45px;position:fixed;background-color:#fff;z-index:999999;right:50%;transform:translateX(50%);text-align:right;box-shadow:0 0 5px 5px rgba(222,222,222,.2)}#rsssl-wizard .rsssl-settings-saved .rsssl-success,.rsssl-container .rsssl-settings-saved .rsssl-success{color:#61ce70}#rsssl-wizard .rsssl-settings-saved svg,.rsssl-container .rsssl-settings-saved svg{stroke:#61ce70;fill:#61ce70}#rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon,.rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon{display:flex;align-content:center;padding:0 20px}#rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon .rsssl-icon,.rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon .rsssl-icon{margin:12px 0 0;height:30px;width:30px}#rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon span,.rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon span{display:flex;align-self:center;font-size:12px;font-weight:400;color:#696969}#rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon div,.rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon div{display:flex;align-self:center}#rsssl-wizard .rsssl-settings-saved.rsssl-settings-saved--fade-in,.rsssl-container .rsssl-settings-saved.rsssl-settings-saved--fade-in{display:block;-webkit-animation:fadeInFromNone 5s ease-in-out;-moz-animation:fadeInFromNone 5s ease-in-out;-o-animation:fadeInFromNone 5s ease-in-out;animation:fadeInFromNone 5s ease-in-out}
 
assets/css/main.css DELETED
@@ -1,968 +0,0 @@
1
- .rsssl-high-contrast {
2
- /**
3
- Let's Encrypt
4
- */
5
- }
6
- .rsssl-high-contrast .rsssl-progress-status.rsssl-success,
7
- .rsssl-high-contrast .rsssl-progress-status.rsssl-warning,
8
- .rsssl-high-contrast .rsssl-progress-status.rsssl-premium,
9
- .rsssl-high-contrast .rsssl-progress-status.rsssl-open {
10
- background-color: black !important;
11
- color: white;
12
- }
13
- .rsssl-high-contrast .rsssl-wizard-progress-bar-value {
14
- background: black !important;
15
- }
16
- .rsssl-high-contrast .rsssl-icon.rsssl-success {
17
- color: black !important;
18
- }
19
- .rsssl-high-contrast .rsssl-icon.rsssl-success svg {
20
- stroke: black !important;
21
- fill: black !important;
22
- }
23
- .rsssl-high-contrast .rsssl-help-warning-wrap .rsssl-notice {
24
- color: white !important;
25
- }
26
- .rsssl-high-contrast .rsssl-help-warning-wrap .rsssl-warning {
27
- background-color: black;
28
- }
29
- .rsssl-high-contrast .progress .bar {
30
- background-color: black !important;
31
- }
32
- .rsssl-high-contrast .rsssl-notice a {
33
- color: white !important;
34
- }
35
- .rsssl-high-contrast .rsssl.progress {
36
- background-color: black !important;
37
- }
38
- .rsssl-high-contrast .select2-results__option--highlighted[aria-selected] {
39
- background-color: black;
40
- }
41
- .rsssl-high-contrast .rsssl-save-settings-feedback {
42
- color: black !important;
43
- }
44
- .rsssl-high-contrast .nav-tab-active {
45
- border-bottom: 2px solid black !important;
46
- }
47
- .rsssl-high-contrast .rsssl-update-count {
48
- background-color: black !important;
49
- }
50
- .rsssl-high-contrast .paginate_button.current {
51
- background-color: black !important;
52
- color: white;
53
- border: 1px solid black;
54
- }
55
- .rsssl-high-contrast .rsssl-tasks {
56
- color: black !important;
57
- }
58
- .rsssl-high-contrast .rsssl-close-warning-x {
59
- color: black;
60
- }
61
- .rsssl-high-contrast .update-count {
62
- background-color: black;
63
- }
64
- .rsssl-high-contrast .rsssl-bullet:hover {
65
- background-color: black;
66
- }
67
- .rsssl-high-contrast .button-rsssl-primary,
68
- .rsssl-high-contrast .button-primary,
69
- .rsssl-high-contrast .button-secondary,
70
- .rsssl-high-contrast .button-rsssl-secondary,
71
- .rsssl-high-contrast .button-rsssl-tertiary,
72
- .rsssl-high-contrast .revoke-from-csp,
73
- .rsssl-high-contrast .button-default {
74
- background-color: black !important;
75
- border-color: black !important;
76
- color: white;
77
- }
78
- .rsssl-high-contrast .button:hover {
79
- color: white;
80
- }
81
- .rsssl-high-contrast input:checked + .rsssl-slider {
82
- background-color: black;
83
- }
84
- .rsssl-high-contrast .rsssl-help-modal,
85
- .rsssl-high-contrast .rsssl-help-modal h2 {
86
- background-color: black !important;
87
- color: white !important;
88
- }
89
- .rsssl-high-contrast .rsssl-help-modal.rsssl-notice:after {
90
- border-right: 15px solid black;
91
- }
92
- .rsssl-high-contrast .rsssl-priority {
93
- border: 1px solid white !important;
94
- }
95
- /**move to css variables in time */
96
- :root {
97
- --rsp-break-xs: 400px;
98
- --rsp-break-s: 576px;
99
- --rsp-break-m: 768px;
100
- --rsp-break-l: 992px;
101
- --rsp-break-xl: 1200px;
102
- --rsp-break-xxl: 1400px;
103
- --rsp-spacing-xs: 10px;
104
- --rsp-spacing-s: 15px;
105
- --rsp-spacing-m: 20px;
106
- --rsp-spacing-l: 30px;
107
- --rsp-spacing-xl: 40px;
108
- --rsp-grid-margin: var(--rsp-spacing-xs);
109
- --rsp-grid-gap: var(--rsp-spacing-m);
110
- --rsp-border-radius: 12px;
111
- --rsp-border: 1px solid var(--rsp-border-color);
112
- --rsp-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;
113
- --rsp-border-color: #dfdfdf;
114
- --rsp-black: #333;
115
- --rsp-white: #fff;
116
- --rsp-yellow: #f4bf3e;
117
- --rsp-blue: #29b6f6;
118
- --rsp-dark-blue: #5A6FA5;
119
- --rsp-green: #2e8a37;
120
- --rsp-red: #D7263D;
121
- --rsp-pink: #E35899;
122
- --rsp-orange: #f39c12;
123
- --rsp-yellow-faded: rgba(244, 191, 62, 0.1);
124
- --rsp-blue-faded: rgba(41, 182, 246, 0.1);
125
- --rsp-dark-blue-faded: rgba(41, 182, 246, 0.1);
126
- --rsp-green-faded: rgba(46, 138, 55, 0.1);
127
- --rsp-red-faded: rgba(215, 38, 61, 0.1);
128
- --rsp-pink-faded: rgba(227, 88, 153, 0.1);
129
- --rsp-orange-faded: rgba(243, 156, 18, 0.1);
130
- --rsp-background-block-color: var(--rsp-white);
131
- --rsp-background-color: #f0f0f1;
132
- --rsp-input-background-color: #F1F1F1;
133
- --rsp-input-text-color: var(--rsp-text-color);
134
- --rsp-input-border-color: #8c8f94;
135
- --rsp-text-color: rgba(26, 26, 26, 0.9);
136
- --rsp-text-color-invert: rgba(255, 255, 255, 0.9);
137
- --rsp-text-color-white: rgba(255, 255, 255, 0.9);
138
- --rsp-text-color-light: rgba(69, 69, 82, 0.9);
139
- --rsp-grey-200: #fafafa;
140
- --rsp-grey-300: #ededed;
141
- --rsp-grey-400: #c6c6c6;
142
- --rsp-grey-500: #737373;
143
- --rsp-grey-600: #696969;
144
- --rsp-color-success: var(--rsp-green);
145
- --rsp-color-error: var(--rsp-red);
146
- --rsp-color-warning: var(--rsp-orange);
147
- --rsp-color-open: var(--rsp-yellow);
148
- --rsp-fs-100: 0.6125rem;
149
- --rsp-fs-200: 0.625rem;
150
- --rsp-fs-300: 0.8125rem;
151
- --rsp-fs-400: 0.875rem;
152
- --rsp-fs-500: 1rem;
153
- --rsp-fs-600: 1.125rem;
154
- --rsp-fs-700: 1.25rem;
155
- --rsp-fs-800: 1.5rem;
156
- --rsp-fs-900: 2.5rem;
157
- --rsp-brand-primary: var(--rsp-green);
158
- --rsp-brand-secondary: var(--rsp-yellow);
159
- --rsp-brand-primary-faded: var(--rsp-green-faded);
160
- }
161
- /*
162
- Hide nags from other plugins
163
- */
164
- .error:not(.really-simple-plugins),
165
- .notice:not(.really-simple-plugins),
166
- .update-nag:not(.really-simple-plugins),
167
- .notice-info:not(.really-simple-plugins) {
168
- display: none !important;
169
- }
170
- .rsssl-spacer {
171
- width: 10px;
172
- }
173
- .rsssl-scroll-container {
174
- height: 227px;
175
- overflow-y: auto;
176
- border-radius: 0;
177
- }
178
- .rsssl-scroll-container::-webkit-scrollbar-track {
179
- border-radius: 10px;
180
- -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0);
181
- background-color: transparent;
182
- }
183
- .rsssl-scroll-container::-webkit-scrollbar {
184
- border-radius: 10px;
185
- width: 8px;
186
- background-color: var(--rsp-grey-300);
187
- cursor: pointer;
188
- }
189
- .rsssl-scroll-container::-webkit-scrollbar-thumb {
190
- background-color: var(--rsp-grey-400);
191
- border-radius: 10px;
192
- }
193
- /* comments on settings pages */
194
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text {
195
- color: #888;
196
- font-size: 13px;
197
- font-weight: normal;
198
- font-style: italic;
199
- padding-bottom: 0 !important;
200
- margin-top: 0 !important;
201
- }
202
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text td {
203
- padding-top: 0!important;
204
- }
205
- .rsssl-networksettings-overlay {
206
- position: absolute;
207
- top: 0;
208
- left: 0;
209
- bottom: 0;
210
- right: 0;
211
- background: rgba(255, 255, 255, 0.8);
212
- }
213
- .rsssl-networksettings-overlay .rsssl-disabled-settings-overlay {
214
- position: absolute;
215
- width: calc(100% - 65px);
216
- bottom: 0;
217
- background-color: #fff;
218
- padding: 20px;
219
- margin: 12px;
220
- box-shadow: 0 0 5px 5px rgba(223, 222, 222, 0.4);
221
- }
222
- .rsssl-networksettings-overlay .rsssl-disabled-settings-overlay .rsssl-open {
223
- float: left;
224
- margin-right: 12px;
225
- }
226
- /* Hide review on own settings page */
227
- #rsssl_do_activate_ssl {
228
- margin-right: 10px;
229
- }
230
- .rlrsssl-review {
231
- display: none;
232
- }
233
- .rsssl-main {
234
- flex: 1;
235
- width: 80%;
236
- float: left;
237
- }
238
- .rsssl-sidebar img {
239
- max-width: 100%;
240
- /*height:inherit;*/
241
- }
242
- .really-simple-ssl-table {
243
- display: flex;
244
- flex-direction: column;
245
- }
246
- .rsssl-table-td-main-content {
247
- width: 100%;
248
- }
249
- .really-simple-ssl-table tr:first-child {
250
- border-top-left-radius: 0.55rem;
251
- border-top-right-radius: 0.55rem;
252
- }
253
- .really-simple-ssl-table tr:last-child {
254
- margin-bottom: 0;
255
- border-bottom-left-radius: 0.55rem;
256
- border-bottom-right-radius: 0.55rem;
257
- }
258
- .really-simple-ssl-table tr {
259
- position: relative;
260
- padding-left: 5px;
261
- padding-top: 10px;
262
- background-color: #fff;
263
- }
264
- .debug-log {
265
- background-color: #fff;
266
- padding: 15px;
267
- }
268
- .rsssl-icons {
269
- width: 15px;
270
- height: 15px;
271
- }
272
- .rsssl-update-count {
273
- margin-left: 4px !important;
274
- display: inline-block;
275
- vertical-align: top;
276
- box-sizing: border-box;
277
- margin: 1px 0 -1px 2px;
278
- padding: 0 5px;
279
- min-width: 18px;
280
- height: 18px;
281
- border-radius: 9px;
282
- background-color: #D7263D;
283
- color: #fff;
284
- font-size: 11px;
285
- line-height: 1.6;
286
- text-align: center;
287
- z-index: 26;
288
- }
289
- /* rsssl-rsssl-tooltip for settings page */
290
- /* Base styles for the element that has a rsssl-tooltip */
291
- [data-rsssl-tooltip],
292
- .rsssl-tooltip {
293
- position: relative;
294
- cursor: pointer;
295
- }
296
- /* Base styles for the entire tooltip */
297
- [data-rsssl-tooltip]:before,
298
- [data-rsssl-tooltip]:after,
299
- .rsssl-tooltip:before,
300
- .rsssl-tooltip:after {
301
- position: absolute;
302
- visibility: hidden;
303
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
304
- filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
305
- opacity: 0;
306
- -webkit-transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, -webkit-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
307
- -moz-transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, -moz-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
308
- transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
309
- -webkit-transform: translate3d(0, 0, 0);
310
- -moz-transform: translate3d(0, 0, 0);
311
- transform: translate3d(0, 0, 0);
312
- pointer-events: none;
313
- }
314
- /* Show the entire rsssl-tooltip on hover and focus */
315
- [data-rsssl-tooltip]:hover:before,
316
- [data-rsssl-tooltip]:hover:after,
317
- [data-rsssl-tooltip]:focus:before,
318
- [data-rsssl-tooltip]:focus:after,
319
- .rsssl-tooltip:hover:before,
320
- .rsssl-tooltip:hover:after,
321
- .rsssl-tooltip:focus:before,
322
- .rsssl-tooltip:focus:after {
323
- visibility: visible;
324
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
325
- filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
326
- opacity: 1;
327
- }
328
- /* Base styles for the rsssl-tooltip's directional arrow */
329
- .rsssl-tooltip:before,
330
- [data-rsssl-tooltip]:before {
331
- z-index: 1001;
332
- border: 6px solid transparent;
333
- background: transparent;
334
- content: "";
335
- }
336
- /* Base styles for the rsssl-tooltip's content area */
337
- .rsssl-tooltip:after,
338
- [data-rsssl-tooltip]:after {
339
- z-index: 1000;
340
- padding: 8px;
341
- width: 220px;
342
- background-color: #000;
343
- background-color: hsla(0, 0%, 20%, 0.9);
344
- color: #fff;
345
- content: attr(data-rsssl-tooltip);
346
- font-size: 14px;
347
- line-height: 1.2;
348
- }
349
- /* Directions */
350
- /* Top (default) */
351
- .rsssl-tooltip-right {
352
- font-weight: normal;
353
- }
354
- [data-rsssl-tooltip]:before,
355
- [data-rsssl-tooltip]:after,
356
- .rsssl-tooltip:before,
357
- .rsssl-tooltip:after,
358
- .rsssl-tooltip-top:before,
359
- .rsssl-tooltip-top:after {
360
- bottom: 100%;
361
- left: 50%;
362
- }
363
- [data-rsssl-tooltip]:before,
364
- .rsssl-tooltip:before,
365
- .rsssl-tooltip-top:before {
366
- margin-left: -6px;
367
- margin-bottom: -12px;
368
- border-top-color: #000;
369
- border-top-color: hsla(0, 0%, 20%, 0.9);
370
- }
371
- /* Horizontally align top/bottom rsssl-tooltips */
372
- [data-rsssl-tooltip]:after,
373
- .rsssl-tooltip:after,
374
- .rsssl-tooltip-top:after {
375
- margin-left: -80px;
376
- }
377
- [data-rsssl-tooltip]:hover:before,
378
- [data-rsssl-tooltip]:hover:after,
379
- [data-rsssl-tooltip]:focus:before,
380
- [data-rsssl-tooltip]:focus:after,
381
- .rsssl-tooltip:hover:before,
382
- .rsssl-tooltip:hover:after,
383
- .rsssl-tooltip:focus:before,
384
- .rsssl-tooltip:focus:after,
385
- .rsssl-tooltip-top:hover:before,
386
- .rsssl-tooltip-top:hover:after,
387
- .rsssl-tooltip-top:focus:before,
388
- .rsssl-tooltip-top:focus:after {
389
- -webkit-transform: translateY(-12px);
390
- -moz-transform: translateY(-12px);
391
- transform: translateY(-12px);
392
- }
393
- /* Left */
394
- .rsssl-tooltip-left:before,
395
- .rsssl-tooltip-left:after {
396
- right: 100%;
397
- /*bottom: 50%;*/
398
- left: auto;
399
- }
400
- .rsssl-tooltip-left:before {
401
- margin-left: 0;
402
- margin-right: -12px;
403
- margin-bottom: 0;
404
- border-top-color: transparent;
405
- border-left-color: #000;
406
- border-left-color: hsla(0, 0%, 20%, 0.9);
407
- }
408
- .rsssl-tooltip-left:hover:before,
409
- .rsssl-tooltip-left:hover:after,
410
- .rsssl-tooltip-left:focus:before,
411
- .rsssl-tooltip-left:focus:after {
412
- -webkit-transform: translateX(-12px);
413
- -moz-transform: translateX(-12px);
414
- transform: translateX(-12px);
415
- }
416
- /* Bottom */
417
- .rsssl-tooltip-bottom:before,
418
- .rsssl-tooltip-bottom:after {
419
- top: 100%;
420
- bottom: auto;
421
- left: 50%;
422
- }
423
- .rsssl-tooltip-bottom:before {
424
- margin-top: -12px;
425
- margin-bottom: 0;
426
- border-top-color: transparent;
427
- border-bottom-color: #000;
428
- border-bottom-color: hsla(0, 0%, 20%, 0.9);
429
- }
430
- .rsssl-tooltip-bottom:hover:before,
431
- .rsssl-tooltip-bottom:hover:after,
432
- .rsssl-tooltip-bottom:focus:before,
433
- .rsssl-tooltip-bottom:focus:after {
434
- -webkit-transform: translateY(12px);
435
- -moz-transform: translateY(12px);
436
- transform: translateY(12px);
437
- }
438
- /* Right */
439
- .rsssl-tooltip-right:before,
440
- .rsssl-tooltip-right:after {
441
- bottom: 50%;
442
- left: 100%;
443
- }
444
- .rsssl-tooltip-right:before {
445
- margin-bottom: 0;
446
- margin-left: -12px;
447
- border-top-color: transparent;
448
- border-right-color: #000;
449
- border-right-color: hsla(0, 0%, 20%, 0.9);
450
- }
451
- .rsssl-tooltip-right:hover:before,
452
- .rsssl-tooltip-right:hover:after,
453
- .rsssl-tooltip-right:focus:before,
454
- .rsssl-tooltip-right:focus:after {
455
- -webkit-transform: translateX(12px);
456
- -moz-transform: translateX(12px);
457
- transform: translateX(12px);
458
- }
459
- /* Move directional arrows down a bit for left/right rsssl-tooltips */
460
- .rsssl-tooltip-left:before,
461
- .rsssl-tooltip-right:before {
462
- top: 3px;
463
- }
464
- /* Vertically center rsssl-tooltip content for left/right rsssl-tooltips */
465
- .rsssl-tooltip-left:after,
466
- .rsssl-tooltip-right:after {
467
- margin-left: 0;
468
- margin-bottom: -25px;
469
- }
470
- /* Styling for the sidebar in the admin tab of the free plugin */
471
- .rsssl-really-simple-plugins-logo {
472
- background-color: #ececec;
473
- margin-left: -15px;
474
- margin-right: -15px;
475
- }
476
- .rsssl-sidebar {
477
- width: 240px;
478
- margin-top: 20px;
479
- padding-left: 15px;
480
- padding-right: 15px;
481
- margin-right: 15px;
482
- padding-bottom: 15px;
483
- background-color: #ECECEC;
484
- }
485
- .rsssl-sidebar-single-content-container {
486
- min-height: 125px;
487
- padding-bottom: 35px;
488
- margin-bottom: 10px;
489
- background-color: #fff;
490
- width: 100%;
491
- border-radius: 3%;
492
- }
493
- .rsssl-sidebar-single-content-container-pro {
494
- background-color: #fff;
495
- min-height: 125px;
496
- padding-bottom: 35px;
497
- margin-bottom: 10px;
498
- width: 100%;
499
- border-radius: 3%;
500
- }
501
- .rsssl-sidebar-title h3 {
502
- font-size: 0.9em;
503
- }
504
- .rsssl-sidebar-text-content-pro {
505
- font-weight: 700;
506
- font-size: 0.8em;
507
- width: 90%;
508
- /*min-height: 100px;*/
509
- margin: auto;
510
- }
511
- .rsssl-sidebar-text-content {
512
- width: 45%;
513
- padding-top: 5px;
514
- padding-right: 7px;
515
- font-weight: 700;
516
- font-size: 0.8em;
517
- float: right;
518
- margin: 10px auto;
519
- }
520
- .rsssl-pro-image {
521
- height: 30px;
522
- margin-top: 6px;
523
- }
524
- .rsssl-sidebar-image-pro {
525
- width: 90%;
526
- margin: 10px;
527
- }
528
- .rsssl-sidebar-image {
529
- width: 100px;
530
- float: left;
531
- padding: 10px;
532
- height: 100px;
533
- }
534
- @media screen and (max-width: 1024px) and (min-width: 541px) {
535
- /* Let the main container be 100% width again */
536
- .rsssl-main {
537
- width: 100%;
538
- }
539
- .rsssl-sidebar-title {
540
- /*margin: auto;*/
541
- text-align: center;
542
- }
543
- .rsssl-container {
544
- flex-direction: column;
545
- }
546
- .rsssl-sidebar {
547
- width: 100%;
548
- /*padding-left: 10%;*/
549
- }
550
- .rsssl-really-simple-plugins-logo {
551
- width: 40%;
552
- }
553
- .rsssl-sidebar-single-content-container {
554
- background-color: #fff;
555
- width: 40%;
556
- padding-left: 25px;
557
- float: left;
558
- margin-right: 25px;
559
- }
560
- .rsssl-sidebar-single-content-container-pro {
561
- width: 40%;
562
- padding-left: 25px;
563
- margin: auto auto 25px;
564
- }
565
- .rsssl-sidebar-um-text-content {
566
- width: 40%;
567
- }
568
- .rsssl-pro-image {
569
- display: none;
570
- }
571
- }
572
- @media screen and (max-width: 540px) {
573
- .rsssl-main {
574
- width: 100%;
575
- }
576
- .rsssl-container {
577
- flex-direction: column;
578
- }
579
- .rsssl-sidebar {
580
- display: grid;
581
- text-align: -webkit-center;
582
- width: 70%;
583
- }
584
- .rsssl-sidebar-um-text-content {
585
- width: 45%;
586
- }
587
- .rsssl-sidebar-single-content-container-pro {
588
- padding-bottom: 10px;
589
- }
590
- .rsssl-sidebar-single-content-container {
591
- padding-bottom: 10px;
592
- }
593
- }
594
- .rsssl-sidebar h4 {
595
- font-size: 14px;
596
- font-style: italic;
597
- }
598
- .rsssl-wrapper {
599
- padding: 30px;
600
- }
601
- .rsssl-sidebar-list {
602
- font-size: 0.9em;
603
- }
604
- #rsssl-premium-button-pro {
605
- display: inline-table;
606
- width: 40%;
607
- text-align: center;
608
- float: right;
609
- font-size: inherit;
610
- height: 25px;
611
- -webkit-border-radius: 12px;
612
- -moz-border-radius: 12px;
613
- border-radius: 12px;
614
- border: none;
615
- background-color: #000000;
616
- color: white;
617
- margin-right: 5px;
618
- }
619
- .rsssl-sidebar-content {
620
- float: left;
621
- padding-bottom: 10px;
622
- }
623
- hr {
624
- display: block;
625
- height: 1px;
626
- border: 0;
627
- border-top: 1px solid #ccc;
628
- margin: 1em 0;
629
- padding: 0;
630
- }
631
- .rsssl-container {
632
- display: flex;
633
- }
634
- #rsssl-premium-button {
635
- display: inline-table;
636
- width: 40%;
637
- text-align: center;
638
- float: right;
639
- font-size: inherit;
640
- height: 25px;
641
- border-radius: 12px;
642
- border: none;
643
- background-color: #000000;
644
- color: white;
645
- margin-right: 5px;
646
- }
647
- .rsssl-more-info-button {
648
- border: none;
649
- border-radius: 50px;
650
- clear: both;
651
- margin-top: 10px;
652
- }
653
- /*
654
- cool checkbox sliders
655
- */
656
- .rsssl-switch {
657
- position: relative;
658
- display: inline-block;
659
- width: 35px;
660
- height: 18px;
661
- }
662
- .rsssl-switch input {
663
- position: absolute;
664
- opacity: 0;
665
- display: block !important;
666
- }
667
- .rsssl-slider {
668
- position: absolute;
669
- cursor: pointer;
670
- top: 0;
671
- left: 0;
672
- right: 0;
673
- bottom: 0;
674
- background-color: #ccc;
675
- -webkit-transition: 0.4s;
676
- transition: 0.4s;
677
- }
678
- .rsssl-slider:before {
679
- position: absolute;
680
- content: "";
681
- height: 14px;
682
- width: 14px;
683
- left: 3px;
684
- bottom: 2.2px;
685
- background-color: white;
686
- -webkit-transition: 0.4s;
687
- transition: 0.4s;
688
- }
689
- .rsssl-slider.rsssl-round {
690
- border-radius: 20px;
691
- }
692
- .rsssl-slider.rsssl-round:before {
693
- border-radius: 50%;
694
- }
695
- input:checked + .rsssl-slider {
696
- background-color: #2DAAE1;
697
- }
698
- input:checked + .rsssl-slider:before {
699
- -webkit-transform: translateX(16px);
700
- -ms-transform: translateX(16px);
701
- transform: translateX(16px);
702
- }
703
- input:disabled + .rsssl-slider {
704
- background-color: #b3e0f4;
705
- }
706
- input:focus + .rsssl-slider {
707
- box-shadow: 0 0 1px #2DAAE1;
708
- }
709
- .debug-log {
710
- width: 90%;
711
- }
712
- .rsssl-dashboard-plusone {
713
- margin-left: 8px;
714
- }
715
- .rsssl-highlight {
716
- background-color: #fff;
717
- border-right: 4px solid #61ce70;
718
- -o-animation: fadeIt 5s ease-in-out;
719
- animation: fadeIt 5s ease-in-out;
720
- }
721
- @-o-keyframes fadeIt {
722
- 0% {
723
- background-color: #FFFFFF;
724
- }
725
- 30% {
726
- background-color: #d6efd6;
727
- }
728
- 100% {
729
- border-left: 0;
730
- background-color: inherit;
731
- }
732
- }
733
- @keyframes fadeIt {
734
- 0% {
735
- background-color: #FFFFFF;
736
- border-left: 0;
737
- }
738
- 30% {
739
- background-color: #d6efd6;
740
- }
741
- 100% {
742
- background-color: inherit;
743
- }
744
- }
745
- .form-table th {
746
- padding-left: 10px;
747
- }
748
- .rsssl-dashboard-dismiss .close {
749
- all: initial;
750
- }
751
- .rsssl-dashboard-dismiss span {
752
- font-size: 1.5em;
753
- color: black;
754
- font-family: sans-serif;
755
- }
756
- .rsssl-dashboard-dismiss span img {
757
- height: 12px;
758
- width: 12px;
759
- }
760
- .rsssl-dashboard-dismiss span:hover {
761
- cursor: pointer;
762
- color: grey;
763
- }
764
- /* License page */
765
- .rsssl-grid .rsssl-item.rsssl-license-grid .item-container .form-table tbody tr {
766
- max-width: 100%;
767
- width: 100%;
768
- }
769
- .rsssl-grid .rsssl-item.rsssl-license-grid .item-container .rsssl-grid-item-footer input + input {
770
- margin-left: 20px;
771
- }
772
- .rsssl_notice_license {
773
- font-size: 13px !important;
774
- border-radius: 0.25rem;
775
- padding: 10px 15px;
776
- margin: 10px 0;
777
- background-color: #29b6f6;
778
- border: 1px solid #29b6f6;
779
- color: #fff;
780
- }
781
- .rsssl_notice_license h1 {
782
- font-size: 16px;
783
- }
784
- .rsssl_notice_license p {
785
- font-size: 13px !important;
786
- }
787
- .rsssl_notice_license.success {
788
- background-color: #dff0d8;
789
- border-color: #d0e9c6;
790
- color: #3c763d;
791
- }
792
- .rsssl_notice_license.warning {
793
- color: #000;
794
- background-color: #FBC43D;
795
- border-color: #FBC43D;
796
- }
797
- .rsssl_notice_license ul {
798
- list-style-type: disc;
799
- margin-left: 22px;
800
- }
801
- /**
802
- settings saved
803
- */
804
- .rsssl-container .rsssl-settings-saved,
805
- #rsssl-wizard .rsssl-settings-saved {
806
- display: none;
807
- opacity: 0;
808
- top: 20px;
809
- height: 45px;
810
- position: fixed;
811
- background-color: #fff;
812
- z-index: 999999;
813
- left: 50%;
814
- transform: translateX(-50%);
815
- text-align: left;
816
- box-shadow: 0 0 5px 5px rgba(222, 222, 222, 0.2);
817
- }
818
- .rsssl-container .rsssl-settings-saved .rsssl-success,
819
- #rsssl-wizard .rsssl-settings-saved .rsssl-success {
820
- color: #61ce70;
821
- }
822
- .rsssl-container .rsssl-settings-saved svg,
823
- #rsssl-wizard .rsssl-settings-saved svg {
824
- stroke: #61ce70;
825
- fill: #61ce70;
826
- }
827
- .rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon,
828
- #rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon {
829
- display: flex;
830
- align-content: center;
831
- padding: 0 20px;
832
- }
833
- .rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon .rsssl-icon,
834
- #rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon .rsssl-icon {
835
- margin: 12px 0 0 0;
836
- height: 30px;
837
- width: 30px;
838
- }
839
- .rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon span,
840
- #rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon span {
841
- display: flex;
842
- align-self: center;
843
- font-size: 12px;
844
- font-weight: 400;
845
- color: #696969;
846
- }
847
- .rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon div,
848
- #rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon div {
849
- display: flex;
850
- align-self: center;
851
- }
852
- .rsssl-container .rsssl-settings-saved.rsssl-settings-saved--fade-in,
853
- #rsssl-wizard .rsssl-settings-saved.rsssl-settings-saved--fade-in {
854
- display: block;
855
- -webkit-animation: fadeInFromNone 5s ease-in-out;
856
- -moz-animation: fadeInFromNone 5s ease-in-out;
857
- -o-animation: fadeInFromNone 5s ease-in-out;
858
- animation: fadeInFromNone 5s ease-in-out;
859
- }
860
- @-webkit-keyframes fadeInFromNone {
861
- 0% {
862
- display: none;
863
- opacity: 0;
864
- top: 20px;
865
- }
866
- 5% {
867
- display: block;
868
- opacity: 0;
869
- top: -10px;
870
- }
871
- 15% {
872
- display: block;
873
- opacity: 1;
874
- top: 20px;
875
- }
876
- 90% {
877
- display: block;
878
- opacity: 1;
879
- top: 20px;
880
- }
881
- 100% {
882
- display: none;
883
- opacity: 0;
884
- top: 20px;
885
- }
886
- }
887
- @-moz-keyframes fadeInFromNone {
888
- 0% {
889
- display: none;
890
- opacity: 0;
891
- top: 20px;
892
- }
893
- 5% {
894
- display: block;
895
- opacity: 0;
896
- top: -10px;
897
- }
898
- 15% {
899
- display: block;
900
- opacity: 1;
901
- top: 20px;
902
- }
903
- 90% {
904
- display: block;
905
- opacity: 1;
906
- top: 20px;
907
- }
908
- 100% {
909
- display: none;
910
- opacity: 0;
911
- top: 20px;
912
- }
913
- }
914
- @-o-keyframes fadeInFromNone {
915
- 0% {
916
- display: none;
917
- opacity: 0;
918
- top: 20px;
919
- }
920
- 5% {
921
- display: block;
922
- opacity: 0;
923
- top: -10px;
924
- }
925
- 15% {
926
- display: block;
927
- opacity: 1;
928
- top: 20px;
929
- }
930
- 90% {
931
- display: block;
932
- opacity: 1;
933
- top: 20px;
934
- }
935
- 100% {
936
- display: none;
937
- opacity: 0;
938
- top: 20px;
939
- }
940
- }
941
- @keyframes fadeInFromNone {
942
- 0% {
943
- display: none;
944
- opacity: 0;
945
- top: 20px;
946
- }
947
- 5% {
948
- display: block;
949
- opacity: 0;
950
- top: -10px;
951
- }
952
- 15% {
953
- display: block;
954
- opacity: 1;
955
- top: 20px;
956
- }
957
- 90% {
958
- display: block;
959
- opacity: 1;
960
- top: 20px;
961
- }
962
- 100% {
963
- display: none;
964
- opacity: 0;
965
- top: 20px;
966
- }
967
- }
968
- /*# sourceMappingURL=main.css.map */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/main.css.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["wcag.less","variables.less","main.less"],"names":[],"mappings":"AAGA;;;;;AAAA,oBACE,uBAAsB;AADxB,oBACwC,uBAAsB;AAD9D,oBAC8E,uBAAsB;AADpG,oBACoH,uBAAsB;EACtI,uBAAA;EACA,YAAA;;AAHJ,oBAME;EACE,iBAAA;;AAPJ,oBAUE,YAAW;EACT,YAAA;;AAXJ,oBAaE,YAAW,cAAe;EACtB,aAAA;EACA,WAAA;;AAfN,oBAkBE,yBACE;EACE,YAAA;;AApBN,oBAkBE,yBAIE;EACE,uBAAA;;AAvBN,oBA2BE,UAAU;EACR,uBAAA;;AA5BJ,oBA+BE,cAAc;EACZ,YAAA;;AAhCJ,oBAmCE,OAAM;EACJ,uBAAA;;AApCJ,oBAuCE,sCAAqC;EACnC,uBAAA;;AAxCJ,oBAiDE;EACE,YAAA;;AAlDJ,oBAqDE;EACE,8BAAA;;AAtDJ,oBAyDE;EACE,uBAAA;;AA1DJ,oBA6DE,iBAAgB;EACd,uBAAA;EACA,YAAA;EACA,uBAAA;;AAhEJ,oBAmEE;EACE,YAAA;;AApEJ,oBAuEE;EACE,YAAA;;AAxEJ,oBA2EE;EACE,uBAAA;;AA5EJ,oBA+EE,cAAa;EACX,uBAAA;;AAhFJ,oBAmFE;AAnFF,oBAmFyB;AAnFzB,oBAmF0C;AAnF1C,oBAmF6D;AAnF7D,oBAmFsF;AAnFtF,oBAmF8G;AAnF9G,oBAmFgI;EAC5H,uBAAA;EACA,mBAAA;EACA,YAAA;;AAtFJ,oBAyFE,QAAO;EACL,YAAA;;AA1FJ,oBA6FE,MAAK,QAAS;EACZ,uBAAA;;AA9FJ,oBAqGE;AArGF,oBAqGqB,kBAAkB;EACnC,uBAAA;EACA,YAAA;;AAvGJ,oBA0GE,kBAAiB,aAAa;EAC5B,8BAAA;;AA3GJ,oBA8GE;EACE,uBAAA;;;AC1EJ;EAEE,qBAAA;EACA,oBAAA;EACA,oBAAA;EACA,oBAAA;EACA,sBAAA;EACA,uBAAA;EAGA,sBAAA;EACA,qBAAA;EACA,qBAAA;EACA,qBAAA;EACA,sBAAA;EAGA,mBAAmB,qBAAnB;EACA,gBAAgB,oBAAhB;EAGA,yBAAA;EACA,wBAAwB,uBAAxB;EACA,2FAAA;EACA,2BAAA;EAGA,iBAAA;EACA,iBAAA;EACA,qBAAA;EACA,mBAAA;EACA,wBAAA;EACA,oBAAA;EACA,kBAAA;EACA,mBAAA;EACA,qBAAA;EAEA,2CAAA;EACA,yCAAA;EACA,8CAAA;EACA,yCAAA;EACA,uCAAA;EACA,yCAAA;EACA,2CAAA;EAEA,8BAA8B,gBAA9B;EACA,+BAAA;EAGA,qCAAA;EACA,wBAAwB,qBAAxB;EACA,iCAAA;EAEA,uCAAA;EACA,iDAAA;EACA,gDAAA;EACA,6CAAA;EAEA,uBAAA;EACA,uBAAA;EACA,uBAAA;EACA,uBAAA;EACA,uBAAA;EAGA,qBAAqB,gBAArB;EACA,mBAAmB,cAAnB;EACA,qBAAqB,iBAArB;EACA,kBAAkB,iBAAlB;EAGA,uBAAA;EACA,sBAAA;EACA,uBAAA;EACA,sBAAA;EACA,kBAAA;EACA,sBAAA;EACA,qBAAA;EACA,oBAAA;EACA,oBAAA;EAGA,qBAAqB,gBAArB;EACA,uBAAuB,iBAAvB;EACA,2BAA2B,sBAA3B;;;;;ACrHF,MAAC,IAAI;AAAL,OAAC,IAAI;AAAL,WAAC,IAAI;AAAL,YAAC,IAAI;EACF,wBAAA;;AAIH;EACE,WAAA;;AAGF;EACE,aAAA;EACA,gBAAA;EAEA,gBAAA;;AAEA,uBAAC;EACC,mBAAA;EACA,kDAAA;EACA,6BAAA;;AAGF,uBAAC;EACC,mBAAA;EACA,UAAA;EACA,kBAAkB,mBAAlB;EACA,eAAA;;AAGF,uBAAC;EACC,kBAAkB,mBAAlB;EACA,mBAAA;;;AAKJ,WAAY,YAAY,gBAAgB,YAAY,MAAM,GAAE;EAC1D,WAAA;EACA,eAAA;EACA,mBAAA;EACA,kBAAA;EACA,4BAAA;EACA,wBAAA;;AANF,WAAY,YAAY,gBAAgB,YAAY,MAAM,GAAE,mBAO1D;EAAI,wBAAA;;AAEN;EACE,kBAAA;EACA,MAAA;EACA,OAAA;EACA,SAAA;EACA,QAAA;EACA,oCAAA;;AANF,8BAOE;EAKE,kBAAA;EACA,OAAO,iBAAP;EACA,SAAA;EACA,sBAAA;EACA,aAAA;EACA,YAAA;EACA,gDAAA;;AAlBJ,8BAOE,iCACE;EACE,WAAA;EACA,kBAAA;;;AAcN;EACE,kBAAA;;AAEF;EACE,aAAA;;AAGF;EACE,OAAA;EACA,UAAA;EACA,WAAA;;AAGF,cAAe;EACb,eAAA;;;AAIF;EACE,aAAA;EACA,sBAAA;;AAGF;EACE,WAAA;;AAGF,wBAAyB,GAAE;EACzB,+BAAA;EACA,gCAAA;;AAGF,wBAAyB,GAAE;EACzB,gBAAA;EACA,kCAAA;EACA,mCAAA;;AAGF,wBAAyB;EACvB,kBAAA;EACA,iBAAA;EACA,iBAAA;EACA,sBAAA;;AAGF;EACE,sBAAA;EACA,aAAA;;AAGF;EACE,WAAA;EACA,YAAA;;AAGF;EACE,2BAAA;EACA,qBAAA;EACA,mBAAA;EACA,sBAAA;EACA,sBAAA;EACA,cAAA;EACA,eAAA;EACA,YAAA;EACA,kBAAA;EACA,yBAAA;EACA,WAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,WAAA;;;;AAKF;AACA;EACE,kBAAA;EACA,eAAA;;;AAIF,oBAAoB;AACpB,oBAAoB;AACpB,cAAc;AACd,cAAc;EACZ,kBAAA;EACA,kBAAA;EACA,YAAY,oDAAZ;EACA,QAAQ,kDAAR;EACA,UAAA;EACA,kGAG6B,mCAH7B;EAIE,4FAGwB,mCAHxB;EAIA,kFAGmB,mCAHnB;EAIF,mBAAmB,oBAAnB;EACA,gBAAmB,oBAAnB;EACA,WAAmB,oBAAnB;EACA,oBAAA;;;AAIF,oBAAoB,MAAM;AAC1B,oBAAoB,MAAM;AAC1B,oBAAoB,MAAM;AAC1B,oBAAoB,MAAM;AAC1B,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,MAAM;EAClB,mBAAA;EACA,YAAY,sDAAZ;EACA,QAAQ,oDAAR;EACA,UAAA;;;AAIF,cAAc;AACd,oBAAoB;EAClB,aAAA;EACA,6BAAA;EACA,uBAAA;EACA,SAAS,EAAT;;;AAIF,cAAc;AACd,oBAAoB;EAClB,aAAA;EACA,YAAA;EACA,YAAA;EACA,sBAAA;EACA,uCAAA;EACA,WAAA;EACA,SAAS,wBAAT;EACA,eAAA;EACA,gBAAA;;;;AAMF;EACE,mBAAA;;AAEF,oBAAoB;AACpB,oBAAoB;AACpB,cAAc;AACd,cAAc;AACd,kBAAkB;AAClB,kBAAkB;EAChB,YAAA;EACA,SAAA;;AAGF,oBAAoB;AACpB,cAAc;AACd,kBAAkB;EAChB,iBAAA;EACA,oBAAA;EACA,sBAAA;EACA,uCAAA;;;AAIF,oBAAoB;AACpB,cAAc;AACd,kBAAkB;EAChB,kBAAA;;AAGF,oBAAoB,MAAM;AAC1B,oBAAoB,MAAM;AAC1B,oBAAoB,MAAM;AAC1B,oBAAoB,MAAM;AAC1B,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,cAAc,MAAM;AACpB,kBAAkB,MAAM;AACxB,kBAAkB,MAAM;AACxB,kBAAkB,MAAM;AACxB,kBAAkB,MAAM;EACtB,mBAAmB,iBAAnB;EACA,gBAAmB,iBAAnB;EACA,WAAmB,iBAAnB;;;AAIF,mBAAmB;AACnB,mBAAmB;EACjB,WAAA;;EAEA,UAAA;;AAGF,mBAAmB;EACjB,cAAA;EACA,mBAAA;EACA,gBAAA;EACA,6BAAA;EACA,uBAAA;EACA,wCAAA;;AAGF,mBAAmB,MAAM;AACzB,mBAAmB,MAAM;AACzB,mBAAmB,MAAM;AACzB,mBAAmB,MAAM;EACvB,mBAAmB,iBAAnB;EACA,gBAAmB,iBAAnB;EACA,WAAmB,iBAAnB;;;AAIF,qBAAqB;AACrB,qBAAqB;EACnB,SAAA;EACA,YAAA;EACA,SAAA;;AAGF,qBAAqB;EACnB,iBAAA;EACA,gBAAA;EACA,6BAAA;EACA,yBAAA;EACA,0CAAA;;AAGF,qBAAqB,MAAM;AAC3B,qBAAqB,MAAM;AAC3B,qBAAqB,MAAM;AAC3B,qBAAqB,MAAM;EACzB,mBAAmB,gBAAnB;EACA,gBAAmB,gBAAnB;EACA,WAAmB,gBAAnB;;;AAIF,oBAAoB;AACpB,oBAAoB;EAClB,WAAA;EACA,UAAA;;AAGF,oBAAoB;EAClB,gBAAA;EACA,kBAAA;EACA,6BAAA;EACA,wBAAA;EACA,yCAAA;;AAGF,oBAAoB,MAAM;AAC1B,oBAAoB,MAAM;AAC1B,oBAAoB,MAAM;AAC1B,oBAAoB,MAAM;EACxB,mBAAmB,gBAAnB;EACA,gBAAmB,gBAAnB;EACA,WAAmB,gBAAnB;;;AAIF,mBAAmB;AACnB,oBAAoB;EAClB,QAAA;;;AAIF,mBAAmB;AACnB,oBAAoB;EAClB,cAAA;EACA,oBAAA;;;AAKF;EACE,yBAAA;EACA,kBAAA;EACA,mBAAA;;AAGF;EACE,YAAA;EACA,gBAAA;EACA,kBAAA;EACA,mBAAA;EACA,kBAAA;EACA,oBAAA;EACA,yBAAA;;AAGF;EACE,iBAAA;EACA,oBAAA;EACA,mBAAA;EACA,sBAAA;EACA,WAAA;EACA,iBAAA;;AAGF;EACE,sBAAA;EACA,iBAAA;EACA,oBAAA;EACA,mBAAA;EACA,WAAA;EACA,iBAAA;;AAGF,oBAAqB;EACnB,gBAAA;;AAGF;EACE,gBAAA;EACA,gBAAA;EACA,UAAA;;EAEA,YAAA;;AAGF;EACE,UAAA;EACA,gBAAA;EACA,kBAAA;EACA,gBAAA;EACA,gBAAA;EACA,YAAA;EACA,iBAAA;;AAGF;EACE,YAAA;EACA,eAAA;;AAGF;EACE,UAAA;EACA,YAAA;;AAGF;EACE,YAAA;EACA,WAAA;EACA,aAAA;EACA,aAAA;;AAGF,mBAAsC,wBAAuB;;EAE3D;IACE,WAAA;;EAGF;;IAEE,kBAAA;;EAGF;IACE,sBAAA;;EAEF;IACE,WAAA;;;EAGF;IACC,UAAA;;EAED;IACE,sBAAA;IACA,UAAA;IACA,kBAAA;IACA,WAAA;IACA,kBAAA;;EAGF;IACE,UAAA;IACA,kBAAA;IACA,sBAAA;;EAGF;IACE,UAAA;;EAEF;IACE,aAAA;;;AAIJ,mBAAqC;EACnC;IACE,WAAA;;EAEF;IACE,sBAAA;;EAEF;IACA,aAAA;IACA,0BAAA;IACA,UAAA;;EAEA;IACE,UAAA;;EAEJ;IACE,oBAAA;;EAEA;IACE,oBAAA;;;AAIJ,cAAe;EACb,eAAA;EACA,kBAAA;;AAGF;EACE,aAAA;;AAGF;EACE,gBAAA;;AAGF;EACE,qBAAA;EACA,UAAA;EACA,kBAAA;EACA,YAAA;EACA,kBAAA;EACA,YAAA;EACA,2BAAA;EACA,wBAAA;EACA,mBAAA;EACA,YAAA;EACA,yBAAA;EACA,YAAA;EACA,iBAAA;;AAGF;EACE,WAAA;EACA,oBAAA;;AAGF;EACE,cAAA;EACA,WAAA;EACA,SAAA;EACA,0BAAA;EACA,aAAA;EACA,UAAA;;AAGF;EACE,aAAA;;AAGF;EACE,qBAAA;EACA,UAAA;EACA,kBAAA;EACA,YAAA;EACA,kBAAA;EACA,YAAA;EACA,mBAAA;EACA,YAAA;EACA,yBAAA;EACA,YAAA;EACA,iBAAA;;AAGF;EACE,YAAA;EACA,mBAAA;EACA,WAAA;EACA,gBAAA;;;;;AAMF;EACE,kBAAA;EACA,qBAAA;EACA,WAAA;EACA,YAAA;;AAJF,aAKE;EACE,kBAAA;EACA,UAAA;EACA,yBAAA;;AAIJ;EACE,kBAAA;EACA,eAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,sBAAA;EACA,wBAAA;EACA,gBAAA;;AACA,aAAC;EACC,kBAAA;EACA,SAAS,EAAT;EACA,YAAA;EACA,WAAA;EACA,SAAA;EACA,aAAA;EACA,uBAAA;EACA,wBAAA;EACA,gBAAA;;AAEF,aAAC;EACC,mBAAA;;AACA,aAFD,YAEE;EACC,kBAAA;;AAKN,KAAK,QAAS;EACZ,yBAAA;;AAEF,KAAK,QAAS,gBAAe;EAC3B,mBAAmB,gBAAnB;EACA,eAAe,gBAAf;EACA,WAAW,gBAAX;;AAEF,KAAK,SAAU;EACb,yBAAA;;AAEF,KAAK,MAAO;EACV,2BAAA;;AAGF;EACE,UAAA;;AAGF;EACE,gBAAA;;AAGF;EACE,sBAAA;EACA,+BAAA;EACA,mCAAA;EACA,gCAAA;;AAGF;EACE;IAAO,yBAAA;;EACP;IAAO,yBAAA;;EACP;IACE,cAAA;IACA,yBAAA;;;AAGJ;EACE;IACE,yBAAA;IACA,cAAA;;EAEF;IAAO,yBAAA;;EACP;IAAO,yBAAA;;;AAGT,WAAY;EACV,kBAAA;;AAGF,wBAAyB;EACvB,YAAA;;AAGF,wBAAyB;EACvB,gBAAA;EACA,YAAA;EACA,uBAAA;;AAHF,wBAAyB,KAIvB;EACE,YAAA;EACA,WAAA;;AAIJ,wBAAyB,KAAI;EAC3B,eAAA;EACA,WAAA;;;AAIF,WAAY,YAAW,mBAAoB,gBACzC,YAAY,MAAM;EAChB,eAAA;EACA,WAAA;;AAHJ,WAAY,YAAW,mBAAoB,gBAMzC,wBACE,MAAM;EACJ,iBAAA;;AAKN;EAEE,0BAAA;EACA,sBAAA;EACA,kBAAA;EACA,cAAA;EACA,yBAAA;EACA,yBAAA;EACA,WAAA;;AARF,qBAUE;EACE,eAAA;;AAXJ,qBAcE;EACE,0BAAA;;AAGF,qBAAC;EACC,yBAAA;EACA,qBAAA;EACA,cAAA;;AAGF,qBAAC;EACC,WAAA;EACA,yBAAA;EACA,qBAAA;;AA3BJ,qBA8BE;EACE,qBAAA;EACA,iBAAA;;;;;AASJ,gBACE;AADgB,aAChB;EACE,aAAA;EACA,UAAA;EACA,SAAA;EACA,YAAA;EACA,eAAA;EACA,sBAAA;EACA,eAAA;EACA,SAAA;EACA,WAAW,gBAAX;EACA,gBAAA;EACA,gDAAA;;AAZJ,gBACE,sBAaE;AAdc,aAChB,sBAaE;EACE,cAAA;;AAfN,gBACE,sBAiBE;AAlBc,aAChB,sBAiBE;EACE,eAAA;EACA,aAAA;;AApBN,gBACE,sBAsBE;AAvBc,aAChB,sBAsBE;EAOE,aAAA;EACA,qBAAA;EACA,eAAA;;AAhCN,gBACE,sBAsBE,qCACE;AAxBY,aAChB,sBAsBE,qCACE;EACE,kBAAA;EACA,YAAA;EACA,WAAA;;AA3BR,gBACE,sBAsBE,qCAWE;AAlCY,aAChB,sBAsBE,qCAWE;EACE,aAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,cAAA;;AAvCR,gBACE,sBAsBE,qCAmBE;AA1CY,aAChB,sBAsBE,qCAmBE;EACE,aAAA;EACA,kBAAA;;AAIJ,gBA/CF,sBA+CG;AAAD,aA/CF,sBA+CG;EACC,cAAA;EACA,gDAAA;EACA,6CAAA;EACA,2CAAA;EACA,wCAAA;;AAGF;EACE;IACE,aAAA;IACA,UAAA;IACA,SAAA;;EAGF;IACE,cAAA;IACA,UAAA;IACA,UAAA;;EAGF;IACE,cAAA;IACA,UAAA;IACA,SAAA;;EAEF;IACE,cAAA;IACA,UAAA;IACA,SAAA;;EAEF;IACE,aAAA;IACA,UAAA;IACA,SAAA;;;AAIJ;EACE;IACE,aAAA;IACA,UAAA;IACA,SAAA;;EAGF;IACE,cAAA;IACA,UAAA;IACA,UAAA;;EAGF;IACE,cAAA;IACA,UAAA;IACA,SAAA;;EAEF;IACE,cAAA;IACA,UAAA;IACA,SAAA;;EAEF;IACE,aAAA;IACA,UAAA;IACA,SAAA;;;AAIJ;EACE;IACE,aAAA;IACA,UAAA;IACA,SAAA;;EAGF;IACE,cAAA;IACA,UAAA;IACA,UAAA;;EAGF;IACE,cAAA;IACA,UAAA;IACA,SAAA;;EAEF;IACE,cAAA;IACA,UAAA;IACA,SAAA;;EAEF;IACE,aAAA;IACA,UAAA;IACA,SAAA;;;AAIJ;EACE;IACE,aAAA;IACA,UAAA;IACA,SAAA;;EAGF;IACE,cAAA;IACA,UAAA;IACA,UAAA;;EAGF;IACE,cAAA;IACA,UAAA;IACA,SAAA;;EAEF;IACE,cAAA;IACA,UAAA;IACA,SAAA;;EAEF;IACE,aAAA;IACA,UAAA;IACA,SAAA","file":"main.css"}
 
assets/css/main.less DELETED
@@ -1,914 +0,0 @@
1
- // RTL generator: https://cssjanus.github.io/
2
- @import 'wcag.less';
3
- @import 'variables.less';
4
- /*
5
- Hide nags from other plugins
6
- */
7
- .error, .notice, .update-nag, .notice-info {
8
- &:not(.really-simple-plugins) {
9
- display: none !important;
10
- }
11
- }
12
-
13
- .rsssl-spacer {
14
- width: 10px;
15
- }
16
-
17
- .rsssl-scroll-container{
18
- height: 227px;
19
- overflow-y: auto;
20
- //padding: var(--rsp-spacing-s) var(--rsp-spacing-l);
21
- border-radius: 0;
22
-
23
- &::-webkit-scrollbar-track {
24
- border-radius: 10px;
25
- -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0);
26
- background-color: transparent;
27
- }
28
-
29
- &::-webkit-scrollbar {
30
- border-radius: 10px;
31
- width: 8px;
32
- background-color: var(--rsp-grey-300);
33
- cursor: pointer;
34
- }
35
-
36
- &::-webkit-scrollbar-thumb {
37
- background-color: var(--rsp-grey-400);
38
- border-radius: 10px;
39
- }
40
- }
41
-
42
- /* comments on settings pages */
43
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text {
44
- color:#888;
45
- font-size: 13px;
46
- font-weight: normal;
47
- font-style:italic;
48
- padding-bottom:0 !important;
49
- margin-top:0 !important;
50
- td {padding-top:0!important;}
51
- }
52
- .rsssl-networksettings-overlay{
53
- position: absolute;
54
- top:0;
55
- left: 0;
56
- bottom: 0;
57
- right: 0;
58
- background: rgba(255, 255, 255, 0.8);
59
- .rsssl-disabled-settings-overlay{
60
- .rsssl-open {
61
- float: left;
62
- margin-right:12px;
63
- }
64
- position:absolute;
65
- width: calc(100% - 65px);
66
- bottom: 0;
67
- background-color: #fff;
68
- padding: 20px;
69
- margin:12px;
70
- box-shadow: 0 0 5px 5px rgba(223,222,222,0.4);
71
- }
72
- }
73
-
74
-
75
- /* Hide review on own settings page */
76
- #rsssl_do_activate_ssl {
77
- margin-right:10px;
78
- }
79
- .rlrsssl-review {
80
- display:none;
81
- }
82
-
83
- .rsssl-main {
84
- flex: 1;
85
- width: 80%;
86
- float:left;
87
- }
88
-
89
- .rsssl-sidebar img {
90
- max-width:100%;
91
- /*height:inherit;*/
92
- }
93
-
94
- .really-simple-ssl-table {
95
- display: flex;
96
- flex-direction: column;
97
- }
98
-
99
- .rsssl-table-td-main-content {
100
- width: 100%;
101
- }
102
-
103
- .really-simple-ssl-table tr:first-child {
104
- border-top-left-radius: .55rem;
105
- border-top-right-radius: .55rem;
106
- }
107
-
108
- .really-simple-ssl-table tr:last-child {
109
- margin-bottom: 0;
110
- border-bottom-left-radius: .55rem;
111
- border-bottom-right-radius: .55rem;
112
- }
113
-
114
- .really-simple-ssl-table tr {
115
- position: relative;
116
- padding-left: 5px;
117
- padding-top: 10px;
118
- background-color: #fff;
119
- }
120
-
121
- .debug-log {
122
- background-color: #fff;
123
- padding:15px;
124
- }
125
-
126
- .rsssl-icons {
127
- width:15px;
128
- height:15px;
129
- }
130
-
131
- .rsssl-update-count {
132
- margin-left: 4px !important;
133
- display: inline-block;
134
- vertical-align: top;
135
- box-sizing: border-box;
136
- margin: 1px 0 -1px 2px;
137
- padding: 0 5px;
138
- min-width: 18px;
139
- height: 18px;
140
- border-radius: 9px;
141
- background-color: @rsp-red;
142
- color: #fff;
143
- font-size: 11px;
144
- line-height: 1.6;
145
- text-align: center;
146
- z-index: 26
147
- }
148
-
149
- /* rsssl-rsssl-tooltip for settings page */
150
- /* Base styles for the element that has a rsssl-tooltip */
151
- [data-rsssl-tooltip],
152
- .rsssl-tooltip {
153
- position: relative;
154
- cursor: pointer;
155
- }
156
-
157
- /* Base styles for the entire tooltip */
158
- [data-rsssl-tooltip]:before,
159
- [data-rsssl-tooltip]:after,
160
- .rsssl-tooltip:before,
161
- .rsssl-tooltip:after {
162
- position: absolute;
163
- visibility: hidden;
164
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
165
- filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
166
- opacity: 0;
167
- -webkit-transition:
168
- opacity 0.2s ease-in-out,
169
- visibility 0.2s ease-in-out,
170
- -webkit-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
171
- -moz-transition:
172
- opacity 0.2s ease-in-out,
173
- visibility 0.2s ease-in-out,
174
- -moz-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
175
- transition:
176
- opacity 0.2s ease-in-out,
177
- visibility 0.2s ease-in-out,
178
- transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
179
- -webkit-transform: translate3d(0, 0, 0);
180
- -moz-transform: translate3d(0, 0, 0);
181
- transform: translate3d(0, 0, 0);
182
- pointer-events: none;
183
- }
184
-
185
- /* Show the entire rsssl-tooltip on hover and focus */
186
- [data-rsssl-tooltip]:hover:before,
187
- [data-rsssl-tooltip]:hover:after,
188
- [data-rsssl-tooltip]:focus:before,
189
- [data-rsssl-tooltip]:focus:after,
190
- .rsssl-tooltip:hover:before,
191
- .rsssl-tooltip:hover:after,
192
- .rsssl-tooltip:focus:before,
193
- .rsssl-tooltip:focus:after {
194
- visibility: visible;
195
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
196
- filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
197
- opacity: 1;
198
- }
199
-
200
- /* Base styles for the rsssl-tooltip's directional arrow */
201
- .rsssl-tooltip:before,
202
- [data-rsssl-tooltip]:before {
203
- z-index: 1001;
204
- border: 6px solid transparent;
205
- background: transparent;
206
- content: "";
207
- }
208
-
209
- /* Base styles for the rsssl-tooltip's content area */
210
- .rsssl-tooltip:after,
211
- [data-rsssl-tooltip]:after {
212
- z-index: 1000;
213
- padding: 8px;
214
- width: 220px;
215
- background-color: #000;
216
- background-color: hsla(0, 0%, 20%, 0.9);
217
- color: #fff;
218
- content: attr(data-rsssl-tooltip);
219
- font-size: 14px;
220
- line-height: 1.2;
221
- }
222
-
223
- /* Directions */
224
-
225
- /* Top (default) */
226
- .rsssl-tooltip-right {
227
- font-weight:normal;
228
- }
229
- [data-rsssl-tooltip]:before,
230
- [data-rsssl-tooltip]:after,
231
- .rsssl-tooltip:before,
232
- .rsssl-tooltip:after,
233
- .rsssl-tooltip-top:before,
234
- .rsssl-tooltip-top:after {
235
- bottom: 100%;
236
- left: 50%;
237
- }
238
-
239
- [data-rsssl-tooltip]:before,
240
- .rsssl-tooltip:before,
241
- .rsssl-tooltip-top:before {
242
- margin-left: -6px;
243
- margin-bottom: -12px;
244
- border-top-color: #000;
245
- border-top-color: hsla(0, 0%, 20%, 0.9);
246
- }
247
-
248
- /* Horizontally align top/bottom rsssl-tooltips */
249
- [data-rsssl-tooltip]:after,
250
- .rsssl-tooltip:after,
251
- .rsssl-tooltip-top:after {
252
- margin-left: -80px;
253
- }
254
-
255
- [data-rsssl-tooltip]:hover:before,
256
- [data-rsssl-tooltip]:hover:after,
257
- [data-rsssl-tooltip]:focus:before,
258
- [data-rsssl-tooltip]:focus:after,
259
- .rsssl-tooltip:hover:before,
260
- .rsssl-tooltip:hover:after,
261
- .rsssl-tooltip:focus:before,
262
- .rsssl-tooltip:focus:after,
263
- .rsssl-tooltip-top:hover:before,
264
- .rsssl-tooltip-top:hover:after,
265
- .rsssl-tooltip-top:focus:before,
266
- .rsssl-tooltip-top:focus:after {
267
- -webkit-transform: translateY(-12px);
268
- -moz-transform: translateY(-12px);
269
- transform: translateY(-12px);
270
- }
271
-
272
- /* Left */
273
- .rsssl-tooltip-left:before,
274
- .rsssl-tooltip-left:after {
275
- right: 100%;
276
- /*bottom: 50%;*/
277
- left: auto;
278
- }
279
-
280
- .rsssl-tooltip-left:before {
281
- margin-left: 0;
282
- margin-right: -12px;
283
- margin-bottom: 0;
284
- border-top-color: transparent;
285
- border-left-color: #000;
286
- border-left-color: hsla(0, 0%, 20%, 0.9);
287
- }
288
-
289
- .rsssl-tooltip-left:hover:before,
290
- .rsssl-tooltip-left:hover:after,
291
- .rsssl-tooltip-left:focus:before,
292
- .rsssl-tooltip-left:focus:after {
293
- -webkit-transform: translateX(-12px);
294
- -moz-transform: translateX(-12px);
295
- transform: translateX(-12px);
296
- }
297
-
298
- /* Bottom */
299
- .rsssl-tooltip-bottom:before,
300
- .rsssl-tooltip-bottom:after {
301
- top: 100%;
302
- bottom: auto;
303
- left: 50%;
304
- }
305
-
306
- .rsssl-tooltip-bottom:before {
307
- margin-top: -12px;
308
- margin-bottom: 0;
309
- border-top-color: transparent;
310
- border-bottom-color: #000;
311
- border-bottom-color: hsla(0, 0%, 20%, 0.9);
312
- }
313
-
314
- .rsssl-tooltip-bottom:hover:before,
315
- .rsssl-tooltip-bottom:hover:after,
316
- .rsssl-tooltip-bottom:focus:before,
317
- .rsssl-tooltip-bottom:focus:after {
318
- -webkit-transform: translateY(12px);
319
- -moz-transform: translateY(12px);
320
- transform: translateY(12px);
321
- }
322
-
323
- /* Right */
324
- .rsssl-tooltip-right:before,
325
- .rsssl-tooltip-right:after {
326
- bottom: 50%;
327
- left: 100%;
328
- }
329
-
330
- .rsssl-tooltip-right:before {
331
- margin-bottom: 0;
332
- margin-left: -12px;
333
- border-top-color: transparent;
334
- border-right-color: #000;
335
- border-right-color: hsla(0, 0%, 20%, 0.9);
336
- }
337
-
338
- .rsssl-tooltip-right:hover:before,
339
- .rsssl-tooltip-right:hover:after,
340
- .rsssl-tooltip-right:focus:before,
341
- .rsssl-tooltip-right:focus:after {
342
- -webkit-transform: translateX(12px);
343
- -moz-transform: translateX(12px);
344
- transform: translateX(12px);
345
- }
346
-
347
- /* Move directional arrows down a bit for left/right rsssl-tooltips */
348
- .rsssl-tooltip-left:before,
349
- .rsssl-tooltip-right:before {
350
- top: 3px;
351
- }
352
-
353
- /* Vertically center rsssl-tooltip content for left/right rsssl-tooltips */
354
- .rsssl-tooltip-left:after,
355
- .rsssl-tooltip-right:after {
356
- margin-left: 0;
357
- margin-bottom: -25px;
358
- }
359
-
360
- /* Styling for the sidebar in the admin tab of the free plugin */
361
-
362
- .rsssl-really-simple-plugins-logo {
363
- background-color: #ececec;
364
- margin-left: -15px;
365
- margin-right: -15px;
366
- }
367
-
368
- .rsssl-sidebar {
369
- width: 240px;
370
- margin-top: 20px;
371
- padding-left: 15px;
372
- padding-right: 15px;
373
- margin-right: 15px;
374
- padding-bottom: 15px;
375
- background-color: #ECECEC;
376
- }
377
-
378
- .rsssl-sidebar-single-content-container {
379
- min-height: 125px;
380
- padding-bottom: 35px;
381
- margin-bottom: 10px;
382
- background-color: #fff;
383
- width: 100%;
384
- border-radius: 3%;
385
- }
386
-
387
- .rsssl-sidebar-single-content-container-pro {
388
- background-color: #fff;
389
- min-height: 125px;
390
- padding-bottom: 35px;
391
- margin-bottom: 10px;
392
- width: 100%;
393
- border-radius: 3%;
394
- }
395
-
396
- .rsssl-sidebar-title h3 {
397
- font-size: 0.9em;
398
- }
399
-
400
- .rsssl-sidebar-text-content-pro {
401
- font-weight: 700;
402
- font-size: 0.8em;
403
- width: 90%;
404
- /*min-height: 100px;*/
405
- margin: auto;
406
- }
407
-
408
- .rsssl-sidebar-text-content {
409
- width: 45%;
410
- padding-top: 5px;
411
- padding-right: 7px;
412
- font-weight: 700;
413
- font-size: 0.8em;
414
- float: right;
415
- margin: 10px auto;
416
- }
417
-
418
- .rsssl-pro-image {
419
- height: 30px;
420
- margin-top: 6px;
421
- }
422
-
423
- .rsssl-sidebar-image-pro {
424
- width: 90%;
425
- margin: 10px;
426
- }
427
-
428
- .rsssl-sidebar-image {
429
- width: 100px;
430
- float: left;
431
- padding: 10px;
432
- height: 100px;
433
- }
434
-
435
- @media screen and (max-width: 1024px) and (min-width: 541px) {
436
- /* Let the main container be 100% width again */
437
- .rsssl-main {
438
- width: 100%;
439
- }
440
-
441
- .rsssl-sidebar-title {
442
- /*margin: auto;*/
443
- text-align: center;
444
- }
445
-
446
- .rsssl-container {
447
- flex-direction: column;
448
- }
449
- .rsssl-sidebar {
450
- width: 100%;
451
- /*padding-left: 10%;*/
452
- }
453
- .rsssl-really-simple-plugins-logo {
454
- width: 40%;
455
- }
456
- .rsssl-sidebar-single-content-container {
457
- background-color: #fff;
458
- width: 40%;
459
- padding-left: 25px;
460
- float: left;
461
- margin-right: 25px;
462
- }
463
-
464
- .rsssl-sidebar-single-content-container-pro {
465
- width: 40%;
466
- padding-left: 25px;
467
- margin: auto auto 25px;
468
- }
469
-
470
- .rsssl-sidebar-um-text-content {
471
- width: 40%;
472
- }
473
- .rsssl-pro-image {
474
- display: none;
475
- }
476
- }
477
-
478
- @media screen and (max-width: 540px) {
479
- .rsssl-main {
480
- width: 100%;
481
- }
482
- .rsssl-container {
483
- flex-direction: column;
484
- }
485
- .rsssl-sidebar {
486
- display: grid;
487
- text-align: -webkit-center;
488
- width: 70%;
489
- }
490
- .rsssl-sidebar-um-text-content {
491
- width: 45%;
492
- }
493
- .rsssl-sidebar-single-content-container-pro {
494
- padding-bottom: 10px;
495
- }
496
- .rsssl-sidebar-single-content-container {
497
- padding-bottom: 10px;
498
- }
499
- }
500
-
501
- .rsssl-sidebar h4 {
502
- font-size:14px;
503
- font-style:italic;
504
- }
505
-
506
- .rsssl-wrapper {
507
- padding: 30px;
508
- }
509
-
510
- .rsssl-sidebar-list {
511
- font-size: 0.9em;
512
- }
513
-
514
- #rsssl-premium-button-pro {
515
- display: inline-table;
516
- width: 40%;
517
- text-align: center;
518
- float: right;
519
- font-size: inherit;
520
- height: 25px;
521
- -webkit-border-radius: 12px;
522
- -moz-border-radius: 12px;
523
- border-radius: 12px;
524
- border: none;
525
- background-color: #000000;
526
- color: white;
527
- margin-right: 5px;
528
- }
529
-
530
- .rsssl-sidebar-content {
531
- float: left;
532
- padding-bottom: 10px;
533
- }
534
-
535
- hr {
536
- display: block;
537
- height: 1px;
538
- border: 0;
539
- border-top: 1px solid #ccc;
540
- margin: 1em 0;
541
- padding: 0;
542
- }
543
-
544
- .rsssl-container {
545
- display: flex;
546
- }
547
-
548
- #rsssl-premium-button {
549
- display: inline-table;
550
- width: 40%;
551
- text-align: center;
552
- float: right;
553
- font-size: inherit;
554
- height: 25px;
555
- border-radius: 12px;
556
- border: none;
557
- background-color: #000000;
558
- color: white;
559
- margin-right: 5px;
560
- }
561
-
562
- .rsssl-more-info-button {
563
- border: none;
564
- border-radius: 50px;
565
- clear: both;
566
- margin-top: 10px;
567
- }
568
-
569
- /*
570
- cool checkbox sliders
571
- */
572
- .rsssl-switch {
573
- position: relative;
574
- display: inline-block;
575
- width: 35px;
576
- height: 18px;
577
- input {
578
- position:absolute;
579
- opacity:0;
580
- display:block !important; //temporary fix to override pro setting
581
- }
582
- }
583
-
584
- .rsssl-slider {
585
- position: absolute;
586
- cursor: pointer;
587
- top: 0;
588
- left: 0;
589
- right: 0;
590
- bottom: 0;
591
- background-color: #ccc;
592
- -webkit-transition: .4s;
593
- transition: .4s;
594
- &:before {
595
- position: absolute;
596
- content: "";
597
- height: 14px;
598
- width: 14px;
599
- left: 3px;
600
- bottom: 2.2px;
601
- background-color: white;
602
- -webkit-transition: .4s;
603
- transition: .4s;
604
- }
605
- &.rsssl-round {
606
- border-radius: 20px;
607
- &:before {
608
- border-radius: 50%;
609
- }
610
- }
611
- }
612
-
613
- input:checked + .rsssl-slider {
614
- background-color: #2DAAE1;
615
- }
616
- input:checked + .rsssl-slider:before {
617
- -webkit-transform: translateX(16px);
618
- -ms-transform: translateX(16px);
619
- transform: translateX(16px);
620
- }
621
- input:disabled + .rsssl-slider {
622
- background-color: #b3e0f4;
623
- }
624
- input:focus + .rsssl-slider {
625
- box-shadow: 0 0 1px #2DAAE1;
626
- }
627
-
628
- .debug-log {
629
- width: 90%;
630
- }
631
-
632
- .rsssl-dashboard-plusone {
633
- margin-left: 8px;
634
- }
635
-
636
- .rsssl-highlight {
637
- background-color: #fff;
638
- border-right: 4px solid #61ce70;
639
- -o-animation: fadeIt 5s ease-in-out;
640
- animation: fadeIt 5s ease-in-out;
641
- }
642
-
643
- @-o-keyframes fadeIt {
644
- 0% { background-color: #FFFFFF; }
645
- 30% { background-color: #d6efd6; }
646
- 100% {
647
- border-left: 0;
648
- background-color: inherit;
649
- }
650
- }
651
- @keyframes fadeIt {
652
- 0% {
653
- background-color: #FFFFFF;
654
- border-left: 0;
655
- }
656
- 30% { background-color: #d6efd6; }
657
- 100% { background-color: inherit; }
658
- }
659
-
660
- .form-table th {
661
- padding-left: 10px;
662
- }
663
-
664
- .rsssl-dashboard-dismiss .close {
665
- all: initial;
666
- }
667
-
668
- .rsssl-dashboard-dismiss span {
669
- font-size: 1.5em;
670
- color: black;
671
- font-family: sans-serif;
672
- img {
673
- height: 12px;
674
- width: 12px;
675
- }
676
- }
677
-
678
- .rsssl-dashboard-dismiss span:hover {
679
- cursor: pointer;
680
- color: grey;
681
- }
682
-
683
- /* License page */
684
- .rsssl-grid .rsssl-item.rsssl-license-grid .item-container {
685
- .form-table tbody tr {
686
- max-width: 100%;
687
- width: 100%;
688
- }
689
-
690
- .rsssl-grid-item-footer {
691
- input + input {
692
- margin-left:20px;
693
- }
694
- }
695
- }
696
-
697
- .rsssl_notice_license {
698
-
699
- font-size: 13px !important;
700
- border-radius: .25rem;
701
- padding: 10px 15px;
702
- margin: 10px 0;
703
- background-color: #29b6f6;
704
- border: 1px solid #29b6f6;
705
- color: #fff;
706
-
707
- h1 {
708
- font-size: 16px;
709
- }
710
-
711
- p {
712
- font-size: 13px !important;
713
- }
714
-
715
- &.success {
716
- background-color: #dff0d8;
717
- border-color: #d0e9c6;
718
- color: #3c763d;
719
- }
720
-
721
- &.warning {
722
- color: #000;
723
- background-color: #FBC43D;;
724
- border-color: #FBC43D;
725
- }
726
-
727
- ul {
728
- list-style-type: disc;
729
- margin-left: 22px;
730
- }
731
- }
732
-
733
- /**
734
- settings saved
735
- */
736
-
737
-
738
- .rsssl-container, #rsssl-wizard {
739
- .rsssl-settings-saved {
740
- display: none;
741
- opacity: 0;
742
- top: 20px;
743
- height: 45px;
744
- position: fixed;
745
- background-color: #fff;
746
- z-index: 999999;
747
- left: 50%;
748
- transform: translateX(-50%);
749
- text-align: left;
750
- box-shadow: 0 0 5px 5px rgba(222, 222, 222, 0.2);
751
-
752
- .rsssl-success {
753
- color: #61ce70;
754
- }
755
-
756
- svg {
757
- stroke: #61ce70;
758
- fill: #61ce70;
759
- }
760
-
761
- .rsssl-settings-saved__text_and_icon {
762
- .rsssl-icon {
763
- margin: 12px 0 0 0;
764
- height: 30px;
765
- width: 30px;
766
- }
767
-
768
- display: flex;
769
- align-content: center;
770
- padding: 0 20px;
771
-
772
- span {
773
- display: flex;
774
- align-self: center;
775
- font-size: 12px;
776
- font-weight: 400;
777
- color: #696969;
778
- }
779
-
780
- div {
781
- display: flex;
782
- align-self: center;
783
- }
784
- }
785
-
786
- &.rsssl-settings-saved--fade-in {
787
- display: block;
788
- -webkit-animation: fadeInFromNone 5s ease-in-out;
789
- -moz-animation: fadeInFromNone 5s ease-in-out;
790
- -o-animation: fadeInFromNone 5s ease-in-out;
791
- animation: fadeInFromNone 5s ease-in-out;
792
- }
793
-
794
- @-webkit-keyframes fadeInFromNone {
795
- 0% {
796
- display: none;
797
- opacity: 0;
798
- top: 20px;
799
- }
800
-
801
- 5% {
802
- display: block;
803
- opacity: 0;
804
- top: -10px;
805
- }
806
-
807
- 15% {
808
- display: block;
809
- opacity: 1;
810
- top: 20px;
811
- }
812
- 90% {
813
- display: block;
814
- opacity: 1;
815
- top: 20px;
816
- }
817
- 100% {
818
- display: none;
819
- opacity: 0;
820
- top: 20px;
821
- }
822
- }
823
-
824
- @-moz-keyframes fadeInFromNone {
825
- 0% {
826
- display: none;
827
- opacity: 0;
828
- top: 20px;
829
- }
830
-
831
- 5% {
832
- display: block;
833
- opacity: 0;
834
- top: -10px;
835
- }
836
-
837
- 15% {
838
- display: block;
839
- opacity: 1;
840
- top: 20px;
841
- }
842
- 90% {
843
- display: block;
844
- opacity: 1;
845
- top: 20px;
846
- }
847
- 100% {
848
- display: none;
849
- opacity: 0;
850
- top: 20px;
851
- }
852
- }
853
-
854
- @-o-keyframes fadeInFromNone {
855
- 0% {
856
- display: none;
857
- opacity: 0;
858
- top: 20px;
859
- }
860
-
861
- 5% {
862
- display: block;
863
- opacity: 0;
864
- top: -10px;
865
- }
866
-
867
- 15% {
868
- display: block;
869
- opacity: 1;
870
- top: 20px;
871
- }
872
- 90% {
873
- display: block;
874
- opacity: 1;
875
- top: 20px;
876
- }
877
- 100% {
878
- display: none;
879
- opacity: 0;
880
- top: 20px;
881
- }
882
- }
883
-
884
- @keyframes fadeInFromNone {
885
- 0% {
886
- display: none;
887
- opacity: 0;
888
- top: 20px;
889
- }
890
-
891
- 5% {
892
- display: block;
893
- opacity: 0;
894
- top: -10px;
895
- }
896
-
897
- 15% {
898
- display: block;
899
- opacity: 1;
900
- top: 20px;
901
- }
902
- 90% {
903
- display: block;
904
- opacity: 1;
905
- top: 20px;
906
- }
907
- 100% {
908
- display: none;
909
- opacity: 0;
910
- top: 20px;
911
- }
912
- }
913
- }
914
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/main.min.css DELETED
@@ -1 +0,0 @@
1
- @-o-keyframes fadeIt{0%{background-color:#fff}30%{background-color:#d6efd6}to{border-left:0;background-color:inherit}}@keyframes fadeIt{0%{background-color:#fff;border-left:0}30%{background-color:#d6efd6}to{background-color:inherit}}@-webkit-keyframes fadeInFromNone{0%,to{display:none;opacity:0;top:20px}5%{display:block;opacity:0;top:-10px}15%,90%{display:block;opacity:1;top:20px}}@-moz-keyframes fadeInFromNone{0%,to{display:none;opacity:0;top:20px}5%{display:block;opacity:0;top:-10px}15%,90%{display:block;opacity:1;top:20px}}@-o-keyframes fadeInFromNone{0%,to{display:none;opacity:0;top:20px}5%{display:block;opacity:0;top:-10px}15%,90%{display:block;opacity:1;top:20px}}@keyframes fadeInFromNone{0%,to{display:none;opacity:0;top:20px}5%{display:block;opacity:0;top:-10px}15%,90%{display:block;opacity:1;top:20px}}.rsssl-high-contrast .rsssl-progress-status.rsssl-open,.rsssl-high-contrast .rsssl-progress-status.rsssl-premium,.rsssl-high-contrast .rsssl-progress-status.rsssl-success,.rsssl-high-contrast .rsssl-progress-status.rsssl-warning{background-color:#000!important;color:#fff}.rsssl-high-contrast .rsssl-wizard-progress-bar-value{background:#000!important}.rsssl-high-contrast .rsssl-icon.rsssl-success,.rsssl-high-contrast .rsssl-save-settings-feedback{color:#000!important}.rsssl-high-contrast .rsssl-icon.rsssl-success svg{stroke:#000!important;fill:#000!important}.rsssl-high-contrast .rsssl-help-warning-wrap .rsssl-notice,.rsssl-high-contrast .rsssl-notice a{color:#fff!important}.rsssl-high-contrast .rsssl-help-warning-wrap .rsssl-warning{background-color:#000}.rsssl-high-contrast .progress .bar,.rsssl-high-contrast .rsssl.progress{background-color:#000!important}.rsssl-high-contrast .select2-results__option--highlighted[aria-selected]{background-color:#000}.rsssl-high-contrast .nav-tab-active{border-bottom:2px solid #000!important}.rsssl-high-contrast .rsssl-update-count{background-color:#000!important}.rsssl-high-contrast .paginate_button.current{background-color:#000!important;color:#fff;border:1px solid #000}.rsssl-high-contrast .rsssl-tasks{color:#000!important}.rsssl-high-contrast .rsssl-close-warning-x{color:#000}.rsssl-high-contrast .rsssl-bullet:hover,.rsssl-high-contrast .update-count{background-color:#000}.rsssl-high-contrast .button-default,.rsssl-high-contrast .button-primary,.rsssl-high-contrast .button-rsssl-primary,.rsssl-high-contrast .button-rsssl-secondary,.rsssl-high-contrast .button-rsssl-tertiary,.rsssl-high-contrast .button-secondary,.rsssl-high-contrast .revoke-from-csp{background-color:#000!important;border-color:#000!important;color:#fff}.rsssl-high-contrast .button:hover{color:#fff}.rsssl-high-contrast input:checked+.rsssl-slider{background-color:#000}.rsssl-high-contrast .rsssl-help-modal,.rsssl-high-contrast .rsssl-help-modal h2{background-color:#000!important;color:#fff!important}.rsssl-high-contrast .rsssl-help-modal.rsssl-notice:after{border-right:15px solid #000}.rsssl-high-contrast .rsssl-priority{border:1px solid #fff!important}:root{--rsp-break-xs:400px;--rsp-break-s:576px;--rsp-break-m:768px;--rsp-break-l:992px;--rsp-break-xl:1200px;--rsp-break-xxl:1400px;--rsp-spacing-xs:10px;--rsp-spacing-s:15px;--rsp-spacing-m:20px;--rsp-spacing-l:30px;--rsp-spacing-xl:40px;--rsp-grid-margin:var(--rsp-spacing-xs);--rsp-grid-gap:var(--rsp-spacing-m);--rsp-border-radius:12px;--rsp-border:1px solid var(--rsp-border-color);--rsp-box-shadow:rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;--rsp-border-color:#dfdfdf;--rsp-black:#333;--rsp-white:#fff;--rsp-yellow:#f4bf3e;--rsp-blue:#29b6f6;--rsp-dark-blue:#5A6FA5;--rsp-green:#2e8a37;--rsp-red:#D7263D;--rsp-pink:#E35899;--rsp-orange:#f39c12;--rsp-yellow-faded:rgba(244, 191, 62, 0.1);--rsp-blue-faded:rgba(41, 182, 246, 0.1);--rsp-dark-blue-faded:rgba(41, 182, 246, 0.1);--rsp-green-faded:rgba(46, 138, 55, 0.1);--rsp-red-faded:rgba(215, 38, 61, 0.1);--rsp-pink-faded:rgba(227, 88, 153, 0.1);--rsp-orange-faded:rgba(243, 156, 18, 0.1);--rsp-background-block-color:var(--rsp-white);--rsp-background-color:#f0f0f1;--rsp-input-background-color:#F1F1F1;--rsp-input-text-color:var(--rsp-text-color);--rsp-input-border-color:#8c8f94;--rsp-text-color:rgba(26, 26, 26, 0.9);--rsp-text-color-invert:rgba(255, 255, 255, 0.9);--rsp-text-color-white:rgba(255, 255, 255, 0.9);--rsp-text-color-light:rgba(69, 69, 82, 0.9);--rsp-grey-200:#fafafa;--rsp-grey-300:#ededed;--rsp-grey-400:#c6c6c6;--rsp-grey-500:#737373;--rsp-grey-600:#696969;--rsp-color-success:var(--rsp-green);--rsp-color-error:var(--rsp-red);--rsp-color-warning:var(--rsp-orange);--rsp-color-open:var(--rsp-yellow);--rsp-fs-100:0.6125rem;--rsp-fs-200:0.625rem;--rsp-fs-300:0.8125rem;--rsp-fs-400:0.875rem;--rsp-fs-500:1rem;--rsp-fs-600:1.125rem;--rsp-fs-700:1.25rem;--rsp-fs-800:1.5rem;--rsp-fs-900:2.5rem;--rsp-brand-primary:var(--rsp-green);--rsp-brand-secondary:var(--rsp-yellow);--rsp-brand-primary-faded:var(--rsp-green-faded)}.error:not(.really-simple-plugins),.notice-info:not(.really-simple-plugins),.notice:not(.really-simple-plugins),.update-nag:not(.really-simple-plugins){display:none!important}.rsssl-spacer{width:10px}.rsssl-scroll-container{height:227px;overflow-y:auto;border-radius:0}.rsssl-scroll-container::-webkit-scrollbar-track{border-radius:10px;-webkit-box-shadow:inset 0 0 2px transparent;background-color:transparent}.rsssl-scroll-container::-webkit-scrollbar{border-radius:10px;width:8px;background-color:var(--rsp-grey-300);cursor:pointer}.rsssl-scroll-container::-webkit-scrollbar-thumb{background-color:var(--rsp-grey-400);border-radius:10px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text{color:#888;font-size:13px;font-weight:400;font-style:italic;padding-bottom:0!important;margin-top:0!important}.rsssl-grid .rsssl-item .item-container .form-table tbody tr.rsssl-comment-text td{padding-top:0!important}.rsssl-networksettings-overlay{position:absolute;top:0;left:0;bottom:0;right:0;background:rgba(255,255,255,.8)}.rsssl-networksettings-overlay .rsssl-disabled-settings-overlay{position:absolute;width:calc(100% - 65px);bottom:0;background-color:#fff;padding:20px;margin:12px;box-shadow:0 0 5px 5px rgba(223,222,222,.4)}.rsssl-networksettings-overlay .rsssl-disabled-settings-overlay .rsssl-open{float:left;margin-right:12px}#rsssl_do_activate_ssl{margin-right:10px}.rlrsssl-review{display:none}.rsssl-main{flex:1;width:80%;float:left}.rsssl-sidebar img{max-width:100%}.really-simple-ssl-table{display:flex;flex-direction:column}.rsssl-table-td-main-content{width:100%}.really-simple-ssl-table tr:first-child{border-top-left-radius:.55rem;border-top-right-radius:.55rem}.really-simple-ssl-table tr:last-child{margin-bottom:0;border-bottom-left-radius:.55rem;border-bottom-right-radius:.55rem}.really-simple-ssl-table tr{position:relative;padding-left:5px;padding-top:10px;background-color:#fff}.debug-log{background-color:#fff;padding:15px}.rsssl-icons{width:15px;height:15px}.rsssl-update-count{margin-left:4px!important;display:inline-block;vertical-align:top;box-sizing:border-box;margin:1px 0 -1px 2px;padding:0 5px;min-width:18px;height:18px;border-radius:9px;background-color:#d7263d;color:#fff;font-size:11px;line-height:1.6;text-align:center;z-index:26}.rsssl-tooltip,[data-rsssl-tooltip]{position:relative;cursor:pointer}.rsssl-tooltip:after,.rsssl-tooltip:before,[data-rsssl-tooltip]:after,[data-rsssl-tooltip]:before{position:absolute;visibility:hidden;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);opacity:0;-webkit-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-webkit-transform .2s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-moz-transform .2s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,transform .2s cubic-bezier(.71,1.7,.77,1.24);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);pointer-events:none}.rsssl-tooltip:focus:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:hover:before,[data-rsssl-tooltip]:focus:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:hover:before{visibility:visible;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1}.rsssl-tooltip:before,[data-rsssl-tooltip]:before{z-index:1001;border:6px solid transparent;background:0 0;content:""}.rsssl-tooltip:after,[data-rsssl-tooltip]:after{z-index:1000;padding:8px;width:220px;background-color:#000;background-color:rgba(51,51,51,.9);color:#fff;content:attr(data-rsssl-tooltip);font-size:14px;line-height:1.2}.rsssl-tooltip-right{font-weight:400}.rsssl-tooltip-top:after,.rsssl-tooltip-top:before,.rsssl-tooltip:after,.rsssl-tooltip:before,[data-rsssl-tooltip]:after,[data-rsssl-tooltip]:before{bottom:100%;left:50%}.rsssl-tooltip-top:before,.rsssl-tooltip:before,[data-rsssl-tooltip]:before{margin-left:-6px;margin-bottom:-12px;border-top-color:#000;border-top-color:rgba(51,51,51,.9)}.rsssl-tooltip-top:after,.rsssl-tooltip:after,[data-rsssl-tooltip]:after{margin-left:-80px}.rsssl-tooltip-top:focus:after,.rsssl-tooltip-top:focus:before,.rsssl-tooltip-top:hover:after,.rsssl-tooltip-top:hover:before,.rsssl-tooltip:focus:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:hover:before,[data-rsssl-tooltip]:focus:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:hover:before{-webkit-transform:translateY(-12px);-moz-transform:translateY(-12px);transform:translateY(-12px)}.rsssl-tooltip-left:after,.rsssl-tooltip-left:before{right:100%;left:auto}.rsssl-tooltip-left:before{margin-left:0;margin-right:-12px;margin-bottom:0;border-top-color:transparent;border-left-color:#000;border-left-color:rgba(51,51,51,.9)}.rsssl-tooltip-left:focus:after,.rsssl-tooltip-left:focus:before,.rsssl-tooltip-left:hover:after,.rsssl-tooltip-left:hover:before{-webkit-transform:translateX(-12px);-moz-transform:translateX(-12px);transform:translateX(-12px)}.rsssl-tooltip-bottom:after,.rsssl-tooltip-bottom:before{top:100%;bottom:auto;left:50%}.rsssl-tooltip-bottom:before{margin-top:-12px;margin-bottom:0;border-top-color:transparent;border-bottom-color:#000;border-bottom-color:rgba(51,51,51,.9)}.rsssl-tooltip-bottom:focus:after,.rsssl-tooltip-bottom:focus:before,.rsssl-tooltip-bottom:hover:after,.rsssl-tooltip-bottom:hover:before{-webkit-transform:translateY(12px);-moz-transform:translateY(12px);transform:translateY(12px)}.rsssl-tooltip-right:after,.rsssl-tooltip-right:before{bottom:50%;left:100%}.rsssl-tooltip-right:before{margin-bottom:0;margin-left:-12px;border-top-color:transparent;border-right-color:#000;border-right-color:rgba(51,51,51,.9)}.rsssl-tooltip-right:focus:after,.rsssl-tooltip-right:focus:before,.rsssl-tooltip-right:hover:after,.rsssl-tooltip-right:hover:before{-webkit-transform:translateX(12px);-moz-transform:translateX(12px);transform:translateX(12px)}.rsssl-tooltip-left:before,.rsssl-tooltip-right:before{top:3px}.rsssl-tooltip-left:after,.rsssl-tooltip-right:after{margin-left:0;margin-bottom:-25px}.rsssl-really-simple-plugins-logo{background-color:#ececec;margin-left:-15px;margin-right:-15px}.rsssl-sidebar{width:240px;margin-top:20px;padding-left:15px;padding-right:15px;margin-right:15px;padding-bottom:15px;background-color:#ececec}.rsssl-sidebar-single-content-container,.rsssl-sidebar-single-content-container-pro{background-color:#fff;min-height:125px;padding-bottom:35px;margin-bottom:10px;width:100%;border-radius:3%}.rsssl-sidebar-title h3{font-size:.9em}.rsssl-sidebar-text-content,.rsssl-sidebar-text-content-pro{font-weight:700;font-size:.8em;width:90%;margin:auto}.rsssl-sidebar-text-content{width:45%;padding-top:5px;padding-right:7px;float:right;margin:10px auto}.rsssl-pro-image{height:30px;margin-top:6px}.rsssl-sidebar-image-pro{width:90%;margin:10px}.rsssl-sidebar-image{width:100px;float:left;padding:10px;height:100px}@media screen and (max-width:1024px) and (min-width:541px){.rsssl-main{width:100%}.rsssl-sidebar-title{text-align:center}.rsssl-container{flex-direction:column}.rsssl-sidebar{width:100%}.rsssl-really-simple-plugins-logo{width:40%}.rsssl-sidebar-single-content-container{background-color:#fff;width:40%;padding-left:25px;float:left;margin-right:25px}.rsssl-sidebar-single-content-container-pro{width:40%;padding-left:25px;margin:auto auto 25px}.rsssl-sidebar-um-text-content{width:40%}.rsssl-pro-image{display:none}}@media screen and (max-width:540px){.rsssl-main{width:100%}.rsssl-container{flex-direction:column}.rsssl-sidebar{display:grid;text-align:-webkit-center;width:70%}.rsssl-sidebar-um-text-content{width:45%}.rsssl-sidebar-single-content-container,.rsssl-sidebar-single-content-container-pro{padding-bottom:10px}}.rsssl-sidebar h4{font-size:14px;font-style:italic}.rsssl-wrapper{padding:30px}.rsssl-sidebar-list{font-size:.9em}#rsssl-premium-button-pro{-webkit-border-radius:12px;-moz-border-radius:12px}.rsssl-sidebar-content{float:left;padding-bottom:10px}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}.rsssl-container{display:flex}#rsssl-premium-button,#rsssl-premium-button-pro{display:inline-table;width:40%;text-align:center;float:right;font-size:inherit;height:25px;border-radius:12px;border:0;background-color:#000;color:#fff;margin-right:5px}.rsssl-more-info-button{border:0;border-radius:50px;clear:both;margin-top:10px}.rsssl-switch{position:relative;display:inline-block;width:35px;height:18px}.rsssl-switch input{position:absolute;opacity:0;display:block!important}.rsssl-slider,.rsssl-slider:before{position:absolute;-webkit-transition:.4s;transition:.4s}.rsssl-slider{cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc}.rsssl-slider:before{content:"";height:14px;width:14px;left:3px;bottom:2.2px;background-color:#fff}.rsssl-slider.rsssl-round{border-radius:20px}.rsssl-slider.rsssl-round:before{border-radius:50%}input:checked+.rsssl-slider{background-color:#2daae1}input:checked+.rsssl-slider:before{-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translateX(16px)}input:disabled+.rsssl-slider{background-color:#b3e0f4}input:focus+.rsssl-slider{box-shadow:0 0 1px #2daae1}.debug-log{width:90%}.rsssl-dashboard-plusone{margin-left:8px}.rsssl-highlight{background-color:#fff;border-right:4px solid #61ce70;-o-animation:fadeIt 5s ease-in-out;animation:fadeIt 5s ease-in-out}.form-table th{padding-left:10px}.rsssl-dashboard-dismiss .close{all:initial}.rsssl-dashboard-dismiss span{font-size:1.5em;color:#000;font-family:sans-serif}.rsssl-dashboard-dismiss span img{height:12px;width:12px}.rsssl-dashboard-dismiss span:hover{cursor:pointer;color:gray}.rsssl-grid .rsssl-item.rsssl-license-grid .item-container .form-table tbody tr{max-width:100%;width:100%}.rsssl-grid .rsssl-item.rsssl-license-grid .item-container .rsssl-grid-item-footer input+input{margin-left:20px}.rsssl_notice_license{border-radius:.25rem;padding:10px 15px;margin:10px 0;background-color:#29b6f6;border:1px solid #29b6f6;color:#fff}.rsssl_notice_license h1{font-size:16px}.rsssl_notice_license,.rsssl_notice_license p{font-size:13px!important}.rsssl_notice_license.success{background-color:#dff0d8;border-color:#d0e9c6;color:#3c763d}.rsssl_notice_license.warning{color:#000;background-color:#fbc43d;border-color:#fbc43d}.rsssl_notice_license ul{list-style-type:disc;margin-left:22px}#rsssl-wizard .rsssl-settings-saved,.rsssl-container .rsssl-settings-saved{display:none;opacity:0;top:20px;height:45px;position:fixed;background-color:#fff;z-index:999999;left:50%;transform:translateX(-50%);text-align:left;box-shadow:0 0 5px 5px rgba(222,222,222,.2)}#rsssl-wizard .rsssl-settings-saved .rsssl-success,.rsssl-container .rsssl-settings-saved .rsssl-success{color:#61ce70}#rsssl-wizard .rsssl-settings-saved svg,.rsssl-container .rsssl-settings-saved svg{stroke:#61ce70;fill:#61ce70}#rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon,.rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon{display:flex;align-content:center;padding:0 20px}#rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon .rsssl-icon,.rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon .rsssl-icon{margin:12px 0 0;height:30px;width:30px}#rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon span,.rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon span{display:flex;align-self:center;font-size:12px;font-weight:400;color:#696969}#rsssl-wizard .rsssl-settings-saved .rsssl-settings-saved__text_and_icon div,.rsssl-container .rsssl-settings-saved .rsssl-settings-saved__text_and_icon div{display:flex;align-self:center}#rsssl-wizard .rsssl-settings-saved.rsssl-settings-saved--fade-in,.rsssl-container .rsssl-settings-saved.rsssl-settings-saved--fade-in{display:block;-webkit-animation:fadeInFromNone 5s ease-in-out;-moz-animation:fadeInFromNone 5s ease-in-out;-o-animation:fadeInFromNone 5s ease-in-out;animation:fadeInFromNone 5s ease-in-out}
 
assets/css/rtl/admin.min.css ADDED
@@ -0,0 +1 @@
 
1
+ @charset "UTF-8";:root{--rsp-spacing-xxs:5px;--rsp-spacing-xs:10px;--rsp-spacing-s:15px;--rsp-spacing-m:20px;--rsp-spacing-l:25px;--rsp-spacing-xl:30px;--rsp-grid-margin:var(--rsp-spacing-s);--rsp-grid-gap:var(--rsp-spacing-m);--rsp-border-radius:12px;--rsp-border-radius-s:8px;--rsp-border:1px solid var(--rsp-border-color);--rsp-box-shadow:rgba(0,0,0,0.1) 0 4px 6px -1px,rgba(0,0,0,0.06) 0 2px 4px -1px;--rsp-box-shadow-dark:rgba(0,0,0,0.2) 0 4px 6px -1px,rgba(0,0,0,0.12) 1px 0 4px 1px;--rsp-border-color:#dfdfdf;--rsp-black:#333;--rsp-white:#fff;--rsp-yellow:#f4bf3e;--rsp-blue:#29b6f6;--rsp-dark-blue:#1e73be;--rsp-green:#2e8a37;--rsp-red:#d7263d;--rsp-pink:#e35899;--rsp-wp-blue:#007cba;--rsp-yellow-faded:#f2e6c9;--rsp-blue-faded:#ecf8fe;--rsp-dark-blue-faded:#ebf2f9;--rsp-green-faded:#ecf4ed;--rsp-red-faded:#fbebed;--rsp-pink-faded:#fceff5;--rsp-wp-blue-faded:#c6e0ef;--rsp-background-block-color:var(--rsp-white);--rsp-background-color:#f0f0f1;--rsp-input-background-color:#fff;--rsp-input-text-color:var(--rsp-text-color);--rsp-input-border-color:var(--rsp-grey-400);--rsp-text-color:rgba(26,26,26,0.95);--rsp-text-color-invert:rgba(255,255,255,0.95);--rsp-text-color-white:rgba(255,255,255,0.95);--rsp-text-color-light:rgba(69,69,82,0.95);--rsp-grey-100:#fafafa;--rsp-grey-200:#f9f9f9;--rsp-grey-300:#ededed;--rsp-grey-400:#c6c6c6;--rsp-grey-500:#737373;--rsp-grey-600:#696969;--rsp-color-success:var(--rsp-green);--rsp-color-error:var(--rsp-red);--rsp-color-warning:var(--rsp-yellow);--rsp-color-open:var(--rsp-yellow);--rsp-color-disabled:var(--rsp-grey-300);--rsp-fs-100:.6875rem;--rsp-fs-200:.8rem;--rsp-fs-300:.8125rem;--rsp-fs-400:.875rem;--rsp-fs-500:1rem;--rsp-fs-600:1.125rem;--rsp-fs-700:1.25rem;--rsp-fs-800:1.5rem;--rsp-fs-900:3.5rem}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.rsssl{margin:0;margin-right:-20px;font-size:var(--rsp-fs-300);box-sizing:border-box;color:var(--rsp-text-color);background-color:var(--rsp-background-color);font-weight:400;line-height:1.5}@media only screen and (max-width:782px){.rsssl{margin-right:-9px}}.rsssl *,.rsssl *:before,.rsssl *:after{box-sizing:inherit}.rsssl body,.rsssl h1,.rsssl h2,.rsssl h3,.rsssl h4,.rsssl h5,.rsssl h6,.rsssl p,.rsssl ol,.rsssl ul{margin:0;padding:0}.rsssl img{max-width:100%;height:auto}.rsssl h1,.rsssl h2,.rsssl h3,.rsssl h4,.rsssl h5,.rsssl h6{color:var(--rsp-text-color);line-height:1.5}.rsssl .rsssl-h0{font-size:var(--rsp-fs-900);font-weight:700}.rsssl h1,.rsssl .rsssl-h1{font-size:var(--rsp-fs-800);line-height:1.5;font-weight:500}.rsssl h2,.rsssl .rsssl-h2{font-size:var(--rsp-fs-700);font-weight:700}.rsssl h3,.rsssl .rsssl-h3{font-size:var(--rsp-fs-600);font-weight:600}.rsssl h4,.rsssl .rsssl-h4{font-size:var(--rsp-fs-600);font-weight:600}.rsssl h5,.rsssl .rsssl-h5{font-size:var(--rsp-fs-400);font-weight:400}.rsssl h6,.rsssl .rsssl-h6{font-size:var(--rsp-fs-300)}.rsssl p{color:var(--rsp-text-color);font-weight:400;font-size:var(--rsp-fs-300);line-height:1.5}.rsssl .rsssl-small-text{font-size:var(--rsp-fs-200);line-height:1.5;color:var(--rsp-text-color-light)}.rsssl a,.rsssl .rsssl-link{color:var(--rsp-text-color)}.rsssl .rsssl-notice-hook-element{display:none !important}.rsssl .error:not(.really-simple-plugins),.rsssl .notice:not(.really-simple-plugins),.rsssl .update-nag:not(.really-simple-plugins),.rsssl .notice-info:not(.really-simple-plugins){display:none !important}.rsssl .rsssl-header,.rsssl .rsssl-content-area{max-width:clamp(300px,100% - var(--rsp-grid-gap) * 2,1600px);margin:0 auto}@media(max-width:1599px){.rsssl .rsssl-header,.rsssl .rsssl-content-area{--rsp-grid-gap:var(--rsp-spacing-m)}}@media(max-width:1440px){.rsssl .rsssl-header,.rsssl .rsssl-content-area{--rsp-grid-gap:var(--rsp-spacing-s)}}@media(max-width:1366px){.rsssl .rsssl-header,.rsssl .rsssl-content-area{--rsp-grid-gap:var(--rsp-spacing-xs)}}.rsssl .rsssl-header-container .rsssl-header{display:flex;flex-wrap:wrap;justify-content:space-between;height:70px;box-sizing:border-box;background-color:var(--rsp-background-block-color)}@media(max-width:1080px){.rsssl .rsssl-header-container .rsssl-header{height:100%}}@media(max-width:576px){.rsssl .rsssl-logo{display:none}}.rsssl .rsssl-header-left{display:flex;font-size:var(--rsp-fs-400)}@media(max-width:1080px){.rsssl .rsssl-header-left{justify-content:center;margin:var(--rsp-spacing-xs) 0;order:3;width:100%;background-color:var(--rsp-background-block-color)}}.rsssl .rsssl-header-left .rsssl-header-menu{margin:auto 15px}.rsssl .rsssl-header-left .rsssl-header-menu ul{display:flex}.rsssl .rsssl-header-left .rsssl-header-menu li{margin-bottom:0}.rsssl .rsssl-header-left .rsssl-header-menu a{padding:23px 15px;text-decoration:none;color:var(--rsp-text-color);height:100%;border-bottom:4px solid transparent;transition:border .3s ease-out;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}@media(max-width:1080px){.rsssl .rsssl-header-left .rsssl-header-menu a{padding:10px 15px}}.rsssl .rsssl-header-left .rsssl-header-menu a.active{border-bottom:4px solid var(--rsp-brand-primary)}.rsssl .rsssl-header-left .rsssl-header-menu a:hover{color:var(--rsp-brand-primary)}.rsssl .rsssl-header-right{display:flex;flex-wrap:wrap;align-items:center;margin-right:auto;gap:var(--rsp-spacing-s);min-height:52px}.rsssl .rsssl-header-right select{max-width:60ch}@media(max-width:576px){.rsssl .rsssl-header-right{display:none}}@media(max-width:782px){.rsssl .rsssl-header-right .button{display:none}}.rsssl .rsssl-content-area{margin-top:var(--rsp-grid-gap)}.rsssl .rsssl-header-container{background:var(--rsp-background-block-color)}.rsssl .rsssl-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:max-content;gap:var(--rsp-grid-gap);min-height:calc(100vh - 32px - 80px - 20px - var(--rsp-grid-gap))}.rsssl .rsssl-grid.rsssl-settings{grid-template-columns:minmax(275px,max-content) 2fr minmax(min-content,1fr)}@media only screen and (max-width:1080px){.rsssl .rsssl-grid.rsssl-settings{grid-template-columns:repeat(4,1fr)}.rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-menu,.rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-settings,.rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-help{grid-column:1/-1}}@media only screen and (max-width:1280px){.rsssl .rsssl-grid{grid-template-columns:repeat(2,1fr)}}@media only screen and (max-width:1080px){.rsssl .rsssl-grid{max-width:790px;width:calc(100% - var(--rsp-grid-gap) * 2)}}.rsssl .rsssl-grid-item{background:var(--rsp-background-block-color);box-shadow:var(--rsp-box-shadow);border-radius:var(--rsp-border-radius);transition:all 1s ease;display:flex;flex-wrap:wrap;justify-content:flex-start;flex-direction:column;flex-basis:100%;grid-column:span 1;grid-row:span 1}.rsssl .rsssl-grid-item.rsssl-disabled{min-height:200px}@media(max-width:1080px){.rsssl .rsssl-grid-item{grid-column:span 4}}.rsssl .rsssl-grid-item.no-background{background:100%;border:0;box-shadow:none}.rsssl .rsssl-grid-item.rsssl-column-2{grid-column:span 2}@media(max-width:1080px){.rsssl .rsssl-grid-item.rsssl-column-2{grid-column:span 4}}.rsssl .rsssl-grid-item.rsssl-row-2{grid-row:span 2;min-height:400px}.rsssl .rsssl-grid-item-header{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;min-height:calc(30px + var(--rsp-spacing-s) * 2);padding:var(--rsp-spacing-m) var(--rsp-spacing-l)}@media screen and (max-width:1280px){.rsssl .rsssl-grid-item-header{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl .rsssl-grid-item-header{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl .rsssl-grid-item-header:empty{display:none}.rsssl .rsssl-grid-item-title{margin:4px 0 4px 0}.rsssl .rsssl-grid-item-controls{font-size:var(--rsp-fs-200);display:flex;gap:var(--rsp-spacing-s)}.rsssl .rsssl-grid-item-content{width:100%;box-sizing:border-box;padding-inline:var(--rsp-spacing-l);flex-grow:100}@media screen and (max-width:1280px){.rsssl .rsssl-grid-item-content{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl .rsssl-grid-item-content{padding-inline:var(--rsp-spacing-s)}}.rsssl .rsssl-grid-item-content:empty{display:none}.rsssl .rsssl-grid-item-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--rsp-grid-margin);width:100%;min-height:calc(30px + var(--rsp-spacing-s) * 2);box-sizing:border-box;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);align-self:flex-end}@media screen and (max-width:1280px){.rsssl .rsssl-grid-item-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl .rsssl-grid-item-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl .rsssl-grid-item-footer .rsssl-legend{display:flex}.rsssl .rsssl-grid-item-footer .rsssl-legend span{padding-right:5px}.rsssl .rsssl-grid-item-footer:empty{display:none}.rsssl .rsssl-grid-item .rsssl-flex-push-right{margin-right:auto}.rsssl .rsssl-grid-item .rsssl-flex-push-left{margin-left:auto}.rsssl-modal-backdrop{position:fixed;top:0;left:0;bottom:0;right:0;background-color:rgba(0,0,0,0.6);width:100%;height:100%;z-index:2}.rsssl-modal{width:clamp(300px,75ch,100vw - 50px);position:fixed;z-index:3;border-radius:var(--rsp-border-radius);background-color:var(--rsp-white);top:50%;right:50%;transform:translate(50%,-50%);margin:25px auto}.rsssl-modal .rsssl-modal-header{padding:var(--rsp-spacing-m) var(--rsp-spacing-l);display:flex;justify-content:space-between;align-items:center;border-radius:var(--rsp-border-radius)}@media screen and (max-width:1280px){.rsssl-modal .rsssl-modal-header{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-modal .rsssl-modal-header{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-modal .rsssl-modal-header .modal-title{margin:0;background-color:white}.rsssl-modal .rsssl-modal-header .rsssl-modal-close{cursor:pointer;background:100%;border:0;font-weight:700}.rsssl-modal .rsssl-modal-header button img{height:16px;width:16px}.rsssl-modal .rsssl-modal-content{position:relative;font-size:var(--rsp-fs-300);line-height:1.5;padding:var(--rsp-spacing-m) var(--rsp-spacing-l)}@media screen and (max-width:1280px){.rsssl-modal .rsssl-modal-content{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-modal .rsssl-modal-content{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-modal .rsssl-modal-content .rsssl-modal-subtitle{font-size:var(--rsp-fs-600);font-weight:600;margin-bottom:var(--rsp-spacing-xs)}.rsssl-modal .rsssl-modal-content .rsssl-modal-description{overflow-wrap:anywhere;margin-top:0;font-weight:400;line-height:1.5;margin-bottom:var(--rsp-spacing-s)}.rsssl-modal .rsssl-modal-footer{display:flex;flex-direction:row;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);gap:10px}@media screen and (max-width:1280px){.rsssl-modal .rsssl-modal-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-modal .rsssl-modal-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-modal .rsssl-modal-footer .button{display:flex;align-items:flex-start;justify-content:center;min-width:105px;text-align:center;border-radius:6px}.rsssl-modal .rsssl-modal-footer .rsssl-button-help{background-color:#d7263d;color:white;border-color:#d7263d}.rsssl-modal .rsssl-modal-footer .rsssl-button-help:hover{opacity:.9}.rsssl-header-container .rsssl-header{display:flex;justify-content:space-between;height:70px;box-sizing:border-box}.rsssl-header-container .rsssl-header img{margin:auto 0;height:26px}.rsssl-header-container .rsssl-header .rsssl-header-menu{display:flex;align-items:center;height:100%;padding:0 20px;box-sizing:border-box}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item{display:flex;align-items:center;height:100%;padding:0 20px;box-sizing:border-box}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item:first-child{margin-right:0}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item:last-child{margin-left:0}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item.rsssl-header-menu-item-active{background-color:#f5f5f5}.rsssl-header-container .rsssl-header .rsssl-header-actions{display:flex;align-items:center;margin-right:auto;gap:var(--rsp-spacing-s)}.rsssl-header-container .rsssl-header .rsssl-header-actions select{max-width:60ch}.rsssl a.button,.rsssl button.button,.rsssl input.button,.rsssl span.button{font-size:var(--rsp-fs-300);font-weight:400;transition:all .3s ease;min-height:10px}.rsssl a.button.button-secondary,.rsssl a.button.button-default,.rsssl button.button.button-secondary,.rsssl button.button.button-default,.rsssl input.button.button-secondary,.rsssl input.button.button-default,.rsssl span.button.button-secondary,.rsssl span.button.button-default{background:transparent}.rsssl a.button.button-black,.rsssl button.button.button-black,.rsssl input.button.button-black,.rsssl span.button.button-black{border:1px solid var(--rsp-black);background:var(--rsp-black);color:var(--rsp-text-color-white)}.rsssl a.button.button-black:hover,.rsssl a.button.button-black:focus,.rsssl a.button.button-black:active,.rsssl button.button.button-black:hover,.rsssl button.button.button-black:focus,.rsssl button.button.button-black:active,.rsssl input.button.button-black:hover,.rsssl input.button.button-black:focus,.rsssl input.button.button-black:active,.rsssl span.button.button-black:hover,.rsssl span.button.button-black:focus,.rsssl span.button.button-black:active{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--rsp-black)}.rsssl a.button.button-tertiary,.rsssl a.button.button-red,.rsssl button.button.button-tertiary,.rsssl button.button.button-red,.rsssl input.button.button-tertiary,.rsssl input.button.button-red,.rsssl span.button.button-tertiary,.rsssl span.button.button-red{border:0 solid transparent;background:var(--rsp-red);color:var(--rsp-text-color-white)}.rsssl a.button.button-tertiary:hover,.rsssl a.button.button-tertiary:focus,.rsssl a.button.button-tertiary:active,.rsssl a.button.button-red:hover,.rsssl a.button.button-red:focus,.rsssl a.button.button-red:active,.rsssl button.button.button-tertiary:hover,.rsssl button.button.button-tertiary:focus,.rsssl button.button.button-tertiary:active,.rsssl button.button.button-red:hover,.rsssl button.button.button-red:focus,.rsssl button.button.button-red:active,.rsssl input.button.button-tertiary:hover,.rsssl input.button.button-tertiary:focus,.rsssl input.button.button-tertiary:active,.rsssl input.button.button-red:hover,.rsssl input.button.button-red:focus,.rsssl input.button.button-red:active,.rsssl span.button.button-tertiary:hover,.rsssl span.button.button-tertiary:focus,.rsssl span.button.button-tertiary:active,.rsssl span.button.button-red:hover,.rsssl span.button.button-red:focus,.rsssl span.button.button-red:active{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--rsp-red);background:var(--rsp-red);color:var(--rsp-text-color-white)}.rsssl a.rsssl-button-small,.rsssl button.rsssl-button-small,.rsssl input.rsssl-button-small{font-size:var(--rsp-fs-100);font-weight:300;min-height:auto}.rsssl .rsssl-button-small+.rsssl-button-small{margin-right:10px}.rsssl-shortcode{left:10000px;position:absolute;background-color:#fff;padding:0;white-space:nowrap}.shortcode{cursor:pointer}.rsssl .rsssl-bullet{height:13px;width:13px;flex:0 0 13px;border-radius:50%;display:inline-block;background-color:var(--rsp-grey-300)}.rsssl .rsssl-bullet.rsp-yellow{background-color:var(--rsp-yellow)}.rsssl .rsssl-bullet.rsp-blue{background-color:var(--rsp-blue)}.rsssl .rsssl-bullet.rsp-pink{background-color:var(--rsp-pink)}.rsssl .rsssl-bullet.rsp-red,.rsssl .rsssl-bullet.rsssl-bullet-error{background-color:var(--rsp-red)}.rsssl .rsssl-bullet.rsp-green,.rsssl .rsssl-bullet.rsssl-bullet-success{background-color:var(--rsp-green)}.rsssl .rsssl-bullet.rsp-blue-yellow{background:var(--rsp-blue);background:linear-gradient(-77deg,#29b6f6 0,#29b6f6 30%,#f4bf3e 70%,#f4bf3e 100%);animation:gradient 2s ease infinite;background-size:200% 200%}.rsssl .rsssl-legend{display:flex;width:max-content;color:var(--rsp-text-color-light);align-items:center;min-width:0;gap:var(--rsp-spacing-xxs);text-decoration:none}.rsssl .rsssl-legend:first-of-type{margin-right:auto}@keyframes gradient{0%{background-position:100% 50%}50%{background-position:0% 50%}100%{background-position:100% 50%}}.rsssl-icon{display:flex;align-items:center;justify-content:center}.rsssl-icon svg{fill:currentColor}.rsssl-modal.rsssl-onboarding{width:clamp(300px,100ch,100vw)}.rsssl-modal.rsssl-onboarding .rsssl-logo{height:26px}.rsssl-modal.rsssl-onboarding .rsssl-modal-content{padding-top:var(--rsp-spacing-xs);line-height:2.2}.rsssl-modal.rsssl-onboarding .rsssl-modal-content ul{margin-bottom:var(--rsp-spacing-m)}.rsssl-modal.rsssl-onboarding .rsssl-modal-content ul li{display:flex;align-items:flex-start;margin-bottom:var(--rsp-spacing-xxs)}.rsssl-modal.rsssl-onboarding .rsssl-modal-content ul li .rsssl-icon{margin-top:7px;margin-left:7px}.rsssl-modal.rsssl-onboarding .rsssl-modal-content-step-footer{display:flex;align-items:center;margin-top:var(--rsp-spacing-l);gap:var(--rsp-spacing-m)}.rsssl-modal.rsssl-onboarding .rsssl-modal-content-step-footer .components-toggle-control .components-base-control__field{margin:0}.rsssl-ssllabs.rsssl-block-highlight{border:0;-o-animation:fadeItBlock 3s ease-in-out;animation:fadeItBlock 3s ease-in-out}@-o-keyframes fadeItBlock{0%{border:0}30%{border:2px solid var(--rsp-green)}100%{border:0}}@keyframes fadeItBlock{0%{border:0}30%{border:2px solid var(--rsp-green)}100%{border:0}}.rsssl-grid-item.rsssl-progress .rsssl-grid-item-content{padding:0}.rsssl-grid-item.rsssl-progress .rsssl-placeholder{padding:var(--rsp-spacing-m) var(--rsp-spacing-l)}@media screen and (max-width:1280px){.rsssl-grid-item.rsssl-progress .rsssl-placeholder{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-grid-item.rsssl-progress .rsssl-placeholder{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-progress-block .rsssl-progress{overflow:hidden;height:20px;border-radius:5px;background-color:#f7f7f7}.rsssl-progress-block .rsssl-progress .rsssl-bar{height:100%;background-color:var(--rsp-color-success)}.rsssl-progress-block .rsssl-progress .rsssl-bar.rsssl-orange{background-color:var(--rsp-color-warning)}.rsssl-progress-block .rsssl-progress-bar{padding:var(--rsp-spacing-m) var(--rsp-spacing-l);padding-block:0;border-radius:5px}@media screen and (max-width:1280px){.rsssl-progress-block .rsssl-progress-bar{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-progress-block .rsssl-progress-bar{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-progress-block .rsssl-progress-text{display:flex;align-items:center;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);padding-block:var(--rsp-spacing-s);justify-content:flex-start;gap:var(--rsp-spacing-m)}@media screen and (max-width:1280px){.rsssl-progress-block .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-progress-block .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-progress-block .rsssl-progress-text .rsssl-progress-percentage{font-size:var(--rsp-fs-800);font-weight:700}.rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span{font-weight:500;font-size:var(--rsp-fs-600)}.rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span a{margin-right:3px}@media only screen and (max-width:1366px) and (min-width:1280px){.rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span{font-size:var(--rsp-fs-500)}}.rsssl-header-html{display:flex;color:var(--rsp-text-color-light)}.rsssl-header-html .rsssl-toggle-active{text-decoration:underline}.rsssl-task-switcher-container{display:flex;border-radius:var(--rsp-border-radius)}.rsssl-task-switcher-container .rsssl-task-switcher:first-of-type{border-left:1px solid var(--rsp-grey-400);padding-left:10px}.rsssl-task-switcher-container .rsssl-task-switcher:last-of-type{padding-right:10px}.rsssl-task-switcher{font-size:var(--rsp-fs-200);cursor:pointer;transition:.3s}.rsssl-task-switcher:hover{text-decoration:underline}.rsssl-active-filter-remaining .rsssl-remaining-tasks,.rsssl-active-filter-all .rsssl-all-tasks{text-decoration:underline}.rsssl-task-element{display:flex;align-items:flex-start;justify-content:center;gap:var(--rsp-spacing-m);padding-bottom:var(--rsp-spacing-s)}@media(max-width:1280px){.rsssl-task-element{gap:var(--rsp-spacing-xs)}}.rsssl-task-element .rsssl-task-message{flex:1;font-size:var(--rsp-fs-300)}.rsssl-task-element .rsssl-task-form{margin-top:var(--rsp-spacing-xxs);display:flex;gap:var(--rsp-spacing-xs)}.rsssl-task-element .rsssl-task-enable{cursor:pointer;line-height:1.5}.rsssl-task-element .rsssl-task-dismiss:hover{transform:scale(1.1)}.rsssl-task-element .rsssl-task-dismiss button{all:initial;cursor:pointer;padding:4px}.rsssl-task-element .rsssl-task-dismiss svg{height:12px;width:12px}.rsssl-scroll-container{padding:var(--rsp-spacing-m) var(--rsp-spacing-l);height:230px;overflow-y:auto;padding-block:0;padding-top:var(--rsp-spacing-s);border-radius:0}@media screen and (max-width:1280px){.rsssl-scroll-container{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-scroll-container{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-scroll-container::-webkit-scrollbar-track{border-radius:10px;-webkit-box-shadow:inset 0 0 2px rgba(0,0,0,0);background-color:transparent}.rsssl-scroll-container::-webkit-scrollbar{width:8px;border-radius:10px;background-color:var(--rsp-grey-300)}.rsssl-scroll-container::-webkit-scrollbar-thumb{background-color:var(--rsp-grey-400);border-radius:10px}.rsssl-progress-status-container{margin-left:40px}.rsssl-task-status,.rsssl-locked-overlay .rsssl-progress-status{display:block;min-width:100px;text-align:center;border-radius:15px;padding:4px 8px;font-size:var(--rsp-fs-100);font-weight:600}.rsssl-task-status.rsssl-premium,.rsssl-locked-overlay .rsssl-premium.rsssl-progress-status{min-width:100px !important}@media(max-width:1280px){.rsssl-task-status,.rsssl-locked-overlay .rsssl-progress-status{min-width:80px}}.rsssl-task-status.rsssl-completed,.rsssl-locked-overlay .rsssl-completed.rsssl-progress-status,.rsssl-task-status.rsssl-success,.rsssl-locked-overlay .rsssl-success.rsssl-progress-status{background-color:var(--rsp-color-success);color:var(--rsp-text-color-white)}.rsssl-task-status.rsssl-open,.rsssl-locked-overlay .rsssl-open.rsssl-progress-status{background-color:var(--rsp-color-open)}.rsssl-task-status.rsssl-warning,.rsssl-locked-overlay .rsssl-warning.rsssl-progress-status{background-color:var(--rsp-color-error);color:var(--rsp-text-color-white)}.rsssl-task-status.rsssl-premium,.rsssl-locked-overlay .rsssl-premium.rsssl-progress-status{background-color:var(--rsp-blue);color:var(--rsp-text-color-white)}@media(max-width:1080px){.rsssl-scroll-container .rsssl-task-status,.rsssl-scroll-container .rsssl-locked-overlay .rsssl-progress-status,.rsssl-locked-overlay .rsssl-scroll-container .rsssl-progress-status{aspect-ratio:1/1;min-width:10px;height:16px;border-radius:100%;text-indent:-9999px;white-space:nowrap}}.rsssl-plusone{min-width:15px;height:15px;font-size:var(--rsp-fs-100);line-height:1.5;display:inline-block;vertical-align:top;box-sizing:border-box;margin:1px 2px -1px 0;padding:0 5px;border-radius:9px;background-color:#d63638;color:#fff;text-align:center}@media only screen and (max-width:1366px){.rsssl-footer-left{display:none}}.rsssl-grid-item.rsssl-ssllabs .rsssl-grid-item-content{padding:0}.rsssl-ssllabs .rsssl-placeholder{padding:var(--rsp-spacing-m) var(--rsp-spacing-l)}@media screen and (max-width:1280px){.rsssl-ssllabs .rsssl-placeholder{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-ssllabs .rsssl-placeholder{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-ssllabs .rsssl-inactive .rsssl-score-snippet{color:var(--rsp-color-disabled)}.rsssl-ssllabs .rsssl-inactive .rsssl-ssl-test>div{background:var(--rsp-grey-300)}.rsssl-ssllabs .rsssl-inactive .rsssl-details:last-of-type{opacity:.2}.rsssl-ssllabs .rsssl-ssl-test-container{background:var(--rsp-grey-100);padding:20px 25px}.rsssl-ssllabs .rsssl-ssl-test-container.rsssl-error{background:var(--rsp-red-faded)}.rsssl-ssllabs .rsssl-ssl-test-container.rsssl-success{background:var(--rsp-green-faded)}@media only screen and (max-width:1599px) and (min-width:1280px){.rsssl-ssllabs .rsssl-ssl-test-container{padding:5px}}.rsssl-ssllabs .rsssl-ssl-test{display:flex;gap:15px}.rsssl-ssllabs .rsssl-ssl-test>div{flex:1;background-color:#fff}@media only screen and (max-width:1599px) and (min-width:1280px){.rsssl-ssllabs .rsssl-ssl-test>div{background-color:transparent}}.rsssl-ssllabs .rsssl-ssl-test-grade{text-align:center;display:flex;align-items:center;justify-content:center;font-size:var(--rsp-fs-900);font-weight:700;border-radius:8px}.rsssl-ssllabs .rsssl-ssl-test-grade.rsssl-grade-inactive{display:flex}.rsssl-ssllabs .rsssl-ssl-test-grade.rsssl-grade-inactive div{width:20px;height:8px;margin:auto auto;background-color:var(--rsp-black);border-radius:50px}.rsssl-ssllabs .rsssl-ssl-test-information{padding:10px 0;max-width:50%;border-radius:var(--rsp-border-radius)}.rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container{display:flex}.rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet{white-space:nowrap;padding:0 8px;font-size:var(--rsp-fs-100);margin:5px 10px;border-radius:3px;color:var(--rsp-text-color)}.rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet.rsssl-test-inactive{background-color:var(--rsp-grey-200);color:var(--rsp-color-disabled)}.rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet.rsssl-test-processing{background-color:var(--rsp-yellow);color:var(--rsp-black)}.rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet.rsssl-test-success{background-color:var(--rsp-color-success);color:var(--rsp-text-color-white)}.rsssl-ssllabs .rsssl-ssl-test-information .rsssl-score-container .rsssl-score-snippet.rsssl-test-error{background-color:var(--rsp-brand-primary);color:var(--rsp-black)}.rsssl-ssllabs .rsssl-details{margin:var(--rsp-spacing-m);display:flex}.rsssl-ssllabs .rsssl-details .rsssl-detail-icon{width:30px}.rsssl-ssllabs .rsssl-details .rsssl-detail-icon .rsssl-icon{margin-top:2px}.rsssl-ssllabs .rsssl-details .rsssl-status-red{color:var(--rsp-red)}@media only screen and (max-width:1599px) and (min-width:1280px){.rsssl-ssllabs .rsssl-details{margin:var(--rsp-spacing-s)}}.rsssl-ssllabs .rsssl-details+.rsssl-details{margin-top:0}.rsssl-gridblock-progress-container.rsssl-error .rsssl-gridblock-progress{background:var(--rsp-color-warning)}.rsssl-gridblock-progress-container.rsssl-inactive{height:4px;width:100%;display:flex;background:var(--rsp-grey-300)}.rsssl-gridblock-progress-container.rsssl-inactive .rsssl-gridblock-progress{transition:width 1s ease-in-out;background:var(--rsp-green)}.rsssl-placeholder{box-sizing:border-box;width:100%;text-align:right;margin:0;padding-bottom:24px;color:#1e1e1e;-moz-font-smoothing:subpixel-antialiased;-webkit-font-smoothing:subpixel-antialiased;border-radius:2px;background-color:#fff;flex-grow:100}.rsssl-placeholder .rsssl-placeholder-line{float:right;width:100%;height:16px;margin-top:12px;border-radius:7px;background-image:linear-gradient(-90deg,#ddd 0,#e8e8e8 40px,#ddd 80px);background-size:600px;animation:shine-lines 1.6s infinite linear}.rsssl-placeholder .rsssl-placeholder-line:last-of-type{margin-bottom:24px}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(1){width:69%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(2){width:73%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(3){width:87%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(4){width:61%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(5){width:97%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(6){width:89%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(7){width:84%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(8){width:69%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(9){width:86%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(10){width:84%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(11){width:69%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(12){width:70%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(13){width:92%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(14){width:98%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(15){width:98%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(16){width:93%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(17){width:75%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(18){width:99%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(19){width:64%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(20){width:100%}.rsssl-placeholder .rsssl-placeholder-line ~ .rsssl-placeholder-line{background-color:#ddd}@keyframes shine-lines{0%{background-position:-400px}100%{background-position:220px}}.rsssl .rsssl-other-plugins .rsssl-placeholder{background-color:transparent}.rsssl .rsssl-other-plugins .rsp-logo img{height:20px}.rsssl .rsssl-other-plugins-container{display:flex !important;flex-direction:row;flex-wrap:wrap;margin-bottom:10px;font-size:var(--rsp-fs-300);line-height:1.7;gap:var(--rsp-spacing-xxs)}@media screen and (max-width:992px){.rsssl .rsssl-other-plugins-container{flex-direction:row;overflow:hidden}}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element{width:100%;display:flex;align-content:space-between;justify-content:space-between;gap:10px;--rsp-other-plugins-color:var(---rsp-brand-primary)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-zip-recipes{--rsp-other-plugins-color:var(--rsp-pink)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-burst-statistics{--rsp-other-plugins-color:var(--rsp-green)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-complianz-gdpr{--rsp-other-plugins-color:var(--rsp-blue)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-complianz-terms-conditions{--rsp-other-plugins-color:var(--rsp-black)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-really-simple-ssl{--rsp-other-plugins-color:var(--rsp-yellow)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a{width:max-content;color:var(--rsp-text-color-light);transition:color .3s ease;display:flex;align-items:center;min-width:0;gap:var(--rsp-spacing-xs);text-decoration:none}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover{color:var(--rsp-other-plugins-color);text-decoration:underline}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover .rsssl-bullet{background-color:var(--rsp-other-plugins-color)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover .rsssl-other-plugins-content{text-decoration:underline}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-bullet{transition:background-color .3s ease;background-color:var(--rsp-other-plugins-color)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-other-plugins-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-other-plugin-status{min-width:fit-content}.rsssl-tips_tricks .rsssl-grid-item-header .rsssl-grid-item-controls{height:28px}.rsssl-tips-tricks-container{display:flex !important;flex-direction:row;flex-wrap:wrap;margin-bottom:10px;font-size:var(--rsp-fs-300);line-height:1.7;gap:var(--rsp-spacing-xxs)}@media screen and (max-width:992px){.rsssl-tips-tricks-container{flex-direction:row;overflow:hidden}}.rsssl-tips-tricks-container .rsssl-tips-tricks-element{width:calc(50% - var(--rsp-spacing-xxs))}@media(max-width:782px){.rsssl-tips-tricks-container .rsssl-tips-tricks-element{width:100%}}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a{color:var(--rsp-text-color-light);transition:color .3s ease;display:flex;align-items:center;gap:var(--rsp-spacing-xs);min-width:0;text-decoration:none}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover{color:var(--rsp-brand-primary);text-decoration:underline}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover svg path{fill:var(--rsp-brand-primary)}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover .rsssl-tips-tricks-content{text-decoration:underline}.rsssl-tips-tricks-container .rsssl-tips-tricks-element .rsssl-bullet{transition:background-color .3s ease;background-color:var(--rsp-grey-300)}.rsssl-tips-tricks-container .rsssl-tips-tricks-element .rsssl-tips-tricks-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rsssl div[class^=rsssl-wizard-] .rsssl-helplink{color:var(--rsp-text-color)}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item{position:relative;margin-bottom:var(--rsp-grid-gap)}@media(max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item{grid-column:span 4}}.rsssl div[class^=rsssl-wizard-].rsssl-column-2{grid-column:span 2}@media(max-width:1080px){.rsssl div[class^=rsssl-wizard-].rsssl-column-2{grid-column:span 4}}.rsssl div[class^=rsssl-wizard-] .rsssl-locked{position:absolute;z-index:10;top:0;right:0;bottom:0;left:0;background:rgba(255,255,255,0.8);border-radius:var(--rsp-border-radius)}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-shield-overlay{height:0;top:calc(100% - 190px);position:relative;align-items:center;justify-content:center;display:flex}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay{z-index:1;top:calc(100% - 95px);position:relative;display:flex;align-items:center;gap:var(--rsp-spacing-s);background-color:var(--rsp-white);padding:var(--rsp-spacing-m) var(--rsp-spacing-l);border-radius:var(--rsp-border-radius-input);margin:var(--rsp-spacing-s);box-shadow:var(--rsp-box-shadow)}@media screen and (max-width:1280px){.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay .rsssl-open{float:right;margin-left:12px}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay .rsssl-progress-status{float:right;margin-left:20px}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer{justify-content:flex-end;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--rsp-grid-margin);width:100%;min-height:20px;box-sizing:border-box;align-self:flex-end}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer .rsssl-legend{display:flex}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer .rsssl-legend span{padding-right:5px}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer:empty{display:none}.rsssl-wizard-help{display:flex;flex-wrap:wrap;align-content:flex-start;gap:var(--rsp-spacing-xs)}.rsssl-wizard-help details{font-size:var(--rsp-fs-200)}.rsssl-wizard-help details .rsssl-help-more-info{display:flex;flex-direction:row;margin-top:12px}.rsssl-wizard-help details summary{display:grid;grid-template-columns:1fr auto;justify-content:space-between;font-size:var(--rsp-fs-300);font-weight:600;cursor:pointer}.rsssl-wizard-help details summary::-webkit-details-marker{display:none}.rsssl-wizard-help details summary:first-of-type{list-style-type:none}.rsssl-wizard-help details summary .rsssl-icon{transition:all .3s ease-in-out;transform:rotate(0)}.rsssl-wizard-help code{white-space:pre-line;display:block}.rsssl-wizard-help summary,.rsssl-wizard-help p{font-size:var(--rsp-fs-200)}.rsssl-wizard-help details[open]{padding:var(--rsp-spacing-s) var(--rsp-spacing-m)}.rsssl-wizard-help details[open] summary{padding:0;padding-bottom:var(--rsp-spacing-xs)}.rsssl-wizard-help details[open] summary .rsssl-icon{transform:rotate(-180deg)}.rsssl-wizard-help .rsssl-help-header{width:100%;display:flex;padding:10px}.rsssl-wizard-help .rsssl-help-header .rsssl-help-title{font-size:18px}.rsssl-wizard-help .rsssl-help-header .rsssl-help-control{margin-right:auto;cursor:pointer}.rsssl-wizard-help-notice{width:100%;background:var(--rsp-background-block-color);box-shadow:var(--rsp-box-shadow);border-radius:var(--rsp-border-radius);border-radius:var(--rsp-border-radius-s);height:fit-content;background-color:var(--rsp-dark-blue-faded)}.rsssl-wizard-help-notice.rsssl-warning{background-color:var(--rsp-yellow-faded)}.rsssl-wizard-help-notice summary,.rsssl-wizard-help-notice p{padding:var(--rsp-spacing-s) var(--rsp-spacing-m)}.rsssl-wizard-menu{height:fit-content}.rsssl-wizard-menu .rsssl-grid-item-content{padding:0;padding-bottom:var(--rsp-spacing-l)}.rsssl-wizard-menu-items .rsssl-menu-item a{display:flex;align-items:center;gap:var(--rsp-spacing-xs);text-decoration:none;color:var(--rsp-text-color);font-size:var(--rsp-fs-400);padding-block:var(--rsp-spacing-xs);padding-inline:var(--rsp-spacing-l);transition:all .2s ease-in-out;border-right:4px solid transparent}@media screen and (max-width:1280px){.rsssl-wizard-menu-items .rsssl-menu-item a{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl-wizard-menu-items .rsssl-menu-item a{padding-inline:var(--rsp-spacing-s)}}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-active>a{color:var(--rsp-dark-blue);font-weight:600;border-right:4px solid var(--rsp-dark-blue)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a{font-weight:600;flex-wrap:wrap}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a .rsssl-menu-item-featured-pill{background:var(--rsp-green);color:var(--rsp-text-color-white);padding:2px 9px;border-radius:var(--rsp-border-radius);font-size:var(--rsp-fs-100)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-premium a{background:var(--rsp-dark-blue-faded);flex-wrap:wrap}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-premium a .rsssl-menu-item-featured-pill{background:var(--rsp-dark-blue);color:var(--rsp-text-color-white);padding:2px 9px;border-radius:var(--rsp-border-radius);font-size:var(--rsp-fs-100)}.rsssl-wizard-menu-items .rsssl-premium-menu-item{background:var(--rsp-dark-blue-faded)}.rsssl-wizard-menu-items .rsssl-premium-menu-item div{display:flex;align-items:center;gap:var(--rsp-spacing-xs);text-decoration:none;color:var(--rsp-text-color);font-size:var(--rsp-fs-400);padding-block:var(--rsp-spacing-xs);padding-inline:var(--rsp-spacing-l);transition:all .2s ease-in-out;border-right:4px solid transparent}@media screen and (max-width:1280px){.rsssl-wizard-menu-items .rsssl-premium-menu-item div{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl-wizard-menu-items .rsssl-premium-menu-item div{padding-inline:var(--rsp-spacing-s)}}.rsssl-wizard-menu-items .rsssl-submenu-item a{padding-right:calc(var(--rsp-spacing-l) + var(--rsp-spacing-m));font-size:var(--rsp-fs-300)}.rsssl div[class^=rsssl-wizard-] .components-flex{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.rsssl div[class^=rsssl-wizard-] .components-flex .components-flex-item label{margin:0}.rsssl div[class^=rsssl-wizard-] .components-flex .components-input-control__container{max-width:max-content}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-content label{font-size:var(--rsp-fs-300);font-weight:400;line-height:1.5;text-transform:unset;box-sizing:border-box;display:inherit;max-width:100%;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rsssl div[class^=rsssl-wizard-] .components-base-control__field{margin-bottom:0}.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-base-control__field,.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-flex{display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between}.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-base-control__field .components-form-toggle,.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-flex .components-form-toggle{margin-left:0}.rsssl div[class^=rsssl-wizard-] .components-form-toggle.is-checked .components-form-toggle__track{background-color:var(--rsp-green)}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item .rsssl-grid-item-content{padding:var(--rsp-spacing-xs) 0}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro{padding-block:var(--rsp-spacing-s);padding-inline:var(--rsp-spacing-l);overflow:hidden}@media screen and (max-width:1280px){.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro{padding-inline:var(--rsp-spacing-s)}}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap>.rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro>.rsssl-field-wrap{padding:0}.rsssl div[class^=rsssl-wizard-] .rsssl-field-button{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center}.rsssl .rsssl-highlight{background-color:transparent;border-right:4px solid var(--rsp-green);-o-animation:fadeIt 3s ease-in-out;animation:fadeIt 3s ease-in-out}@-o-keyframes fadeIt{0%{background-color:transparent}30%{background-color:var(--rsp-green-faded)}100%{border-left:0;background-color:inherit}}@keyframes fadeIt{0%{background-color:transparent;border-left:0}30%{background-color:var(--rsp-green-faded)}100%{background-color:inherit}}.rsssl-license .rsssl-task-element{padding-top:var(--rsp-spacing-s);padding-bottom:0}.rsssl-license .rsssl-license-field{display:flex}.rsssl .components-snackbar-list.edit-site-notices{width:max-content;position:fixed;bottom:var(--rsp-spacing-m);left:var(--rsp-spacing-l)}.rsssl .components-snackbar-list.edit-site-notices>div{margin-right:auto}.rsssl .components-snackbar-list.edit-site-notices .components-snackbar{background:var(--rsp-background-block-color);box-shadow:var(--rsp-box-shadow);border-radius:var(--rsp-border-radius);color:var(--rsp-color-success);background-color:#fff;font-weight:700;font-size:14px}.rsssl-mixedcontentscan .rsssl-mixed-content-placeholder{height:250px}.rsssl-mixedcontentscan .rsssl-mixed-content-placeholder div{background-color:var(--rsp-grey-200);margin:10px 0;height:20px}.rsssl-mixedcontentscan .rsssl-shield-overlay{height:250px;align-items:center;justify-content:center;display:flex}.rsssl-mixedcontentscan .rsssl-field-wrap .rdt_TableCol,.rsssl-mixedcontentscan .rsssl-field-wrap .rdt_TableCell{min-width:80px}.rsssl-mixedcontentscan .rsssl-progress-container .rsssl-progress-bar{border-radius:5px;height:20px;background-color:var(--rsp-green)}.rsssl-mixedcontentscan .rsssl-task-status,.rsssl-mixedcontentscan .rsssl-locked-overlay .rsssl-progress-status,.rsssl-locked-overlay .rsssl-mixedcontentscan .rsssl-progress-status{min-width:min-content}.rsssl-mixedcontentscan .rsssl-task-status.rsssl-warning,.rsssl-mixedcontentscan .rsssl-locked-overlay .rsssl-warning.rsssl-progress-status,.rsssl-locked-overlay .rsssl-mixedcontentscan .rsssl-warning.rsssl-progress-status{background-color:var(--rsp-yellow);color:var(--rsp-text-color)}.rsssl-mixedcontentscan button.button{line-height:1.5;min-height:10px}.rsssl-mixedcontentscan .rsssl-grid-item-content-footer{display:flex;gap:var(--rsp-spacing-s)}.rsssl-mixedcontentscan .rsssl-current-scan-action,.rsssl-mixedcontentscan .rsssl-mixed-content-description{margin:10px 5px;font-size:var(--rsp-fs-300)}.rsssl-learningmode-placeholder{height:150px}.rsssl-learningmode-placeholder div{background-color:var(--rsp-grey-200);margin:10px 0;height:20px}.rsssl-learning-mode-delete{cursor:pointer;background:100%;border:0;font-size:1.5em;font-weight:700}.rsssl-locked-overlay .rsssl-open{float:right;margin-left:12px}.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-completed,.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-enforced{background-color:var(--rsp-color-success);color:#fff}.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode{background-color:var(--rsp-color-open)}.rsssl-locked-overlay .rsssl-progress-status.rsssl-disabled,.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-disabled{background-color:var(--rsp-color-disabled)}.rsssl-learning-mode-footer{display:flex;align-items:center;justify-content:flex-start;gap:var(--rsp-spacing-s)}.rsssl-learning-mode-footer select{margin-right:auto}.rsssl-learning-mode-footer label{display:flex;align-items:center}.rsssl-learning-mode-footer label input{margin-top:0}.rsssl-lets-encrypt-tests{margin:var(--rsp-spacing-xs) var(--rsp-spacing-xl)}.rsssl-lets-encrypt-tests .rsssl-progress-bar{padding-block:0;margin-bottom:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress{overflow:hidden;height:var(--rsp-spacing-m);border-radius:5px;background-color:var(--rsp-grey-200)}.rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress .rsssl-bar{height:100%;background-color:var(--rsp-color-success)}.rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress .rsssl-bar.rsssl-orange{background-color:var(--rsp-color-warning)}.rsssl-lets-encrypt-tests p{margin-bottom:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-progress-text{display:flex;align-items:center;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);padding-block:0;padding-top:var(--rsp-spacing-xs)}@media screen and (max-width:1280px){.rsssl-lets-encrypt-tests .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-lets-encrypt-tests .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-percentage{font-size:32px;font-weight:700}.rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-text-span{margin-right:35px;font-size:18px;font-weight:600}.rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-text-span a{margin-right:3px}.rsssl-lets-encrypt-tests ul li{display:flex;margin-bottom:15px}.rsssl-lets-encrypt-tests ul li .rsssl-icon{margin-left:7px}.rsssl-lets-encrypt-tests ul li ul li:before{background-color:var(--rsp-grey-500);color:#fff;height:6px;width:6px;border-radius:50%;content:"";position:absolute;margin-top:7px;margin-right:-19px}.rsssl-lets-encrypt-tests .rsssl-test-results ul li{display:block}.rsssl-lets-encrypt-tests .rsssl-test-results h4{margin:var(--rsp-spacing-m) 0}.rsssl-lets-encrypt-tests .rsssl-test-results a+button{margin-right:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-certificate-data{display:none}.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div{display:flex;flex-direction:row}.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div .rsssl-dns-domain,.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div .rsssl-dns-field{margin-left:var(--rsp-spacing-m);width:50%}.rsssl-lets-encrypt-tests .rsssl-modal-content-step-footer{display:flex;align-items:center;margin-top:var(--rsp-spacing-l);gap:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-modal-content-step-footer .components-toggle-control .components-base-control__field{margin:0;flex-direction:initial}.rsssl-lets-encrypt-tests .rsssl-modal-content-step-footer .components-toggle-control .components-base-control__field .components-toggle-control__label{margin-left:12px}.rsssl-lets-encrypt-tests .rsssl-modal-subtitle{display:none}.rsssl div[class^=rsssl-wizard-] .rsssl-permissions_policy .rsssl-locked .rsssl-shield-overlay{top:calc(100% - 300px)}.rsssl-field-wrap .rdt_TableCol,.rsssl-field-wrap .rdt_TableCell{min-width:50px}.rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child{flex-grow:0;flex-direction:row-reverse}.rsssl-field-wrap .rdt_TableRow{padding:var(--rsp-spacing-xs) 0}.rsssl-field-wrap .rdt_TableRow:nth-child(odd){background-color:var(--rsp-grey-200)}.rsssl-field-wrap .rdt_TableRow .rdt_TableCell:last-child{flex-grow:0}.rsssl-field-wrap .rdt_TableRow .rsssl-status-allowed,.rsssl-field-wrap .rdt_TableRow .rsssl-status-revoked{min-width:110px;margin-left:20px}.rsssl-field-wrap .rsssl-csp-revoked>div:nth-child(-n+3){opacity:.3}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child{flex-grow:0;min-width:initial}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableRow .rdt_TableCell:last-child{flex-grow:0;min-width:initial}.rsssl-content_security_policy .rsssl-field-wrap .rsssl-csp-revoked>div:nth-child(-n+3){opacity:.3}nav.rdt_Pagination>div>svg{display:none !important}.rsssl-content_security_policy .rsssl-field-wrap>div>div,.rsssl-xml_rpc .rsssl-field-wrap>div>div{overflow-x:inherit;overflow-y:inherit}.rsssl-permissions_policy .rdt_TableRow .rdt_TableCell:last-child{min-width:fit-content}.rsssl-permissions_policy .rdt_TableRow .rdt_TableCell:last-child .components-input-control__container{min-width:fit-content}.rsssl-mixed-content-datatable>div>div{display:flex}.rsssl .rsssl-new-features-block .rsssl-grid-item-content{display:flex;flex-direction:column;justify-content:space-between}.rsssl .rsssl-new-features{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--rsp-spacing-xs)}@media only screen and (max-width:1599px) and (min-width:1280px){.rsssl .rsssl-new-features{gap:var(--rsp-spacing-xxs)}}.rsssl .rsssl-new-feature{width:100%;color:var(--rsp-text-color-light);display:flex;align-items:flex-start;min-width:0;gap:var(--rsp-spacing-xs);text-decoration:none}.rsssl .rsssl-new-feature .rsssl-icon{margin-top:2px}.rsssl .rsssl-new-feature .rsssl-new-feature-desc p{font-size:var(--rsp-fs-300)}[data-rsssl-tooltip],.rsssl-tooltip{position:relative;cursor:pointer}[data-rsssl-tooltip]:before,[data-rsssl-tooltip]:after,.rsssl-tooltip:before,.rsssl-tooltip:after{position:absolute;visibility:hidden;-ms-filter:"alpha(opacity=0)";filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-webkit-transform .2s cubic-bezier(0.71,1.7,0.77,1.24);-moz-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-moz-transform .2s cubic-bezier(0.71,1.7,0.77,1.24);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,transform .2s cubic-bezier(0.71,1.7,0.77,1.24);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);pointer-events:none}[data-rsssl-tooltip]:hover:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:focus:after,.rsssl-tooltip:hover:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:focus:after{visibility:visible;-ms-filter:"alpha(opacity=100)";filter:alpha(opacity=100);opacity:1}.rsssl-tooltip:before,[data-rsssl-tooltip]:before{z-index:1001;border:6px solid transparent;background:transparent;content:""}.rsssl-tooltip:after,[data-rsssl-tooltip]:after{z-index:1000;padding:8px;width:220px;background-color:#000;background-color:hsla(0,0%,20%,0.9);color:#fff;content:attr(data-rsssl-tooltip);font-size:14px;line-height:1.2}.rsssl-tooltip-right{font-weight:normal}[data-rsssl-tooltip]:before,[data-rsssl-tooltip]:after,.rsssl-tooltip:before,.rsssl-tooltip:after,.rsssl-tooltip-top:before,.rsssl-tooltip-top:after{bottom:100%;right:50%}[data-rsssl-tooltip]:before,.rsssl-tooltip:before,.rsssl-tooltip-top:before{margin-right:-6px;margin-bottom:-12px;border-top-color:#000;border-top-color:hsla(0,0%,20%,0.9)}[data-rsssl-tooltip]:after,.rsssl-tooltip:after,.rsssl-tooltip-top:after{margin-right:-80px}[data-rsssl-tooltip]:hover:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:focus:after,.rsssl-tooltip:hover:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:focus:after,.rsssl-tooltip-top:hover:before,.rsssl-tooltip-top:hover:after,.rsssl-tooltip-top:focus:before,.rsssl-tooltip-top:focus:after{-webkit-transform:translateY(-12px);-moz-transform:translateY(-12px);transform:translateY(-12px)}.rsssl-tooltip-left:before,.rsssl-tooltip-left:after{left:100%;right:auto}.rsssl-tooltip-left:before{margin-right:0;margin-left:-12px;margin-bottom:0;border-top-color:transparent;border-right-color:#000;border-right-color:hsla(0,0%,20%,0.9)}.rsssl-tooltip-left:hover:before,.rsssl-tooltip-left:hover:after,.rsssl-tooltip-left:focus:before,.rsssl-tooltip-left:focus:after{-webkit-transform:translateX(12px);-moz-transform:translateX(12px);transform:translateX(12px)}.rsssl-tooltip-bottom:before,.rsssl-tooltip-bottom:after{top:100%;bottom:auto;right:50%}.rsssl-tooltip-bottom:before{margin-top:-12px;margin-bottom:0;border-top-color:transparent;border-bottom-color:#000;border-bottom-color:hsla(0,0%,20%,0.9)}.rsssl-tooltip-bottom:hover:before,.rsssl-tooltip-bottom:hover:after,.rsssl-tooltip-bottom:focus:before,.rsssl-tooltip-bottom:focus:after{-webkit-transform:translateY(12px);-moz-transform:translateY(12px);transform:translateY(12px)}.rsssl-tooltip-right:before,.rsssl-tooltip-right:after{bottom:50%;right:100%}.rsssl-tooltip-right:before{margin-bottom:0;margin-right:-12px;border-top-color:transparent;border-left-color:#000;border-left-color:hsla(0,0%,20%,0.9)}.rsssl-tooltip-right:hover:before,.rsssl-tooltip-right:hover:after,.rsssl-tooltip-right:focus:before,.rsssl-tooltip-right:focus:after{-webkit-transform:translateX(-12px);-moz-transform:translateX(-12px);transform:translateX(-12px)}.rsssl-tooltip-left:before,.rsssl-tooltip-right:before{top:3px}.rsssl-tooltip-left:after,.rsssl-tooltip-right:after{margin-right:0;margin-bottom:-25px}.rsssl .rsssl-skeleton:empty{margin:auto;margin-bottom:25px;width:100%;height:235px;background-image:linear-gradient(-100deg,rgba(255,255,255,0),rgba(255,255,255,0.5) 70%,rgba(255,255,255,0.5) 15%),linear-gradient(#f2f2f2 38px,transparent 0),linear-gradient(#f2f2f2 38px,transparent 0),linear-gradient(#f2f2f2 38px,transparent 0),linear-gradient(#f2f2f2 38px,transparent 0);background-repeat:repeat-y;background-size:50px 200px,100% 117px,100% 117px,100% 117px,100% 117px;background-position:100% 0,1px 1px,1px 40px,1px 79px,1px 118px;background-color:#d6d8db;border-left:1px solid #d6d8db;animation:shine 2.5s infinite}@keyframes shine{to{background-position:0% 0,1px 1px,1px 40px,1px 79px,1px 118px}}.rsssl .rsssl-loader{margin:0;width:50px;height:15px;text-align:center;font-size:10px}.rsssl .rsssl-loader>div{margin:1px;background-color:#333;height:100%;width:3px;display:inline-block;-webkit-animation:sk-stretchdelay 1.2s infinite ease-in-out;animation:sk-stretchdelay 1.2s infinite ease-in-out}.rsssl .rsssl-loader.rsssl-loader-white>div{background-color:#fff}.rsssl .rsssl-loader .rect2{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.rsssl .rsssl-loader .rect3{-webkit-animation-delay:-1s;animation-delay:-1s}.rsssl .rsssl-loader .rect4{-webkit-animation-delay:-0.9s;animation-delay:-0.9s}.rsssl .rsssl-loader .rect5{-webkit-animation-delay:-0.8s;animation-delay:-0.8s}.rsssl .button-primary .rsssl-loader div{background-color:#fff}@-webkit-keyframes sk-stretchdelay{0%,40%,100%{-webkit-transform:scaleY(0.4)}20%{-webkit-transform:scaleY(1)}}@keyframes sk-stretchdelay{0%,40%,100%{transform:scaleY(0.4);-webkit-transform:scaleY(0.4)}20%{transform:scaleY(1);-webkit-transform:scaleY(1)}}.rsssl{--rsp-brand-primary:var(--rsp-yellow);--rsp-brand-secondary:var(--rsp-blue);--rsp-brand-primary-faded:var(--rsp-yellow-faded)}
assets/css/variables.css.map DELETED
File without changes
assets/css/variables.less DELETED
@@ -1,127 +0,0 @@
1
-
2
- // Margins, Paddings and Border Radius
3
- @small-margin: 10px;
4
- @default-margin: 15px;
5
- @big-margin: 30px;
6
- @grid-margin:10px;
7
- @default-padding: 20px;
8
- @border-radius: 25px;
9
-
10
- // RSP Brand Colors
11
- @rsp-black: #333;
12
- @rsp-yellow: #f8be2e;
13
- @rsp-blue: #29b6f6;
14
- @rsp-green: #61ce70;
15
- @rsp-red: #D7263D;
16
- @rsp-pink: #E366A1;
17
- @rsp-orange: #f39c12;
18
- @box_shadow_color: #dedede;
19
- @light-text-color: #3c3c3c;
20
-
21
- // Colors
22
- @brand-primary: @rsp-blue;
23
- @brand-secondary: @color-success;
24
-
25
- // Notification colors
26
- @color-success: #61ce70;
27
- @color-disabled: #d7d7d7;
28
- @color-warning: @rsp-red;
29
- @color-open: @rsp-yellow; //#f8be2e; //#FBC43D
30
-
31
- //Input colors
32
- @input-background-color: #F1F1F1;
33
- @input-border-color: #dedede;
34
-
35
- @grey: #c6c6c6;
36
- @grey-light: #eeeeee;
37
- @grey-dark: #888;
38
- @grey-lighter: #fafafa;
39
-
40
- /**move to css variables in time */
41
- :root {
42
- // Break points
43
- --rsp-break-xs: 400px;
44
- --rsp-break-s: 576px;
45
- --rsp-break-m: 768px;
46
- --rsp-break-l: 992px;
47
- --rsp-break-xl: 1200px;
48
- --rsp-break-xxl: 1400px;
49
-
50
- // Margins, Paddings and Border Radius
51
- --rsp-spacing-xs: 10px;
52
- --rsp-spacing-s: 15px;
53
- --rsp-spacing-m: 20px;
54
- --rsp-spacing-l: 30px;
55
- --rsp-spacing-xl: 40px;
56
-
57
- // Grid settings
58
- --rsp-grid-margin: var(--rsp-spacing-xs);
59
- --rsp-grid-gap: var(--rsp-spacing-m);
60
-
61
- // Borders and stuff
62
- --rsp-border-radius: 12px;
63
- --rsp-border: 1px solid var(--rsp-border-color);
64
- --rsp-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;
65
- --rsp-border-color: #dfdfdf;
66
-
67
- // RSP Brand Colors
68
- --rsp-black: #333;
69
- --rsp-white: #fff;
70
- --rsp-yellow: #f4bf3e;
71
- --rsp-blue: #29b6f6;
72
- --rsp-dark-blue: #5A6FA5;
73
- --rsp-green: #2e8a37;
74
- --rsp-red: #D7263D;
75
- --rsp-pink: #E35899;
76
- --rsp-orange: #f39c12;
77
-
78
- --rsp-yellow-faded: fade(#f4bf3e, 10%);
79
- --rsp-blue-faded: fade(#29b6f6, 10%);
80
- --rsp-dark-blue-faded: fade(#29b6f6, 10%);
81
- --rsp-green-faded: fade(#2e8a37, 10%);
82
- --rsp-red-faded: fade(#D7263D, 10%);
83
- --rsp-pink-faded: fade(#E35899, 10%);
84
- --rsp-orange-faded: fade(#f39c12, 10%);
85
-
86
- --rsp-background-block-color: var(--rsp-white);
87
- --rsp-background-color: #f0f0f1; //#f0f0f1 is the default wordpress bg color
88
-
89
- //Input colors
90
- --rsp-input-background-color: #F1F1F1;
91
- --rsp-input-text-color: var(--rsp-text-color);
92
- --rsp-input-border-color: #8c8f94;
93
-
94
- --rsp-text-color: rgba(26, 26, 26, 0.9);
95
- --rsp-text-color-invert: rgba(255, 255, 255, 0.9);
96
- --rsp-text-color-white: rgba(255, 255, 255, 0.9);
97
- --rsp-text-color-light: rgba(69, 69, 82, 0.9);
98
-
99
- --rsp-grey-200: #fafafa;
100
- --rsp-grey-300: #ededed;
101
- --rsp-grey-400: #c6c6c6;
102
- --rsp-grey-500: #737373;
103
- --rsp-grey-600: #696969;
104
-
105
- // Notification colors
106
- --rsp-color-success: var(--rsp-green);
107
- --rsp-color-error: var(--rsp-red);
108
- --rsp-color-warning: var(--rsp-orange);
109
- --rsp-color-open: var(--rsp-yellow);
110
-
111
- // Font sizes
112
- --rsp-fs-100: 0.6125rem;
113
- --rsp-fs-200: 0.625rem;
114
- --rsp-fs-300: 0.8125rem;
115
- --rsp-fs-400: 0.875rem;
116
- --rsp-fs-500: 1rem;
117
- --rsp-fs-600: 1.125rem;
118
- --rsp-fs-700: 1.25rem;
119
- --rsp-fs-800: 1.5rem;
120
- --rsp-fs-900: 2.5rem;
121
-
122
- // Plugin specific variables down here please
123
- --rsp-brand-primary: var(--rsp-green);
124
- --rsp-brand-secondary: var(--rsp-yellow);
125
- --rsp-brand-primary-faded: var(--rsp-green-faded);
126
- }
127
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/variables.min.css DELETED
File without changes
assets/css/variables.scss ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Break points
2
+ $rsp-break-xxs: 576px;
3
+ $rsp-break-xs: 782px; // wp breakpoint
4
+ $rsp-break-s: 1080px;
5
+ $rsp-break-m: 1280px;
6
+ $rsp-break-l: 1366px;
7
+ $rsp-break-xl: 1440px; // common 13 inch macbook pro width is 1425px
8
+ $rsp-break-xxl: 1599px;
9
+
10
+ :root {
11
+ // Margins, Paddings and Border Radius
12
+ --rsp-spacing-xxs: 5px;
13
+ --rsp-spacing-xs: 10px;
14
+ --rsp-spacing-s: 15px;
15
+ --rsp-spacing-m: 20px;
16
+ --rsp-spacing-l: 25px;
17
+ --rsp-spacing-xl: 30px;
18
+
19
+ // Grid settings
20
+ --rsp-grid-margin: var(--rsp-spacing-s);
21
+ --rsp-grid-gap: var(--rsp-spacing-m);
22
+
23
+ // Borders and stuff
24
+ --rsp-border-radius: 12px;
25
+ --rsp-border-radius-s: 8px;
26
+ --rsp-border: 1px solid var(--rsp-border-color);
27
+ --rsp-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;
28
+ --rsp-box-shadow-dark: rgba(0, 0, 0, 0.2) 0px 4px 6px -1px, rgba(0, 0, 0, 0.12) 1px 0px 4px 1px;
29
+ --rsp-border-color: #dfdfdf;
30
+
31
+ // RSP Brand Colors
32
+ --rsp-black: #333;
33
+ --rsp-white: #fff;
34
+ --rsp-yellow: #f4bf3e;
35
+ --rsp-blue: #29b6f6;
36
+ --rsp-dark-blue: #1E73BE;
37
+ --rsp-green: #2e8a37;
38
+ --rsp-red: #D7263D;
39
+ --rsp-pink: #E35899;
40
+ --rsp-wp-blue: #007cba;
41
+
42
+ --rsp-yellow-faded: #f2e6c9;
43
+ --rsp-blue-faded: #ecf8fe;
44
+ --rsp-dark-blue-faded: #ebf2f9;
45
+ --rsp-green-faded: #ecf4ed;
46
+ --rsp-red-faded: #fbebed;
47
+ --rsp-pink-faded: #fceff5;
48
+ --rsp-wp-blue-faded: #c6e0ef;
49
+
50
+ --rsp-background-block-color: var(--rsp-white);
51
+ --rsp-background-color: #f0f0f1; //#f0f0f1 is the default wordpress bg color
52
+
53
+ //Input colors
54
+ --rsp-input-background-color: #fff;
55
+ --rsp-input-text-color: var(--rsp-text-color);
56
+ --rsp-input-border-color: var(--rsp-grey-400);
57
+
58
+ --rsp-text-color: rgba(26, 26, 26, 0.95);
59
+ --rsp-text-color-invert: rgba(255, 255, 255, 0.95);
60
+ --rsp-text-color-white: rgba(255, 255, 255, 0.95);
61
+ --rsp-text-color-light: rgba(69, 69, 82, 0.95);
62
+
63
+ --rsp-grey-100: #fafafa;
64
+ --rsp-grey-200: #f9f9f9;
65
+ --rsp-grey-300: #ededed;
66
+ --rsp-grey-400: #c6c6c6;
67
+ --rsp-grey-500: #737373;
68
+ --rsp-grey-600: #696969;
69
+
70
+ // Notification colors
71
+ --rsp-color-success: var(--rsp-green);
72
+ --rsp-color-error: var(--rsp-red);
73
+ --rsp-color-warning: var(--rsp-yellow);
74
+ --rsp-color-open: var(--rsp-yellow);
75
+ --rsp-color-disabled: var(--rsp-grey-300);
76
+
77
+ // Font sizes
78
+ // If browser font-size is 16px:
79
+ --rsp-fs-100: 0.6875rem; // 11px
80
+ --rsp-fs-200: 0.8rem; // 12px
81
+ --rsp-fs-300: 0.8125rem; // 13px
82
+ --rsp-fs-400: 0.875rem; // 14px
83
+ --rsp-fs-500: 1rem; // 16px
84
+ --rsp-fs-600: 1.125rem; // 18px
85
+ --rsp-fs-700: 1.25rem; // 20px
86
+ --rsp-fs-800: 1.5rem; // 24px
87
+ --rsp-fs-900: 3.5rem; // 40px
88
+ }
89
+
90
+ @mixin rsssl-block {
91
+ background: var(--rsp-background-block-color);
92
+ box-shadow: var(--rsp-box-shadow);
93
+ border-radius: var(--rsp-border-radius);
94
+ }
95
+
96
+ @mixin rsssl-block-padding {
97
+ padding: var(--rsp-spacing-m) var(--rsp-spacing-l);
98
+
99
+ @media screen and (max-width: $rsp-break-m) {
100
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
101
+ }
102
+ @media screen and (max-width: $rsp-break-s) {
103
+ padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
104
+ }
105
+
106
+ //@media screen and (max-width: $rsp-break-xs) {
107
+ // padding: var(--rsp-spacing-xs) var(--rsp-spacing-s);
108
+ //}
109
+ }
110
+
111
+ @mixin rsssl-block-block-padding {
112
+ padding-block: var(--rsp-spacing-m);
113
+
114
+ @media screen and (max-width: $rsp-break-m) {
115
+ padding-block: var(--rsp-spacing-xs);
116
+ }
117
+ @media screen and (max-width: $rsp-break-s) {
118
+ padding-block: var(--rsp-spacing-xxs);
119
+ }
120
+ }
121
+
122
+ @mixin rsssl-inline-block-padding {
123
+ padding-inline: var(--rsp-spacing-l);
124
+
125
+ @media screen and (max-width: $rsp-break-m) {
126
+ padding-inline: var(--rsp-spacing-m);
127
+ }
128
+ @media screen and (max-width: $rsp-break-s) {
129
+ padding-inline: var(--rsp-spacing-s);
130
+ }
131
+ }
132
+
133
+ @mixin rsssl-fade-in {
134
+ animation-name: fade-in;
135
+ animation-duration: 0.4s;
136
+ animation-timing-function: ease-in;
137
+ }
138
+
139
+ @keyframes fade-in{
140
+ 0% { opacity: 0 }
141
+ 100% { opacity: 1; }
142
+ }
143
+
assets/css/wcag.css DELETED
@@ -1,95 +0,0 @@
1
- .rsssl-high-contrast {
2
- /**
3
- Let's Encrypt
4
- */
5
- }
6
- .rsssl-high-contrast .rsssl-progress-status.rsssl-success,
7
- .rsssl-high-contrast .rsssl-progress-status.rsssl-warning,
8
- .rsssl-high-contrast .rsssl-progress-status.rsssl-premium,
9
- .rsssl-high-contrast .rsssl-progress-status.rsssl-open {
10
- background-color: black !important;
11
- color: white;
12
- }
13
- .rsssl-high-contrast .rsssl-wizard-progress-bar-value {
14
- background: black !important;
15
- }
16
- .rsssl-high-contrast .rsssl-icon.rsssl-success {
17
- color: black !important;
18
- }
19
- .rsssl-high-contrast .rsssl-icon.rsssl-success svg {
20
- stroke: black !important;
21
- fill: black !important;
22
- }
23
- .rsssl-high-contrast .rsssl-help-warning-wrap .rsssl-notice {
24
- color: white !important;
25
- }
26
- .rsssl-high-contrast .rsssl-help-warning-wrap .rsssl-warning {
27
- background-color: black;
28
- }
29
- .rsssl-high-contrast .progress .bar {
30
- background-color: black !important;
31
- }
32
- .rsssl-high-contrast .rsssl-notice a {
33
- color: white !important;
34
- }
35
- .rsssl-high-contrast .rsssl.progress {
36
- background-color: black !important;
37
- }
38
- .rsssl-high-contrast .select2-results__option--highlighted[aria-selected] {
39
- background-color: black;
40
- }
41
- .rsssl-high-contrast .rsssl-save-settings-feedback {
42
- color: black !important;
43
- }
44
- .rsssl-high-contrast .nav-tab-active {
45
- border-bottom: 2px solid black !important;
46
- }
47
- .rsssl-high-contrast .rsssl-update-count {
48
- background-color: black !important;
49
- }
50
- .rsssl-high-contrast .paginate_button.current {
51
- background-color: black !important;
52
- color: white;
53
- border: 1px solid black;
54
- }
55
- .rsssl-high-contrast .rsssl-tasks {
56
- color: black !important;
57
- }
58
- .rsssl-high-contrast .rsssl-close-warning-x {
59
- color: black;
60
- }
61
- .rsssl-high-contrast .update-count {
62
- background-color: black;
63
- }
64
- .rsssl-high-contrast .rsssl-bullet:hover {
65
- background-color: black;
66
- }
67
- .rsssl-high-contrast .button-rsssl-primary,
68
- .rsssl-high-contrast .button-primary,
69
- .rsssl-high-contrast .button-secondary,
70
- .rsssl-high-contrast .button-rsssl-secondary,
71
- .rsssl-high-contrast .button-rsssl-tertiary,
72
- .rsssl-high-contrast .revoke-from-csp,
73
- .rsssl-high-contrast .button-default {
74
- background-color: black !important;
75
- border-color: black !important;
76
- color: white;
77
- }
78
- .rsssl-high-contrast .button:hover {
79
- color: white;
80
- }
81
- .rsssl-high-contrast input:checked + .rsssl-slider {
82
- background-color: black;
83
- }
84
- .rsssl-high-contrast .rsssl-help-modal,
85
- .rsssl-high-contrast .rsssl-help-modal h2 {
86
- background-color: black !important;
87
- color: white !important;
88
- }
89
- .rsssl-high-contrast .rsssl-help-modal.rsssl-notice:after {
90
- border-right: 15px solid black;
91
- }
92
- .rsssl-high-contrast .rsssl-priority {
93
- border: 1px solid white !important;
94
- }
95
- /*# sourceMappingURL=wcag.css.map */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/wcag.css.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["wcag.less"],"names":[],"mappings":"AAGA;;;;;AAAA,oBACE,uBAAsB;AADxB,oBACwC,uBAAsB;AAD9D,oBAC8E,uBAAsB;AADpG,oBACoH,uBAAsB;EACtI,uBAAA;EACA,YAAA;;AAHJ,oBAME;EACE,iBAAA;;AAPJ,oBAUE,YAAW;EACT,YAAA;;AAXJ,oBAaE,YAAW,cAAe;EACtB,aAAA;EACA,WAAA;;AAfN,oBAkBE,yBACE;EACE,YAAA;;AApBN,oBAkBE,yBAIE;EACE,uBAAA;;AAvBN,oBA2BE,UAAU;EACR,uBAAA;;AA5BJ,oBA+BE,cAAc;EACZ,YAAA;;AAhCJ,oBAmCE,OAAM;EACJ,uBAAA;;AApCJ,oBAuCE,sCAAqC;EACnC,uBAAA;;AAxCJ,oBAiDE;EACE,YAAA;;AAlDJ,oBAqDE;EACE,8BAAA;;AAtDJ,oBAyDE;EACE,uBAAA;;AA1DJ,oBA6DE,iBAAgB;EACd,uBAAA;EACA,YAAA;EACA,uBAAA;;AAhEJ,oBAmEE;EACE,YAAA;;AApEJ,oBAuEE;EACE,YAAA;;AAxEJ,oBA2EE;EACE,uBAAA;;AA5EJ,oBA+EE,cAAa;EACX,uBAAA;;AAhFJ,oBAmFE;AAnFF,oBAmFyB;AAnFzB,oBAmF0C;AAnF1C,oBAmF6D;AAnF7D,oBAmFsF;AAnFtF,oBAmF8G;AAnF9G,oBAmFgI;EAC5H,uBAAA;EACA,mBAAA;EACA,YAAA;;AAtFJ,oBAyFE,QAAO;EACL,YAAA;;AA1FJ,oBA6FE,MAAK,QAAS;EACZ,uBAAA;;AA9FJ,oBAqGE;AArGF,oBAqGqB,kBAAkB;EACnC,uBAAA;EACA,YAAA;;AAvGJ,oBA0GE,kBAAiB,aAAa;EAC5B,8BAAA;;AA3GJ,oBA8GE;EACE,uBAAA","file":"wcag.css"}
 
assets/css/wcag.less DELETED
@@ -1,118 +0,0 @@
1
- @black: black;
2
- @white: white;
3
-
4
- .rsssl-high-contrast {
5
- .rsssl-progress-status.rsssl-success, .rsssl-progress-status.rsssl-warning, .rsssl-progress-status.rsssl-premium, .rsssl-progress-status.rsssl-open {
6
- background-color: @black !important;
7
- color: @white;
8
- }
9
-
10
- .rsssl-wizard-progress-bar-value {
11
- background: @black !important;
12
- }
13
-
14
- .rsssl-icon.rsssl-success {
15
- color: @black !important;
16
- }
17
- .rsssl-icon.rsssl-success svg {
18
- stroke: @black !important;
19
- fill: @black !important;
20
- }
21
-
22
- .rsssl-help-warning-wrap {
23
- .rsssl-notice {
24
- color: @white !important;
25
- }
26
- .rsssl-warning {
27
- background-color: @black;
28
- }
29
- }
30
-
31
- .progress .bar {
32
- background-color: @black !important;
33
- }
34
-
35
- .rsssl-notice a {
36
- color: @white !important;
37
- }
38
-
39
- .rsssl.progress {
40
- background-color: @black !important;
41
- }
42
-
43
- .select2-results__option--highlighted[aria-selected] {
44
- background-color: @black;
45
- }
46
-
47
-
48
-
49
- .rsssl-dot-success {
50
- //background-color: @black !important;
51
- }
52
-
53
- .rsssl-save-settings-feedback {
54
- color: @black !important;
55
- }
56
-
57
- .nav-tab-active {
58
- border-bottom: 2px solid @black !important;
59
- }
60
-
61
- .rsssl-update-count {
62
- background-color: @black !important;
63
- }
64
-
65
- .paginate_button.current {
66
- background-color: @black !important;
67
- color: @white;
68
- border: 1px solid @black;
69
- }
70
-
71
- .rsssl-tasks {
72
- color: @black !important;
73
- }
74
-
75
- .rsssl-close-warning-x {
76
- color: @black;
77
- }
78
-
79
- .update-count {
80
- background-color: @black;
81
- }
82
-
83
- .rsssl-bullet:hover {
84
- background-color: @black;
85
- }
86
-
87
- .button-rsssl-primary, .button-primary, .button-secondary, .button-rsssl-secondary, .button-rsssl-tertiary, .revoke-from-csp, .button-default {
88
- background-color: @black !important;
89
- border-color: @black !important;
90
- color: @white;
91
- }
92
-
93
- .button:hover {
94
- color: @white;
95
- }
96
-
97
- input:checked + .rsssl-slider {
98
- background-color: @black;
99
- }
100
-
101
- /**
102
- Let's Encrypt
103
- */
104
-
105
- .rsssl-help-modal, .rsssl-help-modal h2 {
106
- background-color: @black !important;
107
- color: @white !important;
108
- }
109
-
110
- .rsssl-help-modal.rsssl-notice:after {
111
- border-right: 15px solid @black;
112
- }
113
-
114
- .rsssl-priority {
115
- border: 1px solid @white !important;
116
- }
117
-
118
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/wcag.min.css DELETED
@@ -1 +0,0 @@
1
- .rsssl-high-contrast .rsssl-progress-status.rsssl-open,.rsssl-high-contrast .rsssl-progress-status.rsssl-premium,.rsssl-high-contrast .rsssl-progress-status.rsssl-success,.rsssl-high-contrast .rsssl-progress-status.rsssl-warning{background-color:#000!important;color:#fff}.rsssl-high-contrast .rsssl-wizard-progress-bar-value{background:#000!important}.rsssl-high-contrast .rsssl-icon.rsssl-success,.rsssl-high-contrast .rsssl-save-settings-feedback{color:#000!important}.rsssl-high-contrast .rsssl-icon.rsssl-success svg{stroke:#000!important;fill:#000!important}.rsssl-high-contrast .rsssl-help-warning-wrap .rsssl-notice,.rsssl-high-contrast .rsssl-notice a{color:#fff!important}.rsssl-high-contrast .rsssl-help-warning-wrap .rsssl-warning{background-color:#000}.rsssl-high-contrast .progress .bar,.rsssl-high-contrast .rsssl.progress{background-color:#000!important}.rsssl-high-contrast .select2-results__option--highlighted[aria-selected]{background-color:#000}.rsssl-high-contrast .nav-tab-active{border-bottom:2px solid #000!important}.rsssl-high-contrast .rsssl-update-count{background-color:#000!important}.rsssl-high-contrast .paginate_button.current{background-color:#000!important;color:#fff;border:1px solid #000}.rsssl-high-contrast .rsssl-tasks{color:#000!important}.rsssl-high-contrast .rsssl-close-warning-x{color:#000}.rsssl-high-contrast .rsssl-bullet:hover,.rsssl-high-contrast .update-count{background-color:#000}.rsssl-high-contrast .button-default,.rsssl-high-contrast .button-primary,.rsssl-high-contrast .button-rsssl-primary,.rsssl-high-contrast .button-rsssl-secondary,.rsssl-high-contrast .button-rsssl-tertiary,.rsssl-high-contrast .button-secondary,.rsssl-high-contrast .revoke-from-csp{background-color:#000!important;border-color:#000!important;color:#fff}.rsssl-high-contrast .button:hover{color:#fff}.rsssl-high-contrast input:checked+.rsssl-slider{background-color:#000}.rsssl-high-contrast .rsssl-help-modal,.rsssl-high-contrast .rsssl-help-modal h2{background-color:#000!important;color:#fff!important}.rsssl-high-contrast .rsssl-help-modal.rsssl-notice:after{border-right:15px solid #000}.rsssl-high-contrast .rsssl-priority{border:1px solid #fff!important}
 
assets/icon-128x128.png DELETED
Binary file
assets/img/icon.png ADDED
Binary file
assets/img/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php //You don't belong here. ?>
assets/img/really-simple-plugins.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet" viewBox="144.53 46.14 935.27 96.86"> <g transform="translate(100.000000,180.000000) scale(0.100000,-0.100000)" fill="#3c434a" stroke="none"> <path d="M531 1323 c-5 -10 -23 -62 -40 -116 -31 -97 -39 -173 -22 -205 6 -12 3 -37 -10 -76 -31 -90 -9 -166 63 -219 40 -30 122 -25 232 12 116 40 163 41 199 3 56 -58 53 -138 -9 -210 -42 -50 -91 -73 -157 -75 -51 -2 -52 -3 -55 -35 l-3 -32 55 0 c113 0 219 68 261 167 26 60 22 144 -9 197 -56 96 -133 108 -317 51 -111 -35 -112 -35 -148 -18 -47 23 -67 64 -55 112 7 28 14 35 29 32 90 -16 127 -12 240 25 63 21 115 42 115 48 0 6 -16 27 -36 47 l-36 37 38 35 c33 30 37 39 28 54 -18 30 -44 27 -80 -8 l-34 -33 -50 49 c-28 27 -50 54 -50 59 0 6 14 25 31 42 55 57 12 100 -45 45 -17 -17 -37 -31 -42 -31 -6 0 -23 14 -39 30 -33 35 -41 36 -54 13z m154 -204 c96 -96 99 -101 80 -115 -21 -15 -108 -44 -134 -44 -29 0 -81 40 -98 75 -14 30 -15 40 -4 77 19 63 39 108 48 108 5 0 53 -45 108 -101z"/> <path d="M2770 983 c0 -153 5 -284 10 -305 17 -58 50 -78 131 -78 l69 0 0 35 0 35 -50 0 c-38 0 -52 4 -60 19 -6 12 -10 123 -10 290 l0 271 -45 0 -45 0 0 -267z"/> <path d="M3030 988 c0 -145 5 -281 10 -303 14 -63 48 -85 131 -85 l69 0 0 35 c0 35 0 35 -44 35 -77 0 -76 -5 -76 306 l0 274 -45 0 -45 0 0 -262z"/> <path d="M5830 981 c0 -148 3 -282 6 -300 4 -17 18 -42 32 -56 22 -22 33 -25 98 -25 l74 0 0 35 0 35 -48 0 c-26 0 -53 5 -60 12 -9 9 -12 87 -12 290 l0 278 -45 0 -45 0 0 -269z"/> <path d="M7300 983 c0 -153 5 -284 10 -305 17 -58 50 -78 131 -78 l69 0 0 35 0 35 -50 0 c-38 0 -52 4 -60 19 -6 12 -10 123 -10 290 l0 271 -45 0 -45 0 0 -267z"/> <path d="M4350 1185 l0 -45 40 0 40 0 0 45 0 45 -40 0 -40 0 0 -45z"/> <path d="M8560 1185 l0 -45 40 0 40 0 0 45 0 45 -40 0 -40 0 0 -45z"/> <path d="M1684 1061 c-23 -10 -45 -24 -48 -30 -12 -19 -26 -12 -26 14 0 22 -4 25 -35 25 l-35 0 0 -235 0 -235 40 0 40 0 0 142 c0 123 3 147 21 184 16 34 29 46 62 58 23 9 51 15 62 13 16 -2 21 5 23 32 5 54 -31 65 -104 32z"/> <path d="M1940 1058 c-26 -14 -57 -41 -74 -66 -27 -38 -31 -52 -34 -137 -4 -87 -2 -99 23 -150 39 -80 85 -105 196 -105 111 0 155 20 152 68 0 19 -3 35 -5 37 -2 2 -28 -5 -58 -15 -30 -11 -71 -19 -90 -20 -66 0 -130 61 -130 125 l0 25 150 0 150 0 0 58 c-1 91 -44 165 -113 191 -47 18 -119 13 -167 -11z m163 -88 c15 -17 27 -41 27 -55 l0 -25 -105 0 c-117 0 -121 3 -82 61 45 66 109 74 160 19z"/> <path d="M2375 1064 c-53 -20 -57 -25 -43 -62 9 -23 17 -31 28 -26 44 19 119 34 146 29 40 -7 54 -24 61 -73 l5 -39 -67 -8 c-139 -14 -196 -46 -215 -117 -15 -52 2 -110 41 -142 27 -23 40 -26 102 -26 54 0 80 5 105 20 40 25 38 25 45 -1 4 -16 12 -20 39 -17 l33 3 0 190 c-1 214 -7 239 -69 269 -43 20 -155 20 -211 0z m195 -276 c-1 -18 -6 -43 -14 -56 -32 -58 -126 -82 -166 -42 -57 57 17 127 138 129 41 1 42 0 42 -31z"/> <path d="M3988 1059 c-105 -55 -85 -199 32 -234 63 -18 140 -59 145 -76 22 -68 -70 -100 -177 -62 -26 9 -49 15 -52 12 -2 -2 -7 -18 -11 -36 -6 -30 -4 -33 32 -48 51 -22 180 -22 221 -1 51 27 72 62 72 123 0 49 -4 59 -32 87 -21 20 -58 41 -98 55 -83 27 -110 46 -110 75 0 49 69 68 151 42 28 -10 52 -16 53 -14 12 20 25 61 21 68 -8 14 -92 30 -152 30 -38 -1 -71 -8 -95 -21z"/> <path d="M4686 1060 c-36 -20 -41 -21 -51 -6 -7 9 -26 16 -44 16 l-31 0 0 -235 0 -235 39 0 39 0 4 163 c2 135 6 166 21 188 21 31 57 49 100 49 71 0 81 -28 85 -232 l4 -168 38 0 38 0 4 163 c2 134 6 166 21 188 36 54 111 69 150 30 21 -20 22 -32 25 -202 l4 -180 41 3 42 3 3 155 c4 257 -19 310 -142 318 -63 4 -86 -2 -142 -38 -18 -11 -25 -10 -53 11 -46 34 -142 38 -195 9z"/> <path d="M5450 1060 c-43 -23 -50 -24 -50 -5 0 11 -11 15 -40 15 l-40 0 0 -330 0 -330 40 0 40 0 0 115 c0 63 2 115 5 115 2 0 19 -9 37 -20 24 -14 51 -20 97 -20 79 0 120 23 159 88 25 43 27 56 27 152 0 97 -2 109 -28 153 -21 35 -41 54 -70 68 -54 24 -132 24 -177 -1z m136 -75 c50 -32 72 -163 40 -239 -28 -68 -94 -93 -157 -60 -51 26 -80 128 -59 213 22 94 103 133 176 86z"/> <path d="M6182 1063 c-84 -41 -130 -141 -119 -259 11 -116 69 -188 165 -203 61 -9 147 1 190 23 28 14 31 20 25 49 -3 17 -7 34 -9 36 -2 2 -23 -4 -46 -15 -26 -12 -65 -19 -99 -19 -65 0 -100 23 -125 82 -28 64 -30 63 141 63 l155 0 0 43 c0 135 -73 217 -192 217 -29 0 -68 -8 -86 -17z m122 -63 c28 -10 66 -64 66 -92 0 -16 -12 -18 -105 -18 -88 0 -105 2 -105 15 0 31 32 77 63 90 39 17 48 18 81 5z"/> <path d="M6920 1060 c-43 -23 -50 -24 -50 -5 0 11 -11 15 -40 15 l-40 0 0 -331 0 -330 43 3 42 3 3 108 c1 59 5 107 8 107 3 0 19 -7 36 -16 44 -23 139 -21 180 3 18 10 46 38 63 62 27 38 30 52 34 134 5 138 -23 208 -99 247 -51 26 -133 26 -180 0z m137 -76 c76 -49 81 -208 8 -281 -54 -54 -130 -41 -166 29 -27 53 -27 171 1 216 35 58 101 73 157 36z"/> <path d="M8125 1060 c-131 -65 -151 -324 -31 -415 61 -46 165 -55 213 -20 42 32 53 8 32 -68 -15 -57 -55 -77 -151 -77 l-78 0 0 -40 0 -40 78 0 c94 0 141 12 183 47 59 50 63 71 67 361 l4 262 -45 0 c-26 0 -47 -5 -49 -12 -3 -9 -14 -7 -40 5 -49 23 -133 22 -183 -3z m170 -74 c52 -34 72 -154 39 -235 -30 -76 -131 -93 -186 -32 -94 105 -26 307 96 286 17 -3 40 -12 51 -19z"/> <path d="M8894 1055 c-27 -14 -50 -25 -51 -25 -2 0 -3 9 -3 20 0 17 -7 20 -40 20 l-40 0 2 -232 3 -233 43 -3 42 -3 0 151 c0 170 9 203 62 234 43 26 104 24 131 -3 21 -20 22 -32 25 -202 l3 -180 42 3 42 3 0 185 c0 168 -2 188 -20 220 -42 72 -149 92 -241 45z"/> <path d="M9324 1066 c-49 -22 -74 -61 -74 -118 0 -43 5 -55 33 -82 20 -20 57 -41 97 -55 87 -28 110 -45 110 -81 0 -57 -79 -77 -171 -45 -54 19 -69 14 -69 -25 0 -43 44 -60 153 -60 71 0 89 4 118 23 67 45 77 153 20 206 -16 14 -59 37 -97 50 -119 41 -141 68 -88 110 32 25 63 26 130 6 54 -16 64 -12 67 31 2 24 -3 30 -33 41 -47 16 -158 15 -196 -1z"/> <path d="M3210 1058 c0 -7 38 -108 86 -226 l85 -214 -16 -49 c-21 -63 -54 -89 -112 -89 l-44 0 3 -37 c3 -35 6 -38 37 -41 81 -8 144 26 180 97 17 32 211 555 211 567 0 3 -21 4 -47 2 l-46 -3 -56 -167 c-31 -92 -58 -168 -61 -168 -3 0 -34 77 -69 170 l-64 170 -44 0 c-27 0 -43 -5 -43 -12z"/> <path d="M4350 835 l0 -235 40 0 40 0 0 235 0 235 -40 0 -40 0 0 -235z"/> <path d="M7552 881 c3 -211 7 -224 78 -265 47 -28 173 -28 220 0 71 41 75 54 78 265 l3 189 -45 0 -46 0 0 -179 0 -180 -26 -20 c-36 -29 -112 -29 -148 0 l-26 20 0 180 0 179 -46 0 -45 0 3 -189z"/> <path d="M8560 835 l0 -235 40 0 40 0 0 235 0 235 -40 0 -40 0 0 -235z"/> <path d="M9681 701 c-30 -55 -1 -104 58 -99 28 2 39 9 50 32 12 26 12 33 0 55 -20 35 -92 43 -108 12z"/> </g> </svg>
assets/img/really-simple-ssl-logo.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" style="enable-background:new 0 0 2293 602.6;" xml:space="preserve" viewBox="164.7 150.3 1963.4 301.5"><style type="text/css"> .st0{fill:#BBC7CC;} .st1{opacity:0.2;fill:#BBC7CC;} .st2{fill:#FBC43E;} .st3{opacity:0.2;fill:#FBC43E;} .st4{display:none;} .st5{display:inline;} .st6{fill:#FFFFFF;}</style> <g id="In_kleur"> <g> <path d="M503.9,291.8h-12.9v-22H554c25.7,0,43.7,15.8,43.7,42.4c0,25.3-17.4,35.8-23.4,37v0.4c0,0,4.4,2,6.9,7.1l13.7,27.1 c2.2,4.2,5.5,4.6,9.9,4.6h2.6v22h-13.7c-10.5,0-15-1.6-19.6-10.5l-18-35.4c-3-5.5-5.9-6.5-13.3-6.5h-13.1v52.4h-25.9V291.8z M550.5,335.7c13.1,0,20.8-8.1,20.8-22.2c0-13.9-7.7-21.8-20.4-21.8h-21v43.9H550.5z"></path> <path d="M665.6,307c28.9,0,44.7,21.2,44.7,47.9c0,3-0.6,9.3-0.6,9.3h-69.7c2,17.8,15,27.1,30.3,27.1c16.2,0,28.3-11.3,28.3-11.3 l10.5,17.4c0,0-15.4,15.2-40.6,15.2c-33.4,0-54.2-24.1-54.2-52.8C614.4,328.8,635.4,307,665.6,307z M684.6,346.8 c-0.4-12.1-8.7-20.4-19-20.4c-12.9,0-22,7.7-24.7,20.4H684.6z"></path> <path d="M784.8,347h3.2v-0.8c0-14.4-5.7-19.8-18.6-19.8c-4.6,0-13.5,1.2-13.5,6.7v5.3h-23.4v-10.7c0-18.8,26.5-20.8,37-20.8 c33.6,0,43.5,17.6,43.5,40.2v37.6c0,2.8,1.6,4.4,4.4,4.4h7.9v21.2h-22.6c-9.3,0-12.9-5.1-12.9-11.1c0-2.6,0.2-4.4,0.2-4.4h-0.4 c0,0-7.7,17.8-30.5,17.8c-18,0-34.4-11.3-34.4-31.5C724.8,349.6,768.4,347,784.8,347z M765.4,393.1c13.5,0,23-14.2,23-26.5v-2.4 H784c-13.1,0-33.8,1.8-33.8,15.8C750.1,386.8,755.1,393.1,765.4,393.1z"></path> <path d="M844.9,295.6c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.5,4.2,13.5,13.5v101.5c0,2.8,1.6,4.4,4.4,4.4h7.7v21.2h-23.7 c-9.5,0-13.5-4-13.5-13.5V295.6z"></path> <path d="M902.5,295.6c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.5,4.2,13.5,13.5v101.5c0,2.8,1.6,4.4,4.4,4.4h7.7v21.2H916 c-9.5,0-13.5-4-13.5-13.5V295.6z"></path> <path d="M968.6,430.7c6.9,0,13.1-4.2,16.6-12.9l3.4-7.7L955,334.3c-1.2-3-2.6-3.6-5.3-3.6h-3v-21.4h16.6c7.1,0,10.7,2.6,13.3,9.5 l19.8,50.5c2,5.1,3.6,13.5,3.6,13.5h0.4c0,0,1.6-8.3,3.4-13.5l17.2-50.5c2.4-6.9,6.5-9.5,13.5-9.5h17v21.4h-3 c-3,0-4.6,0.6-5.7,3.6l-36.2,91.2c-7.1,18.2-21.4,26.3-36.4,26.3c-15.8,0-25.5-10.3-25.5-10.3l9.7-17.8 C954.2,423.8,960.3,430.7,968.6,430.7z"></path> <path d="M1127.2,372.7c0,0,14.4,16.6,34,16.6c10.7,0,20.2-5.7,20.2-16.6c0-23.9-66.1-22-66.1-65.7c0-22.8,19.8-39.6,46.9-39.6 c16.4,0,41.8,7.7,41.8,27.7v13.1h-23.4v-6.3c0-6.5-9.3-10.9-18.6-10.9c-11.9,0-20.6,6.1-20.6,15c0,23.9,66.1,19.2,66.1,65.3 c0,22.4-17.2,41.4-46.7,41.4c-31.1,0-48.3-21.8-48.3-21.8L1127.2,372.7z"></path> <path d="M1232.1,335.1c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.3,4.2,13.3,13.5v61.9c0,2.8,1.6,4.4,4.4,4.4h7.9v21.2h-23.9 c-9.3,0-13.3-4-13.3-13.5V335.1z M1233.2,269.8h21.8V293h-21.8V269.8z"></path> <path d="M1290.4,335.1c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.2c8.9,0,13.3,4.2,13.3,11.3v3c0,2.2-0.2,4.4-0.2,4.4h0.4 c4.7-9.9,16.8-21,32.7-21c15.2,0,25.1,7.1,29.5,20.8h0.4c5.3-10.9,18.4-20.8,34.4-20.8c21,0,33.1,11.9,33.1,38.4v39.4 c0,2.8,1.6,4.4,4.4,4.4h7.7v21.2h-23.7c-9.5,0-13.5-4-13.5-13.5v-46.7c0-11.5-2.2-20.2-13.9-20.2c-12.5,0-21.4,10.5-24.1,23.2 c-1.2,4-1.6,8.1-1.6,12.9v44.3H1355v-60.2c0-10.9-1.6-20.2-13.7-20.2c-12.7,0-21.2,10.5-24.3,23.4c-1,4-1.6,8.1-1.6,12.7v44.3 h-24.9V335.1z"></path> <path d="M1477.1,335.1c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h22.4c9.3,0,12.7,4.2,12.7,9.7c0,2.4,0,4,0,4h0.4c0,0,8.5-16,32.1-16 c27.3,0,44.9,21.6,44.9,52.8c0,32.1-19.8,52.8-46.3,52.8c-20,0-28.9-13.3-28.9-13.3h-0.4c0,0,0.4,3.6,0.4,8.7v41.8h-24.9V335.1z M1526.4,391.5c13.9,0,25.5-11.3,25.5-31.3c0-19.2-10.3-31.7-25.1-31.7c-13.1,0-25.3,9.5-25.3,31.9 C1501.4,376.1,1509.7,391.5,1526.4,391.5z"></path> <path d="M1597.8,295.6c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.5,4.2,13.5,13.5v101.5c0,2.8,1.6,4.4,4.4,4.4h7.7v21.2h-23.7 c-9.5,0-13.5-4-13.5-13.5V295.6z"></path> <path d="M1697.1,307c28.9,0,44.7,21.2,44.7,47.9c0,3-0.6,9.3-0.6,9.3h-69.7c2,17.8,15,27.1,30.3,27.1c16.2,0,28.3-11.3,28.3-11.3 l10.5,17.4c0,0-15.4,15.2-40.6,15.2c-33.4,0-54.2-24.1-54.2-52.8C1645.9,328.8,1666.9,307,1697.1,307z M1716.1,346.8 c-0.4-12.1-8.7-20.4-19-20.4c-12.9,0-22,7.7-24.7,20.4H1716.1z"></path> <path d="M1823.2,372.7c0,0,14.4,16.6,34,16.6c10.7,0,20.2-5.7,20.2-16.6c0-23.9-66.1-22-66.1-65.7c0-22.8,19.8-39.6,46.9-39.6 c16.4,0,41.8,7.7,41.8,27.7v13.1h-23.4v-6.3c0-6.5-9.3-10.9-18.6-10.9c-11.9,0-20.6,6.1-20.6,15c0,23.9,66.1,19.2,66.1,65.3 c0,22.4-17.2,41.4-46.7,41.4c-31.1,0-48.3-21.8-48.3-21.8L1823.2,372.7z"></path> <path d="M1931.9,372.7c0,0,14.4,16.6,34,16.6c10.7,0,20.2-5.7,20.2-16.6c0-23.9-66.1-22-66.1-65.7c0-22.8,19.8-39.6,46.9-39.6 c16.4,0,41.8,7.7,41.8,27.7v13.1h-23.4v-6.3c0-6.5-9.3-10.9-18.6-10.9c-11.9,0-20.6,6.1-20.6,15c0,23.9,66.1,19.2,66.1,65.3 c0,22.4-17.2,41.4-46.7,41.4c-31.1,0-48.3-21.8-48.3-21.8L1931.9,372.7z"></path> <path d="M2039.1,296.2c0-2.8-1.6-4.4-4.4-4.4h-8.5v-22h25.3c9.5,0,13.5,4.2,13.5,13.5V384c0,2.8,1.6,4.4,4.4,4.4h30.7 c2.8,0,4.4-1.6,4.4-4.4v-8.5h23.6v21.4c0,9.5-4,13.5-13.5,13.5h-61.9c-9.5,0-13.5-4-13.5-13.5V296.2z"></path> </g> <g> <path class="st0" d="M349.5,303.3h-38.4v-74c0-22.2-18.1-40.2-40.2-40.2s-40.2,18.1-40.2,40.2v74h-38.4v-74 c0-43.3,35.3-78.6,78.6-78.6s78.6,35.3,78.6,78.6V303.3z"></path> <path class="st1" d="M340.2,213.4c-2.9,1.3-4.2,3.9-5.4,6.5c0.3-6.8,0.6-13.7-0.1-20.3c-0.4-3.3-0.8-6.8-3.9-8.8 c-2.3-1.5-6.4,0.2-7.5-0.5c-2.2-1.4-1.8-14.9-3.4-18.6c-3.1-6.9-13-10.4-19-14.1c-1.2-0.7-2.5-1.6-3.7-2.5 c-8.1-2.8-16.7-4.4-25.8-4.4c-2.6,0-5.2,0.1-7.8,0.4c-0.5,0.4-1,0.9-1.6,1.3c-0.8,0.5-1.3,1.1-1.9-0.2c-0.1-0.2-0.3-0.4-0.5-0.6 c-3.2,0.5-6.4,1.2-9.5,2.1c-5.2,2.8-9.9,6.4-15.2,9.4c-6,3.3-10,8.1-14.5,13.6c-13.6,16.7-21.3,36.2-27.5,56.7 c-0.1,0.2-0.1,0.4-0.1,0.6v0.7c0.4,2.3,3.7,3.3,5.4,1.6c1.5,4.8-0.2,11.1-0.1,15.9c0.2,4.3,1,8.4,2,12.5c0.6,2.6,5.8,3.4,7.1,1.1 c3.6-4.2,1-4.9,3.2,0.2c0.4,3.1,6.8,3.5,7.3,0.6c2.3-4,2.5-3.6,4.3,0.2c0.8,2.1,5.7,1.7,6.6-0.3c1.2-2.7,2-5.3,2.5-8v-29.1 c0-18.9,13.2-34.8,30.8-39.1c1.1-6,4-16.7,6.3-18.6c1.8,3.6-1.4,11.1-1.1,17.6c1.4-0.1,2.8-0.2,4.2-0.2c1.6,0,3.1,0.1,4.6,0.3 c1.3-4.2,1.5-8.9,3.1-9.1c1.8,1.8,0.3,6.8,0.4,9.6c11.9,2.4,21.9,10.1,27.4,20.5c0.1-0.2,0.1-0.4,0.1-0.5c0.4-2.6,1.1-17.5,2.5-18 c2.6-0.6,1.5,15.2,0.1,23.1c-0.1,0.4-0.1,0.8-0.2,1.3c1.4,4.1,2.2,8.5,2.2,13.1v7.1c1.1,1.5,2.5,2.5,4.9,2.8 c0.7,0.8,2.9-0.9,3.6,0.2c1.7,3.7,0.9,4.9,1.8,9.5c0.8,5.8,0.6,10.1-0.1,15.3c-0.3,1.9,0.8,4,3,4c5-0.2,10.3-8.6,13.3-12.4 c0,2-1.9,9.2-1.9,11.1c0,3.6,8.2,3.4,9.5,0.2c7.2-18.5,1.5-42.5-0.8-50.8C344.2,213.8,342.3,212.4,340.2,213.4z"></path> <rect x="165" y="427.1" class="st0" width="211.9" height="16.5"></rect> <path class="st2" d="M376.9,419.5H165V268.6c0-6.4,5.2-11.7,11.7-11.7h188.6c6.4,0,11.7,5.2,11.7,11.7V419.5z"></path> <path class="st3" d="M372.5,308.6c-10.2,11.1-22.8,27-31.2,39.3c8-17.9,16.1-35.7,24.7-53.3c2.9-6.1-5-10.6-8.9-5.2 c-9.1,12.5-18.1,25.2-26.9,37.9c11.4-21.5,22.7-43.7,38.6-61.9c-2.5-2.5-5.5-4.6-8.8-6.1c-10.5,10.4-20.4,21.4-29.7,32.8 c1.7-8.3,8.6-20.2,10.8-27.7c0.8-2.7-0.2-5.9-2.2-7.5H333c-1.1,0.7-2.3,1.8-3.6,3.4c-7.1,9.3-19.5,24-31.1,38.3 c9-17.7,17.2-33.2,22.1-41.7h-15.5c-15.2,15.8-39,40.3-54.6,56.7l-4.9,2.8c11.4-16.4,31.8-45.3,39.3-53c2-2.1,1.8-4.7,0.5-6.5 h-8.5c-9.8,10.3-26.7,32.6-38.9,49.5c7.6-13.6,14.8-27.1,21.6-41.6c2.4-5.1-3.8-10.7-8.1-6.3c-13.7,13.8-26.6,28.4-38.7,43.5 c5.4-10.4,14.6-26.1,20-36.4c2.6-5-4.1-10.9-8.1-6.3c-8.9,10.3-21.3,26.2-29.9,36.7c5.3-9.4,12.4-21.5,17.6-31 c2.8-5.1-3.9-10.5-8.1-6.3c-6.6,6.6-14.9,16-21.3,22.8c2.4-4.6,6.8-12.1,9.2-16.8c1.6-3.1-0.1-6.5-2.9-7.5 c-2.1,0.3-4.1,0.9-6.1,1.7c-3.4,2.4-7.7,6.3-10.5,8.2c0.4-0.7,0.9-1.3,1.3-2c0.1-0.2,0.2-0.3,0.3-0.5c-5.5,5.2-8.9,12.5-8.9,20.6 v0.2c2.1-1.8,4.3-3.5,6.5-5.2c-2.1,4-4.3,8-6.5,12v23.8c5.4-6.1,10.9-12.2,16.5-18.2c-5.5,9.7-11,19.4-16.5,29v23.6 c10.5-14,21.2-27.8,32.1-41.4c-10.7,20.5-21.4,41-32.1,61.5v22.5c18-32.9,43.5-66.1,67-94.4c-3.6,11.5-14,25.1-20.7,35.9 c-10.8,17.5-18.8,34.7-26.9,50.7c-4.9,9-13,23.5-17.6,34.1h12.5c5.5-9.7,11-20.6,16.5-28.6c5.8-8.6,11.4-17.5,17-26.3 c-4.8,11.8-10.4,24.4-19.4,38.1c-3.6,5.6,3.5,12.8,7.3,7.3c16.4-23.9,29.9-41.2,43.5-60.2c1.2-2.8,30.2-40.4,39.3-52.9 c0,0,0,0,0,0c0.5,0.3,1.1,0.7,1.6,1c0.9,0.6-43.5,81.2-47.4,91.8c-4.9,7.8-10.3,15.8-14.9,22.6c-1.7,2.4-3.3,4.7-5,7.1h12.6 c0.4-0.6,0.9-1.3,1.3-1.9c7-9.9,13-20,18.8-28.3c1.6-1.4,2.8-2.2,3-1.7c3-5.7,9.7-19.3,17.9-35.7l-5.2,35.5c-4.7,8-9.4,16-14,24 c-3.4,5.8,5.3,10.7,8.9,5.2c9.5-14.1,17.9-28.9,25.9-43.8c11.6-19,23.7-37.7,36.9-55.5c-1.9,3.6-3.9,7.2-5.9,10.8 c-15,27.1-30.4,54.1-43.1,82.4c-2.7,6,5.3,11,8.9,5.2c15.8-25.1,32.2-49.8,49-74.2c-11.5,25.9-22.6,51.9-33.6,78H312 c11.6-22.7,23.7-45.1,38.1-66c-10.1,22-20.1,44-30.2,66h11.8c3.6-6.8,7.5-13.5,11.6-20c-2.5,5.9-5.8,13.8-8.4,20H347 c2.4-3.8,4.9-7.9,7.1-11c-0.5,2.4-1.6,7.3-2.5,11h12.8c1.3-2.3,2.6-4.5,3.7-5.9c0.3,1.3,0.6,2.5,1.1,3.7c0.4,0.9,0.7,1.6,0.9,2.2 h6.7v-20.1c-1.2-3.3-5.8-5.4-8.5-2.2c-0.5,0.6-1.1,1.3-1.6,1.9c1.1-4.6,2.3-9.1,4.1-13.2c1.8-4.3-2.5-6.9-6.1-6 c-0.7,0.1-1.3,0.3-1.9,0.7c3.7-8,9.3-18.3,14.1-27.1v-13.1c-2-0.5-4.2,0-5.8,2.1c-3,4-8.9,11.7-11.9,15.8 c4.9-10.6,12-23.9,17.7-35.5V307C375.5,306.7,373.9,307.1,372.5,308.6z"></path> <path d="M325.2,289.7c-6.6-6.6-17.4-6.6-24,0l-46.1,44.8L240.7,320c-6.6-6.6-17.4-6.6-24,0l-5.5,5.5c-6.6,6.6-6.6,17.4,0,24 l24.8,24.8c0.4,0.6,0.9,1.1,1.4,1.7l5.5,5.5l12.3,11.7l10.3-10.3c0.6-0.4,1.1-0.9,1.7-1.4l5.5-5.5c0.5-0.5,1-1.1,1.4-1.7 l56.5-55.2c6.6-6.6,6.6-17.4,0-24L325.2,289.7z"></path> </g></g> <g id="zwart" class="st4"> <g class="st5"> <rect x="164.7" y="427.4" width="212.5" height="16.5"></rect> <path d="M363.2,256.8h-13.5v-27.7c0-43.5-35.4-78.8-78.8-78.8s-78.8,35.4-78.8,78.8v27.7h-13.5c-7.7,0-13.9,6.2-13.9,13.9v149 h212.5v-149C377.2,263.1,370.9,256.8,363.2,256.8z M230.6,229.2c0-22.2,18.1-40.3,40.3-40.3s40.3,18.1,40.3,40.3v27.7h-80.7V229.2 z M330.8,319.2l-56.6,55.3c-0.4,0.6-0.9,1.1-1.4,1.7l-5.5,5.5c-0.5,0.5-1.1,1-1.7,1.4l-10.3,10.3l-12.3-11.8l-5.5-5.5 c-0.5-0.5-1-1.1-1.4-1.7l-24.9-24.9c-6.6-6.6-6.6-17.4,0-24l5.5-5.5c6.6-6.6,17.4-6.6,24,0l14.4,14.4l46.2-44.9 c6.6-6.6,17.4-6.6,24,0l5.5,5.5C337.4,301.8,337.4,312.6,330.8,319.2z"></path> </g> <g class="st5"> <path d="M503.9,291.8h-12.9v-22H554c25.7,0,43.7,15.8,43.7,42.4c0,25.3-17.4,35.8-23.4,37v0.4c0,0,4.4,2,6.9,7.1l13.7,27.1 c2.2,4.2,5.5,4.6,9.9,4.6h2.6v22h-13.7c-10.5,0-15-1.6-19.6-10.5l-18-35.4c-3-5.5-5.9-6.5-13.3-6.5h-13.1v52.4h-25.9V291.8z M550.5,335.7c13.1,0,20.8-8.1,20.8-22.2c0-13.9-7.7-21.8-20.4-21.8h-21v43.9H550.5z"></path> <path d="M665.6,307c28.9,0,44.7,21.2,44.7,47.9c0,3-0.6,9.3-0.6,9.3h-69.7c2,17.8,15,27.1,30.3,27.1c16.2,0,28.3-11.3,28.3-11.3 l10.5,17.4c0,0-15.4,15.2-40.6,15.2c-33.4,0-54.2-24.1-54.2-52.8C614.4,328.8,635.4,307,665.6,307z M684.6,346.8 c-0.4-12.1-8.7-20.4-19-20.4c-12.9,0-22,7.7-24.7,20.4H684.6z"></path> <path d="M784.8,347h3.2v-0.8c0-14.4-5.7-19.8-18.6-19.8c-4.6,0-13.5,1.2-13.5,6.7v5.3h-23.4v-10.7c0-18.8,26.5-20.8,37-20.8 c33.6,0,43.5,17.6,43.5,40.2v37.6c0,2.8,1.6,4.4,4.4,4.4h7.9v21.2h-22.6c-9.3,0-12.9-5.1-12.9-11.1c0-2.6,0.2-4.4,0.2-4.4h-0.4 c0,0-7.7,17.8-30.5,17.8c-18,0-34.4-11.3-34.4-31.5C724.8,349.6,768.4,347,784.8,347z M765.4,393.1c13.5,0,23-14.2,23-26.5v-2.4 H784c-13.1,0-33.8,1.8-33.8,15.8C750.1,386.8,755.1,393.1,765.4,393.1z"></path> <path d="M844.9,295.6c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.5,4.2,13.5,13.5v101.5c0,2.8,1.6,4.4,4.4,4.4h7.7v21.2h-23.7 c-9.5,0-13.5-4-13.5-13.5V295.6z"></path> <path d="M902.5,295.6c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.5,4.2,13.5,13.5v101.5c0,2.8,1.6,4.4,4.4,4.4h7.7v21.2H916 c-9.5,0-13.5-4-13.5-13.5V295.6z"></path> <path d="M968.6,430.7c6.9,0,13.1-4.2,16.6-12.9l3.4-7.7L955,334.3c-1.2-3-2.6-3.6-5.3-3.6h-3v-21.4h16.6c7.1,0,10.7,2.6,13.3,9.5 l19.8,50.5c2,5.1,3.6,13.5,3.6,13.5h0.4c0,0,1.6-8.3,3.4-13.5l17.2-50.5c2.4-6.9,6.5-9.5,13.5-9.5h17v21.4h-3 c-3,0-4.6,0.6-5.7,3.6l-36.2,91.2c-7.1,18.2-21.4,26.3-36.4,26.3c-15.8,0-25.5-10.3-25.5-10.3l9.7-17.8 C954.2,423.8,960.3,430.7,968.6,430.7z"></path> <path d="M1127.2,372.7c0,0,14.4,16.6,34,16.6c10.7,0,20.2-5.7,20.2-16.6c0-23.9-66.1-22-66.1-65.7c0-22.8,19.8-39.6,46.9-39.6 c16.4,0,41.8,7.7,41.8,27.7v13.1h-23.4v-6.3c0-6.5-9.3-10.9-18.6-10.9c-11.9,0-20.6,6.1-20.6,15c0,23.9,66.1,19.2,66.1,65.3 c0,22.4-17.2,41.4-46.7,41.4c-31.1,0-48.3-21.8-48.3-21.8L1127.2,372.7z"></path> <path d="M1232.1,335.1c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.3,4.2,13.3,13.5v61.9c0,2.8,1.6,4.4,4.4,4.4h7.9v21.2h-23.9 c-9.3,0-13.3-4-13.3-13.5V335.1z M1233.2,269.8h21.8V293h-21.8V269.8z"></path> <path d="M1290.4,335.1c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.2c8.9,0,13.3,4.2,13.3,11.3v3c0,2.2-0.2,4.4-0.2,4.4h0.4 c4.7-9.9,16.8-21,32.7-21c15.2,0,25.1,7.1,29.5,20.8h0.4c5.3-10.9,18.4-20.8,34.4-20.8c21,0,33.1,11.9,33.1,38.4v39.4 c0,2.8,1.6,4.4,4.4,4.4h7.7v21.2h-23.7c-9.5,0-13.5-4-13.5-13.5v-46.7c0-11.5-2.2-20.2-13.9-20.2c-12.5,0-21.4,10.5-24.1,23.2 c-1.2,4-1.6,8.1-1.6,12.9v44.3H1355v-60.2c0-10.9-1.6-20.2-13.7-20.2c-12.7,0-21.2,10.5-24.3,23.4c-1,4-1.6,8.1-1.6,12.7v44.3 h-24.9V335.1z"></path> <path d="M1477.1,335.1c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h22.4c9.3,0,12.7,4.2,12.7,9.7c0,2.4,0,4,0,4h0.4c0,0,8.5-16,32.1-16 c27.3,0,44.9,21.6,44.9,52.8c0,32.1-19.8,52.8-46.3,52.8c-20,0-28.9-13.3-28.9-13.3h-0.4c0,0,0.4,3.6,0.4,8.7v41.8h-24.9V335.1z M1526.4,391.5c13.9,0,25.5-11.3,25.5-31.3c0-19.2-10.3-31.7-25.1-31.7c-13.1,0-25.3,9.5-25.3,31.9 C1501.4,376.1,1509.7,391.5,1526.4,391.5z"></path> <path d="M1597.8,295.6c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.5,4.2,13.5,13.5v101.5c0,2.8,1.6,4.4,4.4,4.4h7.7v21.2h-23.7 c-9.5,0-13.5-4-13.5-13.5V295.6z"></path> <path d="M1697.1,307c28.9,0,44.7,21.2,44.7,47.9c0,3-0.6,9.3-0.6,9.3h-69.7c2,17.8,15,27.1,30.3,27.1c16.2,0,28.3-11.3,28.3-11.3 l10.5,17.4c0,0-15.4,15.2-40.6,15.2c-33.4,0-54.2-24.1-54.2-52.8C1645.9,328.8,1666.9,307,1697.1,307z M1716.1,346.8 c-0.4-12.1-8.7-20.4-19-20.4c-12.9,0-22,7.7-24.7,20.4H1716.1z"></path> <path d="M1823.2,372.7c0,0,14.4,16.6,34,16.6c10.7,0,20.2-5.7,20.2-16.6c0-23.9-66.1-22-66.1-65.7c0-22.8,19.8-39.6,46.9-39.6 c16.4,0,41.8,7.7,41.8,27.7v13.1h-23.4v-6.3c0-6.5-9.3-10.9-18.6-10.9c-11.9,0-20.6,6.1-20.6,15c0,23.9,66.1,19.2,66.1,65.3 c0,22.4-17.2,41.4-46.7,41.4c-31.1,0-48.3-21.8-48.3-21.8L1823.2,372.7z"></path> <path d="M1931.9,372.7c0,0,14.4,16.6,34,16.6c10.7,0,20.2-5.7,20.2-16.6c0-23.9-66.1-22-66.1-65.7c0-22.8,19.8-39.6,46.9-39.6 c16.4,0,41.8,7.7,41.8,27.7v13.1h-23.4v-6.3c0-6.5-9.3-10.9-18.6-10.9c-11.9,0-20.6,6.1-20.6,15c0,23.9,66.1,19.2,66.1,65.3 c0,22.4-17.2,41.4-46.7,41.4c-31.1,0-48.3-21.8-48.3-21.8L1931.9,372.7z"></path> <path d="M2039.1,296.2c0-2.8-1.6-4.4-4.4-4.4h-8.5v-22h25.3c9.5,0,13.5,4.2,13.5,13.5V384c0,2.8,1.6,4.4,4.4,4.4h30.7 c2.8,0,4.4-1.6,4.4-4.4v-8.5h23.6v21.4c0,9.5-4,13.5-13.5,13.5h-61.9c-9.5,0-13.5-4-13.5-13.5V296.2z"></path> </g></g> <g id="geel" class="st4"> <g class="st5"> <g> <g> <rect x="164.7" y="427.4" class="st2" width="212.5" height="16.5"></rect> </g> <g> <g> <path class="st2" d="M363.2,256.8h-13.5v-27.7c0-43.5-35.4-78.8-78.8-78.8s-78.8,35.4-78.8,78.8v27.7h-13.5 c-7.7,0-13.9,6.2-13.9,13.9v149h212.5v-149C377.2,263.1,370.9,256.8,363.2,256.8z M230.6,229.2c0-22.2,18.1-40.3,40.3-40.3 s40.3,18.1,40.3,40.3v27.7h-80.7V229.2z M330.8,319.2l-56.6,55.3c-0.4,0.6-0.9,1.1-1.4,1.7l-5.5,5.5c-0.5,0.5-1.1,1-1.7,1.4 l-10.3,10.3l-12.3-11.8l-5.5-5.5c-0.5-0.5-1-1.1-1.4-1.7l-24.9-24.9c-6.6-6.6-6.6-17.4,0-24l5.5-5.5c6.6-6.6,17.4-6.6,24,0 l14.4,14.4l46.2-44.9c6.6-6.6,17.4-6.6,24,0l5.5,5.5C337.4,301.8,337.4,312.6,330.8,319.2z"></path> </g> </g> </g> </g> <g class="st5"> <g> <path class="st2" d="M503.9,291.8h-12.9v-22H554c25.7,0,43.7,15.8,43.7,42.4c0,25.3-17.4,35.8-23.4,37v0.4c0,0,4.4,2,6.9,7.1 l13.7,27.1c2.2,4.2,5.5,4.6,9.9,4.6h2.6v22h-13.7c-10.5,0-15-1.6-19.6-10.5l-18-35.4c-3-5.5-5.9-6.5-13.3-6.5h-13.1v52.4h-25.9 V291.8z M550.5,335.7c13.1,0,20.8-8.1,20.8-22.2c0-13.9-7.7-21.8-20.4-21.8h-21v43.9H550.5z"></path> <path class="st2" d="M665.6,307c28.9,0,44.7,21.2,44.7,47.9c0,3-0.6,9.3-0.6,9.3h-69.7c2,17.8,15,27.1,30.3,27.1 c16.2,0,28.3-11.3,28.3-11.3l10.5,17.4c0,0-15.4,15.2-40.6,15.2c-33.4,0-54.2-24.1-54.2-52.8C614.4,328.8,635.4,307,665.6,307z M684.6,346.8c-0.4-12.1-8.7-20.4-19-20.4c-12.9,0-22,7.7-24.7,20.4H684.6z"></path> <path class="st2" d="M784.8,347h3.2v-0.8c0-14.4-5.7-19.8-18.6-19.8c-4.6,0-13.5,1.2-13.5,6.7v5.3h-23.4v-10.7 c0-18.8,26.5-20.8,37-20.8c33.6,0,43.5,17.6,43.5,40.2v37.6c0,2.8,1.6,4.4,4.4,4.4h7.9v21.2h-22.6c-9.3,0-12.9-5.1-12.9-11.1 c0-2.6,0.2-4.4,0.2-4.4h-0.4c0,0-7.7,17.8-30.5,17.8c-18,0-34.4-11.3-34.4-31.5C724.8,349.6,768.4,347,784.8,347z M765.4,393.1 c13.5,0,23-14.2,23-26.5v-2.4H784c-13.1,0-33.8,1.8-33.8,15.8C750.1,386.8,755.1,393.1,765.4,393.1z"></path> <path class="st2" d="M844.9,295.6c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.5,4.2,13.5,13.5v101.5c0,2.8,1.6,4.4,4.4,4.4 h7.7v21.2h-23.7c-9.5,0-13.5-4-13.5-13.5V295.6z"></path> <path class="st2" d="M902.5,295.6c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.5,4.2,13.5,13.5v101.5c0,2.8,1.6,4.4,4.4,4.4 h7.7v21.2H916c-9.5,0-13.5-4-13.5-13.5V295.6z"></path> <path class="st2" d="M968.6,430.7c6.9,0,13.1-4.2,16.6-12.9l3.4-7.7L955,334.3c-1.2-3-2.6-3.6-5.3-3.6h-3v-21.4h16.6 c7.1,0,10.7,2.6,13.3,9.5l19.8,50.5c2,5.1,3.6,13.5,3.6,13.5h0.4c0,0,1.6-8.3,3.4-13.5l17.2-50.5c2.4-6.9,6.5-9.5,13.5-9.5h17 v21.4h-3c-3,0-4.6,0.6-5.7,3.6l-36.2,91.2c-7.1,18.2-21.4,26.3-36.4,26.3c-15.8,0-25.5-10.3-25.5-10.3l9.7-17.8 C954.2,423.8,960.3,430.7,968.6,430.7z"></path> <path class="st2" d="M1127.2,372.7c0,0,14.4,16.6,34,16.6c10.7,0,20.2-5.7,20.2-16.6c0-23.9-66.1-22-66.1-65.7 c0-22.8,19.8-39.6,46.9-39.6c16.4,0,41.8,7.7,41.8,27.7v13.1h-23.4v-6.3c0-6.5-9.3-10.9-18.6-10.9c-11.9,0-20.6,6.1-20.6,15 c0,23.9,66.1,19.2,66.1,65.3c0,22.4-17.2,41.4-46.7,41.4c-31.1,0-48.3-21.8-48.3-21.8L1127.2,372.7z"></path> <path class="st2" d="M1232.1,335.1c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.3,4.2,13.3,13.5v61.9c0,2.8,1.6,4.4,4.4,4.4 h7.9v21.2h-23.9c-9.3,0-13.3-4-13.3-13.5V335.1z M1233.2,269.8h21.8V293h-21.8V269.8z"></path> <path class="st2" d="M1290.4,335.1c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.2c8.9,0,13.3,4.2,13.3,11.3v3c0,2.2-0.2,4.4-0.2,4.4h0.4 c4.7-9.9,16.8-21,32.7-21c15.2,0,25.1,7.1,29.5,20.8h0.4c5.3-10.9,18.4-20.8,34.4-20.8c21,0,33.1,11.9,33.1,38.4v39.4 c0,2.8,1.6,4.4,4.4,4.4h7.7v21.2h-23.7c-9.5,0-13.5-4-13.5-13.5v-46.7c0-11.5-2.2-20.2-13.9-20.2c-12.5,0-21.4,10.5-24.1,23.2 c-1.2,4-1.6,8.1-1.6,12.9v44.3H1355v-60.2c0-10.9-1.6-20.2-13.7-20.2c-12.7,0-21.2,10.5-24.3,23.4c-1,4-1.6,8.1-1.6,12.7v44.3 h-24.9V335.1z"></path> <path class="st2" d="M1477.1,335.1c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h22.4c9.3,0,12.7,4.2,12.7,9.7c0,2.4,0,4,0,4h0.4 c0,0,8.5-16,32.1-16c27.3,0,44.9,21.6,44.9,52.8c0,32.1-19.8,52.8-46.3,52.8c-20,0-28.9-13.3-28.9-13.3h-0.4c0,0,0.4,3.6,0.4,8.7 v41.8h-24.9V335.1z M1526.4,391.5c13.9,0,25.5-11.3,25.5-31.3c0-19.2-10.3-31.7-25.1-31.7c-13.1,0-25.3,9.5-25.3,31.9 C1501.4,376.1,1509.7,391.5,1526.4,391.5z"></path> <path class="st2" d="M1597.8,295.6c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.5,4.2,13.5,13.5v101.5c0,2.8,1.6,4.4,4.4,4.4 h7.7v21.2h-23.7c-9.5,0-13.5-4-13.5-13.5V295.6z"></path> <path class="st2" d="M1697.1,307c28.9,0,44.7,21.2,44.7,47.9c0,3-0.6,9.3-0.6,9.3h-69.7c2,17.8,15,27.1,30.3,27.1 c16.2,0,28.3-11.3,28.3-11.3l10.5,17.4c0,0-15.4,15.2-40.6,15.2c-33.4,0-54.2-24.1-54.2-52.8C1645.9,328.8,1666.9,307,1697.1,307 z M1716.1,346.8c-0.4-12.1-8.7-20.4-19-20.4c-12.9,0-22,7.7-24.7,20.4H1716.1z"></path> <path class="st2" d="M1823.2,372.7c0,0,14.4,16.6,34,16.6c10.7,0,20.2-5.7,20.2-16.6c0-23.9-66.1-22-66.1-65.7 c0-22.8,19.8-39.6,46.9-39.6c16.4,0,41.8,7.7,41.8,27.7v13.1h-23.4v-6.3c0-6.5-9.3-10.9-18.6-10.9c-11.9,0-20.6,6.1-20.6,15 c0,23.9,66.1,19.2,66.1,65.3c0,22.4-17.2,41.4-46.7,41.4c-31.1,0-48.3-21.8-48.3-21.8L1823.2,372.7z"></path> <path class="st2" d="M1931.9,372.7c0,0,14.4,16.6,34,16.6c10.7,0,20.2-5.7,20.2-16.6c0-23.9-66.1-22-66.1-65.7 c0-22.8,19.8-39.6,46.9-39.6c16.4,0,41.8,7.7,41.8,27.7v13.1h-23.4v-6.3c0-6.5-9.3-10.9-18.6-10.9c-11.9,0-20.6,6.1-20.6,15 c0,23.9,66.1,19.2,66.1,65.3c0,22.4-17.2,41.4-46.7,41.4c-31.1,0-48.3-21.8-48.3-21.8L1931.9,372.7z"></path> <path class="st2" d="M2039.1,296.2c0-2.8-1.6-4.4-4.4-4.4h-8.5v-22h25.3c9.5,0,13.5,4.2,13.5,13.5V384c0,2.8,1.6,4.4,4.4,4.4 h30.7c2.8,0,4.4-1.6,4.4-4.4v-8.5h23.6v21.4c0,9.5-4,13.5-13.5,13.5h-61.9c-9.5,0-13.5-4-13.5-13.5V296.2z"></path> </g> </g></g> <g id="wit" class="st4"> <g class="st5"> <g> <g> <rect x="164.7" y="427.4" class="st6" width="212.5" height="16.5"></rect> </g> <g> <g> <path class="st6" d="M363.2,256.8h-13.5v-27.7c0-43.5-35.4-78.8-78.8-78.8s-78.8,35.4-78.8,78.8v27.7h-13.5 c-7.7,0-13.9,6.2-13.9,13.9v149h212.5v-149C377.2,263.1,370.9,256.8,363.2,256.8z M230.6,229.2c0-22.2,18.1-40.3,40.3-40.3 s40.3,18.1,40.3,40.3v27.7h-80.7V229.2z M330.8,319.2l-56.6,55.3c-0.4,0.6-0.9,1.1-1.4,1.7l-5.5,5.5c-0.5,0.5-1.1,1-1.7,1.4 l-10.3,10.3l-12.3-11.8l-5.5-5.5c-0.5-0.5-1-1.1-1.4-1.7l-24.9-24.9c-6.6-6.6-6.6-17.4,0-24l5.5-5.5c6.6-6.6,17.4-6.6,24,0 l14.4,14.4l46.2-44.9c6.6-6.6,17.4-6.6,24,0l5.5,5.5C337.4,301.8,337.4,312.6,330.8,319.2z"></path> </g> </g> </g> </g> <g class="st5"> <g> <path class="st6" d="M503.9,291.8h-12.9v-22H554c25.7,0,43.7,15.8,43.7,42.4c0,25.3-17.4,35.8-23.4,37v0.4c0,0,4.4,2,6.9,7.1 l13.7,27.1c2.2,4.2,5.5,4.6,9.9,4.6h2.6v22h-13.7c-10.5,0-15-1.6-19.6-10.5l-18-35.4c-3-5.5-5.9-6.5-13.3-6.5h-13.1v52.4h-25.9 V291.8z M550.5,335.7c13.1,0,20.8-8.1,20.8-22.2c0-13.9-7.7-21.8-20.4-21.8h-21v43.9H550.5z"></path> <path class="st6" d="M665.6,307c28.9,0,44.7,21.2,44.7,47.9c0,3-0.6,9.3-0.6,9.3h-69.7c2,17.8,15,27.1,30.3,27.1 c16.2,0,28.3-11.3,28.3-11.3l10.5,17.4c0,0-15.4,15.2-40.6,15.2c-33.4,0-54.2-24.1-54.2-52.8C614.4,328.8,635.4,307,665.6,307z M684.6,346.8c-0.4-12.1-8.7-20.4-19-20.4c-12.9,0-22,7.7-24.7,20.4H684.6z"></path> <path class="st6" d="M784.8,347h3.2v-0.8c0-14.4-5.7-19.8-18.6-19.8c-4.6,0-13.5,1.2-13.5,6.7v5.3h-23.4v-10.7 c0-18.8,26.5-20.8,37-20.8c33.6,0,43.5,17.6,43.5,40.2v37.6c0,2.8,1.6,4.4,4.4,4.4h7.9v21.2h-22.6c-9.3,0-12.9-5.1-12.9-11.1 c0-2.6,0.2-4.4,0.2-4.4h-0.4c0,0-7.7,17.8-30.5,17.8c-18,0-34.4-11.3-34.4-31.5C724.8,349.6,768.4,347,784.8,347z M765.4,393.1 c13.5,0,23-14.2,23-26.5v-2.4H784c-13.1,0-33.8,1.8-33.8,15.8C750.1,386.8,755.1,393.1,765.4,393.1z"></path> <path class="st6" d="M844.9,295.6c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.5,4.2,13.5,13.5v101.5c0,2.8,1.6,4.4,4.4,4.4 h7.7v21.2h-23.7c-9.5,0-13.5-4-13.5-13.5V295.6z"></path> <path class="st6" d="M902.5,295.6c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.5,4.2,13.5,13.5v101.5c0,2.8,1.6,4.4,4.4,4.4 h7.7v21.2H916c-9.5,0-13.5-4-13.5-13.5V295.6z"></path> <path class="st6" d="M968.6,430.7c6.9,0,13.1-4.2,16.6-12.9l3.4-7.7L955,334.3c-1.2-3-2.6-3.6-5.3-3.6h-3v-21.4h16.6 c7.1,0,10.7,2.6,13.3,9.5l19.8,50.5c2,5.1,3.6,13.5,3.6,13.5h0.4c0,0,1.6-8.3,3.4-13.5l17.2-50.5c2.4-6.9,6.5-9.5,13.5-9.5h17 v21.4h-3c-3,0-4.6,0.6-5.7,3.6l-36.2,91.2c-7.1,18.2-21.4,26.3-36.4,26.3c-15.8,0-25.5-10.3-25.5-10.3l9.7-17.8 C954.2,423.8,960.3,430.7,968.6,430.7z"></path> <path class="st6" d="M1127.2,372.7c0,0,14.4,16.6,34,16.6c10.7,0,20.2-5.7,20.2-16.6c0-23.9-66.1-22-66.1-65.7 c0-22.8,19.8-39.6,46.9-39.6c16.4,0,41.8,7.7,41.8,27.7v13.1h-23.4v-6.3c0-6.5-9.3-10.9-18.6-10.9c-11.9,0-20.6,6.1-20.6,15 c0,23.9,66.1,19.2,66.1,65.3c0,22.4-17.2,41.4-46.7,41.4c-31.1,0-48.3-21.8-48.3-21.8L1127.2,372.7z"></path> <path class="st6" d="M1232.1,335.1c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.3,4.2,13.3,13.5v61.9c0,2.8,1.6,4.4,4.4,4.4 h7.9v21.2h-23.9c-9.3,0-13.3-4-13.3-13.5V335.1z M1233.2,269.8h21.8V293h-21.8V269.8z"></path> <path class="st6" d="M1290.4,335.1c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.2c8.9,0,13.3,4.2,13.3,11.3v3c0,2.2-0.2,4.4-0.2,4.4h0.4 c4.7-9.9,16.8-21,32.7-21c15.2,0,25.1,7.1,29.5,20.8h0.4c5.3-10.9,18.4-20.8,34.4-20.8c21,0,33.1,11.9,33.1,38.4v39.4 c0,2.8,1.6,4.4,4.4,4.4h7.7v21.2h-23.7c-9.5,0-13.5-4-13.5-13.5v-46.7c0-11.5-2.2-20.2-13.9-20.2c-12.5,0-21.4,10.5-24.1,23.2 c-1.2,4-1.6,8.1-1.6,12.9v44.3H1355v-60.2c0-10.9-1.6-20.2-13.7-20.2c-12.7,0-21.2,10.5-24.3,23.4c-1,4-1.6,8.1-1.6,12.7v44.3 h-24.9V335.1z"></path> <path class="st6" d="M1477.1,335.1c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h22.4c9.3,0,12.7,4.2,12.7,9.7c0,2.4,0,4,0,4h0.4 c0,0,8.5-16,32.1-16c27.3,0,44.9,21.6,44.9,52.8c0,32.1-19.8,52.8-46.3,52.8c-20,0-28.9-13.3-28.9-13.3h-0.4c0,0,0.4,3.6,0.4,8.7 v41.8h-24.9V335.1z M1526.4,391.5c13.9,0,25.5-11.3,25.5-31.3c0-19.2-10.3-31.7-25.1-31.7c-13.1,0-25.3,9.5-25.3,31.9 C1501.4,376.1,1509.7,391.5,1526.4,391.5z"></path> <path class="st6" d="M1597.8,295.6c0-3-1.6-4.4-4.4-4.4h-7.9v-21.4h23.9c9.3,0,13.5,4.2,13.5,13.5v101.5c0,2.8,1.6,4.4,4.4,4.4 h7.7v21.2h-23.7c-9.5,0-13.5-4-13.5-13.5V295.6z"></path> <path class="st6" d="M1697.1,307c28.9,0,44.7,21.2,44.7,47.9c0,3-0.6,9.3-0.6,9.3h-69.7c2,17.8,15,27.1,30.3,27.1 c16.2,0,28.3-11.3,28.3-11.3l10.5,17.4c0,0-15.4,15.2-40.6,15.2c-33.4,0-54.2-24.1-54.2-52.8C1645.9,328.8,1666.9,307,1697.1,307 z M1716.1,346.8c-0.4-12.1-8.7-20.4-19-20.4c-12.9,0-22,7.7-24.7,20.4H1716.1z"></path> <path class="st6" d="M1823.2,372.7c0,0,14.4,16.6,34,16.6c10.7,0,20.2-5.7,20.2-16.6c0-23.9-66.1-22-66.1-65.7 c0-22.8,19.8-39.6,46.9-39.6c16.4,0,41.8,7.7,41.8,27.7v13.1h-23.4v-6.3c0-6.5-9.3-10.9-18.6-10.9c-11.9,0-20.6,6.1-20.6,15 c0,23.9,66.1,19.2,66.1,65.3c0,22.4-17.2,41.4-46.7,41.4c-31.1,0-48.3-21.8-48.3-21.8L1823.2,372.7z"></path> <path class="st6" d="M1931.9,372.7c0,0,14.4,16.6,34,16.6c10.7,0,20.2-5.7,20.2-16.6c0-23.9-66.1-22-66.1-65.7 c0-22.8,19.8-39.6,46.9-39.6c16.4,0,41.8,7.7,41.8,27.7v13.1h-23.4v-6.3c0-6.5-9.3-10.9-18.6-10.9c-11.9,0-20.6,6.1-20.6,15 c0,23.9,66.1,19.2,66.1,65.3c0,22.4-17.2,41.4-46.7,41.4c-31.1,0-48.3-21.8-48.3-21.8L1931.9,372.7z"></path> <path class="st6" d="M2039.1,296.2c0-2.8-1.6-4.4-4.4-4.4h-8.5v-22h25.3c9.5,0,13.5,4.2,13.5,13.5V384c0,2.8,1.6,4.4,4.4,4.4 h30.7c2.8,0,4.4-1.6,4.4-4.4v-8.5h23.6v21.4c0,9.5-4,13.5-13.5,13.5h-61.9c-9.5,0-13.5-4-13.5-13.5V296.2z"></path> </g> </g></g></svg>
assets/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php //You don't belong here. ?>
assets/js/scripts.js DELETED
@@ -1,160 +0,0 @@
1
- jQuery(document).ready(function ($) {
2
- "use strict";
3
-
4
- /**
5
- * Highlight JS
6
- */
7
- var sPageURL = window.location.href;
8
- var queryString = sPageURL.split('?');
9
- if (queryString.length === 1) return false;
10
- var setting_name = '';
11
- var rsssl_variables = queryString[1].split('&');
12
- for (var key in rsssl_variables) {
13
- if (rsssl_variables.hasOwnProperty(key)) {
14
- var output = rsssl_variables[key].split('=');
15
- if (output[0]==='highlight') {
16
- setting_name = output[1];
17
- }
18
- }
19
- }
20
-
21
- if(setting_name !== '' && $('#rsssl-maybe-highlight-' + setting_name).length) {
22
- var tr_element = $('#rsssl-maybe-highlight-' + setting_name).closest('tr');
23
- $([document.documentElement, document.body]).animate({
24
- scrollTop: tr_element.offset().top
25
- }, 1000);
26
- tr_element.addClass('rsssl-highlight');
27
- }
28
-
29
- $(document).on('click','.rsssl-slider',function () {
30
- rssslSaveChangesNotice($(this));
31
- });
32
- $(document).on('click','.rsssl-container .rsssl-grid-item-content input',function () {
33
- rssslSaveChangesNotice($(this));
34
- });
35
- $(document).on('change','.rsssl-container .rsssl-grid-item-content input',function () {
36
- rssslSaveChangesNotice($(this));
37
- });
38
- $(document).on('change','.rsssl-container select',function () {
39
- rssslSaveChangesNotice($(this));
40
- });
41
- $('.rsssl-button-save').prop('disabled', true);
42
-
43
- function rssslSaveChangesNotice(obj){
44
- obj.closest('.rsssl-item').find('.rsssl-save-settings-feedback').fadeIn();
45
- obj.closest('.rsssl-item').find('.rsssl-button-save').prop('disabled', false);
46
- }
47
-
48
- // Color bullet in support forum block
49
- $(".rsssl-support-forums a").hover(function() {
50
- $(this).find('.rsssl-bullet').css("background-color","#FBC43D");
51
- }, function() {
52
- $(this).find('.rsssl-bullet').css("background-color",""); //to remove property set it to ''
53
- });
54
-
55
- $(document).on('click', "#rsssl-remaining-tasks", function (e) {
56
- if ($('#rsssl-all-tasks').is(":checked")) {
57
- $('#rsssl-all-tasks').prop("checked", false);
58
- }
59
- update_task_toggle_option();
60
- });
61
-
62
- $(document).on('click', "#rsssl-all-tasks", function (e) {
63
- if ($('#rsssl-remaining-tasks').is(":checked")) {
64
- $('#rsssl-remaining-tasks').prop("checked", false);
65
- }
66
- update_task_toggle_option();
67
- });
68
-
69
- function update_task_toggle_option() {
70
- var allTasks;
71
- var remainingTasks;
72
- rsssl_update_toggle_style();
73
-
74
- if ($('#rsssl-all-tasks').is(":checked")) {
75
- allTasks = 'checked';
76
- remainingTasks = 'unchecked';
77
- } else {
78
- allTasks = 'unchecked';
79
- remainingTasks = 'checked';
80
- }
81
-
82
- $.ajax({
83
- type: "post",
84
- data: {
85
- 'action': 'rsssl_update_task_toggle_option',
86
- 'token' : rsssl.token,
87
- 'alltasks' : allTasks,
88
- 'remainingtasks' : remainingTasks,
89
- },
90
- url: rsssl.ajaxurl,
91
- success: function () {
92
- location.reload();
93
- }
94
- });
95
- }
96
-
97
- rsssl_update_toggle_style();
98
- function rsssl_update_toggle_style(){
99
- var allTasks = $('#rsssl-all-tasks');
100
- if (allTasks.is(":checked")) {
101
- $(".rsssl-tasks-container.rsssl-all-tasks").addClass('active');
102
- $(".rsssl-tasks-container.rsssl-remaining-tasks").removeClass('active');
103
- } else {
104
- $(".rsssl-tasks-container.rsssl-all-tasks").removeClass('active');
105
- $(".rsssl-tasks-container.rsssl-remaining-tasks").addClass('active');
106
- }
107
- }
108
-
109
-
110
- $(document).on("click", ".rsssl-close-warning, .rsssl-close-warning-x",function (event) {
111
- var type = $(this).closest('.rsssl-dashboard-dismiss').data('dismiss_type');
112
- var row = $(this).closest('tr');
113
- row.animate({
114
- position: 'relative',
115
- right: '1000px'
116
- }, 500, function(){
117
- row.remove();
118
- });
119
- $.ajax({
120
- type: "post",
121
- data: {
122
- 'type' : type,
123
- 'action': 'rsssl_dismiss_settings_notice',
124
- token : rsssl.token,
125
- },
126
- url: rsssl.ajaxurl,
127
- success: function (data) {
128
- if (data.percentage !== '') {
129
- $('.rsssl-progress-percentage').text(data.percentage + "%");
130
- var bar = $(".progress-bar-container .progress .bar");
131
- bar.css("width", data.percentage + '%');
132
- if (parseInt(data.percentage)>=80){
133
- bar.removeClass('orange');
134
- } else {
135
- bar.addClass('orange');
136
- }
137
- }
138
-
139
- if (data.tasks !== '') {
140
- if (data.tasks === rsssl.lowest_possible_task_count) {
141
- $(".rsssl-progress-text").html(rsssl.finished_text);
142
- } else {
143
- var text = '';
144
- if (data.tasks === 0) {
145
- text = rsssl.finished_text;
146
- } else if (data.tasks === 1 ) {
147
- text = rsssl.not_complete_text_singular.replace('%s', data.tasks);
148
- } else {
149
- text = rsssl.not_complete_text_plural.replace('%s', data.tasks);
150
- }
151
- $(".rsssl-progress-text").html(text);
152
- }
153
-
154
- $('.rsssl_remaining_task_count').html(data.tasks);
155
- $(".rsssl-progress-count").html(data.tasks);
156
- }
157
- }
158
- });
159
- });
160
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/scripts.min.js DELETED
@@ -1 +0,0 @@
1
- jQuery(document).ready(function($){"use strict";var sPageURL=window.location.href;var queryString=sPageURL.split("?");if(queryString.length===1)return false;var setting_name="";var rsssl_variables=queryString[1].split("&");for(var key in rsssl_variables){if(rsssl_variables.hasOwnProperty(key)){var output=rsssl_variables[key].split("=");if(output[0]==="highlight"){setting_name=output[1]}}}if(setting_name!==""&&$("#rsssl-maybe-highlight-"+setting_name).length){var tr_element=$("#rsssl-maybe-highlight-"+setting_name).closest("tr");$([document.documentElement,document.body]).animate({scrollTop:tr_element.offset().top},1e3);tr_element.addClass("rsssl-highlight")}$(document).on("click",".rsssl-slider",function(){rssslSaveChangesNotice($(this))});$(document).on("click",".rsssl-container .rsssl-grid-item-content input",function(){rssslSaveChangesNotice($(this))});$(document).on("change",".rsssl-container .rsssl-grid-item-content input",function(){rssslSaveChangesNotice($(this))});$(document).on("change",".rsssl-container select",function(){rssslSaveChangesNotice($(this))});$(".rsssl-button-save").prop("disabled",true);function rssslSaveChangesNotice(obj){obj.closest(".rsssl-item").find(".rsssl-save-settings-feedback").fadeIn();obj.closest(".rsssl-item").find(".rsssl-button-save").prop("disabled",false)}$(".rsssl-support-forums a").hover(function(){$(this).find(".rsssl-bullet").css("background-color","#FBC43D")},function(){$(this).find(".rsssl-bullet").css("background-color","")});$(document).on("click","#rsssl-remaining-tasks",function(e){if($("#rsssl-all-tasks").is(":checked")){$("#rsssl-all-tasks").prop("checked",false)}update_task_toggle_option()});$(document).on("click","#rsssl-all-tasks",function(e){if($("#rsssl-remaining-tasks").is(":checked")){$("#rsssl-remaining-tasks").prop("checked",false)}update_task_toggle_option()});function update_task_toggle_option(){var allTasks;var remainingTasks;rsssl_update_toggle_style();if($("#rsssl-all-tasks").is(":checked")){allTasks="checked";remainingTasks="unchecked"}else{allTasks="unchecked";remainingTasks="checked"}$.ajax({type:"post",data:{action:"rsssl_update_task_toggle_option",token:rsssl.token,alltasks:allTasks,remainingtasks:remainingTasks},url:rsssl.ajaxurl,success:function(){location.reload()}})}rsssl_update_toggle_style();function rsssl_update_toggle_style(){var allTasks=$("#rsssl-all-tasks");if(allTasks.is(":checked")){$(".rsssl-tasks-container.rsssl-all-tasks").addClass("active");$(".rsssl-tasks-container.rsssl-remaining-tasks").removeClass("active")}else{$(".rsssl-tasks-container.rsssl-all-tasks").removeClass("active");$(".rsssl-tasks-container.rsssl-remaining-tasks").addClass("active")}}$(document).on("click",".rsssl-close-warning, .rsssl-close-warning-x",function(event){var type=$(this).closest(".rsssl-dashboard-dismiss").data("dismiss_type");var row=$(this).closest("tr");row.animate({position:"relative",right:"1000px"},500,function(){row.remove()});$.ajax({type:"post",data:{type:type,action:"rsssl_dismiss_settings_notice",token:rsssl.token},url:rsssl.ajaxurl,success:function(data){if(data.percentage!==""){$(".rsssl-progress-percentage").text(data.percentage+"%");var bar=$(".progress-bar-container .progress .bar");bar.css("width",data.percentage+"%");if(parseInt(data.percentage)>=80){bar.removeClass("orange")}else{bar.addClass("orange")}}if(data.tasks!==""){if(data.tasks===rsssl.lowest_possible_task_count){$(".rsssl-progress-text").html(rsssl.finished_text)}else{var text="";if(data.tasks===0){text=rsssl.finished_text}else if(data.tasks===1){text=rsssl.not_complete_text_singular.replace("%s",data.tasks)}else{text=rsssl.not_complete_text_plural.replace("%s",data.tasks)}$(".rsssl-progress-text").html(text)}$(".rsssl_remaining_task_count").html(data.tasks);$(".rsssl-progress-count").html(data.tasks)}}})})});
 
assets/really-simple-plugins.png DELETED
Binary file
assets/really-simple-ssl-logo.png DELETED
Binary file
class-admin.php CHANGED
@@ -1,85 +1,73 @@
1
  <?php
2
- defined('ABSPATH') or die("you do not have access to this page!");
3
 
4
- class rsssl_admin extends rsssl_front_end
5
  {
6
-
7
  private static $_this;
8
- public $wpconfig_siteurl_not_fixed = FALSE;
9
- public $no_server_variable = FALSE;
10
- public $errors = Array();
11
- public $tasks = array();
12
-
13
- public $do_wpconfig_loadbalancer_fix = FALSE;
14
- public $site_has_ssl = FALSE;
15
- public $ssl_enabled = FALSE;
16
-
17
- //multisite variables
18
- public $sites = array(); //for multisite, list of all activated sites.
19
-
20
- //general settings
21
- public $capability = 'manage_security';
22
-
23
- public $htaccess_test_success = FALSE;
24
- public $plugin_version = rsssl_version; //deprecated, but used in pro plugin until 1.0.25
25
-
26
  public $plugin_dir = "really-simple-ssl";
27
  public $plugin_filename = "rlrsssl-really-simple-ssl.php";
28
- public $ABSpath;
29
- public $do_not_edit_htaccess = FALSE;
30
- public $javascript_redirect = FALSE;
31
- public $htaccess_redirect = FALSE;
32
- public $htaccess_warning_shown = FALSE;
33
- public $review_notice_shown = FALSE;
34
- public $dismiss_review_notice = FALSE;
35
- public $ssl_success_message_shown = FALSE;
36
-
37
- public $hsts = FALSE;
38
- public $debug = TRUE;
39
- public $debug_log;
40
-
41
- public $plugin_db_version;
42
  public $ssl_type = "NA";
43
- public $dismiss_all_notices = false;
44
- public $high_contrast = false;
45
  public $pro_url;
 
46
 
47
  function __construct()
48
  {
49
-
50
  if (isset(self::$_this))
51
  wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this)));
52
 
53
  self::$_this = $this;
 
 
54
 
55
- $this->ABSpath = $this->getABSPATH();
56
- $this->get_options();
57
- $this->get_admin_options();
58
-
59
- $this->get_plugin_upgraded(); //call always, otherwise db version will not match anymore.
60
-
61
- if (is_multisite()) {
62
- $this->pro_url = 'https://really-simple-ssl.com/pro-multisite';
63
- } else {
64
- $this->pro_url = 'https://really-simple-ssl.com/pro';
65
- }
66
-
67
- register_deactivation_hook(dirname(__FILE__) . "/" . $this->plugin_filename, array($this, 'deactivate'));
68
  add_action( 'admin_init', array($this, 'add_privacy_info') );
69
  add_action( 'admin_init', array($this, 'maybe_dismiss_review_notice') );
70
- add_action( 'admin_init', array($this, 'insert_secure_cookie_settings'), 70 );
71
- add_action( 'admin_init', array($this, 'recheck_certificate') );
72
- add_action( "update_option_rlrsssl_options", array( $this, "maybe_clear_transients" ), 10, 3 );
73
- add_action( 'wp_ajax_update_ssl_detection_overridden_option', array( $this, 'update_ssl_detection_overridden_option' ) );
 
 
74
 
75
  $plugin = rsssl_plugin;
76
- add_action( "in_plugin_update_message-{$plugin}", array( $this, 'plugin_update_message'), 10, 2 );
77
- add_filter( "auto_update_plugin", array( $this, 'override_auto_updates'), 99, 2 );
78
 
 
 
79
  // Only show deactivate popup when SSL has been enabled.
80
- if ($this->ssl_enabled) {
81
  add_action('admin_footer', array($this, 'deactivate_popup'), 40);
82
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  }
84
 
85
  static function this()
@@ -88,66 +76,27 @@ class rsssl_admin extends rsssl_front_end
88
  }
89
 
90
  /**
91
- * Add a major changes notice to the plugin updates message
92
- * @param $plugin_data
93
- * @param $response
94
  */
95
- public function plugin_update_message($plugin_data, $response){
96
- if ( strpos($response->slug , 'really-simple-ssl') !==false && $response->new_version >= '6.0.0' ) {
97
- echo '<br><b>' . '&nbsp'.sprintf(__("Important: Please %sread about%s Really Simple SSL 6.0 before updating. This is a major release and includes changes and new features that might need your attention.").'</b>','<a target="_blank" href="https://really-simple-ssl.com/upgrade-to-really-simple-ssl-6-0/">','</a>');
98
-
99
- if (is_multisite() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide){
100
- echo '<br><b>' . '&nbsp'.sprintf(__("Important: Really Simple SSL 6.0 drops per site SSL management. Upgrading will upgrade all subsites to SSL. %sRead more%s.").'</b>','<a target="_blank" href="https://really-simple-ssl.com/upgrade-to-multisite-6-0/">','</a>');
101
- }
102
  }
103
- }
104
-
105
- /**
106
- * If this update is to 6, don't auto update
107
- * Deactivated as of 6.0
108
- *
109
- * @param $update
110
- * @param $item
111
- *
112
- * @return false|mixed
113
- */
114
- public function override_auto_updates( $update, $item ) {
115
- if ( strpos($item->slug , 'really-simple-ssl') !==false && version_compare($item->new_version, '6.0.0', '>=') ) {
116
- return false;
117
- }
118
- return $update;
119
- }
120
-
121
- /**
122
- * @param $oldvalue
123
- * @param $newvalue
124
- * @param $option
125
- */
126
- public function maybe_clear_transients($oldvalue, $newvalue, $option){
127
- if ($oldvalue !== $newvalue ) {
128
- $this->clear_transients();
129
  }
130
  }
131
 
132
- /**
133
- * Clear some transients
134
- */
135
-
136
- public function clear_transients(){
137
- delete_transient('rsssl_mixed_content_fixer_detected');
138
- delete_transient('rsssl_plusone_count');
139
- delete_transient('rsssl_remaining_task_count');
140
- delete_transient( 'rsssl_can_use_curl_headers_check' );
141
- delete_transient( 'rsssl_admin_notices' );
142
- }
143
-
144
  /**
145
  * Add some privacy info, telling our users we aren't tracking them
146
  */
147
 
148
  public function add_privacy_info()
149
  {
150
- if (!function_exists('wp_add_privacy_policy_content')) {
151
  return;
152
  }
153
 
@@ -167,54 +116,27 @@ class rsssl_admin extends rsssl_front_end
167
  *
168
  * @return bool
169
  */
 
170
  public function is_bf(){
171
  if ( defined("rsssl_pro_version" ) ) {
172
  return false;
173
  }
174
- $start_day = 22;
175
- $end_day = 29;
176
  $current_year = date("Y");//e.g. 2021
177
  $current_month = date("n");//e.g. 3
178
  $current_day = date("j");//e.g. 4
179
 
180
- if ( $current_year == 2021 && $current_month == 11 &&
181
  $current_day >=$start_day &&
182
  $current_day <= $end_day
183
  ) {
184
  return true;
185
- } else {
186
- return false;
187
  }
188
- }
189
-
190
- /**
191
- * Dismiss review notice of dismissed by the user
192
- */
193
 
194
- public function maybe_dismiss_review_notice() {
195
- if (isset($_GET['rsssl_dismiss_review_notice'])){
196
- $this->review_notice_shown = true;
197
- $this->save_options();
198
- }
199
  }
200
 
201
- /**
202
- * Update SSL detection overridden option
203
- */
204
-
205
- public function update_ssl_detection_overridden_option() {
206
-
207
- if ( ! rsssl_user_can_manage() ) return;
208
-
209
- if ( isset( $_POST['action'] ) && $_POST['action'] === 'update_ssl_detection_overridden_option' ) {
210
- if ( isset ( $_POST['override_ssl_checked'] ) && $_POST['override_ssl_checked'] !== false ) {
211
- update_option('rsssl_ssl_detection_overridden', true);
212
- }
213
-
214
- wp_die();
215
- }
216
- }
217
-
218
  /**
219
  * Initializes the admin class
220
  *
@@ -226,15 +148,12 @@ class rsssl_admin extends rsssl_front_end
226
 
227
  public function init()
228
  {
 
 
 
229
 
230
- if ( ! current_user_can('manage_options') && ! current_user_can('manage_security') ) return;
231
-
232
- $is_on_settings_page = $this->is_settings_page();
233
-
234
- if (defined("RSSSL_FORCE_ACTIVATE") && RSSSL_FORCE_ACTIVATE) {
235
- $options = get_option('rlrsssl_options');
236
- $options['ssl_enabled'] = true;
237
- update_option('rlrsssl_options', $options);
238
  }
239
 
240
  /*
@@ -256,139 +175,65 @@ class rsssl_admin extends rsssl_front_end
256
  $less_than_5_minutes_ago = get_option('rsssl_flush_caches') > strtotime("-5 minute");
257
  if (get_option('rsssl_flush_caches') && $more_than_2_minute_ago && $less_than_5_minutes_ago){
258
  delete_option('rsssl_flush_caches');
259
- add_action('shutdown', array( RSSSL()->rsssl_cache, 'flush' ) );
260
  }
261
 
262
  // Set default progress toggle to remaining tasks if it hasn't been set
263
  if (!get_option('rsssl_all_tasks') && !get_option('rsssl_remaining_tasks') ) {
264
- update_option('rsssl_remaining_tasks', true);
265
  }
266
 
267
  /*
268
- Detect configuration when:
269
- - SSL activation just confirmed.
270
  - on settings page
271
- - No SSL detected
272
  */
273
 
274
- //when configuration should run again
275
- if ($this->clicked_activate_ssl() || !$this->ssl_enabled || !$this->site_has_ssl || $is_on_settings_page || is_network_admin() || defined('RSSSL_DOING_SYSTEM_STATUS') ) {
276
  $this->detect_configuration();
277
- if (is_multisite()) $this->build_domain_list();//has to come after clicked_activate_ssl, otherwise this domain won't get counted.
278
- //flush caches when just activated ssl
279
- //flush the permalinks
280
- if ($this->clicked_activate_ssl()) {
281
- if (!defined('RSSSL_NO_FLUSH') || !RSSSL_NO_FLUSH) {
282
- update_option('rsssl_flush_rewrite_rules', time());
283
- }
284
- update_option('rsssl_flush_caches', time());
285
- }
286
- if (!$this->wpconfig_ok()) {
287
- //if we were to activate ssl, this could result in a redirect loop. So warn first.
288
- add_action("admin_notices", array($this, 'show_notice_wpconfig_needs_fixes'));
289
- if (is_multisite()) add_action('network_admin_notices', array($this, 'show_notice_wpconfig_needs_fixes'), 10);
290
- $this->ssl_enabled = false;
291
- $this->save_options();
292
- } elseif ($this->ssl_enabled) {
293
- add_action('admin_init', array($this, 'configure_ssl'), 20);
294
  }
295
  }
296
-
297
- add_action( 'admin_init', array( $this, 'check_upgrade' ), 10, 2 );
298
-
299
- //when SSL is enabled, and not enabled by user, ask for activation.
300
- add_action("admin_notices", array($this, 'show_notice_activate_ssl'), 10 );
301
- add_action('rsssl_activation_notice', array($this, 'ssl_detected'), 10);
302
- add_action('rsssl_activation_notice_inner', array($this, 'almost_ready_to_migrate'), 30);
303
- add_action('rsssl_activation_notice_footer', array($this, 'show_enable_ssl_button'), 50);
304
-
305
- //add the settings page for the plugin
306
- add_action('admin_enqueue_scripts', array($this, 'enqueue_assets'));
307
-
308
- //settings page, form and settings link in the plugins page
309
- add_filter( "option_page_capability_rlrsssl_options", array( $this, 'capability_check_wrapper') );
310
- add_filter( "option_page_capability_rsssl_network_options", array( $this, 'capability_check_wrapper') );
311
- add_action('admin_menu', array($this, 'add_settings_page'), 40);
312
- add_action('admin_init', array($this, 'create_form'), 40);
313
- add_action('admin_init', array($this, 'listen_for_deactivation'), 40);
314
- add_action( 'update_option_rlrsssl_options', array( $this, 'maybe_remove_highlight_from_url' ), 50 );
315
-
316
- $plugin = rsssl_plugin;
317
- add_filter("plugin_action_links_$plugin", array($this, 'plugin_settings_link'));
318
-
319
- add_action( 'rocket_activation', array($this, 'removeHtaccessEdit' ) );
320
- add_filter( 'before_rocket_htaccess_rules', array($this, 'add_htaccess_redirect_before_wp_rocket' ) );
321
-
322
- //Add update notification to Settings admin menu
323
- add_action('admin_menu', array($this, 'rsssl_edit_admin_menu') );
324
-
325
- //callbacks for the ajax dismiss buttons
326
- add_action('wp_ajax_dismiss_success_message', array($this, 'dismiss_success_message_callback'));
327
- add_action('wp_ajax_rsssl_dismiss_review_notice', array($this, 'dismiss_review_notice_callback'));
328
- add_action('wp_ajax_rsssl_dismiss_settings_notice', array($this, 'dismiss_settings_notice_callback'));
329
- add_action('wp_ajax_rsssl_update_task_toggle_option', array($this, 'update_task_toggle_option'));
330
- add_action('wp_ajax_rsssl_redirect_to_le_wizard', array($this, 'rsssl_redirect_to_le_wizard'));
331
-
332
- //handle notices
333
- add_action('admin_notices', array($this, 'show_notices'));
334
- //show review notice, only to free users
335
- if (!defined("rsssl_pro_version") && (!defined("rsssl_pp_version")) && (!defined("rsssl_soc_version")) && (!class_exists('RSSSL_PRO')) && (!is_multisite())) {
336
- add_action('admin_notices', array($this, 'show_leave_review_notice'));
337
- }
338
  }
339
 
340
  /**
341
- * Return capability for use in option_page_capability_ filter
342
- * @return string
 
 
343
  */
344
- public function capability_check_wrapper() {
345
- return $this->capability;
346
- }
347
-
348
- public function check_upgrade() {
349
- $prev_version = get_option( 'rsssl_current_version', false );
350
- if ( $prev_version && version_compare( $prev_version, '4.0', '<' ) ) {
351
- update_option('rsssl_remaining_tasks', true);
352
- }
353
 
354
- if ( $prev_version && version_compare( $prev_version, '4.0.10', '<=' ) ) {
355
- if (function_exists('is_wpe') && is_wpe()) {
356
- $this->wp_redirect = true;
357
- $this->htaccess_redirect = false;
358
- $this->save_options();
 
 
359
  }
360
  }
361
 
362
- if ( $prev_version && version_compare( $prev_version, '5.1.3', '<=' ) ) {
363
- if ( get_option( 'rsssl_disable_ocsp' ) ) {
364
- $options = get_option( 'rsssl_options_lets-encrypt' );
365
- $options['disable_ocsp'] = true;
366
- update_option( 'rsssl_options_lets-encrypt', $options );
367
- delete_option('rsssl_disable_ocsp');
368
- }
369
- }
370
-
371
- if ( $prev_version && version_compare( $prev_version, '5.3.0', '<=' ) ) {
372
- if ( file_exists($this->htaccess_file() ) && is_writable($this->htaccess_file() ) ) {
373
- $htaccess = file_get_contents( $this->htaccess_file() );
374
-
375
- $pattern_start = "/rlrssslReallySimpleSSL rsssl_version\[.*.]/";
376
- $pattern_end = "/rlrssslReallySimpleSSL/";
377
-
378
- if ( preg_match_all( $pattern_start, $htaccess ) ) {
379
- $htaccess = preg_replace( $pattern_start, "Really Simple SSL Redirect " . rsssl_version, $htaccess );
380
- $htaccess = preg_replace( $pattern_end, "Really Simple SSL Redirect", $htaccess );
381
- file_put_contents( $this->htaccess_file(), $htaccess );
382
- }
383
- }
384
- }
385
-
386
- // Add manage_security capability
387
- if ( $prev_version && version_compare( $prev_version, '5.3.3', '<' ) ) {
388
- rsssl_add_manage_security_capability();
389
- }
390
 
391
- update_option( 'rsssl_current_version', rsssl_version );
 
 
 
 
 
 
 
 
 
 
392
  }
393
 
394
  /**
@@ -399,34 +244,32 @@ class rsssl_admin extends rsssl_front_end
399
 
400
  public function listen_for_deactivation()
401
  {
402
- //check user role
403
- if (! rsssl_user_can_manage() ) return;
 
404
 
405
- //check nonce
406
- if (!isset($_GET['token']) || (!wp_verify_nonce($_GET['token'], 'rsssl_deactivate_plugin'))) return;
 
407
 
408
- //check for action
409
- if (isset($_GET["action"]) && $_GET["action"] == 'uninstall_keep_ssl') {
410
  //deactivate plugin, but don't revert to http.
411
  $plugin = $this->plugin_dir . "/" . $this->plugin_filename;
412
  $plugin = plugin_basename(trim($plugin));
413
 
414
- if (is_multisite()) {
415
  $network_current = get_site_option('active_sitewide_plugins', array());
416
- if (is_plugin_active_for_network($plugin)) {
417
  unset($network_current[$plugin]);
418
  }
419
  update_site_option('active_sitewide_plugins', $network_current);
420
-
421
  //remove plugin one by one on each site
422
  $sites = get_sites();
423
  foreach ($sites as $site) {
424
- RSSSL()->rsssl_multisite->switch_to_blog_bw_compatible($site);
425
-
426
  $current = get_option('active_plugins', array());
427
  $current = $this->remove_plugin_from_array($plugin, $current);
428
  update_option('active_plugins', $current);
429
-
430
  restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
431
  }
432
  } else {
@@ -434,7 +277,8 @@ class rsssl_admin extends rsssl_front_end
434
  $current = $this->remove_plugin_from_array($plugin, $current);
435
  update_option('active_plugins', $current);
436
  }
437
- wp_redirect(admin_url('plugins.php'));
 
438
  exit;
439
  }
440
  }
@@ -454,120 +298,94 @@ class rsssl_admin extends rsssl_front_end
454
  }
455
 
456
  /**
457
- * @Since 3.1
458
- *
459
  * Check if site uses an htaccess.conf file, used in bitnami installations
460
  *
 
461
  */
462
 
463
  public function uses_htaccess_conf() {
464
  $htaccess_conf_file = dirname(ABSPATH) . "/conf/htaccess.conf";
465
  //conf/htaccess.conf can be outside of open basedir, return false if so
466
  $open_basedir = ini_get("open_basedir");
467
-
468
- if (!empty($open_basedir)) return false;
469
-
470
- if (is_file($htaccess_conf_file) ) {
471
- return true;
472
- } else {
473
  return false;
474
  }
475
- }
476
-
477
- public function get_sites_bw_compatible()
478
- {
479
- global $wp_version;
480
- $sites = ($wp_version >= 4.6) ? get_sites() : wp_get_sites();
481
- return $sites;
482
- }
483
-
484
- /**
485
- * The new get_sites function returns an object.
486
- * @param $site
487
- */
488
-
489
- public function switch_to_blog_bw_compatible($site)
490
- {
491
-
492
- global $wp_version;
493
- if ($wp_version >= 4.6) {
494
- switch_to_blog($site->blog_id);
495
- } else {
496
- switch_to_blog($site['blog_id']);
497
- }
498
- }
499
-
500
-
501
- /**
502
- * checks if the user just clicked the "activate SSL" button.
503
- */
504
-
505
- private function clicked_activate_ssl()
506
- {
507
- if ( ! rsssl_user_can_manage() ) return;
508
- if (isset($_POST['rsssl_do_activate_ssl'])) {
509
- $this->activate_ssl();
510
- update_option('rsssl_activation_timestamp', time());
511
-
512
- return true;
513
- }
514
-
515
- return false;
516
  }
517
 
518
  /**
519
  * If the user has clicked "recheck certificate, clear the cache for the certificate check.
 
520
  * @return void
521
  */
522
  public function recheck_certificate(){
523
- if (!rsssl_user_can_manage()) return;
524
-
525
- if (isset($_POST['rsssl_recheck_certificate']) || isset($_GET['rsssl_recheck_certificate'])) {
 
526
  delete_transient('rsssl_certinfo');
527
  }
528
  }
529
 
530
-
531
  /**
532
  * Activate the SSL for this site
533
  */
534
 
535
- public function activate_ssl()
536
  {
537
- $this->ssl_enabled = true;
538
- $this->wp_redirect = true;
539
- $this->set_siteurl_to_ssl();
540
- $this->save_options();
541
- }
 
 
 
 
 
542
 
543
- /**
544
- * Deactivate SSL for this site
545
- */
 
 
546
 
547
- public function deactivate_ssl()
548
- {
549
- //only revert if SSL was enabled first.
550
- if ($this->ssl_enabled) {
551
- $this->ssl_enabled = false;
552
- $this->wp_redirect = false;
553
- $this->htaccess_redirect = false;
554
- $this->remove_ssl_from_siteurl();
555
- $this->save_options();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
556
  }
557
- }
558
 
559
- /**
560
- * redirect to settings page
561
- */
 
562
 
563
- public function redirect_to_settings_page($tab='configuration') {
564
- if (isset($_GET['page']) && $_GET['page'] == 'rlrsssl_really_simple_ssl') return;
565
- $url = add_query_arg( array(
566
- "page" => "rlrsssl_really_simple_ssl",
567
- "tab" => $tab,
568
- ), admin_url( "options-general.php" ) );
569
- wp_redirect( $url );
570
- exit;
571
  }
572
 
573
  /**
@@ -577,6 +395,7 @@ class rsssl_admin extends rsssl_front_end
577
  */
578
  public function wpconfig_ok()
579
  {
 
580
  if (($this->do_wpconfig_loadbalancer_fix || $this->no_server_variable || $this->wpconfig_siteurl_not_fixed) && !$this->wpconfig_is_writable()) {
581
  $result = false;
582
  } else {
@@ -585,95 +404,12 @@ class rsssl_admin extends rsssl_front_end
585
  return apply_filters('rsssl_wpconfig_ok_check', $result);
586
  }
587
 
588
- /**
589
- This message is shown when SSL is not enabled by the user yet
590
- */
591
-
592
- public function show_notice_activate_ssl()
593
- {
594
- //prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
595
- $screen = get_current_screen();
596
- if ( $screen->base === 'post' ) return;
597
-
598
- if ($this->ssl_enabled) return;
599
-
600
- if (defined("RSSSL_DISMISS_ACTIVATE_SSL_NOTICE") && RSSSL_DISMISS_ACTIVATE_SSL_NOTICE) return;
601
-
602
- //for multisite, show only activate when a choice has been made to activate networkwide or per site.
603
- if (is_multisite() && !RSSSL()->rsssl_multisite->selected_networkwide_or_per_site) return;
604
-
605
- //on multisite, only show this message on the network admin. Per site activated sites have to go to the settings page.
606
- //otherwise sites that do not need SSL possibly get to see this message.
607
- if (is_multisite() && !is_network_admin()) return;
608
-
609
- //don't show in our Let's Encrypt wizard
610
- if (isset($_GET['tab']) && $_GET['tab']==='letsencrypt') return;
611
-
612
- if (!$this->wpconfig_ok()) return;
613
-
614
- if (!rsssl_user_can_manage()) return;
615
-
616
- do_action('rsssl_activation_notice');
617
-
618
- }
619
-
620
- /**
621
- * Show a notice that the website is ready to migrate to SSL.
622
- */
623
-
624
- public function ssl_detected()
625
- {
626
- ob_start();
627
- do_action('rsssl_activation_notice_inner');
628
- $content = ob_get_clean();
629
-
630
- ob_start();
631
- do_action('rsssl_activation_notice_footer');
632
- $footer = ob_get_clean();
633
-
634
- $class = apply_filters("rsssl_activation_notice_classes", "updated activate-ssl rsssl-pro-dismiss-notice");
635
- $title = __("Almost ready to migrate to SSL!", "really-simple-ssl");
636
- echo $this->notice_html( $class, $title, $content, $footer);
637
- }
638
-
639
- /**
640
- * Show almost ready to migrate notice
641
- */
642
- public function almost_ready_to_migrate()
643
- {
644
- _e("Before you migrate, please check for: ", 'really-simple-ssl'); ?>
645
- <ul>
646
- <li><?php _e('Http references in your .css and .js files: change any http:// into https://', 'really-simple-ssl'); ?></li>
647
- <li><?php _e('Images, stylesheets or scripts from a domain without an SSL certificate: remove them or move to your own server', 'really-simple-ssl'); ?></li>
648
- <li><?php _e("You may need to login in again.", "really-simple-ssl") ?></li>
649
- <?php
650
- if (RSSSL()->rsssl_certificate->is_valid()) { ?>
651
- <li class="rsssl-success"><?php _e("An SSL certificate has been detected", "really-simple-ssl") ?></li>
652
- <?php } else if ( !function_exists('stream_context_get_params') || RSSSL()->rsssl_certificate->detection_failed() ) { ?>
653
- <li class="rsssl-error">
654
- <?php _e("Could not test certificate.", "really-simple-ssl") ?>&nbsp;<?php _e("Automatic certificate detection is not possible on your server.", "really-simple-ssl") ?>
655
- <?php RSSSL()->rsssl_help->get_help_tip(__("If you’re certain an SSL certificate is present, please check “Override SSL detection” to continue activating SSL.", "really-simple-ssl"), false, true );?>
656
- </li>
657
- <?php } else { ?>
658
- <li class="rsssl-error"><?php _e("No SSL certificate has been detected.", "really-simple-ssl") ?>&nbsp;
659
- <?php printf(__("Please %srefresh detection%s if a certificate has been installed recently.", "really-simple-ssl"), '<a href="'.add_query_arg(array('page'=>'rlrsssl_really_simple_ssl', 'rsssl_recheck_certificate'=>1), admin_url('options-general.php')).'">', '</a>') ?>
660
- <?php RSSSL()->rsssl_help->get_help_tip(__("This detection method is not 100% accurate.", "really-simple-ssl")." ".__("If you’re certain an SSL certificate is present, please check “Override SSL detection” to continue activating SSL.", "really-simple-ssl"), false, true );?>
661
- </li>
662
- <?php } ?>
663
- </ul>
664
- <?php if ( !defined('rsssl_pro_version') ) { ?>
665
- <?php _e('You can also let the automatic scan of the pro version handle this for you, and get premium support, increased security with HSTS and more!', 'really-simple-ssl'); ?>
666
- <a target="_blank" href="<?php echo $this->pro_url; ?>"><?php _e("Check out Really Simple SSL Pro", "really-simple-ssl");?></a>
667
- <?php } ?>
668
- <?php
669
- }
670
-
671
-
672
  /**
673
- * @param string $class
674
- * @param string $title
675
- * @param string $content
676
- * @param string|bool $footer
 
677
  * @return false|string
678
  *
679
  * @since 4.0
@@ -681,288 +417,61 @@ class rsssl_admin extends rsssl_front_end
681
  *
682
  */
683
 
684
- public function notice_html($class, $title, $content, $footer=false) {
685
- $class .= ' notice ';
686
- ob_start();
687
- ?>
688
- <?php if ( is_rtl() ) { ?>
689
  <style>
690
- #rsssl-message .error{
691
- border-right-color:#d7263d;
692
- }
693
- .activate-ssl {
694
- border-right: 4px solid #F8BE2E;
695
- }
696
- .activate-ssl .button {
697
- margin-bottom: 5px;
698
- }
699
-
700
- #rsssl-message .button-primary {
701
- margin-left: 10px;
702
- }
703
-
704
- .rsssl-notice-header {
705
- height: 60px;
706
- border-bottom: 1px solid #dedede;
707
- display: flex;
708
- flex-direction: row;
709
- justify-content: space-between;
710
- align-items: center;
711
- padding-right: 25px;
712
- }
713
- .rsssl-notice-header h1 {
714
- font-weight: bold;
715
- }
716
-
717
- .rsssl-notice-content {
718
- margin-top: 20px;
719
- padding-bottom: 20px;
720
- padding-right: 25px;
721
- }
722
-
723
- .rsssl-notice-footer {
724
- border-top: 1px solid #dedede;
725
- height: 35px;
726
- display: flex;
727
- align-items: center;
728
- padding-top: 10px;
729
- padding-bottom: 10px;
730
- margin-right: 25px;
731
- margin-left: 25px;
732
- }
733
-
734
  #rsssl-message {
735
  padding: 0;
736
- border-right-color: #333;
737
- }
738
-
739
- #rsssl-message .rsssl-notice-li::before {
740
- vertical-align: middle;
741
- margin-left: 25px;
742
- color: lightgrey;
743
- content: "\f345";
744
- font: 400 21px/1 dashicons;
745
- }
746
-
747
- #rsssl-message ul {
748
- list-style: none;
749
- list-style-position: inside;
750
- }
751
- #rsssl-message li {
752
- margin-right:30px;
753
- margin-bottom:10px;
754
- }
755
- #rsssl-message li:before {
756
- background-color: #f8be2e;
757
- color: #fff;
758
- height: 10px;
759
- width: 10px;
760
- border-radius:50%;
761
- content: '';
762
- position: absolute;
763
- margin-top: 5px;
764
- margin-right:-30px;
765
  }
766
- .rsssl-notice-footer input[type="checkbox"] {
767
- margin-top:7px;
768
  }
769
- .rsssl-notice-footer label span {
770
- top:5px;
771
- position:relative;
772
  }
773
- #rsssl-message li.rsssl-error:before {
774
- background-color: #D7263D;
775
  }
776
- #rsssl-message li.rsssl-success:before {
777
- background-color: #61ce70;
778
  }
779
-
780
- .settings_page_rlrsssl_really_simple_ssl #wpcontent #rsssl-message, .settings_page_really-simple-ssl #wpcontent #rsssl-message {
781
  margin: 20px;
782
  }
783
  </style>
784
- <?php } else { ?>
785
- <style>
786
- #rsssl-message .error{
787
- border-left-color:#d7263d;
788
- }
789
- .activate-ssl {
790
- border-left: 4px solid #F8BE2E;
791
- }
792
- .activate-ssl .button {
793
- margin-bottom: 5px;
794
- }
795
-
796
- #rsssl-message .button-primary, #rsssl-message .button-default {
797
- margin-right: 10px;
798
- }
799
-
800
- .rsssl-notice-header {
801
- height: 60px;
802
- border-bottom: 1px solid #dedede;
803
- display: flex;
804
- flex-direction: row;
805
- justify-content: space-between;
806
- align-items: center;
807
- padding-left: 25px;
808
- }
809
- .rsssl-notice-header h1 {
810
- font-weight: bold;
811
- }
812
-
813
- .rsssl-notice-content {
814
- margin-top: 20px;
815
- padding-bottom: 20px;
816
- padding-left: 25px;
817
- }
818
-
819
- .rsssl-notice-footer {
820
- border-top: 1px solid #dedede;
821
- height: 35px;
822
- display: flex;
823
- align-items: center;
824
- padding-top: 10px;
825
- padding-bottom: 10px;
826
- margin-left: 25px;
827
- margin-right: 25px;
828
- }
829
- .rsssl-notice-footer input[type="checkbox"] {
830
- margin-top:7px;
831
- }
832
- .rsssl-notice-footer label span {
833
- top:5px;
834
- position:relative;
835
- }
836
-
837
- #rsssl-message {
838
- padding: 0;
839
- border-left-color: #333;
840
- }
841
-
842
- #rsssl-message .rsssl-notice-li::before {
843
- vertical-align: middle;
844
- margin-right: 25px;
845
- color: lightgrey;
846
- content: "\f345";
847
- font: 400 21px/1 dashicons;
848
- }
849
-
850
- #rsssl-message ul {
851
- list-style: none;
852
- list-style-position: inside;
853
- }
854
- #rsssl-message li {
855
- margin-left:30px;
856
- margin-bottom:10px;
857
- }
858
- #rsssl-message li:before {
859
- background-color: #f8be2e;
860
- color: #fff;
861
- height: 10px;
862
- width: 10px;
863
- border-radius:50%;
864
- content: '';
865
- position: absolute;
866
- margin-top: 5px;
867
- margin-left:-30px;
868
- }
869
- #rsssl-message li.rsssl-error:before {
870
- background-color: #D7263D;
871
- }
872
- #rsssl-message li.rsssl-success:before {
873
- background-color: #61ce70;
874
- }
875
-
876
- .settings_page_rlrsssl_really_simple_ssl #wpcontent #rsssl-message, .settings_page_really-simple-ssl #wpcontent #rsssl-message {
877
- margin: 20px;
878
- }
879
- </style>
880
- <?php } ?>
881
- <div id="rsssl-message" class="<?php echo $class?> really-simple-plugins">
882
- <div class="rsssl-notice">
883
- <?php if (!empty($title)) {?>
884
- <div class="rsssl-notice-header">
885
- <h1><?php echo $title ?></h1>
886
- </div>
887
- <?php }?>
888
- <div class="rsssl-notice-content">
889
- <?php echo $content ?>
890
- </div>
891
- <?php
892
- if ($footer ) { ?>
893
- <div class="rsssl-notice-footer">
894
- <?php echo $footer;?>
895
- </div>
896
- <?php } ?>
897
- </div>
898
- </div>
899
- <?php
900
-
901
- $content = ob_get_clean();
902
- return $content;
903
- }
904
-
905
-
906
- /**
907
- * @since 2.3
908
- * Returns button to enable SSL.
909
- * @access public
910
- */
911
-
912
- public function show_enable_ssl_button()
913
- {
914
- $certificate_valid = RSSSL()->rsssl_certificate->is_valid();
915
- $activate_btn_disabled = !$certificate_valid ? 'disabled' : '';
916
- $test_url = 'https://www.ssllabs.com/ssltest/analyze.html?d='.home_url();
917
-
918
- if ( !$certificate_valid ) {
919
- $ajax_nonce = wp_create_nonce("really-simple-ssl");
920
- ?>
921
- <script type="text/javascript">
922
- jQuery(document).ready(function ($) {
923
- var checked;
924
- $(document).on('click', '#rsssl_override_ssl_detection', function() {
925
- if ( $(this).is(":checked") ) {
926
- $('#rsssl_do_activate_ssl').removeAttr('disabled');
927
- checked = true;
928
- } else {
929
- $('#rsssl_do_activate_ssl').attr('disabled', 'disabled');
930
- checked = false;
931
- }
932
-
933
- // Ajax update option
934
- var data = {
935
- 'action': 'update_ssl_detection_overridden_option',
936
- 'override_ssl_checked' : checked,
937
- 'security': '<?php echo $ajax_nonce; ?>'
938
- };
939
-
940
- $.post(ajaxurl, data, function (response) {});
941
-
942
- });
943
- });
944
- </script>
945
- <?php } ?>
946
-
947
- <form action="" method="post">
948
- <?php wp_nonce_field('rsssl_nonce', 'rsssl_nonce'); ?>
949
- <input <?php echo $activate_btn_disabled?> type="submit" class='button button-primary'
950
- value="<?php _e("Activate SSL", "really-simple-ssl"); ?>" id="rsssl_do_activate_ssl"
951
- name="rsssl_do_activate_ssl">
952
- <?php if (!defined("rsssl_pro_version") ) { ?>
953
- <a class="button button-default" href="<?php echo $this->pro_url ?>" target="_blank"><?php _e("Get ready with PRO!", "really-simple-ssl"); ?></a>
954
- <?php } ?>
955
- <?php if ( !$certificate_valid ){?>
956
- <a href="<?php echo rsssl_letsencrypt_wizard_url()?>" type="submit" class="button button-default"><?php _e("Install SSL certificate", "really-simple-ssl"); ?></a>
957
- <label for="rsssl_override_ssl_detection">
958
- <input type="checkbox" value="1" id="rsssl_override_ssl_detection" name="rsssl_override_ssl_detection">
959
- <span><?php printf(__("Override SSL detection if %smanual check%s clears.", "really-simple-ssl"), '<a target="_blank" href="'.$test_url.'">', '</a>')?></span>
960
- </label>
961
- <?php } ?>
962
- </form>
963
- <?php
964
- }
965
 
 
 
966
 
967
  /**
968
  * @return bool
@@ -975,10 +484,11 @@ class rsssl_admin extends rsssl_front_end
975
  public function wpconfig_is_writable()
976
  {
977
  $wpconfig_path = $this->find_wp_config_path();
978
- if (is_writable($wpconfig_path))
979
- return true;
980
- else
981
- return false;
 
982
  }
983
 
984
  /**
@@ -989,144 +499,14 @@ class rsssl_admin extends rsssl_front_end
989
 
990
  public function check_for_uninstall_file()
991
  {
992
- if (file_exists(dirname(__FILE__) . '/force-deactivate.php')) {
993
  return 'fail';
994
  }
995
  return 'success';
996
  }
997
 
998
  /**
999
- * Get the options for this plugin
1000
- *
1001
- * @since 2.0
1002
- *
1003
- * @access public
1004
- *
1005
- */
1006
-
1007
- public function get_admin_options()
1008
- {
1009
-
1010
- $options = get_option('rlrsssl_options');
1011
-
1012
- if (isset($options)) {
1013
- $this->site_has_ssl = isset($options['site_has_ssl']) ? $options['site_has_ssl'] : FALSE;
1014
- $this->hsts = isset($options['hsts']) ? $options['hsts'] : FALSE;
1015
- $this->htaccess_warning_shown = isset($options['htaccess_warning_shown']) ? $options['htaccess_warning_shown'] : FALSE;
1016
- $this->review_notice_shown = isset($options['review_notice_shown']) ? $options['review_notice_shown'] : FALSE;
1017
- $this->ssl_success_message_shown = isset($options['ssl_success_message_shown']) ? $options['ssl_success_message_shown'] : FALSE;
1018
- $this->plugin_db_version = isset($options['plugin_db_version']) ? $options['plugin_db_version'] : "1.0";
1019
- $this->do_not_edit_htaccess = isset($options['do_not_edit_htaccess']) ? $options['do_not_edit_htaccess'] : FALSE;
1020
- $this->htaccess_redirect = isset($options['htaccess_redirect']) ? $options['htaccess_redirect'] : FALSE;
1021
- $this->switch_mixed_content_fixer_hook = isset($options['switch_mixed_content_fixer_hook']) ? $options['switch_mixed_content_fixer_hook'] : FALSE;
1022
- $this->dismiss_all_notices = isset($options['dismiss_all_notices']) ? $options['dismiss_all_notices'] : FALSE;
1023
- $this->high_contrast = isset($options['high_contrast']) ? $options['high_contrast'] : FALSE;
1024
- $this->debug_log = isset($options['debug_log']) ? $options['debug_log'] : $this->debug_log;
1025
- $this->dismiss_review_notice = isset($options['dismiss_review_notice']) ? $options['dismiss_review_notice'] : $this->dismiss_review_notice;
1026
-
1027
- }
1028
-
1029
- if (is_multisite()) {
1030
- $network_options = get_site_option('rlrsssl_network_options');
1031
- $network_htaccess_redirect = isset($network_options["htaccess_redirect"]) ? $network_options["htaccess_redirect"] : false;
1032
- $network_do_not_edit_htaccess = isset($network_options["do_not_edit_htaccess"]) ? $network_options["do_not_edit_htaccess"] : false;
1033
- /*
1034
- If multiste, and networkwide, only the networkwide setting counts.
1035
- if multisite, and per site, only the networkwide setting counts if it is true.
1036
- */
1037
- $ssl_enabled_networkwide = isset($network_options["ssl_enabled_networkwide"]) ? $network_options["ssl_enabled_networkwide"] : false;
1038
- if ($ssl_enabled_networkwide) {
1039
- $this->htaccess_redirect = $network_htaccess_redirect;
1040
- $this->do_not_edit_htaccess = $network_do_not_edit_htaccess;
1041
- } else {
1042
- if ($network_do_not_edit_htaccess) $this->do_not_edit_htaccess = $network_do_not_edit_htaccess;
1043
- if ($network_htaccess_redirect) $this->htaccess_redirect = $network_htaccess_redirect;
1044
- }
1045
- }
1046
-
1047
- //if the define is true, it overrides the db setting.
1048
- if (defined('RLRSSSL_DO_NOT_EDIT_HTACCESS')) {
1049
- $this->do_not_edit_htaccess = RLRSSSL_DO_NOT_EDIT_HTACCESS;
1050
- }
1051
-
1052
- }
1053
-
1054
- /**
1055
- * Creates an array of all domains where the plugin is active AND SSL is active, only used for multisite.
1056
- *
1057
- * @since 2.1
1058
- *
1059
- * @access public
1060
- *
1061
- */
1062
-
1063
- public function build_domain_list()
1064
- {
1065
- if ( !is_multisite() ) return;
1066
-
1067
- $this->sites = get_transient('rsssl_domain_list');
1068
- if ( !$this->sites ) {
1069
- //create list of all activated sites with SSL
1070
- $this->sites = array();
1071
- $nr_of_sites = RSSSL()->rsssl_multisite->get_total_blog_count();
1072
- if ( $nr_of_sites <= 50 ) {
1073
- $sites = RSSSL()->rsssl_multisite->get_sites_bw_compatible(0, $nr_of_sites);
1074
- foreach ($sites as $site) {
1075
- $this->switch_to_blog_bw_compatible($site);
1076
- $options = get_option('rlrsssl_options');
1077
- $ssl_enabled = FALSE;
1078
- if (isset($options)) {
1079
- $site_has_ssl = isset($options['site_has_ssl']) ? $options['site_has_ssl'] : FALSE;
1080
- $ssl_enabled = isset($options['ssl_enabled']) ? $options['ssl_enabled'] : $site_has_ssl;
1081
- }
1082
-
1083
- if (is_plugin_active(rsssl_plugin) && $ssl_enabled) {
1084
- $this->trace_log("- adding: " . home_url());
1085
- $this->sites[] = home_url();
1086
- }
1087
- restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
1088
- }
1089
- }
1090
-
1091
- set_transient('rsssl_domain_list', $this->sites, HOUR_IN_SECONDS);
1092
- }
1093
- }
1094
-
1095
- /**
1096
- * check if the plugin was upgraded to a new version
1097
- *
1098
- * @since 2.1
1099
- *
1100
- * @access public
1101
- *
1102
- */
1103
-
1104
- public function get_plugin_upgraded()
1105
- {
1106
- if ($this->plugin_db_version != rsssl_version) {
1107
- if ( $this->plugin_db_version !== '1.0' && version_compare( $this->plugin_db_version, '4.0.0', '<' ) ) {
1108
- update_option('rsssl_upgraded_to_four', true);
1109
- }
1110
-
1111
- if ( $this->plugin_db_version !== '1.0' ) {
1112
- $dismiss_options = $this->get_notices_list( array(
1113
- 'dismiss_on_upgrade' => true,
1114
- ) );
1115
- foreach ($dismiss_options as $dismiss_option ) {
1116
- update_option( "rsssl_" . $dismiss_option . "_dismissed" , true);
1117
- }
1118
- delete_transient( 'rsssl_plusone_count' );
1119
- }
1120
-
1121
- $this->plugin_db_version = rsssl_version;
1122
- $this->save_options();
1123
- }
1124
- }
1125
-
1126
- /**
1127
- * Log events during plugin execution
1128
- *
1129
- * @param string $msg
1130
  *
1131
  * @since 2.1
1132
  *
@@ -1134,91 +514,18 @@ class rsssl_admin extends rsssl_front_end
1134
  *
1135
  */
1136
 
1137
- public function trace_log( $msg )
1138
  {
1139
- if (defined('RSSSL_DOING_SYSTEM_STATUS') || (defined('WP_DEBUG') && WP_DEBUG ) )
1140
-
1141
- if ( $this->debug_log !== null ) {
1142
- if ( strpos( $this->debug_log, $msg ) ) {
1143
- return;
1144
- }
1145
  }
1146
- $this->debug_log = $this->debug_log . "\n" . $msg;
1147
- }
1148
-
1149
- /**
1150
- * Configures the site for SSL
1151
- *
1152
- * @since 2.2
1153
- *
1154
- * @access public
1155
- *
1156
- */
1157
-
1158
- public function configure_ssl()
1159
- {
1160
- if (!rsssl_user_can_manage()) return;
1161
- $safe_mode = FALSE;
1162
- if (defined('RSSSL_SAFE_MODE') && RSSSL_SAFE_MODE) $safe_mode = RSSSL_SAFE_MODE;
1163
-
1164
- if (!rsssl_user_can_manage()) return;
1165
- $this->trace_log("<br>" . "<b>" . "SSL Configuration" . "</b>");
1166
- if ($this->site_has_ssl) {
1167
- //when one of the used server variables was found, test if the redirect works
1168
- if (RSSSL()->rsssl_server->uses_htaccess() && $this->ssl_type != "NA") {
1169
- $this->test_htaccess_redirect();
1170
- }
1171
-
1172
- //in a configuration reverse proxy without a set server variable https, add code to wpconfig
1173
- if ($this->do_wpconfig_loadbalancer_fix) {
1174
- $this->wpconfig_loadbalancer_fix();
1175
- }
1176
-
1177
- if ($this->no_server_variable)
1178
- $this->wpconfig_server_variable_fix();
1179
-
1180
- if (!$safe_mode) {
1181
- $this->editHtaccess();
1182
- }
1183
-
1184
- if (!$safe_mode && $this->clicked_activate_ssl()) {
1185
- $this->wp_redirect = TRUE;
1186
- $this->save_options();
1187
- }
1188
-
1189
- if (!$safe_mode && $this->wpconfig_siteurl_not_fixed)
1190
- $this->fix_siteurl_defines_in_wpconfig();
1191
-
1192
- if (!$safe_mode) {
1193
- $this->set_siteurl_to_ssl();
1194
- }
1195
-
1196
- if (!is_multisite()) {
1197
- $this->redirect_to_settings_page();
1198
- }
1199
 
 
 
1200
  }
1201
- }
1202
-
1203
-
1204
- /**
1205
- * Check to see if we are on the settings page, action hook independent
1206
- *
1207
- * @since 2.1
1208
- *
1209
- * @access public
1210
- *
1211
- */
1212
-
1213
- public function is_settings_page()
1214
- {
1215
- if (!isset($_SERVER['QUERY_STRING'])) return false;
1216
 
1217
  parse_str($_SERVER['QUERY_STRING'], $params);
1218
- if (array_key_exists("page", $params) && ($params["page"] == "rlrsssl_really_simple_ssl")) {
1219
- return true;
1220
- }
1221
- return false;
1222
  }
1223
 
1224
  /**
@@ -1227,6 +534,7 @@ class rsssl_admin extends rsssl_front_end
1227
  * @since 2.1
1228
  *
1229
  * @access public
 
1230
  *
1231
  */
1232
 
@@ -1235,7 +543,7 @@ class rsssl_admin extends rsssl_front_end
1235
  //limit nr of iterations to 20
1236
  $i = 0;
1237
  $maxiterations = 20;
1238
- $dir = dirname(__FILE__);
1239
  do {
1240
  $i++;
1241
  if (file_exists($dir . "/wp-config.php")) {
@@ -1252,55 +560,56 @@ class rsssl_admin extends rsssl_front_end
1252
  *
1253
  * @access public
1254
  *
 
1255
  */
1256
 
1257
  public function remove_ssl_from_siteurl_in_wpconfig()
1258
  {
 
 
 
1259
  $wpconfig_path = $this->find_wp_config_path();
1260
  if (!empty($wpconfig_path)) {
1261
  $wpconfig = file_get_contents($wpconfig_path);
1262
-
1263
  $homeurl_pos = strpos($wpconfig, "define('WP_HOME','https://");
1264
  $siteurl_pos = strpos($wpconfig, "define('WP_SITEURL','https://");
1265
 
1266
- if (($homeurl_pos !== false) || ($siteurl_pos !== false)) {
1267
- if (is_writable($wpconfig_path)) {
1268
  $search_array = array("define('WP_HOME','https://", "define('WP_SITEURL','https://");
1269
  $ssl_array = array("define('WP_HOME','http://", "define('WP_SITEURL','http://");
1270
  //now replace these urls
1271
  $wpconfig = str_replace($search_array, $ssl_array, $wpconfig);
1272
  file_put_contents($wpconfig_path, $wpconfig);
1273
- } else {
1274
- $this->errors['wpconfig not writable'] = TRUE;
1275
  }
1276
  }
1277
-
1278
  }
1279
  }
1280
 
1281
 
1282
- /**
1283
- *
1284
- * Checks if the wp config contains any defined siteurl and homeurl
1285
- *
1286
  *
1287
- */
1288
-
1289
  private function check_for_siteurl_in_wpconfig()
1290
  {
 
 
 
1291
 
1292
  $wpconfig_path = $this->find_wp_config_path();
1293
-
1294
- if (empty($wpconfig_path)) return;
 
1295
 
1296
  $wpconfig = file_get_contents($wpconfig_path);
1297
  $homeurl_pattern = '/(define\(\s*\'WP_HOME\'\s*,\s*\'http\:\/\/)/';
1298
  $siteurl_pattern = '/(define\(\s*\'WP_SITEURL\'\s*,\s*\'http\:\/\/)/';
1299
 
1300
- $this->wpconfig_siteurl_not_fixed = FALSE;
1301
  if (preg_match($homeurl_pattern, $wpconfig) || preg_match($siteurl_pattern, $wpconfig)) {
1302
- $this->wpconfig_siteurl_not_fixed = TRUE;
1303
- $this->trace_log("siteurl or home url defines found in wpconfig");
1304
  }
1305
  }
1306
 
@@ -1317,27 +626,27 @@ class rsssl_admin extends rsssl_front_end
1317
 
1318
  private function fix_siteurl_defines_in_wpconfig()
1319
  {
 
 
 
1320
  $wpconfig_path = $this->find_wp_config_path();
1321
-
1322
- if (empty($wpconfig_path)) return;
 
1323
 
1324
  $wpconfig = file_get_contents($wpconfig_path);
1325
  $homeurl_pattern = '/(define\(\s*\'WP_HOME\'\s*,\s*\'http\:\/\/)/';
1326
  $siteurl_pattern = '/(define\(\s*\'WP_SITEURL\'\s*,\s*\'http\:\/\/)/';
1327
 
1328
- if (preg_match($homeurl_pattern, $wpconfig) || preg_match($siteurl_pattern, $wpconfig)) {
1329
- if (is_writable($wpconfig_path)) {
1330
- $this->trace_log("wp config siteurl/homeurl edited.");
1331
  $wpconfig = preg_replace($homeurl_pattern, "define('WP_HOME','https://", $wpconfig);
1332
  $wpconfig = preg_replace($siteurl_pattern, "define('WP_SITEURL','https://", $wpconfig);
1333
  file_put_contents($wpconfig_path, $wpconfig);
1334
  } else {
1335
- $this->trace_log("not able to fix wpconfig siteurl/homeurl.");
1336
  //only when siteurl or homeurl is defined in wpconfig, and wpconfig is not writable is there a possible issue because we cannot edit the defined urls.
1337
  $this->wpconfig_siteurl_not_fixed = TRUE;
1338
  }
1339
- } else {
1340
- $this->trace_log("no siteurl/homeurl defines in wpconfig");
1341
  }
1342
  }
1343
 
@@ -1354,7 +663,9 @@ class rsssl_admin extends rsssl_front_end
1354
  public function wpconfig_has_fixes()
1355
  {
1356
  $wpconfig_path = $this->find_wp_config_path();
1357
- if (empty($wpconfig_path)) return false;
 
 
1358
  $wpconfig = file_get_contents($wpconfig_path);
1359
 
1360
  //only one of two fixes possible.
@@ -1382,50 +693,39 @@ class rsssl_admin extends rsssl_front_end
1382
 
1383
  public function wpconfig_loadbalancer_fix()
1384
  {
1385
- if (!rsssl_user_can_manage()) return;
 
 
1386
 
1387
  $wpconfig_path = $this->find_wp_config_path();
1388
  if (empty($wpconfig_path)) return;
1389
  $wpconfig = file_get_contents($wpconfig_path);
1390
- $this->wpconfig_loadbalancer_fix_failed = FALSE;
1391
- //only if loadbalancer AND NOT SERVER-HTTPS-ON should the following be added. (is_ssl = false)
1392
- if (strpos($wpconfig, "//Begin Really Simple SSL Load balancing fix") === FALSE) {
1393
- if (is_writable($wpconfig_path)) {
1394
- $rule = "\n" . "//Begin Really Simple SSL Load balancing fix" . "\n";
1395
- $rule .= 'if ((isset($_ENV["HTTPS"]) && ("on" == $_ENV["HTTPS"]))' . "\n";
1396
- $rule .= '|| (isset($_SERVER["HTTP_X_FORWARDED_SSL"]) && (strpos($_SERVER["HTTP_X_FORWARDED_SSL"], "1") !== false))' . "\n";
1397
- $rule .= '|| (isset($_SERVER["HTTP_X_FORWARDED_SSL"]) && (strpos($_SERVER["HTTP_X_FORWARDED_SSL"], "on") !== false))' . "\n";
1398
- $rule .= '|| (isset($_SERVER["HTTP_CF_VISITOR"]) && (strpos($_SERVER["HTTP_CF_VISITOR"], "https") !== false))' . "\n";
1399
- $rule .= '|| (isset($_SERVER["HTTP_CLOUDFRONT_FORWARDED_PROTO"]) && (strpos($_SERVER["HTTP_CLOUDFRONT_FORWARDED_PROTO"], "https") !== false))' . "\n";
1400
- $rule .= '|| (isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) && (strpos($_SERVER["HTTP_X_FORWARDED_PROTO"], "https") !== false))' . "\n";
1401
- $rule .= '|| (isset($_SERVER["HTTP_X_PROTO"]) && (strpos($_SERVER["HTTP_X_PROTO"], "SSL") !== false))' . "\n";
1402
- $rule .= ') {' . "\n";
1403
- $rule .= '$_SERVER["HTTPS"] = "on";' . "\n";
1404
- $rule .= '}' . "\n";
1405
- $rule .= "//END Really Simple SSL" . "\n";
1406
-
1407
- $insert_after = "<?php";
1408
- $pos = strpos($wpconfig, $insert_after);
1409
- if ($pos !== false) {
1410
- $wpconfig = substr_replace($wpconfig, $rule, $pos + 1 + strlen($insert_after), 0);
1411
- }
1412
 
1413
- file_put_contents($wpconfig_path, $wpconfig);
1414
- $this->trace_log("wp config loadbalancer fix inserted");
1415
- } else {
1416
- $this->trace_log("wp config loadbalancer fix FAILED");
1417
- $this->wpconfig_loadbalancer_fix_failed = TRUE;
 
 
 
 
 
 
 
 
1418
  }
1419
- } else {
1420
- $this->trace_log("wp config loadbalancer fix already in place, great!");
1421
  }
1422
- $this->save_options();
1423
 
1424
  }
1425
 
1426
-
1427
  /**
1428
- * Getting WordPress to recognize setup as being SSL when no https server variable is available
1429
  *
1430
  * @since 2.1
1431
  *
@@ -1433,168 +733,68 @@ class rsssl_admin extends rsssl_front_end
1433
  *
1434
  */
1435
 
1436
- public function wpconfig_server_variable_fix()
1437
  {
1438
- if (!rsssl_user_can_manage()) return;
 
 
1439
 
1440
  $wpconfig_path = $this->find_wp_config_path();
1441
- if (empty($wpconfig_path)) return;
1442
- $wpconfig = file_get_contents($wpconfig_path);
1443
-
1444
- //check permissions
1445
- if (!is_writable($wpconfig_path)) {
1446
- $this->trace_log("wp-config.php not writable");
1447
  return;
1448
  }
1449
 
1450
- //when more than one blog, first remove what we have
1451
- if (is_multisite() && !RSSSL()->rsssl_multisite->is_multisite_subfolder_install() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide && count($this->sites) > 1) {
1452
- $wpconfig = preg_replace("/\/\/Begin\s?Really\s?Simple\s?SSL.*?\/\/END\s?Really\s?Simple\s?SSL/s", "", $wpconfig);
1453
- $wpconfig = preg_replace("/\n+/", "\n", $wpconfig);
1454
- file_put_contents($wpconfig_path, $wpconfig);
1455
- }
1456
-
1457
- //now create new
1458
-
1459
- //check if the fix is already there
1460
- if (strpos($wpconfig, "//Begin Really Simple SSL Server variable fix") !== FALSE) {
1461
- $this->trace_log("wp config server variable fix already in place, great!");
1462
  return;
1463
  }
1464
 
1465
- $this->trace_log("Adding server variable to wpconfig");
1466
- $rule = $this->get_server_variable_fix_code();
1467
-
1468
- $insert_after = "<?php";
1469
- $pos = strpos($wpconfig, $insert_after);
1470
- if ($pos !== false) {
1471
- $wpconfig = substr_replace($wpconfig, $rule, $pos + 1 + strlen($insert_after), 0);
1472
- }
1473
  file_put_contents($wpconfig_path, $wpconfig);
1474
- $this->trace_log("wp config server variable fix inserted");
1475
-
1476
- $this->save_options();
1477
  }
1478
 
1479
-
1480
  /**
1481
- * @return string
1482
- *
1483
- * Get code for server variable fix
1484
  *
1485
- * @access protected
1486
  *
 
 
1487
  */
1488
 
1489
- protected function get_server_variable_fix_code()
1490
  {
1491
- if (is_multisite() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide && RSSSL()->rsssl_multisite->is_multisite_subfolder_install()) {
1492
- $this->trace_log("per site activation on subfolder install, wp config server variable fix skipped");
1493
- return "";
1494
- }
1495
-
1496
- if (is_multisite() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide && count($this->sites) == 0) {
1497
- $this->trace_log("no sites left with SSL, wp config server variable fix skipped");
1498
- return "";
1499
- }
1500
-
1501
- if ( is_multisite() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide ) {
1502
- $rule = "\n" . "//Begin Really Simple SSL Server variable fix" . "\n";
1503
- foreach ($this->sites as $domain) {
1504
- //remove http or https.
1505
- $this->trace_log("getting server variable rule for:" . $domain);
1506
- $domain = preg_replace("/(http:\/\/|https:\/\/)/", "", $domain);
1507
-
1508
- //we excluded subfolders, so treat as domain
1509
- //check only for domain without www, as the www variant is found as well with the no www search.
1510
- $domain_no_www = str_replace("www.", "", $domain);
1511
-
1512
- $rule .= 'if ( strpos($_SERVER["HTTP_HOST"], "' . $domain_no_www . '")!==FALSE ) {' . "\n";
1513
- $rule .= ' $_SERVER["HTTPS"] = "on";' . "\n";
1514
- $rule .= '}' . "\n";
1515
- }
1516
- $rule .= "//END Really Simple SSL" . "\n";
1517
- } else {
1518
- $rule = "\n" . "//Begin Really Simple SSL Server variable fix" . "\n";
1519
- $rule .= '$_SERVER["HTTPS"] = "on";' . "\n";
1520
- $rule .= "//END Really Simple SSL" . "\n";
1521
  }
1522
 
1523
- return $rule;
 
 
1524
  }
1525
 
1526
  /**
1527
- * Removing changes made to the wpconfig
1528
  *
1529
- * @since 2.1
1530
  *
1531
  * @access public
1532
  *
1533
  */
1534
 
1535
- public function remove_wpconfig_edit()
1536
- {
1537
-
1538
- $wpconfig_path = $this->find_wp_config_path();
1539
- if (empty($wpconfig_path)) return;
1540
- $wpconfig = file_get_contents($wpconfig_path);
1541
-
1542
- //check for permissions
1543
- if (!is_writable($wpconfig_path)) {
1544
- $this->trace_log("could not remove wpconfig edits, wp-config.php not writable");
1545
- $this->errors['wpconfig not writable'] = TRUE;
1546
- return;
1547
- }
1548
-
1549
- //remove edits
1550
- $wpconfig = preg_replace("/\/\/Begin\s?Really\s?Simple\s?SSL.*?\/\/END\s?Really\s?Simple\s?SSL/s", "", $wpconfig);
1551
- $wpconfig = preg_replace("/\n+/", "\n", $wpconfig);
1552
- file_put_contents($wpconfig_path, $wpconfig);
1553
-
1554
- //in multisite environment, with per site activation, re-add
1555
- if (is_multisite() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide) {
1556
- if ($this->do_wpconfig_loadbalancer_fix)
1557
- $this->wpconfig_loadbalancer_fix();
1558
-
1559
- if ($this->no_server_variable)
1560
- $this->wpconfig_server_variable_fix();
1561
- }
1562
-
1563
- }
1564
-
1565
- /**
1566
- * Changes the siteurl and homeurl to https
1567
- *
1568
- * @since 2.0
1569
- *
1570
- * @access public
1571
- *
1572
- */
1573
-
1574
- public function set_siteurl_to_ssl()
1575
- {
1576
- $this->trace_log("converting siteurl and homeurl to https");
1577
-
1578
- $siteurl_ssl = str_replace("http://", "https://", get_option('siteurl'));
1579
- $homeurl_ssl = str_replace("http://", "https://", get_option('home'));
1580
- update_option('siteurl', $siteurl_ssl);
1581
- update_option('home', $homeurl_ssl);
1582
-
1583
- //RSSSL has it's own, more extensive mixed content fixer.
1584
- update_option( 'https_migration_required', false );
1585
- }
1586
-
1587
- /**
1588
- * On de-activation, siteurl and homeurl are reset to http
1589
- *
1590
- * @since 2.0
1591
- *
1592
- * @access public
1593
- *
1594
- */
1595
-
1596
- public function remove_ssl_from_siteurl()
1597
  {
 
 
 
1598
  $siteurl_no_ssl = str_replace("https://", "http://", get_option('siteurl'));
1599
  $homeurl_no_ssl = str_replace("https://", "http://", get_option('home'));
1600
  update_option('siteurl', $siteurl_no_ssl);
@@ -1602,7 +802,7 @@ class rsssl_admin extends rsssl_front_end
1602
  }
1603
 
1604
  /**
1605
- * Save the plugin options
1606
  *
1607
  * @since 2.0
1608
  *
@@ -1610,76 +810,44 @@ class rsssl_admin extends rsssl_front_end
1610
  *
1611
  */
1612
 
1613
- public function save_options()
1614
  {
1615
- //any options added here should also be added to function options_validate()
1616
- $options = array(
1617
- 'site_has_ssl' => $this->site_has_ssl,
1618
- 'hsts' => $this->hsts,
1619
- 'htaccess_warning_shown' => $this->htaccess_warning_shown,
1620
- 'review_notice_shown' => $this->review_notice_shown,
1621
- 'ssl_success_message_shown' => $this->ssl_success_message_shown,
1622
- 'autoreplace_insecure_links' => $this->autoreplace_insecure_links,
1623
- 'plugin_db_version' => $this->plugin_db_version,
1624
- 'do_not_edit_htaccess' => $this->do_not_edit_htaccess,
1625
- 'htaccess_redirect' => $this->htaccess_redirect,
1626
- 'ssl_enabled' => $this->ssl_enabled,
1627
- 'javascript_redirect' => $this->javascript_redirect,
1628
- 'wp_redirect' => $this->wp_redirect,
1629
- 'switch_mixed_content_fixer_hook' => $this->switch_mixed_content_fixer_hook,
1630
- 'dismiss_all_notices' => $this->dismiss_all_notices,
1631
- 'high_contrast' => $this->high_contrast,
1632
- 'dismiss_review_notice' => $this->dismiss_review_notice,
1633
-
1634
- );
1635
-
1636
- update_option('rlrsssl_options', $options);
1637
  }
1638
 
1639
-
1640
- /**
1641
- * Handles deactivation of this plugin
1642
- *
1643
- * @since 2.0
1644
  *
1645
- * @access public
1646
- *
1647
- */
 
 
1648
 
1649
- public function deactivate($networkwide)
1650
- {
1651
- if ( $this->ssl_enabled ) {
1652
- $this->remove_ssl_from_siteurl();
1653
- $this->remove_ssl_from_siteurl_in_wpconfig();
1654
- $this->remove_secure_cookie_settings();
1655
-
1656
- $this->site_has_ssl = FALSE;
1657
- $this->hsts = FALSE;
1658
- $this->htaccess_warning_shown = FALSE;
1659
- $this->review_notice_shown = FALSE;
1660
- $this->ssl_success_message_shown = FALSE;
1661
- $this->autoreplace_insecure_links = TRUE;
1662
- $this->do_not_edit_htaccess = FALSE;
1663
- $this->htaccess_redirect = FALSE;
1664
- $this->javascript_redirect = FALSE;
1665
- $this->wp_redirect = FALSE;
1666
- $this->ssl_enabled = FALSE;
1667
- $this->switch_mixed_content_fixer_hook = FALSE;
1668
- $this->dismiss_all_notices = FALSE;
1669
- $this->high_contrast = FALSE;
1670
- $this->dismiss_review_notice = FALSE;
1671
-
1672
- $this->save_options();
1673
-
1674
- //when on multisite, per site activation, recreate domain list for htaccess and wpconfig rewrite actions
1675
- if (is_multisite()) {
1676
- RSSSL()->rsssl_multisite->deactivate();
1677
- }
1678
- do_action("rsssl_deactivate");
1679
 
1680
- $this->remove_wpconfig_edit();
1681
- $this->removeHtaccessEdit();
1682
- }
 
 
 
 
 
 
 
 
 
1683
  }
1684
 
1685
  /**
@@ -1693,13 +861,22 @@ class rsssl_admin extends rsssl_front_end
1693
 
1694
  public function remove_secure_cookie_settings() {
1695
 
1696
- if ( wp_doing_ajax() || !rsssl_user_can_manage()) return;
 
 
 
 
 
 
1697
 
1698
- if ( !$this->contains_secure_cookie_settings()) return;
 
 
1699
 
1700
  $wpconfig_path = $this->find_wp_config_path();
1701
-
1702
- if ( !is_writable($wpconfig_path) ) return;
 
1703
 
1704
  if (!empty($wpconfig_path)) {
1705
  $wpconfig = file_get_contents($wpconfig_path);
@@ -1709,6 +886,7 @@ class rsssl_admin extends rsssl_front_end
1709
  }
1710
  }
1711
 
 
1712
  /**
1713
  * Checks if we are currently on SSL protocol, but extends standard wp with loadbalancer check.
1714
  *
@@ -1721,8 +899,7 @@ class rsssl_admin extends rsssl_front_end
1721
  public function is_ssl_extended()
1722
  {
1723
  $server_var = FALSE;
1724
-
1725
- if ((isset($_ENV['HTTPS']) && ('on' == $_ENV['HTTPS']))
1726
  || (isset($_SERVER['HTTP_X_FORWARDED_SSL']) && (strpos($_SERVER['HTTP_X_FORWARDED_SSL'], '1') !== false))
1727
  || (isset($_SERVER['HTTP_X_FORWARDED_SSL']) && (strpos($_SERVER['HTTP_X_FORWARDED_SSL'], 'on') !== false))
1728
  || (isset($_SERVER['HTTP_CF_VISITOR']) && (strpos($_SERVER['HTTP_CF_VISITOR'], 'https') !== false))
@@ -1733,11 +910,7 @@ class rsssl_admin extends rsssl_front_end
1733
  $server_var = TRUE;
1734
  }
1735
 
1736
- if (is_ssl() || $server_var) {
1737
- return true;
1738
- } else {
1739
- return false;
1740
- }
1741
  }
1742
 
1743
  /**
@@ -1751,19 +924,17 @@ class rsssl_admin extends rsssl_front_end
1751
 
1752
  public function detect_configuration()
1753
  {
1754
- $this->trace_log("Detecting configuration");
1755
  //if current page is on SSL, we can assume SSL is available, even when an errormsg was returned
1756
- if ($this->is_ssl_extended()) {
1757
- $this->site_has_ssl = TRUE;
1758
  } else {
1759
  //if certificate is valid
1760
- $this->trace_log("Check SSL by retrieving SSL certificate info");
1761
- $this->site_has_ssl = RSSSL()->rsssl_certificate->is_valid();
1762
  }
1763
 
1764
- if ($this->site_has_ssl) {
1765
  $filecontents = $this->get_test_page_contents();
1766
-
1767
  //get filecontents to check .htaccess redirection method and wpconfig fix
1768
  //check the type of SSL, either by parsing the returned string, or by reading the server vars.
1769
  if ((strpos($filecontents, "#CLOUDFRONT#") !== false) || (isset($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO']) && ($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] == 'https'))) {
@@ -1789,10 +960,9 @@ class rsssl_admin extends rsssl_front_end
1789
  } elseif ((strpos($filecontents, "#NO KNOWN SSL CONFIGURATION DETECTED#") !== false)) {
1790
  //if we are here, SSL was detected, but without any known server variables set.
1791
  //So we can use this info to set a server variable ourselves.
1792
- if (!$this->wpconfig_has_fixes()) {
1793
- $this->no_server_variable = TRUE;
1794
  }
1795
- $this->trace_log("No server variable detected ");
1796
  $this->ssl_type = "NA";
1797
  } else {
1798
  //no valid response, so set to NA
@@ -1800,24 +970,22 @@ class rsssl_admin extends rsssl_front_end
1800
  }
1801
 
1802
  //check for is_ssl()
1803
- if ((!$this->is_ssl_extended() &&
1804
  (strpos($filecontents, "#SERVER-HTTPS-ON#") === false) &&
1805
  (strpos($filecontents, "#SERVER-HTTPS-1#") === false) &&
1806
- (strpos($filecontents, "#SERVERPORT443#") === false)) || (!is_ssl() && $this->is_ssl_extended())) {
 
 
1807
  //when is_ssl would return false, we should add some code to wp-config.php
1808
- if (!$this->wpconfig_has_fixes()) {
1809
- $this->trace_log("is_ssl() will return false: wp-config fix needed");
1810
- $this->do_wpconfig_loadbalancer_fix = TRUE;
1811
  }
1812
  }
1813
-
1814
  }
1815
  $this->check_for_siteurl_in_wpconfig();
1816
-
1817
- $this->save_options();
1818
  }
1819
 
1820
-
1821
  /**
1822
  * Test if the htaccess redirect will work
1823
  * This way, no redirect loops should occur.
@@ -1828,17 +996,13 @@ class rsssl_admin extends rsssl_front_end
1828
  *
1829
  */
1830
 
1831
- public function test_htaccess_redirect()
1832
  {
1833
- if (!rsssl_user_can_manage()) return;
1834
-
1835
- $this->htaccess_test_success = get_transient('rsssl_htaccess_test_success');
1836
- if (!$this->htaccess_test_success) {
1837
- $this->trace_log("testing htaccess rules...");
1838
-
1839
  $filecontents = "";
1840
  $testpage_url = trailingslashit($this->test_url()) . "testssl/";
1841
- switch ($this->ssl_type) {
1842
  case "CLOUDFRONT":
1843
  $testpage_url .= "cloudfront";
1844
  break;
@@ -1874,44 +1038,30 @@ class rsssl_admin extends rsssl_front_end
1874
  }
1875
 
1876
  $testpage_url .= ("/ssl-test-page.html");
1877
-
1878
  $response = wp_remote_get($testpage_url);
1879
  if (is_array($response)) {
1880
- $status = wp_remote_retrieve_response_code($response);
1881
  $filecontents = wp_remote_retrieve_body($response);
1882
  }
1883
 
1884
- $this->trace_log("test page url, enter in browser to check manually: " . $testpage_url);
1885
-
1886
- if (!is_wp_error($response) && (strpos($filecontents, "#SSL TEST PAGE#") !== false)) {
1887
- $htaccess_test_success = 'success';
1888
- $this->trace_log("htaccess rules tested successfully.");
1889
  } else {
1890
  //.htaccess rewrite rule seems to be giving problems.
1891
- $htaccess_test_success = 'error';
1892
- if (is_wp_error($response)) {
1893
- $this->trace_log("htaccess rules test failed with error: " . $response->get_error_message());
1894
- } else {
1895
- $this->trace_log("htaccess test rules failed. Set WordPress redirect in settings/SSL");
1896
- }
1897
  }
1898
- if (empty($filecontents)) {
1899
- $htaccess_test_success = 'no-response';
1900
  }
1901
- set_transient('rsssl_htaccess_test_success', $this->htaccess_test_success, 600);
1902
  }
1903
 
1904
-
1905
- if ($htaccess_test_success == 'no-response'){
1906
- $this->htaccess_test_success = FALSE;
1907
- }
1908
- if ($htaccess_test_success == 'success'){
1909
- $this->htaccess_test_success = true;
1910
- }
1911
- if ($htaccess_test_success == 'error'){
1912
- $this->htaccess_test_success = FALSE;
1913
  }
1914
 
 
 
 
1915
  }
1916
 
1917
 
@@ -1940,66 +1090,15 @@ class rsssl_admin extends rsssl_front_end
1940
  }
1941
 
1942
  //for subdomains or domain mapping situations, we have to convert the plugin_url from main site to the subdomain url.
1943
- if (is_multisite() && (!is_main_site(get_current_blog_id())) && (!RSSSL()->rsssl_multisite->is_multisite_subfolder_install())) {
1944
  $mainsiteurl = trailingslashit(str_replace("http://", "https://", network_site_url()));
1945
-
1946
  $home = trailingslashit($https_home_url);
1947
  $plugin_url = str_replace($mainsiteurl, $home, $plugin_url);
1948
-
1949
- //return http link if original url is http.
1950
- //if (strpos(home_url(), "https://")===FALSE) $plugin_url = str_replace("https://","http://",$plugin_url);
1951
  }
1952
 
1953
  return $plugin_url;
1954
  }
1955
 
1956
-
1957
- /**
1958
- * removes the added redirect to https rules to the .htaccess file.
1959
- *
1960
- * @since 2.0
1961
- *
1962
- * @access public
1963
- *
1964
- */
1965
-
1966
- public function removeHtaccessEdit()
1967
- {
1968
- if (file_exists($this->htaccess_file()) && is_writable($this->htaccess_file())) {
1969
- $htaccess = file_get_contents($this->htaccess_file());
1970
-
1971
- //if multisite, per site activation and more than one blog remaining on ssl, remove condition for this site only
1972
- //the domain list has been rebuilt already, so current site is already removed.
1973
- if (is_multisite() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide && count($this->sites) > 0) {
1974
- //remove http or https.
1975
- $domain = preg_replace("/(http:\/\/|https:\/\/)/", "", home_url());
1976
- $pattern = "/#wpmu\srewritecond\s?" . preg_quote($domain, "/") . "\n.*?#end\swpmu\srewritecond\s?" . preg_quote($domain, "/") . "\n/s";
1977
-
1978
- //only remove if the pattern is there at all
1979
- if (preg_match($pattern, $htaccess)) $htaccess = preg_replace($pattern, "", $htaccess);
1980
- //now replace any remaining "or" on the last condition.
1981
- $pattern = "/(\[OR\])(?!.*(\[OR\]|#start).*?RewriteRule)/s";
1982
- $htaccess = preg_replace($pattern, "", $htaccess, 1);
1983
-
1984
- } else {
1985
- // remove everything
1986
- $pattern_old = "/#\s?BEGIN\s?rlrssslReallySimpleSSL.*?#\s?END\s?rlrssslReallySimpleSSL/s";
1987
- $pattern_new = "/#\s?BEGIN\s?Really Simple SSL Redirect.*?#\s?END\s?Really Simple SSL Redirect/s";
1988
- //only remove if the pattern is there at all
1989
- if (preg_match($pattern_old, $htaccess)) $htaccess = preg_replace($pattern_old, "", $htaccess);
1990
- if (preg_match($pattern_new, $htaccess)) $htaccess = preg_replace($pattern_new, "", $htaccess);
1991
- }
1992
-
1993
- $htaccess = preg_replace("/\n+/", "\n", $htaccess);
1994
- file_put_contents($this->htaccess_file(), $htaccess);
1995
- $this->save_options();
1996
- } else {
1997
- $this->errors['HTACCESS_NOT_WRITABLE'] = TRUE;
1998
- $this->trace_log("could not remove rules from htaccess, file not writable");
1999
- }
2000
-
2001
- }
2002
-
2003
  /**
2004
  * @return bool
2005
  *
@@ -2011,13 +1110,13 @@ class rsssl_admin extends rsssl_front_end
2011
 
2012
  public function htaccess_redirect_allowed()
2013
  {
2014
- if (is_multisite() && RSSSL()->rsssl_multisite->is_per_site_activated_multisite_subfolder_install()) {
2015
  return false;
2016
- } if (RSSSL()->rsssl_server->uses_htaccess()) {
2017
  return true;
2018
- } else {
2019
- return false;
2020
  }
 
 
2021
  }
2022
 
2023
  /**
@@ -2037,12 +1136,7 @@ class rsssl_admin extends rsssl_front_end
2037
 
2038
  $pattern = '/RewriteRule \^\(\.\*\)\$ https:\/\/%{HTTP_HOST}(\/\$1|%{REQUEST_URI}) (\[R=301,.*L\]|\[L,.*R=301\])/i';
2039
  $htaccess = file_get_contents($this->htaccess_file());
2040
- if ( preg_match( $pattern, $htaccess ) ) {
2041
- return true;
2042
- } else {
2043
- $this->trace_log(".htaccess does not contain default Really Simple SSL redirect");
2044
- return false;
2045
- }
2046
  }
2047
 
2048
  /**
@@ -2052,20 +1146,20 @@ class rsssl_admin extends rsssl_front_end
2052
 
2053
  public function contains_rsssl_rules()
2054
  {
2055
- if (!file_exists($this->htaccess_file())) {
2056
  return false;
2057
  }
2058
 
2059
  $htaccess = file_get_contents($this->htaccess_file());
2060
-
2061
- preg_match("/BEGIN rlrssslReallySimpleSSL/", $htaccess, $old);
2062
- preg_match("/BEGIN Really Simple SSL Redirect/", $htaccess, $new);
2063
-
2064
- if ( count( $old ) === 0 && count( $new ) === 0 ) {
2065
  return false;
2066
- } else {
2067
- return true;
2068
  }
 
 
2069
  }
2070
 
2071
  /**
@@ -2078,42 +1172,15 @@ class rsssl_admin extends rsssl_front_end
2078
 
2079
  public function has_301_redirect()
2080
  {
2081
- if ($this->wp_redirect) return true;
2082
-
2083
- if (RSSSL()->rsssl_server->uses_htaccess() && $this->htaccess_contains_redirect_rules()) {
2084
  return true;
2085
  }
2086
 
2087
- return false;
2088
- }
2089
-
2090
- /**
2091
- * Checks if the HSTS rule is already in the htaccess file
2092
- * Set the hsts variable in the db accordingly. applies to preload version as well.
2093
- *
2094
- * @since 2.1
2095
- *
2096
- * @access public
2097
- *
2098
- */
2099
-
2100
- public function contains_hsts()
2101
- {
2102
- if (!file_exists($this->htaccess_file())) {
2103
- $this->trace_log(".htaccess not found in " . $this->ABSpath);
2104
- $result = $this->hsts; //just return the setting.
2105
- } else {
2106
- $htaccess = file_get_contents($this->htaccess_file());
2107
-
2108
- preg_match("/Strict-Transport-Security/", $htaccess, $check);
2109
- if (count($check) === 0) {
2110
- $result = false;
2111
- } else {
2112
- $result = true;
2113
- }
2114
  }
2115
 
2116
- return $result;
2117
  }
2118
 
2119
  /**
@@ -2229,7 +1296,7 @@ class rsssl_admin extends rsssl_front_end
2229
  }
2230
 
2231
  if ( $curl_check_done === 'no' ) {
2232
- if (RSSSL()->rsssl_server->uses_htaccess() && file_exists($this->htaccess_file())) {
2233
  $htaccess = file_get_contents($this->htaccess_file());
2234
  foreach ($check_headers as $check_header){
2235
  if ( !preg_match("/".$check_header['pattern']."/", $htaccess, $check) ) {
@@ -2251,200 +1318,95 @@ class rsssl_admin extends rsssl_front_end
2251
  */
2252
 
2253
  public function recommended_headers_enabled() {
2254
-
2255
  $unused_headers = $this->get_recommended_security_headers();
2256
  if ( empty( $unused_headers ) ) {
2257
  return true;
2258
  }
2259
-
2260
- return false;
2261
-
2262
  }
2263
 
2264
- /**
2265
- * Adds redirect to https rules to the .htaccess file or htaccess.conf on Bitnami.
2266
- *
2267
- * @since 2.0
2268
- *
2269
- * @access public
2270
- *
2271
- */
2272
-
2273
- public function editHtaccess()
2274
- {
2275
-
2276
- if (!rsssl_user_can_manage()) return;
2277
-
2278
- $this->trace_log("checking if .htaccess can or should be edited...");
2279
-
2280
- //does it exist?
2281
- if (!file_exists($this->htaccess_file()) ) {
2282
- $this->trace_log(".htaccess not found.");
2283
- return;
2284
- }
2285
-
2286
- //check if editing is blocked.
2287
- if ($this->do_not_edit_htaccess) {
2288
- $this->trace_log("Edit of .htaccess blocked by setting or define 'do not edit htaccess' in Really Simple SSL.");
2289
- return;
2290
- }
2291
-
2292
- if ( !is_writable($this->htaccess_file()) ) {
2293
- //set the wp redirect as fallback, because .htaccess couldn't be edited.
2294
- if ($this->clicked_activate_ssl()) $this->wp_redirect = true;
2295
- if (is_multisite()) {
2296
- RSSSL()->rsssl_multisite->wp_redirect = true;
2297
- RSSSL()->rsssl_multisite->save_options();
2298
- }
2299
- $this->save_options();
2300
- $this->trace_log(".htaccess not writable.");
2301
- return;
2302
- }
2303
-
2304
- $htaccess = file_get_contents($this->htaccess_file());
2305
-
2306
- $pattern_old = "/#\s?BEGIN\s?rlrssslReallySimpleSSL.*?#\s?END\s?rlrssslReallySimpleSSL/s";
2307
- $pattern_new = "/#\s?BEGIN\s?Really Simple SSL Redirect.*?#\s?END\s?Really Simple SSL Redirect/s";
2308
-
2309
- $htaccess = preg_replace($pattern_old, "", $htaccess);
2310
- $htaccess = preg_replace($pattern_new, "", $htaccess);
2311
- $htaccess = preg_replace("/\n+/", "\n", $htaccess);
2312
-
2313
- // If using WP Rocket, .htaccess insertion is handled by before_rocket_htaccess_rules filter
2314
- $rules = '';
2315
- if ( ! function_exists('rocket_clean_domain') ) {
2316
- $rules = $this->get_redirect_rules();
2317
- }
2318
-
2319
- //insert rules before WordPress part.
2320
- $wptag = "# BEGIN WordPress";
2321
- if ( strpos( $htaccess, $wptag ) !== false ) {
2322
- $htaccess = str_replace( $wptag, $rules . $wptag, $htaccess );
2323
- } else {
2324
- $htaccess = $htaccess . $rules;
2325
- }
2326
-
2327
- file_put_contents($this->htaccess_file(), $htaccess);
2328
-
2329
- $this->maybe_flush_wprocket_htaccess();
2330
-
2331
- }
2332
-
2333
  /**
2334
- * Return .htaccess redirect when using WP Rocket
2335
- * @return string
2336
  */
2337
- public function add_htaccess_redirect_before_wp_rocket() {
2338
 
2339
- $this->detect_configuration();
2340
- return $this->get_redirect_rules();
 
 
 
2341
 
2342
- }
 
 
 
 
2343
 
2344
  /**
2345
- * Regenerate the wp rocket .htaccess rules
 
2346
  */
2347
- public function maybe_flush_wprocket_htaccess(){
2348
- if ( wp_doing_ajax()
2349
- || !$this->is_settings_page()
2350
- || !$this->ssl_enabled
2351
- || !current_user_can("activate_plugins")
2352
- || $this->do_not_edit_htaccess
2353
- ) return;
2354
-
2355
- if ( function_exists('flush_rocket_htaccess') ) {
2356
- flush_rocket_htaccess();
2357
- }
2358
-
2359
- if ( function_exists('rocket_generate_config_file') ) {
2360
- rocket_generate_config_file();
2361
- }
2362
-
2363
  }
2364
 
2365
  /**
2366
- *
2367
- * @since 2.2
2368
  * Check if the mixed content fixer is functioning on the front end, by scanning the source of the homepage for the fixer comment.
 
2369
  * @access public
2370
- * @return string $mixed_content_fixer_detected
2371
  */
2372
 
2373
  public function mixed_content_fixer_detected()
2374
  {
2375
- $status = 0;
2376
 
2377
- $mixed_content_fixer_detected = get_transient('rsssl_mixed_content_fixer_detected');
2378
-
2379
- if (!$mixed_content_fixer_detected) {
 
2380
 
 
 
 
 
2381
  $web_source = "";
2382
  //check if the mixed content fixer is active
2383
  $response = wp_remote_get(home_url());
2384
-
2385
- if (!is_wp_error($response)) {
2386
  if ( is_array( $response ) ) {
2387
  $status = wp_remote_retrieve_response_code( $response );
2388
  $web_source = wp_remote_retrieve_body( $response );
2389
  }
2390
 
2391
  if ( $status != 200 ) {
2392
- $mixed_content_fixer_detected = 'no-response';
 
2393
  } elseif ( strpos( $web_source, "data-rsssl=" ) === false ) {
2394
- $mixed_content_fixer_detected = 'not-found';
 
2395
  } else {
2396
- $mixed_content_fixer_detected = 'found';
2397
  }
2398
  }
2399
 
2400
- if (is_wp_error($response)) {
2401
- $mixed_content_fixer_detected = 'error';
 
2402
  $error = $response->get_error_message();
2403
- set_transient('rsssl_curl_error' , $error, 600);
2404
- if (!empty($error) && (strpos($error, "cURL error") !== false) ) {
2405
- $mixed_content_fixer_detected = 'curl-error';
2406
  }
2407
  }
2408
-
2409
- if ($this->autoreplace_insecure_links == ! true) {
2410
- $mixed_content_fixer_detected = 'not-enabled';
2411
- }
2412
-
2413
- set_transient('rsssl_mixed_content_fixer_detected', $mixed_content_fixer_detected, 600);
2414
- }
2415
-
2416
- if ($mixed_content_fixer_detected === 'no-response'){
2417
- //Could not connect to website
2418
- $this->trace_log("Could not connect to webpage to detect mixed content fixer");
2419
- $this->mixed_content_fixer_detected = FALSE;
2420
- }
2421
- if ($mixed_content_fixer_detected === 'not-found'){
2422
- //Mixed content fixer marker not found in the websource
2423
- $this->trace_log("Mixed content marker not found in websource");
2424
- $this->mixed_content_fixer_detected = FALSE;
2425
- }
2426
- if ($mixed_content_fixer_detected === 'error'){
2427
- $this->trace_log("Mixed content marker not found: unknown error");
2428
- //Error encountered while retrieving the webpage. Fallback since most errors should be cURL errors
2429
- $this->mixed_content_fixer_detected = FALSE;
2430
- }
2431
- if ($mixed_content_fixer_detected === 'curl-error'){
2432
- //Site has has a cURL error
2433
- $this->trace_log("Mixed content fixer could not be detected: cURL error");
2434
- $this->mixed_content_fixer_detected = FALSE;
2435
- }
2436
- if ($mixed_content_fixer_detected === 'found'){
2437
- $this->trace_log("Mixed content fixer successfully detected");
2438
- //Mixed content fixer was successfully detected on the front end
2439
- $this->mixed_content_fixer_detected = true;
2440
  }
2441
 
2442
- if ($mixed_content_fixer_detected === 'not-enabled') {
2443
- $this->trace_log("Mixed content fixer not enabled");
2444
- $this->mixed_content_fixer_detected = FALSE;
2445
- }
2446
-
2447
- return $mixed_content_fixer_detected;
2448
  }
2449
 
2450
  /**
@@ -2460,164 +1422,73 @@ class rsssl_admin extends rsssl_front_end
2460
 
2461
  public function get_redirect_rules($manual = false)
2462
  {
2463
- $this->trace_log("retrieving redirect rules");
2464
-
 
 
2465
  //only add the redirect rules when a known type of SSL was detected. Otherwise, we use https.
2466
  $rule = "";
2467
- //if the htaccess test was successfull, and we know the redirectype, edit
2468
- if ($this->htaccess_redirect && ($manual || $this->htaccess_test_success) && $this->ssl_type != "NA") {
2469
- $this->trace_log("starting insertion of .htaccess redirects.");
2470
- $rule .= "<IfModule mod_rewrite.c>" . "\n";
 
 
 
 
2471
  $rule .= "RewriteEngine on" . "\n";
2472
-
2473
- $or = "";
2474
- if ($this->ssl_type == "SERVER-HTTPS-ON") {
2475
  $rule .= "RewriteCond %{HTTPS} !=on [NC]" . "\n";
2476
- } elseif ($this->ssl_type == "SERVER-HTTPS-1") {
2477
  $rule .= "RewriteCond %{HTTPS} !=1" . "\n";
2478
- } elseif ($this->ssl_type == "LOADBALANCER") {
2479
  $rule .= "RewriteCond %{HTTP:X-Forwarded-Proto} !https" . "\n";
2480
- } elseif ($this->ssl_type == "HTTP_X_PROTO") {
2481
  $rule .= "RewriteCond %{HTTP:X-Proto} !SSL" . "\n";
2482
- } elseif ($this->ssl_type == "CLOUDFLARE") {
2483
  $rule .= "RewriteCond %{HTTP:CF-Visitor} '" . '"scheme":"http"' . "'" . "\n";//some concatenation to get the quotes right.
2484
- } elseif ($this->ssl_type == "SERVERPORT443") {
2485
  $rule .= "RewriteCond %{SERVER_PORT} !443" . "\n";
2486
- } elseif ($this->ssl_type == "CLOUDFRONT") {
2487
  $rule .= "RewriteCond %{HTTP:CloudFront-Forwarded-Proto} !https" . "\n";
2488
- } elseif ($this->ssl_type == "HTTP_X_FORWARDED_SSL_ON") {
2489
  $rule .= "RewriteCond %{HTTP:X-Forwarded-SSL} !on" . "\n";
2490
- } elseif ($this->ssl_type == "HTTP_X_FORWARDED_SSL_1") {
2491
  $rule .= "RewriteCond %{HTTP:X-Forwarded-SSL} !=1" . "\n";
2492
- } elseif ($this->ssl_type == "ENVHTTPS") {
2493
  $rule .= "RewriteCond %{ENV:HTTPS} !=on" . "\n";
2494
  }
2495
 
2496
- //if multisite, and NOT subfolder install (checked for in the detect_config function)
2497
- //, add a condition so it only applies to sites where plugin is activated
2498
- if (is_multisite() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide) {
2499
- $this->trace_log("multisite, per site activation");
2500
-
2501
- foreach ($this->sites as $domain) {
2502
- $this->trace_log("adding condition for:" . $domain);
2503
-
2504
- //remove http or https.
2505
- $domain = preg_replace("/(http:\/\/|https:\/\/)/", "", $domain);
2506
- //We excluded subfolders, so treat as domain
2507
-
2508
- $domain_no_www = str_replace("www.", "", $domain);
2509
- $domain_yes_www = "www." . $domain_no_www;
2510
-
2511
- $rule .= "#wpmu rewritecond " . $domain . "\n";
2512
- $rule .= "RewriteCond %{HTTP_HOST} ^" . preg_quote($domain_no_www, "/") . " [OR]" . "\n";
2513
- $rule .= "RewriteCond %{HTTP_HOST} ^" . preg_quote($domain_yes_www, "/") . " [OR]" . "\n";
2514
- $rule .= "#end wpmu rewritecond " . $domain . "\n";
2515
- }
2516
-
2517
- //now remove last [OR] if at least on one site the plugin was activated, so we have at least one condition
2518
- if (count($this->sites) > 0) {
2519
- $rule = strrev(implode("", explode(strrev("[OR]"), strrev($rule), 2)));
2520
- }
2521
- } else {
2522
- $this->trace_log("single site or networkwide activation");
2523
- }
2524
-
2525
  //fastest cache compatibility
2526
- if (class_exists('WpFastestCache')) {
2527
  $rule .= "RewriteCond %{REQUEST_URI} !wp-content\/cache\/(all|wpfc-mobile-cache)" . "\n";
2528
  }
2529
 
2530
  //Exclude .well-known/acme-challenge for Let's Encrypt validation
2531
- if ($this->has_acme_challenge_directory() && !$this->has_well_known_needle()) {
2532
  $rule .= "RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/" . "\n";
2533
  }
2534
 
2535
  $rule .= "RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]" . "\n";
2536
-
2537
- $rule .= "</IfModule>" . "\n";
2538
- }
2539
-
2540
- if (strlen($rule) > 0) {
2541
- $rule = "\n" . "# BEGIN Really Simple SSL Redirect" . " " . rsssl_version . "\n" . $rule . "# END Really Simple SSL Redirect" . "\n";
2542
  }
2543
 
2544
  $rule = apply_filters("rsssl_htaccess_output", $rule);
2545
-
2546
- $rule = preg_replace("/\n+/", "\n", $rule);
2547
- return $rule;
2548
  }
2549
 
2550
  /**
2551
- * Show warning when wpconfig could not be fixed
2552
- *
2553
- * @since 2.2
2554
  *
 
 
 
2555
  * @access public
2556
- *
2557
  */
2558
 
2559
- public function show_notice_wpconfig_needs_fixes()
2560
  {
2561
- //prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
2562
- $screen = get_current_screen();
2563
- if ( $screen->base === 'post' ) return;
2564
-
2565
- ob_start();
2566
- if ($this->wpconfig_siteurl_not_fixed) { ?>
2567
- <p>
2568
- <?php echo __("A definition of a siteurl or homeurl was detected in your wp-config.php, but the file is not writable.", "really-simple-ssl"); ?>
2569
- </p>
2570
- <p><?php echo sprintf(__("Set your wp-config.php to %swritable%s and reload this page.", "really-simple-ssl"), '<a target="_blank" href="https://really-simple-ssl.com/knowledge-base/htaccess-wp-config-files-not-writable/">', '</a>'); ?></p>
2571
- <?php }
2572
- if ($this->do_wpconfig_loadbalancer_fix) { ?>
2573
- <p><?php echo __("Your wp-config.php has to be edited, but is not writable.", "really-simple-ssl"); ?></p>
2574
- <p><?php echo __("Because your site is behind a loadbalancer and is_ssl() returns false, you should add the following line of code to your wp-config.php.", "really-simple-ssl"); ?>
2575
- <br><br><code>
2576
- //Begin Really Simple SSL Load balancing fix<br>
2577
- if ((isset($_ENV["HTTPS"]) && ("on" == $_ENV["HTTPS"]))<br>
2578
- || (isset($_SERVER["HTTP_X_FORWARDED_SSL"]) && (strpos($_SERVER["HTTP_X_FORWARDED_SSL"], "1") !== false))<br>
2579
- || (isset($_SERVER["HTTP_X_FORWARDED_SSL"]) && (strpos($_SERVER["HTTP_X_FORWARDED_SSL"], "on") !== false))<br>
2580
- || (isset($_SERVER["HTTP_CF_VISITOR"]) && (strpos($_SERVER["HTTP_CF_VISITOR"], "https") !== false))<br>
2581
- || (isset($_SERVER["HTTP_CLOUDFRONT_FORWARDED_PROTO"]) && (strpos($_SERVER["HTTP_CLOUDFRONT_FORWARDED_PROTO"], "https") !== false))<br>
2582
- || (isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) && (strpos($_SERVER["HTTP_X_FORWARDED_PROTO"], "https") !== false))<br>
2583
- || (isset($_SERVER["HTTP_X_PROTO"]) && (strpos($_SERVER["HTTP_X_PROTO"], "SSL") !== false))<br>
2584
- ) {<br>
2585
- &nbsp;&nbsp; $_SERVER["HTTPS"] = "on";<br>
2586
- }<br>
2587
- //END Really Simple SSL
2588
- </code><br>
2589
- </p>
2590
- <p><?php echo sprintf(__("Or set your wp-config.php to %swritable%s and reload this page.", "really-simple-ssl"), '<a target="_blank" href="https://really-simple-ssl.com/knowledge-base/htaccess-wp-config-files-not-writable/">', '</a>'); ?></p>
2591
- <?php
2592
- }
2593
-
2594
- if ($this->no_server_variable) {
2595
- ?>
2596
- <p><?php echo __('Because your server does not pass a variable with which WordPress can detect SSL, WordPress may create redirect loops on SSL.', 'really-simple-ssl'); ?></p>
2597
- <p><?php echo sprintf(__("Set your wp-config.php to %swritable%s and reload this page.", "really-simple-ssl"), '<a target="_blank" href="https://really-simple-ssl.com/knowledge-base/htaccess-wp-config-files-not-writable/">', '</a>');?></p>
2598
- <?php
2599
- }
2600
-
2601
- $content = ob_get_clean();
2602
- $class = "error";
2603
- $title = __("System detection encountered issues", "really-simple-ssl");
2604
-
2605
- echo $this->notice_html( $class, $title, $content );
2606
- }
2607
-
2608
-
2609
- /**
2610
- *
2611
- * @return bool
2612
- * since 3.1
2613
- * Check if .well-known/acme-challenge directory exists
2614
- * @access public
2615
- */
2616
-
2617
- public function has_acme_challenge_directory()
2618
- {
2619
- if (file_exists("$this->ABSpath.well-known/acme-challenge")) {
2620
- return true;
2621
  }
2622
  return false;
2623
  }
@@ -2653,67 +1524,78 @@ class rsssl_admin extends rsssl_front_end
2653
 
2654
  public function show_leave_review_notice()
2655
  {
2656
- if ($this->dismiss_all_notices || is_multisite() && rsssl_multisite::this()->dismiss_all_notices) return;
 
 
2657
 
 
 
 
 
 
2658
  //prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
2659
  $screen = get_current_screen();
2660
- if ( $screen->base === 'post' ) return;
 
 
2661
 
2662
  //this user has never had the review notice yet.
2663
- if ($this->ssl_enabled && !get_option('rsssl_activation_timestamp')){
2664
  $month = rand ( 0, 11);
2665
  $trigger_notice_date = time() + $month * MONTH_IN_SECONDS;
2666
- update_option('rsssl_activation_timestamp', $trigger_notice_date);
2667
- update_option('rsssl_before_review_notice_user', true);
2668
  }
2669
 
2670
- if (!$this->review_notice_shown && get_option('rsssl_activation_timestamp') && get_option('rsssl_activation_timestamp') < strtotime("-1 month")) {
 
 
 
 
 
 
 
 
2671
  add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_review'));
2672
  ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2673
  <?php if ( is_rtl() ) { ?>
2674
  <style>
2675
- .rlrsssl-review .rsssl-container {
2676
- display: flex;
2677
- padding:12px;
2678
- }
2679
- .rlrsssl-review .rsssl-container .dashicons {
2680
- margin-left:10px;
2681
- margin-right:5px;
2682
- }
2683
- .rlrsssl-review .rsssl-review-image img{
2684
- margin-top:0.5em;
2685
- }
2686
- .rlrsssl-review .rsssl-buttons-row {
2687
- margin-top:10px;
2688
- display: flex;
2689
- align-items: center;
2690
- }
2691
- </style>
2692
- <?php } else { ?>
2693
- <style>
2694
- .rlrsssl-review .rsssl-container {
2695
- display: flex;
2696
- padding:12px;
2697
- }
2698
- .rlrsssl-review .rsssl-container .dashicons {
2699
- margin-right:10px;
2700
  margin-left:5px;
 
2701
  }
2702
- .rlrsssl-review .rsssl-review-image img{
2703
- margin-top:0.5em;
2704
- }
2705
- .rlrsssl-review .rsssl-buttons-row {
2706
- margin-top:10px;
2707
- display: flex;
2708
- align-items: center;
2709
  }
2710
  </style>
2711
- <?php } ?>
2712
- <div id="message" class="updated fade notice is-dismissible rlrsssl-review really-simple-plugins" style="border-left:4px solid #333">
2713
  <div class="rsssl-container">
2714
- <div class="rsssl-review-image"><img width=80px" src="<?php echo rsssl_url?>/assets/icon-128x128.png" alt="review-logo"></div>
2715
  <div style="margin-left:30px">
2716
- <?php if (get_option("rsssl_before_review_notice_user")){?>
2717
  <p><?php printf(__('Hi, Really Simple SSL has kept your site secure for some time now, awesome! If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %smessage%s.', 'really-simple-ssl'),'<a href="https://really-simple-ssl.com/contact" target="_blank">','</a>'); ?></p>
2718
  <?php } else {?>
2719
  <p><?php printf(__('Hi, Really Simple SSL has kept your site secure for a month now, awesome! If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %smessage%s.', 'really-simple-ssl'),'<a href="https://really-simple-ssl.com/contact" target="_blank">','</a>'); ?></p>
@@ -2723,8 +1605,8 @@ class rsssl_admin extends rsssl_front_end
2723
  <div class="rsssl-buttons-row">
2724
  <a class="button button-primary" target="_blank"
2725
  href="https://wordpress.org/support/plugin/really-simple-ssl/reviews/#new-post"><?php _e('Leave a review', 'really-simple-ssl'); ?></a>
2726
- <div class="dashicons dashicons-calendar"></div><a href="#" id="maybe-later"><?php _e('Maybe later', 'really-simple-ssl'); ?></a>
2727
- <div class="dashicons dashicons-no-alt"></div><a href="<?php echo esc_url(add_query_arg(array("page"=>"rlrsssl_really_simple_ssl", "tab"=>"configuration", "rsssl_dismiss_review_notice"=>1),admin_url("options-general.php") ) );?>"><?php _e('Don\'t show again', 'really-simple-ssl'); ?></a>
2728
  </div>
2729
  </div>
2730
  </div>
@@ -2733,6 +1615,40 @@ class rsssl_admin extends rsssl_front_end
2733
  }
2734
  }
2735
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2736
  /**
2737
  * Show notices
2738
  *
@@ -2744,269 +1660,90 @@ class rsssl_admin extends rsssl_front_end
2744
 
2745
  public function show_notices()
2746
  {
 
 
 
2747
  //prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
2748
  $screen = get_current_screen();
2749
- if ( $screen->base === 'post' ) return;
2750
 
2751
  //don't show admin notices on our own settings page: we have the warnings there
2752
  if ( $this->is_settings_page() ) return;
2753
-
2754
  $notices = $this->get_notices_list( array('admin_notices'=>true) );
2755
  foreach ( $notices as $id => $notice ){
2756
  $notice = $notice['output'];
2757
  $class = ( $notice['status'] !== 'completed' ) ? 'error' : 'updated';
2758
- $footer = isset($notice['url']) ? '<a class="button" target="_blank" href="' . esc_url_raw($notice['url']) . '">'.__("More info", "really-simple-ssl").'</a>' : '';
2759
- echo $this->notice_html( $class.' '.$id, $notice['title'], $notice['msg'], $footer);
 
2760
  }
2761
  }
2762
 
2763
- /**
2764
- * Insert some ajax script to dismiss the review notice, and stop nagging about it
2765
- *
2766
- * @since 3.0
2767
- *
2768
- * @access public
2769
- *
2770
- * type: dismiss, later
2771
- *
2772
- */
2773
-
2774
- public function insert_dismiss_review()
2775
- {
2776
- $ajax_nonce = wp_create_nonce("really-simple-ssl");
2777
- ?>
2778
- <script type='text/javascript'>
2779
- jQuery(document).ready(function ($) {
2780
- $(".rlrsssl-review.notice.is-dismissible").on("click", ".notice-dismiss", function (event) {
2781
- rsssl_dismiss_review('dismiss');
2782
- });
2783
- $(".rlrsssl-review.notice.is-dismissible").on("click", "#maybe-later", function (event) {
2784
- rsssl_dismiss_review('later');
2785
- $(this).closest('.rlrsssl-review').remove();
2786
- });
2787
- $(".rlrsssl-review.notice.is-dismissible").on("click", ".review-dismiss", function (event) {
2788
- rsssl_dismiss_review('dismiss');
2789
- $(this).closest('.rlrsssl-review').remove();
2790
- });
2791
-
2792
- function rsssl_dismiss_review(type){
2793
- var data = {
2794
- 'action': 'rsssl_dismiss_review_notice',
2795
- 'type' : type,
2796
- 'security': '<?php echo $ajax_nonce; ?>'
2797
- };
2798
- $.post(ajaxurl, data, function (response) {});
2799
- }
2800
- });
2801
- </script>
2802
- <?php
2803
- }
2804
-
2805
-
2806
- /**
2807
- * Process the ajax dismissal of the success message.
2808
- *
2809
- * @since 2.0
2810
- *
2811
- * @access public
2812
- *
2813
- */
2814
 
2815
- public function dismiss_success_message_callback()
2816
- {
2817
- if (!rsssl_user_can_manage() ) return;
2818
- $this->ssl_success_message_shown = TRUE;
2819
- $this->save_options();
2820
- wp_die();
2821
- }
2822
 
2823
  /**
2824
- * Process the ajax dismissal of settings notice
2825
- *
2826
- * Since 3.1
2827
  *
2828
- * @access public
2829
  *
 
 
 
2830
  */
2831
 
2832
- public function dismiss_settings_notice_callback()
2833
  {
2834
- if (!rsssl_user_can_manage() ) return;
2835
-
2836
- if (!isset($_POST['token']) || (!wp_verify_nonce($_POST['token'], 'rsssl_nonce'))) {
2837
- return;
2838
- }
2839
-
2840
- if (isset($_POST['type'])) {
2841
- $dismiss_type = sanitize_title( $_POST['type'] );
2842
- update_option( "rsssl_".$dismiss_type."_dismissed", true );
2843
- delete_transient( 'rsssl_plusone_count' );
2844
  }
2845
 
2846
- // count should be updated, therefore clear cache
2847
- $this->clear_transients();
2848
-
2849
- $data = array(
2850
- 'tasks' => $this->get_remaining_tasks_count(),
2851
- 'percentage' => $this->get_score_percentage(),
2852
- );
2853
- $response = json_encode( $data );
2854
- header( "Content-Type: application/json" );
2855
- echo $response;
2856
- exit;
2857
- }
2858
-
2859
- /**
2860
- * Process the ajax dismissal of the htaccess message.
2861
- *
2862
- * @since 2.1
2863
- *
2864
- * @access public
2865
- *
2866
- */
2867
-
2868
- public function dismiss_review_notice_callback()
2869
- {
2870
- $type = isset($_POST['type']) ? $_POST['type'] : false;
2871
-
2872
- if ($type === 'dismiss'){
2873
- $this->review_notice_shown = TRUE;
2874
- }
2875
- if ($type === 'later') {
2876
- //Reset activation timestamp, notice will show again in one month.
2877
- update_option('rsssl_activation_timestamp', time());
2878
  }
2879
 
2880
- $this->save_options();
2881
- wp_die(); // this is required to terminate immediately and return a proper response
2882
- }
2883
-
2884
- /**
2885
- * Adds the admin options page
2886
- *
2887
- * @since 2.0
2888
- *
2889
- * @access public
2890
- *
2891
- */
2892
-
2893
- public function add_settings_page()
2894
- {
2895
- if ( ! rsssl_user_can_manage() ) return;
2896
-
2897
- //hides the settings page if the hide menu for subsites setting is enabled
2898
- if (is_multisite() && rsssl_multisite::this()->hide_menu_for_subsites && !is_super_admin()) return;
2899
-
2900
- global $rsssl_admin_page;
2901
-
2902
  $count = $this->count_plusones();
2903
- if ($count > 0 ) {
2904
- $update_count = "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>";
2905
- } else {
2906
- $update_count = "";
 
 
 
 
 
 
 
 
2907
  }
2908
 
2909
- $rsssl_admin_page = add_options_page(
2910
- __("SSL settings", "really-simple-ssl"), //link title
2911
- __("SSL", "really-simple-ssl") . $update_count, //page title
2912
- $this->capability, //capability
2913
- 'rlrsssl_really_simple_ssl', //url
2914
- array($this, 'settings_page')); //function
2915
-
2916
  }
2917
 
2918
- /**
2919
- *
2920
- * @since 3.1.6
2921
- *
2922
- * Add an update count to the WordPress admin Settings menu item
2923
- * Doesn't work when the Admin Menu Editor plugin is active
2924
  *
2925
- */
2926
-
2927
- public function rsssl_edit_admin_menu()
2928
- {
2929
- if (!rsssl_user_can_manage()) return;
2930
- global $menu;
2931
- $count = $this->count_plusones();
2932
- $menu_slug = 'options-general.php';
2933
- $menu_title = __('Settings');
2934
- foreach($menu as $index => $menu_item){
2935
- if (!isset($menu_item[2]) || !isset($menu_item[0])) continue;
2936
- if ($menu_item[2]===$menu_slug){
2937
- $pattern = '/<span.*>([1-9])<\/span><\/span>/i';
2938
- if (preg_match($pattern, $menu_item[0], $matches)){
2939
- if (isset($matches[1])) $count = intval($count) + intval($matches[1]);
2940
- }
2941
-
2942
- $update_count = $count > 0 ? "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>":'';
2943
- $menu[$index][0] = $menu_title . $update_count;
2944
- }
2945
- }
2946
  }
2947
 
2948
  /**
2949
- * Create tabs on the settings page
2950
- *
2951
- * @since 2.1
2952
- *
2953
- * @access public
2954
  *
2955
- */
2956
-
2957
- public function admin_tabs($current = 'configuration')
2958
- {
2959
- $tabs = array(
2960
- 'configuration' => '',
2961
- );
2962
- $tabs = apply_filters("rsssl_grid_tabs", $tabs);
2963
-
2964
- //allow the license tab to show up for older version, to allow for upgrading
2965
- $legacy_tabs = apply_filters("rsssl_tabs", array());
2966
- if (isset($legacy_tabs['license'])) $tabs['license']= $legacy_tabs['license'];
2967
-
2968
- // Only show general tab if there are other tabs as well
2969
- if (count($tabs) > 1) {
2970
- $tabs['configuration'] = __("General", "really-simple-ssl");
2971
- }
2972
-
2973
- $high_contrast = $this->high_contrast ? 'rsssl-high-contrast' : ''; ?>
2974
- <div class="nav-tab-wrapper <?php echo $high_contrast ?>">
2975
- <div class="rsssl-logo-container">
2976
- <div id="rsssl-logo"><img src="<?php echo rsssl_url?>/assets/really-simple-ssl-logo.png" alt="review-logo"></div>
2977
- </div>
2978
- <?php
2979
- if (count($tabs)>1) {
2980
- foreach ( $tabs as $tab => $name ) {
2981
- $class = ( $tab == $current ) ? ' nav-tab-active' : '';
2982
- echo "<a class='nav-tab$class' href='?page=rlrsssl_really_simple_ssl&tab=$tab'>$name</a>";
2983
- }
2984
- }
2985
- ?>
2986
- <div class="header-links">
2987
- <div class="documentation">
2988
- <a href="https://really-simple-ssl.com/knowledge-base" class="<?php if (defined('rsssl_pro_version')) echo "button button-primary"?>" target="_blank"><?php _e("Documentation", "really-simple-ssl");?></a>
2989
- </div>
2990
- <div class="header-upsell">
2991
- <?php if (defined('rsssl_pro_version')) { ?>
2992
- <?php } else { ?>
2993
- <div class="documentation">
2994
- <a href="https://wordpress.org/support/plugin/really-simple-ssl/" class="button button-primary" target="_blank"><?php _e("Support", "really-simple-ssl") ?></a>
2995
- </div>
2996
- <?php } ?>
2997
- </div>
2998
- </div>
2999
- </div>
3000
- <?php
3001
  }
3002
 
3003
- /**
3004
- * Check if user has upgraded to four from a previous version
 
 
3005
  * @return bool
3006
  */
3007
-
3008
- public function upgraded_to_four(){
3009
- return get_option( 'rsssl_upgraded_to_four' ) ? true : false;
3010
  }
3011
 
3012
  /**
@@ -3019,6 +1756,17 @@ class rsssl_admin extends rsssl_front_end
3019
 
3020
  public function get_notices_list( $args = array() )
3021
  {
 
 
 
 
 
 
 
 
 
 
 
3022
  $defaults = array(
3023
  'admin_notices' => false,
3024
  'premium_only' => false,
@@ -3026,21 +1774,28 @@ class rsssl_admin extends rsssl_front_end
3026
  'status' => 'open', //status can be "all" (all tasks, regardless of dismissed or open), "open" (not success/completed) or "completed"
3027
  );
3028
  $args = wp_parse_args($args, $defaults);
3029
-
3030
  $cache_admin_notices = !$this->is_settings_page() && $args['admin_notices'];
3031
 
3032
- //if we're on the settings page, we need to clear the admin notices transient, because this list never gets requested on the settings page, and won'd get cleared otherwise
3033
- if ($this->clicked_activate_ssl() || $this->is_settings_page() || isset($_GET['ssl_reload_https']) ) {
3034
- delete_transient('rsssl_admin_notices');
 
 
 
3035
  }
 
3036
  if ( $cache_admin_notices) {
3037
  $cached_notices = get_transient('rsssl_admin_notices');
3038
- if ( $cached_notices ) return $cached_notices;
 
 
 
 
 
3039
  }
3040
 
3041
- $htaccess_file = $this->uses_htaccess_conf() ? "htaccess.conf (/conf/htaccess.conf/)" : $htaccess_file = ".htaccess";
3042
- if ( $this->ssl_type != "NA" ) {
3043
- $rules = $this->get_redirect_rules( true );
3044
  $arr_search = array( "<", ">", "\n" );
3045
  $arr_replace = array( "&lt", "&gt", "<br>" );
3046
  $rules = str_replace( $arr_search, $arr_replace, $rules );
@@ -3055,7 +1810,6 @@ class rsssl_admin extends rsssl_front_end
3055
  'callback' => false,
3056
  );
3057
 
3058
-
3059
  $curl_error = get_transient('rsssl_curl_error');
3060
  $current_plugin_folder = $this->get_current_rsssl_free_dirname();
3061
 
@@ -3063,33 +1817,69 @@ class rsssl_admin extends rsssl_front_end
3063
  $certinfo = get_transient('rsssl_certinfo');
3064
  $end_date = isset($certinfo['validTo_time_t']) ? $certinfo['validTo_time_t'] : false;
3065
  $expiry_date = !empty($end_date) ? date( get_option('date_format'), $end_date ) : __("(Unknown)", "really-simple-ssl");
3066
- $test_url = 'https://www.ssllabs.com/ssltest/analyze.html?d='.home_url();
3067
 
3068
  $notices = array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3069
  'deactivation_file_detected' => array(
3070
- 'callback' => 'RSSSL()->really_simple_ssl->check_for_uninstall_file',
3071
  'score' => 30,
3072
  'output' => array(
3073
- 'fail' => array(
3074
- 'title' => __("Major security issue!", "really-simple-ssl"),
3075
  'msg' => __("The 'force-deactivate.php' file has to be renamed to .txt. Otherwise your ssl can be deactivated by anyone on the internet.", "really-simple-ssl") .' '.
3076
- '<a href="'.add_query_arg(array('page'=>'rlrsssl_really_simple_ssl'), admin_url('options-general.php')).'">'.__("Check again", "really-simple-ssl").'</a>',
3077
  'icon' => 'warning',
3078
  'admin_notice' => true,
3079
  'plusone' => true,
 
3080
  ),
3081
  ),
3082
  ),
3083
 
3084
  'non_default_plugin_folder' => array(
3085
- 'callback' => 'RSSSL()->really_simple_ssl->uses_default_folder_name',
3086
  'score' => 30,
3087
  'output' => array(
3088
  'false' => array(
3089
  'msg' => sprintf(__("The Really Simple SSL plugin folder in the /wp-content/plugins/ directory has been renamed to %s. This might cause issues when deactivating, or with premium add-ons. To fix this you can rename the Really Simple SSL folder back to the default %s.", "really-simple-ssl"),"<b>" . $current_plugin_folder . "</b>" , "<b>really-simple-ssl</b>"),
3090
  'url' => 'https://really-simple-ssl.com/knowledge-base/why-you-should-use-the-default-plugin-folder-name-for-really-simple-ssl/',
3091
  'icon' => 'warning',
3092
- 'admin_notice' => false,
3093
  ),
3094
  ),
3095
  ),
@@ -3116,8 +1906,8 @@ class rsssl_admin extends rsssl_front_end
3116
  'score' => 5,
3117
  'output' => array(
3118
  'true' => array(
3119
- 'url' => 'https://really-simple-ssl.com/pro/',
3120
- 'msg' => __( "Really Simple SSL pro is not up to date. Update Really Simple SSL pro to ensure compatibility.", "really-simple-ssl"),
3121
  'icon' => 'open',
3122
  'dismissible' => false,
3123
  'plusone' => true,
@@ -3141,34 +1931,23 @@ class rsssl_admin extends rsssl_front_end
3141
  ),
3142
  ),
3143
 
3144
- 'upgraded_to_four' => array(
3145
- 'callback' => 'RSSSL()->really_simple_ssl->upgraded_to_four',
3146
- 'score' => 5,
3147
- 'output' => array(
3148
- 'true' => array(
3149
- 'url' => __('https://really-simple-ssl.com/really-simple-ssl-4-a-new-dashboard'),
3150
- 'msg' => __("Really Simple SSL 4.0. Learn more about our newest major release.", "really-simple-ssl"),
3151
- 'icon' => 'open',
3152
- 'dismissible' => true,
3153
- 'plusone' => true,
3154
- ),
3155
- ),
3156
- ),
3157
-
3158
  'ssl_enabled' => array(
3159
  'callback' => 'rsssl_ssl_enabled',
3160
  'score' => 30,
3161
  'output' => array(
3162
  'true' => array(
3163
  'msg' =>__('SSL is enabled on your site.', 'really-simple-ssl'),
3164
- 'icon' => 'success'
3165
  ),
3166
  'false' => array(
3167
  'msg' => __('SSL is not enabled yet.', 'really-simple-ssl'),
 
3168
  'icon' => 'warning',
3169
  'plusone' => true,
3170
  ),
3171
  ),
 
 
3172
  ),
3173
 
3174
  'ssl_detected' => array(
@@ -3184,19 +1963,17 @@ class rsssl_admin extends rsssl_front_end
3184
  'no-ssl-detected' => array(
3185
  'title' => __("No SSL detected", "really-simple-ssl"),
3186
  'msg' => __("No SSL detected. Use the retry button to check again.", "really-simple-ssl").
3187
- '<br><br><form action="" method="POST"><a href="'.add_query_arg(array("page" => "rlrsssl_really_simple_ssl", "tab" => "letsencrypt"),admin_url("options-general.php")) .'" type="submit" class="button button-default">'.__("Install SSL certificate", "really-simple-ssl").'</a>'.
3188
- '&nbsp;<input type="submit" class="button button-default" value="'.__("Retry", "really-simple-ssl").'" id="rsssl_recheck_certificate" name="rsssl_recheck_certificate"></form>',
3189
  'icon' => 'warning',
3190
- 'admin_notice' => false,
3191
- 'dismissible' => $this->ssl_enabled
3192
  ),
3193
  'no-response' => array(
3194
  'title' => __("Could not test certificate", "really-simple-ssl"),
3195
- 'msg' => __("Automatic certificate detection is not possible on your server.", "really-simple-ssl").
3196
- '<br><br><form action="" method="POST"><a href="'.add_query_arg(array("page" => "rlrsssl_really_simple_ssl", "tab" => "letsencrypt"),admin_url("options-general.php")) .'" type="submit" class="button button-default">'.__("Install SSL certificate", "really-simple-ssl").'</a>'.
3197
- '&nbsp;<a target="_blank" href="'.$test_url.'" class="button button-default">'.__("Check manually", "really-simple-ssl").'</a></form>',
3198
  'icon' => 'warning',
3199
- 'admin_notice' => false,
3200
  'dismissible' => true,
3201
  ),
3202
  'ssl-detected' => array(
@@ -3208,17 +1985,16 @@ class rsssl_admin extends rsssl_front_end
3208
  'title' => __("Your SSL certificate will expire soon.", "really-simple-ssl"),
3209
  'msg' => sprintf(__("SSL certificate will expire on %s.","really-simple-ssl"), $expiry_date).'&nbsp;'.__("If your hosting provider auto-renews your certificate, no action is required. Alternatively, you have the option to generate an SSL certificate with Really Simple SSL.","really-simple-ssl").'&nbsp;'.
3210
  sprintf(__("Depending on your hosting provider, %smanual installation%s may be required.", "really-simple-ssl"),'<a target="_blank" href="https://really-simple-ssl.com/install-ssl-certificate">','</a>').
3211
- '<br><br><form action="" method="POST"><a href="'.add_query_arg(array("page" => "rlrsssl_really_simple_ssl", "tab" => "letsencrypt"),admin_url("options-general.php")) .'" type="submit" class="button button-default">'.__("Install SSL certificate", "really-simple-ssl").'</a>'.
3212
  '&nbsp;<input type="submit" class="button button-default" value="'.__("Re-check", "really-simple-ssl").'" id="rsssl_recheck_certificate" name="rsssl_recheck_certificate"></form>',
3213
  'icon' => 'warning',
3214
- 'admin_notice' => false,
3215
  ),
3216
  ),
3217
  ),
3218
 
3219
  'mixed_content_fixer_detected' => array(
3220
  'condition' => array('rsssl_ssl_enabled'),
3221
- 'callback' => 'RSSSL()->really_simple_ssl->mixed_content_fixer_detected',
3222
  'score' => 10,
3223
  'output' => array(
3224
  'found' => array(
@@ -3244,7 +2020,7 @@ class rsssl_admin extends rsssl_front_end
3244
  'dismissible' => true
3245
  ),
3246
  'not-enabled' => array(
3247
- 'url' => $this->generate_enable_link($setting_name = 'autoreplace_insecure_links', $type='free'),
3248
  'msg' =>__('Mixed content fixer not enabled. Enable the option to fix mixed content on your site.', 'really-simple-ssl'),
3249
  'icon' => 'open',
3250
  'dismissible' => true
@@ -3259,8 +2035,8 @@ class rsssl_admin extends rsssl_front_end
3259
  ),
3260
 
3261
  'wordpress_redirect' => array(
3262
- 'condition' => array('rsssl_ssl_enabled', 'NOT RSSSL()->really_simple_ssl->htaccess_redirect_allowed'),
3263
- 'callback' => 'RSSSL()->really_simple_ssl->has_301_redirect',
3264
  'score' => 10,
3265
  'output' => array(
3266
  'true' => array(
@@ -3275,35 +2051,34 @@ class rsssl_admin extends rsssl_front_end
3275
  ),
3276
 
3277
  'check_redirect' => array(
3278
- 'condition' => array('rsssl_ssl_enabled' , 'RSSSL()->really_simple_ssl->htaccess_redirect_allowed', 'NOT is_multisite'),
3279
- 'callback' => 'rsssl_check_redirect',
3280
  'score' => 10,
 
 
 
3281
  'output' => array(
3282
  'htaccess-redirect-set' => array(
3283
- 'msg' =>__('301 redirect to https set: .htaccess redirect.', 'really-simple-ssl') ,
3284
  'icon' => 'success'
3285
  ),
3286
  'wp-redirect-to-htaccess' => array(
3287
- 'url' => $this->generate_enable_link($setting_name = 'wp-redirect-to-htaccess', $type='free'),
3288
  'msg' => __('WordPress 301 redirect enabled. We recommend to enable a 301 .htaccess redirect.', 'really-simple-ssl'),
3289
  'icon' => 'open',
3290
- 'plusone' => RSSSL()->rsssl_server->uses_htaccess(),
3291
  'dismissible' => true,
3292
  ),
3293
  'no-redirect-set' => array(
3294
- 'msg' => __('Enable a .htaccess redirect or WordPress redirect in the settings to create a 301 redirect.', 'really-simple-ssl') ,
 
3295
  'icon' => 'open',
3296
  'dismissible' => false
3297
  ),
3298
- 'htaccess-not-writeable' => array(
3299
- 'url' => 'https://really-simple-ssl.com/knowledge-base/manually-insert-htaccess-redirect-http-to-https/',
3300
- 'msg' => sprintf(__('The %s file is not writable. You can either use the WordPress redirect, add the rules manually, or set the file to %swritable%s.', 'really-simple-ssl'), $htaccess_file, '<a target="_blank" href="https://really-simple-ssl.com/knowledge-base/htaccess-wp-config-files-not-writable/">', '</a>'),
3301
- 'icon' => 'warning',
3302
- 'dismissible' => true
3303
- ),
3304
  'htaccess-rules-test-failed' => array(
 
3305
  'url' => 'https://really-simple-ssl.com/knowledge-base/manually-insert-htaccess-redirect-http-to-https/',
3306
- 'msg' => __('The .htaccess redirect rules selected by this plugin failed in the test. Set manually or dismiss to leave on WordPress redirect.', 'really-simple-ssl') . $rules,
3307
  'icon' => 'warning',
3308
  'dismissible' => true,
3309
  'plusone'=>true,
@@ -3325,19 +2100,6 @@ class rsssl_admin extends rsssl_front_end
3325
  ),
3326
  ),
3327
 
3328
- 'unsupported_addons_soc' => array(
3329
- 'callback' => 'RSSSL()->really_simple_ssl->unsupported_addons',
3330
- 'score' => 5,
3331
- 'output' => array(
3332
- 'true' => array(
3333
- 'url' => 'https://really-simple-ssl.com/meet-really-simple-ssl-6/',
3334
- 'msg' => __("You are using Really Simple SSL social, which is no longer supported as of version 6.0. If you want to keep using it, please do not update to 6.0", "really-simple-ssl"),
3335
- 'icon' => 'warning',
3336
- 'dismissible' => true
3337
- ),
3338
- ),
3339
- ),
3340
-
3341
  'divi' => array(
3342
  'condition' => array( 'rsssl_ssl_activation_time_no_longer_then_3_days_ago'),
3343
  'callback' => 'rsssl_uses_divi',
@@ -3355,9 +2117,9 @@ class rsssl_admin extends rsssl_front_end
3355
  'secure_cookies_set' => array(
3356
  'condition' => array(
3357
  'rsssl_ssl_enabled',
3358
- 'RSSSL()->really_simple_ssl->can_apply_networkwide',
3359
  ),
3360
- 'callback' => 'RSSSL()->really_simple_ssl->secure_cookie_settings_status',
3361
  'score' => 5,
3362
  'output' => array(
3363
  'set' => array(
@@ -3391,16 +2153,14 @@ class rsssl_admin extends rsssl_front_end
3391
  ),
3392
 
3393
  'recommended_security_headers_not_set' => array(
3394
- 'callback' => 'RSSSL()->really_simple_ssl->recommended_headers_enabled',
3395
- 'condition' => array('rsssl_ssl_enabled'),
3396
  'score' => 5,
3397
  'output' => array(
3398
  'false' => array(
3399
- 'msg' => __("The following recommended security headers are not detected:", "really-simple-ssl")
3400
- ."<br><code style='padding: 0;'>". implode('<br>', $this->get_recommended_security_headers() ) . "</code>",
3401
- 'url' => 'https://really-simple-ssl.com/everything-you-need-to-know-about-security-headers',
3402
- 'icon' => 'premium',
3403
  'dismissible' => false,
 
3404
  ),
3405
  'true' => array(
3406
  'msg' => __("Recommended security headers enabled.", "really-simple-ssl"),
@@ -3415,7 +2175,7 @@ class rsssl_admin extends rsssl_front_end
3415
  'output' => array(
3416
  'true' => array(
3417
  'msg' => __("Improve security with Really Simple SSL Pro.", "really-simple-ssl"),
3418
- 'url' => 'https://really-simple-ssl.com/pro',
3419
  'icon' => 'premium',
3420
  'dismissible' => false,
3421
  ),
@@ -3450,10 +2210,9 @@ class rsssl_admin extends rsssl_front_end
3450
  'duplicate-ssl-plugins' => array(
3451
  'condition' => array('rsssl_detected_duplicate_ssl_plugin'),
3452
  'callback' => '_true_',
3453
- 'plus_one' => true,
3454
  'output' => array(
3455
  'true' => array(
3456
- 'msg' => sprintf(__( 'We have detected the %s plugin on your website.', 'really-simple-ssl' ),rsssl_detected_duplicate_ssl_plugin(true)).'&nbsp;'.__( 'As Really Simple SSL handles all the functionality this plugin provides, we recommend to disable this plugin to prevent unexpected behaviour.', 'really-simple-ssl' ),
3457
  'icon' => 'warning',
3458
  'dismissible' => true,
3459
  'plusone' => true,
@@ -3461,38 +2220,39 @@ class rsssl_admin extends rsssl_front_end
3461
  ),
3462
  ),
3463
 
3464
- 'bf_notice' => array(
3465
  'condition' => array(
3466
- 'RSSSL()->really_simple_ssl->is_bf'
3467
  ),
3468
  'callback' => '_true_',
3469
- 'plus_one' => true,
3470
  'output' => array(
3471
  'true' => array(
3472
  'msg' => __( "Black Friday sale! Get 40% Off Really Simple SSL Pro", 'really-simple-ssl' ) ,
3473
  'icon' => 'premium',
3474
- 'url' => 'https://really-simple-ssl.com/pro/',
3475
  'dismissible' => true,
3476
  'plusone' => true,
3477
  ),
3478
  ),
3479
  ),
3480
 
3481
- 'meet_6' => array(
 
 
 
3482
  'callback' => '_true_',
3483
- 'plus_one' => true,
3484
  'output' => array(
3485
  'true' => array(
3486
- 'msg' => __( "Really Simple SSL 6.0 is now in beta. Join our beta program and get all new features now!", 'really-simple-ssl' ) ,
3487
  'icon' => 'open',
3488
- 'url' => 'https://really-simple-ssl.com/meet-really-simple-ssl-6/',
 
3489
  'dismissible' => true,
3490
  'plusone' => true,
3491
  ),
3492
  ),
3493
  ),
3494
  );
3495
-
3496
  //on multisite, don't show the notice on subsites.
3497
  if ( is_multisite() && !is_network_admin() ) {
3498
  unset($notices['secure_cookies_set']);
@@ -3521,19 +2281,13 @@ class rsssl_admin extends rsssl_front_end
3521
  */
3522
 
3523
  foreach ( $notices as $id => $notice ) {
3524
- if (get_option( "rsssl_" . $id . "_dismissed" )) {
3525
- unset($notices[$id]);
3526
- continue;
3527
- }
3528
-
3529
  $func = $notice['callback'];
3530
  $output = $this->validate_function($func);
3531
 
3532
  //check if all notices should be dismissed
3533
- if ( ( isset( $notice['output'][$output]['dismissible'] )
3534
  && $notice['output'][$output]['dismissible']
3535
- && ( $this->dismiss_all_notices
3536
- || is_multisite() && rsssl_multisite::this()->dismiss_all_notices ) )
3537
  ) {
3538
  unset($notices[$id]);
3539
  continue;
@@ -3547,12 +2301,10 @@ class rsssl_admin extends rsssl_front_end
3547
  }
3548
 
3549
  $notices[$id]['output']['status'] = ( $notices[$id]['output']['icon'] !== 'success') ? 'open' : 'completed';
3550
-
3551
  if ( $args['status'] === 'open' && ($notices[$id]['output']['status'] === 'completed' ) ){
3552
  unset($notices[$id]);
3553
  continue;
3554
  }
3555
-
3556
  $condition_functions = $notice['condition'];
3557
  foreach ( $condition_functions as $func ) {
3558
  $condition = $this->validate_function($func, true);
@@ -3560,6 +2312,15 @@ class rsssl_admin extends rsssl_front_end
3560
  unset($notices[$id]);
3561
  }
3562
  }
 
 
 
 
 
 
 
 
 
3563
  }
3564
 
3565
  //if only admin_notices are required, filter out the rest.
@@ -3569,7 +2330,9 @@ class rsssl_admin extends rsssl_front_end
3569
  unset( $notices[$id]);
3570
  }
3571
  }
3572
- set_transient('rsssl_admin_notices', $notices, DAY_IN_SECONDS );
 
 
3573
  }
3574
 
3575
  //sort so warnings are on top
@@ -3589,27 +2352,6 @@ class rsssl_admin extends rsssl_front_end
3589
  }
3590
  $notices = $warnings + $open + $other;
3591
 
3592
- //add plus ones, but not when in admin notice
3593
- if ( !$args['admin_notices'] ) {
3594
- foreach ( $notices as $key => $notice ) {
3595
- if ( isset( $notice['output']['url'] ) ) {
3596
- $url = $notice['output']['url'];
3597
- $target = '';
3598
- if ( strpos( $url, 'https://really-simple-ssl.com' ) !== false ) {
3599
- $info = __( '%sMore info%s', 'really-simple-ssl' );
3600
- $target = 'target="_blank"';
3601
- } else {
3602
- $info = __( '%sEnable%s', 'really-simple-ssl' );
3603
- }
3604
- $notices[ $key ]['output']['msg'] .= ' ' . sprintf( $info, '<a ' . $target . ' href="' . $url . '">', '</a>' );
3605
- }
3606
-
3607
- if ( isset( $notice['output']['plusone'] ) && $notice['output']['plusone'] ) {
3608
- $plusone = "<span class='rsssl-dashboard-plusone update-plugins rsssl-update-count'><span class='update-count'>1</span></span>";
3609
- $notices[ $key ]['output']['msg'] .= $plusone;
3610
- }
3611
- }
3612
- }
3613
  //if we only want a list of premium notices
3614
  if ( $args['premium_only'] ) {
3615
  foreach ($notices as $key => $notice){
@@ -3618,801 +2360,105 @@ class rsssl_admin extends rsssl_front_end
3618
  }
3619
  }
3620
  }
3621
- return $notices;
3622
  }
3623
 
3624
- /**
3625
- * Count number of premium notices we have in the list.
3626
- * @return int
3627
- */
3628
- public function get_lowest_possible_task_count(){
3629
- $premium_notices = $this->get_notices_list(array('premium_only'=>true));
3630
- return count($premium_notices) ;
3631
  }
3632
 
3633
  /**
3634
  * Get output of function, in format 'function', or 'class()->sub()->function'
3635
- * @param string $func
3636
- * @param bool $is_condition // if the check is a condition, which should return a boolean
3637
- * @return string|bool
3638
- */
3639
-
3640
- private function validate_function($func, $is_condition = false ){
3641
- $invert = false;
3642
- if (strpos($func, 'NOT ') !== FALSE ) {
3643
- $func = str_replace('NOT ', '', $func);
3644
- $invert = true;
3645
- }
3646
-
3647
- if ( $func === '_true_') {
3648
- $output = true;
3649
- } else if ( $func === '_false_' ) {
3650
- $output = false;
3651
- } else {
3652
- if ( preg_match( '/(.*)\(\)\-\>(.*)->(.*)/i', $func, $matches)) {
3653
- $base = $matches[1];
3654
- $class = $matches[2];
3655
- $function = $matches[3];
3656
- $output = call_user_func( array( $base()->{$class}, $function ) );
3657
- } else {
3658
- $output = $func();
3659
- }
3660
-
3661
- if ( $invert ) {
3662
- $output = !$output;
3663
- }
3664
- }
3665
-
3666
- //stringyfy booleans
3667
- if (!$is_condition) {
3668
- if ( $output === false || $output === 0 ) {
3669
- $output = 'false';
3670
- }
3671
- if ( $output === true || $output === 1 ) {
3672
- $output = 'true';
3673
- }
3674
- }
3675
- return sanitize_text_field($output);
3676
- }
3677
-
3678
- public function unsupported_addons(){
3679
- return defined('rsssl_soc_version');
3680
- }
3681
-
3682
- /**
3683
- * Calculate the percentage completed in the dashboard progress section
3684
- * Determine max score by adding $notice['score'] to the $max_score variable
3685
- * Determine actual score by adding $notice['score'] of each item with a 'success' output to $actual_score
3686
- * @return int
3687
- *
3688
- * @since 4.0
3689
- *
3690
- */
3691
-
3692
- public function get_score_percentage() {
3693
- if ( ! rsssl_user_can_manage() ) {
3694
- return 0;
3695
- }
3696
-
3697
- $max_score = 0;
3698
- $actual_score = 0;
3699
- $notices = $this->get_notices_list(array(
3700
- 'status' => 'all',
3701
- ));
3702
- foreach ( $notices as $id => $notice ) {
3703
- if (isset( $notice['score'] )) {
3704
- // Only items matching condition will show in the dashboard. Only use these to determine max count.
3705
- $max_score = $max_score + intval( $notice['score'] );
3706
- $success = ( isset( $notice['output']['icon'] )
3707
- && ( $notice['output']['icon']
3708
- === 'success' ) ) ? true : false;
3709
- if ( $success ) {
3710
- // If the output is success, task is completed. Add to actual count.
3711
- $actual_score = $actual_score + intval( $notice['score'] );
3712
- }
3713
- }
3714
- }
3715
- if ($max_score>0) {
3716
- $score = $actual_score / $max_score;
3717
- } else {
3718
- $score = 0;
3719
- }
3720
- $score = $score * 100;
3721
- $score = intval( round( $score ) );
3722
-
3723
- return $score;
3724
- }
3725
-
3726
- /**
3727
- * Generate an enable link for the specific setting, redirects to settings page and highlights the setting.
3728
- *
3729
- * @param string $setting_name
3730
- * @param string $type
3731
- *
3732
- * @return string
3733
- */
3734
-
3735
- public function generate_enable_link($setting_name, $type = 'free' )
3736
- {
3737
- if ( is_network_admin() ) {
3738
- $page = "really-simple-ssl";
3739
- $wp_page = network_admin_url('settings.php' );
3740
- } else {
3741
- $page = "rlrsssl_really_simple_ssl";
3742
- $wp_page = admin_url('options-general.php');
3743
- }
3744
- $args = array(
3745
- "page" => $page,
3746
- "highlight" => $setting_name
3747
- );
3748
-
3749
- if ( $type === 'premium' && !is_network_admin() ) {
3750
- $args['tab'] = 'premium';
3751
- }
3752
-
3753
- return add_query_arg($args, $wp_page);
3754
- }
3755
-
3756
- /**
3757
- * @param $id
3758
- * @param $notice
3759
- *
3760
- * Generate a notice row in the configuration dashboard tab
3761
- *
3762
- * @since 3.2
3763
- *
3764
- */
3765
-
3766
- private function notice_row($id, $notice){
3767
- if (!rsssl_user_can_manage()) return;
3768
-
3769
- if (!isset($notice['output'])) {
3770
- return;
3771
- }
3772
-
3773
- $msg = $notice['output']['msg'];
3774
- $icon_type = $notice['output']['icon'];
3775
-
3776
- // Do not show completed tasks if remaining tasks are selected.
3777
- if ($icon_type === 'success' && !get_option('rsssl_all_tasks') && get_option('rsssl_remaining_tasks')) return;
3778
-
3779
- $icon = $this->icon($icon_type);
3780
- $dismiss = (isset($notice['output']['dismissible']) && $notice['output']['dismissible']) ? $this->rsssl_dismiss_button() : '';
3781
-
3782
- ?>
3783
- <tr>
3784
- <td><?php echo $icon?></td><td class="rsssl-table-td-main-content"><?php echo $msg?></td>
3785
- <td class="rsssl-dashboard-dismiss" data-dismiss_type="<?php echo $id?>"><?php echo $dismiss?></td>
3786
- </tr>
3787
- <?php
3788
- }
3789
-
3790
-
3791
-
3792
- /**
3793
- * Count the plusones
3794
- *
3795
- * @return int
3796
- *
3797
- * @since 3.2
3798
- */
3799
-
3800
- public function count_plusones() {
3801
- if ( ! rsssl_user_can_manage() ) {
3802
- return 0;
3803
- }
3804
-
3805
- $cache = $this->is_settings_page() ? false : true;
3806
- $count = get_transient( 'rsssl_plusone_count' );
3807
- if ( !$cache || ($count === false) ) {
3808
- $count = 0;
3809
- $notices = $this->get_notices_list();
3810
- foreach ( $notices as $id => $notice ) {
3811
- $success = ( isset( $notice['output']['icon'] ) && ( $notice['output']['icon'] === 'success' ) ) ? true : false;
3812
- if ( ! $success
3813
- && isset( $notice['output']['plusone'] )
3814
- && $notice['output']['plusone']
3815
- ) {
3816
- $count++;
3817
- }
3818
- }
3819
- set_transient( 'rsssl_plusone_count', $count, WEEK_IN_SECONDS );
3820
- }
3821
- return $count;
3822
- }
3823
-
3824
- /**
3825
- * Build the settings page
3826
- *
3827
- * @since 2.0
3828
- *
3829
- * @access public
3830
- *
3831
- */
3832
-
3833
- public function general_grid(){
3834
- $grid_items = array(
3835
- 'progress' =>array(
3836
- 'title' => __("Your progress", "really-simple-ssl"),
3837
- 'header' => rsssl_template_path . 'progress-header.php',
3838
- 'content' => rsssl_template_path . 'progress.php',
3839
- 'footer' => rsssl_template_path . 'progress-footer.php',
3840
- 'class' => 'regular rsssl-progress',
3841
- 'type' => 'all',
3842
- ),
3843
- 'settings' => array(
3844
- 'title' => __("Settings", "really-simple-ssl"),
3845
- 'content' => rsssl_template_path . 'settings.php',
3846
- 'footer' => rsssl_template_path . 'settings-footer.php',
3847
- 'class' => 'small settings',
3848
- 'type' => 'settings',
3849
- ),
3850
- 'tipstricks' => array(
3851
- 'title' => __("Tips & Tricks", "really-simple-ssl"),
3852
- 'header' => '',
3853
- 'content' => rsssl_template_path . 'tips-tricks.php',
3854
- 'footer' => rsssl_template_path . 'tips-tricks-footer.php',
3855
- 'class' => 'small',
3856
- 'type' => 'popular',
3857
- ),
3858
- 'plugins' => array(
3859
- 'title' => __("Our plugins", "really-simple-ssl"),
3860
- 'header' => rsssl_template_path . 'our-plugins-header.php',
3861
- 'content' => rsssl_template_path . 'other-plugins.php',
3862
- 'class' => 'half-height no-border no-background upsell-grid-container',
3863
- 'can_hide' => false,
3864
- ),
3865
- 'support' => array(
3866
- 'title' => __("Support forum", "really-simple-ssl"),
3867
- 'header' => '',
3868
- 'content' => rsssl_template_path . 'support.php',
3869
- 'footer' => rsssl_template_path . 'support-footer.php',
3870
- 'type' => 'tasks',
3871
- 'class' => 'half-height',
3872
- ),
3873
- );
3874
- return apply_filters( 'rsssl_grid_items', $grid_items );
3875
- }
3876
-
3877
- /**
3878
- * Save the task toggle option
3879
- * @since 4.0
3880
- */
3881
-
3882
- public function update_task_toggle_option() {
3883
-
3884
- if (!isset($_POST['token']) || (!wp_verify_nonce($_POST['token'], 'rsssl_nonce'))) {
3885
- return;
3886
- }
3887
-
3888
- if (!isset($_POST["action"]) && $_POST["action"] ==! 'rsssl_update_task_toggle_option') return;
3889
-
3890
- if (!isset($_POST['alltasks']) || (!isset($_POST['remainingtasks']) ) ) return;
3891
-
3892
- if ($_POST['alltasks'] === 'checked') {
3893
- update_option('rsssl_all_tasks', true);
3894
- } else {
3895
- update_option('rsssl_all_tasks', false);
3896
- }
3897
-
3898
- if ($_POST['remainingtasks'] === 'checked') {
3899
- update_option('rsssl_remaining_tasks', true);
3900
- } else {
3901
- update_option('rsssl_remaining_tasks', false);
3902
- }
3903
-
3904
- wp_die();
3905
- }
3906
-
3907
- /**
3908
- * Get count of all tasks
3909
- * @return int
3910
- */
3911
- public function get_all_task_count() {
3912
- if ( ! rsssl_user_can_manage() ) {
3913
- return 0;
3914
- }
3915
-
3916
- $count = count($this->get_notices_list(
3917
- array( 'status' => 'all' )
3918
- ));
3919
-
3920
- return $count;
3921
- }
3922
-
3923
- /**
3924
- * @return int
3925
- *
3926
- * Get the remaining open task count, shown in the progress header
3927
- *
3928
- */
3929
-
3930
- public function get_remaining_tasks_count() {
3931
- if ( ! rsssl_user_can_manage() ) {
3932
- return 0;
3933
- }
3934
-
3935
- $cache = !$this->is_settings_page();
3936
-
3937
- $count = get_transient( 'rsssl_remaining_task_count' );
3938
- if ( !$cache || $count === false ) {
3939
- $count = count($this->get_notices_list(
3940
- array( 'status' => 'open' )
3941
- ) );
3942
- set_transient( 'rsssl_remaining_task_count', $count, DAY_IN_SECONDS );
3943
- }
3944
-
3945
- return $count;
3946
- }
3947
-
3948
- /**
3949
- * Get status link for plugin, depending on installed, or premium availability
3950
- * @param $item
3951
- *
3952
- * @return string
3953
- */
3954
-
3955
- public function get_status_link($item){
3956
- if (!defined($item['constant_free']) && !defined($item['constant_premium'])) {
3957
- $args = array(
3958
- "s" => $item['search'],
3959
- "tab" => "search",
3960
- "type" => "term"
3961
- );
3962
- $admin_url= is_multisite() ? network_admin_url('plugin-install.php') : admin_url('plugin-install.php');
3963
- $link = add_query_arg( $args, $admin_url );
3964
- $status = '<a href="'.esc_url_raw($link).'">'.__('Install', 'really-simple-ssl').'</a>';
3965
- } elseif (isset($item['constant_premium']) && !defined($item['constant_premium'])) {
3966
- $link = $item['website'];
3967
- $status = '<a href="'.esc_url_raw($link).'">'.__('Upgrade to pro', 'really-simple-ssl').'</a>';
3968
- } else {
3969
- $status = __( "Installed", "really-simple-ssl" );
3970
- }
3971
- return $status;
3972
- }
3973
-
3974
- /**
3975
- * Render the settings page
3976
- */
3977
-
3978
- public function settings_page()
3979
- {
3980
- if (!rsssl_user_can_manage()) return;
3981
- $tab = isset( $_GET['tab']) ? sanitize_title($_GET['tab']) : 'configuration';
3982
- $this->admin_tabs($tab );
3983
- $high_contrast = $this->high_contrast ? 'rsssl-high-contrast' : ''; ?>
3984
- <div class="rsssl-container <?php echo $high_contrast ?>">
3985
- <div class="rsssl-main"><?php
3986
- switch ($tab) {
3987
- case 'configuration' :
3988
- $this->render_grid($this->general_grid());
3989
- do_action("rsssl_configuration_page");
3990
- break;
3991
- }
3992
- do_action("show_tab_{$tab}");
3993
- do_action("rsssl_show_tab_{$tab}");
3994
- ?>
3995
- </div>
3996
- </div>
3997
- <?php
3998
- }
3999
-
4000
- /**
4001
- * Render grid from grid array
4002
- * @param array $grid
4003
- */
4004
- public function render_grid($grid){
4005
-
4006
- $container = $this->get_template('grid-container.php', rsssl_path . 'grid/');
4007
- $element = $this->get_template('grid-element.php', rsssl_path . 'grid/');
4008
-
4009
- $output = '';
4010
- $defaults = array(
4011
- 'title' => '',
4012
- 'header' => rsssl_template_path . 'header.php',
4013
- 'content' => '',
4014
- 'footer' => '',
4015
- 'class' => '',
4016
- 'type' => 'plugins',
4017
- 'can_hide' => true,
4018
- 'instructions' => false,
4019
- );
4020
- foreach ($grid as $index => $grid_item) {
4021
- $grid_item = wp_parse_args($grid_item, $defaults);
4022
- $footer = $this->get_template_part($grid_item, 'footer', $index);
4023
- $content = $this->get_template_part($grid_item, 'content', $index);
4024
- $header = $this->get_template_part($grid_item, 'header', $index);
4025
- $instructions = $grid_item['instructions'] ? '<a href="'.esc_url($grid_item['instructions']).'" target="_blank">'.__("Instructions manual", "really-simple-ssl").'</a>' : '';
4026
- // Add form if type is settings
4027
- $form_open = '';
4028
- $form_close = '';
4029
- if ( $grid_item['type'] === 'scan' ) {
4030
- $form_open = '<form id="rsssl_scan_form" action="" method="post">';
4031
- $form_close = '</form>';
4032
- } elseif ( $grid_item['type'] === 'settings' ) {
4033
- if ( is_network_admin() ) {
4034
- $form_open = '<form action="edit.php?action=rsssl_update_network_settings" method="post">'.wp_nonce_field('rsssl_ms_settings_update', 'rsssl_ms_nonce');
4035
- $form_close = '</form>';
4036
-
4037
- } else {
4038
- $form_open = '<form action="options.php" method="post">';
4039
- $form_close = '</form>';
4040
- }
4041
- }
4042
-
4043
- $block = str_replace(array('{class}', '{title}', '{header}', '{content}', '{footer}', '{instructions}', '{form_open}','{form_close}'), array($grid_item['class'], $grid_item['title'], $header, $content, $footer, $instructions, $form_open, $form_close), $element);
4044
- $output .= $block;
4045
- }
4046
-
4047
- echo str_replace('{content}', $output, $container);
4048
- }
4049
-
4050
- /**
4051
- * Render grid item based on template
4052
- * @param array $grid_item
4053
- * @param string $key
4054
- * @oaram string $index
4055
- *
4056
- * @return string
4057
- */
4058
-
4059
- public function get_template_part($grid_item, $key, $index) {
4060
- if ( !isset($grid_item[$key]) || !$grid_item[$key] ) {
4061
- $template_part = '';
4062
- } else {
4063
- if ( strpos( $grid_item[ $key ], '.php' ) !== false && file_exists($grid_item[ $key ]) ) {
4064
- ob_start();
4065
- require $grid_item[ $key ];
4066
- $template_part = ob_get_clean();
4067
- } else {
4068
- $template_part = '';
4069
- }
4070
- }
4071
-
4072
- return apply_filters("rsssl_template_part_".$key.'_'.$index, $template_part, $grid_item);
4073
- }
4074
-
4075
- /**
4076
- * Returns a success, error or warning image for the settings page
4077
- *
4078
- * @since 2.0
4079
- *
4080
- * @access public
4081
- *
4082
- * @param string $type the type of image
4083
- *
4084
- * @return string
4085
- */
4086
-
4087
- public function icon($type)
4088
- {
4089
- if ($type == 'success') {
4090
- return "<span class='rsssl-progress-status rsssl-success'>".__("Completed", "really-simple-ssl")."</span>";
4091
- } elseif ($type == "warning") {
4092
- return "<span class='rsssl-progress-status rsssl-warning'>".__("Warning", "really-simple-ssl")."</span>";
4093
- } elseif ($type == "open") {
4094
- return "<span class='rsssl-progress-status rsssl-open'>".__("Open", "really-simple-ssl")."</span>";
4095
- } elseif ($type == "premium") {
4096
- return "<span class='rsssl-progress-status rsssl-premium'>".__("Premium", "really-simple-ssl")."</span>";
4097
- }
4098
- }
4099
-
4100
- /**
4101
- *
4102
- * Add a dismiss button which will dismiss the nearest <tr>. Used on 'Configuration' dashboard page
4103
- *
4104
- * @since 3.1.6
4105
- * @return string
4106
- *
4107
- */
4108
-
4109
- public function rsssl_dismiss_button()
4110
- {
4111
- $html = "<button type='button' class='close'>
4112
- <span class='rsssl-close-warning-x'>
4113
- <img src='";
4114
-
4115
- $html .= rsssl_url . '/assets/cross.svg';
4116
-
4117
- $html .= "'/>
4118
- </span>
4119
- </button>";
4120
-
4121
- return $html;
4122
- }
4123
-
4124
- /**
4125
- * @param $args
4126
- *
4127
- * @since 3.0
4128
- *
4129
- * Generate the HTML for the settings page sidebar
4130
- *
4131
- */
4132
-
4133
- private function get_banner_html($args)
4134
- {
4135
- $default = array(
4136
- 'pro' => false,
4137
- );
4138
-
4139
- $args = wp_parse_args($args, $default);
4140
-
4141
- $pro = $args['pro'] ? '-pro' : '';
4142
- ?>
4143
- <div class="rsssl-sidebar-single-content-container<?php echo $pro ?>">
4144
- <img class="rsssl-sidebar-image<?php echo $pro ?>"
4145
- src="<?php echo trailingslashit(rsssl_url) . 'assets/' . $args['img'] ?>"
4146
- alt="<?php echo $args['title'] ?>">
4147
- <div class="rsssl-sidebar-text-content<?php echo $pro ?>">
4148
- <?php echo $args['description'] ?>
4149
- </div>
4150
- <div class="rsssl-more-info-button">
4151
- <a id="rsssl-premium-button<?php echo $pro ?>" class="button"
4152
- href="<?php echo $args['url'] ?>"
4153
- target="_blank"> <?php echo __("More info", "really-simple-ssl") ?> </a>
4154
- </div>
4155
- </div>
4156
- <?php
4157
- }
4158
-
4159
- /**
4160
- * Add some css for the settings page
4161
- *
4162
- * @since 2.0
4163
- *
4164
- * @access public
4165
- *
4166
- */
4167
-
4168
- public function enqueue_assets($hook)
4169
- {
4170
- //load on network admin or normal admin settings page
4171
- if ( $hook !== 'settings_page_really-simple-ssl' && $hook !== 'settings_page_rlrsssl_really_simple_ssl' ) return;
4172
- $minified = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
4173
- if (is_rtl()) {
4174
- wp_register_style('rlrsssl-css', trailingslashit(rsssl_url) . "assets/css/main-rtl$minified.css", array(), rsssl_version);
4175
- wp_register_style('rsssl-grid', trailingslashit(rsssl_url) . "grid/css/grid-rtl$minified.css", array(), rsssl_version);
4176
- } else {
4177
- wp_register_style('rlrsssl-css', trailingslashit(rsssl_url) . "assets/css/main$minified.css", array(), rsssl_version );
4178
- wp_register_style('rsssl-grid', trailingslashit(rsssl_url) . "grid/css/grid$minified.css", array(), rsssl_version );
4179
- }
4180
-
4181
- wp_enqueue_style('rlrsssl-css');
4182
- wp_enqueue_style('rsssl-grid');
4183
-
4184
- wp_register_script('rsssl', trailingslashit(rsssl_url) . "assets/js/scripts$minified.js", array("jquery"), rsssl_version);
4185
- wp_enqueue_script('rsssl');
4186
-
4187
- $finished_text = apply_filters('rsssl_finished_text', sprintf(__("Basic SSL configuration finished! Improve your score with %sReally Simple SSL Pro%s.", "really-simple-ssl"), '<a target="_blank" href="' . $this->pro_url . '">', '</a>') );
4188
- if ($this->ssl_enabled) {
4189
- $ssl_status = __( "SSL is activated on your site.", 'really-simple-ssl' );
4190
- } else {
4191
- $ssl_status = __( "SSL is not yet enabled on this site.", 'really-simple-ssl' );
4192
- }
4193
-
4194
- $not_completed_text_singular = $ssl_status.' '. __("You still have %s task open.", 'really-simple-ssl' );
4195
- $not_completed_text_plural = $ssl_status .' '.__(" You still have %s tasks open.", 'really-simple-ssl' );
4196
-
4197
- wp_localize_script('rsssl', 'rsssl',
4198
- array(
4199
- 'ajaxurl' => admin_url( 'admin-ajax.php' ),
4200
- 'token' => wp_create_nonce( 'rsssl_nonce'),
4201
- 'copied_text' => __("Copied!", "really-simple-ssl"),
4202
- 'finished_text' => $finished_text,
4203
- 'not_complete_text_singular' => $not_completed_text_singular,
4204
- 'not_complete_text_plural' => $not_completed_text_plural,
4205
- 'lowest_possible_task_count' => RSSSL()->really_simple_ssl->get_lowest_possible_task_count(),
4206
- )
4207
- );
4208
- }
4209
-
4210
- /**
4211
- * Create the settings page form
4212
- *
4213
- * @since 2.0
4214
- *
4215
- * @access public
4216
- *
4217
- */
4218
-
4219
- public function create_form()
4220
- {
4221
- register_setting('rlrsssl_options', 'rlrsssl_options', array($this, 'options_validate'));
4222
- add_settings_section('rlrsssl_settings', __("Settings", "really-simple-ssl"), array($this, 'section_text'), 'rlrsssl');
4223
-
4224
- $help_tip = RSSSL()->rsssl_help->get_help_tip(__("In most cases you need to leave this enabled, to prevent mixed content issues on your site.", "really-simple-ssl"), $return=true);
4225
- add_settings_field('id_autoreplace_insecure_links', $help_tip . "<div class='rsssl-settings-text'>" . __("Mixed content fixer", "really-simple-ssl"), array($this, 'get_option_autoreplace_insecure_links'), 'rlrsssl', 'rlrsssl_settings');
4226
-
4227
- //only show option to enable or disable mixed content and redirect when SSL is detected
4228
- if ($this->ssl_enabled) {
4229
- $help_tip = RSSSL()->rsssl_help->get_help_tip(__("Redirects all requests over HTTP to HTTPS using a PHP 301 redirect. Enable if the .htaccess redirect cannot be used, for example on NGINX servers.", "really-simple-ssl"), $return=true);
4230
- add_settings_field('id_wp_redirect', $help_tip . "<div class='rsssl-settings-text'>" . __("Enable WordPress 301 redirect", "really-simple-ssl"), array($this, 'get_option_wp_redirect'), 'rlrsssl', 'rlrsssl_settings', ['class' => 'rsssl-settings-row'] );
4231
-
4232
- //when enabled networkwide, it's handled on the network settings page
4233
- if (RSSSL()->rsssl_server->uses_htaccess() && (!is_multisite() || !RSSSL()->rsssl_multisite->ssl_enabled_networkwide)) {
4234
- $help_tip = RSSSL()->rsssl_help->get_help_tip(__("A .htaccess redirect is faster and works better with caching. Really Simple SSL detects the redirect code that is most likely to work (99% of websites), but this is not 100%. Make sure you know how to regain access to your site if anything goes wrong!", "really-simple-ssl"), $return=true);
4235
- add_settings_field('id_htaccess_redirect', $help_tip . "<div class='rsssl-settings-text'>" . __("Enable 301 .htaccess redirect", "really-simple-ssl"), array($this, 'get_option_htaccess_redirect'), 'rlrsssl', 'rlrsssl_settings');
4236
- }
4237
- }
4238
-
4239
- //on multisite this setting can only be set networkwide
4240
- if (RSSSL()->rsssl_server->uses_htaccess() && !is_multisite()) {
4241
- $help_tip = RSSSL()->rsssl_help->get_help_tip(__("If you want to customize the Really Simple SSL .htaccess, you need to prevent Really Simple SSL from rewriting it. Enabling this option will do that.", "really-simple-ssl"), $return=true);
4242
- add_settings_field('id_do_not_edit_htaccess', $help_tip . "<div class='rsssl-settings-text'>" . __("Stop editing the .htaccess file", "really-simple-ssl"), array($this, 'get_option_do_not_edit_htaccess'), 'rlrsssl', 'rlrsssl_settings');
4243
- }
4244
-
4245
- //don't show alternative mixed content fixer option if mixed content fixer is disabled.
4246
- if ($this->autoreplace_insecure_links) {
4247
- $help_tip = RSSSL()->rsssl_help->get_help_tip(__("If this option is set to true, the mixed content fixer will fire on the init hook instead of the template_redirect hook. Only use this option when you experience problems with the mixed content fixer.\"", "really-simple-ssl"), $return=true);
4248
- add_settings_field('id_switch_mixed_content_fixer_hook', $help_tip . "<div class='rsssl-settings-text'>" . __("Fire mixed content fixer with different method", "really-simple-ssl"), array($this, 'get_option_switch_mixed_content_fixer_hook'), 'rlrsssl', 'rlrsssl_settings');
4249
- }
4250
-
4251
- $help_tip = RSSSL()->rsssl_help->get_help_tip(__("Enable this option to permanently dismiss all +1 notices in the 'Your progress' tab", "really-simple-ssl"), $return=true);
4252
- add_settings_field('id_dismiss_all_notices', $help_tip . "<div class='rsssl-settings-text'>" . __("Dismiss all Really Simple SSL notices", "really-simple-ssl"), array($this, 'get_option_dismiss_all_notices'), 'rlrsssl', 'rlrsssl_settings');
4253
-
4254
- $help_tip = RSSSL()->rsssl_help->get_help_tip(__("If enabled, all the Really Simple SSL pages within the WordPress admin will be in high contrast", "really-simple-ssl"), $return=true);
4255
- add_settings_field('id_high_contrast', $help_tip . "<div class='rsssl-settings-text'>" . __("Enable High Contrast mode", "really-simple-ssl"), array($this, 'get_option_high_contrast'), 'rlrsssl', 'rlrsssl_settings');
4256
-
4257
- }
4258
-
4259
- /**
4260
- * Insert some explanation above the form
4261
- *
4262
- * @since 2.0
4263
- *
4264
- * @access public
4265
- *
4266
- */
4267
-
4268
- public function section_text()
4269
- {
4270
-
4271
- }
4272
-
4273
- /**
4274
- * Check the posted values in the settings page for validity
4275
- *
4276
- * @since 2.0
4277
- *
4278
- * @access public
4279
- *
4280
- */
4281
-
4282
- public function options_validate($input)
4283
- {
4284
- //fill array with current values, so we don't lose any
4285
- $newinput = array();
4286
- $newinput['site_has_ssl'] = $this->site_has_ssl;
4287
- $newinput['ssl_success_message_shown'] = $this->ssl_success_message_shown;
4288
- $newinput['htaccess_warning_shown'] = $this->htaccess_warning_shown;
4289
- $newinput['review_notice_shown'] = $this->review_notice_shown;
4290
- $newinput['plugin_db_version'] = $this->plugin_db_version;
4291
- $newinput['ssl_enabled'] = $this->ssl_enabled;
4292
-
4293
- if (!empty($input['hsts']) && $input['hsts'] == '1') {
4294
- $newinput['hsts'] = TRUE;
4295
- } else {
4296
- $newinput['hsts'] = FALSE;
4297
- }
4298
-
4299
- if (!empty($input['javascript_redirect']) && $input['javascript_redirect'] == '1') {
4300
- $newinput['javascript_redirect'] = TRUE;
4301
- } else {
4302
- $newinput['javascript_redirect'] = FALSE;
4303
- }
4304
-
4305
- if (!empty($input['wp_redirect']) && $input['wp_redirect'] == '1') {
4306
- $newinput['wp_redirect'] = TRUE;
4307
- } else {
4308
- $newinput['wp_redirect'] = FALSE;
4309
- }
4310
-
4311
- if (!empty($input['autoreplace_insecure_links']) && $input['autoreplace_insecure_links'] == '1') {
4312
- $newinput['autoreplace_insecure_links'] = TRUE;
4313
- } else {
4314
- $newinput['autoreplace_insecure_links'] = FALSE;
4315
- }
4316
-
4317
- if (!empty($input['do_not_edit_htaccess']) && $input['do_not_edit_htaccess'] == '1') {
4318
- $newinput['do_not_edit_htaccess'] = TRUE;
4319
- } else {
4320
- $newinput['do_not_edit_htaccess'] = FALSE;
4321
- }
4322
 
4323
- if (!empty($input['switch_mixed_content_fixer_hook']) && $input['switch_mixed_content_fixer_hook'] == '1') {
4324
- $newinput['switch_mixed_content_fixer_hook'] = TRUE;
4325
- } else {
4326
- $newinput['switch_mixed_content_fixer_hook'] = FALSE;
4327
- }
4328
 
4329
- if (!empty($input['dismiss_all_notices']) && $input['dismiss_all_notices'] == '1') {
4330
- $newinput['dismiss_all_notices'] = TRUE;
4331
- } else {
4332
- $newinput['dismiss_all_notices'] = FALSE;
4333
  }
4334
 
4335
- if (!empty($input['high_contrast']) && $input['high_contrast'] == '1') {
4336
- $newinput['high_contrast'] = TRUE;
 
 
 
 
4337
  } else {
4338
- $newinput['high_contrast'] = FALSE;
 
 
 
 
 
 
 
 
 
 
 
4339
  }
4340
 
4341
- if (!empty($input['htaccess_redirect']) && $input['htaccess_redirect'] == '1') {
4342
- $newinput['htaccess_redirect'] = TRUE;
4343
- } else {
4344
- $newinput['htaccess_redirect'] = FALSE;
 
 
 
 
4345
  }
4346
-
4347
- return $newinput;
4348
  }
4349
 
4350
-
4351
- /**
4352
- * Insert option into settings form
4353
- * @since 2.5.0
4354
  *
4355
- * @access public
4356
  *
4357
- */
 
4358
 
4359
- public function get_option_wp_redirect()
4360
- {
4361
- $wp_redirect = $this->wp_redirect;
4362
- $disabled = "";
4363
- $comment = "";
4364
-
4365
- if (is_multisite() && rsssl_multisite::this()->wp_redirect) {
4366
- $disabled = "disabled";
4367
- $wp_redirect = TRUE;
4368
- $comment = __("This option is enabled on the network menu.", "really-simple-ssl");
4369
- }
4370
- ?>
4371
- <label class="rsssl-switch">
4372
- <input id="rlrsssl_options" name="rlrsssl_options[wp_redirect]" size="40" value="1"
4373
- type="checkbox" <?php echo $disabled?> <?php checked(1, $wp_redirect, true) ?> />
4374
- <span class="rsssl-slider rsssl-round"></span>
4375
- </label>
4376
- <?php
4377
- RSSSL()->rsssl_help->get_comment($comment);
4378
- }
4379
 
4380
- /**
4381
- * Insert option into settings form
4382
- * The .htaccess redirect is not shown for multisite sites that are enabled network wide.
4383
- *
4384
- * @since 2.5.8
4385
- *
4386
- * @access public
4387
- *
4388
- */
 
 
 
 
 
 
 
 
 
 
4389
 
4390
- public function get_option_htaccess_redirect()
4391
- {
4392
- $comment = $disabled = "";
4393
- $link_open = '<a href="https://really-simple-ssl.com/knowledge-base/remove-htaccess-redirect-site-lockout/" target="_blank">';
4394
- if ( !$this->htaccess_redirect ) $comment = sprintf(__("Before you enable the htaccess redirect, make sure you know how to %sregain access%s to your site in case of a redirect loop.", "really-simple-ssl"), $link_open, '</a>');
4395
- //networkwide is not shown, so this only applies to per site activated sites.
4396
- if ( is_multisite() && RSSSL()->rsssl_multisite->htaccess_redirect ) {
4397
- $disabled = "disabled";
4398
- $comment = __("This option is enabled on the network menu.", "really-simple-ssl");
4399
- } elseif ( $this->do_not_edit_htaccess ) {
4400
- //on multisite, the .htaccess do not edit option is not available
4401
- $comment = __("If the setting 'stop editing the .htaccess file' is enabled, you can't change this setting.", "really-simple-ssl");
4402
- $disabled = "disabled";
4403
  }
4404
- ?>
4405
- <label class="rsssl-switch" id="rsssl-maybe-highlight-wp-redirect-to-htaccess">
4406
- <input id="rlrsssl_options" name="rlrsssl_options[htaccess_redirect]" size="40" value="1"
4407
- type="checkbox" <?php checked(1, $this->htaccess_redirect) ?> <?php echo $disabled?>/>
4408
- <span class="rsssl-slider rsssl-round"></span>
4409
- </label>
4410
- <?php
4411
- RSSSL()->rsssl_help->get_comment($comment);
4412
  }
4413
 
4414
  /**
4415
- * Insert option into settings form
4416
  *
4417
  * @since 2.0
4418
  *
@@ -4420,92 +2466,18 @@ class rsssl_admin extends rsssl_front_end
4420
  *
4421
  */
4422
 
4423
- public function get_option_do_not_edit_htaccess()
4424
  {
4425
- ?>
4426
- <label class="rsssl-switch">
4427
- <input id="rlrsssl_options" name="rlrsssl_options[do_not_edit_htaccess]" size="40" value="1"
4428
- type="checkbox" <?php checked(1, $this->do_not_edit_htaccess, true) ?> />
4429
- <span class="rsssl-slider rsssl-round"></span>
4430
- </label>
4431
- <?php
4432
- if ( !$this->do_not_edit_htaccess && !is_writable($this->htaccess_file())) {
4433
- $comment = sprintf(__(".htaccess is currently not %swritable%s.", "really-simple-ssl"), '<a target="_blank" href="https://really-simple-ssl.com/knowledge-base/htaccess-wp-config-files-not-writable/">', '</a>');
4434
- RSSSL()->rsssl_help->get_comment($comment);
4435
  }
 
 
 
 
 
4436
  }
4437
 
4438
- /**
4439
- * Insert option into settings form
4440
- *
4441
- * @since 2.1
4442
- *
4443
- * @access public
4444
- *
4445
- */
4446
-
4447
- public function get_option_switch_mixed_content_fixer_hook()
4448
- {
4449
- ?>
4450
- <label class="rsssl-switch">
4451
- <input id="rlrsssl_options" name="rlrsssl_options[switch_mixed_content_fixer_hook]" size="40" value="1"
4452
- type="checkbox" <?php checked(1, $this->switch_mixed_content_fixer_hook, true) ?> />
4453
- <span class="rsssl-slider rsssl-round"></span>
4454
- </label>
4455
- <?php
4456
- }
4457
-
4458
- /**
4459
- *
4460
- * Get the option to dismiss all Really Simple SSL notices
4461
- *
4462
- * @since 3.2
4463
- *
4464
- * @access public
4465
- *
4466
- */
4467
-
4468
- public function get_option_dismiss_all_notices()
4469
- {
4470
- $disabled = "";
4471
- $comment = "";
4472
-
4473
- if (is_multisite() && rsssl_multisite::this()->dismiss_all_notices) {
4474
- $disabled = "disabled";
4475
- $comment = __("This option is enabled on the network menu.", "really-simple-ssl");
4476
- }
4477
-
4478
- ?>
4479
- <label class="rsssl-switch">
4480
- <input id="rlrsssl_options" name="rlrsssl_options[dismiss_all_notices]" size="40" value="1"
4481
- type="checkbox" <?php echo $disabled?> <?php checked(1, $this->dismiss_all_notices, true) ?> />
4482
- <span class="rsssl-slider rsssl-round"></span>
4483
- </label>
4484
- <?php
4485
- RSSSL()->rsssl_help->get_comment($comment);
4486
- }
4487
-
4488
- /**
4489
- *
4490
- * Get the option to enable high contrast
4491
- *
4492
- * @since 5.1.3
4493
- *
4494
- * @access public
4495
- *
4496
- */
4497
-
4498
- public function get_option_high_contrast()
4499
- {
4500
- ?>
4501
- <label class="rsssl-switch">
4502
- <input id="rlrsssl_options" name="rlrsssl_options[high_contrast]" size="40" value="1"
4503
- type="checkbox" <?php checked(1, $this->high_contrast, true) ?> />
4504
- <span class="rsssl-slider rsssl-round"></span>
4505
- </label>
4506
- <?php
4507
- }
4508
-
4509
  /**
4510
  *
4511
  * Add a button and thickbox to deactivate the plugin while keeping SSL
@@ -4530,29 +2502,29 @@ class rsssl_admin extends rsssl_front_end
4530
  text-align: center !important;
4531
  }
4532
  #TB_window.rsssl-deactivation-popup {
4533
- height:390px!important;
4534
- top:initial!important;
4535
  margin-top:initial!important;
4536
  margin-left:initial!important;
4537
  display:flex;
4538
  flex-direction: column;
4539
- top: 50%!important;
4540
  left: 50%;
4541
  transform: translate(-50%, -50%);
4542
  width:576px!important;
4543
- border-radius:12px!important;
4544
  }
4545
  .rsssl-deactivation-popup #TB_title{
4546
  padding-bottom: 20px;
4547
  border-radius:12px;
4548
  border-bottom:none!important;
4549
- background:#fff#important;
4550
  }
4551
  .rsssl-deactivation-popup #TB_ajaxWindowTitle {
4552
  font-weight:bold;
4553
  font-size:20px;
4554
- padding: 20px;
4555
- background:#fff#important;
 
4556
  }
4557
 
4558
  .rsssl-deactivation-popup .tb-close-icon {
@@ -4611,17 +2583,6 @@ class rsssl_admin extends rsssl_front_end
4611
  list-style: disc;
4612
  padding-left: 20px;
4613
  }
4614
- .rsssl-deactivate-notice-footer .button {
4615
- border-radius: 6px!important;
4616
- padding: 10px;
4617
- min-width: 120px;
4618
- white-space: nowrap;
4619
- border-radius: var(--cmplz_button_border_radius);
4620
- cursor: pointer;
4621
- text-decoration: none;
4622
- text-align: center;
4623
-
4624
- }
4625
  </style>
4626
  <?php } ?>
4627
  <script>
@@ -4631,12 +2592,10 @@ class rsssl_admin extends rsssl_front_end
4631
  e.preventDefault();
4632
  tb_show( '<?php _e("Are you sure?", "really-simple-ssl") ?>', '#TB_inline?height=auto&inlineId=deactivate_keep_ssl', 'null');
4633
  $("#TB_window").addClass('rsssl-deactivation-popup');
4634
-
4635
  });
4636
  if ($('#deactivate-really-simple-ssl').length){
4637
  $('.rsssl-button-deactivate-revert').attr('href', $('#deactivate-really-simple-ssl').attr('href') );
4638
  }
4639
-
4640
  });
4641
  </script>
4642
  <div id="deactivate_keep_ssl" style="display: none;">
@@ -4658,8 +2617,7 @@ class rsssl_admin extends rsssl_front_end
4658
 
4659
  <?php
4660
  $token = wp_create_nonce('rsssl_deactivate_plugin');
4661
- $deactivate_keep_ssl_link = admin_url("options-general.php?page=rlrsssl_really_simple_ssl&action=uninstall_keep_ssl&token=" . $token);
4662
-
4663
  ?>
4664
  <div class="rsssl-deactivate-notice-footer">
4665
  <a class="button button-default" href="#" id="rsssl_close_tb_window"><?php _e("Cancel", "really-simple-ssl") ?></a>
@@ -4670,84 +2628,44 @@ class rsssl_admin extends rsssl_front_end
4670
  <?php
4671
  }
4672
 
4673
- /**
4674
- *
4675
- * Mixed content fixer option
4676
- *
4677
- */
4678
-
4679
- public function get_option_autoreplace_insecure_links()
4680
- {
4681
- $autoreplace_mixed_content = $this->autoreplace_insecure_links;
4682
- $disabled = "";
4683
- $comment = "";
4684
-
4685
- if (is_multisite() && rsssl_multisite::this()->autoreplace_mixed_content) {
4686
- $disabled = "disabled";
4687
- $autoreplace_mixed_content = TRUE;
4688
- $comment = __("This option is enabled on the network menu.", "really-simple-ssl");
4689
- }
4690
-
4691
- ?>
4692
- <label class="rsssl-switch" id="rsssl-maybe-highlight-autoreplace_insecure_links">
4693
- <input id="rlrsssl_options" name="rlrsssl_options[autoreplace_insecure_links]" size="40" value="1"
4694
- type="checkbox" <?php checked(1, $autoreplace_mixed_content, true) ?> <?php echo $disabled?>/>
4695
- <span class="rsssl-slider rsssl-round"></span>
4696
- </label>
4697
-
4698
- <?php
4699
- RSSSL()->rsssl_help->get_comment($comment);
4700
- }
4701
-
4702
  /**
4703
  * Add settings link on plugins overview page
4704
- * @param string $links
4705
- * @return string $links
 
 
4706
  * @since 2.0
4707
  *
4708
  * @access public
4709
  *
4710
  */
4711
 
 
 
 
 
4712
 
4713
- public function plugin_settings_link($links)
4714
- {
4715
- $settings_link = '<a href="' . admin_url("options-general.php?page=rlrsssl_really_simple_ssl") . '">' . __("Settings", "really-simple-ssl") . '</a>';
4716
- array_unshift($links, $settings_link);
 
 
 
 
 
4717
 
4718
- if ( apply_filters('rsssl_settings_link', 'free') === 'free' ) {
4719
- $support = '<a target="_blank" href="https://wordpress.org/support/plugin/really-simple-ssl/">' . __('Support', 'really-simple-ssl') . '</a>';
4720
- } else {
4721
- $support = '<a target="_blank" href="https://really-simple-ssl.com/support">' . __('Premium Support', 'really-simple-ssl') . '</a>';
4722
- }
4723
  array_unshift($links, $support);
4724
 
4725
  if ( ! defined( 'rsssl_pro_version' ) ) {
4726
- $upgrade_link = '<a style="color:#2271b1;font-weight:bold" target="_blank" href="https://really-simple-ssl.com/pro">'
4727
- . __( 'Improve security - Upgrade to Pro', 'really-simple-ssl' ) . '</a>';
4728
  array_unshift( $links, $upgrade_link );
4729
  }
4730
- return $links;
4731
- }
4732
-
4733
-
4734
- /**
4735
- * Check if wpconfig contains httponly cookie settings
4736
- *
4737
- * @since 4.0.11
4738
- *
4739
- * @access public
4740
- * @return boolean
4741
- *
4742
- */
4743
 
4744
- public function contains_secure_cookie_settings()
4745
- {
4746
- if ( $this->secure_cookie_settings_status() === 'set' ) {
4747
- return true;
4748
- } else {
4749
- return false;
4750
- }
4751
  }
4752
 
4753
  /**
@@ -4759,7 +2677,7 @@ class rsssl_admin extends rsssl_front_end
4759
  public function secure_cookie_settings_status()
4760
  {
4761
  $wpconfig_path = $this->find_wp_config_path();
4762
- if (!$wpconfig_path) {
4763
  return 'wpconfig-not-writable';
4764
  }
4765
 
@@ -4780,29 +2698,29 @@ class rsssl_admin extends rsssl_front_end
4780
  */
4781
 
4782
  public function insert_secure_cookie_settings(){
4783
- if (!rsssl_user_can_manage() ) return;
4784
-
4785
- if ( wp_doing_ajax() || !$this->is_settings_page() ) return;
4786
 
4787
- //only if this site has SSL activated, otherwise, remove cookie settings and exit.
4788
- if (!$this->ssl_enabled) {
4789
- $this->remove_secure_cookie_settings();
4790
- return;
4791
  }
4792
 
4793
  //if multisite, only on network wide activated setups
4794
- if (is_multisite() && !RSSSL()->rsssl_multisite->ssl_enabled_networkwide ) return;
 
 
4795
 
4796
  //only if cookie settings were not inserted yet
4797
- if (!$this->contains_secure_cookie_settings() ) {
4798
- $wpconfig_path = RSSSL()->really_simple_ssl->find_wp_config_path();
4799
  $wpconfig = file_get_contents($wpconfig_path);
4800
  if ((strlen($wpconfig)!=0) && is_writable($wpconfig_path)) {
4801
  $rule = "\n"."//Begin Really Simple SSL session cookie settings"."\n";
4802
  $rule .= "@ini_set('session.cookie_httponly', true);"."\n";
4803
  $rule .= "@ini_set('session.cookie_secure', true);"."\n";
4804
  $rule .= "@ini_set('session.use_only_cookies', true);"."\n";
4805
- $rule .= "//END Really Simple SSL"."\n";
4806
 
4807
  $insert_after = "<?php";
4808
  $pos = strpos($wpconfig, $insert_after);
@@ -4815,8 +2733,6 @@ class rsssl_admin extends rsssl_front_end
4815
  }
4816
  }
4817
 
4818
-
4819
-
4820
  /**
4821
  * Get the absolute path the the www directory of this site, where .htaccess lives.
4822
  *
@@ -4826,7 +2742,7 @@ class rsssl_admin extends rsssl_front_end
4826
  *
4827
  */
4828
 
4829
- public function getABSPATH()
4830
  {
4831
  $path = ABSPATH;
4832
  if ($this->is_subdirectory_install()) {
@@ -4850,12 +2766,15 @@ class rsssl_admin extends rsssl_front_end
4850
  * @return bool
4851
  */
4852
  public function can_apply_networkwide(){
4853
- if ( !is_multisite() ) {
4854
  return true;
4855
- } elseif (RSSSL()->rsssl_multisite->ssl_enabled_networkwide) {
 
 
4856
  return true;
4857
  }
4858
- return false;
 
4859
  }
4860
 
4861
  /**
@@ -4869,48 +2788,30 @@ class rsssl_admin extends rsssl_front_end
4869
 
4870
  protected function is_subdirectory_install()
4871
  {
4872
- if (strlen(site_url()) > strlen(home_url())) {
4873
- return true;
4874
- }
4875
- return false;
4876
  }
4877
 
4878
  /**
4879
- * @return mixed|string
4880
- *
4881
  * Retrieve the contents of the test page
 
 
4882
  *
4883
  */
4884
 
4885
  protected function get_test_page_contents()
4886
  {
4887
  $filecontents = get_transient('rsssl_testpage');
4888
- if (!$filecontents) {
4889
- $filecontents = "";
4890
-
4891
  $testpage_url = trailingslashit($this->test_url()) . "ssl-test-page.php";
4892
- $this->trace_log("Opening testpage to check server configuration: " . $testpage_url);
4893
-
4894
  $response = wp_remote_get($testpage_url);
4895
-
4896
- if (is_array($response)) {
4897
- $status = wp_remote_retrieve_response_code($response);
4898
  $filecontents = wp_remote_retrieve_body($response);
4899
  }
4900
 
4901
- $this->trace_log("test page url, enter in browser to check manually: " . $testpage_url);
4902
-
4903
- if (!is_wp_error($response) && (strpos($filecontents, "#SSL TEST PAGE#") !== false)) {
4904
- $this->trace_log("SSL test page loaded successfully");
4905
- } else {
4906
- $error = "";
4907
- if (is_wp_error($response)) $error = $response->get_error_message();
4908
- $this->trace_log("Could not open testpage " . $error);
4909
- }
4910
- if (empty($filecontents)) {
4911
  $filecontents = 'not-valid';
4912
  }
4913
- set_transient('rsssl_testpage', $filecontents, 600);
4914
  }
4915
  return $filecontents;
4916
  }
@@ -4941,111 +2842,73 @@ class rsssl_admin extends rsssl_front_end
4941
 
4942
  public function uses_default_folder_name() {
4943
  $current_plugin_path = $this->get_current_rsssl_free_dirname();
4944
- if ( $this->plugin_dir === $current_plugin_path ) {
4945
- return true;
4946
- } else {
4947
- return false;
4948
- }
4949
- }
4950
 
4951
  /**
4952
- * @return string
4953
  *
4954
  * since 3.1
4955
  *
4956
- * Determine the htaccess file. This can be either the regular .htaccess file, or an htaccess.conf file on bitnami installations.
4957
- *
4958
  */
4959
 
4960
  public function htaccess_file() {
4961
- if ($this->uses_htaccess_conf()) {
4962
  $htaccess_file = realpath(dirname(ABSPATH) . "/conf/htaccess.conf");
4963
  } else {
4964
- $htaccess_file = $this->ABSpath . ".htaccess";
4965
  }
4966
-
4967
  return $htaccess_file;
4968
  }
4969
 
4970
  /**
4971
- *
4972
- * Determine whether or not to remove the &highlight= parameter from URL
4973
- *
4974
- * @since 3.2
4975
- *
4976
- * @access public
4977
  *
4978
- */
4979
-
4980
- public function maybe_remove_highlight_from_url() {
4981
-
4982
- $http_referrer = isset($_POST['_wp_http_referer']) ? $_POST['_wp_http_referer'] : false;
4983
- if ($http_referrer && strpos( $http_referrer, "&highlight=" ) ) {
4984
- $url = add_query_arg( array(
4985
- "page" => "rlrsssl_really_simple_ssl",
4986
- "tab" => "configuration"
4987
- ), admin_url( "options-general.php" ) );
4988
- wp_safe_redirect( $url );
4989
- exit;
4990
- }
4991
- }
4992
-
4993
- /**
4994
- * Get template
4995
- * @param string $file
4996
- * @param string $path
4997
- * @param array $args
4998
- *
4999
  * @return string
5000
  */
5001
- public function get_template($file, $path = rsssl_path, $args = array())
5002
- {
5003
- $file = trailingslashit($path) . 'templates/' . $file;
5004
- $theme_file = trailingslashit(get_stylesheet_directory()) . dirname(rsssl_path) . $file;
5005
 
5006
- if (file_exists($theme_file)) {
5007
- $file = $theme_file;
5008
  }
5009
 
5010
- if (strpos($file, '.php') !== false) {
5011
- ob_start();
5012
- require $file;
5013
- $contents = ob_get_clean();
5014
- } else {
5015
- $contents = file_get_contents($file);
5016
  }
5017
 
5018
- if ( !empty($args) && is_array($args) ) {
5019
- foreach($args as $fieldname => $value ) {
5020
- $contents = str_replace( '{'.$fieldname.'}', $value, $contents );
5021
- }
5022
- }
5023
 
5024
- return $contents;
5025
  }
5026
  } //class closure
5027
 
5028
- if (!function_exists('rsssl_ssl_enabled')) {
5029
  function rsssl_ssl_enabled() {
5030
- return RSSSL()->really_simple_ssl->ssl_enabled;
5031
  }
5032
  }
5033
 
5034
  if (!function_exists('rsssl_ssl_detected')) {
5035
  function rsssl_ssl_detected() {
5036
- if ( ! RSSSL()->really_simple_ssl->wpconfig_ok() ) {
5037
  return apply_filters('rsssl_ssl_detected', 'fail');
5038
  }
5039
 
5040
- $valid = RSSSL()->rsssl_certificate->is_valid();
5041
  if ( !$valid ) {
5042
- if ( ! function_exists( 'stream_context_get_params' ) || RSSSL()->rsssl_certificate->detection_failed() ) {
5043
  return apply_filters('rsssl_ssl_detected', 'no-response');
5044
  } else {
5045
  return apply_filters('rsssl_ssl_detected', 'no-ssl-detected');
5046
  }
5047
  } else {
5048
- $about_to_expire = RSSSL()->rsssl_certificate->about_to_expire();
5049
  if ( !$about_to_expire ) {
5050
  return apply_filters('rsssl_ssl_detected', 'ssl-detected');
5051
  } else {
@@ -5057,32 +2920,6 @@ if (!function_exists('rsssl_ssl_detected')) {
5057
  }
5058
  }
5059
 
5060
- if (!function_exists('rsssl_check_redirect')) {
5061
- function rsssl_check_redirect() {
5062
- if ( ! RSSSL()->really_simple_ssl->has_301_redirect() ) {
5063
- return 'no-redirect-set';
5064
- }
5065
-
5066
- if ( RSSSL()->really_simple_ssl->has_301_redirect() && RSSSL()->rsssl_server->uses_htaccess() && RSSSL()->really_simple_ssl->htaccess_contains_redirect_rules() ) {
5067
- return 'htaccess-redirect-set';
5068
- }
5069
-
5070
- if ( RSSSL()->rsssl_server->uses_htaccess() && ! is_writable( RSSSL()->really_simple_ssl->htaccess_file()) && ( ! is_multisite() || ! RSSSL()->rsssl_multisite->is_per_site_activated_multisite_subfolder_install() ) ) {
5071
- return 'htaccess-not-writeable';
5072
- }
5073
-
5074
- if ( RSSSL()->really_simple_ssl->htaccess_redirect && !RSSSL()->really_simple_ssl->htaccess_test_success) {
5075
- return 'htaccess-rules-test-failed';
5076
- }
5077
-
5078
- if ( RSSSL()->really_simple_ssl->has_301_redirect() && RSSSL()->really_simple_ssl->wp_redirect && RSSSL()->rsssl_server->uses_htaccess() && ! RSSSL()->really_simple_ssl->htaccess_redirect && ( ! is_multisite() || ! RSSSL()->rsssl_multisite->is_per_site_activated_multisite_subfolder_install() )) {
5079
- return 'wp-redirect-to-htaccess';
5080
- }
5081
-
5082
- return 'default';
5083
- }
5084
- }
5085
-
5086
  if (!function_exists('rsssl_uses_elementor')) {
5087
  function rsssl_uses_elementor() {
5088
  return ( defined( 'ELEMENTOR_VERSION' ) || defined( 'ELEMENTOR_PRO_VERSION' ) );
@@ -5142,16 +2979,33 @@ if (!function_exists('rsssl_ssl_activation_time_no_longer_then_3_days_ago')) {
5142
  }
5143
 
5144
  if ( !function_exists('rsssl_letsencrypt_wizard_url') ) {
5145
- function rsssl_letsencrypt_wizard_url(){
5146
- if (is_multisite() && !is_main_site()) {
5147
- return add_query_arg(array('page' => 'rlrsssl_really_simple_ssl', 'tab' => 'letsencrypt'), get_admin_url(get_main_site_id(),'options-general.php') );
 
 
 
 
 
 
 
 
 
 
5148
  } else {
5149
- return add_query_arg(array('page' => 'rlrsssl_really_simple_ssl', 'tab' => 'letsencrypt'), admin_url('options-general.php') );
5150
  }
5151
  }
5152
  }
5153
 
5154
  if ( !function_exists('rsssl_detected_duplicate_ssl_plugin')) {
 
 
 
 
 
 
 
5155
  function rsssl_detected_duplicate_ssl_plugin( $return_name = false ){
5156
  $plugin = false;
5157
  if ( defined('WPLE_PLUGIN_VERSION') ){
@@ -5188,9 +3042,6 @@ if ( !function_exists('rsssl_detected_duplicate_ssl_plugin')) {
5188
 
5189
  if ( !function_exists('rsssl_ssl_detection_overridden' ) ) {
5190
  function rsssl_ssl_detection_overridden() {
5191
- if ( get_option('rsssl_ssl_detection_overridden') && get_option('rsssl_ssl_detection_overridden') !== false ) {
5192
- return true;
5193
- }
5194
- return false;
5195
  }
5196
  }
1
  <?php
2
+ defined('ABSPATH') or die();
3
 
4
+ class rsssl_admin
5
  {
 
6
  private static $_this;
7
+ public $wpconfig_siteurl_not_fixed = false;
8
+ public $no_server_variable = false;
9
+ public $do_wpconfig_loadbalancer_fix = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  public $plugin_dir = "really-simple-ssl";
11
  public $plugin_filename = "rlrsssl-really-simple-ssl.php";
12
+ public $abs_path;
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  public $ssl_type = "NA";
 
 
14
  public $pro_url;
15
+ public $configuration_loaded = false;
16
 
17
  function __construct()
18
  {
 
19
  if (isset(self::$_this))
20
  wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this)));
21
 
22
  self::$_this = $this;
23
+ $this->abs_path = $this->getabs_path();
24
+ $this->pro_url = is_multisite() ? 'https://really-simple-ssl.com/pro-multisite' : 'https://really-simple-ssl.com/pro';
25
 
26
+ register_deactivation_hook( __DIR__ . "/" . $this->plugin_filename, array($this, 'deactivate'));
 
 
 
 
 
 
 
 
 
 
 
 
27
  add_action( 'admin_init', array($this, 'add_privacy_info') );
28
  add_action( 'admin_init', array($this, 'maybe_dismiss_review_notice') );
29
+
30
+
31
+ //add the settings page for the plugin
32
+ add_action('admin_enqueue_scripts', array($this, 'enqueue_assets'));
33
+ add_action('admin_init', array($this, 'listen_for_deactivation'), 40);
34
+ add_action('plugins_loaded', array($this, 'maybe_redirect_old_settings_url'), 10);
35
 
36
  $plugin = rsssl_plugin;
37
+ add_filter("plugin_action_links_$plugin", array($this, 'plugin_settings_link'));
 
38
 
39
+ //Add update notification to Settings admin menu
40
+ add_action('admin_menu', array($this, 'add_plus_ones') );
41
  // Only show deactivate popup when SSL has been enabled.
42
+ if ( rsssl_get_option('ssl_enabled') ) {
43
  add_action('admin_footer', array($this, 'deactivate_popup'), 40);
44
  }
45
+
46
+
47
+ //callbacks for the ajax dismiss buttons
48
+ add_action('wp_ajax_rsssl_dismiss_review_notice', array($this, 'dismiss_review_notice_callback'));
49
+
50
+ //handle notices
51
+ add_action('admin_notices', array($this, 'show_notices'));
52
+ //show review notice, only to free users
53
+ if ( !defined("rsssl_pro_version") && !is_multisite() ) {
54
+ add_action('admin_notices', array($this, 'show_leave_review_notice'));
55
+ }
56
+
57
+ //hooks only needed on settings page
58
+ if ( $this->is_settings_page() ) {
59
+ /**
60
+ * Htaccess redirect handling
61
+ */
62
+ add_action( 'rsssl_after_save_field', array($this, 'maybe_flush_wprocket_htaccess' ),100, 4 );
63
+ add_action( 'admin_init', array($this, 'insert_secure_cookie_settings'), 70 );
64
+ add_action( 'admin_init', array($this, 'recheck_certificate') );
65
+ }
66
+
67
+ add_filter( 'rsssl_htaccess_security_rules', array($this, 'add_htaccess_redirect') );
68
+ add_filter( 'before_rocket_htaccess_rules', array($this, 'add_htaccess_redirect_before_wp_rocket' ) );
69
+ add_action( 'rocket_activation', 'rsssl_wrap_htaccess' );
70
+ add_action( 'rocket_deactivation' , 'rsssl_wrap_htaccess' );
71
  }
72
 
73
  static function this()
76
  }
77
 
78
  /**
79
+ * Redirect to the new settings page
80
+ *
81
+ * @return void
82
  */
83
+ public function maybe_redirect_old_settings_url(){
84
+ if ( !rsssl_user_can_manage() || is_multisite() ) {
85
+ return;
 
 
 
 
86
  }
87
+ if ( isset($_GET['page']) && $_GET['page'] === 'rlrsssl_really_simple_ssl' ){
88
+ wp_redirect(add_query_arg(['page' => 'really-simple-security'], rsssl_admin_url() ));
89
+ exit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  }
91
  }
92
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  /**
94
  * Add some privacy info, telling our users we aren't tracking them
95
  */
96
 
97
  public function add_privacy_info()
98
  {
99
+ if ( !function_exists('wp_add_privacy_policy_content') ) {
100
  return;
101
  }
102
 
116
  *
117
  * @return bool
118
  */
119
+
120
  public function is_bf(){
121
  if ( defined("rsssl_pro_version" ) ) {
122
  return false;
123
  }
124
+ $start_day = 21;
125
+ $end_day = 28;
126
  $current_year = date("Y");//e.g. 2021
127
  $current_month = date("n");//e.g. 3
128
  $current_day = date("j");//e.g. 4
129
 
130
+ if ( $current_year == 2022 && $current_month == 11 &&
131
  $current_day >=$start_day &&
132
  $current_day <= $end_day
133
  ) {
134
  return true;
 
 
135
  }
 
 
 
 
 
136
 
137
+ return false;
 
 
 
 
138
  }
139
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  /**
141
  * Initializes the admin class
142
  *
148
 
149
  public function init()
150
  {
151
+ if ( !rsssl_user_can_manage() ) {
152
+ return;
153
+ }
154
 
155
+ if ( defined("RSSSL_FORCE_ACTIVATE") && RSSSL_FORCE_ACTIVATE ) {
156
+ rsssl_update_option( 'ssl_enabled', true );
 
 
 
 
 
 
157
  }
158
 
159
  /*
175
  $less_than_5_minutes_ago = get_option('rsssl_flush_caches') > strtotime("-5 minute");
176
  if (get_option('rsssl_flush_caches') && $more_than_2_minute_ago && $less_than_5_minutes_ago){
177
  delete_option('rsssl_flush_caches');
178
+ add_action('shutdown', array( RSSSL()->cache, 'flush' ) );
179
  }
180
 
181
  // Set default progress toggle to remaining tasks if it hasn't been set
182
  if (!get_option('rsssl_all_tasks') && !get_option('rsssl_remaining_tasks') ) {
183
+ update_option('rsssl_remaining_tasks', true, false );
184
  }
185
 
186
  /*
187
+ Detect configuration when:
 
188
  - on settings page
189
+ - SSL not enabled
190
  */
191
 
192
+ //when configuration detection should run again
193
+ if ( !rsssl_get_option('ssl_enabled') || $this->is_settings_page() || defined('RSSSL_DOING_SYSTEM_STATUS') ) {
194
  $this->detect_configuration();
195
+ if ( !$this->wpconfig_ok() ) {
196
+ rsssl_update_option('ssl_enabled', false);
197
+ } else {
198
+ //when one of the used server variables was found, test if the redirect works
199
+ if ( RSSSL()->server->uses_htaccess() && $this->ssl_type !== "NA" ) {
200
+ $this->htaccess_test_success();
201
+ }
 
 
 
 
 
 
 
 
 
 
202
  }
203
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
204
  }
205
 
206
  /**
207
+ * Add htaccess redirect
208
+ * @hooked
209
+ * @param array $rules
210
+ * @return []
211
  */
 
 
 
 
 
 
 
 
 
212
 
213
+ public function add_htaccess_redirect( $rules ) {
214
+ //we don't want these rules added by rsssl if wp rocket active.
215
+ //if it's deactivating, start adding them again.
216
+ if ( $this->is_deactivating_wprocket() || !function_exists('rocket_clean_domain') ) {
217
+ $rule = $this->get_redirect_rules();
218
+ if ( !empty($rule) ) {
219
+ $rules[] = ['rules' => $rule, 'identifier' => 'RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1'];
220
  }
221
  }
222
 
223
+ return $rules;
224
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
225
 
226
+ /**
227
+ * Check if we're in the middle of wp rocket deactivation
228
+ *
229
+ * @return bool
230
+ */
231
+ public function is_deactivating_wprocket(){
232
+ //default deactivating
233
+ $is_deactivating = isset($_GET['action']) && $_GET['action']==='deactivate' && isset($_GET['plugin']) && strpos($_GET['plugin'], 'wp-rocket.php')!==false;
234
+ //deactivating with modal
235
+ $is_deactivating = $is_deactivating || ( isset( $_GET['action'] ) && $_GET['action'] === 'rocket_deactivation' );
236
+ return $is_deactivating;
237
  }
238
 
239
  /**
244
 
245
  public function listen_for_deactivation()
246
  {
247
+ if ( !rsssl_user_can_manage() ) {
248
+ return;
249
+ }
250
 
251
+ if ( !isset($_GET['token']) || (!wp_verify_nonce($_GET['token'], 'rsssl_deactivate_plugin')) ) {
252
+ return;
253
+ }
254
 
255
+ if (isset($_GET["action"]) && $_GET["action"] === 'uninstall_keep_ssl') {
 
256
  //deactivate plugin, but don't revert to http.
257
  $plugin = $this->plugin_dir . "/" . $this->plugin_filename;
258
  $plugin = plugin_basename(trim($plugin));
259
 
260
+ if ( is_multisite() ) {
261
  $network_current = get_site_option('active_sitewide_plugins', array());
262
+ if ( is_plugin_active_for_network($plugin) ) {
263
  unset($network_current[$plugin]);
264
  }
265
  update_site_option('active_sitewide_plugins', $network_current);
 
266
  //remove plugin one by one on each site
267
  $sites = get_sites();
268
  foreach ($sites as $site) {
269
+ switch_to_blog($site->blog_id);
 
270
  $current = get_option('active_plugins', array());
271
  $current = $this->remove_plugin_from_array($plugin, $current);
272
  update_option('active_plugins', $current);
 
273
  restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
274
  }
275
  } else {
277
  $current = $this->remove_plugin_from_array($plugin, $current);
278
  update_option('active_plugins', $current);
279
  }
280
+ do_action("rsssl_deactivate");
281
+ wp_redirect(admin_url('plugins.php'));
282
  exit;
283
  }
284
  }
298
  }
299
 
300
  /**
 
 
301
  * Check if site uses an htaccess.conf file, used in bitnami installations
302
  *
303
+ * @Since 3.1
304
  */
305
 
306
  public function uses_htaccess_conf() {
307
  $htaccess_conf_file = dirname(ABSPATH) . "/conf/htaccess.conf";
308
  //conf/htaccess.conf can be outside of open basedir, return false if so
309
  $open_basedir = ini_get("open_basedir");
310
+ if ( !empty($open_basedir) ) {
 
 
 
 
 
311
  return false;
312
  }
313
+ return is_file($htaccess_conf_file);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
314
  }
315
 
316
  /**
317
  * If the user has clicked "recheck certificate, clear the cache for the certificate check.
318
+ * Used in a form in the dashboard notices.
319
  * @return void
320
  */
321
  public function recheck_certificate(){
322
+ if ( !rsssl_user_can_manage()) {
323
+ return;
324
+ }
325
+ if ( isset($_POST['rsssl_recheck_certificate']) ) {
326
  delete_transient('rsssl_certinfo');
327
  }
328
  }
329
 
 
330
  /**
331
  * Activate the SSL for this site
332
  */
333
 
334
+ public function activate_ssl($request)
335
  {
336
+ if ( !rsssl_user_can_manage() ) {
337
+ return [
338
+ 'success' => false,
339
+ 'site_url_changed' => false,
340
+ ];
341
+ }
342
+ $safe_mode = defined('RSSSL_SAFE_MODE') && RSSSL_SAFE_MODE;
343
+ $error = false;
344
+ $is_rest_request = $request instanceof WP_REST_Request;
345
+ $site_url_changed = false;
346
 
347
+ if ( rsssl_get_option('site_has_ssl') || get_option('rsssl_ssl_detection_overridden') ){
348
+ //in a configuration reverse proxy without a set server variable https, add code to wpconfig
349
+ if ( $this->do_wpconfig_loadbalancer_fix || $this->no_server_variable ) {
350
+ $this->wpconfig_loadbalancer_fix();
351
+ }
352
 
353
+ if ( !$safe_mode && $this->wpconfig_siteurl_not_fixed ){
354
+ $this->fix_siteurl_defines_in_wpconfig();
355
+ }
356
+
357
+ $this->insert_secure_cookie_settings();
358
+
359
+ if ( !$safe_mode ) {
360
+ rsssl_update_option('redirect', 'wp_redirect');
361
+ rsssl_update_option('mixed_content_fixer', true);
362
+
363
+ //flush caches when just activated ssl
364
+ //flush the permalinks
365
+ update_option('rsssl_activation_timestamp', time(), false );
366
+ if (!defined('RSSSL_NO_FLUSH') || !RSSSL_NO_FLUSH) {
367
+ update_option('rsssl_flush_rewrite_rules', time(), false );
368
+ }
369
+ update_option('rsssl_flush_caches', time(), false );
370
+ }
371
+ rsssl_update_option('ssl_enabled', true);
372
+ $site_url_changed = $this->set_siteurl_to_ssl();
373
+ delete_transient('rsssl_admin_notices');
374
+ } else {
375
+ $error = true;
376
  }
 
377
 
378
+ //if this is true, this is a request from the network admin. We save an option to ensure we know that this part is completed
379
+ if ( is_multisite() && rsssl_is_networkwide_active() ) {
380
+ update_site_option('rsssl_network_activation_status', 'main_site_activated');
381
+ }
382
 
383
+ if ( $is_rest_request ) {
384
+ return [
385
+ 'success' => !$error,
386
+ 'site_url_changed' => $site_url_changed,
387
+ ];
388
+ }
 
 
389
  }
390
 
391
  /**
395
  */
396
  public function wpconfig_ok()
397
  {
398
+ //return false;
399
  if (($this->do_wpconfig_loadbalancer_fix || $this->no_server_variable || $this->wpconfig_siteurl_not_fixed) && !$this->wpconfig_is_writable()) {
400
  $result = false;
401
  } else {
404
  return apply_filters('rsssl_wpconfig_ok_check', $result);
405
  }
406
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
407
  /**
408
+ * @param string $class
409
+ * @param string $content
410
+ * @param string|bool $more_info
411
+ * @param string|bool $dismiss_id
412
+ *
413
  * @return false|string
414
  *
415
  * @since 4.0
417
  *
418
  */
419
 
420
+ public function notice_html( string $class, string $content, $more_info=false, $dismiss_id=false ) {
421
+ $class .= ' notice ';
422
+ $target = strpos($more_info, 'really-simple-ssl.com')!==false ? 'target="_blank"' : '';
423
+ ob_start();?>
 
424
  <style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
425
  #rsssl-message {
426
  padding: 0;
427
+ border-left-color: #333;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
428
  }
429
+ #rsssl-message.error{
430
+ border-left-color:#d7263d;
431
  }
432
+ .rsssl-notice {
433
+ display:flex;
434
+ margin:15px;
435
  }
436
+ .rsssl-notice-content {
437
+ padding-top: 5px;
438
  }
439
+ .rsssl-admin-notice-more-info {
440
+ margin:0 10px 0 auto;
441
  }
442
+ .settings_page_really-simple-security #wpcontent #rsssl-message, .settings_page_really-simple-ssl #wpcontent #rsssl-message {
 
443
  margin: 20px;
444
  }
445
  </style>
446
+ <?php if ( is_rtl() ) { ?>
447
+ <style>
448
+ #rsssl-message {
449
+ border-right-color: #333;
450
+ }
451
+ #rsssl-message.error{
452
+ border-right-color:#d7263d;
453
+ }
454
+ .rsssl-admin-notice-more-info {
455
+ margin:0 auto 0 10px;
456
+ }
457
+ </style>
458
+ <?php }?>
459
+ <div id="rsssl-message" class="<?php echo $class?> really-simple-plugins">
460
+ <div class="rsssl-notice">
461
+ <div class="rsssl-notice-content">
462
+ <?php echo $content ?>
463
+ </div>
464
+ <?php if ($more_info ) { ?>
465
+ <div class="rsssl-admin-notice-more-info">
466
+ <a class="button" href="<?php echo add_query_arg(['page'=>'really-simple-security', 'dismiss_notice'=>$dismiss_id], rsssl_admin_url() )?>"><?php _e("Dismiss", "really-simple-ssl")?></a>
467
+ <a class="button" <?php echo $target?> href="<?php echo esc_url_raw($more_info)?>"><?php _e("More info", "really-simple-ssl")?></a></div>
468
+ <?php } ?>
469
+ </div>
470
+ </div>
471
+ <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
472
 
473
+ return ob_get_clean();
474
+ }
475
 
476
  /**
477
  * @return bool
484
  public function wpconfig_is_writable()
485
  {
486
  $wpconfig_path = $this->find_wp_config_path();
487
+ if ( is_writable($wpconfig_path) ) {
488
+ return true;
489
+ }
490
+
491
+ return false;
492
  }
493
 
494
  /**
499
 
500
  public function check_for_uninstall_file()
501
  {
502
+ if ( file_exists( __DIR__ . '/force-deactivate.php') ) {
503
  return 'fail';
504
  }
505
  return 'success';
506
  }
507
 
508
  /**
509
+ * Check to see if we are on the settings page, action hook independent
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
510
  *
511
  * @since 2.1
512
  *
514
  *
515
  */
516
 
517
+ public function is_settings_page()
518
  {
519
+ if ( rsssl_is_logged_in_rest() ) {
520
+ return true;
 
 
 
 
521
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
522
 
523
+ if ( !isset($_SERVER['QUERY_STRING']) ) {
524
+ return false;
525
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
526
 
527
  parse_str($_SERVER['QUERY_STRING'], $params);
528
+ return array_key_exists( "page", $params ) && ( $params["page"] === "really-simple-security" );
 
 
 
529
  }
530
 
531
  /**
534
  * @since 2.1
535
  *
536
  * @access public
537
+ * @return string|null
538
  *
539
  */
540
 
543
  //limit nr of iterations to 20
544
  $i = 0;
545
  $maxiterations = 20;
546
+ $dir = __DIR__;
547
  do {
548
  $i++;
549
  if (file_exists($dir . "/wp-config.php")) {
560
  *
561
  * @access public
562
  *
563
+ * @return void
564
  */
565
 
566
  public function remove_ssl_from_siteurl_in_wpconfig()
567
  {
568
+ if ( !rsssl_user_can_manage() ) {
569
+ return;
570
+ }
571
  $wpconfig_path = $this->find_wp_config_path();
572
  if (!empty($wpconfig_path)) {
573
  $wpconfig = file_get_contents($wpconfig_path);
 
574
  $homeurl_pos = strpos($wpconfig, "define('WP_HOME','https://");
575
  $siteurl_pos = strpos($wpconfig, "define('WP_SITEURL','https://");
576
 
577
+ if ( ($homeurl_pos !== false) || ($siteurl_pos !== false) ) {
578
+ if ( is_writable($wpconfig_path) ) {
579
  $search_array = array("define('WP_HOME','https://", "define('WP_SITEURL','https://");
580
  $ssl_array = array("define('WP_HOME','http://", "define('WP_SITEURL','http://");
581
  //now replace these urls
582
  $wpconfig = str_replace($search_array, $ssl_array, $wpconfig);
583
  file_put_contents($wpconfig_path, $wpconfig);
 
 
584
  }
585
  }
 
586
  }
587
  }
588
 
589
 
590
+ /**
591
+ * Checks if the wp config contains any defined siteurl and homeurl
 
 
592
  *
593
+ * @return void
594
+ */
595
  private function check_for_siteurl_in_wpconfig()
596
  {
597
+ if ( !rsssl_user_can_manage() ) {
598
+ return;
599
+ }
600
 
601
  $wpconfig_path = $this->find_wp_config_path();
602
+ if ( empty($wpconfig_path) ) {
603
+ return;
604
+ }
605
 
606
  $wpconfig = file_get_contents($wpconfig_path);
607
  $homeurl_pattern = '/(define\(\s*\'WP_HOME\'\s*,\s*\'http\:\/\/)/';
608
  $siteurl_pattern = '/(define\(\s*\'WP_SITEURL\'\s*,\s*\'http\:\/\/)/';
609
 
610
+ $this->wpconfig_siteurl_not_fixed = false;
611
  if (preg_match($homeurl_pattern, $wpconfig) || preg_match($siteurl_pattern, $wpconfig)) {
612
+ $this->wpconfig_siteurl_not_fixed = true;
 
613
  }
614
  }
615
 
626
 
627
  private function fix_siteurl_defines_in_wpconfig()
628
  {
629
+ if ( !rsssl_user_can_manage() ) {
630
+ return;
631
+ }
632
  $wpconfig_path = $this->find_wp_config_path();
633
+ if ( empty($wpconfig_path) ) {
634
+ return;
635
+ }
636
 
637
  $wpconfig = file_get_contents($wpconfig_path);
638
  $homeurl_pattern = '/(define\(\s*\'WP_HOME\'\s*,\s*\'http\:\/\/)/';
639
  $siteurl_pattern = '/(define\(\s*\'WP_SITEURL\'\s*,\s*\'http\:\/\/)/';
640
 
641
+ if ( preg_match($homeurl_pattern, $wpconfig) || preg_match($siteurl_pattern, $wpconfig) ) {
642
+ if ( is_writable($wpconfig_path) ) {
 
643
  $wpconfig = preg_replace($homeurl_pattern, "define('WP_HOME','https://", $wpconfig);
644
  $wpconfig = preg_replace($siteurl_pattern, "define('WP_SITEURL','https://", $wpconfig);
645
  file_put_contents($wpconfig_path, $wpconfig);
646
  } else {
 
647
  //only when siteurl or homeurl is defined in wpconfig, and wpconfig is not writable is there a possible issue because we cannot edit the defined urls.
648
  $this->wpconfig_siteurl_not_fixed = TRUE;
649
  }
 
 
650
  }
651
  }
652
 
663
  public function wpconfig_has_fixes()
664
  {
665
  $wpconfig_path = $this->find_wp_config_path();
666
+ if ( empty($wpconfig_path) ) {
667
+ return false;
668
+ }
669
  $wpconfig = file_get_contents($wpconfig_path);
670
 
671
  //only one of two fixes possible.
693
 
694
  public function wpconfig_loadbalancer_fix()
695
  {
696
+ if (!rsssl_user_can_manage()) {
697
+ return;
698
+ }
699
 
700
  $wpconfig_path = $this->find_wp_config_path();
701
  if (empty($wpconfig_path)) return;
702
  $wpconfig = file_get_contents($wpconfig_path);
703
+ if ( strpos($wpconfig, "//Begin Really Simple SSL Server variable fix") !== false ) {
704
+ return;
705
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
706
 
707
+ if ( strpos($wpconfig, "//Begin Really Simple SSL Load balancing fix") !== false ) {
708
+ return;
709
+ }
710
+
711
+ if (is_writable($wpconfig_path)) {
712
+ $rule = "\n" . "//Begin Really Simple SSL Server variable fix" . "\n";
713
+ $rule .= '$_SERVER["HTTPS"] = "on";' . "\n";
714
+ $rule .= "//END Really Simple SSL Server variable fix" . "\n";
715
+
716
+ $insert_after = "<?php";
717
+ $pos = strpos($wpconfig, $insert_after);
718
+ if ($pos !== false) {
719
+ $wpconfig = substr_replace($wpconfig, $rule, $pos + 1 + strlen($insert_after), 0);
720
  }
721
+
722
+ file_put_contents($wpconfig_path, $wpconfig);
723
  }
 
724
 
725
  }
726
 
 
727
  /**
728
+ * Removing changes made to the wpconfig
729
  *
730
  * @since 2.1
731
  *
733
  *
734
  */
735
 
736
+ public function remove_wpconfig_edit()
737
  {
738
+ if ( !rsssl_user_can_manage() ){
739
+ return;
740
+ }
741
 
742
  $wpconfig_path = $this->find_wp_config_path();
743
+ if (empty($wpconfig_path)) {
 
 
 
 
 
744
  return;
745
  }
746
 
747
+ //check for permissions
748
+ $wpconfig = file_get_contents($wpconfig_path);
749
+ if (!is_writable($wpconfig_path)) {
 
 
 
 
 
 
 
 
 
750
  return;
751
  }
752
 
753
+ //remove edits
754
+ $wpconfig = preg_replace("/\/\/Begin\s?Really\s?Simple\s?SSL.*?\/\/END\s?Really\s?Simple\s?SSL/s", "", $wpconfig);
755
+ $wpconfig = preg_replace("/\n+/", "\n", $wpconfig);
 
 
 
 
 
756
  file_put_contents($wpconfig_path, $wpconfig);
 
 
 
757
  }
758
 
 
759
  /**
760
+ * Changes the siteurl and homeurl to https
 
 
761
  *
762
+ * @since 2.0
763
  *
764
+ * @access public
765
+ * @return bool
766
  */
767
 
768
+ public function set_siteurl_to_ssl()
769
  {
770
+ $site_url_changed = false;
771
+ $site_url = get_option('siteurl');
772
+ $home_url = get_option('home');
773
+ if ( strpos($site_url,'https://')===false || strpos($home_url, 'https://')===false) {
774
+ update_option('siteurl', str_replace("http://", "https://", $site_url ));
775
+ update_option('home', str_replace("http://", "https://", $home_url ));
776
+ $site_url_changed = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
777
  }
778
 
779
+ //RSSSL has it's own, more extensive mixed content fixer.
780
+ update_option( 'https_migration_required', false );
781
+ return $site_url_changed;
782
  }
783
 
784
  /**
785
+ * On de-activation, siteurl and homeurl are reset to http
786
  *
787
+ * @since 2.0
788
  *
789
  * @access public
790
  *
791
  */
792
 
793
+ public function remove_ssl_from_siteurl()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
794
  {
795
+ if ( !rsssl_user_can_manage() ){
796
+ return;
797
+ }
798
  $siteurl_no_ssl = str_replace("https://", "http://", get_option('siteurl'));
799
  $homeurl_no_ssl = str_replace("https://", "http://", get_option('home'));
800
  update_option('siteurl', $siteurl_no_ssl);
802
  }
803
 
804
  /**
805
+ * Handles deactivation of this plugin
806
  *
807
  * @since 2.0
808
  *
810
  *
811
  */
812
 
813
+ public function deactivate()
814
  {
815
+ if ( !rsssl_user_can_manage() ) {
816
+ return;
817
+ }
818
+ if ( is_multisite() ) {
819
+ RSSSL()->multisite->deactivate();
820
+ } else {
821
+ $ssl_was_enabled = rsssl_get_option('ssl_enabled');
822
+ $this->deactivate_site($ssl_was_enabled);
823
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
824
  }
825
 
826
+ /**]
827
+ * Deactivate SSL for the currently loaded site
 
 
 
828
  *
829
+ * @param bool $ssl_was_enabled
830
+ *
831
+ * @return void
832
+ */
833
+ public function deactivate_site( bool $ssl_was_enabled){
834
 
835
+ if ( !rsssl_user_can_manage() ) {
836
+ return;
837
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
838
 
839
+ $this->remove_secure_cookie_settings();
840
+ if ($ssl_was_enabled) {
841
+ $this->remove_ssl_from_siteurl();
842
+ if ( !is_multisite() || is_main_site() ) {
843
+ $this->remove_ssl_from_siteurl_in_wpconfig();
844
+ $this->remove_wpconfig_edit();
845
+ rsssl_remove_htaccess_security_edits();
846
+ }
847
+ }
848
+
849
+ do_action("rsssl_deactivate");
850
+ rsssl_update_option('ssl_enabled', false);
851
  }
852
 
853
  /**
861
 
862
  public function remove_secure_cookie_settings() {
863
 
864
+ if ( !rsssl_user_can_manage() ) {
865
+ return;
866
+ }
867
+
868
+ if ( !$this->is_settings_page()) {
869
+ return;
870
+ }
871
 
872
+ if ( $this->secure_cookie_settings_status() !== 'set') {
873
+ return;
874
+ }
875
 
876
  $wpconfig_path = $this->find_wp_config_path();
877
+ if ( !is_writable($wpconfig_path) ) {
878
+ return;
879
+ }
880
 
881
  if (!empty($wpconfig_path)) {
882
  $wpconfig = file_get_contents($wpconfig_path);
886
  }
887
  }
888
 
889
+
890
  /**
891
  * Checks if we are currently on SSL protocol, but extends standard wp with loadbalancer check.
892
  *
899
  public function is_ssl_extended()
900
  {
901
  $server_var = FALSE;
902
+ if ((isset($_ENV['HTTPS']) && ('on' === $_ENV['HTTPS']))
 
903
  || (isset($_SERVER['HTTP_X_FORWARDED_SSL']) && (strpos($_SERVER['HTTP_X_FORWARDED_SSL'], '1') !== false))
904
  || (isset($_SERVER['HTTP_X_FORWARDED_SSL']) && (strpos($_SERVER['HTTP_X_FORWARDED_SSL'], 'on') !== false))
905
  || (isset($_SERVER['HTTP_CF_VISITOR']) && (strpos($_SERVER['HTTP_CF_VISITOR'], 'https') !== false))
910
  $server_var = TRUE;
911
  }
912
 
913
+ return is_ssl() || $server_var;
 
 
 
 
914
  }
915
 
916
  /**
924
 
925
  public function detect_configuration()
926
  {
927
+ $this->configuration_loaded = true;
928
  //if current page is on SSL, we can assume SSL is available, even when an errormsg was returned
929
+ if ( $this->is_ssl_extended() ) {
930
+ $site_has_ssl = true;
931
  } else {
932
  //if certificate is valid
933
+ $site_has_ssl = RSSSL()->certificate->is_valid();
 
934
  }
935
 
936
+ if ( $site_has_ssl ) {
937
  $filecontents = $this->get_test_page_contents();
 
938
  //get filecontents to check .htaccess redirection method and wpconfig fix
939
  //check the type of SSL, either by parsing the returned string, or by reading the server vars.
940
  if ((strpos($filecontents, "#CLOUDFRONT#") !== false) || (isset($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO']) && ($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] == 'https'))) {
960
  } elseif ((strpos($filecontents, "#NO KNOWN SSL CONFIGURATION DETECTED#") !== false)) {
961
  //if we are here, SSL was detected, but without any known server variables set.
962
  //So we can use this info to set a server variable ourselves.
963
+ if ( !$this->wpconfig_has_fixes() ) {
964
+ $this->no_server_variable = true;
965
  }
 
966
  $this->ssl_type = "NA";
967
  } else {
968
  //no valid response, so set to NA
970
  }
971
 
972
  //check for is_ssl()
973
+ if ( ( !$this->is_ssl_extended() &&
974
  (strpos($filecontents, "#SERVER-HTTPS-ON#") === false) &&
975
  (strpos($filecontents, "#SERVER-HTTPS-1#") === false) &&
976
+ (strpos($filecontents, "#SERVERPORT443#") === false)
977
+ ) ||
978
+ ( !is_ssl() && $this->is_ssl_extended() )) {
979
  //when is_ssl would return false, we should add some code to wp-config.php
980
+ if ( !$this->wpconfig_has_fixes() ) {
981
+ $this->do_wpconfig_loadbalancer_fix = true;
 
982
  }
983
  }
 
984
  }
985
  $this->check_for_siteurl_in_wpconfig();
986
+ rsssl_update_option('site_has_ssl', $site_has_ssl);
 
987
  }
988
 
 
989
  /**
990
  * Test if the htaccess redirect will work
991
  * This way, no redirect loops should occur.
996
  *
997
  */
998
 
999
+ public function htaccess_test_success()
1000
  {
1001
+ $test = get_transient('rsssl_htaccess_test_success');
1002
+ if ( !$test ) {
 
 
 
 
1003
  $filecontents = "";
1004
  $testpage_url = trailingslashit($this->test_url()) . "testssl/";
1005
+ switch ( $this->ssl_type ) {
1006
  case "CLOUDFRONT":
1007
  $testpage_url .= "cloudfront";
1008
  break;
1038
  }
1039
 
1040
  $testpage_url .= ("/ssl-test-page.html");
 
1041
  $response = wp_remote_get($testpage_url);
1042
  if (is_array($response)) {
 
1043
  $filecontents = wp_remote_retrieve_body($response);
1044
  }
1045
 
1046
+ if ( !is_wp_error($response) && (strpos($filecontents, "#SSL TEST PAGE#") !== false) ) {
1047
+ $test = 'success';
 
 
 
1048
  } else {
1049
  //.htaccess rewrite rule seems to be giving problems.
1050
+ $test = 'error';
 
 
 
 
 
1051
  }
1052
+ if ( empty($filecontents) ) {
1053
+ $test = 'no-response';
1054
  }
1055
+ set_transient('rsssl_htaccess_test_success', $test, 600);
1056
  }
1057
 
1058
+ if ( $test === 'no-response' || $test === 'error' ){
1059
+ return false;
 
 
 
 
 
 
 
1060
  }
1061
 
1062
+ if ( $test === 'success' ){
1063
+ return true;
1064
+ }
1065
  }
1066
 
1067
 
1090
  }
1091
 
1092
  //for subdomains or domain mapping situations, we have to convert the plugin_url from main site to the subdomain url.
1093
+ if ( is_multisite() && !is_main_site(get_current_blog_id()) && !RSSSL()->multisite->is_multisite_subfolder_install() ) {
1094
  $mainsiteurl = trailingslashit(str_replace("http://", "https://", network_site_url()));
 
1095
  $home = trailingslashit($https_home_url);
1096
  $plugin_url = str_replace($mainsiteurl, $home, $plugin_url);
 
 
 
1097
  }
1098
 
1099
  return $plugin_url;
1100
  }
1101
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1102
  /**
1103
  * @return bool
1104
  *
1110
 
1111
  public function htaccess_redirect_allowed()
1112
  {
1113
+ if ( is_multisite() && !$this->can_apply_networkwide() ) {
1114
  return false;
1115
+ } if (RSSSL()->server->uses_htaccess()) {
1116
  return true;
 
 
1117
  }
1118
+
1119
+ return false;
1120
  }
1121
 
1122
  /**
1136
 
1137
  $pattern = '/RewriteRule \^\(\.\*\)\$ https:\/\/%{HTTP_HOST}(\/\$1|%{REQUEST_URI}) (\[R=301,.*L\]|\[L,.*R=301\])/i';
1138
  $htaccess = file_get_contents($this->htaccess_file());
1139
+ return preg_match( $pattern, $htaccess );
 
 
 
 
 
1140
  }
1141
 
1142
  /**
1146
 
1147
  public function contains_rsssl_rules()
1148
  {
1149
+ if ( !file_exists($this->htaccess_file()) ) {
1150
  return false;
1151
  }
1152
 
1153
  $htaccess = file_get_contents($this->htaccess_file());
1154
+ if (
1155
+ preg_match( "/BEGIN rlrssslReallySimpleSSL/", $htaccess, $matches ) ||
1156
+ preg_match( "/BEGIN Really Simple SSL Redirect/", $htaccess, $matches ) ||
1157
+ preg_match( "/Begin Really Simple Security/", $htaccess, $matches )
1158
+ ) {
1159
  return false;
 
 
1160
  }
1161
+
1162
+ return true;
1163
  }
1164
 
1165
  /**
1172
 
1173
  public function has_301_redirect()
1174
  {
1175
+ if ( rsssl_get_option('redirect') === 'htaccess' || rsssl_get_option('redirect') === 'wp_redirect') {
 
 
1176
  return true;
1177
  }
1178
 
1179
+ if ( RSSSL()->server->uses_htaccess() && $this->htaccess_contains_redirect_rules()) {
1180
+ return true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1181
  }
1182
 
1183
+ return false;
1184
  }
1185
 
1186
  /**
1296
  }
1297
 
1298
  if ( $curl_check_done === 'no' ) {
1299
+ if ( RSSSL()->server->uses_htaccess() && file_exists($this->htaccess_file()) ) {
1300
  $htaccess = file_get_contents($this->htaccess_file());
1301
  foreach ($check_headers as $check_header){
1302
  if ( !preg_match("/".$check_header['pattern']."/", $htaccess, $check) ) {
1318
  */
1319
 
1320
  public function recommended_headers_enabled() {
 
1321
  $unused_headers = $this->get_recommended_security_headers();
1322
  if ( empty( $unused_headers ) ) {
1323
  return true;
1324
  }
1325
+ return false;
 
 
1326
  }
1327
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1328
  /**
1329
+ * Regenerate the wp rocket .htaccess rules
 
1330
  */
 
1331
 
1332
+ public function maybe_flush_wprocket_htaccess($field_id, $field_value, $prev_value, $field_type ){
1333
+ if ( $field_id==='redirect' && $field_value !== $prev_value && rsssl_user_can_manage() ){
1334
+ if ( function_exists('flush_rocket_htaccess') ) {
1335
+ flush_rocket_htaccess();
1336
+ }
1337
 
1338
+ if ( function_exists('rocket_generate_config_file') ) {
1339
+ rocket_generate_config_file();
1340
+ }
1341
+ }
1342
+ }
1343
 
1344
  /**
1345
+ * Return .htaccess redirect when using WP Rocket
1346
+ * @return string
1347
  */
1348
+ public function add_htaccess_redirect_before_wp_rocket() {
1349
+ $rules = $this->get_redirect_rules();
1350
+ if ( !empty($rules) ) {
1351
+ $start = "\n" . '#Begin Really Simple SSL Redirect';
1352
+ $end = "\n" . '#End Really Simple SSL Redirect' . "\n";
1353
+ $rules = $start.$rules.$end;
1354
+ }
1355
+ return $rules;
 
 
 
 
 
 
 
 
1356
  }
1357
 
1358
  /**
 
 
1359
  * Check if the mixed content fixer is functioning on the front end, by scanning the source of the homepage for the fixer comment.
1360
+ * @since 2.2
1361
  * @access public
1362
+ * @return string
1363
  */
1364
 
1365
  public function mixed_content_fixer_detected()
1366
  {
 
1367
 
1368
+ //no need to check for the mixed content fixer if it's not enabled yet.
1369
+ if ( !rsssl_get_option( 'mixed_content_fixer' ) ) {
1370
+ return 'not-enabled';
1371
+ }
1372
 
1373
+ //it's enabled, so check if we can find it on the front-end.
1374
+ $status = 0;
1375
+ $result = get_transient('rsssl_mixed_content_fixer_detected');
1376
+ if (!$result) {
1377
  $web_source = "";
1378
  //check if the mixed content fixer is active
1379
  $response = wp_remote_get(home_url());
1380
+ if ( !is_wp_error($response) ) {
 
1381
  if ( is_array( $response ) ) {
1382
  $status = wp_remote_retrieve_response_code( $response );
1383
  $web_source = wp_remote_retrieve_body( $response );
1384
  }
1385
 
1386
  if ( $status != 200 ) {
1387
+ //Could not connect to website
1388
+ $result = 'no-response';
1389
  } elseif ( strpos( $web_source, "data-rsssl=" ) === false ) {
1390
+ //Mixed content fixer marker not found in the websource
1391
+ $result = 'not-found';
1392
  } else {
1393
+ $result = 'found';
1394
  }
1395
  }
1396
 
1397
+ if ( is_wp_error($response) ) {
1398
+ //Fallback since most errors will be cURL errors, Error encountered while retrieving the webpage.
1399
+ $result = 'error';
1400
  $error = $response->get_error_message();
1401
+ set_transient('rsssl_curl_error' , $error, DAY_IN_SECONDS );
1402
+ if ( !empty($error) && (strpos($error, "cURL error") !== false ) ) {
1403
+ $result = 'curl-error';
1404
  }
1405
  }
1406
+ set_transient('rsssl_mixed_content_fixer_detected', $result, 600);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1407
  }
1408
 
1409
+ return $result === 'found';
 
 
 
 
 
1410
  }
1411
 
1412
  /**
1422
 
1423
  public function get_redirect_rules($manual = false)
1424
  {
1425
+ //ensure the configuration check has run always.
1426
+ if ( !$this->configuration_loaded ) {
1427
+ $this->detect_configuration();
1428
+ }
1429
  //only add the redirect rules when a known type of SSL was detected. Otherwise, we use https.
1430
  $rule = "";
1431
+ //if the htaccess test was successfull, and we know the redirect type, edit
1432
+ if (
1433
+ rsssl_get_option('ssl_enabled') &&
1434
+ rsssl_get_option('redirect')==='htaccess' &&
1435
+ ($manual || $this->htaccess_test_success() ) &&
1436
+ $this->ssl_type != "NA"
1437
+ ) {
1438
+ $rule .= "\n" . "<IfModule mod_rewrite.c>" . "\n";
1439
  $rule .= "RewriteEngine on" . "\n";
1440
+ if ($this->ssl_type === "SERVER-HTTPS-ON") {
 
 
1441
  $rule .= "RewriteCond %{HTTPS} !=on [NC]" . "\n";
1442
+ } elseif ($this->ssl_type === "SERVER-HTTPS-1") {
1443
  $rule .= "RewriteCond %{HTTPS} !=1" . "\n";
1444
+ } elseif ($this->ssl_type === "LOADBALANCER") {
1445
  $rule .= "RewriteCond %{HTTP:X-Forwarded-Proto} !https" . "\n";
1446
+ } elseif ($this->ssl_type === "HTTP_X_PROTO") {
1447
  $rule .= "RewriteCond %{HTTP:X-Proto} !SSL" . "\n";
1448
+ } elseif ($this->ssl_type === "CLOUDFLARE") {
1449
  $rule .= "RewriteCond %{HTTP:CF-Visitor} '" . '"scheme":"http"' . "'" . "\n";//some concatenation to get the quotes right.
1450
+ } elseif ($this->ssl_type === "SERVERPORT443") {
1451
  $rule .= "RewriteCond %{SERVER_PORT} !443" . "\n";
1452
+ } elseif ($this->ssl_type === "CLOUDFRONT") {
1453
  $rule .= "RewriteCond %{HTTP:CloudFront-Forwarded-Proto} !https" . "\n";
1454
+ } elseif ($this->ssl_type === "HTTP_X_FORWARDED_SSL_ON") {
1455
  $rule .= "RewriteCond %{HTTP:X-Forwarded-SSL} !on" . "\n";
1456
+ } elseif ($this->ssl_type === "HTTP_X_FORWARDED_SSL_1") {
1457
  $rule .= "RewriteCond %{HTTP:X-Forwarded-SSL} !=1" . "\n";
1458
+ } elseif ($this->ssl_type === "ENVHTTPS") {
1459
  $rule .= "RewriteCond %{ENV:HTTPS} !=on" . "\n";
1460
  }
1461
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1462
  //fastest cache compatibility
1463
+ if ( class_exists('WpFastestCache') ) {
1464
  $rule .= "RewriteCond %{REQUEST_URI} !wp-content\/cache\/(all|wpfc-mobile-cache)" . "\n";
1465
  }
1466
 
1467
  //Exclude .well-known/acme-challenge for Let's Encrypt validation
1468
+ if ( $this->has_acme_challenge_directory() ) {
1469
  $rule .= "RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/" . "\n";
1470
  }
1471
 
1472
  $rule .= "RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]" . "\n";
1473
+ $rule .= "</IfModule>" . "\n";
 
 
 
 
 
1474
  }
1475
 
1476
  $rule = apply_filters("rsssl_htaccess_output", $rule);
1477
+ return preg_replace("/\n+/", "\n", $rule);
 
 
1478
  }
1479
 
1480
  /**
 
 
 
1481
  *
1482
+ * @return bool
1483
+ * since 3.1
1484
+ * Check if .well-known/acme-challenge directory exists
1485
  * @access public
 
1486
  */
1487
 
1488
+ public function has_acme_challenge_directory()
1489
  {
1490
+ if (file_exists("$this->abs_path.well-known/acme-challenge")) {
1491
+ return true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1492
  }
1493
  return false;
1494
  }
1524
 
1525
  public function show_leave_review_notice()
1526
  {
1527
+ if (defined('rsssl_pro_version')) {
1528
+ return;
1529
+ }
1530
 
1531
+ if ( rsssl_get_option('dismiss_all_notices') ) {
1532
+ return;
1533
+ }
1534
+ // update_option('rsssl_activation_timestamp', strtotime('-2 month'), false );
1535
+ // rsssl_update_option('review_notice_shown', false);
1536
  //prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
1537
  $screen = get_current_screen();
1538
+ if ( $screen->base === 'post' ) {
1539
+ return;
1540
+ }
1541
 
1542
  //this user has never had the review notice yet.
1543
+ if ( rsssl_get_option('ssl_enabled') && !get_option('rsssl_activation_timestamp')){
1544
  $month = rand ( 0, 11);
1545
  $trigger_notice_date = time() + $month * MONTH_IN_SECONDS;
1546
+ update_option('rsssl_activation_timestamp', $trigger_notice_date, false );
1547
+ update_option('rsssl_before_review_notice_user', true, false );
1548
  }
1549
 
1550
+ if ( !rsssl_get_option('review_notice_shown') && get_option('rsssl_activation_timestamp') && get_option('rsssl_activation_timestamp') < strtotime("-1 month")) {
1551
+
1552
+ //checking legacy options, just in case.
1553
+ $options = get_option('rlrsssl_options');
1554
+ if ( is_array($options) && isset( $options['review_notice_shown'] ) && $options['review_notice_shown']) {
1555
+ rsssl_update_option('review_notice_shown', true);
1556
+ return;
1557
+ }
1558
+
1559
  add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_review'));
1560
  ?>
1561
+
1562
+ <style>
1563
+ .rsssl-review {
1564
+ border-left:4px solid #333
1565
+ }
1566
+ .rsssl-review .rsssl-container {
1567
+ display: flex;
1568
+ padding:12px;
1569
+ }
1570
+ .rsssl-review .rsssl-container .dashicons {
1571
+ margin-right:5px;
1572
+ margin-left:15px;
1573
+ }
1574
+ .rsssl-review .rsssl-review-image img{
1575
+ margin-top:0.5em;
1576
+ }
1577
+ .rsssl-review .rsssl-buttons-row {
1578
+ margin-top:10px;
1579
+ display: flex;
1580
+ align-items: center;
1581
+ }
1582
+ </style>
1583
  <?php if ( is_rtl() ) { ?>
1584
  <style>
1585
+ .rsssl-review .rsssl-container .dashicons {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1586
  margin-left:5px;
1587
+ margin-right:15px;
1588
  }
1589
+ .rsssl-review {
1590
+ border-right:4px solid #333
 
 
 
 
 
1591
  }
1592
  </style>
1593
+ <?php } ?>
1594
+ <div id="message" class="updated fade notice is-dismissible rsssl-review really-simple-plugins">
1595
  <div class="rsssl-container">
1596
+ <div class="rsssl-review-image"><img width=80px" src="<?php echo rsssl_url?>/assets/img/icon.png" alt="review-logo"></div>
1597
  <div style="margin-left:30px">
1598
+ <?php if ( get_option("rsssl_before_review_notice_user") ){?>
1599
  <p><?php printf(__('Hi, Really Simple SSL has kept your site secure for some time now, awesome! If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %smessage%s.', 'really-simple-ssl'),'<a href="https://really-simple-ssl.com/contact" target="_blank">','</a>'); ?></p>
1600
  <?php } else {?>
1601
  <p><?php printf(__('Hi, Really Simple SSL has kept your site secure for a month now, awesome! If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %smessage%s.', 'really-simple-ssl'),'<a href="https://really-simple-ssl.com/contact" target="_blank">','</a>'); ?></p>
1605
  <div class="rsssl-buttons-row">
1606
  <a class="button button-primary" target="_blank"
1607
  href="https://wordpress.org/support/plugin/really-simple-ssl/reviews/#new-post"><?php _e('Leave a review', 'really-simple-ssl'); ?></a>
1608
+ <div class="dashicons dashicons-calendar"></div><a href="<?php echo esc_url(add_query_arg(array("page"=>"really-simple-security", "rsssl_review_notice"=>'later'), rsssl_admin_url() ) );?>"><?php _e('Maybe later', 'really-simple-ssl'); ?></a>
1609
+ <div class="dashicons dashicons-no-alt"></div><a href="<?php echo esc_url(add_query_arg(array("page"=>"really-simple-security", "rsssl_review_notice"=>'dismiss'), rsssl_admin_url() ) );?>"><?php _e('Don\'t show again', 'really-simple-ssl'); ?></a>
1610
  </div>
1611
  </div>
1612
  </div>
1615
  }
1616
  }
1617
 
1618
+ /**
1619
+ * Insert some ajax script to dismiss the review notice, and stop nagging about it
1620
+ *
1621
+ * @since 3.0
1622
+ *
1623
+ * @access public
1624
+ */
1625
+
1626
+ public function insert_dismiss_review()
1627
+ { ?>
1628
+ <script>
1629
+ document.addEventListener('click', e => {
1630
+ if ( e.target.closest('.rsssl-review.notice.is-dismissible .notice-dismiss') ) {
1631
+ window.location.href='<?php echo esc_url_raw(add_query_arg( array( "page" => "really-simple-security", "rsssl_review_notice" => 'dismiss' ), rsssl_admin_url() ))?>';
1632
+ }
1633
+ });
1634
+ </script>
1635
+ <?php
1636
+ }
1637
+
1638
+ /**
1639
+ * Dismiss review notice of dismissed by the user
1640
+ */
1641
+
1642
+ public function maybe_dismiss_review_notice() {
1643
+ if ( isset($_GET['rsssl_review_notice']) && $_GET['rsssl_review_notice'] === 'dismiss' ){
1644
+ rsssl_update_option('review_notice_shown',true);
1645
+ }
1646
+ if ( isset($_GET['rsssl_review_notice']) && $_GET['rsssl_review_notice'] === 'dismiss' ){
1647
+ //Reset activation timestamp, notice will show again in one month.
1648
+ update_option('rsssl_activation_timestamp', time(), false );
1649
+ }
1650
+ }
1651
+
1652
  /**
1653
  * Show notices
1654
  *
1660
 
1661
  public function show_notices()
1662
  {
1663
+ if ( !rsssl_user_can_manage() ){
1664
+ return;
1665
+ }
1666
  //prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
1667
  $screen = get_current_screen();
1668
+ if ( $screen && $screen->base === 'post' ) return;
1669
 
1670
  //don't show admin notices on our own settings page: we have the warnings there
1671
  if ( $this->is_settings_page() ) return;
 
1672
  $notices = $this->get_notices_list( array('admin_notices'=>true) );
1673
  foreach ( $notices as $id => $notice ){
1674
  $notice = $notice['output'];
1675
  $class = ( $notice['status'] !== 'completed' ) ? 'error' : 'updated';
1676
+ $more_info = isset($notice['url']) ? $notice['url'] : false;
1677
+ $dismiss_id = isset($notice['dismissible']) && $notice['dismissible'] ? $id : false;
1678
+ echo $this->notice_html( $class.' '.$id, $notice['msg'], $more_info, $dismiss_id);
1679
  }
1680
  }
1681
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1682
 
 
 
 
 
 
 
 
1683
 
1684
  /**
 
 
 
1685
  *
 
1686
  *
1687
+ * Add an update count to the WordPress admin Settings menu item
1688
+ * Doesn't work when the Admin Menu Editor plugin is active
1689
+ * @since 3.1.6
1690
  */
1691
 
1692
+ public function add_plus_ones()
1693
  {
1694
+ if (!rsssl_user_can_manage()) {
1695
+ return;
 
 
 
 
 
 
 
 
1696
  }
1697
 
1698
+ if ( is_multisite() && rsssl_is_networkwide_active() ) {
1699
+ return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1700
  }
1701
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1702
  $count = $this->count_plusones();
1703
+ if ($count > 0 ){
1704
+ global $menu;
1705
+ foreach($menu as $index => $menu_item){
1706
+ if (!isset($menu_item[2]) || !isset($menu_item[0])) continue;
1707
+ if ($menu_item[2]==='options-general.php'){
1708
+ $pattern = '/<span.*>([1-9])<\/span><\/span>/i';
1709
+ if (preg_match($pattern, $menu_item[0], $matches)){
1710
+ if (isset($matches[1])) $count = (int) $count + (int) $matches[1];
1711
+ }
1712
+ $menu[$index][0] = __('Settings') . "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>";
1713
+ }
1714
+ }
1715
  }
1716
 
 
 
 
 
 
 
 
1717
  }
1718
 
1719
+ /**
1720
+ * Helper function to check if the wpconfig needs fixing
1721
+ * Used in notices
 
 
 
1722
  *
1723
+ * @return bool
1724
+ */
1725
+ public function wpconfig_siteurl_not_fixed(){
1726
+ return $this->wpconfig_siteurl_not_fixed;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1727
  }
1728
 
1729
  /**
1730
+ * Helper function to check if the wpconfig needs fixing
1731
+ * Used in notices
 
 
 
1732
  *
1733
+ * @return bool
1734
+ */
1735
+ public function no_server_variable(){
1736
+ return $this->no_server_variable;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1737
  }
1738
 
1739
+ /**
1740
+ * Helper function to check if a site url has to be fixed
1741
+ * Used in notices
1742
+ *
1743
  * @return bool
1744
  */
1745
+ public function do_wpconfig_loadbalancer_fix(){
1746
+ return $this->do_wpconfig_loadbalancer_fix;
 
1747
  }
1748
 
1749
  /**
1756
 
1757
  public function get_notices_list( $args = array() )
1758
  {
1759
+ if ( !rsssl_user_can_manage() ){
1760
+ return [];
1761
+ }
1762
+
1763
+ $icon_labels = [
1764
+ 'success' => __("Completed", "really-simple-ssl"),
1765
+ 'warning' => __("Warning", "really-simple-ssl"),
1766
+ 'open' => __("Open", "really-simple-ssl"),
1767
+ 'premium' => __("Upgrade", "really-simple-ssl"),
1768
+ ];
1769
+
1770
  $defaults = array(
1771
  'admin_notices' => false,
1772
  'premium_only' => false,
1774
  'status' => 'open', //status can be "all" (all tasks, regardless of dismissed or open), "open" (not success/completed) or "completed"
1775
  );
1776
  $args = wp_parse_args($args, $defaults);
 
1777
  $cache_admin_notices = !$this->is_settings_page() && $args['admin_notices'];
1778
 
1779
+ //if we're on the settings page, we need to clear the admin notices transient, because this list won't get refreshed otherwise
1780
+ if ( $this->is_settings_page() ) {
1781
+ if ( !get_option('rsssl_6_notice_dismissed') ) {
1782
+ update_option('rsssl_6_notice_dismissed', true, false );
1783
+ }
1784
+ delete_transient('rsssl_admin_notices');
1785
  }
1786
+
1787
  if ( $cache_admin_notices) {
1788
  $cached_notices = get_transient('rsssl_admin_notices');
1789
+ if ( $cached_notices === 'empty') {
1790
+ return [];
1791
+ }
1792
+ if ( $cached_notices ) {
1793
+ return $cached_notices;
1794
+ }
1795
  }
1796
 
1797
+ $rules = $this->get_redirect_rules( true );
1798
+ if ( $this->ssl_type !== "NA" ) {
 
1799
  $arr_search = array( "<", ">", "\n" );
1800
  $arr_replace = array( "&lt", "&gt", "<br>" );
1801
  $rules = str_replace( $arr_search, $arr_replace, $rules );
1810
  'callback' => false,
1811
  );
1812
 
 
1813
  $curl_error = get_transient('rsssl_curl_error');
1814
  $current_plugin_folder = $this->get_current_rsssl_free_dirname();
1815
 
1817
  $certinfo = get_transient('rsssl_certinfo');
1818
  $end_date = isset($certinfo['validTo_time_t']) ? $certinfo['validTo_time_t'] : false;
1819
  $expiry_date = !empty($end_date) ? date( get_option('date_format'), $end_date ) : __("(Unknown)", "really-simple-ssl");
 
1820
 
1821
  $notices = array(
1822
+ 'load_balancer_fix' => array(
1823
+ 'condition' => ['NOT rsssl_ssl_enabled'],
1824
+ 'callback' => 'RSSSL()->admin->do_wpconfig_loadbalancer_fix',
1825
+ 'score' => 30,
1826
+ 'output' => array(
1827
+ 'true' => array(
1828
+ 'msg' => __("Your wp-config.php has to be edited, but is not writable.", "really-simple-ssl").' '.
1829
+ __("Set your wp-config.php to writable and reload this page.", "really-simple-ssl").' '.
1830
+ __("To safely enable SSL on your server configuration, you should add the following line of code to your wp-config.php.", "really-simple-ssl").
1831
+ '<br><code>
1832
+ //Begin Really Simple SSL Server variable fix<br>
1833
+ &nbsp;&nbsp; $_SERVER["HTTPS"] = "on";<br>
1834
+ //END Really Simple SSL
1835
+ </code><br>',
1836
+ 'icon' => 'warning',
1837
+ 'admin_notice' => true,
1838
+ 'plusone' => true,
1839
+ 'dismissible' => false,
1840
+ 'url' => 'https://really-simple-ssl.com/knowledge-base/htaccess-wp-config-files-not-writable/',
1841
+ ),
1842
+ ),
1843
+ ),
1844
+ 'site_url_in_wpconfig' => array(
1845
+ 'condition' => ['NOT rsssl_ssl_enabled'],
1846
+ 'callback' => 'RSSSL()->admin->wpconfig_siteurl_not_fixed',
1847
+ 'score' => 30,
1848
+ 'output' => array(
1849
+ 'true' => array(
1850
+ 'msg' => __("A definition of a site url or home url was detected in your wp-config.php, but the file is not writable.", "really-simple-ssl").' '.__("Set your wp-config.php to writable and reload this page.", "really-simple-ssl"),
1851
+ 'icon' => 'warning',
1852
+ 'admin_notice' => true,
1853
+ 'plusone' => true,
1854
+ 'dismissible' => false,
1855
+ 'url' => 'https://really-simple-ssl.com/knowledge-base/htaccess-wp-config-files-not-writable/',
1856
+ ),
1857
+ ),
1858
+ ),
1859
+
1860
  'deactivation_file_detected' => array(
1861
+ 'callback' => 'RSSSL()->admin->check_for_uninstall_file',
1862
  'score' => 30,
1863
  'output' => array(
1864
+ 'true' => array(
 
1865
  'msg' => __("The 'force-deactivate.php' file has to be renamed to .txt. Otherwise your ssl can be deactivated by anyone on the internet.", "really-simple-ssl") .' '.
1866
+ '<a href="'.add_query_arg(array('page'=>'really-simple-security'), rsssl_admin_url() ).'">'.__("Check again", "really-simple-ssl").'</a>',
1867
  'icon' => 'warning',
1868
  'admin_notice' => true,
1869
  'plusone' => true,
1870
+ 'dismissible' => false,
1871
  ),
1872
  ),
1873
  ),
1874
 
1875
  'non_default_plugin_folder' => array(
1876
+ 'callback' => 'RSSSL()->admin->uses_default_folder_name',
1877
  'score' => 30,
1878
  'output' => array(
1879
  'false' => array(
1880
  'msg' => sprintf(__("The Really Simple SSL plugin folder in the /wp-content/plugins/ directory has been renamed to %s. This might cause issues when deactivating, or with premium add-ons. To fix this you can rename the Really Simple SSL folder back to the default %s.", "really-simple-ssl"),"<b>" . $current_plugin_folder . "</b>" , "<b>really-simple-ssl</b>"),
1881
  'url' => 'https://really-simple-ssl.com/knowledge-base/why-you-should-use-the-default-plugin-folder-name-for-really-simple-ssl/',
1882
  'icon' => 'warning',
 
1883
  ),
1884
  ),
1885
  ),
1906
  'score' => 5,
1907
  'output' => array(
1908
  'true' => array(
1909
+ 'url' => $this->pro_url,
1910
+ 'msg' => __( "Really Simple SSL Pro is not up to date. Update Really Simple SSL Pro to ensure compatibility.", "really-simple-ssl"),
1911
  'icon' => 'open',
1912
  'dismissible' => false,
1913
  'plusone' => true,
1931
  ),
1932
  ),
1933
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1934
  'ssl_enabled' => array(
1935
  'callback' => 'rsssl_ssl_enabled',
1936
  'score' => 30,
1937
  'output' => array(
1938
  'true' => array(
1939
  'msg' =>__('SSL is enabled on your site.', 'really-simple-ssl'),
1940
+ 'icon' => 'success',
1941
  ),
1942
  'false' => array(
1943
  'msg' => __('SSL is not enabled yet.', 'really-simple-ssl'),
1944
+ 'title' => 'SSL',
1945
  'icon' => 'warning',
1946
  'plusone' => true,
1947
  ),
1948
  ),
1949
+ 'menu_id' => 'general',
1950
+ 'field_id' => 'mixed_content_fixer',
1951
  ),
1952
 
1953
  'ssl_detected' => array(
1963
  'no-ssl-detected' => array(
1964
  'title' => __("No SSL detected", "really-simple-ssl"),
1965
  'msg' => __("No SSL detected. Use the retry button to check again.", "really-simple-ssl").
1966
+ '<form class="rsssl-task-form" action="" method="POST"><a href="'.add_query_arg(array("page" => "really-simple-security", "letsencrypt" => "1"), rsssl_admin_url() ) .'#letsencrypt" type="submit" class="button button-default rsssl-button-small">'.__("Install SSL certificate", "really-simple-ssl").'</a>'.
1967
+ '<input type="submit" class="button button-default rsssl-button-small" value="'.__("Retry", "really-simple-ssl").'" id="rsssl_recheck_certificate" name="rsssl_recheck_certificate"></form>',
1968
  'icon' => 'warning',
1969
+ 'dismissible' => rsssl_get_option('ssl_enabled')
 
1970
  ),
1971
  'no-response' => array(
1972
  'title' => __("Could not test certificate", "really-simple-ssl"),
1973
+ 'msg' => __("Automatic certificate detection is not possible on your server.", "really-simple-ssl").'<br>'.
1974
+ '<a href="'.add_query_arg(array("page" => "really-simple-security", "letsencrypt"=>1), rsssl_admin_url()) .'#letsencrypt" type="submit" class="button button-default rsssl-button-small">'.__("Install SSL certificate", "really-simple-ssl").'</a>'.
1975
+ '<button class="button button-default rsssl-button-small" id="ssl-labs-check-button">'.__("Check manually", "really-simple-ssl").'</button>',
1976
  'icon' => 'warning',
 
1977
  'dismissible' => true,
1978
  ),
1979
  'ssl-detected' => array(
1985
  'title' => __("Your SSL certificate will expire soon.", "really-simple-ssl"),
1986
  'msg' => sprintf(__("SSL certificate will expire on %s.","really-simple-ssl"), $expiry_date).'&nbsp;'.__("If your hosting provider auto-renews your certificate, no action is required. Alternatively, you have the option to generate an SSL certificate with Really Simple SSL.","really-simple-ssl").'&nbsp;'.
1987
  sprintf(__("Depending on your hosting provider, %smanual installation%s may be required.", "really-simple-ssl"),'<a target="_blank" href="https://really-simple-ssl.com/install-ssl-certificate">','</a>').
1988
+ '<br><br><form action="" method="POST"><a href="'.add_query_arg(array("page" => "really-simple-security", "letsencrypt"=>1), rsssl_admin_url() ) .'#letsencrypt" type="submit" class="button button-default">'.__("Install SSL certificate", "really-simple-ssl").'</a>'.
1989
  '&nbsp;<input type="submit" class="button button-default" value="'.__("Re-check", "really-simple-ssl").'" id="rsssl_recheck_certificate" name="rsssl_recheck_certificate"></form>',
1990
  'icon' => 'warning',
 
1991
  ),
1992
  ),
1993
  ),
1994
 
1995
  'mixed_content_fixer_detected' => array(
1996
  'condition' => array('rsssl_ssl_enabled'),
1997
+ 'callback' => 'RSSSL()->admin->mixed_content_fixer_detected',
1998
  'score' => 10,
1999
  'output' => array(
2000
  'found' => array(
2020
  'dismissible' => true
2021
  ),
2022
  'not-enabled' => array(
2023
+ 'highlight_field_id' => 'mixed_content_fixer',
2024
  'msg' =>__('Mixed content fixer not enabled. Enable the option to fix mixed content on your site.', 'really-simple-ssl'),
2025
  'icon' => 'open',
2026
  'dismissible' => true
2035
  ),
2036
 
2037
  'wordpress_redirect' => array(
2038
+ 'condition' => array('rsssl_ssl_enabled', 'NOT RSSSL()->admin->htaccess_redirect_allowed'),
2039
+ 'callback' => 'RSSSL()->admin->has_301_redirect',
2040
  'score' => 10,
2041
  'output' => array(
2042
  'true' => array(
2051
  ),
2052
 
2053
  'check_redirect' => array(
2054
+ 'condition' => array( 'rsssl_ssl_enabled' , 'RSSSL()->admin->htaccess_redirect_allowed'),
2055
+ 'callback' => 'RSSSL()->admin->redirect_status',
2056
  'score' => 10,
2057
+ 'show_with_options' => [
2058
+ 'redirect',
2059
+ ],
2060
  'output' => array(
2061
  'htaccess-redirect-set' => array(
2062
+ 'msg' =>__('301 redirect to https set: .htaccess redirect.', 'really-simple-ssl'),
2063
  'icon' => 'success'
2064
  ),
2065
  'wp-redirect-to-htaccess' => array(
2066
+ 'highlight_field_id' => 'redirect',
2067
  'msg' => __('WordPress 301 redirect enabled. We recommend to enable a 301 .htaccess redirect.', 'really-simple-ssl'),
2068
  'icon' => 'open',
2069
+ 'plusone' => RSSSL()->server->uses_htaccess(),
2070
  'dismissible' => true,
2071
  ),
2072
  'no-redirect-set' => array(
2073
+ 'highlight_field_id' => 'redirect',
2074
+ 'msg' => __('Enable a .htaccess redirect or PHP redirect in the settings to create a 301 redirect.', 'really-simple-ssl') ,
2075
  'icon' => 'open',
2076
  'dismissible' => false
2077
  ),
 
 
 
 
 
 
2078
  'htaccess-rules-test-failed' => array(
2079
+ 'title' => __('.htaccess redirect.', 'really-simple-ssl'),
2080
  'url' => 'https://really-simple-ssl.com/knowledge-base/manually-insert-htaccess-redirect-http-to-https/',
2081
+ 'msg' => __('The .htaccess redirect rules selected by this plugin failed in the test. Set manually or dismiss to leave on PHP redirect.', 'really-simple-ssl') . $rules,
2082
  'icon' => 'warning',
2083
  'dismissible' => true,
2084
  'plusone'=>true,
2100
  ),
2101
  ),
2102
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2103
  'divi' => array(
2104
  'condition' => array( 'rsssl_ssl_activation_time_no_longer_then_3_days_ago'),
2105
  'callback' => 'rsssl_uses_divi',
2117
  'secure_cookies_set' => array(
2118
  'condition' => array(
2119
  'rsssl_ssl_enabled',
2120
+ 'RSSSL()->admin->can_apply_networkwide',
2121
  ),
2122
+ 'callback' => 'RSSSL()->admin->secure_cookie_settings_status',
2123
  'score' => 5,
2124
  'output' => array(
2125
  'set' => array(
2153
  ),
2154
 
2155
  'recommended_security_headers_not_set' => array(
2156
+ 'callback' => 'RSSSL()->admin->recommended_headers_enabled',
 
2157
  'score' => 5,
2158
  'output' => array(
2159
  'false' => array(
2160
+ 'msg' => __("See which recommended security headers are not present on your website.", "really-simple-ssl"),
2161
+ 'icon' => 'premium',
 
 
2162
  'dismissible' => false,
2163
+ 'url' => 'https://scan.really-simple-ssl.com/',
2164
  ),
2165
  'true' => array(
2166
  'msg' => __("Recommended security headers enabled.", "really-simple-ssl"),
2175
  'output' => array(
2176
  'true' => array(
2177
  'msg' => __("Improve security with Really Simple SSL Pro.", "really-simple-ssl"),
2178
+ 'url' => $this->pro_url,
2179
  'icon' => 'premium',
2180
  'dismissible' => false,
2181
  ),
2210
  'duplicate-ssl-plugins' => array(
2211
  'condition' => array('rsssl_detected_duplicate_ssl_plugin'),
2212
  'callback' => '_true_',
 
2213
  'output' => array(
2214
  'true' => array(
2215
+ 'msg' => sprintf(__( 'We have detected the %s plugin on your website.', 'really-simple-ssl' ),rsssl_detected_duplicate_ssl_plugin(true)).'&nbsp;'.__( 'As Really Simple SSL handles all the functionality this plugin provides, we recommend to disable this plugin to prevent unexpected behavior.', 'really-simple-ssl' ),
2216
  'icon' => 'warning',
2217
  'dismissible' => true,
2218
  'plusone' => true,
2220
  ),
2221
  ),
2222
 
2223
+ 'bf_notice2022' => array(
2224
  'condition' => array(
2225
+ 'RSSSL()->admin->is_bf'
2226
  ),
2227
  'callback' => '_true_',
 
2228
  'output' => array(
2229
  'true' => array(
2230
  'msg' => __( "Black Friday sale! Get 40% Off Really Simple SSL Pro", 'really-simple-ssl' ) ,
2231
  'icon' => 'premium',
2232
+ 'url' => $this->pro_url,
2233
  'dismissible' => true,
2234
  'plusone' => true,
2235
  ),
2236
  ),
2237
  ),
2238
 
2239
+ 'upgraded_to_6' => array(
2240
+ 'condition' => array(
2241
+ 'RSSSL()->admin->is_upgraded_to_6'
2242
+ ),
2243
  'callback' => '_true_',
 
2244
  'output' => array(
2245
  'true' => array(
2246
+ 'msg' => __( "Thanks for updating to Really Simple SSL 6.0! Check out our new features on the settings page.", 'really-simple-ssl' ),
2247
  'icon' => 'open',
2248
+ 'admin_notice' => true,
2249
+ 'url' => add_query_arg(['page'=>'really-simple-security'], rsssl_admin_url() ),
2250
  'dismissible' => true,
2251
  'plusone' => true,
2252
  ),
2253
  ),
2254
  ),
2255
  );
 
2256
  //on multisite, don't show the notice on subsites.
2257
  if ( is_multisite() && !is_network_admin() ) {
2258
  unset($notices['secure_cookies_set']);
2281
  */
2282
 
2283
  foreach ( $notices as $id => $notice ) {
 
 
 
 
 
2284
  $func = $notice['callback'];
2285
  $output = $this->validate_function($func);
2286
 
2287
  //check if all notices should be dismissed
2288
+ if ( isset( $notice['output'][$output]['dismissible'] )
2289
  && $notice['output'][$output]['dismissible']
2290
+ && rsssl_get_option('dismiss_all_notices')
 
2291
  ) {
2292
  unset($notices[$id]);
2293
  continue;
2301
  }
2302
 
2303
  $notices[$id]['output']['status'] = ( $notices[$id]['output']['icon'] !== 'success') ? 'open' : 'completed';
 
2304
  if ( $args['status'] === 'open' && ($notices[$id]['output']['status'] === 'completed' ) ){
2305
  unset($notices[$id]);
2306
  continue;
2307
  }
 
2308
  $condition_functions = $notice['condition'];
2309
  foreach ( $condition_functions as $func ) {
2310
  $condition = $this->validate_function($func, true);
2312
  unset($notices[$id]);
2313
  }
2314
  }
2315
+
2316
+ if ( isset($notices[$id]) ) {
2317
+ $notices[$id]['output']['label'] = $icon_labels[ $notices[$id]['output']['icon'] ];
2318
+ }
2319
+
2320
+ //only remove this option if it's both dismissed AND not completed. This way we keep completed notices in the list.
2321
+ if ( isset($notices[$id]) && get_option( "rsssl_" . $id . "_dismissed" ) && $notices[$id]['output']['status'] !== 'completed') {
2322
+ unset($notices[$id]);
2323
+ }
2324
  }
2325
 
2326
  //if only admin_notices are required, filter out the rest.
2330
  unset( $notices[$id]);
2331
  }
2332
  }
2333
+ //ensure an empty list is also cached
2334
+ $cache_notices = empty($notices) ? 'empty' : $notices;
2335
+ set_transient('rsssl_admin_notices', $cache_notices, WEEK_IN_SECONDS );
2336
  }
2337
 
2338
  //sort so warnings are on top
2352
  }
2353
  $notices = $warnings + $open + $other;
2354
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2355
  //if we only want a list of premium notices
2356
  if ( $args['premium_only'] ) {
2357
  foreach ($notices as $key => $notice){
2360
  }
2361
  }
2362
  }
2363
+ return $notices;
2364
  }
2365
 
2366
+ private function is_upgraded_to_6(){
2367
+ return get_option('rsssl_show_onboarding') && !get_option('rsssl_6_notice_dismissed');
 
 
 
 
 
2368
  }
2369
 
2370
  /**
2371
  * Get output of function, in format 'function', or 'class()->sub()->function'
2372
+ * @param string $func
2373
+ * @param bool $is_condition // if the check is a condition, which should return a boolean
2374
+ * @return string|bool
2375
+ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2376
 
2377
+ private function validate_function($func, $is_condition = false ){
2378
+ if ( !rsssl_user_can_manage() ){
2379
+ return false;
2380
+ }
 
2381
 
2382
+ $invert = false;
2383
+ if (strpos($func, 'NOT ') !== FALSE ) {
2384
+ $func = str_replace('NOT ', '', $func);
2385
+ $invert = true;
2386
  }
2387
 
2388
+ if ( strpos($func, 'option_')!==false ){
2389
+ $output = rsssl_get_option(str_replace('option_', '', $func))==1;
2390
+ } else if ( $func === '_true_') {
2391
+ $output = true;
2392
+ } else if ( $func === '_false_' ) {
2393
+ $output = false;
2394
  } else {
2395
+ if ( preg_match( '/(.*)\(\)\-\>(.*)->(.*)/i', $func, $matches)) {
2396
+ $base = $matches[1];
2397
+ $class = $matches[2];
2398
+ $function = $matches[3];
2399
+ $output = call_user_func( array( $base()->{$class}, $function ) );
2400
+ } else {
2401
+ $output = $func();
2402
+ }
2403
+ }
2404
+
2405
+ if ( $invert ) {
2406
+ $output = !$output;
2407
  }
2408
 
2409
+ //stringyfy booleans
2410
+ if (!$is_condition) {
2411
+ if ( $output === false || $output === 0 ) {
2412
+ $output = 'false';
2413
+ }
2414
+ if ( $output === true || $output === 1 ) {
2415
+ $output = 'true';
2416
+ }
2417
  }
2418
+ return sanitize_text_field($output);
 
2419
  }
2420
 
2421
+ /**
2422
+ * Count the plusones
 
 
2423
  *
2424
+ * @return int
2425
  *
2426
+ * @since 3.2
2427
+ */
2428
 
2429
+ public function count_plusones() {
2430
+ if ( ! rsssl_user_can_manage() ) {
2431
+ return 0;
2432
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2433
 
2434
+ $cache = $this->is_settings_page() ? false : true;
2435
+ $count = get_transient( 'rsssl_plusone_count' );
2436
+ if ( !$cache || ($count === false) ) {
2437
+ $count = 0;
2438
+ $notices = $this->get_notices_list();
2439
+ foreach ( $notices as $id => $notice ) {
2440
+ $success = ( isset( $notice['output']['icon'] ) && ( $notice['output']['icon'] === 'success' ) ) ? true : false;
2441
+ if ( ! $success
2442
+ && isset( $notice['output']['plusone'] )
2443
+ && $notice['output']['plusone']
2444
+ ) {
2445
+ $count++;
2446
+ }
2447
+ }
2448
+ if ( $count==0) {
2449
+ $count = 'empty';
2450
+ }
2451
+ set_transient( 'rsssl_plusone_count', $count, WEEK_IN_SECONDS );
2452
+ }
2453
 
2454
+ if ( $count==='empty' ) {
2455
+ return 0;
 
 
 
 
 
 
 
 
 
 
 
2456
  }
2457
+ return $count;
 
 
 
 
 
 
 
2458
  }
2459
 
2460
  /**
2461
+ * Add some css for the settings page
2462
  *
2463
  * @since 2.0
2464
  *
2466
  *
2467
  */
2468
 
2469
+ public function enqueue_assets($hook)
2470
  {
2471
+ if ( $hook !== 'settings_page_really-simple-security') {
2472
+ return;
 
 
 
 
 
 
 
 
2473
  }
2474
+ $min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
2475
+ $rtl = is_rtl() ? 'rtl/' : '';
2476
+ $url = trailingslashit(rsssl_url) . "assets/css/{$rtl}admin{$min}.css";
2477
+ $path = trailingslashit(rsssl_path) . "assets/css/{$rtl}admin{$min}.css";
2478
+ wp_enqueue_style('rsssl-css', $url, ['wp-components'], filemtime($path));
2479
  }
2480
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2481
  /**
2482
  *
2483
  * Add a button and thickbox to deactivate the plugin while keeping SSL
2502
  text-align: center !important;
2503
  }
2504
  #TB_window.rsssl-deactivation-popup {
2505
+ height:370px!important;
 
2506
  margin-top:initial!important;
2507
  margin-left:initial!important;
2508
  display:flex;
2509
  flex-direction: column;
2510
+ top: 50% !important;
2511
  left: 50%;
2512
  transform: translate(-50%, -50%);
2513
  width:576px!important;
2514
+ border-radius:13px!important;
2515
  }
2516
  .rsssl-deactivation-popup #TB_title{
2517
  padding-bottom: 20px;
2518
  border-radius:12px;
2519
  border-bottom:none!important;
2520
+ background:#fff !important;
2521
  }
2522
  .rsssl-deactivation-popup #TB_ajaxWindowTitle {
2523
  font-weight:bold;
2524
  font-size:20px;
2525
+ padding: 20px 0 0 20px;
2526
+ background:#fff !important;
2527
+ border-radius:13px!important;
2528
  }
2529
 
2530
  .rsssl-deactivation-popup .tb-close-icon {
2583
  list-style: disc;
2584
  padding-left: 20px;
2585
  }
 
 
 
 
 
 
 
 
 
 
 
2586
  </style>
2587
  <?php } ?>
2588
  <script>
2592
  e.preventDefault();
2593
  tb_show( '<?php _e("Are you sure?", "really-simple-ssl") ?>', '#TB_inline?height=auto&inlineId=deactivate_keep_ssl', 'null');
2594
  $("#TB_window").addClass('rsssl-deactivation-popup');
 
2595
  });
2596
  if ($('#deactivate-really-simple-ssl').length){
2597
  $('.rsssl-button-deactivate-revert').attr('href', $('#deactivate-really-simple-ssl').attr('href') );
2598
  }
 
2599
  });
2600
  </script>
2601
  <div id="deactivate_keep_ssl" style="display: none;">
2617
 
2618
  <?php
2619
  $token = wp_create_nonce('rsssl_deactivate_plugin');
2620
+ $deactivate_keep_ssl_link = add_query_arg(['page'=>'really-simple-security', 'action'=>'uninstall_keep_ssl', 'token'=>$token], rsssl_admin_url() );
 
2621
  ?>
2622
  <div class="rsssl-deactivate-notice-footer">
2623
  <a class="button button-default" href="#" id="rsssl_close_tb_window"><?php _e("Cancel", "really-simple-ssl") ?></a>
2628
  <?php
2629
  }
2630
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2631
  /**
2632
  * Add settings link on plugins overview page
2633
+ *
2634
+ * @param array $links
2635
+ *
2636
+ * @return array $links
2637
  * @since 2.0
2638
  *
2639
  * @access public
2640
  *
2641
  */
2642
 
2643
+ public function plugin_settings_link( array $links ): array {
2644
+ if ( !rsssl_user_can_manage() || ( is_multisite() && !is_network_admin() ) ) {
2645
+ return $links;
2646
+ }
2647
 
2648
+ $url = add_query_arg(array('page' => 'really-simple-security'), rsssl_admin_url() );
2649
+ //settings only on network wide activated, or no multisite at all.
2650
+ if ( is_multisite() && rsssl_is_networkwide_active() && is_super_admin() ) {
2651
+ $settings_link = '<a href="' . $url . '">' . __("Settings", "really-simple-ssl") . '</a>';
2652
+ array_unshift($links, $settings_link);
2653
+ } else if ( !is_multisite() ) {
2654
+ $settings_link = '<a href="' . $url . '">' . __("Settings", "really-simple-ssl") . '</a>';
2655
+ array_unshift($links, $settings_link);
2656
+ }
2657
 
2658
+ //support
2659
+ $support = apply_filters('rsssl_support_link', '<a target="_blank" href="https://wordpress.org/support/plugin/really-simple-ssl/">' . __('Support', 'really-simple-ssl') . '</a>');
 
 
 
2660
  array_unshift($links, $support);
2661
 
2662
  if ( ! defined( 'rsssl_pro_version' ) ) {
2663
+ $upgrade_link = '<a style="color:#2271b1;font-weight:bold" target="_blank" href="'.$this->pro_url.'">'
2664
+ . __( 'Improve security - Upgrade', 'really-simple-ssl' ) . '</a>';
2665
  array_unshift( $links, $upgrade_link );
2666
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
2667
 
2668
+ return $links;
 
 
 
 
 
 
2669
  }
2670
 
2671
  /**
2677
  public function secure_cookie_settings_status()
2678
  {
2679
  $wpconfig_path = $this->find_wp_config_path();
2680
+ if ( !$wpconfig_path ) {
2681
  return 'wpconfig-not-writable';
2682
  }
2683
 
2698
  */
2699
 
2700
  public function insert_secure_cookie_settings(){
2701
+ if ( !rsssl_user_can_manage() ) {
2702
+ return;
2703
+ }
2704
 
2705
+ if ( !$this->is_settings_page() ) {
2706
+ return;
 
 
2707
  }
2708
 
2709
  //if multisite, only on network wide activated setups
2710
+ if ( is_multisite() && !rsssl_is_networkwide_active() ) {
2711
+ return;
2712
+ }
2713
 
2714
  //only if cookie settings were not inserted yet
2715
+ if ( $this->secure_cookie_settings_status() !== 'set' ) {
2716
+ $wpconfig_path = RSSSL()->admin->find_wp_config_path();
2717
  $wpconfig = file_get_contents($wpconfig_path);
2718
  if ((strlen($wpconfig)!=0) && is_writable($wpconfig_path)) {
2719
  $rule = "\n"."//Begin Really Simple SSL session cookie settings"."\n";
2720
  $rule .= "@ini_set('session.cookie_httponly', true);"."\n";
2721
  $rule .= "@ini_set('session.cookie_secure', true);"."\n";
2722
  $rule .= "@ini_set('session.use_only_cookies', true);"."\n";
2723
+ $rule .= "//END Really Simple SSL cookie settings"."\n";
2724
 
2725
  $insert_after = "<?php";
2726
  $pos = strpos($wpconfig, $insert_after);
2733
  }
2734
  }
2735
 
 
 
2736
  /**
2737
  * Get the absolute path the the www directory of this site, where .htaccess lives.
2738
  *
2742
  *
2743
  */
2744
 
2745
+ public function getabs_path()
2746
  {
2747
  $path = ABSPATH;
2748
  if ($this->is_subdirectory_install()) {
2766
  * @return bool
2767
  */
2768
  public function can_apply_networkwide(){
2769
+ if ( !is_multisite() ) {
2770
  return true;
2771
+ }
2772
+
2773
+ if ( is_multisite() && rsssl_is_networkwide_active() ) {
2774
  return true;
2775
  }
2776
+
2777
+ return false;
2778
  }
2779
 
2780
  /**
2788
 
2789
  protected function is_subdirectory_install()
2790
  {
2791
+ return strlen( site_url() ) > strlen( home_url() );
 
 
 
2792
  }
2793
 
2794
  /**
 
 
2795
  * Retrieve the contents of the test page
2796
+ *
2797
+ * @return string
2798
  *
2799
  */
2800
 
2801
  protected function get_test_page_contents()
2802
  {
2803
  $filecontents = get_transient('rsssl_testpage');
2804
+ if ( !$filecontents ) {
 
 
2805
  $testpage_url = trailingslashit($this->test_url()) . "ssl-test-page.php";
 
 
2806
  $response = wp_remote_get($testpage_url);
2807
+ if ( is_array($response) ) {
 
 
2808
  $filecontents = wp_remote_retrieve_body($response);
2809
  }
2810
 
2811
+ if ( empty($filecontents) ) {
 
 
 
 
 
 
 
 
 
2812
  $filecontents = 'not-valid';
2813
  }
2814
+ set_transient('rsssl_testpage', $filecontents, DAY_IN_SECONDS);
2815
  }
2816
  return $filecontents;
2817
  }
2842
 
2843
  public function uses_default_folder_name() {
2844
  $current_plugin_path = $this->get_current_rsssl_free_dirname();
2845
+ return $this->plugin_dir === $current_plugin_path;
2846
+ }
 
 
 
 
2847
 
2848
  /**
2849
+ * Determine the htaccess file. This can be either the regular .htaccess file, or an htaccess.conf file on bitnami installations.
2850
  *
2851
  * since 3.1
2852
  *
2853
+ * @return string
 
2854
  */
2855
 
2856
  public function htaccess_file() {
2857
+ if ( $this->uses_htaccess_conf() ) {
2858
  $htaccess_file = realpath(dirname(ABSPATH) . "/conf/htaccess.conf");
2859
  } else {
2860
+ $htaccess_file = $this->abs_path . ".htaccess";
2861
  }
 
2862
  return $htaccess_file;
2863
  }
2864
 
2865
  /**
2866
+ * Check the current redirect status
 
 
 
 
 
2867
  *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2868
  * @return string
2869
  */
2870
+ public function redirect_status() {
2871
+ if ( !RSSSL()->admin->has_301_redirect() ) {
2872
+ return 'no-redirect-set';
2873
+ }
2874
 
2875
+ if ( RSSSL()->admin->has_301_redirect() && RSSSL()->server->uses_htaccess() && RSSSL()->admin->htaccess_contains_redirect_rules() ) {
2876
+ return 'htaccess-redirect-set';
2877
  }
2878
 
2879
+ if ( $this->can_apply_networkwide() && !RSSSL()->admin->htaccess_contains_redirect_rules() && rsssl_get_option('redirect')==='wp_redirect' ) {
2880
+ return 'wp-redirect-to-htaccess';
 
 
 
 
2881
  }
2882
 
2883
+ if ( rsssl_get_option('redirect') ==='htaccess' && !RSSSL()->admin->htaccess_test_success() && $this->can_apply_networkwide()) {
2884
+ return 'htaccess-rules-test-failed';
2885
+ }
 
 
2886
 
2887
+ return 'default';
2888
  }
2889
  } //class closure
2890
 
2891
+ if ( !function_exists('rsssl_ssl_enabled') ) {
2892
  function rsssl_ssl_enabled() {
2893
+ return rsssl_get_option('ssl_enabled');
2894
  }
2895
  }
2896
 
2897
  if (!function_exists('rsssl_ssl_detected')) {
2898
  function rsssl_ssl_detected() {
2899
+ if ( ! RSSSL()->admin->wpconfig_ok() ) {
2900
  return apply_filters('rsssl_ssl_detected', 'fail');
2901
  }
2902
 
2903
+ $valid = RSSSL()->certificate->is_valid();
2904
  if ( !$valid ) {
2905
+ if ( ! function_exists( 'stream_context_get_params' ) || RSSSL()->certificate->detection_failed() ) {
2906
  return apply_filters('rsssl_ssl_detected', 'no-response');
2907
  } else {
2908
  return apply_filters('rsssl_ssl_detected', 'no-ssl-detected');
2909
  }
2910
  } else {
2911
+ $about_to_expire = RSSSL()->certificate->about_to_expire();
2912
  if ( !$about_to_expire ) {
2913
  return apply_filters('rsssl_ssl_detected', 'ssl-detected');
2914
  } else {
2920
  }
2921
  }
2922
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2923
  if (!function_exists('rsssl_uses_elementor')) {
2924
  function rsssl_uses_elementor() {
2925
  return ( defined( 'ELEMENTOR_VERSION' ) || defined( 'ELEMENTOR_PRO_VERSION' ) );
2979
  }
2980
 
2981
  if ( !function_exists('rsssl_letsencrypt_wizard_url') ) {
2982
+ /**
2983
+ * Get link to SSL certificate generation page
2984
+ *
2985
+ * @param string $page
2986
+ *
2987
+ * @return string
2988
+ */
2989
+ function rsssl_letsencrypt_wizard_url($page = ''){
2990
+ if ( !empty($page) ) {
2991
+ $page = '/'.$page;
2992
+ }
2993
+ if ( is_multisite() && !is_main_site() ) {
2994
+ return add_query_arg(array('page' => 'really-simple-security', 'letsencrypt'=>1), get_admin_url(get_main_site_id(),'options-general.php') )."#letsencrypt$page";
2995
  } else {
2996
+ return add_query_arg(array('page' => 'really-simple-security', 'letsencrypt'=>1), admin_url('options-general.php') )."#letsencrypt$page";
2997
  }
2998
  }
2999
  }
3000
 
3001
  if ( !function_exists('rsssl_detected_duplicate_ssl_plugin')) {
3002
+ /**
3003
+ * Duplicate functionality test
3004
+ *
3005
+ * @param string $return_name
3006
+ *
3007
+ * @return bool|string
3008
+ */
3009
  function rsssl_detected_duplicate_ssl_plugin( $return_name = false ){
3010
  $plugin = false;
3011
  if ( defined('WPLE_PLUGIN_VERSION') ){
3042
 
3043
  if ( !function_exists('rsssl_ssl_detection_overridden' ) ) {
3044
  function rsssl_ssl_detection_overridden() {
3045
+ return get_option( 'rsssl_ssl_detection_overridden' ) !== false;
 
 
 
3046
  }
3047
  }
class-certificate.php CHANGED
@@ -1,20 +1,14 @@
1
- <?php
2
-
3
- defined('ABSPATH') or die("you do not have access to this page!");
4
 
5
  if ( ! class_exists( 'rsssl_certificate' ) ) {
6
  class rsssl_certificate
7
  {
8
  private static $_this;
9
-
10
  function __construct()
11
  {
12
-
13
  if (isset(self::$_this))
14
  wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this)));
15
-
16
  self::$_this = $this;
17
-
18
  }
19
 
20
  static function this()
@@ -34,32 +28,18 @@ if ( ! class_exists( 'rsssl_certificate' ) ) {
34
 
35
  public function is_valid()
36
  {
37
- //Get current domain
38
- $domain = site_url();
39
- //Parse to strip off any /subfolder/
40
- $parse = parse_url($domain);
41
- if ( !isset($parse['host']) || !function_exists('stream_context_get_params') ) {
42
  set_transient('rsssl_certinfo', 'no-response', DAY_IN_SECONDS);
43
  } else {
44
- $domain = $parse['host'];
45
  $certinfo = $this->get_certinfo($domain);
46
-
47
  if ( !$certinfo ) {
48
- RSSSL()->really_simple_ssl->trace_log("- SSL certificate not valid");
49
  return false;
50
  }
51
 
52
- //Check if domain is valid
53
  $domain_valid = $this->is_domain_valid($certinfo, $domain);
54
- if ( !$domain_valid ) {
55
- RSSSL()->really_simple_ssl->trace_log("- Domain on certificate does not match website's domain");
56
- }
57
- //Check if date is valid
58
  $date_valid = $this->is_date_valid($certinfo);
59
- if ( !$date_valid ) {
60
- RSSSL()->really_simple_ssl->trace_log("- Date on certificate expired or not valid");
61
- }
62
- //Domain and date valid? Return true
63
  if ( $domain_valid && $date_valid ) {
64
  return true;
65
  }
@@ -67,6 +47,17 @@ if ( ! class_exists( 'rsssl_certificate' ) ) {
67
  return false;
68
  }
69
 
 
 
 
 
 
 
 
 
 
 
 
70
  /**
71
  *
72
  * Check common name(s) and alternative name(s) on certificate and match them to the site_url ($domain)
@@ -232,7 +223,7 @@ if ( ! class_exists( 'rsssl_certificate' ) ) {
232
  return false;
233
  }
234
 
235
- if (!$certinfo || RSSSL()->really_simple_ssl->is_settings_page()) {
236
  $url = 'https://'.str_replace(array('https://', 'http://'), '', $url);
237
  $original_parse = parse_url($url, PHP_URL_HOST);
238
  if ($original_parse) {
1
+ <?php defined('ABSPATH') or die();
 
 
2
 
3
  if ( ! class_exists( 'rsssl_certificate' ) ) {
4
  class rsssl_certificate
5
  {
6
  private static $_this;
 
7
  function __construct()
8
  {
 
9
  if (isset(self::$_this))
10
  wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this)));
 
11
  self::$_this = $this;
 
12
  }
13
 
14
  static function this()
28
 
29
  public function is_valid()
30
  {
31
+
32
+ $domain = $this->get_domain();
33
+ if ( !$domain || !function_exists('stream_context_get_params') ) {
 
 
34
  set_transient('rsssl_certinfo', 'no-response', DAY_IN_SECONDS);
35
  } else {
 
36
  $certinfo = $this->get_certinfo($domain);
 
37
  if ( !$certinfo ) {
 
38
  return false;
39
  }
40
 
 
41
  $domain_valid = $this->is_domain_valid($certinfo, $domain);
 
 
 
 
42
  $date_valid = $this->is_date_valid($certinfo);
 
 
 
 
43
  if ( $domain_valid && $date_valid ) {
44
  return true;
45
  }
47
  return false;
48
  }
49
 
50
+ /**
51
+ * get domain
52
+ * @return string
53
+ */
54
+ public function get_domain(){
55
+ $domain = site_url();
56
+ //Parse to strip off any /subfolder/
57
+ $parse = parse_url($domain);
58
+ return isset($parse['host']) ? $parse['host'] : false;
59
+ }
60
+
61
  /**
62
  *
63
  * Check common name(s) and alternative name(s) on certificate and match them to the site_url ($domain)
223
  return false;
224
  }
225
 
226
+ if (!$certinfo || RSSSL()->admin->is_settings_page()) {
227
  $url = 'https://'.str_replace(array('https://', 'http://'), '', $url);
228
  $original_parse = parse_url($url, PHP_URL_HOST);
229
  if ($original_parse) {
class-front-end.php CHANGED
@@ -6,11 +6,8 @@ if ( ! class_exists( 'rsssl_front_end' ) ) {
6
  class rsssl_front_end
7
  {
8
  private static $_this;
9
- public $javascript_redirect = FALSE;
10
- public $wp_redirect = TRUE;
11
- public $autoreplace_insecure_links = TRUE;
12
  public $ssl_enabled;
13
- public $switch_mixed_content_fixer_hook = FALSE;
14
 
15
  function __construct()
16
  {
@@ -18,8 +15,9 @@ if ( ! class_exists( 'rsssl_front_end' ) ) {
18
  wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this)));
19
 
20
  self::$_this = $this;
21
- $this->get_options();
22
- add_action('rest_api_init', array($this, 'wp_rest_api_force_ssl'), ~PHP_INT_MAX);
 
23
  }
24
 
25
  static function this()
@@ -28,7 +26,7 @@ if ( ! class_exists( 'rsssl_front_end' ) ) {
28
  }
29
 
30
  /**
31
- * Javascript redirect, when ssl is true.
32
  *
33
  * @since 2.2
34
  *
@@ -38,8 +36,8 @@ if ( ! class_exists( 'rsssl_front_end' ) ) {
38
 
39
  public function force_ssl()
40
  {
41
- if ($this->ssl_enabled) {
42
- if ($this->wp_redirect) add_action('wp', array($this, 'wp_redirect_to_ssl'), 40, 3);
43
  }
44
  }
45
 
@@ -79,51 +77,16 @@ if ( ! class_exists( 'rsssl_front_end' ) ) {
79
 
80
  public function wp_redirect_to_ssl()
81
  {
82
- if (!array_key_exists('HTTP_HOST', $_SERVER)) return;
 
 
83
 
84
- if (!is_ssl() && !(defined("rsssl_no_wp_redirect") && rsssl_no_wp_redirect)) {
85
  $redirect_url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
86
  $redirect_url = apply_filters("rsssl_wp_redirect_url", $redirect_url);
87
  wp_redirect($redirect_url, 301);
88
  exit;
89
  }
90
  }
91
-
92
-
93
- /**
94
- * Get the options for this plugin
95
- *
96
- * @since 2.0
97
- *
98
- * @access public
99
- *
100
- */
101
-
102
- public function get_options()
103
- {
104
- $options = get_option('rlrsssl_options');
105
- if (isset($options)) {
106
- $this->autoreplace_insecure_links = isset($options['autoreplace_insecure_links']) ? $options['autoreplace_insecure_links'] : TRUE;
107
- $this->ssl_enabled = isset($options['ssl_enabled']) ? $options['ssl_enabled'] : false;
108
- $this->javascript_redirect = isset($options['javascript_redirect']) ? $options['javascript_redirect'] : FALSE;
109
- $this->wp_redirect = isset($options['wp_redirect']) ? $options['wp_redirect'] : FALSE;
110
- $this->switch_mixed_content_fixer_hook = isset($options['switch_mixed_content_fixer_hook']) ? $options['switch_mixed_content_fixer_hook'] : FALSE;
111
-
112
- //overrides from multisite
113
- if (is_multisite()) {
114
- $network_options = get_site_option('rlrsssl_network_options');
115
-
116
- $site_wp_redirect = isset($network_options["wp_redirect"]) ? $network_options["wp_redirect"] : false;
117
- $javascript_redirect = isset($network_options["javascript_redirect"]) ? $network_options["javascript_redirect"] : false;
118
- $autoreplace_insecure_links = isset($network_options["autoreplace_mixed_content"]) ? $network_options["autoreplace_mixed_content"] : false;
119
-
120
- if ($site_wp_redirect) $this->wp_redirect = $site_wp_redirect;
121
- if ($javascript_redirect) $this->javascript_redirect = $javascript_redirect;
122
- if ($autoreplace_insecure_links) $this->autoreplace_insecure_links = $autoreplace_insecure_links;
123
-
124
- }
125
- }
126
- }
127
-
128
  }
129
  }
6
  class rsssl_front_end
7
  {
8
  private static $_this;
9
+ public $wp_redirect;
 
 
10
  public $ssl_enabled;
 
11
 
12
  function __construct()
13
  {
15
  wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this)));
16
 
17
  self::$_this = $this;
18
+ $this->ssl_enabled = rsssl_get_option('ssl_enabled');
19
+ $this->wp_redirect = rsssl_get_option('redirect', 'redirect') === 'wp_redirect';
20
+ add_action('rest_api_init', array($this, 'wp_rest_api_force_ssl'), ~PHP_INT_MAX);
21
  }
22
 
23
  static function this()
26
  }
27
 
28
  /**
29
+ * PHP redirect, when ssl is true.
30
  *
31
  * @since 2.2
32
  *
36
 
37
  public function force_ssl()
38
  {
39
+ if ( $this->ssl_enabled && $this->wp_redirect ) {
40
+ add_action('wp', array($this, 'wp_redirect_to_ssl'), 40, 3);
41
  }
42
  }
43
 
77
 
78
  public function wp_redirect_to_ssl()
79
  {
80
+ if ( !array_key_exists('HTTP_HOST', $_SERVER) ) {
81
+ return;
82
+ }
83
 
84
+ if ( !is_ssl() && !(defined("rsssl_no_wp_redirect") && rsssl_no_wp_redirect) ) {
85
  $redirect_url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
86
  $redirect_url = apply_filters("rsssl_wp_redirect_url", $redirect_url);
87
  wp_redirect($redirect_url, 301);
88
  exit;
89
  }
90
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  }
92
  }
class-help.php DELETED
@@ -1,145 +0,0 @@
1
- <?php
2
- defined('ABSPATH') or die("you do not have access to this page!");
3
- if ( ! class_exists( 'rsssl_help' ) ) {
4
- class rsssl_help {
5
- private static $_this;
6
-
7
- function __construct() {
8
- if ( isset( self::$_this ) )
9
- wp_die( sprintf( __( '%s is a singleton class and you cannot create a second instance.','really-simple-ssl' ), get_class( $this ) ) );
10
-
11
- self::$_this = $this;
12
- }
13
-
14
- static function this() {
15
- return self::$_this;
16
- }
17
-
18
- public function get_help_tip($str, $return=false, $add_css = false ){
19
- if ($return) {
20
- ob_start();
21
- }
22
-
23
- if ( $add_css ) { ?>
24
- <style>
25
- [data-rsssl-tooltip] {
26
- position: relative;
27
- cursor: pointer;
28
- }
29
- /* Base styles for the entire tooltip */
30
- [data-rsssl-tooltip]:before,
31
- [data-rsssl-tooltip]:after {
32
- position: absolute;
33
- visibility: hidden;
34
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
35
- filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
36
- opacity: 0;
37
- -webkit-transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, -webkit-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
38
- -moz-transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, -moz-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
39
- transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
40
- -webkit-transform: translate3d(0, 0, 0);
41
- -moz-transform: translate3d(0, 0, 0);
42
- transform: translate3d(0, 0, 0);
43
- pointer-events: none;
44
- }
45
-
46
- /* Show the entire rsssl-tooltip on hover and focus */
47
- [data-rsssl-tooltip]:hover:before,
48
- [data-rsssl-tooltip]:hover:after,
49
- [data-rsssl-tooltip]:focus:before,
50
- [data-rsssl-tooltip]:focus:after {
51
- visibility: visible;
52
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
53
- filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
54
- opacity: 1;
55
- }
56
- [data-rsssl-tooltip]:before {
57
- z-index: 1001;
58
- border: 6px solid transparent;
59
- background: transparent;
60
- content: "";
61
- }
62
- [data-rsssl-tooltip]:after {
63
- z-index: 1000;
64
- padding: 8px;
65
- width: 220px;
66
- background-color: #000;
67
- background-color: hsla(0, 0%, 20%, 0.9);
68
- color: #fff;
69
- content: attr(data-rsssl-tooltip);
70
- font-size: 14px;
71
- line-height: 1.2;
72
- }
73
-
74
- .rsssl-tooltip-right {
75
- font-weight: normal;
76
- }
77
- [data-rsssl-tooltip]:before,
78
- [data-rsssl-tooltip]:after {
79
- bottom: 100%;
80
- left: 50%;
81
- }
82
- .rsssl-tooltip-right:before,
83
- .rsssl-tooltip-right:after {
84
- bottom: 50%;
85
- left: 100%;
86
- }
87
- [data-rsssl-tooltip]:before {
88
- margin-left: -6px;
89
- margin-bottom: -12px;
90
- border-top-color: #000;
91
- border-top-color: hsla(0, 0%, 20%, 0.9);
92
- }
93
- [data-rsssl-tooltip]:after{
94
- margin-left: -80px;
95
- }
96
- .rsssl-tooltip-right:before {
97
- margin-bottom: 0;
98
- margin-left: -12px;
99
- border-top-color: transparent;
100
- border-right-color: #000;
101
- border-right-color: hsla(0, 0%, 20%, 0.9);
102
- }
103
- .rsssl-tooltip-right:hover:before,
104
- .rsssl-tooltip-right:hover:after,
105
- .rsssl-tooltip-right:focus:before,
106
- .rsssl-tooltip-right:focus:after {
107
- -webkit-transform: translateX(12px);
108
- -moz-transform: translateX(12px);
109
- transform: translateX(12px);
110
- }
111
- .rsssl-tooltip-right:before {
112
- top: 3px;
113
- }
114
- .rsssl-tooltip-right:after {
115
- margin-left: 0;
116
- margin-bottom: -25px;
117
- }
118
- </style>
119
- <?php }
120
- ?>
121
-
122
- <span class="rsssl-tooltip-right tooltip-right" data-rsssl-tooltip="<?php echo $str?>">
123
- <span class="dashicons dashicons-editor-help"></span>
124
- </span>
125
- <?php
126
- if ($return) {
127
- $content = ob_get_clean();
128
- return $content;
129
- }
130
- }
131
-
132
- /**
133
- * Break current row, and start new one.
134
- * @param string $str
135
- * @param string $class
136
- */
137
- public function get_comment($str, $class = false) {
138
- if (strlen($str) === 0) return;
139
- ?>
140
- </td></tr><tr class="rsssl-comment-text <?php echo esc_attr($class)?>"><td colspan="2"><?php echo $str;?></td></tr>
141
- <?php
142
- }
143
-
144
- }//class closure
145
- } //if class exists closure
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
class-installer.php ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
+ if (!function_exists('is_plugin_active')) {
4
+ include_once(ABSPATH . 'wp-admin/includes/plugin.php');
5
+ }
6
+ /**
7
+ * Install suggested plugins
8
+ */
9
+
10
+ if ( !class_exists('rsssl_installer') ){
11
+ class rsssl_installer {
12
+ private $slug = '';
13
+ public function __construct($slug) {
14
+ if ( !current_user_can('install_plugins') ) return;
15
+
16
+ $this->slug = $slug;
17
+ }
18
+
19
+ /**
20
+ * Check if plugin is downloaded
21
+ * @return bool
22
+ */
23
+
24
+ public function plugin_is_downloaded(){
25
+ return file_exists(trailingslashit(WP_PLUGIN_DIR).$this->get_activation_slug() );
26
+ }
27
+ /**
28
+ * Check if plugin is activated
29
+ * @return bool
30
+ */
31
+ public function plugin_is_activated(){
32
+ return is_plugin_active($this->get_activation_slug());
33
+ }
34
+
35
+ /**
36
+ * Install plugin
37
+ * @param string $step
38
+ *
39
+ * @return void
40
+ */
41
+ public function install($step){
42
+ if ( !current_user_can('install_plugins') ) return;
43
+
44
+ if ( $step === 'download' ) {
45
+ $this->download_plugin();
46
+ }
47
+ if ( $step === 'activate' ) {
48
+ $this->activate_plugin();
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Get slug to activate plugin with
54
+ * @return string
55
+ */
56
+ public function get_activation_slug(){
57
+ $slugs = [
58
+ 'burst-statistics' => 'burst-statistics/burst.php',
59
+ 'complianz-gdpr' => 'complianz-gdpr/complianz-gpdr.php',
60
+ 'complianz-terms-conditions' => 'complianz-terms-conditions/complianz-terms-conditions.php',
61
+ ];
62
+ return $slugs[$this->slug];
63
+ }
64
+
65
+ /**
66
+ * Cancel shepherd tour
67
+ * @return void
68
+ */
69
+ public function cancel_tour(){
70
+ $prefixes = [
71
+ 'burst-statistics' => 'burst',
72
+ 'complianz-gdpr' => 'cmplz',
73
+ 'complianz-terms-conditions' => 'cmplz_tc',
74
+ ];
75
+ $prefix = $prefixes[$this->slug];
76
+ update_site_option( $prefix.'_tour_started', false );
77
+ update_site_option( $prefix.'_tour_shown_once', true );
78
+ delete_transient($prefix.'_redirect_to_settings');
79
+ }
80
+
81
+ /**
82
+ * Download the plugin
83
+ * @return bool
84
+ */
85
+ public function download_plugin() {
86
+ if ( !current_user_can('install_plugins') ) {
87
+ return false;
88
+ }
89
+ if ( get_transient("rsssl_plugin_download_active")!==$this->slug ) {
90
+ set_transient("rsssl_plugin_download_active", $this->slug,MINUTE_IN_SECONDS );
91
+ $info = $this->get_plugin_info();
92
+ $download_link = esc_url_raw( $info->versions['trunk'] );
93
+ require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
94
+ require_once ABSPATH . 'wp-admin/includes/file.php';
95
+ include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
96
+ $skin = new WP_Ajax_Upgrader_Skin();
97
+ $upgrader = new Plugin_Upgrader( $skin );
98
+ $result = $upgrader->install( $download_link );
99
+ if (is_wp_error($result)){
100
+ return false;
101
+ }
102
+ delete_transient("rsssl_plugin_download_active");
103
+ }
104
+ return true;
105
+ }
106
+
107
+ /**
108
+ * Activate the plugin
109
+ *
110
+ * @return bool
111
+ */
112
+ public function activate_plugin() {
113
+ if ( !current_user_can('install_plugins')) {
114
+ return false;
115
+ }
116
+ $slug = $this->get_activation_slug();
117
+ $networkwide = is_multisite() && rsssl_is_networkwide_active();
118
+ $result = activate_plugin( $slug, '', $networkwide );
119
+ if (is_wp_error($result)){
120
+ return false;
121
+ }
122
+ $this->cancel_tour();
123
+ return true;
124
+ }
125
+
126
+ /**
127
+ * Get plugin info
128
+ * @return array|WP_Error
129
+ */
130
+ public function get_plugin_info()
131
+ {
132
+ require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
133
+ $plugin_info = get_transient('rsssl_'.$this->slug . '_plugin_info');
134
+ if ( empty($plugin_info) ) {
135
+ $plugin_info = plugins_api('plugin_information', array('slug' => $this->slug));
136
+ if ( !is_wp_error($plugin_info) ) {
137
+ set_transient('rsssl_'.$this->slug . '_plugin_info', $plugin_info, WEEK_IN_SECONDS);
138
+ }
139
+ }
140
+ return $plugin_info;
141
+ }
142
+ }
143
+
144
+ }
class-mixed-content-fixer.php CHANGED
@@ -6,17 +6,21 @@ if (!class_exists('rsssl_admin_mixed_content_fixer')) {
6
  {
7
  private static $_this;
8
  public $http_urls = array();
 
 
9
 
10
  function __construct()
11
  {
12
- if (isset(self::$_this))
13
- wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this)));
14
 
15
  self::$_this = $this;
16
-
17
- //exclude admin here: for all well built plugins and themes, this should not be necessary.
18
- if (!is_admin() && is_ssl() && RSSSL()->rsssl_front_end->autoreplace_insecure_links) {
19
- $this->fix_mixed_content();
 
 
 
20
  }
21
  }
22
 
@@ -35,28 +39,19 @@ if (!class_exists('rsssl_admin_mixed_content_fixer')) {
35
  *
36
  */
37
 
38
- public function fix_mixed_content()
39
  {
40
-
41
  /* Do not fix mixed content when call is coming from wp_api or from xmlrpc */
42
  if (defined('JSON_REQUEST') && JSON_REQUEST) return;
43
  if (defined('XMLRPC_REQUEST') && XMLRPC_REQUEST) return;
44
 
45
  $this->build_url_list();
46
 
47
- /*
48
- Take care with modifications to hooks here:
49
- hooks tend to differ between front and back-end.
50
- */
51
-
52
- if (is_admin()) {
53
-
54
  add_action("admin_init", array($this, "start_buffer"), 100);
55
  add_action("shutdown", array($this, "end_buffer"), 999);
56
-
57
  } else {
58
-
59
- if (RSSSL()->rsssl_front_end->switch_mixed_content_fixer_hook || (defined('RSSSL_CONTENT_FIXER_ON_INIT') && RSSSL_CONTENT_FIXER_ON_INIT)) {
60
  add_action("init", array($this, "start_buffer"));
61
  } else {
62
  add_action("template_redirect", array($this, "start_buffer"));
@@ -78,8 +73,10 @@ if (!class_exists('rsssl_admin_mixed_content_fixer')) {
78
 
79
  public function filter_buffer($buffer)
80
  {
81
- $buffer = $this->replace_insecure_links($buffer);
82
- return $buffer;
 
 
83
  }
84
 
85
  /**
@@ -121,16 +118,15 @@ if (!class_exists('rsssl_admin_mixed_content_fixer')) {
121
 
122
  public function build_url_list()
123
  {
124
- $home = str_replace("https://", "http://", get_option('home'));
125
- $home_no_www = str_replace("://www.", "://", $home);
126
- $home_yes_www = str_replace("://", "://www.", $home_no_www);
127
 
128
  //for the escaped version, we only replace the home_url, not it's www or non www counterpart, as it is most likely not used
129
  $escaped_home = str_replace("/", "\/", $home);
130
-
131
  $this->http_urls = array(
132
- $home_yes_www,
133
- $home_no_www,
134
  $escaped_home,
135
  "src='http://",
136
  'src="http://',
@@ -148,13 +144,13 @@ if (!class_exists('rsssl_admin_mixed_content_fixer')) {
148
 
149
  public function replace_insecure_links($str)
150
  {
151
-
152
  //skip if file is xml
153
- if (substr($str, 0, 5) == "<?xml") return $str;
 
 
154
 
155
  $search_array = apply_filters('rlrsssl_replace_url_args', $this->http_urls);
156
  $ssl_array = str_replace(array("http://", "http:\/\/"), array("https://", "https:\/\/"), $search_array);
157
- //now replace these links
158
  $str = str_replace($search_array, $ssl_array, $str);
159
 
160
  //replace all http links except hyperlinks
@@ -170,15 +166,11 @@ if (!class_exists('rsssl_admin_mixed_content_fixer')) {
170
 
171
  /* handle multiple images in srcset */
172
  $str = preg_replace_callback('/<img[^\>]*[^\>\S]+srcset=[\'"]\K((?:[^"\'\s,]+\s*(?:\s+\d+[wx])(?:,\s*)?)+)["\']/', array($this, 'replace_src_set'), $str);
173
-
174
- $str = str_replace("<body", '<body data-rsssl=1', $str);
175
-
176
- return apply_filters("rsssl_fixer_output", $str);
177
-
178
  }
179
 
180
- /*
181
- * Helper function to maintain PHP 5.2 compatibility. Yes. 5.2.. It's still used...
182
  *
183
  * */
184
 
6
  {
7
  private static $_this;
8
  public $http_urls = array();
9
+ public $mixed_content_fixer = false;
10
+ public $hide_wordpress_version = false;
11
 
12
  function __construct()
13
  {
14
+ if (isset(self::$_this)) wp_die();
 
15
 
16
  self::$_this = $this;
17
+ $this->mixed_content_fixer = is_ssl() && rsssl_get_option('mixed_content_fixer', true );
18
+ $this->hide_wordpress_version = rsssl_get_option('hide_wordpress_version' );
19
+ if ( !is_admin() && ($this->mixed_content_fixer || $this->hide_wordpress_version )) {
20
+ $this->handle_output_buffer();
21
+ } else if ( is_admin() && is_ssl() && rsssl_get_option("admin_mixed_content_fixer") ) {
22
+ $this->mixed_content_fixer = true;
23
+ $this->handle_output_buffer();
24
  }
25
  }
26
 
39
  *
40
  */
41
 
42
+ public function handle_output_buffer()
43
  {
 
44
  /* Do not fix mixed content when call is coming from wp_api or from xmlrpc */
45
  if (defined('JSON_REQUEST') && JSON_REQUEST) return;
46
  if (defined('XMLRPC_REQUEST') && XMLRPC_REQUEST) return;
47
 
48
  $this->build_url_list();
49
 
50
+ if ( is_admin() ) {
 
 
 
 
 
 
51
  add_action("admin_init", array($this, "start_buffer"), 100);
52
  add_action("shutdown", array($this, "end_buffer"), 999);
 
53
  } else {
54
+ if ( rsssl_get_option("switch_mixed_content_fixer_hook") || (defined('RSSSL_CONTENT_FIXER_ON_INIT') && RSSSL_CONTENT_FIXER_ON_INIT)) {
 
55
  add_action("init", array($this, "start_buffer"));
56
  } else {
57
  add_action("template_redirect", array($this, "start_buffer"));
73
 
74
  public function filter_buffer($buffer)
75
  {
76
+ if ( $this->mixed_content_fixer ) {
77
+ $buffer = $this->replace_insecure_links($buffer);
78
+ }
79
+ return apply_filters("rsssl_fixer_output", $buffer );
80
  }
81
 
82
  /**
118
 
119
  public function build_url_list()
120
  {
121
+ $home = str_replace("https://", "http://", get_option('home') );
122
+ $root = str_replace("://www.", "://", $home);
123
+ $www = str_replace("://", "://www.", $root);
124
 
125
  //for the escaped version, we only replace the home_url, not it's www or non www counterpart, as it is most likely not used
126
  $escaped_home = str_replace("/", "\/", $home);
 
127
  $this->http_urls = array(
128
+ $www,
129
+ $root,
130
  $escaped_home,
131
  "src='http://",
132
  'src="http://',
144
 
145
  public function replace_insecure_links($str)
146
  {
 
147
  //skip if file is xml
148
+ if ( strpos( $str, "<?xml" ) === 0 ) {
149
+ return $str;
150
+ }
151
 
152
  $search_array = apply_filters('rlrsssl_replace_url_args', $this->http_urls);
153
  $ssl_array = str_replace(array("http://", "http:\/\/"), array("https://", "https:\/\/"), $search_array);
 
154
  $str = str_replace($search_array, $ssl_array, $str);
155
 
156
  //replace all http links except hyperlinks
166
 
167
  /* handle multiple images in srcset */
168
  $str = preg_replace_callback('/<img[^\>]*[^\>\S]+srcset=[\'"]\K((?:[^"\'\s,]+\s*(?:\s+\d+[wx])(?:,\s*)?)+)["\']/', array($this, 'replace_src_set'), $str);
169
+ return str_replace("<body", '<body data-rsssl=1', $str);
 
 
 
 
170
  }
171
 
172
+ /**
173
+ * Helper function
174
  *
175
  * */
176
 
class-multisite.php CHANGED
@@ -1,69 +1,42 @@
1
- <?php
2
-
3
- defined('ABSPATH') or die("you do not have access to this page!");
4
 
5
  if (!class_exists('rsssl_multisite')) {
6
  class rsssl_multisite
7
  {
8
  private static $_this;
9
 
10
- public $section = "rsssl_network_options_section";
11
- public $ssl_enabled_networkwide;
12
- public $selected_networkwide_or_per_site;
13
- public $wp_redirect;
14
- public $htaccess_redirect;
15
- public $do_not_edit_htaccess;
16
- public $autoreplace_mixed_content;
17
- public $javascript_redirect;
18
- public $hsts;
19
- public $mixed_content_admin;
20
- public $cert_expiration_warning;
21
- public $hide_menu_for_subsites;
22
- public $dismiss_all_notices;
23
-
24
  function __construct()
25
  {
26
 
27
  if (isset(self::$_this))
28
- wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this)));
29
 
30
  self::$_this = $this;
31
 
32
- $this->load_options();
33
- register_activation_hook(dirname(__FILE__) . "/" . rsssl_plugin, array($this, 'activate'));
34
-
35
  /*filters to make sure WordPress returns the correct protocol */
36
  add_filter("admin_url", array($this, "check_admin_protocol"), 20, 3);
37
  add_filter('home_url', array($this, 'check_site_protocol'), 20, 4);
38
  add_filter('site_url', array($this, 'check_site_protocol'), 20, 4);
39
- add_action("plugins_loaded", array($this, "process_networkwide_choice"), 10, 0);
40
- add_action("plugins_loaded", array($this, "networkwide_choice_notice"), 20, 0);
41
  add_action('network_admin_menu', array(&$this, 'add_multisite_menu'));
42
- add_action('network_admin_edit_rsssl_update_network_settings', array($this, 'update_network_options'));
43
 
44
- if (is_network_admin()) {
45
  add_action('network_admin_notices', array($this, 'show_notices'), 10);
46
- add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_success'));
47
- add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_wildcard_warning'));
48
  }
49
 
50
  $plugin = rsssl_plugin;
51
- add_filter("network_admin_plugin_action_links_$plugin", array($this, 'plugin_settings_link'));
52
- add_action('wp_ajax_dismiss_success_message_multisite', array($this, 'dismiss_success_message_callback'));
53
- add_action('wp_ajax_dismiss_wildcard_warning', array($this, 'dismiss_wildcard_message_callback'));
54
 
55
  //If WP version is 5.1 or higher, use wp_insert_site hook for multisite SSL activation in new blogs
56
- if(version_compare(get_bloginfo('version'),'5.1', '>=') ) {
57
  add_action('wp_initialize_site', array($this, 'maybe_activate_ssl_in_new_blog'), 20, 1);
58
  } else {
59
  add_action('wpmu_new_blog', array($this, 'maybe_activate_ssl_in_new_blog_deprecated'), 10, 6);
60
  }
61
 
62
- //Listen for run_ssl_process hook switch
63
- add_action('admin_init', array($this, 'listen_for_ssl_conversion_hook_switch'), 40);
64
  add_filter('rsssl_notices', array($this, 'add_multisite_notices'));
65
- add_filter('rsssl_ssl_detected', array($this, 'override_ssl_detection_ms'));
66
- add_action('rsssl_progress_feedback', array( $this, 'add_ms_progress_feedback' ));
67
  }
68
 
69
  static function this()
@@ -72,102 +45,116 @@ if (!class_exists('rsssl_multisite')) {
72
  }
73
 
74
  /**
75
- * Conditionally override SSL detection
76
- *
77
- * @param $output
78
  *
79
- * @return string
80
  */
81
- public function override_ssl_detection_ms( $output ){
82
- //if it's multisite, and it's activated per site, this is not important for the main site.
83
- if ( is_multisite() && is_main_site() && $this->selected_networkwide_or_per_site && !$this->ssl_enabled_networkwide ) {
84
- return 'not-applicable';
85
- }
86
-
87
- return $output;
88
- }
89
-
90
- public function add_ms_progress_feedback(){
91
- if ( !is_multisite() ) return;
92
- if ( !is_network_admin() ) return;
93
 
94
- if ( !$this->selected_networkwide_or_per_site ) {
95
- echo ' '.__('No choice has been made regarding networkwide or per site activation.', 'really-simple-ssl');
96
- } else if ($this->ssl_enabled_networkwide){
97
- echo ' '.__('SSL is activated network wide.', 'really-simple-ssl');
98
- } else {
99
- echo ' '.__('SSL is activated per site.', 'really-simple-ssl');
100
- }
101
- }
102
 
103
- public function add_multisite_notices($notices) {
 
 
 
 
104
 
105
- //only on network
106
- if ( !is_network_admin()) return $notices;
 
 
 
 
 
 
 
 
 
 
 
 
 
107
 
 
 
 
 
 
 
 
108
  $unset_array = array(
109
  'mixed_content_fixer_detected',
110
- 'hsts_enabled',
111
- 'mixed_content_scan',
112
  'elementor',
113
  'divi',
114
- 'wordpress_redirect',
115
  );
116
 
117
  foreach ( $unset_array as $unset_item ) {
118
  unset( $notices[$unset_item] );
119
  }
120
-
121
  $notices['ssl_enabled'] = array(
122
- 'callback' => 'RSSSL()->rsssl_multisite->ssl_activation_status',
123
  'score' => 30,
124
  'output' => array(
125
- 'ssl-networkwide' => array(
126
  'msg' =>__('SSL is enabled networkwide.', 'really-simple-ssl'),
127
  'icon' => 'success'
128
  ),
129
- 'ssl-per-site' => array(
130
- 'msg' =>__('SSL is enabled per site.', 'really-simple-ssl'),
131
- 'icon' => 'success'
132
- ),
133
- 'ssl-not-enabled' => array(
134
- 'msg' => __('SSL is not enabled yet', 'really-simple-ssl'),
135
  'icon' => 'open',
136
- ),
137
- ),
138
- );
139
- $notices['6_multisite_networkwide'] = array(
140
- 'callback' => 'RSSSL()->rsssl_multisite->ssl_activation_status',
141
- 'score' => 0,
142
- 'output' => array(
143
- 'ssl-per-site' => array(
144
- 'title' => __( "End of Per Site Management support.", "really-simple-ssl" ),
145
- 'msg' => __( "Really Simple SSL 6.0 drops SSL activation per website. Upgrading to 6.0 will upgrade all subsites to SSL.", "really-simple-ssl" ),
146
- 'icon' => 'warning',
147
- 'url' => 'https://really-simple-ssl.com/ssl-per-website-deprecated/',
148
- 'dismissible' => true,
149
  'plusone' => true,
150
- 'admin_notice' => true,
151
  ),
152
  ),
153
  );
154
 
155
-
156
  $notices['multisite_server_variable_warning'] = array(
157
- 'callback' => 'RSSSL()->rsssl_multisite->multisite_server_variable_warning',
 
158
  'score' => 30,
159
  'output' => array(
160
  'no-server-variable' => array(
161
  'msg' => __('You run a Multisite installation with subfolders, which prevents this plugin from fixing your missing server variable in the wp-config.php.', 'really-simple-ssl') . " "
162
  .__('Because the $_SERVER["HTTPS"] variable is not set, your website may experience redirect loops.', 'really-simple-ssl') . " "
163
  .__('Activate networkwide to fix this.', 'really-simple-ssl'),
164
- 'icon' => 'warning'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
  ),
166
  ),
167
  );
168
 
169
  $notices['subdomains_no_wildcard'] = array(
170
- 'callback' => 'RSSSL()->rsssl_multisite->subdomains_no_wildcard',
 
171
  'score' => 30,
172
  'output' => array(
173
  'subdomains-no-wildcard' => array(
@@ -176,6 +163,7 @@ if (!class_exists('rsssl_multisite')) {
176
  . __("Activate SSL per site or install a wildcard certificate to fix this.", 'really-simple-ssl'),
177
  'icon' => 'warning',
178
  'dismissible' => true,
 
179
  ),
180
  ),
181
  );
@@ -183,33 +171,18 @@ if (!class_exists('rsssl_multisite')) {
183
  return $notices;
184
  }
185
 
186
- /**
187
- * Get string success or fail network wide or per site
188
- * @return string
189
- */
190
-
191
- public function ssl_activation_status(){
192
-
193
- if ( $this->selected_networkwide_or_per_site ) {
194
- if ( $this->ssl_enabled_networkwide ){
195
- return 'ssl-networkwide';
196
- } else {
197
- return 'ssl-per-site';
198
- }
199
- } else {
200
- return 'ssl-not-enabled';
201
- }
202
- }
203
-
204
  /**
205
  * Check if site has a server var issue.
206
  * @return string
207
  */
208
 
209
  public function multisite_server_variable_warning(){
210
- if (!$this->ssl_enabled_networkwide && $this->selected_networkwide_or_per_site && $this->is_multisite_subfolder_install()) {
 
 
 
211
  //with no server variables, the website could get into a redirect loop.
212
- if (RSSSL()->really_simple_ssl->no_server_variable) {
213
  return 'no-server-variable';
214
  }
215
  }
@@ -222,8 +195,7 @@ if (!class_exists('rsssl_multisite')) {
222
  */
223
 
224
  public function subdomains_no_wildcard(){
225
-
226
- if (!RSSSL()->really_simple_ssl->ssl_enabled && !$this->is_multisite_subfolder_install() && !RSSSL()->rsssl_certificate->is_wildcard() && !get_site_option("rsssl_wildcard_message_shown")) {
227
  return 'subdomains-no-wildcard';
228
  }
229
  return 'success';
@@ -231,27 +203,24 @@ if (!class_exists('rsssl_multisite')) {
231
 
232
  /**
233
  * Add settings link on plugins overview page
 
234
  * @param array $links
235
- * @since 2.0
 
 
236
  * @access public
237
- * @return array
238
  */
239
 
240
- public function plugin_settings_link($links)
241
- {
242
- $settings_link = '<a href="' . admin_url("options-general.php?page=rlrsssl_really_simple_ssl") . '">' . __("Settings", "really-simple-ssl") . '</a>';
243
  array_unshift($links, $settings_link);
244
 
245
- if ( apply_filters('rsssl_settings_link', 'free') === 'free' ) {
246
- $support = '<a target="_blank" href="https://wordpress.org/support/plugin/really-simple-ssl/">' . __('Support', 'really-simple-ssl') . '</a>';
247
- } else {
248
- $support = '<a target="_blank" href="https://really-simple-ssl.com/support">' . __('Premium Support', 'really-simple-ssl') . '</a>';
249
- }
250
  array_unshift($links, $support);
251
 
252
  if ( ! defined( 'rsssl_pro_version' ) ) {
253
- $upgrade_link = '<a style="color:#2271b1;font-weight:bold" target="_blank" href="https://really-simple-ssl.com/pro#multisite">'
254
- . __( 'Improve security - Upgrade to Pro', 'really-simple-ssl' ) . '</a>';
255
  array_unshift( $links, $upgrade_link );
256
  }
257
  return $links;
@@ -260,7 +229,7 @@ if (!class_exists('rsssl_multisite')) {
260
  /**
261
  * When a new site is added, maybe activate SSL as well.
262
  *
263
- * @param int $blog_id
264
  * @param bool $user_id
265
  * @param bool $domain
266
  * @param bool $path
@@ -268,12 +237,13 @@ if (!class_exists('rsssl_multisite')) {
268
  * @param bool $meta
269
  */
270
 
271
- public function maybe_activate_ssl_in_new_blog_deprecated($blog_id, $user_id=false, $domain=false, $path=false, $site_id=false, $meta=false)
272
  {
273
- if ($this->ssl_enabled_networkwide) {
 
274
  $site = get_blog_details($blog_id);
275
- $this->switch_to_blog_bw_compatible($site);
276
- RSSSL()->really_simple_ssl->activate_ssl();
277
  restore_current_blog();
278
  }
279
  }
@@ -287,60 +257,13 @@ if (!class_exists('rsssl_multisite')) {
287
 
288
  public function maybe_activate_ssl_in_new_blog($site)
289
  {
290
- if ($this->ssl_enabled_networkwide) {
291
- $this->switch_to_blog_bw_compatible($site);
292
- RSSSL()->really_simple_ssl->activate_ssl();
293
  restore_current_blog();
294
  }
295
  }
296
 
297
-
298
- public function networkwide_choice_notice()
299
- {
300
- if ($this->plugin_network_wide_active() && !$this->selected_networkwide_or_per_site) {
301
- add_action('network_admin_notices', array($this, 'show_notice_activate_networkwide'), 10);
302
- }
303
- }
304
-
305
- public function load_options()
306
- {
307
- $options = get_site_option('rlrsssl_network_options');
308
- $this->selected_networkwide_or_per_site = isset($options["selected_networkwide_or_per_site"]) ? $options["selected_networkwide_or_per_site"] : false;
309
- $this->ssl_enabled_networkwide = isset($options["ssl_enabled_networkwide"]) ? $options["ssl_enabled_networkwide"] : false;
310
- $this->wp_redirect = isset($options["wp_redirect"]) ? $options["wp_redirect"] : false;
311
- $this->htaccess_redirect = isset($options["htaccess_redirect"]) ? $options["htaccess_redirect"] : false;
312
- $this->do_not_edit_htaccess = isset($options["do_not_edit_htaccess"]) ? $options["do_not_edit_htaccess"] : false;
313
- $this->autoreplace_mixed_content = isset($options["autoreplace_mixed_content"]) ? $options["autoreplace_mixed_content"] : false;
314
- $this->javascript_redirect = isset($options["javascript_redirect"]) ? $options["javascript_redirect"] : false;
315
- $this->hsts = isset($options["hsts"]) ? $options["hsts"] : false;
316
- $this->mixed_content_admin = isset($options["mixed_content_admin"]) ? $options["mixed_content_admin"] : false;
317
- $this->cert_expiration_warning = isset($options["cert_expiration_warning"]) ? $options["cert_expiration_warning"] : false;
318
- $this->hide_menu_for_subsites = isset($options["hide_menu_for_subsites"]) ? $options["hide_menu_for_subsites"] : false;
319
- $this->dismiss_all_notices = isset($options["dismiss_all_notices"]) ? $options["dismiss_all_notices"] : false;
320
- }
321
-
322
-
323
- /**
324
- * @param $networkwide
325
- *
326
- * On plugin activation, we can check if it is networkwide or not.
327
- *
328
- * @since 2.1
329
- *
330
- * @access public
331
- */
332
-
333
- public function activate($networkwide)
334
- {
335
- //if networkwide, we ask, if not, we set it as selected.
336
- if (!$networkwide) {
337
- $this->selected_networkwide_or_per_site = true;
338
- $this->ssl_enabled_networkwide = false;
339
- $this->save_options();
340
- }
341
-
342
- }
343
-
344
  /**
345
  Add network menu for SSL
346
  Only when plugin is network activated.
@@ -348,452 +271,116 @@ if (!class_exists('rsssl_multisite')) {
348
 
349
  public function add_multisite_menu()
350
  {
351
- if (!$this->plugin_network_wide_active()) return;
352
-
353
- register_setting('rsssl_network_options', 'rsssl_options');
354
- add_settings_section('rsssl_network_settings', __("Settings", "really-simple-ssl"), array($this, 'section_text'), "really-simple-ssl");
355
- $help = rsssl_help::this()->get_help_tip(__("Select to enable SSL networkwide or per site.", "really-simple-ssl"), true );
356
- add_settings_field('id_ssl_enabled_networkwide', $help.__("Enable SSL", "really-simple-ssl"), array($this, 'get_option_enable_multisite'), "really-simple-ssl", 'rsssl_network_settings');
357
- $help = rsssl_help::this()->get_help_tip(__("Enable this option to permanently dismiss all +1 notices in the 'Your progress' tab", "really-simple-ssl"), true );
358
- add_settings_field('id_dismiss_all_notices', $help.__("Dismiss all Really Simple SSL notices", "really-simple-ssl"), array($this, 'get_option_dismiss_all_notices'), "really-simple-ssl", 'rsssl_network_settings');
359
- add_submenu_page('settings.php', "SSL", "SSL", 'manage_network_options', "really-simple-ssl", array(&$this, 'settings_tab'));
360
- }
361
-
362
- /**
363
- Shows the content of the multisite menu page
364
- */
365
-
366
- public function section_text() {}
367
-
368
- public function get_option_enable_multisite()
369
- {
370
- $disable_per_site = !$this->can_activate_per_site() ? 'disabled="disabled"':''
371
- ?>
372
- <select name="rlrsssl_network_options[ssl_enabled_networkwide]">
373
- <?php if (!$this->selected_networkwide_or_per_site) { ?>
374
- <option value="-1" <?php if (!$this->selected_networkwide_or_per_site) echo "selected"; ?>><?php _e("Choose option", "really-simple-ssl") ?>
375
- <?php } ?>
376
- <option value="1" <?php if ($this->selected_networkwide_or_per_site && $this->ssl_enabled_networkwide) echo "selected"; ?>><?php _e("networkwide", "really-simple-ssl") ?>
377
- <option value="0" <?php echo $disable_per_site?> <?php if ($this->selected_networkwide_or_per_site && !$this->ssl_enabled_networkwide) echo "selected"; ?>><?php _e("per site", "really-simple-ssl") ?>
378
- </select>
379
- <?php
380
- }
381
 
382
- /**
383
- * Check if the plugin can be activated per site
384
- * @return bool|string
385
- */
386
- public function can_activate_per_site(){
387
- $can_activate_per_site = true;
388
- //only block the network wide option if it's not enabled.
389
- if ( !$this->selected_networkwide_or_per_site || $this->ssl_enabled_networkwide) {
390
- $can_activate_per_site = $this->get_total_blog_count()<50 || !RSSSL()->really_simple_ssl->do_wpconfig_loadbalancer_fix;
391
- }
392
- return $can_activate_per_site;
393
  }
394
 
395
  /**
396
- *
397
- * Get the option to dismiss all Really Simple SSL notices
398
- *
399
- * @since 5.1.2
400
- *
401
- * @access public
402
- *
403
  */
404
-
405
- public function get_option_dismiss_all_notices()
406
- {
407
- ?>
408
- <label class="rsssl-switch">
409
- <input id="rlrsssl_network_options" name="rlrsssl_network_options[dismiss_all_notices]" size="40" value="1"
410
- type="checkbox" <?php checked(1, $this->dismiss_all_notices, true) ?> />
411
- <span class="rsssl-slider rsssl-round"></span>
412
- </label>
413
- <?php
414
- }
415
-
416
-
417
- /**
418
- * Build the settings page
419
- *
420
- * @since 2.0
421
- *
422
- * @access public
423
- *
424
- */
425
-
426
- public function general_grid(){
427
- $grid_items = array(
428
- 'progress' =>array(
429
- 'title' => __("Your progress", "really-simple-ssl"),
430
- 'header' => rsssl_template_path . 'progress-header.php',
431
- 'content' => rsssl_template_path . 'progress.php',
432
- 'footer' => rsssl_template_path . 'progress-footer.php',
433
- 'class' => 'regular rsssl-progress',
434
- 'type' => 'all',
435
- ),
436
- 'ms_settings' => array(
437
- 'title' => __("Settings", "really-simple-ssl"),
438
- 'header' => rsssl_template_path . 'header.php',
439
- 'content' => rsssl_template_path . 'ms-settings.php',
440
- 'footer' => rsssl_template_path . 'settings-footer.php',
441
- 'class' => ' settings',
442
- 'type' => 'settings',
443
- ),
444
- 'support' => array(
445
- 'title' => __("Support forum", "really-simple-ssl"),
446
- 'header' => '',
447
- 'content' => rsssl_template_path . 'support.php',
448
- 'footer' => rsssl_template_path . 'support-footer.php',
449
- 'type' => 'tasks',
450
- 'class' => 'half-height',
451
- ),
452
- 'plugins' => array(
453
- 'title' => __("Our plugins", "really-simple-ssl"),
454
- 'header' => rsssl_template_path . 'header.php',
455
- 'content' => rsssl_template_path . 'other-plugins.php',
456
- 'footer' => '',
457
- 'class' => 'half-height no-border no-background upsell-grid-container',
458
- 'type' => 'plugins',
459
- 'can_hide' => false,
460
- ),
461
- );
462
- $grid_items = apply_filters( 'rsssl_grid_items_ms', $grid_items );
463
-
464
- $defaults = array(
465
- 'title' => '',
466
- 'header' => rsssl_template_path . 'header.php',
467
- 'content' => '',
468
- 'footer' => '',
469
- 'class' => '',
470
- 'type' => 'plugins',
471
- 'can_hide' => true,
472
- 'instructions' => false,
473
- );
474
- foreach ($grid_items as $key => $grid_item ) {
475
- $grid_items[$key] = wp_parse_args($grid_item, $defaults);
476
- }
477
- return $grid_items;
478
- }
479
-
480
- public function settings_tab()
481
- {
482
- if (isset($_GET['updated'])): ?>
483
- <div id="message" class="updated notice is-dismissible">
484
- <p><?php _e('Options saved.', 'really-simple-ssl') ?></p>
485
- </div>
486
- <?php endif; ?>
487
-
488
- <div class="nav-tab-wrapper">
489
- <div class="rsssl-logo-container">
490
- <div id="rsssl-logo"><img src="<?php echo rsssl_url?>/assets/really-simple-ssl-logo.png" alt="logo"></div>
491
- </div>
492
-
493
-
494
- <div class="header-links">
495
- <div class="documentation">
496
- <a href="https://really-simple-ssl.com/knowledge-base" target="_blank" class="<?php if (defined('rsssl_pro_version')) echo "button button-primary"?>"><?php _e("Documentation", "really-simple-ssl");?></a>
497
- </div>
498
- <div class="header-upsell">
499
- <?php if (defined('rsssl_pro_version')) { ?>
500
- <?php } else { ?>
501
- <div class="documentation">
502
- <a href="https://wordpress.org/support/plugin/really-simple-ssl/" class="button button-primary" target="_blank"><?php _e("Support", "really-simple-ssl") ?></a>
503
- </div>
504
- <?php } ?>
505
- </div>
506
- </div>
507
-
508
- </div>
509
-
510
- <div class="rsssl-container">
511
- <div class="rsssl-main"><?php
512
- RSSSL()->really_simple_ssl->render_grid($this->general_grid());
513
- do_action("rsssl_configuration_page");
514
- ?>
515
- </div>
516
- </div>
517
-
518
- <?php
519
- }
520
-
521
-
522
- /**
523
- * Save network settings
524
- */
525
-
526
- public function update_network_options()
527
- {
528
- if (!isset($_POST['rsssl_ms_nonce']) || !wp_verify_nonce($_POST['rsssl_ms_nonce'], 'rsssl_ms_settings_update')) return;
529
- if (! rsssl_user_can_manage() ) return;
530
-
531
- do_action('rsssl_process_network_options');
532
-
533
- if (isset($_POST["rlrsssl_network_options"])) {
534
- $prev_ssl_enabled_networkwide = $this->ssl_enabled_networkwide;
535
- $options = array_map(array($this, "sanitize_boolean"), $_POST["rlrsssl_network_options"]);
536
- $options["selected_networkwide_or_per_site"] = true;
537
- $this->ssl_enabled_networkwide = isset($options["ssl_enabled_networkwide"]) ? $options["ssl_enabled_networkwide"] : false;
538
- $this->wp_redirect = isset($options["wp_redirect"]) ? $options["wp_redirect"] : false;
539
- $this->htaccess_redirect = isset($options["htaccess_redirect"]) ? $options["htaccess_redirect"] : false;
540
- $this->do_not_edit_htaccess = isset($options["do_not_edit_htaccess"]) ? $options["do_not_edit_htaccess"] : false;
541
- $this->autoreplace_mixed_content = isset($options["autoreplace_mixed_content"]) ? $options["autoreplace_mixed_content"] : false;
542
- $this->javascript_redirect = isset($options["javascript_redirect"]) ? $options["javascript_redirect"] : false;
543
- $this->hsts = isset($options["hsts"]) ? $options["hsts"] : false;
544
- $this->mixed_content_admin = isset($options["mixed_content_admin"]) ? $options["mixed_content_admin"] : false;
545
- $this->cert_expiration_warning = isset($options["cert_expiration_warning"]) ? $options["cert_expiration_warning"] : false;
546
- $this->hide_menu_for_subsites = isset($options["hide_menu_for_subsites"]) ? $options["hide_menu_for_subsites"] : false;
547
- $this->selected_networkwide_or_per_site = isset($options["selected_networkwide_or_per_site"]) ? $options["selected_networkwide_or_per_site"] : false;
548
- $this->dismiss_all_notices = isset($options["dismiss_all_notices"]) ? $options["dismiss_all_notices"] : false;
549
-
550
- $this->save_options();
551
-
552
- if ($this->ssl_enabled_networkwide && !$prev_ssl_enabled_networkwide) {
553
- //reset
554
- $this->start_ssl_activation();
555
- //enable SSL on all sites on the network
556
- }
557
-
558
- if (!$this->ssl_enabled_networkwide && $prev_ssl_enabled_networkwide ) {
559
- //if we switch to per page, we deactivate SSL on all pages first, but only if the setting was changed.
560
- $this->start_ssl_deactivation();
561
- }
562
-
563
- }
564
-
565
- // At last we redirect back to our options page.
566
- wp_redirect(add_query_arg(array('page' => "really-simple-ssl", 'updated' => 'true'), network_admin_url('settings.php')));
567
- exit;
568
- }
569
-
570
- public function sanitize_boolean($value)
571
- {
572
- if ($value == true) {
573
- return true;
574
- } else {
575
- return false;
576
- }
577
- }
578
-
579
-
580
- /**
581
- * Give the user an option to activate networkwide or not.
582
- * Needs to be called after detect_configuration function
583
- *
584
- * @since 2.3
585
- *
586
- * @access public
587
- *
588
- */
589
-
590
- public function show_notice_activate_networkwide()
591
- {
592
- //prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
593
- $screen = get_current_screen();
594
- if ( $screen->base === 'post' ) return;
595
-
596
- if (is_network_admin() && RSSSL()->really_simple_ssl->wpconfig_ok()) {
597
- $disable_per_site = !$this->can_activate_per_site() ? 'disabled="disabled"':'';
598
-
599
- $class = "updated notice activate-ssl really-simple-plugins";
600
- $title = __("Setup", "really-simple-ssl");
601
- $content = '<h2>' . __("Some things can't be done automatically. Before you migrate, please check for: ", "really-simple-ssl") . '</h2>';
602
- $content .= '<ul>
603
- <li>'. __("Http references in your .css and .js files: change any http:// into https://", "really-simple-ssl") .'</li>
604
- <li>'. __("Images, stylesheets or scripts from a domain without an SSL certificate: remove them or move to your own server.", "really-simple-ssl") .'</li>
605
- </ul>';
606
- $content .= __('You can also let the automatic scan of the pro version handle this for you, and get premium support and increased security with HSTS included.', 'really-simple-ssl') . " "
607
- . '<a target="_blank"
608
- href="https://really-simple-ssl.com/pro-multisite">' . __("Check out Really Simple SSL Premium", "really-simple-ssl") . '</a>' . "<br>";
609
-
610
- $footer = '<form action="" method="post">'. wp_nonce_field('rsssl_nonce', 'rsssl_nonce').'
611
- <input type="submit" class="button button-primary"
612
- value="'. __("Activate SSL networkwide", "really-simple-ssl").'"
613
- id="rsssl_do_activate_ssl_networkwide" name="rsssl_do_activate_ssl_networkwide">
614
- <input '.$disable_per_site.' type="submit" class="button button-primary"
615
- value="'. __("Activate SSL per site", "really-simple-ssl").'"
616
- id="rsssl_do_activate_ssl_per_site" name="rsssl_do_activate_ssl_per_site">';
617
- $footer .= '</form>';
618
- $content .= '<ul>';
619
- if ( !$this->can_activate_per_site() ) {
620
- $content .= '<li class="rsssl-error">'.__( "Per site activation is not available above 50 sites", "really-simple-ssl" ) . '</li>';
621
- }
622
- $content .= '<li class="rsssl-error">'.__("Networkwide activation does not check if a site has an SSL certificate. It just migrates all sites to SSL.", "really-simple-ssl"). '</li>';
623
- $content .= '</ul>';
624
- echo RSSSL()->really_simple_ssl->notice_html($class, $title, $content, $footer);
625
- }
626
- }
627
-
628
- /**
629
- * @since 2.3
630
- * Shows option to buy pro
631
- */
632
-
633
- public function show_pro()
634
- {
635
- ?>
636
- <p><?php _e('You can also let the automatic scan of the pro version handle this for you, and get premium support and increased security with HSTS included.', 'really-simple-ssl') ?>
637
- &nbsp;<a target="_blank"
638
- href="https://really-simple-ssl.com/pro-multisite"><?php _e("Check out Really Simple SSL Premium", "really-simple-ssl"); ?></a>
639
- </p>
640
- <?php
641
- }
642
-
643
-
644
- /*
645
-
646
- Check if the plugin is network activated.
647
-
648
- */
649
-
650
-
651
- public function plugin_network_wide_active()
652
- {
653
- if (!function_exists('is_plugin_active_for_network'))
654
- require_once(ABSPATH . '/wp-admin/includes/plugin.php');
655
-
656
- if (is_plugin_active_for_network(rsssl_plugin)) {
657
- return true;
658
- } else {
659
- return false;
660
- }
661
- }
662
-
663
-
664
- public function process_networkwide_choice()
665
- {
666
-
667
- if (!$this->plugin_network_wide_active()) return;
668
-
669
- if (isset($_POST['rsssl_do_activate_ssl_networkwide'])) {
670
-
671
- $this->selected_networkwide_or_per_site = true;
672
- $this->ssl_enabled_networkwide = true;
673
- $this->wp_redirect = true;
674
- $this->save_options();
675
-
676
- //enable SSL on all sites on the network
677
- $this->start_ssl_activation();
678
- }
679
-
680
- if (isset($_POST['rsssl_do_activate_ssl_per_site'])) {
681
-
682
- $this->selected_networkwide_or_per_site = true;
683
- $this->ssl_enabled_networkwide = false;
684
- $this->save_options();
685
- }
686
-
687
- if (isset($_POST['rsssl_do_activate_ssl_networkwide']) || isset($_POST['rsssl_do_activate_ssl_per_site']) ) {
688
- $url = add_query_arg( array(
689
- "page" => "really-simple-ssl",
690
- ), network_admin_url( "settings.php" ) );
691
- wp_safe_redirect( $url );
692
- exit;
693
- }
694
- }
695
-
696
-
697
- public function save_options()
698
- {
699
- if ( ! rsssl_user_can_manage() ) return;
700
-
701
- $options = get_site_option("rlrsssl_network_options");
702
- if (!is_array($options)) $options = array();
703
-
704
- $options["selected_networkwide_or_per_site"] = $this->selected_networkwide_or_per_site;
705
- $options["ssl_enabled_networkwide"] = $this->ssl_enabled_networkwide;
706
- $options["wp_redirect"] = $this->wp_redirect;
707
- $options["htaccess_redirect"] = $this->htaccess_redirect;
708
- $options["do_not_edit_htaccess"] = $this->do_not_edit_htaccess;
709
- $options["autoreplace_mixed_content"] = $this->autoreplace_mixed_content;
710
- $options["javascript_redirect"] = $this->javascript_redirect;
711
- $options["hsts"] = $this->hsts;
712
- $options["mixed_content_admin"] = $this->mixed_content_admin;
713
- $options["cert_expiration_warning"] = $this->cert_expiration_warning;
714
- $options["hide_menu_for_subsites"] = $this->hide_menu_for_subsites;
715
- $options["dismiss_all_notices"] = $this->dismiss_all_notices;
716
-
717
- update_site_option("rlrsssl_network_options", $options);
718
- }
719
-
720
-
721
  public function ssl_process_active(){
722
-
723
- if (get_site_option('rsssl_ssl_activation_active')){
724
  return true;
725
  }
726
-
727
- if ( get_site_option('rsssl_ssl_deactivation_active')){
728
- return true;
729
- }
730
-
731
  return false;
732
  }
733
 
 
 
 
 
 
734
  public function run_ssl_process(){
735
- // if (!get_site_option('rsssl_run')) return;
736
-
737
- if (get_site_option('rsssl_ssl_activation_active')){
738
  $this->activate_ssl_networkwide();
739
  }
740
-
741
- if (get_site_option('rsssl_ssl_deactivation_active')){
742
- //$this->deactivate_ssl_networkwide();
743
- $this->end_ssl_deactivation();
744
- }
745
-
746
  update_site_option('rsssl_run', false);
747
-
748
  }
749
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
750
  public function get_process_completed_percentage(){
 
 
 
751
  $complete_count = get_site_option('rsssl_siteprocessing_progress');
752
- $percentage = round(($complete_count/$this->get_total_blog_count())*100,0);
753
- if ($percentage > 99) $percentage = 100;
 
 
 
 
754
 
755
  return intval($percentage);
756
  }
757
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
758
  public function start_ssl_activation(){
 
 
 
759
  update_site_option('rsssl_siteprocessing_progress', 0);
760
  update_site_option('rsssl_ssl_activation_active', true);
761
  }
762
 
 
 
 
 
 
763
  public function end_ssl_activation(){
 
 
 
764
  update_site_option('rsssl_ssl_activation_active', false);
765
- update_site_option('run_ssl_process_hook_switched', false);
766
- }
767
-
768
- public function start_ssl_deactivation(){
769
- update_site_option('rsssl_siteprocessing_progress', 0);
770
- update_site_option('rsssl_ssl_deactivation_active', true);
771
- }
772
-
773
- public function end_ssl_deactivation(){
774
- update_site_option('rsssl_ssl_deactivation_active', false);
775
- update_site_option('run_ssl_process_hook_switched', false);
776
- }
777
-
778
- public function deactivate_ssl_networkwide(){
779
- //run chunked
780
- $nr_of_sites = 200;
781
- $current_offset = get_site_option('rsssl_siteprocessing_progress');
782
-
783
- //set batch of sites
784
- $sites = $this->get_sites_bw_compatible($current_offset, $nr_of_sites);
785
-
786
- //if no sites are found, we assume we're done.
787
- if (count($sites)==0) {
788
- $this->end_ssl_deactivation();
789
- } else {
790
- foreach ($sites as $site) {
791
- $this->switch_to_blog_bw_compatible($site);
792
- RSSSL()->really_simple_ssl->deactivate_ssl();
793
- restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
794
- update_site_option('rsssl_siteprocessing_progress', $current_offset+$nr_of_sites);
795
- }
796
- }
797
  }
798
 
799
  /**
@@ -802,90 +389,83 @@ if (!class_exists('rsssl_multisite')) {
802
 
803
  public function activate_ssl_networkwide()
804
  {
 
 
 
805
  //run chunked
806
  $nr_of_sites = 200;
807
  $current_offset = get_site_option('rsssl_siteprocessing_progress');
808
-
809
  //set batch of sites
810
- $sites = $this->get_sites_bw_compatible($current_offset, $nr_of_sites);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
811
 
 
812
  //if no sites are found, we assume we're done.
813
- if (count($sites)==0) {
814
  $this->end_ssl_activation();
 
815
  } else {
816
  foreach ($sites as $site) {
817
- $this->switch_to_blog_bw_compatible($site);
818
- RSSSL()->really_simple_ssl->activate_ssl();
 
819
  restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
820
  update_site_option('rsssl_siteprocessing_progress', $current_offset+$nr_of_sites);
821
  }
822
  }
823
  }
824
 
825
-
826
- //change deprecated function depending on version.
827
- /**
828
- * Offset is used to chunk the site loops.
829
- * But offset is not used in the pre 4.6 function.
830
- *
831
- *
832
- * */
833
- public function get_sites_bw_compatible($offset=0, $nr_of_sites=100)
834
- {
835
- global $wp_version;
836
-
837
- $args = array(
838
- 'number' => $nr_of_sites,
839
- 'offset' => $offset,
840
- );
841
- $sites = ($wp_version >= 4.6) ? get_sites($args) : wp_get_sites();
842
- return $sites;
843
- }
844
-
845
- /**
846
- The new get_sites function returns an object.
847
- */
848
-
849
- public function switch_to_blog_bw_compatible($site)
850
- {
851
- global $wp_version;
852
- if ($wp_version >= 4.6) {
853
- switch_to_blog($site->blog_id);
854
- } else {
855
- switch_to_blog($site['blog_id']);
856
- }
857
- }
858
 
859
  public function deactivate()
860
  {
861
- $options = get_site_option("rlrsssl_network_options");
862
- $options["selected_networkwide_or_per_site"] = false;
863
- $options["wp_redirect"] = false;
864
- $options["htaccess_redirect"] = false;
865
- $options["do_not_edit_htaccess"] = false;
866
- $options["autoreplace_mixed_content"] = false;
867
- $options["javascript_redirect"] = false;
868
- $options["hsts"] = false;
869
- $options["mixed_content_admin"] = false;
870
- $options["cert_expiration_warning"] = false;
871
- $options["hide_menu_for_subsites"] = false;
872
- $options["dismiss_all_notices"] = false;
873
-
874
- unset($options["ssl_enabled_networkwide"]);
875
- update_site_option("rlrsssl_network_options", $options);
876
-
877
- //because the deactivation should be a one click procedure, chunking this would cause dificulties
878
- $sites = $this->get_sites_bw_compatible(0, $this->get_total_blog_count());
879
  foreach ($sites as $site) {
880
- $this->switch_to_blog_bw_compatible($site);
881
- RSSSL()->really_simple_ssl->deactivate_ssl();
882
- restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
 
 
 
 
883
  }
884
-
885
-
886
  }
887
 
888
-
889
  /**
890
  * filters the get_admin_url function to correct the false https urls wordpress returns for non SSL websites.
891
  *
@@ -895,7 +475,7 @@ if (!class_exists('rsssl_multisite')) {
895
 
896
  public function check_admin_protocol($url, $path, $blog_id)
897
  {
898
- if (!$blog_id) $blog_id = get_current_blog_id();
899
 
900
  //if the force_ssl_admin is defined, the admin_url should not be forced back to http: all admin panels should be https.
901
  if (defined('FORCE_SSL_ADMIN')) return $url;
@@ -906,14 +486,16 @@ if (!class_exists('rsssl_multisite')) {
906
  if (get_current_blog_id() == $blog_id) return $url;
907
 
908
  //now check if the blog is http or https, and change the url accordingly
909
- if (!$this->ssl_enabled_networkwide) {
 
 
 
910
  $home_url = get_blog_option($blog_id, 'home');
911
  if (strpos($home_url, "https://") === false) {
912
  $url = str_replace("https://", "http://", $url);
913
  }
914
  }
915
 
916
-
917
  return $url;
918
  }
919
 
@@ -926,12 +508,17 @@ if (!class_exists('rsssl_multisite')) {
926
 
927
  public function check_site_protocol($url, $path, $orig_scheme, $blog_id)
928
  {
929
- if (!$blog_id) $blog_id = get_current_blog_id();
 
 
930
 
931
  if (get_current_blog_id() == $blog_id) return $url;
932
 
933
- if (!$this->ssl_enabled_networkwide) {
934
- $home_url = get_blog_option($blog_id, 'home');
 
 
 
935
  if (strpos($home_url, "https://") === false) {
936
  $url = str_replace("https://", "http://", $url);
937
  }
@@ -951,20 +538,26 @@ if (!class_exists('rsssl_multisite')) {
951
 
952
  public function is_multisite_subfolder_install()
953
  {
954
- if (!is_multisite()) return FALSE;
 
 
955
  //we check this manually, as the SUBDOMAIN_INSTALL constant of wordpress might return false for domain mapping configs
956
- $is_subfolder = FALSE;
957
- $sites = $this->get_sites_bw_compatible(0, 10);
 
 
 
 
958
  foreach ($sites as $site) {
959
- $this->switch_to_blog_bw_compatible($site);
960
- if ($this->is_subfolder(home_url())) {
961
- $is_subfolder = TRUE;
962
  }
963
  restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
964
  if ($is_subfolder) return true;
965
  }
966
 
967
- return $is_subfolder;
968
  }
969
 
970
  /**
@@ -981,7 +574,6 @@ if (!class_exists('rsssl_multisite')) {
981
 
982
  public function is_subfolder($domain)
983
  {
984
-
985
  //remove slashes of the http(s)
986
  $domain = preg_replace("/(http:\/\/|https:\/\/)/", "", $domain);
987
  if (strpos($domain, "/") !== FALSE) {
@@ -990,36 +582,6 @@ if (!class_exists('rsssl_multisite')) {
990
  return false;
991
  }
992
 
993
- public function is_per_site_activated_multisite_subfolder_install()
994
- {
995
- if (is_multisite() && $this->is_multisite_subfolder_install() && !$this->ssl_enabled_networkwide) {
996
- return true;
997
- }
998
-
999
- return false;
1000
- }
1001
-
1002
- /**
1003
- *
1004
- * Sometimes conversion of websites hangs on 0%. If user clicks the link, the hook where run_ssl_process (multisite-cron.php)
1005
- * fires on will be switched to admin_init
1006
- *
1007
- */
1008
-
1009
- public function listen_for_ssl_conversion_hook_switch()
1010
- {
1011
- //check if we are on ssl settings page
1012
- if (!$this->is_settings_page()) return;
1013
- //check user role
1014
- if (! rsssl_user_can_manage() ) return;
1015
- //check nonce
1016
- if (!isset($_GET['token']) || (!wp_verify_nonce($_GET['token'], 'run_ssl_to_admin_init'))) return;
1017
- //check for action
1018
- if (isset($_GET["action"]) && $_GET["action"] == 'ssl_conversion_hook_switch') {
1019
- update_site_option('run_ssl_process_hook_switched', true);
1020
- }
1021
- }
1022
-
1023
  /**
1024
  * Show notices
1025
  *
@@ -1033,153 +595,44 @@ if (!class_exists('rsssl_multisite')) {
1033
  {
1034
  //prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
1035
  $screen = get_current_screen();
1036
- if ( $screen->base === 'post' ) return;
1037
 
1038
  if ( !$this->is_settings_page() ) {
1039
- $notices = RSSSL()->really_simple_ssl->get_notices_list( array('admin_notices'=>true) );
1040
  foreach ( $notices as $id => $notice ){
1041
  $notice = $notice['output'];
1042
  $class = ( $notice['status'] !== 'completed' ) ? 'error' : 'updated';
1043
- $footer = isset($notice['url']) ? '<a class="button" target="_blank" href="' . esc_url_raw($notice['url']) . '">'.__("More info", "really-simple-ssl").'</a>' : '';
1044
- echo RSSSL()->really_simple_ssl->notice_html( $class.' '.$id, $notice['title'], $notice['msg'], $footer );
 
1045
  }
1046
  }
1047
-
1048
- /**
1049
- * ssl switch for sites processing active
1050
- */
1051
-
1052
- if ($this->ssl_process_active()) {
1053
- $class = "notice is-dismissible rlrsssl-fail";
1054
- $title = "Website conversion";
1055
-
1056
- //In some cases the rsssl_ssl_process_hook hook can fail. Therefore we offer the option to switch the hook to admin_init when the conversion is stuck.
1057
- $token = wp_create_nonce('run_ssl_to_admin_init');
1058
- $run_ssl_process_hook_switch_link = network_admin_url("settings.php?page=really-simple-ssl&action=ssl_conversion_hook_switch&token=" . $token);
1059
-
1060
- $link_open = '<a target="_self" href="' . $run_ssl_process_hook_switch_link . '">';
1061
- $link_close = '</a>';
1062
- $completed = $this->get_process_completed_percentage();
1063
-
1064
- if ($completed < 100){
1065
- $class.=" error ";
1066
- $content = sprintf(__("Conversion of websites %s percent complete.", "really-simple-ssl"), $completed) . " ";
1067
- $content .= __("Site conversion in progress. Please refresh this page to check if the process has finished. It will proceed in the background.", "really-simple-ssl") . " ";
1068
- $content .= sprintf(__("If the conversion does not proceed after a few minutes, click %shere%s to force the conversion process.", "really-simple-ssl"), $link_open, $link_close);
1069
- } else {
1070
- $class.=" updated ";
1071
- $activation_active = get_site_option('rsssl_ssl_activation_active');
1072
- $content = __("Conversion of websites completed.", "really-simple-ssl") . " ";
1073
- if ($activation_active) {
1074
- $content .= __("Really Simple SSL has converted all your websites to SSL.", "really-simple-ssl");
1075
- $this->end_ssl_activation();
1076
- } else {
1077
- $content .= __("Really Simple SSL has converted all your websites to non SSL.", "really-simple-ssl");
1078
- $this->end_ssl_deactivation();
1079
- }
1080
-
1081
- }
1082
-
1083
- echo RSSSL()->really_simple_ssl->notice_html($class, $title, $content);
1084
- }
1085
- }
1086
-
1087
-
1088
- /**
1089
- * Insert some ajax script to dismiss the SSL success message, and stop nagging about it
1090
- *
1091
- * @since 2.0
1092
- *
1093
- * @access public
1094
- *
1095
- */
1096
-
1097
- public function insert_dismiss_success()
1098
- {
1099
- if ($this->selected_networkwide_or_per_site && !get_site_option("rsssl_success_message_shown")) {
1100
- $ajax_nonce = wp_create_nonce("really-simple-ssl-dismiss");
1101
- ?>
1102
- <script type='text/javascript'>
1103
- jQuery(document).ready(function ($) {
1104
- $(".rlrsssl-multisite-success.notice.is-dismissible").on("click", ".notice-dismiss", function (event) {
1105
-
1106
- var data = {
1107
- 'action': 'dismiss_success_message_multisite',
1108
- 'security': '<?php echo $ajax_nonce; ?>'
1109
- };
1110
-
1111
- $.post(ajaxurl, data, function (response) {
1112
-
1113
- });
1114
- });
1115
- });
1116
- </script>
1117
- <?php
1118
- }
1119
  }
1120
 
1121
- public function insert_dismiss_wildcard_warning()
1122
- {
1123
- if ($this->selected_networkwide_or_per_site && !get_site_option("rsssl_success_message_shown")) {
1124
- $ajax_nonce = wp_create_nonce("really-simple-ssl-dismiss");
1125
- ?>
1126
- <script type='text/javascript'>
1127
- jQuery(document).ready(function ($) {
1128
- $(".rlrsssl-multisite-wildcard-warning.notice.is-dismissible").on("click", ".notice-dismiss", function (event) {
1129
-
1130
- var data = {
1131
- 'action': 'dismiss_wildcard_warning',
1132
- 'security': '<?php echo $ajax_nonce; ?>'
1133
- };
1134
-
1135
- $.post(ajaxurl, data, function (response) {
1136
-
1137
- });
1138
- });
1139
- });
1140
- </script>
1141
- <?php
1142
- }
1143
- }
1144
-
1145
-
1146
- /**
1147
- * Process the ajax dismissal of the success message.
1148
- *
1149
- * @since 2.0
1150
- *
1151
- * @access public
1152
- *
1153
- */
1154
-
1155
- public function dismiss_success_message_callback()
1156
- {
1157
- check_ajax_referer('really-simple-ssl-dismiss', 'security');
1158
- update_site_option("rsssl_success_message_shown", true);
1159
- wp_die();
1160
- }
1161
-
1162
- public function dismiss_wildcard_message_callback()
1163
- {
1164
- check_ajax_referer('really-simple-ssl-dismiss', 'security');
1165
- update_site_option("rsssl_wildcard_message_shown", true);
1166
- wp_die();
1167
- }
1168
 
1169
  public function is_settings_page()
1170
  {
1171
- return (isset($_GET['page']) && $_GET['page'] == 'really-simple-ssl') ? true : false;
 
 
 
1172
  }
1173
 
 
 
 
 
 
1174
  public function get_total_blog_count()
1175
  {
1176
  //Get the total blog count from all multisite networks
1177
  $networks = get_networks();
1178
-
1179
  $total_blog_count = 0;
1180
-
1181
  foreach($networks as $network){
1182
-
1183
  $network_id = ($network->__get('id'));
1184
  $blog_count = get_blog_count($network_id);
1185
  $total_blog_count += $blog_count;
1
+ <?php defined('ABSPATH') or die();
 
 
2
 
3
  if (!class_exists('rsssl_multisite')) {
4
  class rsssl_multisite
5
  {
6
  private static $_this;
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  function __construct()
9
  {
10
 
11
  if (isset(self::$_this))
12
+ wp_die();
13
 
14
  self::$_this = $this;
15
 
16
+ register_activation_hook( __DIR__ . "/" . rsssl_plugin, array($this, 'activate'));
17
+ add_action('network_admin_menu', array($this, 'add_plus_ones') );
 
18
  /*filters to make sure WordPress returns the correct protocol */
19
  add_filter("admin_url", array($this, "check_admin_protocol"), 20, 3);
20
  add_filter('home_url', array($this, 'check_site_protocol'), 20, 4);
21
  add_filter('site_url', array($this, 'check_site_protocol'), 20, 4);
 
 
22
  add_action('network_admin_menu', array(&$this, 'add_multisite_menu'));
23
+ add_action('plugins_loaded', array($this, 'maybe_redirect_old_settings_url'), 10);
24
 
25
+ if ( is_network_admin() ) {
26
  add_action('network_admin_notices', array($this, 'show_notices'), 10);
 
 
27
  }
28
 
29
  $plugin = rsssl_plugin;
30
+ add_filter( "network_admin_plugin_action_links_$plugin", array($this, 'plugin_settings_link') );
 
 
31
 
32
  //If WP version is 5.1 or higher, use wp_insert_site hook for multisite SSL activation in new blogs
33
+ if( version_compare(get_bloginfo('version'),'5.1', '>=') ) {
34
  add_action('wp_initialize_site', array($this, 'maybe_activate_ssl_in_new_blog'), 20, 1);
35
  } else {
36
  add_action('wpmu_new_blog', array($this, 'maybe_activate_ssl_in_new_blog_deprecated'), 10, 6);
37
  }
38
 
 
 
39
  add_filter('rsssl_notices', array($this, 'add_multisite_notices'));
 
 
40
  }
41
 
42
  static function this()
45
  }
46
 
47
  /**
48
+ * Redirect to the new settings page
 
 
49
  *
50
+ * @return void
51
  */
52
+ public function maybe_redirect_old_settings_url(){
53
+ if ( !rsssl_user_can_manage() || !is_network_admin() ) {
54
+ return;
55
+ }
56
+ if ( isset($_GET['page']) && $_GET['page'] === 'rlrsssl_really_simple_ssl' ){
57
+ wp_redirect(add_query_arg(['page' => 'really-simple-security'], network_admin_url('settings.php') ) );
58
+ exit;
59
+ }
60
+ }
 
 
 
61
 
62
+ /**
63
+ *
64
+ * @since 3.1.6
65
+ *
66
+ * Add an update count to the WordPress admin Settings menu item
67
+ * Doesn't work when the Admin Menu Editor plugin is active
68
+ *
69
+ */
70
 
71
+ public function add_plus_ones()
72
+ {
73
+ if (!rsssl_user_can_manage()) {
74
+ return;
75
+ }
76
 
77
+ $count = RSSSL()->admin->count_plusones();
78
+ if ( $count > 0 ) {
79
+ global $menu;
80
+ foreach( $menu as $index => $menu_item ){
81
+ if (!isset($menu_item[2]) || !isset($menu_item[0])) continue;
82
+ if ( $menu_item[2]==='settings.php' ){
83
+ $pattern = '/<span.*>([1-9])<\/span><\/span>/i';
84
+ if (preg_match($pattern, $menu_item[0], $matches)){
85
+ if (isset($matches[1])) $count = (int) $count + (int) $matches[1];
86
+ }
87
+ $menu[$index][0] = __('Settings') . "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>";
88
+ }
89
+ }
90
+ }
91
+ }
92
 
93
+ /**
94
+ * Add notices to the dashboard
95
+ * @param array $notices
96
+ *
97
+ * @return array
98
+ */
99
+ public function add_multisite_notices( array $notices): array {
100
  $unset_array = array(
101
  'mixed_content_fixer_detected',
 
 
102
  'elementor',
103
  'divi',
 
104
  );
105
 
106
  foreach ( $unset_array as $unset_item ) {
107
  unset( $notices[$unset_item] );
108
  }
 
109
  $notices['ssl_enabled'] = array(
110
+ 'callback' => 'rsssl_ssl_enabled',
111
  'score' => 30,
112
  'output' => array(
113
+ 'true' => array(
114
  'msg' =>__('SSL is enabled networkwide.', 'really-simple-ssl'),
115
  'icon' => 'success'
116
  ),
117
+ 'false' => array(
118
+ 'msg' => __('SSL is not enabled on your network', 'really-simple-ssl'),
 
 
 
 
119
  'icon' => 'open',
 
 
 
 
 
 
 
 
 
 
 
 
 
120
  'plusone' => true,
 
121
  ),
122
  ),
123
  );
124
 
 
125
  $notices['multisite_server_variable_warning'] = array(
126
+ 'condition' => array('rsssl_ssl_enabled'),
127
+ 'callback' => 'RSSSL()->multisite->multisite_server_variable_warning',
128
  'score' => 30,
129
  'output' => array(
130
  'no-server-variable' => array(
131
  'msg' => __('You run a Multisite installation with subfolders, which prevents this plugin from fixing your missing server variable in the wp-config.php.', 'really-simple-ssl') . " "
132
  .__('Because the $_SERVER["HTTPS"] variable is not set, your website may experience redirect loops.', 'really-simple-ssl') . " "
133
  .__('Activate networkwide to fix this.', 'really-simple-ssl'),
134
+ 'icon' => 'warning',
135
+ 'plusone' => true,
136
+ ),
137
+ ),
138
+ );
139
+
140
+ $notices['activation_not_completed'] = array(
141
+ 'callback' => 'RSSSL()->multisite->ssl_activation_started_but_not_completed',
142
+ 'score' => 30,
143
+ 'output' => array(
144
+ 'true' => array(
145
+ 'title' => __("SSL activation in progress", "really-simple-ssl"),
146
+ 'msg' => __('A networkwide SSL activation process has been started, but has not been completed. Please go to the SSL settings page to complete the process.', 'really-simple-ssl').'&nbsp;'.
147
+ '<a href="'.add_query_arg(['page'=>'really-simple-security'], network_admin_url('settings.php') ).'">'.__('View settings page','really-simple-ssl').'</a>',
148
+ 'icon' => 'warning',
149
+ 'plusone' => true,
150
+ 'admin_notice' => true,
151
  ),
152
  ),
153
  );
154
 
155
  $notices['subdomains_no_wildcard'] = array(
156
+ 'condition' => array('rsssl_ssl_enabled'),
157
+ 'callback' => 'RSSSL()->multisite->subdomains_no_wildcard',
158
  'score' => 30,
159
  'output' => array(
160
  'subdomains-no-wildcard' => array(
163
  . __("Activate SSL per site or install a wildcard certificate to fix this.", 'really-simple-ssl'),
164
  'icon' => 'warning',
165
  'dismissible' => true,
166
+ 'plusone' => true,
167
  ),
168
  ),
169
  );
171
  return $notices;
172
  }
173
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
174
  /**
175
  * Check if site has a server var issue.
176
  * @return string
177
  */
178
 
179
  public function multisite_server_variable_warning(){
180
+ if (!function_exists('is_plugin_active_for_network'))
181
+ require_once(ABSPATH . '/wp-admin/includes/plugin.php');
182
+
183
+ if ( is_multisite() && !is_plugin_active_for_network(rsssl_plugin) && $this->is_multisite_subfolder_install() ) {
184
  //with no server variables, the website could get into a redirect loop.
185
+ if (RSSSL()->admin->no_server_variable) {
186
  return 'no-server-variable';
187
  }
188
  }
195
  */
196
 
197
  public function subdomains_no_wildcard(){
198
+ if ( get_site_option('rsssl_network_activation_status' !== 'completed') && !$this->is_multisite_subfolder_install() && !RSSSL()->certificate->is_wildcard() ) {
 
199
  return 'subdomains-no-wildcard';
200
  }
201
  return 'success';
203
 
204
  /**
205
  * Add settings link on plugins overview page
206
+ *
207
  * @param array $links
208
+ *
209
+ * @return array
210
+ * @since 2.0
211
  * @access public
 
212
  */
213
 
214
+ public function plugin_settings_link(array $links): array {
215
+ $url = add_query_arg(array('page' => 'really-simple-security'), network_admin_url('settings.php') );
216
+ $settings_link = '<a href="' . $url . '">' . __("Settings", "really-simple-ssl") . '</a>';
217
  array_unshift($links, $settings_link);
218
 
219
+ $support = apply_filters('rsssl_support_link', '<a target="_blank" href="https://wordpress.org/support/plugin/really-simple-ssl/">' . __('Support', 'really-simple-ssl') . '</a>');
 
 
 
 
220
  array_unshift($links, $support);
221
 
222
  if ( ! defined( 'rsssl_pro_version' ) ) {
223
+ $upgrade_link = '<a style="color:#2271b1;font-weight:bold" target="_blank" href="https://really-simple-ssl.com/pro#multisite">' . __( 'Improve security - Upgrade', 'really-simple-ssl' ) . '</a>';
 
224
  array_unshift( $links, $upgrade_link );
225
  }
226
  return $links;
229
  /**
230
  * When a new site is added, maybe activate SSL as well.
231
  *
232
+ * @param int $blog_id
233
  * @param bool $user_id
234
  * @param bool $domain
235
  * @param bool $path
237
  * @param bool $meta
238
  */
239
 
240
+ public function maybe_activate_ssl_in_new_blog_deprecated( int $blog_id, $user_id=false, $domain=false, $path=false, $site_id=false, $meta=false)
241
  {
242
+
243
+ if ( get_site_option('rsssl_network_activation_status' === 'completed') ) {
244
  $site = get_blog_details($blog_id);
245
+ switch_to_blog($site->blog_id);
246
+ RSSSL()->admin->activate_ssl(false);
247
  restore_current_blog();
248
  }
249
  }
257
 
258
  public function maybe_activate_ssl_in_new_blog($site)
259
  {
260
+ if ( get_site_option('rsssl_network_activation_status' === 'completed') ) {
261
+ switch_to_blog($site->blog_id);
262
+ RSSSL()->admin->activate_ssl(false);
263
  restore_current_blog();
264
  }
265
  }
266
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
267
  /**
268
  Add network menu for SSL
269
  Only when plugin is network activated.
271
 
272
  public function add_multisite_menu()
273
  {
274
+ if ( !is_multisite() || !rsssl_is_networkwide_active() ) {
275
+ return;
276
+ }
277
+ $count = RSSSL()->admin->count_plusones();
278
+ $update_count = $count > 0 ? "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>" : "";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
279
 
280
+ $page_hook_suffix = add_submenu_page(
281
+ 'settings.php',
282
+ "SSL",
283
+ "SSL".$update_count,
284
+ 'manage_security',
285
+ "really-simple-security",
286
+ 'rsssl_settings_page'
287
+ );
288
+ add_action( "admin_print_scripts-{$page_hook_suffix}", 'rsssl_plugin_admin_scripts' );
 
 
289
  }
290
 
291
  /**
292
+ * Check if an SSL process is active
293
+ * @return bool
 
 
 
 
 
294
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
295
  public function ssl_process_active(){
296
+ if ( get_site_option('rsssl_ssl_activation_active') ){
 
297
  return true;
298
  }
 
 
 
 
 
299
  return false;
300
  }
301
 
302
+ /**
303
+ * Run SSL upgrade process
304
+ *
305
+ * @return void
306
+ */
307
  public function run_ssl_process(){
308
+ if ( get_site_option('rsssl_ssl_activation_active') ){
 
 
309
  $this->activate_ssl_networkwide();
310
  }
 
 
 
 
 
 
311
  update_site_option('rsssl_run', false);
 
312
  }
313
 
314
+ /**
315
+ * @param WP_REST_Request $request
316
+ *
317
+ * @return array
318
+ */
319
+ public function process_ssl_activation_step(){
320
+ if ( !$this->ssl_process_active() ) {
321
+ $this->start_ssl_activation();
322
+ }
323
+ $this->run_ssl_process();
324
+ $progress = $this->get_process_completed_percentage();
325
+ return [
326
+ 'progress' => $progress,
327
+ 'success' => true
328
+ ];
329
+ }
330
+
331
+ /**
332
+ * Get SSL process completed percentage
333
+ * @return int
334
+ */
335
  public function get_process_completed_percentage(){
336
+ if ( get_site_option('rsssl_network_activation_status') === 'completed' ) {
337
+ return 100;
338
+ }
339
  $complete_count = get_site_option('rsssl_siteprocessing_progress');
340
+ $blog_count = $this->get_total_blog_count();
341
+ $blog_count = $blog_count !== 0 ? $blog_count : 1; //prevent division by zero
342
+ $percentage = round(( $complete_count/$blog_count )*100,0);
343
+ if ( $percentage > 99 ) {
344
+ $percentage = 100;
345
+ }
346
 
347
  return intval($percentage);
348
  }
349
 
350
+ /**
351
+ * Check if website has started activation, but didn't completed
352
+ * @return bool
353
+ */
354
+ public function ssl_activation_started_but_not_completed(){
355
+ if ( !get_option('rsssl_network_activation_status') ) {
356
+ return false;
357
+ }
358
+ return get_option('rsssl_network_activation_status')!=='completed';
359
+ }
360
+
361
+ /**
362
+ * Start SSL activation
363
+ *
364
+ * @return void
365
+ */
366
  public function start_ssl_activation(){
367
+ if (!rsssl_user_can_manage()) {
368
+ return;
369
+ }
370
  update_site_option('rsssl_siteprocessing_progress', 0);
371
  update_site_option('rsssl_ssl_activation_active', true);
372
  }
373
 
374
+ /**
375
+ * End SSL activation
376
+ *
377
+ * @return void
378
+ */
379
  public function end_ssl_activation(){
380
+ if (!rsssl_user_can_manage()) {
381
+ return;
382
+ }
383
  update_site_option('rsssl_ssl_activation_active', false);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
384
  }
385
 
386
  /**
389
 
390
  public function activate_ssl_networkwide()
391
  {
392
+ if (!rsssl_user_can_manage()) {
393
+ return;
394
+ }
395
  //run chunked
396
  $nr_of_sites = 200;
397
  $current_offset = get_site_option('rsssl_siteprocessing_progress');
 
398
  //set batch of sites
399
+ $args = array(
400
+ 'number' => $nr_of_sites,
401
+ 'offset' => $current_offset,
402
+ 'meta_query' => [
403
+ 'relation' => 'or',
404
+ [
405
+ 'key' => 'rsssl_ssl_activated',
406
+ 'compare' => 'NOT EXISTS'
407
+ ],
408
+ [
409
+ 'key' => 'rsssl_ssl_activated',
410
+ 'value' => false,
411
+ 'compare' => '=',
412
+ ],
413
+ ]
414
+ );
415
 
416
+ $sites = get_sites($args);
417
  //if no sites are found, we assume we're done.
418
+ if ( count($sites)==0 ) {
419
  $this->end_ssl_activation();
420
+ update_site_option('rsssl_network_activation_status', 'completed');
421
  } else {
422
  foreach ($sites as $site) {
423
+ switch_to_blog($site->blog_id);
424
+ update_site_meta($site->blog_id, 'rsssl_ssl_activated', true );
425
+ RSSSL()->admin->activate_ssl(false);
426
  restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
427
  update_site_option('rsssl_siteprocessing_progress', $current_offset+$nr_of_sites);
428
  }
429
  }
430
  }
431
 
432
+ /**
433
+ * Deactivate SSL on all subsites
434
+ *
435
+ * @return void
436
+ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
437
 
438
  public function deactivate()
439
  {
440
+ if (!rsssl_user_can_manage()) {
441
+ return;
442
+ }
443
+ $ssl_was_enabled = rsssl_get_option('ssl_enabled');
444
+ delete_site_option('rsssl_network_activation_status');
445
+ update_option('ssl_enabled', false);
446
+ //main site first
447
+ $site_id = get_main_site_id();
448
+ switch_to_blog($site_id);
449
+ RSSSL()->admin->deactivate_site($ssl_was_enabled);
450
+ restore_current_blog();
451
+
452
+ //because the deactivation should be a one click procedure, chunking this would cause difficulties
453
+ $args = array(
454
+ 'number' => $this->get_total_blog_count(),
455
+ 'offset' => 0,
456
+ );
457
+ $sites = get_sites($args);
458
  foreach ($sites as $site) {
459
+ switch_to_blog($site->blog_id);
460
+ update_site_meta($site->blog_id, 'rsssl_ssl_activated', false );
461
+ //we already did the main site
462
+ if ( !is_main_site() ) {
463
+ RSSSL()->admin->deactivate_site($ssl_was_enabled);
464
+ }
465
+ restore_current_blog();
466
  }
 
 
467
  }
468
 
 
469
  /**
470
  * filters the get_admin_url function to correct the false https urls wordpress returns for non SSL websites.
471
  *
475
 
476
  public function check_admin_protocol($url, $path, $blog_id)
477
  {
478
+ if ( !$blog_id ) $blog_id = get_current_blog_id();
479
 
480
  //if the force_ssl_admin is defined, the admin_url should not be forced back to http: all admin panels should be https.
481
  if (defined('FORCE_SSL_ADMIN')) return $url;
486
  if (get_current_blog_id() == $blog_id) return $url;
487
 
488
  //now check if the blog is http or https, and change the url accordingly
489
+ if (!function_exists('is_plugin_active_for_network'))
490
+ require_once(ABSPATH . '/wp-admin/includes/plugin.php');
491
+
492
+ if ( !is_plugin_active_for_network(rsssl_plugin) ) {
493
  $home_url = get_blog_option($blog_id, 'home');
494
  if (strpos($home_url, "https://") === false) {
495
  $url = str_replace("https://", "http://", $url);
496
  }
497
  }
498
 
 
499
  return $url;
500
  }
501
 
508
 
509
  public function check_site_protocol($url, $path, $orig_scheme, $blog_id)
510
  {
511
+ if ( !$blog_id ) {
512
+ $blog_id = get_current_blog_id();
513
+ }
514
 
515
  if (get_current_blog_id() == $blog_id) return $url;
516
 
517
+ if (!function_exists('is_plugin_active_for_network'))
518
+ require_once(ABSPATH . '/wp-admin/includes/plugin.php');
519
+
520
+ if ( !is_plugin_active_for_network(rsssl_plugin) ) {
521
+ $home_url = get_blog_option($blog_id, 'home');
522
  if (strpos($home_url, "https://") === false) {
523
  $url = str_replace("https://", "http://", $url);
524
  }
538
 
539
  public function is_multisite_subfolder_install()
540
  {
541
+ if ( !is_multisite() ) {
542
+ return false;
543
+ }
544
  //we check this manually, as the SUBDOMAIN_INSTALL constant of wordpress might return false for domain mapping configs
545
+ $is_subfolder = false;
546
+ $args = array(
547
+ 'number' => 5,
548
+ 'offset' => 0,
549
+ );
550
+ $sites = get_sites($args);
551
  foreach ($sites as $site) {
552
+ switch_to_blog($site->blog_id);
553
+ if ($this->is_subfolder(home_url())) {
554
+ $is_subfolder = true;
555
  }
556
  restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
557
  if ($is_subfolder) return true;
558
  }
559
 
560
+ return false;
561
  }
562
 
563
  /**
574
 
575
  public function is_subfolder($domain)
576
  {
 
577
  //remove slashes of the http(s)
578
  $domain = preg_replace("/(http:\/\/|https:\/\/)/", "", $domain);
579
  if (strpos($domain, "/") !== FALSE) {
582
  return false;
583
  }
584
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
585
  /**
586
  * Show notices
587
  *
595
  {
596
  //prevent showing the review on edit screen, as gutenberg removes the class which makes it editable.
597
  $screen = get_current_screen();
598
+ if ( $screen && $screen->base === 'post' ) return;
599
 
600
  if ( !$this->is_settings_page() ) {
601
+ $notices = RSSSL()->admin->get_notices_list( array('admin_notices'=>true) );
602
  foreach ( $notices as $id => $notice ){
603
  $notice = $notice['output'];
604
  $class = ( $notice['status'] !== 'completed' ) ? 'error' : 'updated';
605
+ $more_info = isset($notice['url']) ? $notice['url'] : false;
606
+ $dismiss_id = isset($notice['dismissible']) && $notice['dismissible'] ? $id : false;
607
+ echo RSSSL()->admin->notice_html( $class.' '.$id, $notice['msg'], $more_info, $dismiss_id);
608
  }
609
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
610
  }
611
 
612
+ /**
613
+ * Check if we are on the settings page
614
+ * @return bool
615
+ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
616
 
617
  public function is_settings_page()
618
  {
619
+ if (!rsssl_user_can_manage()) {
620
+ return false;
621
+ }
622
+ return (isset($_GET['page']) && $_GET['page'] === 'really-simple-security');
623
  }
624
 
625
+ /**
626
+ * Get blog count for all networks
627
+ *
628
+ * @return int
629
+ */
630
  public function get_total_blog_count()
631
  {
632
  //Get the total blog count from all multisite networks
633
  $networks = get_networks();
 
634
  $total_blog_count = 0;
 
635
  foreach($networks as $network){
 
636
  $network_id = ($network->__get('id'));
637
  $blog_count = get_blog_count($network_id);
638
  $total_blog_count += $blog_count;
class-server.php CHANGED
@@ -28,7 +28,7 @@ if ( ! class_exists( 'rsssl_server' ) ) {
28
  return false;
29
  }
30
 
31
- if ( $this->get_server() == "apache" || $this->get_server() == "litespeed" ) {
32
  return true;
33
  }
34
 
28
  return false;
29
  }
30
 
31
+ if ( $this->get_server() === "apache" || $this->get_server() === "litespeed" ) {
32
  return true;
33
  }
34
 
class-site-health.php CHANGED
@@ -1,19 +1,15 @@
1
- <?php
2
- defined('ABSPATH') or die("you do not have access to this page!");
3
 
4
- if (!class_exists("rsssl_site_health")) {
5
  class rsssl_site_health {
6
-
7
  private static $_this;
8
-
9
  function __construct() {
10
-
11
  if ( isset( self::$_this ) ) {
12
  wp_die( sprintf( __( '%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl' ), get_class( $this ) ) );
13
  }
14
 
15
-
16
- add_filter( 'site_status_tests', array($this, 'rsssl_health_check' ) );
17
 
18
  self::$_this = $this;
19
  }
@@ -22,29 +18,113 @@ if (!class_exists("rsssl_site_health")) {
22
  return self::$_this;
23
  }
24
 
25
- public function rsssl_health_check( $tests ) {
26
-
 
 
 
 
 
27
  unset($tests['async']['https_status']);
28
-
29
- if ( !RSSSL()->really_simple_ssl->dismiss_all_notices || is_multisite() && !rsssl_multisite::this()->dismiss_all_notices ) {
30
-
31
  $tests['direct']['rsssl-health'] = array(
32
  'label' => __( 'SSL Status Test' , 'really-simple-ssl'),
33
  'test' => array($this, "health_test"),
34
  );
35
 
36
- if ( RSSSL()->really_simple_ssl->ssl_enabled ) {
37
- $tests['direct']['rsssl-headers'] = array(
38
- 'label' => __( 'Security Headers Test' , 'really-simple-ssl' ),
39
- 'test' => array($this, "headers_test"),
40
- );
41
- }
42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  }
44
 
45
  return $tests;
46
  }
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  /**
49
  * Test to check if the recommended security headers are present
50
  * @return array
@@ -67,7 +147,7 @@ if (!class_exists("rsssl_site_health")) {
67
  );
68
 
69
  //returns empty for sites without .htaccess, or if all headers are already in use
70
- $recommended_headers = RSSSL()->really_simple_ssl->get_recommended_security_headers();
71
  if (!empty($recommended_headers)) {
72
  $style = '<style>.rsssl-sec-headers-list li {list-style-type:disc;margin-left:20px;}</style>';
73
  $list = '<ul class="rsssl-sec-headers-list"><li>'.implode('</li><li>', $recommended_headers ).'</li></ul>';
@@ -85,15 +165,11 @@ if (!class_exists("rsssl_site_health")) {
85
  }
86
 
87
  /**
88
- * Some basic health checks
89
  * @return array
90
  */
91
  public function health_test() {
92
- if (is_multisite() && is_super_admin() ){
93
- $url = add_query_arg(array('page' => 'really-simple-ssl'), network_admin_url('settings.php'));
94
- } else {
95
- $url = add_query_arg(array('page' => 'rlrsssl_really_simple_ssl'), admin_url("options-general.php") );
96
- }
97
 
98
  $result = array(
99
  'label' => __( '301 SSL redirect enabled', 'really-simple-ssl' ),
@@ -110,8 +186,8 @@ if (!class_exists("rsssl_site_health")) {
110
  'test' => 'health_test',
111
  );
112
 
113
- if (!RSSSL()->really_simple_ssl->ssl_enabled) {
114
- if ( RSSSL()->really_simple_ssl->site_has_ssl ) {
115
  $result['status'] = 'critical';
116
  $result['label'] = __( 'SSL is not enabled.', 'really-simple-ssl' );
117
  $result['description'] = sprintf(
@@ -133,7 +209,7 @@ if (!class_exists("rsssl_site_health")) {
133
  );
134
  }
135
  } else {
136
- if ( !RSSSL()->really_simple_ssl->has_301_redirect() ) {
137
  $result['status'] = 'recommended';
138
  $result['label'] = __( 'No 301 redirect to SSL enabled.' , 'really-simple-ssl' );
139
  $result['description'] = sprintf(
@@ -145,7 +221,7 @@ if (!class_exists("rsssl_site_health")) {
145
  $url,
146
  __( 'Enable 301 redirect', 'really-simple-ssl' )
147
  );
148
- } else if ( !is_multisite() && RSSSL()->rsssl_server->uses_htaccess() && !RSSSL()->really_simple_ssl->htaccess_redirect) {
149
  $result['status'] = 'recommended';
150
  $result['label'] = __( '301 .htaccess redirect is not enabled.' , 'really-simple-ssl' );
151
  $result['description'] = sprintf(
1
+ <?php defined('ABSPATH') or die();
 
2
 
3
+ if ( !class_exists("rsssl_site_health") ) {
4
  class rsssl_site_health {
 
5
  private static $_this;
 
6
  function __construct() {
 
7
  if ( isset( self::$_this ) ) {
8
  wp_die( sprintf( __( '%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl' ), get_class( $this ) ) );
9
  }
10
 
11
+ add_filter( 'site_status_tests', array($this, 'health_check' ), 1, 10 );
12
+ add_filter( 'site_status_tests', array( $this, 'add_rsssl_debug_log_notice' ), 1, 20 );
13
 
14
  self::$_this = $this;
15
  }
18
  return self::$_this;
19
  }
20
 
21
+ /**
22
+ * Add SSL dedicated health check
23
+ * @param array $tests
24
+ *
25
+ * @return array
26
+ */
27
+ public function health_check( $tests ) {
28
  unset($tests['async']['https_status']);
29
+ if ( !rsssl_get_option('dismiss_all_notices') ) {
 
 
30
  $tests['direct']['rsssl-health'] = array(
31
  'label' => __( 'SSL Status Test' , 'really-simple-ssl'),
32
  'test' => array($this, "health_test"),
33
  );
34
 
35
+ $tests['direct']['rsssl-headers'] = array(
36
+ 'label' => __( 'Security Headers Test' , 'really-simple-ssl' ),
37
+ 'test' => array($this, "headers_test"),
38
+ );
39
+
40
+ }
41
 
42
+ return $tests;
43
+ }
44
+
45
+
46
+ /**
47
+ * Add our own WP_DEBUG_LOG notice
48
+ * @return array
49
+ */
50
+ public function add_rsssl_debug_log_notice( $tests ) {
51
+
52
+ unset( $tests['direct']['debug_enabled'] );
53
+ if ( rsssl_is_debugging_enabled() && rsssl_debug_log_value_is_default() ) {
54
+ $tests['direct']['rsssl_debug_log'] = array(
55
+ 'test' => array( $this, "rsssl_site_health_debug_log_test" ),
56
+ );
57
+ }
58
+
59
+ if ( defined('WP_DEBUG') && WP_DEBUG && defined('WP_DEBUG_DISPLAY') && WP_DEBUG_DISPLAY ) {
60
+ $tests['direct']['rsssl_debug_display'] = array(
61
+ 'test' => array( $this, "rsssl_site_health_debug_display_test" ),
62
+ );
63
  }
64
 
65
  return $tests;
66
  }
67
 
68
+ /**
69
+ * Generate the WP_DEBUG notice
70
+ *
71
+ */
72
+ public function rsssl_site_health_debug_log_test() {
73
+ $result = array(
74
+ 'label' => __( 'Your site is set to log errors to a potentially public file' ),
75
+ 'status' => 'critical',
76
+ 'badge' => array(
77
+ 'label' => __( 'Security' ),
78
+ 'color' => 'blue',
79
+ ),
80
+ 'description' => sprintf(
81
+ '<p>%s</p>',
82
+ __( 'The value, WP_DEBUG_LOG, has been added to this website’s configuration file. This means any errors on the site will be written to a file which is potentially available to all users.' ,'really-simple-ssl' )
83
+ ),
84
+ 'actions' => sprintf(
85
+ '<p><a href="%s" target="_blank" rel="noopener">%s <span class="screen-reader-text">%s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a></p>',
86
+ /* translators: Documentation explaining debugging in WordPress. */
87
+ esc_url( __( add_query_arg(array('page'=>'really-simple-security#settings/hardening'), rsssl_admin_url() ) ) ),
88
+ __( 'Remove from public location with Really Simple SSL', 'really-simple-ssl' ),
89
+ /* translators: Accessibility text. */
90
+ __( '(opens in a new tab)' )
91
+ ),
92
+ 'test' => '',
93
+ );
94
+
95
+ return $result;
96
+ }
97
+
98
+ /**
99
+ * Explain users about risks of debug display
100
+ *
101
+ */
102
+ public function rsssl_site_health_debug_display_test() {
103
+ $result = array(
104
+ 'label' => __( 'Your site is set to display errors on your website', 'really-simple-ssl' ),
105
+ 'status' => 'critical',
106
+ 'badge' => array(
107
+ 'label' => __( 'Security' ),
108
+ 'color' => 'blue',
109
+ ),
110
+ 'description' => sprintf(
111
+ '<p>%s</p>',
112
+ __( 'The value, WP_DEBUG_DISPLAY, has either been enabled by WP_DEBUG or added to your configuration file. This will make errors display on the front end of your site.' ,'really-simple-ssl' )
113
+ ),
114
+ 'actions' => sprintf(
115
+ '<p><a href="%s" target="_blank" rel="noopener">%s <span class="screen-reader-text">%s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a></p>',
116
+ /* translators: Documentation explaining debugging in WordPress. */
117
+ esc_url( 'https://really-simple-ssl.com/security/debug-display-enabled' ),
118
+ __( 'Read more about security concerns with debug display enabled', 'really-simple-ssl' ),
119
+ /* translators: Accessibility text. */
120
+ __( '(opens in a new tab)' )
121
+ ),
122
+ 'test' => '',
123
+ );
124
+
125
+ return $result;
126
+ }
127
+
128
  /**
129
  * Test to check if the recommended security headers are present
130
  * @return array
147
  );
148
 
149
  //returns empty for sites without .htaccess, or if all headers are already in use
150
+ $recommended_headers = RSSSL()->admin->get_recommended_security_headers();
151
  if (!empty($recommended_headers)) {
152
  $style = '<style>.rsssl-sec-headers-list li {list-style-type:disc;margin-left:20px;}</style>';
153
  $list = '<ul class="rsssl-sec-headers-list"><li>'.implode('</li><li>', $recommended_headers ).'</li></ul>';
165
  }
166
 
167
  /**
168
+ * Some basic SSL health checks
169
  * @return array
170
  */
171
  public function health_test() {
172
+ $url = add_query_arg(array('page' => 'really-simple-security'), rsssl_admin_url() );
 
 
 
 
173
 
174
  $result = array(
175
  'label' => __( '301 SSL redirect enabled', 'really-simple-ssl' ),
186
  'test' => 'health_test',
187
  );
188
 
189
+ if ( !rsssl_get_option('ssl_enabled') ) {
190
+ if ( rsssl_get_option('site_has_ssl') ) {
191
  $result['status'] = 'critical';
192
  $result['label'] = __( 'SSL is not enabled.', 'really-simple-ssl' );
193
  $result['description'] = sprintf(
209
  );
210
  }
211
  } else {
212
+ if ( !RSSSL()->admin->has_301_redirect() ) {
213
  $result['status'] = 'recommended';
214
  $result['label'] = __( 'No 301 redirect to SSL enabled.' , 'really-simple-ssl' );
215
  $result['description'] = sprintf(
221
  $url,
222
  __( 'Enable 301 redirect', 'really-simple-ssl' )
223
  );
224
+ } else if ( RSSSL()->server->uses_htaccess() && rsssl_get_option('redirect')!=='htaccess') {
225
  $result['status'] = 'recommended';
226
  $result['label'] = __( '301 .htaccess redirect is not enabled.' , 'really-simple-ssl' );
227
  $result['description'] = sprintf(
class-url.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
-
3
- /*
4
- for backward compatibility
5
- */
 
 
 
 
 
class-rsssl-wp-cli.php → class-wp-cli.php RENAMED
@@ -12,14 +12,14 @@ defined('ABSPATH') or die("you do not have access to this page!");
12
 
13
  public function activate_ssl()
14
  {
15
- RSSSL()->really_simple_ssl->activate_ssl();
16
  WP_CLI::success( 'SSL activated' );
17
 
18
  }
19
 
20
  public function deactivate_ssl()
21
  {
22
- RSSSL()->really_simple_ssl->deactivate_ssl();
23
  WP_CLI::success( 'SSL deactivated' );
24
  }
25
 
12
 
13
  public function activate_ssl()
14
  {
15
+ RSSSL()->admin->activate_ssl(false);
16
  WP_CLI::success( 'SSL activated' );
17
 
18
  }
19
 
20
  public function deactivate_ssl()
21
  {
22
+ RSSSL()->admin->deactivate();
23
  WP_CLI::success( 'SSL deactivated' );
24
  }
25
 
compatibility.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ defined('ABSPATH') or die();
3
+ /**
4
+ * File to prevent fatal errors when used with older pro versions
5
+ * @deprecated
6
+ */
7
+ if ( is_admin() && rsssl_user_can_manage() ) {
8
+ class really_simple_ssl_legacy{
9
+ public $site_has_ssl;
10
+ public $ssl_enabled;
11
+ public function generate_enable_link(){}
12
+ public function find_wp_config_path(){return '-';}
13
+ public function contains_hsts(){}
14
+ public function get_recommended_security_headers(){return [];}
15
+ public function notice_html(){}
16
+ }
17
+ class rsssl_help_legacy {
18
+ public function get_help_tip(){}
19
+ }
20
+ class rsssl_multisite_legacy {
21
+ public $ssl_enabled_networkwide;
22
+ public $mixed_content_admin;
23
+ public $selected_networkwide_or_per_site;
24
+ public function plugin_network_wide_active(){
25
+ return false;
26
+ }
27
+ }
28
+
29
+ add_action('plugins_loaded', 'rsssl_compatibility_mode', 9);
30
+ function rsssl_compatibility_mode() {
31
+ if ( ! function_exists( 'get_plugin_data' ) ) {
32
+ require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
33
+ }
34
+ $plugin_data = false;
35
+ $ms_file = WP_CONTENT_DIR . '/plugins/really-simple-ssl-pro-multisite/really-simple-ssl-pro-multisite.php';
36
+ $pro_file = WP_CONTENT_DIR . '/plugins/really-simple-ssl-pro/really-simple-ssl-pro.php';
37
+ if ( file_exists( $ms_file ) && is_plugin_active('really-simple-ssl-pro-multisite/really-simple-ssl-pro-multisite.php') ) {
38
+ $plugin_data = get_plugin_data( $ms_file );
39
+ } else if ( file_exists( $pro_file ) && is_plugin_active('really-simple-ssl-pro/really-simple-ssl-pro.php')) {
40
+ $plugin_data = get_plugin_data( $pro_file );
41
+ }
42
+
43
+ if ( $plugin_data ) {
44
+ $version = $plugin_data['Version'] ?? false;
45
+ if ( version_compare( $version, '6.0', '<' ) ) {
46
+ REALLY_SIMPLE_SSL::instance()->really_simple_ssl = new really_simple_ssl_legacy();
47
+ REALLY_SIMPLE_SSL::instance()->rsssl_help = new rsssl_help_legacy();
48
+ REALLY_SIMPLE_SSL::instance()->rsssl_multisite = new rsssl_multisite_legacy();
49
+ }
50
+ }
51
+
52
+ }
53
+ }
force-deactivate.txt CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /*
3
- * Deactivation page to simple deactivate the plugin when backend is not accessible anymore
4
  * To deactivate:
5
  * 1) rename this file to force-deactivate.php
6
  * 2) Go in your browser to (note use of http, not https) http://yourdomain.com/wp-content/plugins/really-simple-ssl/force-deactivate.php.
@@ -23,50 +23,37 @@ if ( !file_exists(BASE_PATH . 'wp-load.php') ) {
23
  }
24
  //make sure the files are loaded
25
  if (!defined('RSSSL_DOING_SYSTEM_STATUS')) define( 'RSSSL_DOING_SYSTEM_STATUS' , true);
26
-
27
  # Load WordPress Core
28
  require_once( BASE_PATH . 'wp-load.php' );
29
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
30
- $core_plugin = 'really-simple-ssl/rlrsssl-really-simple-ssl.php';
31
 
32
- if ( ! is_plugin_active( $core_plugin ) ) {
33
- echo "<h1>Really Simple SSL is already deactivated!</h1>";
34
- exit;
35
- }
 
 
 
36
 
 
 
 
 
 
37
 
38
- $step = 1;
39
- echo "<h1>Force deactivation of Really Simple SSL</h1>";
40
- echo $step . ". Resetting options" . "<br>";
41
- $networkwide = is_multisite();
42
- RSSSL()->really_simple_ssl->deactivate( $networkwide );
43
- $step ++;
44
 
45
- //add feedback on writable files.
46
- if ( count( RSSSL()->really_simple_ssl->errors ) > 0 ) {
47
- echo $step . ". Errors occured while deactivating:<ul>";
48
  $step ++;
49
- foreach ( RSSSL()->really_simple_ssl->errors as $errorname => $error ) {
50
- echo "<li>" . $errorname . "</li>";
51
- }
52
- echo "</ul>";
53
- echo "Errors while removing the Really Simple SSL lines from your wp-config.php and .htaccess files, which you can normally find in your webroot."
54
- . "<br><br>";
55
  }
56
 
57
- echo $step . ". Deactivating plugin" . "<br>";
58
- rl_deactivate_plugin( RSSSL()->really_simple_ssl->plugin_dir . "/"
59
- . RSSSL()->really_simple_ssl->plugin_filename );
60
-
61
- $step ++;
62
- echo $step . ". Completed with <b>"
63
- . count( RSSSL()->really_simple_ssl->errors ) . "</b> error(s)" . "<br>";
64
-
65
-
66
  function rl_remove_plugin_from_array( $plugin, $current ) {
67
  $key = array_search( $plugin, $current );
68
  if ( false !== $key ) {
69
- $do_blog = true;
70
  unset( $current[ $key ] );
71
  }
72
 
@@ -110,7 +97,7 @@ function rl_deactivate_plugin( $plugin ) {
110
  */
111
  function find_wordpress_base_path()
112
  {
113
- $path = dirname(__FILE__);
114
 
115
  do {
116
  if (file_exists($path . "/wp-config.php")) {
@@ -140,7 +127,7 @@ function find_wordpress_base_path()
140
  return false;
141
  }
142
 
143
- rename('force-deactivate.php' , 'force-deactivate.txt');
144
 
145
  ?>
146
  </body>
1
  <?php
2
  /*
3
+ * Deactivation page to simply deactivate the plugin when backend is not accessible anymore
4
  * To deactivate:
5
  * 1) rename this file to force-deactivate.php
6
  * 2) Go in your browser to (note use of http, not https) http://yourdomain.com/wp-content/plugins/really-simple-ssl/force-deactivate.php.
23
  }
24
  //make sure the files are loaded
25
  if (!defined('RSSSL_DOING_SYSTEM_STATUS')) define( 'RSSSL_DOING_SYSTEM_STATUS' , true);
26
+ define('RSSSL_LEARNING_MODE', true);
27
  # Load WordPress Core
28
  require_once( BASE_PATH . 'wp-load.php' );
29
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
 
30
 
31
+ rsssl_run_force_deactivate();
32
+ function rsssl_run_force_deactivate() {
33
+ $core_plugin = 'really-simple-ssl/rlrsssl-really-simple-ssl.php';
34
+ if ( ! is_plugin_active( $core_plugin ) ) {
35
+ echo "<h1>Really Simple SSL is already deactivated!</h1>";
36
+ exit;
37
+ }
38
 
39
+ $step = 1;
40
+ echo "<h1>Force deactivation of Really Simple SSL</h1>";
41
+ echo $step . ". Resetting options" . "<br>";
42
+ RSSSL()->admin->deactivate();
43
+ $step ++;
44
 
45
+ echo $step . ". Deactivating plugin" . "<br>";
46
+ rl_deactivate_plugin( RSSSL()->admin->plugin_dir . "/"
47
+ . RSSSL()->admin->plugin_filename );
 
 
 
48
 
 
 
 
49
  $step ++;
50
+ echo $step . ". Completed<b>";
51
+ rename('force-deactivate.php' , 'force-deactivate.txt');
 
 
 
 
52
  }
53
 
 
 
 
 
 
 
 
 
 
54
  function rl_remove_plugin_from_array( $plugin, $current ) {
55
  $key = array_search( $plugin, $current );
56
  if ( false !== $key ) {
 
57
  unset( $current[ $key ] );
58
  }
59
 
97
  */
98
  function find_wordpress_base_path()
99
  {
100
+ $path = __DIR__;
101
 
102
  do {
103
  if (file_exists($path . "/wp-config.php")) {
127
  return false;
128
  }
129
 
130
+
131
 
132
  ?>
133
  </body>
functions.php CHANGED
@@ -1,31 +1,91 @@
1
  <?php
2
- defined('ABSPATH') or die("you do not have access to this page!");
 
 
 
 
3
 
4
  /**
5
  * Get a Really Simple SSL option by name
6
  *
7
  * @param string $name
8
- * @param mixed $default
9
  *
10
  * @return mixed
11
  */
12
 
13
- function rsssl_get_option( $name, $default=false ){
14
  $name = sanitize_title($name);
15
- $options = get_option( 'rsssl_options', array() );
16
- return isset($options[$name]) ? $options[$name]: sanitize_title($default);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  }
18
 
19
  /**
20
- * Get a Really Simple SSL network option by name
21
- * @param string $name
22
- * @param mixed $default
23
  *
24
- * @return mixed
25
  */
26
 
27
- function rsssl_get_network_option( $name, $default=false ){
28
- $name = sanitize_title($name);
29
- $options = get_site_option( 'rsssl_options', array() );
30
- return isset($options[$name]) ? $options[$name]: sanitize_title($default);
31
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
+ defined('ABSPATH') or die();
3
+ /**
4
+ * Only functions also required on front-end here
5
+ */
6
+
7
 
8
  /**
9
  * Get a Really Simple SSL option by name
10
  *
11
  * @param string $name
12
+ * @param mixed $default
13
  *
14
  * @return mixed
15
  */
16
 
17
+ function rsssl_get_option( string $name, $default=false ) {
18
  $name = sanitize_title($name);
19
+ if ( is_multisite() && rsssl_is_networkwide_active() ) {
20
+ $options = get_site_option( 'rsssl_options', [] );
21
+ } else {
22
+ $options = get_option( 'rsssl_options', [] );
23
+ }
24
+
25
+ //fallback, will be removed after 6.2
26
+ //because we only check if the option is not saved in the new style, this if should normally never get executed.
27
+ if (
28
+ !isset($options[$name]) &&
29
+ ($name === 'ssl_enabled' || $name === 'redirect' || $name === "mixed_content_fixer" || $name === 'dismiss_all_notices' )
30
+ ) {
31
+ $options = rsssl_get_legacy_option($options, $name);
32
+ }
33
+
34
+ $value = $options[ $name ] ?? false;
35
+ if ( $value===false && $default!==false ) {
36
+ $value = $default;
37
+ }
38
+
39
+ return apply_filters("rsssl_option_$name", $value, $name);
40
  }
41
 
42
  /**
43
+ * Check if we should treat the plugin as networkwide or not.
44
+ * Note that this function returns false for single sites! Always use icw is_multisite()
 
45
  *
46
+ * @return bool
47
  */
48
 
49
+ function rsssl_is_networkwide_active(){
50
+ if ( !is_multisite() ) {
51
+ return false;
52
+ }
53
+ if ( !function_exists('is_plugin_active_for_network') )
54
+ require_once(ABSPATH . '/wp-admin/includes/plugin.php');
55
+
56
+ if ( is_plugin_active_for_network(rsssl_plugin) ) {
57
+ return true;
58
+ } else {
59
+ return false;
60
+ }
61
+ }
62
+
63
+ /**
64
+ * if the option is does not exist in our new array, check if it's available in the old option. If so, use that one
65
+ * @deprecated to be used until 6.2, as fallback for failed upgrades in some specific edge case situations
66
+ * @param array $options
67
+ * @param string $name
68
+ *
69
+ * @return array
70
+ */
71
+ function rsssl_get_legacy_option( array $options, string $name): array {
72
+ $old_options = is_multisite() ? get_site_option('rlrsssl_network_options') : get_option( 'rlrsssl_options' );
73
+ if ( $old_options ) {
74
+ if ( $name === 'ssl_enabled' && isset( $old_options['ssl_enabled']) ) {
75
+ $options['ssl_enabled'] = $old_options['ssl_enabled'];
76
+ } else if ( $name === 'dismiss_all_notices' && isset( $old_options['dismiss_all_notices']) ) {
77
+ $options['dismiss_all_notices'] = $old_options['dismiss_all_notices'];
78
+ } else if ( $name === 'dismiss_all_notices' && isset( $old_options['dismiss_all_notices']) ) {
79
+ $options['dismiss_all_notices'] = $old_options['dismiss_all_notices'];
80
+ } else if ( $name === 'mixed_content_fixer' && isset($old_options['autoreplace_insecure_links']) ) {
81
+ $options['mixed_content_fixer'] = $old_options['autoreplace_insecure_links'];
82
+ } else if ( $name === 'redirect' ){
83
+ if ( isset($old_options['htaccess_redirect']) && $old_options['htaccess_redirect'] ) {
84
+ $options['redirect'] = 'htaccess';
85
+ } else if (isset($old_options['wp_redirect']) && $old_options['wp_redirect']) {
86
+ $options['redirect'] = 'wp_redirect';
87
+ }
88
+ }
89
+ }
90
+ return $options;
91
+ }
grid/css/grid-rtl.css DELETED
@@ -1,709 +0,0 @@
1
- .settings_page_rlrsssl_really_simple_ssl #wpcontent,
2
- .settings_page_really-simple-ssl #wpcontent {
3
- padding: 0;
4
- }
5
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-footer-item form,
6
- .settings_page_really-simple-ssl #wpcontent .rsssl-footer-item form {
7
- float: right;
8
- }
9
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab,
10
- .settings_page_really-simple-ssl #wpcontent .nav-tab {
11
- padding: 16px 20px 17px 20px;
12
- margin-bottom: 0;
13
- color: #444;
14
- font-weight: normal;
15
- font-size: 1.2em;
16
- background: inherit;
17
- border: 0;
18
- }
19
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab.nav-tab-active,
20
- .settings_page_really-simple-ssl #wpcontent .nav-tab.nav-tab-active {
21
- border-bottom: 2px solid #FBC43D;
22
- background: #fff;
23
- padding-bottom: 15px;
24
- }
25
- @media screen and (max-width: 800px) {
26
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper,
27
- .settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper {
28
- display: flex;
29
- flex-wrap: wrap;
30
- justify-content: center;
31
- }
32
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .nav-tab,
33
- .settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .nav-tab {
34
- margin-right: 25px;
35
- }
36
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .documentation,
37
- .settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .documentation {
38
- display: none;
39
- }
40
- }
41
- @media screen and (max-width: 480px) {
42
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .nav-tab,
43
- .settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .nav-tab {
44
- padding: 22px 3px 10px 3px;
45
- }
46
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .nav-tab-active,
47
- .settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .nav-tab-active {
48
- padding-bottom: 10px;
49
- }
50
- }
51
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper,
52
- .settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper {
53
- min-height: 60px;
54
- background-color: #fff;
55
- display: flex;
56
- align-items: center;
57
- border: 0;
58
- }
59
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container,
60
- .settings_page_really-simple-ssl #wpcontent .rsssl-logo-container {
61
- margin-right: 25px;
62
- }
63
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container #rsssl-logo,
64
- .settings_page_really-simple-ssl #wpcontent .rsssl-logo-container #rsssl-logo {
65
- height: 40px;
66
- width: 200px;
67
- }
68
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container #rsssl-logo img,
69
- .settings_page_really-simple-ssl #wpcontent .rsssl-logo-container #rsssl-logo img {
70
- width: 200px;
71
- }
72
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links,
73
- .settings_page_really-simple-ssl #wpcontent .header-links {
74
- display: flex;
75
- flex: 1;
76
- justify-content: flex-end;
77
- flex-direction: row;
78
- align-items: center;
79
- margin-left: 20px;
80
- }
81
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .documentation,
82
- .settings_page_really-simple-ssl #wpcontent .header-links .documentation {
83
- text-decoration: underline;
84
- }
85
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell .documentation,
86
- .settings_page_really-simple-ssl #wpcontent .header-links .header-upsell .documentation {
87
- margin-right: 25px;
88
- }
89
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell a,
90
- .settings_page_really-simple-ssl #wpcontent .header-links .header-upsell a {
91
- text-decoration: none;
92
- }
93
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell .header-upsell-pro,
94
- .settings_page_really-simple-ssl #wpcontent .header-links .header-upsell .header-upsell-pro {
95
- color: black;
96
- border: 3px solid black;
97
- margin: 10px;
98
- width: 80px;
99
- text-align: center;
100
- padding: 5px;
101
- border-radius: 20px;
102
- font-weight: 600;
103
- }
104
- .rsssl-grid {
105
- width: calc(100% - 20px);
106
- margin: 10px;
107
- position: relative;
108
- display: flex;
109
- flex-direction: row;
110
- flex-wrap: wrap;
111
- /*
112
- Footers
113
- */
114
- /*
115
- Dots
116
- */
117
- }
118
- .rsssl-grid .button-rsssl-tertiary {
119
- background-color: #D7263D;
120
- color: white;
121
- border: 0;
122
- }
123
- .rsssl-grid .rsssl-wide-button {
124
- width: 220px;
125
- }
126
- .rsssl-grid .rsssl-progress .rsssl-task-list {
127
- height: 257px;
128
- overflow: hidden;
129
- }
130
- .rsssl-grid .rsssl-progress .rsssl-toggle-active {
131
- text-decoration: underline;
132
- }
133
- .rsssl-grid .rsssl-progress #rsssl-all-tasks,
134
- .rsssl-grid .rsssl-progress #rsssl-remaining-tasks {
135
- display: none;
136
- }
137
- .rsssl-grid .rsssl-progress .rsssl-tasks-container {
138
- border-bottom: 1px solid lightgrey;
139
- color: lightgrey;
140
- }
141
- .rsssl-grid .rsssl-progress .rsssl-tasks-container.active {
142
- text-decoration: none;
143
- border-bottom: 0;
144
- color: initial;
145
- }
146
- .rsssl-grid .rsssl-progress .rsssl-tasks-inactive {
147
- text-decoration: underline;
148
- color: lightgrey;
149
- }
150
- .rsssl-grid .rsssl-item {
151
- width: 800px;
152
- height: 485px;
153
- z-index: 1;
154
- }
155
- .rsssl-grid .rsssl-item.small {
156
- width: 400px;
157
- }
158
- .rsssl-grid .rsssl-item .rsssl-close-warning-x {
159
- color: #ccc;
160
- font-size: 0.9em;
161
- margin-left: 25px;
162
- }
163
- .rsssl-grid .rsssl-item .item-container {
164
- background-color: #fff;
165
- position: relative;
166
- box-shadow: 0px 0px 5px 5px rgba(222, 222, 222, 0.2);
167
- width: 790px;
168
- height: 475px;
169
- }
170
- .rsssl-grid .rsssl-item .item-container .form-table {
171
- display: flex;
172
- }
173
- .rsssl-grid .rsssl-item .item-container .form-table tbody {
174
- display: flex;
175
- flex-direction: column;
176
- flex-wrap: wrap;
177
- max-height: 340px;
178
- width: 100% !important;
179
- }
180
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr {
181
- padding: 0 0 0 0 !important;
182
- display: flex;
183
- align-items: center;
184
- flex-direction: row;
185
- width: 50%;
186
- }
187
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr td {
188
- padding: 0;
189
- margin: 0;
190
- }
191
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr th {
192
- margin-right: 0;
193
- width: 90%;
194
- display: flex;
195
- align-items: center;
196
- font-size: 13px;
197
- font-weight: normal;
198
- }
199
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr th .dashicons-editor-help {
200
- font-size: 22px;
201
- }
202
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr th .rsssl-tooltip-right {
203
- padding-left: 10px;
204
- }
205
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr th,
206
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr td {
207
- padding: 6px 0 !important;
208
- font-size: 13px;
209
- }
210
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr th p,
211
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr td p {
212
- font-size: 13px;
213
- }
214
- .rsssl-grid .rsssl-item .item-container h2 {
215
- display: none;
216
- }
217
- .rsssl-grid .rsssl-item .item-container .rsssl-save-settings-feedback {
218
- margin-left: 20px;
219
- color: #d7263d;
220
- }
221
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header {
222
- display: flex;
223
- align-items: center;
224
- justify-content: space-between;
225
- height: 60px;
226
- border-bottom: 1px solid #dedede;
227
- padding: 0 25px 0 25px;
228
- }
229
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-instructions a {
230
- color: #3c3c3c;
231
- }
232
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item {
233
- display: flex;
234
- color: #3c3c3c;
235
- }
236
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .all-task-count,
237
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .open-task-count {
238
- padding-right: 3px;
239
- padding-top: 3px;
240
- }
241
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .all-task-count {
242
- margin-left: 5px;
243
- }
244
- .rsssl-grid .rsssl-item .item-container .rsssl-table-td-main-content {
245
- padding-right: 15px;
246
- }
247
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content {
248
- height: 360px;
249
- margin: 10px 25px 10px 25px;
250
- border-bottom: 1px solid #dedede;
251
- /*
252
- Progress block
253
- */
254
- /*
255
- Tips and Tricks
256
- */
257
- /*
258
- Default bullet style
259
- */
260
- /*
261
- Support forum block
262
- */
263
- /*
264
- Other plugins
265
- */
266
- /*
267
- Progress labels
268
- */
269
- }
270
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block {
271
- padding-top: 10px;
272
- }
273
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-bar-container {
274
- margin: 0 0 25px 0;
275
- }
276
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress {
277
- overflow: hidden;
278
- height: 20px;
279
- border-radius: 5px;
280
- background-color: #f7f7f7;
281
- }
282
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress .bar {
283
- height: 100%;
284
- background-color: #61ce70;
285
- }
286
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress .bar.orange {
287
- background-color: #FBC43D;
288
- }
289
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text {
290
- display: flex;
291
- align-items: center;
292
- margin: 10px 0;
293
- padding-top: 10px;
294
- padding-bottom: 10px;
295
- }
296
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-percentage {
297
- font-size: 32px;
298
- font-weight: 700;
299
- }
300
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text {
301
- margin-right: 35px;
302
- font-size: 18px;
303
- font-weight: 600;
304
- }
305
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text a {
306
- margin-right: 3px;
307
- }
308
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table tr {
309
- position: relative;
310
- }
311
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table td {
312
- padding: 10px 0 10px 10px;
313
- }
314
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table td + td {
315
- padding-right: 15px;
316
- }
317
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks {
318
- color: #3c3c3c;
319
- padding-bottom: 15px;
320
- }
321
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content {
322
- display: flex;
323
- flex-direction: column;
324
- margin-left: 10px;
325
- height: 340px;
326
- }
327
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top {
328
- flex-grow: 1;
329
- }
330
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top .rsssl-tips-tricks-element {
331
- margin-top: 10px;
332
- margin-bottom: 15px;
333
- display: flex;
334
- flex-direction: row;
335
- justify-content: space-between;
336
- }
337
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top .rsssl-tips-tricks-content {
338
- padding-left: 20px;
339
- }
340
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .rsssl-tips-tricks-read-more a {
341
- text-decoration: none;
342
- white-space: nowrap;
343
- }
344
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-bullet {
345
- height: 13px;
346
- width: 13px;
347
- border-radius: 50%;
348
- margin-left: 10px;
349
- background-color: lightgrey;
350
- text-decoration: none;
351
- }
352
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container {
353
- display: flex;
354
- flex-wrap: wrap;
355
- flex-direction: row;
356
- }
357
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums {
358
- display: flex;
359
- width: 50%;
360
- }
361
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums a {
362
- text-decoration: none;
363
- color: #3c3c3c;
364
- display: flex;
365
- align-items: center;
366
- padding: 2px 0;
367
- }
368
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet {
369
- margin: 7px 0 7px 7px;
370
- background-color: lightgrey;
371
- float: right;
372
- }
373
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet:hover {
374
- background-color: #FBC43D;
375
- }
376
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content {
377
- float: right;
378
- color: #3c3c3c;
379
- }
380
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content:hover {
381
- text-decoration: underline;
382
- }
383
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-feedback {
384
- color: #d7263d;
385
- }
386
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell {
387
- display: flex !important;
388
- flex-direction: row;
389
- padding: 7px 0 7px 0;
390
- align-items: center;
391
- color: #3c3c3c;
392
- }
393
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-text a {
394
- text-decoration: none;
395
- color: #3c3c3c;
396
- }
397
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-text a:hover {
398
- color: #FBC43D;
399
- }
400
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .rsp-image {
401
- margin-left: 5px;
402
- }
403
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .cmplztc-black {
404
- background-color: #333;
405
- }
406
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .cmplz-blue {
407
- background-color: #27ADEA;
408
- }
409
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .burst-green {
410
- background-color: #297A31;
411
- }
412
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-status {
413
- margin-right: auto;
414
- }
415
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-status {
416
- display: block;
417
- min-width: 60px;
418
- text-align: center;
419
- border-radius: 15px;
420
- padding: 4px 8px 4px 8px;
421
- font-size: 0.8em;
422
- font-weight: 600;
423
- height: 17px;
424
- line-height: 17px;
425
- }
426
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-premium {
427
- background-color: #29b6f6;
428
- color: white;
429
- }
430
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-success {
431
- background-color: #61ce70;
432
- color: white;
433
- }
434
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-open {
435
- background-color: #FBC43D;
436
- }
437
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-warning {
438
- background-color: #d7263d;
439
- color: white;
440
- }
441
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer {
442
- display: flex;
443
- align-items: center;
444
- margin: 14px 25px 0 25px;
445
- height: 40px;
446
- bottom: 0;
447
- width: 95%;
448
- }
449
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer .rsssl-button-save {
450
- margin-left: 25px;
451
- }
452
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer #rsssl-feedback {
453
- font-weight: 600;
454
- color: #61ce70;
455
- padding-right: 10px;
456
- }
457
- .rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl th,
458
- .rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl span {
459
- display: none;
460
- }
461
- .rsssl-grid .rsssl-item.half-height {
462
- height: 247.5px;
463
- }
464
- .rsssl-grid .rsssl-item.half-height .item-container {
465
- height: 475px / 2;
466
- }
467
- .rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content {
468
- height: 110px;
469
- }
470
- .rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content .form-table tbody tr,
471
- .rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content .form-table tbody th {
472
- width: 100%;
473
- max-width: 100%;
474
- }
475
- .rsssl-grid .rsssl-item.small .item-container {
476
- width: 390px;
477
- }
478
- .rsssl-grid .rsssl-item.small .item-container th {
479
- width: 90% !important;
480
- }
481
- .rsssl-grid .rsssl-item.small .item-container .form-table tbody tr {
482
- width: 100%;
483
- }
484
- .rsssl-grid .rsssl-item.no-border .item-container {
485
- border: none;
486
- }
487
- .rsssl-grid .rsssl-item.no-background .item-container {
488
- background-color: #f2f2f2;
489
- }
490
- .rsssl-grid #rsssl-progress-footer,
491
- .rsssl-grid #rsssl-premium-settings-footer {
492
- width: 100%;
493
- text-align: left;
494
- margin-left: 10px;
495
- }
496
- .rsssl-grid #rsssl-progress-footer .rsssl-footer-item form,
497
- .rsssl-grid #rsssl-premium-settings-footer .rsssl-footer-item form {
498
- float: right;
499
- }
500
- .rsssl-grid #rsssl-progress-footer .rsssl-footer-item + .rsssl-footer-item,
501
- .rsssl-grid #rsssl-premium-settings-footer .rsssl-footer-item + .rsssl-footer-item {
502
- margin-right: 20px;
503
- padding: 4px 0;
504
- }
505
- .rsssl-grid #rsssl-progress-footer .footer-left,
506
- .rsssl-grid #rsssl-premium-settings-footer .footer-left {
507
- float: right;
508
- }
509
- .rsssl-grid #rsssl-progress-footer .footer-left .upsell,
510
- .rsssl-grid #rsssl-premium-settings-footer .footer-left .upsell {
511
- min-width: 80px;
512
- text-align: center;
513
- }
514
- .rsssl-grid #rsssl-progress-footer .footer-right,
515
- .rsssl-grid #rsssl-premium-settings-footer .footer-right {
516
- float: left;
517
- }
518
- .rsssl-grid #rsssl-progress-footer .hidden,
519
- .rsssl-grid #rsssl-premium-settings-footer .hidden {
520
- display: none;
521
- }
522
- .rsssl-grid .rsssl-system-status-footer-info {
523
- margin-left: 20px;
524
- width: 100%;
525
- text-align: left;
526
- }
527
- .rsssl-grid .rsssl-system-status-footer-info .system-status-info {
528
- margin-right: 6px;
529
- }
530
- .rsssl-grid .dot {
531
- height: 10px;
532
- width: 10px;
533
- border-radius: 50%;
534
- display: inline-block;
535
- }
536
- .rsssl-grid .rsssl-dot-success {
537
- background-color: #61ce70;
538
- }
539
- .rsssl-grid .rsssl-dot-error {
540
- background-color: #d7263d;
541
- }
542
- .upsell-grid-container .rsssl-secondary-header-item img {
543
- height: 30px;
544
- padding-top: 5px;
545
- }
546
- .rsssl-grid {
547
- position: relative;
548
- }
549
- .rsssl-grid .rsssl-item {
550
- width: calc(100% - 20px);
551
- padding: 10px;
552
- height: 475px;
553
- min-height: 500px;
554
- z-index: 1;
555
- }
556
- @media only screen and (min-width: 400px) {
557
- .rsssl-grid .rsssl-item {
558
- width: calc(100% - 20px);
559
- }
560
- }
561
- @media only screen and (min-width: 600px) {
562
- .rsssl-grid .rsssl-item {
563
- width: calc(100% - 20px);
564
- }
565
- }
566
- @media only screen and (min-width: 768px) {
567
- .rsssl-grid .rsssl-item {
568
- width: calc(100% - 20px);
569
- }
570
- }
571
- @media only screen and (min-width: 992px) {
572
- .rsssl-grid .rsssl-item {
573
- width: calc(100% - 20px);
574
- }
575
- }
576
- @media only screen and (min-width: 1555px) {
577
- .rsssl-grid .rsssl-item {
578
- width: calc(50% - 20px);
579
- }
580
- }
581
- .rsssl-grid .rsssl-item.small {
582
- width: calc(100% - 20px);
583
- }
584
- @media only screen and (min-width: 400px) {
585
- .rsssl-grid .rsssl-item.small {
586
- width: calc(100% - 20px);
587
- }
588
- }
589
- @media only screen and (min-width: 600px) {
590
- .rsssl-grid .rsssl-item.small {
591
- width: calc(100% - 20px);
592
- }
593
- }
594
- @media only screen and (min-width: 768px) {
595
- .rsssl-grid .rsssl-item.small {
596
- width: calc(50% - 20px);
597
- }
598
- }
599
- @media only screen and (min-width: 992px) {
600
- .rsssl-grid .rsssl-item.small {
601
- width: calc(50% - 20px);
602
- }
603
- }
604
- @media only screen and (min-width: 1555px) {
605
- .rsssl-grid .rsssl-item.small {
606
- width: calc(25% - 20px);
607
- }
608
- }
609
- .rsssl-grid .rsssl-item.small .item-container {
610
- width: 100%;
611
- min-width: 200px;
612
- }
613
- .rsssl-grid .rsssl-item.half-height {
614
- min-height: 250px;
615
- }
616
- @media only screen and (min-width: 400px) {
617
- .rsssl-grid .rsssl-item.half-height {
618
- height: 475px / 2;
619
- min-height: 250px;
620
- }
621
- }
622
- @media only screen and (min-width: 600px) {
623
- .rsssl-grid .rsssl-item.half-height {
624
- min-height: 250px;
625
- height: 475px / 2;
626
- }
627
- }
628
- @media only screen and (min-width: 768px) {
629
- .rsssl-grid .rsssl-item.half-height {
630
- min-height: 250px;
631
- height: 475px / 2;
632
- }
633
- }
634
- @media only screen and (min-width: 992px) {
635
- .rsssl-grid .rsssl-item.half-height {
636
- min-height: 250px;
637
- height: 475px / 2;
638
- }
639
- }
640
- @media only screen and (min-width: 1555px) {
641
- .rsssl-grid .rsssl-item.half-height {
642
- min-height: 250px;
643
- height: 475px / 2;
644
- }
645
- }
646
- .rsssl-grid .rsssl-item.half-height .item-container {
647
- width: 100%;
648
- min-width: 200px;
649
- min-height: 250px;
650
- }
651
- .rsssl-grid .rsssl-item .settings.rsssl-item {
652
- width: 100%;
653
- padding: 0;
654
- }
655
- .rsssl-grid .rsssl-item.muuri-item-hidden {
656
- z-index: 0;
657
- }
658
- .rsssl-grid .rsssl-item.muuri-item-releasing {
659
- z-index: 2;
660
- }
661
- .rsssl-grid .rsssl-item.muuri-item-dragging {
662
- z-index: 3;
663
- }
664
- .rsssl-grid .rsssl-item .rsssl-grid-header {
665
- border-bottom: 1px solid lightgrey;
666
- padding: 0;
667
- height: 60px;
668
- }
669
- .rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-header-container {
670
- margin: 0 20px;
671
- height: 100%;
672
- }
673
- .rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-title {
674
- cursor: pointer;
675
- font-size: 20px;
676
- padding: 20px 0;
677
- font-weight: bold;
678
- float: right;
679
- }
680
- .rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-controls {
681
- float: left;
682
- margin-top: 20px;
683
- color: #cecece;
684
- }
685
- .rsssl-grid .rsssl-item .item-container {
686
- background-color: #fff;
687
- position: relative;
688
- box-shadow: 0 0 5px 5px rgba(222, 222, 222, 0.2);
689
- height: 100%;
690
- width: 100%;
691
- }
692
- .rsssl-grid .rsssl-item .item-container .item-content {
693
- clear: both;
694
- margin: 15px;
695
- height: calc(100% - 100px);
696
- padding-top: 0px;
697
- padding-bottom: 10px;
698
- }
699
- .rsssl-grid .rsssl-item.no-border .item-container {
700
- border: none;
701
- }
702
- .rsssl-grid .rsssl-item.no-background .item-container {
703
- background-color: #F1F1F1;
704
- }
705
- .rsssl-grid .rsssl-item.muuri-item-placeholder .item-container {
706
- border-style: dashed;
707
- padding: 0;
708
- }
709
- /*# sourceMappingURL=grid-rtl.css.map */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
grid/css/grid-rtl.css.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["grid-rtl.less"],"names":[],"mappings":"AAuBA,wCAAyC;AAAY,gCAAiC;EACpF,UAAA;;AADF,wCAAyC,WAEvC,mBACE;AAHiD,gCAAiC,WAEpF,mBACE;EACE,YAAA;;AAJN,wCAAyC,WAQvC;AARmD,gCAAiC,WAQpF;EACE,4BAAA;EACA,gBAAA;EACA,WAAA;EACA,mBAAA;EACA,gBAAA;EACA,mBAAA;EACA,SAAA;;AACA,wCAhBqC,WAQvC,SAQG;AAAD,gCAhBkF,WAQpF,SAQG;EACC,gCAAA;EACA,gBAAA;EACA,oBAAA;;AAKJ,mBAAqC;EAArC,wCAxBuC,WAyBrC;EADF,gCAxBoF,WAyBlF;IACE,aAAA;IACA,eAAA;IACA,uBAAA;;EAJJ,wCAxBuC,WAyBrC,iBAIE;EALJ,gCAxBoF,WAyBlF,iBAIE;IACE,kBAAA;;EANN,wCAxBuC,WAyBrC,iBAQE;EATJ,gCAxBoF,WAyBlF,iBAQE;IACE,aAAA;;;AAKN,mBAAqC;EAArC,wCAvCuC,WAwCrC,iBAEE;EAHJ,gCAvCoF,WAwClF,iBAEE;IACE,0BAAA;;EAJN,wCAvCuC,WAwCrC,iBAME;EAPJ,gCAvCoF,WAwClF,iBAME;IACE,oBAAA;;;AA/CR,wCAAyC,WAoDvC;AApDmD,gCAAiC,WAoDpF;EACE,gBAAA;EACA,sBAAA;EACA,aAAA;EACA,mBAAA;EACA,SAAA;;AAzDJ,wCAAyC,WA2DvC;AA3DmD,gCAAiC,WA2DpF;EACE,kBAAA;;AA5DJ,wCAAyC,WA2DvC,sBAEE;AA7DiD,gCAAiC,WA2DpF,sBAEE;EACE,YAAA;EACA,YAAA;;AA/DN,wCAAyC,WA2DvC,sBAEE,YAGE;AAhE+C,gCAAiC,WA2DpF,sBAEE,YAGE;EACE,YAAA;;AAjER,wCAAyC,WAqEvC;AArEmD,gCAAiC,WAqEpF;EACE,aAAA;EACA,OAAA;EACA,yBAAA;EACA,mBAAA;EACA,mBAAA;EACA,iBAAA;;AA3EJ,wCAAyC,WAqEvC,cAOE;AA5EiD,gCAAiC,WAqEpF,cAOE;EACE,0BAAA;;AA7EN,wCAAyC,WAqEvC,cAUE,eACE;AAhF+C,gCAAiC,WAqEpF,cAUE,eACE;EACE,kBAAA;;AAjFR,wCAAyC,WAqEvC,cAUE,eAIE;AAnF+C,gCAAiC,WAqEpF,cAUE,eAIE;EACE,qBAAA;;AApFR,wCAAyC,WAqEvC,cAUE,eAOE;AAtF+C,gCAAiC,WAqEpF,cAUE,eAOE;EACE,YAAA;EACA,uBAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,YAAA;EACA,mBAAA;EACA,gBAAA;;AAMR;EACE,OAAO,iBAAP;EACA,YAAA;EACA,kBAAA;EACA,aAAA;EACA,mBAAA;EACA,eAAA;;;;;;;;AANF,WAQE;EACE,yBAAA;EACA,YAAA;EACA,SAAA;;AAXJ,WAcE;EACE,YAAA;;AAfJ,WAkBE,gBAEE;EACE,aAAA;EACA,gBAAA;;AAtBN,WAkBE,gBAOE;EACE,0BAAA;;AA1BN,WAkBE,gBAWE;AA7BJ,WAkBE,gBAWoB;EAChB,aAAA;;AA9BN,WAkBE,gBAeE;EACE,kCAAA;EACA,gBAAA;;AACA,WAlBJ,gBAeE,uBAGG;EACC,qBAAA;EACA,gBAAA;EACA,cAAA;;AAvCR,WAkBE,gBA0BE;EACE,0BAAA;EACA,gBAAA;;AA9CN,WAmDE;EACE,YAAA;EAWA,aAAA;EACA,UAAA;;AAXA,WAFF,YAEG;EACC,YAAA;;AAtDN,WAmDE,YAME;EACE,WAAA;EACA,gBAAA;EACA,iBAAA;;AA5DN,WAmDE,YAcE;EA+CE,sBAAA;EACA,kBAAA;EACA,oDAAA;EACA,YAAA;EACA,aAAA;;AApHN,WAmDE,YAcE,gBACE;EACE,aAAA;;AAnER,WAmDE,YAcE,gBACE,YAEE;EACE,aAAA;EACA,sBAAA;EACA,eAAA;EACA,iBAAA;EACA,sBAAA;;AAzEV,WAmDE,YAcE,gBACE,YAEE,MAME;EACE,2BAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,UAAA;;AA/EZ,WAmDE,YAcE,gBACE,YAEE,MAME,GAOE;EACE,UAAA;EACA,SAAA;;AAnFd,WAmDE,YAcE,gBACE,YAEE,MAME,GAWE;EAIE,eAAA;EACA,UAAA;EACA,aAAA;EACA,mBAAA;EACA,eAAA;EACA,mBAAA;;AA9Fd,WAmDE,YAcE,gBACE,YAEE,MAME,GAWE,GACE;EACE,eAAA;;AAvFhB,WAmDE,YAcE,gBACE,YAEE,MAME,GAWE,GAUE;EACE,kBAAA;;AAhGhB,WAmDE,YAcE,gBACE,YAEE,MAME,GAyBE;AAnGZ,WAmDE,YAcE,gBACE,YAEE,MAME,GAyBM;EAEF,yBAAA;EACA,eAAA;;AAtGd,WAmDE,YAcE,gBACE,YAEE,MAME,GAyBE,GAIE;AAvGd,WAmDE,YAcE,gBACE,YAEE,MAME,GAyBM,GAIF;EAAG,eAAA;;AAvGjB,WAmDE,YAcE,gBA2CE;EACE,aAAA;;AA7GR,WAmDE,YAcE,gBAoDE;EACE,iBAAA;EACA,cAAA;;AAvHR,WAmDE,YAcE,gBAwDE;EACE,aAAA;EACA,mBAAA;EACA,8BAAA;EACA,YAAA;EACA,gCAAA;EACA,sBAAA;;AA/HR,WAmDE,YAcE,gBAwDE,wBAOE,oBAAoB;EAClB,cAAA;;AAjIV,WAmDE,YAcE,gBAwDE,wBAWE;EACE,aAAA;EACA,cAAA;;AAtIV,WAmDE,YAcE,gBAwDE,wBAWE,6BAGE;AAvIV,WAmDE,YAcE,gBAwDE,wBAWE,6BAGmB;EACf,kBAAA;EACA,gBAAA;;AAzIZ,WAmDE,YAcE,gBAwDE,wBAWE,6BAOE;EACE,gBAAA;;AA5IZ,WAmDE,YAcE,gBAgFE;EACE,mBAAA;;AAlJR,WAmDE,YAcE,gBAoFE;EACE,aAAA;EACA,2BAAA;EACA,gCAAA;;;;;;;;;;;;;;;;;;;;AAxJR,WAmDE,YAcE,gBAoFE,yBASE;EACE,iBAAA;;AA/JV,WAmDE,YAcE,gBAoFE,yBASE,sBAGE;EACE,kBAAA;;AAlKZ,WAmDE,YAcE,gBAoFE,yBASE,sBAOE;EACE,gBAAA;EACA,YAAA;EACA,kBAAA;EACA,yBAAA;;AAzKZ,WAmDE,YAcE,gBAoFE,yBASE,sBAOE,UAKE;EACE,YAAA;EACA,yBAAA;;AA5Kd,WAmDE,YAcE,gBAoFE,yBASE,sBAOE,UASE,KAAI;EACF,yBAAA;;AA/Kd,WAmDE,YAcE,gBAoFE,yBASE,sBAqBE;EACE,aAAA;EACA,mBAAA;EACA,cAAA;EACA,iBAAA;EACA,oBAAA;;AAxLZ,WAmDE,YAcE,gBAoFE,yBASE,sBAqBE,eAOE;EACE,eAAA;EACA,gBAAA;;AA5Ld,WAmDE,YAcE,gBAoFE,yBASE,sBAqBE,eAYE;EACE,kBAAA;EACA,eAAA;EACA,gBAAA;;AAlMd,WAmDE,YAcE,gBAoFE,yBASE,sBAqBE,eAYE,qBAIE;EACE,iBAAA;;AApMhB,WAmDE,YAcE,gBAoFE,yBASE,sBA2CE,sBACE;EACE,kBAAA;;AA3Md,WAmDE,YAcE,gBAoFE,yBASE,sBA2CE,sBAIE;EACE,yBAAA;;AA9Md,WAmDE,YAcE,gBAoFE,yBASE,sBA2CE,sBAOE,GAAG;EAAK,mBAAA;;AAhNpB,WAmDE,YAcE,gBAoFE,yBAkEE;EACE,cAAA;EACA,oBAAA;;AAzNV,WAmDE,YAcE,gBAoFE,yBAkEE,mBAGE;EACE,aAAA;EACA,sBAAA;EACA,iBAAA;EACA,aAAA;;AA9NZ,WAmDE,YAcE,gBAoFE,yBAkEE,mBAGE,qBAKE;EACE,YAAA;;AAhOd,WAmDE,YAcE,gBAoFE,yBAkEE,mBAGE,qBAKE,iBAGE;EACE,gBAAA;EACA,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,8BAAA;;AAvOhB,WAmDE,YAcE,gBAoFE,yBAkEE,mBAGE,qBAKE,iBAUE;EACE,kBAAA;;AA1OhB,WAmDE,YAcE,gBAoFE,yBAkEE,mBAyBE,6BAA6B;EAC3B,qBAAA;EACA,mBAAA;;AAlPZ,WAmDE,YAcE,gBAoFE,yBAqGE;EACE,YAAA;EACA,WAAA;EACA,kBAAA;EACA,iBAAA;EACA,2BAAA;EACA,qBAAA;;AAhQV,WAmDE,YAcE,gBAoFE,yBAkHE;EACE,aAAA;EACA,eAAA;EACA,mBAAA;;AA1QV,WAmDE,YAcE,gBAoFE,yBAkHE,gCAIE;EACE,aAAA;EACA,UAAA;;AA7QZ,WAmDE,YAcE,gBAoFE,yBAkHE,gCAIE,sBAGE;EACE,qBAAA;EACA,cAAA;EACA,aAAA;EACA,mBAAA;EACA,cAAA;;AAnRd,WAmDE,YAcE,gBAoFE,yBAkHE,gCAIE,sBAWE;EACE,qBAAA;EACA,2BAAA;EACA,YAAA;;AACA,WAvOZ,YAcE,gBAoFE,yBAkHE,gCAIE,sBAWE,cAIG;EACC,yBAAA;;AA3RhB,WAmDE,YAcE,gBAoFE,yBAkHE,gCAIE,sBAoBE;EACE,YAAA;EACA,cAAA;;AACA,WA/OZ,YAcE,gBAoFE,yBAkHE,gCAIE,sBAoBE,sBAGG;EACC,0BAAA;;AAnShB,WAmDE,YAcE,gBAoFE,yBAoJE;EACE,cAAA;;AA1SV,WAmDE,YAcE,gBAoFE,yBA4JE;EACE,wBAAA;EACA,mBAAA;EACA,oBAAA;EACA,mBAAA;EACA,cAAA;;AAtTV,WAmDE,YAcE,gBAoFE,yBA4JE,cAOE,aACE;EACE,qBAAA;EACA,cAAA;;AACA,WAzQZ,YAcE,gBAoFE,yBA4JE,cAOE,aACE,EAGG;EACC,cAAA;;AA7ThB,WAmDE,YAcE,gBAoFE,yBA4JE,cAiBE;EACE,gBAAA;;AAnUZ,WAmDE,YAcE,gBAoFE,yBA4JE,cAqBE;EACE,sBAAA;;AAvUZ,WAmDE,YAcE,gBAoFE,yBA4JE,cAyBE;EACE,yBAAA;;AA3UZ,WAmDE,YAcE,gBAoFE,yBA4JE,cA6BE;EACE,yBAAA;;AA/UZ,WAmDE,YAcE,gBAoFE,yBA4JE,cAiCE;EACE,kBAAA;;AAnVZ,WAmDE,YAcE,gBAoFE,yBAqME;EACE,cAAA;EACA,eAAA;EACA,kBAAA;EACA,mBAAA;EACA,wBAAA;EACA,gBAAA;EACA,gBAAA;EACA,YAAA;EACA,iBAAA;;AAnWV,WAmDE,YAcE,gBAoFE,yBAiNE;EACE,yBAAA;EACA,YAAA;;AAxWV,WAmDE,YAcE,gBAoFE,yBAqNE;EACE,yBAAA;EACA,YAAA;;AA5WV,WAmDE,YAcE,gBAoFE,yBA0NE;EACE,yBAAA;;AAhXV,WAmDE,YAcE,gBAoFE,yBA8NE;EACE,yBAAA;EACA,YAAA;;AArXV,WAmDE,YAcE,gBAuTE;EACE,aAAA;EACA,mBAAA;EACA,wBAAA;EACA,YAAA;EACA,SAAA;EACA,UAAA;;AA9XR,WAmDE,YAcE,gBAuTE,wBAOE;EACE,iBAAA;;AAhYV,WAmDE,YAcE,gBAuTE,wBAUE;EACE,gBAAA;EACA,cAAA;EACA,mBAAA;;AArYV,WAmDE,YAcE,gBAuUE,2BACE;AAzYR,WAmDE,YAcE,gBAuUE,2BACM;EACF,aAAA;;AAIN,WA3VF,YA2VG;EACC,eAAA;;AADF,WA3VF,YA2VG,YAGC;EACE,iBAAA;;AAJJ,WA3VF,YA2VG,YAGC,gBAEE;EACE,aAAA;;AANN,WA3VF,YA2VG,YAGC,gBAEE,yBAEE,YAAY,MACV;AARR,WA3VF,YA2VG,YAGC,gBAEE,yBAEE,YAAY,MACN;EACF,WAAA;EACA,eAAA;;AAOV,WA5WF,YA4WG,MACC;EACE,YAAA;;AAFJ,WA5WF,YA4WG,MACC,gBAEE;EACE,qBAAA;;AAJN,WA5WF,YA4WG,MACC,gBAKE,YAAY,MAAM;EAChB,WAAA;;AAIN,WAvXF,YAuXG,UACC;EACE,YAAA;;AAGJ,WA5XF,YA4XG,cACC;EACE,yBAAA;;AAjbR,WAybE;AAzbF,WAyb0B;EACtB,WAAA;EACA,gBAAA;EACA,iBAAA;;AA5bJ,WAybE,uBAIE,mBACE;AA9bN,WAyb0B,+BAItB,mBACE;EACE,YAAA;;AA/bR,WAybE,uBASE,mBAAmB;AAlcvB,WAyb0B,+BAStB,mBAAmB;EACjB,kBAAA;EACA,cAAA;;AApcN,WAybE,uBAcE;AAvcJ,WAyb0B,+BActB;EACE,YAAA;;AAxcN,WAybE,uBAcE,aAEE;AAzcN,WAyb0B,+BActB,aAEE;EACE,eAAA;EACA,kBAAA;;AA3cR,WAybE,uBAsBE;AA/cJ,WAyb0B,+BAsBtB;EACE,WAAA;;AAhdN,WAybE,uBAyBE;AAldJ,WAyb0B,+BAyBtB;EACE,aAAA;;AAndN,WAudE;EACE,iBAAA;EACA,WAAA;EACA,gBAAA;;AA1dJ,WAudE,iCAIE;EACE,iBAAA;;AA5dN,WAmeE;EACE,YAAA;EACA,WAAA;EACA,kBAAA;EACA,qBAAA;;AAveJ,WAyeE;EACE,yBAAA;;AA1eJ,WA4eE;EACE,yBAAA;;AAIJ,sBACE,6BACE;EACE,YAAA;EACA,gBAAA;;AAMN;EACE,kBAAA;;AADF,WAEE;EACE,OAAO,iBAAP;EACA,aAAA;EACA,aAAA;EACA,iBAAA;EACA,UAAA;;AACA,wBAA8C;EAA9C,WANF;IAOI,OAAO,iBAAP;;;AAGF,wBAA6C;EAA7C,WAVF;IAWI,OAAO,iBAAP;;;AAGF,wBAA6C;EAA7C,WAdF;IAeI,OAAO,iBAAP;;;AAGF,wBAA6C;EAA7C,WAlBF;IAmBI,OAAO,iBAAP;;;AAGF,wBAA8C;EAA9C,WAtBF;IAuBI,OAAO,gBAAP;;;AAIF,WA3BF,YA2BG;EACC,OAAO,iBAAP;;AAEA,wBAA8C;EAA9C,WA9BJ,YA2BG;IAIG,OAAO,iBAAP;;;AAGF,wBAA6C;EAA7C,WAlCJ,YA2BG;IAQG,OAAO,iBAAP;;;AAGF,wBAA6C;EAA7C,WAtCJ,YA2BG;IAYG,OAAO,gBAAP;;;AAGF,wBAA6C;EAA7C,WA1CJ,YA2BG;IAgBG,OAAO,gBAAP;;;AAGF,wBAA8C;EAA9C,WA9CJ,YA2BG;IAoBG,OAAO,gBAAP;;;AApBJ,WA3BF,YA2BG,MAsBC;EACE,WAAA;EACA,gBAAA;;AAKJ,WAxDF,YAwDG;EACC,iBAAA;;AACA,wBAA8C;EAA9C,WA1DJ,YAwDG;IAGG,iBAAA;IACA,iBAAA;;;AAGF,wBAA6C;EAA7C,WA/DJ,YAwDG;IAQG,iBAAA;IACA,iBAAA;;;AAGF,wBAA6C;EAA7C,WApEJ,YAwDG;IAaG,iBAAA;IACA,iBAAA;;;AAGF,wBAA6C;EAA7C,WAzEJ,YAwDG;IAkBG,iBAAA;IACA,iBAAA;;;AAGF,wBAA8C;EAA9C,WA9EJ,YAwDG;IAuBG,iBAAA;IACA,iBAAA;;;AAxBJ,WAxDF,YAwDG,YA2BC;EACE,WAAA;EACA,gBAAA;EACA,iBAAA;;AAxFR,WAEE,YAyFE,UAAS;EACP,WAAA;EACA,UAAA;;AAGF,WA9FF,YA8FG;EACC,UAAA;;AAEF,WAjGF,YAiGG;EACC,UAAA;;AAEF,WApGF,YAoGG;EACC,UAAA;;AAvGN,WAEE,YAuGE;EACE,kCAAA;EACA,UAAA;EACA,YAAA;;AA5GN,WAEE,YAuGE,mBAIE;EACE,cAAA;EACA,YAAA;;AA/GR,WAEE,YAuGE,mBAUE;EACE,eAAA;EACA,eAAA;EACA,eAAA;EACA,iBAAA;EACA,YAAA;;AAxHR,WAEE,YAuGE,mBAiBE;EACE,WAAA;EACA,gBAAA;EACA,cAAA;;AA7HR,WAEE,YA8HE;EACE,sBAAA;EACA,kBAAA;EACA,gDAAA;EACA,YAAA;EACA,WAAA;;AArIN,WAEE,YA8HE,gBAOE;EACE,WAAA;EACA,YAAA;EACA,QAAQ,kBAAR;EACA,gBAAA;EACA,oBAAA;;AAKJ,WA/IF,YA+IG,UACC;EACE,YAAA;;AAGJ,WApJF,YAoJG,cACC;EACE,yBAAA;;AAIJ,WA1JF,YA0JG,uBAAwB;EACvB,oBAAA;EACA,UAAA","file":"grid-rtl.css"}
 
grid/css/grid-rtl.less DELETED
@@ -1,792 +0,0 @@
1
- // RTL generator: https://cssjanus.github.io/
2
- @gridblock_height: 475px;
3
- @gridblock_width: 800px;
4
- @gridblock_width_small:400px;
5
- @grid_margin: 10px;
6
- @grey_light:#cecece;
7
- @box_shadow_color: rgba(222, 222, 222, 0.2);
8
- @border_color: #dedede;
9
- @color-success: #61ce70;
10
- @color_warning: #d7263d;
11
- @color_open: #FBC43D;
12
- @light-text-color: #3c3c3c;
13
- @light-grey: lightgrey;
14
- @button-border-color: #6477AA;
15
-
16
- // break points
17
- @break-xs: 400px;
18
- @break-s: 600px;
19
- @break-m: 768px;
20
- @break-l: 992px;
21
- @break-xl: 1555px;
22
-
23
- // Override default WP settings style
24
- .settings_page_rlrsssl_really_simple_ssl #wpcontent, .settings_page_really-simple-ssl #wpcontent{
25
- padding: 0;
26
- .rsssl-footer-item {
27
- form {
28
- float:right;
29
- }
30
- }
31
-
32
- .nav-tab {
33
- padding: 16px 20px 17px 20px;
34
- margin-bottom:0;
35
- color: #444;
36
- font-weight: normal;
37
- font-size: 1.2em;
38
- background: inherit;
39
- border: 0;
40
- &.nav-tab-active {
41
- border-bottom: 2px solid @color_open;
42
- background: #fff;
43
- padding-bottom:15px;
44
- }
45
- }
46
-
47
- // Responsive menu
48
- @media screen and (max-width: 800px) {
49
- .nav-tab-wrapper {
50
- display: flex;
51
- flex-wrap: wrap;
52
- justify-content: center;
53
- .nav-tab {
54
- margin-right: 25px;
55
- }
56
-
57
- .documentation {
58
- display: none;
59
- }
60
- }
61
- }
62
-
63
- @media screen and (max-width: 480px) {
64
- .nav-tab-wrapper {
65
-
66
- .nav-tab {
67
- padding: 22px 3px 10px 3px;
68
- }
69
-
70
- .nav-tab-active {
71
- padding-bottom: 10px;
72
- }
73
- }
74
- }
75
-
76
- .nav-tab-wrapper {
77
- min-height: 60px;
78
- background-color: #fff;
79
- display: flex;
80
- align-items: center;
81
- border: 0;
82
- }
83
- .rsssl-logo-container {
84
- margin-right: 25px;
85
- #rsssl-logo {
86
- height: 40px;
87
- width: 200px;
88
- img {
89
- width:200px;
90
- }
91
- }
92
- }
93
- .header-links {
94
- display: flex;
95
- flex: 1;
96
- justify-content: flex-end;
97
- flex-direction: row;
98
- align-items: center;
99
- margin-left: 20px;
100
- .documentation {
101
- text-decoration: underline;
102
- }
103
- .header-upsell {
104
- .documentation {
105
- margin-right:25px;
106
- }
107
- a {
108
- text-decoration: none;
109
- }
110
- .header-upsell-pro {
111
- color: black;
112
- border: 3px solid black;
113
- margin: 10px;
114
- width: 80px;
115
- text-align: center;
116
- padding: 5px;
117
- border-radius: 20px;
118
- font-weight: 600;
119
- }
120
- }
121
- }
122
- }
123
-
124
- .rsssl-grid {
125
- width: calc(100% - 20px);
126
- margin: @grid_margin;
127
- position: relative;
128
- display: flex;
129
- flex-direction: row;
130
- flex-wrap: wrap;
131
-
132
- .button-rsssl-tertiary {
133
- background-color: #D7263D;
134
- color: white;
135
- border:0;
136
- }
137
-
138
- .rsssl-wide-button {
139
- width: 220px;
140
- }
141
-
142
- .rsssl-progress {
143
-
144
- .rsssl-task-list {
145
- height: 257px;
146
- overflow:hidden;
147
- }
148
-
149
- .rsssl-toggle-active {
150
- text-decoration: underline;
151
- }
152
-
153
- #rsssl-all-tasks, #rsssl-remaining-tasks {
154
- display: none;
155
-
156
- }
157
- .rsssl-tasks-container {
158
- border-bottom:1px solid lightgrey;
159
- color: lightgrey;
160
- &.active{
161
- text-decoration: none;
162
- border-bottom:0;
163
- color:initial;
164
-
165
- }
166
- }
167
-
168
- .rsssl-tasks-inactive {
169
- text-decoration: underline;
170
- color:@light-grey;
171
- }
172
-
173
- }
174
-
175
- .rsssl-item {
176
- width: @gridblock_width ;
177
- &.small {
178
- width: @gridblock_width_small;
179
- }
180
-
181
- .rsssl-close-warning-x {
182
- color: #ccc;
183
- font-size: 0.9em;
184
- margin-left: 25px;
185
- }
186
-
187
- height: @gridblock_height + @grid_margin;
188
- z-index: 1;
189
- .item-container {
190
- .form-table {
191
- display: flex;
192
- tbody {
193
- display: flex;
194
- flex-direction: column;
195
- flex-wrap: wrap;
196
- max-height: 340px;
197
- width: 100% !important;
198
- tr {
199
- padding: 0 0 0 0 !important;
200
- display: flex;
201
- align-items: center;
202
- flex-direction: row;
203
- width: 50%;
204
-
205
- td {
206
- padding: 0;
207
- margin: 0;
208
- }
209
- th {
210
- .dashicons-editor-help {
211
- font-size: 22px;
212
- }
213
- margin-right: 0;
214
- width: 90%;
215
- display: flex;
216
- align-items: center;
217
- font-size: 13px;
218
- font-weight: normal;
219
- .rsssl-tooltip-right {
220
- padding-left: 10px;
221
- }
222
- }
223
- th, td {
224
- // Important to override default WP style
225
- padding: 6px 0 !important;
226
- font-size:13px;
227
- p {font-size:13px}
228
- }
229
- }
230
- }
231
- }
232
- h2 {
233
- display: none;
234
- }
235
-
236
- background-color: #fff;
237
- position: relative;
238
- box-shadow: 0px 0px 5px 5px @box_shadow_color;
239
- width: @gridblock_width - @grid_margin;
240
- height: @gridblock_height;
241
- .rsssl-save-settings-feedback {
242
- margin-left:20px;
243
- color: @color_warning;
244
- }
245
- .rsssl-grid-item-header {
246
- display: flex;
247
- align-items: center;
248
- justify-content: space-between;
249
- height: 60px;
250
- border-bottom: 1px solid @border_color;
251
- padding: 0 25px 0 25px;
252
- .rsssl-instructions a {
253
- color: @light-text-color;
254
- }
255
-
256
- .rsssl-secondary-header-item {
257
- display: flex;
258
- color: @light-text-color;
259
- .all-task-count, .open-task-count {
260
- padding-right: 3px;
261
- padding-top: 3px;
262
- }
263
- .all-task-count {
264
- margin-left: 5px;
265
- }
266
-
267
- }
268
- }
269
- .rsssl-table-td-main-content {
270
- padding-right: 15px;
271
- }
272
-
273
- .rsssl-grid-item-content {
274
- height: 360px;
275
- margin: 10px 25px 10px 25px;
276
- border-bottom: 1px solid @border_color;
277
-
278
- /*
279
- Progress block
280
- */
281
-
282
- .rsssl-progress-block {
283
- padding-top: 10px;
284
-
285
- .progress-bar-container {
286
- margin: 0 0 25px 0;
287
- }
288
-
289
- .progress {
290
- overflow: hidden;
291
- height: 20px;
292
- border-radius: 5px;
293
- background-color: #f7f7f7;
294
- .bar {
295
- height: 100%;
296
- background-color: @color-success;
297
- }
298
- .bar.orange {
299
- background-color: @color_open;
300
- }
301
- }
302
-
303
- .progress-text {
304
- display: flex;
305
- align-items: center;
306
- margin: 10px 0;
307
- padding-top: 10px;
308
- padding-bottom: 10px;
309
-
310
- .rsssl-progress-percentage {
311
- font-size: 32px;
312
- font-weight: 700;
313
- }
314
-
315
- .rsssl-progress-text {
316
- margin-right: 35px;
317
- font-size:18px;
318
- font-weight:600;
319
- a {
320
- margin-right: 3px;
321
- }
322
- }
323
- }
324
-
325
- .rsssl-progress-table {
326
- tr {
327
- position:relative;
328
- }
329
- td {
330
- padding: 10px 0 10px 10px;
331
- }
332
- td +td {padding-right:15px;}
333
- }
334
- }
335
-
336
- /*
337
- Tips and Tricks
338
- */
339
- .rsssl-tips-tricks {
340
- color: @light-text-color;
341
- padding-bottom: 15px;
342
- .tips-tricks-content{
343
- display: flex;
344
- flex-direction: column;
345
- margin-left:10px;
346
- height: 340px;
347
- .tips-tricks-top {
348
- flex-grow:1;
349
-
350
- .rsssl-tips-tricks-element {
351
- margin-top: 10px;
352
- margin-bottom: 15px;
353
- display: flex;
354
- flex-direction: row;
355
- justify-content: space-between;
356
- }
357
- .rsssl-tips-tricks-content {
358
- padding-left:20px;
359
- }
360
- }
361
- }
362
-
363
-
364
- .rsssl-tips-tricks-read-more a {
365
- text-decoration: none;
366
- white-space: nowrap;
367
- }
368
- }
369
- // End tips and tricks
370
-
371
- /*
372
- Default bullet style
373
- */
374
- .rsssl-bullet {
375
- height: 13px;
376
- width: 13px;
377
- border-radius: 50%;
378
- margin-left: 10px;
379
- background-color: lightgrey;
380
- text-decoration: none;
381
- }
382
-
383
- /*
384
- Support forum block
385
- */
386
-
387
- #rsssl-support-forums-container {
388
- display: flex;
389
- flex-wrap: wrap;
390
- flex-direction: row;
391
- .rsssl-support-forums {
392
- display: flex;
393
- width: 50%;
394
- a {
395
- text-decoration: none;
396
- color: @light-text-color;
397
- display: flex;
398
- align-items: center;
399
- padding:2px 0;
400
- }
401
-
402
- .rsssl-bullet {
403
- margin: 7px 0 7px 7px;
404
- background-color: @light-grey;
405
- float: right;
406
- &:hover {
407
- background-color: @color_open;
408
- }
409
- }
410
-
411
- .rsssl-forums-content {
412
- float: right;
413
- color: @light-text-color;
414
- &:hover {
415
- text-decoration: underline;
416
- }
417
- }
418
- }
419
- }
420
-
421
- #rsssl-feedback {
422
- color: @color_warning;
423
- }
424
-
425
- /*
426
- Other plugins
427
- */
428
-
429
- .rsssl-upsell {
430
- display: flex !important; //we need important here, because the grid switch overrides it on element level
431
- flex-direction: row;
432
- padding: 7px 0 7px 0;
433
- align-items: center;
434
- color: @light-text-color;
435
-
436
- .plugin-text {
437
- a {
438
- text-decoration: none;
439
- color: @light-text-color;
440
- &:hover {
441
- color: @color_open;
442
- }
443
- }
444
- }
445
-
446
- .rsp-image {
447
- margin-left: 5px;
448
- }
449
-
450
- .cmplztc-black {
451
- background-color:#333;
452
- }
453
-
454
- .cmplz-blue {
455
- background-color: #27ADEA;
456
- }
457
-
458
- .burst-green {
459
- background-color: #297A31;
460
- }
461
-
462
- .plugin-status {
463
- margin-right: auto;
464
- }
465
- }
466
-
467
- /*
468
- Progress labels
469
- */
470
- .rsssl-progress-status {
471
- display: block;
472
- min-width: 60px;
473
- text-align: center;
474
- border-radius: 15px;
475
- padding: 4px 8px 4px 8px;
476
- font-size: 0.8em;
477
- font-weight: 600;
478
- height: 17px;
479
- line-height:17px;
480
- }
481
-
482
- .rsssl-premium {
483
- background-color: #29b6f6;
484
- color: white;
485
- }
486
- .rsssl-success {
487
- background-color: @color-success;
488
- color: white;
489
- }
490
-
491
- .rsssl-open {
492
- background-color: @color_open;
493
- }
494
-
495
- .rsssl-warning {
496
- background-color: @color_warning;
497
- color: white;
498
- }
499
- }
500
- .rsssl-grid-item-footer {
501
- display: flex;
502
- align-items: center;
503
- margin: 14px 25px 0 25px;
504
- height: 40px;
505
- bottom: 0;
506
- width: 95%;
507
- .rsssl-button-save {
508
- margin-left:25px;
509
- }
510
- #rsssl-feedback {
511
- font-weight: 600;
512
- color: @color-success;
513
- padding-right: 10px;
514
- }
515
- }
516
- .rsssl-deactivate-keep-ssl {
517
- th, span {
518
- display: none;
519
- }
520
- }
521
- }
522
- &.half-height {
523
- height: (@gridblock_height / 2) + @grid_margin;
524
-
525
- .item-container {
526
- height: @gridblock_height / 2;
527
- .rsssl-grid-item-content {
528
- height: 110px;
529
- .form-table tbody {
530
- tr, th {
531
- width:100%;
532
- max-width:100%;
533
- }
534
- }
535
- }
536
- }
537
- }
538
-
539
- &.small {
540
- .item-container {
541
- width: @gridblock_width_small - @grid_margin;
542
- th {
543
- width: 90% !important;
544
- }
545
- .form-table tbody tr {
546
- width: 100%;
547
- }
548
- }
549
- }
550
- &.no-border {
551
- .item-container {
552
- border: none;
553
- }
554
- }
555
- &.no-background {
556
- .item-container {
557
- background-color: #f2f2f2;
558
- }
559
- }
560
- }
561
- /*
562
- Footers
563
- */
564
-
565
- #rsssl-progress-footer, #rsssl-premium-settings-footer {
566
- width: 100%;
567
- text-align: left;
568
- margin-left: @grid_margin;
569
- .rsssl-footer-item {
570
- form {
571
- float:right;
572
- }
573
- }
574
- .rsssl-footer-item +.rsssl-footer-item {
575
- margin-right:20px;
576
- padding:4px 0;
577
- }
578
-
579
- .footer-left {
580
- float:right;
581
- .upsell {
582
- min-width: 80px;
583
- text-align: center;
584
- }
585
- }
586
-
587
- .footer-right {
588
- float:left;
589
- }
590
- .hidden {
591
- display: none;
592
- }
593
- }
594
-
595
- .rsssl-system-status-footer-info {
596
- margin-left: 20px;
597
- width: 100%;
598
- text-align: left;
599
- .system-status-info {
600
- margin-right: 6px;
601
- }
602
- }
603
- /*
604
- Dots
605
- */
606
-
607
- .dot {
608
- height: 10px;
609
- width: 10px;
610
- border-radius: 50%;
611
- display: inline-block;
612
- }
613
- .rsssl-dot-success {
614
- background-color: #61ce70;
615
- }
616
- .rsssl-dot-error {
617
- background-color: #d7263d;
618
- }
619
- }
620
-
621
- .upsell-grid-container {
622
- .rsssl-secondary-header-item {
623
- img {
624
- height: 30px;
625
- padding-top: 5px;
626
- }
627
- }
628
- }
629
-
630
- // Code below should be integrated in to the code above.
631
- .rsssl-grid {
632
- position: relative;
633
- .rsssl-item {
634
- width: calc(100% - 20px);
635
- padding: 10px;
636
- height: @gridblock_height;
637
- min-height: 500px;
638
- z-index: 1;
639
- @media only screen and (min-width: @break-xs) {
640
- width: calc(100% - 20px);
641
- }
642
-
643
- @media only screen and (min-width: @break-s) {
644
- width: calc(100% - 20px);
645
- }
646
-
647
- @media only screen and (min-width: @break-m) {
648
- width: calc(100% - 20px);
649
- }
650
-
651
- @media only screen and (min-width: @break-l) {
652
- width: calc(100% - 20px);
653
- }
654
-
655
- @media only screen and (min-width: @break-xl) {
656
- width: calc(50% - 20px);
657
- }
658
-
659
-
660
- &.small {
661
- width: calc(100% - 20px);
662
-
663
- @media only screen and (min-width: @break-xs) {
664
- width: calc(100% - 20px);
665
- }
666
-
667
- @media only screen and (min-width: @break-s) {
668
- width: calc(100% - 20px);
669
- }
670
-
671
- @media only screen and (min-width: @break-m) {
672
- width: calc(50% - 20px);
673
- }
674
-
675
- @media only screen and (min-width: @break-l) {
676
- width: calc(50% - 20px);
677
- }
678
-
679
- @media only screen and (min-width: @break-xl) {
680
- width: calc(25% - 20px);
681
- }
682
- .item-container{
683
- width: 100%;
684
- min-width: 200px;
685
- }
686
-
687
- }
688
-
689
- &.half-height {
690
- min-height: 250px;
691
- @media only screen and (min-width: @break-xs) {
692
- height: @gridblock_height / 2;
693
- min-height: 250px;
694
- }
695
-
696
- @media only screen and (min-width: @break-s) {
697
- min-height: 250px;
698
- height: @gridblock_height / 2;
699
- }
700
-
701
- @media only screen and (min-width: @break-m) {
702
- min-height: 250px;
703
- height: @gridblock_height / 2;
704
- }
705
-
706
- @media only screen and (min-width: @break-l) {
707
- min-height: 250px;
708
- height: @gridblock_height / 2;
709
- }
710
-
711
- @media only screen and (min-width: @break-xl) {
712
- min-height: 250px;
713
- height: @gridblock_height / 2;
714
- }
715
-
716
- .item-container {
717
- width: 100%;
718
- min-width: 200px;
719
- min-height: 250px;
720
- }
721
- }
722
- .settings.rsssl-item{
723
- width: 100%;
724
- padding: 0;
725
- }
726
-
727
- &.muuri-item-hidden {
728
- z-index: 0;
729
- }
730
- &.muuri-item-releasing {
731
- z-index: 2;
732
- }
733
- &.muuri-item-dragging {
734
- z-index: 3;
735
- }
736
- .rsssl-grid-header {
737
- border-bottom: 1px solid @light-grey;
738
- padding: 0;
739
- height: 60px;
740
- .rsssl-grid-header-container {
741
- margin: 0 20px;
742
- height: 100%;
743
- }
744
-
745
-
746
- .rsssl-grid-title{
747
- cursor: pointer;
748
- font-size: 20px;
749
- padding: 20px 0;
750
- font-weight: bold;
751
- float: right;
752
- }
753
- .rsssl-grid-controls {
754
- float: left;
755
- margin-top: 20px;
756
- color: #cecece;
757
- }
758
- }
759
- .item-container {
760
- background-color: #fff;
761
- position: relative;
762
- box-shadow: 0 0 5px 5px rgba(222,222,222,0.2);
763
- height: 100%;
764
- width: 100%;
765
-
766
- .item-content {
767
- clear:both;
768
- margin:15px;
769
- height: calc(100% - 100px);
770
- padding-top: 0px;
771
- padding-bottom:10px;
772
- }
773
-
774
- }
775
-
776
- &.no-border {
777
- .item-container {
778
- border: none;
779
- }
780
- }
781
- &.no-background {
782
- .item-container {
783
- background-color: #F1F1F1;
784
- }
785
- }
786
-
787
- &.muuri-item-placeholder .item-container {
788
- border-style: dashed;
789
- padding:0;
790
- }
791
- }
792
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
grid/css/grid-rtl.min.css DELETED
@@ -1 +0,0 @@
1
- .settings_page_really-simple-ssl #wpcontent,.settings_page_rlrsssl_really_simple_ssl #wpcontent{padding:0}.rsssl-grid #rsssl-premium-settings-footer .rsssl-footer-item form,.rsssl-grid #rsssl-progress-footer .rsssl-footer-item form,.settings_page_really-simple-ssl #wpcontent .rsssl-footer-item form,.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-footer-item form{float:right}.settings_page_really-simple-ssl #wpcontent .nav-tab,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab{padding:16px 20px 17px;margin-bottom:0;color:#444;font-weight:400;font-size:1.2em;background:inherit;border:0}.settings_page_really-simple-ssl #wpcontent .nav-tab.nav-tab-active,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab.nav-tab-active{border-bottom:2px solid #fbc43d;background:#fff;padding-bottom:15px}@media screen and (max-width:800px){.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper{display:flex;flex-wrap:wrap;justify-content:center}.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .nav-tab,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .nav-tab{margin-right:25px}.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .documentation,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .documentation{display:none}}@media screen and (max-width:480px){.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .nav-tab,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .nav-tab{padding:22px 3px 10px}.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .nav-tab-active,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .nav-tab-active{padding-bottom:10px}}.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper{min-height:60px;background-color:#fff;display:flex;align-items:center;border:0}.settings_page_really-simple-ssl #wpcontent .header-links .header-upsell .documentation,.settings_page_really-simple-ssl #wpcontent .rsssl-logo-container,.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell .documentation,.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container{margin-right:25px}.settings_page_really-simple-ssl #wpcontent .rsssl-logo-container #rsssl-logo,.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container #rsssl-logo{height:40px;width:200px}.settings_page_really-simple-ssl #wpcontent .rsssl-logo-container #rsssl-logo img,.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container #rsssl-logo img{width:200px}.settings_page_really-simple-ssl #wpcontent .header-links,.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links{display:flex;flex:1;justify-content:flex-end;flex-direction:row;align-items:center;margin-left:20px}.settings_page_really-simple-ssl #wpcontent .header-links .documentation,.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .documentation{text-decoration:underline}.settings_page_really-simple-ssl #wpcontent .header-links .header-upsell a,.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell a{text-decoration:none}.settings_page_really-simple-ssl #wpcontent .header-links .header-upsell .header-upsell-pro,.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell .header-upsell-pro{color:#000;border:3px solid #000;margin:10px;width:80px;text-align:center;padding:5px;border-radius:20px;font-weight:600}.rsssl-grid{width:calc(100% - 20px);margin:10px;display:flex;flex-direction:row;flex-wrap:wrap}.rsssl-grid .button-rsssl-tertiary{background-color:#d7263d;color:#fff;border:0}.rsssl-grid .rsssl-wide-button{width:220px}.rsssl-grid .rsssl-progress .rsssl-task-list{height:257px;overflow:hidden}.rsssl-grid .rsssl-progress .rsssl-toggle-active{text-decoration:underline}.rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl span,.rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl th,.rsssl-grid .rsssl-item .item-container h2,.rsssl-grid .rsssl-progress #rsssl-all-tasks,.rsssl-grid .rsssl-progress #rsssl-remaining-tasks{display:none}.rsssl-grid .rsssl-progress .rsssl-tasks-container{border-bottom:1px solid #d3d3d3;color:#d3d3d3}.rsssl-grid .rsssl-progress .rsssl-tasks-container.active{text-decoration:none;border-bottom:0;color:initial}.rsssl-grid .rsssl-progress .rsssl-tasks-inactive{text-decoration:underline;color:#d3d3d3}.rsssl-grid .rsssl-item{width:800px}.rsssl-grid .rsssl-item.small{width:400px}.rsssl-grid .rsssl-item .rsssl-close-warning-x{color:#ccc;font-size:.9em;margin-left:25px}.rsssl-grid .rsssl-item .item-container .form-table{display:flex}.rsssl-grid .rsssl-item .item-container .form-table tbody{display:flex;flex-direction:column;flex-wrap:wrap;max-height:340px;width:100%!important}.rsssl-grid .rsssl-item .item-container .form-table tbody tr{padding:0!important;display:flex;align-items:center;flex-direction:row;width:50%}.rsssl-grid .rsssl-item .item-container .form-table tbody tr td{margin:0}.rsssl-grid .rsssl-item .item-container .form-table tbody tr th{margin-right:0;width:90%;display:flex;align-items:center;font-weight:400}.rsssl-grid .rsssl-item .item-container .form-table tbody tr th .dashicons-editor-help{font-size:22px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr th .rsssl-tooltip-right{padding-left:10px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr td,.rsssl-grid .rsssl-item .item-container .form-table tbody tr th{padding:6px 0!important;font-size:13px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr td p,.rsssl-grid .rsssl-item .item-container .form-table tbody tr th p{font-size:13px}.rsssl-grid .rsssl-item .item-container .rsssl-save-settings-feedback{margin-left:20px;color:#d7263d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header{display:flex;align-items:center;justify-content:space-between;height:60px;border-bottom:1px solid #dedede;padding:0 25px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-instructions a{color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item{display:flex;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .all-task-count,.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .open-task-count{padding-right:3px;padding-top:3px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .all-task-count{margin-left:5px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table td+td,.rsssl-grid .rsssl-item .item-container .rsssl-table-td-main-content{padding-right:15px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content{height:360px;margin:10px 25px;border-bottom:1px solid #dedede}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block{padding-top:10px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-bar-container{margin:0 0 25px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress{overflow:hidden;height:20px;border-radius:5px;background-color:#f7f7f7}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress .bar{height:100%;background-color:#61ce70}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet:hover,.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress .bar.orange{background-color:#fbc43d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text{display:flex;align-items:center;margin:10px 0;padding-top:10px;padding-bottom:10px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-percentage{font-size:32px;font-weight:700}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text{margin-right:35px;font-size:18px;font-weight:600}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text a{margin-right:3px}.rsssl-grid,.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table tr{position:relative}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table td{padding:10px 0 10px 10px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks{color:#3c3c3c;padding-bottom:15px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content{display:flex;flex-direction:column;margin-left:10px;height:340px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top{flex-grow:1}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top .rsssl-tips-tricks-element{margin-top:10px;margin-bottom:15px;display:flex;flex-direction:row;justify-content:space-between}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top .rsssl-tips-tricks-content{padding-left:20px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .rsssl-tips-tricks-read-more a{text-decoration:none;white-space:nowrap}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-bullet{height:13px;width:13px;border-radius:50%;margin-left:10px;background-color:#d3d3d3;text-decoration:none}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container{display:flex;flex-wrap:wrap;flex-direction:row}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums{display:flex;width:50%}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums a{text-decoration:none;color:#3c3c3c;display:flex;align-items:center;padding:2px 0}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet{margin:7px 0 7px 7px;background-color:#d3d3d3;float:right}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content{float:right;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content:hover{text-decoration:underline}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-feedback{color:#d7263d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell{display:flex!important;flex-direction:row;padding:7px 0;align-items:center;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-text a{text-decoration:none;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-text a:hover{color:#fbc43d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .rsp-image{margin-left:5px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .cmplztc-black{background-color:#333}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .cmplz-blue{background-color:#27adea}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .burst-green{background-color:#297a31}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-status{margin-right:auto}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-status{display:block;min-width:60px;text-align:center;border-radius:15px;padding:4px 8px;font-size:.8em;font-weight:600;height:17px;line-height:17px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-premium{background-color:#29b6f6;color:#fff}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-success{background-color:#61ce70;color:#fff}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-open{background-color:#fbc43d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-warning{background-color:#d7263d;color:#fff}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer{display:flex;align-items:center;margin:14px 25px 0;height:40px;bottom:0;width:95%}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer .rsssl-button-save{margin-left:25px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer #rsssl-feedback{font-weight:600;color:#61ce70;padding-right:10px}.rsssl-grid .rsssl-item.half-height{height:247.5px}.rsssl-grid .rsssl-item.half-height .item-container{height:475px/2}.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content{height:110px}.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content .form-table tbody th,.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content .form-table tbody tr{width:100%;max-width:100%}.rsssl-grid .rsssl-item.small .item-container th{width:90%!important}.rsssl-grid .rsssl-item.small .item-container .form-table tbody tr{width:100%}.rsssl-grid #rsssl-premium-settings-footer,.rsssl-grid #rsssl-progress-footer{width:100%;text-align:left;margin-left:10px}.rsssl-grid #rsssl-premium-settings-footer .rsssl-footer-item+.rsssl-footer-item,.rsssl-grid #rsssl-progress-footer .rsssl-footer-item+.rsssl-footer-item{margin-right:20px;padding:4px 0}.rsssl-grid #rsssl-premium-settings-footer .footer-left,.rsssl-grid #rsssl-progress-footer .footer-left{float:right}.rsssl-grid #rsssl-premium-settings-footer .footer-left .upsell,.rsssl-grid #rsssl-progress-footer .footer-left .upsell{min-width:80px;text-align:center}.rsssl-grid #rsssl-premium-settings-footer .footer-right,.rsssl-grid #rsssl-progress-footer .footer-right{float:left}.rsssl-grid #rsssl-premium-settings-footer .hidden,.rsssl-grid #rsssl-progress-footer .hidden{display:none}.rsssl-grid .rsssl-system-status-footer-info{margin-left:20px;width:100%;text-align:left}.rsssl-grid .rsssl-system-status-footer-info .system-status-info{margin-right:6px}.rsssl-grid .dot{height:10px;width:10px;border-radius:50%;display:inline-block}.rsssl-grid .rsssl-dot-success{background-color:#61ce70}.rsssl-grid .rsssl-dot-error{background-color:#d7263d}.upsell-grid-container .rsssl-secondary-header-item img{height:30px;padding-top:5px}.rsssl-grid .rsssl-item{width:calc(100% - 20px);padding:10px;height:475px;min-height:500px;z-index:1}@media only screen and (min-width:400px){.rsssl-grid .rsssl-item{width:calc(100% - 20px)}}@media only screen and (min-width:600px){.rsssl-grid .rsssl-item{width:calc(100% - 20px)}}@media only screen and (min-width:768px){.rsssl-grid .rsssl-item{width:calc(100% - 20px)}}@media only screen and (min-width:992px){.rsssl-grid .rsssl-item{width:calc(100% - 20px)}}@media only screen and (min-width:1555px){.rsssl-grid .rsssl-item{width:calc(50% - 20px)}}.rsssl-grid .rsssl-item.small{width:calc(100% - 20px)}@media only screen and (min-width:400px){.rsssl-grid .rsssl-item.small{width:calc(100% - 20px)}}@media only screen and (min-width:600px){.rsssl-grid .rsssl-item.small{width:calc(100% - 20px)}}@media only screen and (min-width:768px){.rsssl-grid .rsssl-item.small{width:calc(50% - 20px)}}@media only screen and (min-width:992px){.rsssl-grid .rsssl-item.small{width:calc(50% - 20px)}}@media only screen and (min-width:1555px){.rsssl-grid .rsssl-item.small{width:calc(25% - 20px)}}.rsssl-grid .rsssl-item.small .item-container{width:100%;min-width:200px}.rsssl-grid .rsssl-item.half-height{min-height:250px}@media only screen and (min-width:400px){.rsssl-grid .rsssl-item.half-height{height:475px/2;min-height:250px}}@media only screen and (min-width:600px){.rsssl-grid .rsssl-item.half-height{min-height:250px;height:475px/2}}@media only screen and (min-width:768px){.rsssl-grid .rsssl-item.half-height{min-height:250px;height:475px/2}}@media only screen and (min-width:992px){.rsssl-grid .rsssl-item.half-height{min-height:250px;height:475px/2}}@media only screen and (min-width:1555px){.rsssl-grid .rsssl-item.half-height{min-height:250px;height:475px/2}}.rsssl-grid .rsssl-item.half-height .item-container{width:100%;min-width:200px;min-height:250px}.rsssl-grid .rsssl-item .settings.rsssl-item{width:100%;padding:0}.rsssl-grid .rsssl-item.muuri-item-hidden{z-index:0}.rsssl-grid .rsssl-item.muuri-item-releasing{z-index:2}.rsssl-grid .rsssl-item.muuri-item-dragging{z-index:3}.rsssl-grid .rsssl-item .rsssl-grid-header{border-bottom:1px solid #d3d3d3;padding:0;height:60px}.rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-header-container{margin:0 20px;height:100%}.rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-title{cursor:pointer;font-size:20px;padding:20px 0;font-weight:700;float:right}.rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-controls{float:left;margin-top:20px;color:#cecece}.rsssl-grid .rsssl-item .item-container{background-color:#fff;position:relative;box-shadow:0 0 5px 5px rgba(222,222,222,.2);height:100%;width:100%}.rsssl-grid .rsssl-item .item-container .item-content{clear:both;margin:15px;height:calc(100% - 100px);padding-top:0;padding-bottom:10px}.rsssl-grid .rsssl-item.no-border .item-container{border:0}.rsssl-grid .rsssl-item.no-background .item-container{background-color:#f1f1f1}.rsssl-grid .rsssl-item.muuri-item-placeholder .item-container{border-style:dashed;padding:0}
 
grid/css/grid.css DELETED
@@ -1,709 +0,0 @@
1
- .settings_page_rlrsssl_really_simple_ssl #wpcontent,
2
- .settings_page_really-simple-ssl #wpcontent {
3
- padding: 0;
4
- }
5
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-footer-item form,
6
- .settings_page_really-simple-ssl #wpcontent .rsssl-footer-item form {
7
- float: left;
8
- }
9
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab,
10
- .settings_page_really-simple-ssl #wpcontent .nav-tab {
11
- padding: 16px 20px 17px 20px;
12
- margin-bottom: 0;
13
- color: #444;
14
- font-weight: normal;
15
- font-size: 1.2em;
16
- background: inherit;
17
- border: 0;
18
- }
19
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab.nav-tab-active,
20
- .settings_page_really-simple-ssl #wpcontent .nav-tab.nav-tab-active {
21
- border-bottom: 2px solid #FBC43D;
22
- background: #fff;
23
- padding-bottom: 15px;
24
- }
25
- @media screen and (max-width: 800px) {
26
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper,
27
- .settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper {
28
- display: flex;
29
- flex-wrap: wrap;
30
- justify-content: center;
31
- }
32
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .nav-tab,
33
- .settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .nav-tab {
34
- margin-left: 25px;
35
- }
36
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .documentation,
37
- .settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .documentation {
38
- display: none;
39
- }
40
- }
41
- @media screen and (max-width: 480px) {
42
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .nav-tab,
43
- .settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .nav-tab {
44
- padding: 22px 3px 10px 3px;
45
- }
46
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .nav-tab-active,
47
- .settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .nav-tab-active {
48
- padding-bottom: 10px;
49
- }
50
- }
51
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper,
52
- .settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper {
53
- min-height: 60px;
54
- background-color: #fff;
55
- display: flex;
56
- align-items: center;
57
- border: 0;
58
- }
59
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container,
60
- .settings_page_really-simple-ssl #wpcontent .rsssl-logo-container {
61
- margin-left: 25px;
62
- }
63
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container #rsssl-logo,
64
- .settings_page_really-simple-ssl #wpcontent .rsssl-logo-container #rsssl-logo {
65
- height: 40px;
66
- width: 200px;
67
- }
68
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container #rsssl-logo img,
69
- .settings_page_really-simple-ssl #wpcontent .rsssl-logo-container #rsssl-logo img {
70
- width: 200px;
71
- }
72
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links,
73
- .settings_page_really-simple-ssl #wpcontent .header-links {
74
- display: flex;
75
- flex: 1;
76
- justify-content: flex-end;
77
- flex-direction: row;
78
- align-items: center;
79
- margin-right: 20px;
80
- }
81
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .documentation,
82
- .settings_page_really-simple-ssl #wpcontent .header-links .documentation {
83
- text-decoration: underline;
84
- }
85
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell .documentation,
86
- .settings_page_really-simple-ssl #wpcontent .header-links .header-upsell .documentation {
87
- margin-left: 25px;
88
- }
89
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell a,
90
- .settings_page_really-simple-ssl #wpcontent .header-links .header-upsell a {
91
- text-decoration: none;
92
- }
93
- .settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell .header-upsell-pro,
94
- .settings_page_really-simple-ssl #wpcontent .header-links .header-upsell .header-upsell-pro {
95
- color: black;
96
- border: 3px solid black;
97
- margin: 10px;
98
- width: 80px;
99
- text-align: center;
100
- padding: 5px;
101
- border-radius: 20px;
102
- font-weight: 600;
103
- }
104
- .rsssl-grid {
105
- width: calc(100% - 20px);
106
- margin: 10px;
107
- position: relative;
108
- display: flex;
109
- flex-direction: row;
110
- flex-wrap: wrap;
111
- /*
112
- Footers
113
- */
114
- /*
115
- Dots
116
- */
117
- }
118
- .rsssl-grid .button-rsssl-tertiary {
119
- background-color: #D7263D;
120
- color: white;
121
- border: 0;
122
- }
123
- .rsssl-grid .rsssl-wide-button {
124
- width: 220px;
125
- }
126
- .rsssl-grid .rsssl-progress .rsssl-task-list {
127
- height: 257px;
128
- overflow: hidden;
129
- }
130
- .rsssl-grid .rsssl-progress .rsssl-toggle-active {
131
- text-decoration: underline;
132
- }
133
- .rsssl-grid .rsssl-progress #rsssl-all-tasks,
134
- .rsssl-grid .rsssl-progress #rsssl-remaining-tasks {
135
- display: none;
136
- }
137
- .rsssl-grid .rsssl-progress .rsssl-tasks-container {
138
- border-bottom: 1px solid lightgrey;
139
- color: lightgrey;
140
- }
141
- .rsssl-grid .rsssl-progress .rsssl-tasks-container.active {
142
- text-decoration: none;
143
- border-bottom: 0;
144
- color: initial;
145
- }
146
- .rsssl-grid .rsssl-progress .rsssl-tasks-inactive {
147
- text-decoration: underline;
148
- color: lightgrey;
149
- }
150
- .rsssl-grid .rsssl-item {
151
- width: 800px;
152
- height: 485px;
153
- z-index: 1;
154
- }
155
- .rsssl-grid .rsssl-item.small {
156
- width: 400px;
157
- }
158
- .rsssl-grid .rsssl-item .rsssl-close-warning-x {
159
- color: #ccc;
160
- margin-right: 25px;
161
- margin-top: 15px;
162
- }
163
- .rsssl-grid .rsssl-item .item-container {
164
- background-color: #fff;
165
- position: relative;
166
- box-shadow: 0px 0px 5px 5px rgba(222, 222, 222, 0.2);
167
- width: 790px;
168
- height: 475px;
169
- }
170
- .rsssl-grid .rsssl-item .item-container .form-table {
171
- display: flex;
172
- }
173
- .rsssl-grid .rsssl-item .item-container .form-table tbody {
174
- display: flex;
175
- flex-direction: column;
176
- flex-wrap: wrap;
177
- max-height: 340px;
178
- width: 100% !important;
179
- }
180
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr {
181
- padding: 0 0 0 0 !important;
182
- display: flex;
183
- align-items: center;
184
- flex-direction: row;
185
- width: 50%;
186
- }
187
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr td {
188
- padding: 0;
189
- margin: 0;
190
- }
191
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr th {
192
- margin-left: 0;
193
- width: 90%;
194
- display: flex;
195
- align-items: center;
196
- font-size: 13px;
197
- font-weight: normal;
198
- }
199
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr th .dashicons-editor-help {
200
- font-size: 22px;
201
- }
202
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr th .rsssl-tooltip-right {
203
- padding-right: 10px;
204
- }
205
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr th,
206
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr td {
207
- padding: 6px 0 !important;
208
- font-size: 13px;
209
- }
210
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr th p,
211
- .rsssl-grid .rsssl-item .item-container .form-table tbody tr td p {
212
- font-size: 13px;
213
- }
214
- .rsssl-grid .rsssl-item .item-container h2 {
215
- display: none;
216
- }
217
- .rsssl-grid .rsssl-item .item-container .rsssl-save-settings-feedback {
218
- margin-right: 20px;
219
- color: #d7263d;
220
- }
221
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header {
222
- display: flex;
223
- align-items: center;
224
- justify-content: space-between;
225
- height: 60px;
226
- border-bottom: 1px solid #dedede;
227
- padding: 0 25px 0 25px;
228
- }
229
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-instructions a {
230
- color: #3c3c3c;
231
- }
232
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item {
233
- display: flex;
234
- color: #3c3c3c;
235
- }
236
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .all-task-count,
237
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .open-task-count {
238
- padding-left: 3px;
239
- padding-top: 3px;
240
- }
241
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .all-task-count {
242
- margin-right: 5px;
243
- }
244
- .rsssl-grid .rsssl-item .item-container .rsssl-table-td-main-content {
245
- padding-left: 15px;
246
- }
247
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content {
248
- height: 360px;
249
- margin: 10px 25px 10px 25px;
250
- border-bottom: 1px solid #dedede;
251
- /*
252
- Progress block
253
- */
254
- /*
255
- Tips and Tricks
256
- */
257
- /*
258
- Default bullet style
259
- */
260
- /*
261
- Support forum block
262
- */
263
- /*
264
- Other plugins
265
- */
266
- /*
267
- Progress labels
268
- */
269
- }
270
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block {
271
- padding-top: 10px;
272
- }
273
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-bar-container {
274
- margin: 0 0 25px 0;
275
- }
276
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress {
277
- overflow: hidden;
278
- height: 20px;
279
- border-radius: 5px;
280
- background-color: #f7f7f7;
281
- }
282
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress .bar {
283
- height: 100%;
284
- background-color: #61ce70;
285
- }
286
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress .bar.orange {
287
- background-color: #FBC43D;
288
- }
289
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text {
290
- display: flex;
291
- align-items: center;
292
- margin: 10px 0;
293
- padding-top: 10px;
294
- padding-bottom: 10px;
295
- }
296
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-percentage {
297
- font-size: 32px;
298
- font-weight: 700;
299
- }
300
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text {
301
- margin-left: 35px;
302
- font-size: 18px;
303
- font-weight: 600;
304
- }
305
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text a {
306
- margin-left: 3px;
307
- }
308
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table tr {
309
- position: relative;
310
- }
311
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table td {
312
- padding: 10px 10px 10px 0;
313
- }
314
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table td + td {
315
- padding-left: 15px;
316
- }
317
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks {
318
- color: #3c3c3c;
319
- padding-bottom: 15px;
320
- }
321
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content {
322
- display: flex;
323
- flex-direction: column;
324
- margin-right: 10px;
325
- height: 340px;
326
- }
327
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top {
328
- flex-grow: 1;
329
- }
330
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top .rsssl-tips-tricks-element {
331
- margin-top: 10px;
332
- margin-bottom: 15px;
333
- display: flex;
334
- flex-direction: row;
335
- justify-content: space-between;
336
- }
337
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top .rsssl-tips-tricks-content {
338
- padding-right: 20px;
339
- }
340
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .rsssl-tips-tricks-read-more a {
341
- text-decoration: none;
342
- white-space: nowrap;
343
- }
344
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-bullet {
345
- height: 13px;
346
- width: 13px;
347
- border-radius: 50%;
348
- margin-right: 10px;
349
- background-color: lightgrey;
350
- text-decoration: none;
351
- }
352
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container {
353
- display: flex;
354
- flex-wrap: wrap;
355
- flex-direction: row;
356
- }
357
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums {
358
- display: flex;
359
- width: 50%;
360
- }
361
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums a {
362
- text-decoration: none;
363
- color: #3c3c3c;
364
- display: flex;
365
- align-items: center;
366
- padding: 2px 0;
367
- }
368
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet {
369
- margin: 7px 7px 7px 0;
370
- background-color: lightgrey;
371
- float: left;
372
- }
373
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet:hover {
374
- background-color: #FBC43D;
375
- }
376
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content {
377
- float: left;
378
- color: #3c3c3c;
379
- }
380
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content:hover {
381
- text-decoration: underline;
382
- }
383
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-feedback {
384
- color: #d7263d;
385
- }
386
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell {
387
- display: flex !important;
388
- flex-direction: row;
389
- padding: 7px 0 7px 0;
390
- align-items: center;
391
- color: #3c3c3c;
392
- }
393
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-text a {
394
- text-decoration: none;
395
- color: #3c3c3c;
396
- }
397
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-text a:hover {
398
- color: #FBC43D;
399
- }
400
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .rsp-image {
401
- margin-right: 5px;
402
- }
403
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .burst-green {
404
- background-color: #297A31;
405
- }
406
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .cmplztc-black {
407
- background-color: #333;
408
- }
409
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .cmplz-blue {
410
- background-color: #27ADEA;
411
- }
412
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-status {
413
- margin-left: auto;
414
- }
415
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-status {
416
- display: block;
417
- min-width: 60px;
418
- text-align: center;
419
- border-radius: 15px;
420
- padding: 4px 8px 4px 8px;
421
- font-size: 0.8em;
422
- font-weight: 600;
423
- height: 17px;
424
- line-height: 17px;
425
- }
426
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-premium {
427
- background-color: #29b6f6;
428
- color: white;
429
- }
430
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-success {
431
- background-color: #61ce70;
432
- color: white;
433
- }
434
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-open {
435
- background-color: #FBC43D;
436
- }
437
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-warning {
438
- background-color: #d7263d;
439
- color: white;
440
- }
441
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer {
442
- display: flex;
443
- align-items: center;
444
- margin: 14px 25px 0 25px;
445
- height: 40px;
446
- bottom: 0;
447
- width: 95%;
448
- }
449
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer .rsssl-button-save {
450
- margin-right: 25px;
451
- }
452
- .rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer #rsssl-feedback {
453
- font-weight: 600;
454
- color: #61ce70;
455
- padding-left: 10px;
456
- }
457
- .rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl th,
458
- .rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl span {
459
- display: none;
460
- }
461
- .rsssl-grid .rsssl-item.half-height {
462
- height: 247.5px;
463
- }
464
- .rsssl-grid .rsssl-item.half-height .item-container {
465
- height: 475px / 2;
466
- }
467
- .rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content {
468
- height: 110px;
469
- }
470
- .rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content .form-table tbody tr,
471
- .rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content .form-table tbody th {
472
- width: 100%;
473
- max-width: 100%;
474
- }
475
- .rsssl-grid .rsssl-item.small .item-container {
476
- width: 390px;
477
- }
478
- .rsssl-grid .rsssl-item.small .item-container th {
479
- width: 90% !important;
480
- }
481
- .rsssl-grid .rsssl-item.small .item-container .form-table tbody tr {
482
- width: 100%;
483
- }
484
- .rsssl-grid .rsssl-item.no-border .item-container {
485
- border: none;
486
- }
487
- .rsssl-grid .rsssl-item.no-background .item-container {
488
- background-color: #f2f2f2;
489
- }
490
- .rsssl-grid #rsssl-progress-footer,
491
- .rsssl-grid #rsssl-premium-settings-footer {
492
- width: 100%;
493
- text-align: right;
494
- margin-right: 10px;
495
- }
496
- .rsssl-grid #rsssl-progress-footer .rsssl-footer-item form,
497
- .rsssl-grid #rsssl-premium-settings-footer .rsssl-footer-item form {
498
- float: left;
499
- }
500
- .rsssl-grid #rsssl-progress-footer .rsssl-footer-item + .rsssl-footer-item,
501
- .rsssl-grid #rsssl-premium-settings-footer .rsssl-footer-item + .rsssl-footer-item {
502
- margin-left: 20px;
503
- padding: 4px 0;
504
- }
505
- .rsssl-grid #rsssl-progress-footer .footer-left,
506
- .rsssl-grid #rsssl-premium-settings-footer .footer-left {
507
- float: left;
508
- }
509
- .rsssl-grid #rsssl-progress-footer .footer-left .upsell,
510
- .rsssl-grid #rsssl-premium-settings-footer .footer-left .upsell {
511
- min-width: 80px;
512
- text-align: center;
513
- }
514
- .rsssl-grid #rsssl-progress-footer .footer-right,
515
- .rsssl-grid #rsssl-premium-settings-footer .footer-right {
516
- float: right;
517
- }
518
- .rsssl-grid #rsssl-progress-footer .hidden,
519
- .rsssl-grid #rsssl-premium-settings-footer .hidden {
520
- display: none;
521
- }
522
- .rsssl-grid .rsssl-system-status-footer-info {
523
- margin-right: 20px;
524
- width: 100%;
525
- text-align: right;
526
- }
527
- .rsssl-grid .rsssl-system-status-footer-info .system-status-info {
528
- margin-left: 6px;
529
- }
530
- .rsssl-grid .dot {
531
- height: 10px;
532
- width: 10px;
533
- border-radius: 50%;
534
- display: inline-block;
535
- }
536
- .rsssl-grid .rsssl-dot-success {
537
- background-color: #61ce70;
538
- }
539
- .rsssl-grid .rsssl-dot-error {
540
- background-color: #d7263d;
541
- }
542
- .upsell-grid-container .rsssl-secondary-header-item img {
543
- height: 30px;
544
- padding-top: 5px;
545
- }
546
- .rsssl-grid {
547
- position: relative;
548
- }
549
- .rsssl-grid .rsssl-item {
550
- width: calc(100% - 20px);
551
- padding: 10px;
552
- height: 475px;
553
- min-height: 500px;
554
- z-index: 1;
555
- }
556
- @media only screen and (min-width: 400px) {
557
- .rsssl-grid .rsssl-item {
558
- width: calc(100% - 20px);
559
- }
560
- }
561
- @media only screen and (min-width: 600px) {
562
- .rsssl-grid .rsssl-item {
563
- width: calc(100% - 20px);
564
- }
565
- }
566
- @media only screen and (min-width: 768px) {
567
- .rsssl-grid .rsssl-item {
568
- width: calc(100% - 20px);
569
- }
570
- }
571
- @media only screen and (min-width: 992px) {
572
- .rsssl-grid .rsssl-item {
573
- width: calc(100% - 20px);
574
- }
575
- }
576
- @media only screen and (min-width: 1555px) {
577
- .rsssl-grid .rsssl-item {
578
- width: calc(50% - 20px);
579
- }
580
- }
581
- .rsssl-grid .rsssl-item.small {
582
- width: calc(100% - 20px);
583
- }
584
- @media only screen and (min-width: 400px) {
585
- .rsssl-grid .rsssl-item.small {
586
- width: calc(100% - 20px);
587
- }
588
- }
589
- @media only screen and (min-width: 600px) {
590
- .rsssl-grid .rsssl-item.small {
591
- width: calc(100% - 20px);
592
- }
593
- }
594
- @media only screen and (min-width: 768px) {
595
- .rsssl-grid .rsssl-item.small {
596
- width: calc(50% - 20px);
597
- }
598
- }
599
- @media only screen and (min-width: 992px) {
600
- .rsssl-grid .rsssl-item.small {
601
- width: calc(50% - 20px);
602
- }
603
- }
604
- @media only screen and (min-width: 1555px) {
605
- .rsssl-grid .rsssl-item.small {
606
- width: calc(25% - 20px);
607
- }
608
- }
609
- .rsssl-grid .rsssl-item.small .item-container {
610
- width: 100%;
611
- min-width: 200px;
612
- }
613
- .rsssl-grid .rsssl-item.half-height {
614
- min-height: 250px;
615
- }
616
- @media only screen and (min-width: 400px) {
617
- .rsssl-grid .rsssl-item.half-height {
618
- height: 475px / 2;
619
- min-height: 250px;
620
- }
621
- }
622
- @media only screen and (min-width: 600px) {
623
- .rsssl-grid .rsssl-item.half-height {
624
- min-height: 250px;
625
- height: 475px / 2;
626
- }
627
- }
628
- @media only screen and (min-width: 768px) {
629
- .rsssl-grid .rsssl-item.half-height {
630
- min-height: 250px;
631
- height: 475px / 2;
632
- }
633
- }
634
- @media only screen and (min-width: 992px) {
635
- .rsssl-grid .rsssl-item.half-height {
636
- min-height: 250px;
637
- height: 475px / 2;
638
- }
639
- }
640
- @media only screen and (min-width: 1555px) {
641
- .rsssl-grid .rsssl-item.half-height {
642
- min-height: 250px;
643
- height: 475px / 2;
644
- }
645
- }
646
- .rsssl-grid .rsssl-item.half-height .item-container {
647
- width: 100%;
648
- min-width: 200px;
649
- min-height: 250px;
650
- }
651
- .rsssl-grid .rsssl-item .settings.rsssl-item {
652
- width: 100%;
653
- padding: 0;
654
- }
655
- .rsssl-grid .rsssl-item.muuri-item-hidden {
656
- z-index: 0;
657
- }
658
- .rsssl-grid .rsssl-item.muuri-item-releasing {
659
- z-index: 2;
660
- }
661
- .rsssl-grid .rsssl-item.muuri-item-dragging {
662
- z-index: 3;
663
- }
664
- .rsssl-grid .rsssl-item .rsssl-grid-header {
665
- border-bottom: 1px solid lightgrey;
666
- padding: 0;
667
- height: 60px;
668
- }
669
- .rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-header-container {
670
- margin: 0 20px;
671
- height: 100%;
672
- }
673
- .rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-title {
674
- cursor: pointer;
675
- font-size: 20px;
676
- padding: 20px 0;
677
- font-weight: bold;
678
- float: left;
679
- }
680
- .rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-controls {
681
- float: right;
682
- margin-top: 20px;
683
- color: #cecece;
684
- }
685
- .rsssl-grid .rsssl-item .item-container {
686
- background-color: #fff;
687
- position: relative;
688
- box-shadow: 0 0 5px 5px rgba(222, 222, 222, 0.2);
689
- height: 100%;
690
- width: 100%;
691
- }
692
- .rsssl-grid .rsssl-item .item-container .item-content {
693
- clear: both;
694
- margin: 15px;
695
- height: calc(100% - 100px);
696
- padding-top: 0px;
697
- padding-bottom: 10px;
698
- }
699
- .rsssl-grid .rsssl-item.no-border .item-container {
700
- border: none;
701
- }
702
- .rsssl-grid .rsssl-item.no-background .item-container {
703
- background-color: #F1F1F1;
704
- }
705
- .rsssl-grid .rsssl-item.muuri-item-placeholder .item-container {
706
- border-style: dashed;
707
- padding: 0;
708
- }
709
- /*# sourceMappingURL=grid.css.map */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
grid/css/grid.css.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["grid.less"],"names":[],"mappings":"AAuBA,wCAAyC;AAAY,gCAAiC;EACpF,UAAA;;AADF,wCAAyC,WAEvC,mBACE;AAHiD,gCAAiC,WAEpF,mBACE;EACE,WAAA;;AAJN,wCAAyC,WAQvC;AARmD,gCAAiC,WAQpF;EACE,4BAAA;EACA,gBAAA;EACA,WAAA;EACA,mBAAA;EACA,gBAAA;EACA,mBAAA;EACA,SAAA;;AACA,wCAhBqC,WAQvC,SAQG;AAAD,gCAhBkF,WAQpF,SAQG;EACC,gCAAA;EACA,gBAAA;EACA,oBAAA;;AAKJ,mBAAqC;EAArC,wCAxBuC,WAyBrC;EADF,gCAxBoF,WAyBlF;IACE,aAAA;IACA,eAAA;IACA,uBAAA;;EAJJ,wCAxBuC,WAyBrC,iBAIE;EALJ,gCAxBoF,WAyBlF,iBAIE;IACE,iBAAA;;EANN,wCAxBuC,WAyBrC,iBAQE;EATJ,gCAxBoF,WAyBlF,iBAQE;IACE,aAAA;;;AAKN,mBAAqC;EAArC,wCAvCuC,WAwCrC,iBAEE;EAHJ,gCAvCoF,WAwClF,iBAEE;IACE,0BAAA;;EAJN,wCAvCuC,WAwCrC,iBAME;EAPJ,gCAvCoF,WAwClF,iBAME;IACE,oBAAA;;;AA/CR,wCAAyC,WAoDvC;AApDmD,gCAAiC,WAoDpF;EACE,gBAAA;EACA,sBAAA;EACA,aAAA;EACA,mBAAA;EACA,SAAA;;AAzDJ,wCAAyC,WA2DvC;AA3DmD,gCAAiC,WA2DpF;EACE,iBAAA;;AA5DJ,wCAAyC,WA2DvC,sBAEE;AA7DiD,gCAAiC,WA2DpF,sBAEE;EACE,YAAA;EACA,YAAA;;AA/DN,wCAAyC,WA2DvC,sBAEE,YAGE;AAhE+C,gCAAiC,WA2DpF,sBAEE,YAGE;EACE,YAAA;;AAjER,wCAAyC,WAqEvC;AArEmD,gCAAiC,WAqEpF;EACE,aAAA;EACA,OAAA;EACA,yBAAA;EACA,mBAAA;EACA,mBAAA;EACA,kBAAA;;AA3EJ,wCAAyC,WAqEvC,cAOE;AA5EiD,gCAAiC,WAqEpF,cAOE;EACE,0BAAA;;AA7EN,wCAAyC,WAqEvC,cAUE,eACE;AAhF+C,gCAAiC,WAqEpF,cAUE,eACE;EACE,iBAAA;;AAjFR,wCAAyC,WAqEvC,cAUE,eAIE;AAnF+C,gCAAiC,WAqEpF,cAUE,eAIE;EACE,qBAAA;;AApFR,wCAAyC,WAqEvC,cAUE,eAOE;AAtF+C,gCAAiC,WAqEpF,cAUE,eAOE;EACE,YAAA;EACA,uBAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,YAAA;EACA,mBAAA;EACA,gBAAA;;AAMR;EACE,OAAO,iBAAP;EACA,YAAA;EACA,kBAAA;EACA,aAAA;EACA,mBAAA;EACA,eAAA;;;;;;;;AANF,WAQE;EACI,yBAAA;EACA,YAAA;EACA,SAAA;;AAXN,WAcE;EACE,YAAA;;AAfJ,WAkBE,gBAEE;EACE,aAAA;EACA,gBAAA;;AAtBN,WAkBE,gBAOE;EACE,0BAAA;;AA1BN,WAkBE,gBAWE;AA7BJ,WAkBE,gBAWoB;EAChB,aAAA;;AA9BN,WAkBE,gBAeE;EACE,kCAAA;EACA,gBAAA;;AACA,WAlBJ,gBAeE,uBAGG;EACC,qBAAA;EACA,gBAAA;EACA,cAAA;;AAvCR,WAkBE,gBA0BE;EACE,0BAAA;EACA,gBAAA;;AA9CN,WAmDE;EACE,YAAA;EAWA,aAAA;EACA,UAAA;;AAXA,WAFF,YAEG;EACC,YAAA;;AAtDN,WAmDE,YAME;EACE,WAAA;EACA,kBAAA;EACA,gBAAA;;AA5DN,WAmDE,YAcE;EA+CE,sBAAA;EACA,kBAAA;EACA,oDAAA;EACA,YAAA;EACA,aAAA;;AApHN,WAmDE,YAcE,gBACI;EACE,aAAA;;AAnEV,WAmDE,YAcE,gBACI,YAEE;EACE,aAAA;EACA,sBAAA;EACA,eAAA;EACA,iBAAA;EACA,sBAAA;;AAzEZ,WAmDE,YAcE,gBACI,YAEE,MAME;EACE,2BAAA;EACA,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,UAAA;;AA/Ed,WAmDE,YAcE,gBACI,YAEE,MAME,GAOE;EACE,UAAA;EACA,SAAA;;AAnFhB,WAmDE,YAcE,gBACI,YAEE,MAME,GAWE;EAIE,cAAA;EACA,UAAA;EACA,aAAA;EACA,mBAAA;EACA,eAAA;EACA,mBAAA;;AA9FhB,WAmDE,YAcE,gBACI,YAEE,MAME,GAWE,GACE;EACE,eAAA;;AAvFlB,WAmDE,YAcE,gBACI,YAEE,MAME,GAWE,GAUE;EACE,mBAAA;;AAhGlB,WAmDE,YAcE,gBACI,YAEE,MAME,GAyBE;AAnGd,WAmDE,YAcE,gBACI,YAEE,MAME,GAyBM;EAEF,yBAAA;EACA,eAAA;;AAtGhB,WAmDE,YAcE,gBACI,YAEE,MAME,GAyBE,GAIE;AAvGhB,WAmDE,YAcE,gBACI,YAEE,MAME,GAyBM,GAIF;EAAG,eAAA;;AAvGnB,WAmDE,YAcE,gBA2CE;EACE,aAAA;;AA7GR,WAmDE,YAcE,gBAoDE;EACE,kBAAA;EACA,cAAA;;AAvHR,WAmDE,YAcE,gBAwDE;EACE,aAAA;EACA,mBAAA;EACA,8BAAA;EACA,YAAA;EACA,gCAAA;EACA,sBAAA;;AA/HR,WAmDE,YAcE,gBAwDE,wBAOE,oBAAoB;EAClB,cAAA;;AAjIV,WAmDE,YAcE,gBAwDE,wBAWE;EACE,aAAA;EACA,cAAA;;AAtIV,WAmDE,YAcE,gBAwDE,wBAWE,6BAGE;AAvIV,WAmDE,YAcE,gBAwDE,wBAWE,6BAGmB;EACf,iBAAA;EACA,gBAAA;;AAzIZ,WAmDE,YAcE,gBAwDE,wBAWE,6BAOE;EACE,iBAAA;;AA5IZ,WAmDE,YAcE,gBAgFE;EACE,kBAAA;;AAlJR,WAmDE,YAcE,gBAoFE;EACE,aAAA;EACA,2BAAA;EACA,gCAAA;;;;;;;;;;;;;;;;;;;;AAxJR,WAmDE,YAcE,gBAoFE,yBASE;EACE,iBAAA;;AA/JV,WAmDE,YAcE,gBAoFE,yBASE,sBAGE;EACE,kBAAA;;AAlKZ,WAmDE,YAcE,gBAoFE,yBASE,sBAOE;EACE,gBAAA;EACA,YAAA;EACA,kBAAA;EACA,yBAAA;;AAzKZ,WAmDE,YAcE,gBAoFE,yBASE,sBAOE,UAKE;EACE,YAAA;EACA,yBAAA;;AA5Kd,WAmDE,YAcE,gBAoFE,yBASE,sBAOE,UASE,KAAI;EACF,yBAAA;;AA/Kd,WAmDE,YAcE,gBAoFE,yBASE,sBAqBE;EACE,aAAA;EACA,mBAAA;EACA,cAAA;EACA,iBAAA;EACA,oBAAA;;AAxLZ,WAmDE,YAcE,gBAoFE,yBASE,sBAqBE,eAOE;EACE,eAAA;EACA,gBAAA;;AA5Ld,WAmDE,YAcE,gBAoFE,yBASE,sBAqBE,eAYE;EACE,iBAAA;EACA,eAAA;EACA,gBAAA;;AAlMd,WAmDE,YAcE,gBAoFE,yBASE,sBAqBE,eAYE,qBAIE;EACE,gBAAA;;AApMhB,WAmDE,YAcE,gBAoFE,yBASE,sBA2CE,sBACE;EACE,kBAAA;;AA3Md,WAmDE,YAcE,gBAoFE,yBASE,sBA2CE,sBAIE;EACE,yBAAA;;AA9Md,WAmDE,YAcE,gBAoFE,yBASE,sBA2CE,sBAOE,GAAG;EAAK,kBAAA;;AAhNpB,WAmDE,YAcE,gBAoFE,yBAkEE;EACI,cAAA;EACA,oBAAA;;AAzNZ,WAmDE,YAcE,gBAoFE,yBAkEE,mBAGI;EACE,aAAA;EACA,sBAAA;EACA,kBAAA;EACA,aAAA;;AA9Nd,WAmDE,YAcE,gBAoFE,yBAkEE,mBAGI,qBAKE;EACE,YAAA;;AAhOhB,WAmDE,YAcE,gBAoFE,yBAkEE,mBAGI,qBAKE,iBAGE;EACE,gBAAA;EACA,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,8BAAA;;AAvOlB,WAmDE,YAcE,gBAoFE,yBAkEE,mBAGI,qBAKE,iBAUE;EACE,mBAAA;;AA1OlB,WAmDE,YAcE,gBAoFE,yBAkEE,mBAyBE,6BAA6B;EAC3B,qBAAA;EACA,mBAAA;;AAlPZ,WAmDE,YAcE,gBAoFE,yBAqGE;EACE,YAAA;EACA,WAAA;EACA,kBAAA;EACA,kBAAA;EACA,2BAAA;EACA,qBAAA;;AAhQV,WAmDE,YAcE,gBAoFE,yBAkHE;EACE,aAAA;EACA,eAAA;EACA,mBAAA;;AA1QV,WAmDE,YAcE,gBAoFE,yBAkHE,gCAIE;EACE,aAAA;EACA,UAAA;;AA7QZ,WAmDE,YAcE,gBAoFE,yBAkHE,gCAIE,sBAGE;EACE,qBAAA;EACA,cAAA;EACA,aAAA;EACA,mBAAA;EACA,cAAA;;AAnRd,WAmDE,YAcE,gBAoFE,yBAkHE,gCAIE,sBAWE;EACE,qBAAA;EACA,2BAAA;EACA,WAAA;;AACA,WAvOZ,YAcE,gBAoFE,yBAkHE,gCAIE,sBAWE,cAIG;EACC,yBAAA;;AA3RhB,WAmDE,YAcE,gBAoFE,yBAkHE,gCAIE,sBAoBE;EACE,WAAA;EACA,cAAA;;AACA,WA/OZ,YAcE,gBAoFE,yBAkHE,gCAIE,sBAoBE,sBAGG;EACG,0BAAA;;AAnSlB,WAmDE,YAcE,gBAoFE,yBAoJE;EACE,cAAA;;AA1SV,WAmDE,YAcE,gBAoFE,yBA4JI;EACE,wBAAA;EACA,mBAAA;EACA,oBAAA;EACA,mBAAA;EACA,cAAA;;AAtTZ,WAmDE,YAcE,gBAoFE,yBA4JI,cAOE,aACE;EACE,qBAAA;EACA,cAAA;;AACA,WAzQd,YAcE,gBAoFE,yBA4JI,cAOE,aACE,EAGG;EACC,cAAA;;AA7TlB,WAmDE,YAcE,gBAoFE,yBA4JI,cAiBE;EACE,iBAAA;;AAnUd,WAmDE,YAcE,gBAoFE,yBA4JI,cAqBE;EACE,yBAAA;;AAvUd,WAmDE,YAcE,gBAoFE,yBA4JI,cAwBE;EACE,sBAAA;;AA1Ud,WAmDE,YAcE,gBAoFE,yBA4JI,cA4BE;EACE,yBAAA;;AA9Ud,WAmDE,YAcE,gBAoFE,yBA4JI,cAkCE;EACE,iBAAA;;AApVd,WAmDE,YAcE,gBAoFE,yBAsME;EACE,cAAA;EACA,eAAA;EACA,kBAAA;EACA,mBAAA;EACA,wBAAA;EACA,gBAAA;EACA,gBAAA;EACA,YAAA;EACA,iBAAA;;AApWV,WAmDE,YAcE,gBAoFE,yBAkNE;EACE,yBAAA;EACA,YAAA;;AAzWV,WAmDE,YAcE,gBAoFE,yBAsNE;EACE,yBAAA;EACA,YAAA;;AA7WV,WAmDE,YAcE,gBAoFE,yBA2NE;EACE,yBAAA;;AAjXV,WAmDE,YAcE,gBAoFE,yBA+NE;EACE,yBAAA;EACA,YAAA;;AAtXV,WAmDE,YAcE,gBAwTE;EACE,aAAA;EACA,mBAAA;EACA,wBAAA;EACA,YAAA;EACA,SAAA;EACA,UAAA;;AA/XR,WAmDE,YAcE,gBAwTE,wBAOE;EACE,kBAAA;;AAjYV,WAmDE,YAcE,gBAwTE,wBAUE;EACE,gBAAA;EACA,cAAA;EACA,kBAAA;;AAtYV,WAmDE,YAcE,gBAwUE,2BACE;AA1YR,WAmDE,YAcE,gBAwUE,2BACM;EACF,aAAA;;AAIN,WA5VF,YA4VG;EACC,eAAA;;AADF,WA5VF,YA4VG,YAGC;EACE,iBAAA;;AAJJ,WA5VF,YA4VG,YAGC,gBAEE;EACE,aAAA;;AANN,WA5VF,YA4VG,YAGC,gBAEE,yBAEE,YAAY,MACV;AARR,WA5VF,YA4VG,YAGC,gBAEE,yBAEE,YAAY,MACN;EACF,WAAA;EACA,eAAA;;AAOV,WA7WF,YA6WG,MACC;EACE,YAAA;;AAFJ,WA7WF,YA6WG,MACC,gBAEE;EACE,qBAAA;;AAJN,WA7WF,YA6WG,MACC,gBAKE,YAAY,MAAM;EAChB,WAAA;;AAIN,WAxXF,YAwXG,UACC;EACE,YAAA;;AAGJ,WA7XF,YA6XG,cACC;EACE,yBAAA;;AAlbR,WA0bE;AA1bF,WA0b0B;EACtB,WAAA;EACA,iBAAA;EACA,kBAAA;;AA7bJ,WA0bE,uBAIE,mBACE;AA/bN,WA0b0B,+BAItB,mBACE;EACE,WAAA;;AAhcR,WA0bE,uBASE,mBAAmB;AAncvB,WA0b0B,+BAStB,mBAAmB;EACjB,iBAAA;EACA,cAAA;;AArcN,WA0bE,uBAcE;AAxcJ,WA0b0B,+BActB;EACE,WAAA;;AAzcN,WA0bE,uBAcE,aAEE;AA1cN,WA0b0B,+BActB,aAEE;EACE,eAAA;EACA,kBAAA;;AA5cR,WA0bE,uBAsBE;AAhdJ,WA0b0B,+BAsBtB;EACE,YAAA;;AAjdN,WA0bE,uBAyBE;AAndJ,WA0b0B,+BAyBtB;EACE,aAAA;;AApdN,WAwdE;EACE,kBAAA;EACA,WAAA;EACA,iBAAA;;AA3dJ,WAwdE,iCAIE;EACE,gBAAA;;AA7dN,WAoeE;EACE,YAAA;EACA,WAAA;EACA,kBAAA;EACA,qBAAA;;AAxeJ,WA0eE;EACE,yBAAA;;AA3eJ,WA6eE;EACE,yBAAA;;AAIJ,sBACE,6BACE;EACE,YAAA;EACA,gBAAA;;AAMN;EACI,kBAAA;;AADJ,WAEI;EACI,OAAO,iBAAP;EACA,aAAA;EACA,aAAA;EACA,iBAAA;EACA,UAAA;;AACA,wBAA8C;EAA9C,WANJ;IAOQ,OAAO,iBAAP;;;AAGJ,wBAA6C;EAA7C,WAVJ;IAWQ,OAAO,iBAAP;;;AAGJ,wBAA6C;EAA7C,WAdJ;IAeQ,OAAO,iBAAP;;;AAGJ,wBAA6C;EAA7C,WAlBJ;IAmBQ,OAAO,iBAAP;;;AAGJ,wBAA8C;EAA9C,WAtBJ;IAuBQ,OAAO,gBAAP;;;AAIJ,WA3BJ,YA2BK;EACG,OAAO,iBAAP;;AAEA,wBAA8C;EAA9C,WA9BR,YA2BK;IAIO,OAAO,iBAAP;;;AAGJ,wBAA6C;EAA7C,WAlCR,YA2BK;IAQO,OAAO,iBAAP;;;AAGJ,wBAA6C;EAA7C,WAtCR,YA2BK;IAYO,OAAO,gBAAP;;;AAGJ,wBAA6C;EAA7C,WA1CR,YA2BK;IAgBO,OAAO,gBAAP;;;AAGJ,wBAA8C;EAA9C,WA9CR,YA2BK;IAoBO,OAAO,gBAAP;;;AApBR,WA3BJ,YA2BK,MAsBG;EACI,WAAA;EACA,gBAAA;;AAKR,WAxDJ,YAwDK;EACO,iBAAA;;AACC,wBAA8C;EAA9C,WA1Db,YAwDK;IAGW,iBAAA;IACA,iBAAA;;;AAGJ,wBAA6C;EAA7C,WA/DZ,YAwDK;IAQW,iBAAA;IACA,iBAAA;;;AAGJ,wBAA6C;EAA7C,WApEZ,YAwDK;IAaW,iBAAA;IACA,iBAAA;;;AAGJ,wBAA6C;EAA7C,WAzEZ,YAwDK;IAkBW,iBAAA;IACA,iBAAA;;;AAGJ,wBAA8C;EAA9C,WA9EZ,YAwDK;IAuBW,iBAAA;IACA,iBAAA;;;AAxBZ,WAxDJ,YAwDK,YA2BG;EACI,WAAA;EACA,gBAAA;EACA,iBAAA;;AAxFhB,WAEI,YAyFI,UAAS;EACP,WAAA;EACA,UAAA;;AAGF,WA9FJ,YA8FK;EACG,UAAA;;AAEJ,WAjGJ,YAiGK;EACG,UAAA;;AAEJ,WApGJ,YAoGK;EACG,UAAA;;AAvGZ,WAEI,YAuGI;EACA,kCAAA;EACI,UAAA;EACA,YAAA;;AA5GZ,WAEI,YAuGI,mBAID;EACS,cAAA;EACA,YAAA;;AA/GhB,WAEI,YAuGI,mBAUI;EACI,eAAA;EACA,eAAA;EACA,eAAA;EACA,iBAAA;EACA,WAAA;;AAxHhB,WAEI,YAuGI,mBAiBI;EACI,YAAA;EACA,gBAAA;EACN,cAAA;;AA7HV,WAEI,YA8HI;EACI,sBAAA;EACA,kBAAA;EACA,gDAAA;EACA,YAAA;EACA,WAAA;;AArIZ,WAEI,YA8HI,gBAOI;EACI,WAAA;EACA,YAAA;EACA,QAAQ,kBAAR;EACA,gBAAA;EACA,oBAAA;;AAKR,WA/IJ,YA+IK,UACG;EACI,YAAA;;AAGR,WApJJ,YAoJK,cACG;EACI,yBAAA;;AAIR,WA1JJ,YA0JK,uBAAwB;EACrB,oBAAA;EACA,UAAA","file":"grid.css"}
 
grid/css/grid.less DELETED
@@ -1,793 +0,0 @@
1
- // RTL generator: https://cssjanus.github.io/
2
- @gridblock_height: 475px;
3
- @gridblock_width: 800px;
4
- @gridblock_width_small:400px;
5
- @grid_margin: 10px;
6
- @grey_light:#cecece;
7
- @box_shadow_color: rgba(222, 222, 222, 0.2);
8
- @border_color: #dedede;
9
- @color-success: #61ce70;
10
- @color_warning: #d7263d;
11
- @color_open: #FBC43D;
12
- @light-text-color: #3c3c3c;
13
- @light-grey: lightgrey;
14
- @button-border-color: #6477AA;
15
-
16
- // break points
17
- @break-xs: 400px;
18
- @break-s: 600px;
19
- @break-m: 768px;
20
- @break-l: 992px;
21
- @break-xl: 1555px;
22
-
23
- // Override default WP settings style
24
- .settings_page_rlrsssl_really_simple_ssl #wpcontent, .settings_page_really-simple-ssl #wpcontent{
25
- padding: 0;
26
- .rsssl-footer-item {
27
- form {
28
- float:left;
29
- }
30
- }
31
-
32
- .nav-tab {
33
- padding: 16px 20px 17px 20px;
34
- margin-bottom:0;
35
- color: #444;
36
- font-weight: normal;
37
- font-size: 1.2em;
38
- background: inherit;
39
- border: 0;
40
- &.nav-tab-active {
41
- border-bottom: 2px solid @color_open;
42
- background: #fff;
43
- padding-bottom:15px;
44
- }
45
- }
46
-
47
- // Responsive menu
48
- @media screen and (max-width: 800px) {
49
- .nav-tab-wrapper {
50
- display: flex;
51
- flex-wrap: wrap;
52
- justify-content: center;
53
- .nav-tab {
54
- margin-left: 25px;
55
- }
56
-
57
- .documentation {
58
- display: none;
59
- }
60
- }
61
- }
62
-
63
- @media screen and (max-width: 480px) {
64
- .nav-tab-wrapper {
65
-
66
- .nav-tab {
67
- padding: 22px 3px 10px 3px;
68
- }
69
-
70
- .nav-tab-active {
71
- padding-bottom: 10px;
72
- }
73
- }
74
- }
75
-
76
- .nav-tab-wrapper {
77
- min-height: 60px;
78
- background-color: #fff;
79
- display: flex;
80
- align-items: center;
81
- border: 0;
82
- }
83
- .rsssl-logo-container {
84
- margin-left: 25px;
85
- #rsssl-logo {
86
- height: 40px;
87
- width: 200px;
88
- img {
89
- width:200px;
90
- }
91
- }
92
- }
93
- .header-links {
94
- display: flex;
95
- flex: 1;
96
- justify-content: flex-end;
97
- flex-direction: row;
98
- align-items: center;
99
- margin-right: 20px;
100
- .documentation {
101
- text-decoration: underline;
102
- }
103
- .header-upsell {
104
- .documentation {
105
- margin-left:25px;
106
- }
107
- a {
108
- text-decoration: none;
109
- }
110
- .header-upsell-pro {
111
- color: black;
112
- border: 3px solid black;
113
- margin: 10px;
114
- width: 80px;
115
- text-align: center;
116
- padding: 5px;
117
- border-radius: 20px;
118
- font-weight: 600;
119
- }
120
- }
121
- }
122
- }
123
-
124
- .rsssl-grid {
125
- width: calc(100% - 20px);
126
- margin: @grid_margin;
127
- position: relative;
128
- display: flex;
129
- flex-direction: row;
130
- flex-wrap: wrap;
131
-
132
- .button-rsssl-tertiary {
133
- background-color: #D7263D;
134
- color: white;
135
- border:0;
136
- }
137
-
138
- .rsssl-wide-button {
139
- width: 220px;
140
- }
141
-
142
- .rsssl-progress {
143
-
144
- .rsssl-task-list {
145
- height: 257px;
146
- overflow:hidden;
147
- }
148
-
149
- .rsssl-toggle-active {
150
- text-decoration: underline;
151
- }
152
-
153
- #rsssl-all-tasks, #rsssl-remaining-tasks {
154
- display: none;
155
-
156
- }
157
- .rsssl-tasks-container {
158
- border-bottom:1px solid lightgrey;
159
- color: lightgrey;
160
- &.active{
161
- text-decoration: none;
162
- border-bottom:0;
163
- color:initial;
164
-
165
- }
166
- }
167
-
168
- .rsssl-tasks-inactive {
169
- text-decoration: underline;
170
- color:@light-grey;
171
- }
172
-
173
- }
174
-
175
- .rsssl-item {
176
- width: @gridblock_width ;
177
- &.small {
178
- width: @gridblock_width_small;
179
- }
180
-
181
- .rsssl-close-warning-x {
182
- color: #ccc;
183
- margin-right: 25px;
184
- margin-top: 15px;
185
- }
186
-
187
- height: @gridblock_height + @grid_margin;
188
- z-index: 1;
189
- .item-container {
190
- .form-table {
191
- display: flex;
192
- tbody {
193
- display: flex;
194
- flex-direction: column;
195
- flex-wrap: wrap;
196
- max-height: 340px;
197
- width: 100% !important;
198
- tr {
199
- padding: 0 0 0 0 !important;
200
- display: flex;
201
- align-items: center;
202
- flex-direction: row;
203
- width: 50%;
204
-
205
- td {
206
- padding: 0;
207
- margin: 0;
208
- }
209
- th {
210
- .dashicons-editor-help {
211
- font-size: 22px;
212
- }
213
- margin-left: 0;
214
- width: 90%;
215
- display: flex;
216
- align-items: center;
217
- font-size: 13px;
218
- font-weight: normal;
219
- .rsssl-tooltip-right {
220
- padding-right: 10px;
221
- }
222
- }
223
- th, td {
224
- // Important to override default WP style
225
- padding: 6px 0 !important;
226
- font-size:13px;
227
- p {font-size:13px}
228
- }
229
- }
230
- }
231
- }
232
- h2 {
233
- display: none;
234
- }
235
-
236
- background-color: #fff;
237
- position: relative;
238
- box-shadow: 0px 0px 5px 5px @box_shadow_color;
239
- width: @gridblock_width - @grid_margin;
240
- height: @gridblock_height;
241
- .rsssl-save-settings-feedback {
242
- margin-right:20px;
243
- color: @color_warning;
244
- }
245
- .rsssl-grid-item-header {
246
- display: flex;
247
- align-items: center;
248
- justify-content: space-between;
249
- height: 60px;
250
- border-bottom: 1px solid @border_color;
251
- padding: 0 25px 0 25px;
252
- .rsssl-instructions a {
253
- color: @light-text-color;
254
- }
255
-
256
- .rsssl-secondary-header-item {
257
- display: flex;
258
- color: @light-text-color;
259
- .all-task-count, .open-task-count {
260
- padding-left: 3px;
261
- padding-top: 3px;
262
- }
263
- .all-task-count {
264
- margin-right: 5px;
265
- }
266
-
267
- }
268
- }
269
- .rsssl-table-td-main-content {
270
- padding-left: 15px;
271
- }
272
-
273
- .rsssl-grid-item-content {
274
- height: 360px;
275
- margin: 10px 25px 10px 25px;
276
- border-bottom: 1px solid @border_color;
277
-
278
- /*
279
- Progress block
280
- */
281
-
282
- .rsssl-progress-block {
283
- padding-top: 10px;
284
-
285
- .progress-bar-container {
286
- margin: 0 0 25px 0;
287
- }
288
-
289
- .progress {
290
- overflow: hidden;
291
- height: 20px;
292
- border-radius: 5px;
293
- background-color: #f7f7f7;
294
- .bar {
295
- height: 100%;
296
- background-color: @color-success;
297
- }
298
- .bar.orange {
299
- background-color: @color_open;
300
- }
301
- }
302
-
303
- .progress-text {
304
- display: flex;
305
- align-items: center;
306
- margin: 10px 0;
307
- padding-top: 10px;
308
- padding-bottom: 10px;
309
-
310
- .rsssl-progress-percentage {
311
- font-size: 32px;
312
- font-weight: 700;
313
- }
314
-
315
- .rsssl-progress-text {
316
- margin-left: 35px;
317
- font-size:18px;
318
- font-weight:600;
319
- a {
320
- margin-left: 3px;
321
- }
322
- }
323
- }
324
-
325
- .rsssl-progress-table {
326
- tr {
327
- position:relative;
328
- }
329
- td {
330
- padding: 10px 10px 10px 0;
331
- }
332
- td +td {padding-left:15px;}
333
- }
334
- }
335
-
336
- /*
337
- Tips and Tricks
338
- */
339
- .rsssl-tips-tricks {
340
- color: @light-text-color;
341
- padding-bottom: 15px;
342
- .tips-tricks-content{
343
- display: flex;
344
- flex-direction: column;
345
- margin-right:10px;
346
- height: 340px;
347
- .tips-tricks-top {
348
- flex-grow:1;
349
-
350
- .rsssl-tips-tricks-element {
351
- margin-top: 10px;
352
- margin-bottom: 15px;
353
- display: flex;
354
- flex-direction: row;
355
- justify-content: space-between;
356
- }
357
- .rsssl-tips-tricks-content {
358
- padding-right:20px;
359
- }
360
- }
361
- }
362
-
363
-
364
- .rsssl-tips-tricks-read-more a {
365
- text-decoration: none;
366
- white-space: nowrap;
367
- }
368
- }
369
- // End tips and tricks
370
-
371
- /*
372
- Default bullet style
373
- */
374
- .rsssl-bullet {
375
- height: 13px;
376
- width: 13px;
377
- border-radius: 50%;
378
- margin-right: 10px;
379
- background-color: lightgrey;
380
- text-decoration: none;
381
- }
382
-
383
- /*
384
- Support forum block
385
- */
386
-
387
- #rsssl-support-forums-container {
388
- display: flex;
389
- flex-wrap: wrap;
390
- flex-direction: row;
391
- .rsssl-support-forums {
392
- display: flex;
393
- width: 50%;
394
- a {
395
- text-decoration: none;
396
- color: @light-text-color;
397
- display: flex;
398
- align-items: center;
399
- padding:2px 0;
400
- }
401
-
402
- .rsssl-bullet {
403
- margin: 7px 7px 7px 0;
404
- background-color: @light-grey;
405
- float: left;
406
- &:hover {
407
- background-color: @color_open;
408
- }
409
- }
410
-
411
- .rsssl-forums-content {
412
- float: left;
413
- color: @light-text-color;
414
- &:hover {
415
- text-decoration: underline;
416
- }
417
- }
418
- }
419
- }
420
-
421
- #rsssl-feedback {
422
- color: @color_warning;
423
- }
424
-
425
- /*
426
- Other plugins
427
- */
428
-
429
- .rsssl-upsell {
430
- display: flex !important; //we need important here, because the grid switch overrides it on element level
431
- flex-direction: row;
432
- padding: 7px 0 7px 0;
433
- align-items: center;
434
- color: @light-text-color;
435
-
436
- .plugin-text {
437
- a {
438
- text-decoration: none;
439
- color: @light-text-color;
440
- &:hover {
441
- color: @color_open;
442
- }
443
- }
444
- }
445
-
446
- .rsp-image {
447
- margin-right: 5px;
448
- }
449
-
450
- .burst-green {
451
- background-color: #297A31;
452
- }
453
- .cmplztc-black {
454
- background-color:#333;
455
- }
456
-
457
- .cmplz-blue {
458
- background-color: #27ADEA;
459
- }
460
-
461
-
462
-
463
- .plugin-status {
464
- margin-left: auto;
465
- }
466
- }
467
-
468
- /*
469
- Progress labels
470
- */
471
- .rsssl-progress-status {
472
- display: block;
473
- min-width: 60px;
474
- text-align: center;
475
- border-radius: 15px;
476
- padding: 4px 8px 4px 8px;
477
- font-size: 0.8em;
478
- font-weight: 600;
479
- height: 17px;
480
- line-height:17px;
481
- }
482
-
483
- .rsssl-premium {
484
- background-color: #29b6f6;
485
- color: white;
486
- }
487
- .rsssl-success {
488
- background-color: @color-success;
489
- color: white;
490
- }
491
-
492
- .rsssl-open {
493
- background-color: @color_open;
494
- }
495
-
496
- .rsssl-warning {
497
- background-color: @color_warning;
498
- color: white;
499
- }
500
- }
501
- .rsssl-grid-item-footer {
502
- display: flex;
503
- align-items: center;
504
- margin: 14px 25px 0 25px;
505
- height: 40px;
506
- bottom: 0;
507
- width: 95%;
508
- .rsssl-button-save {
509
- margin-right:25px;
510
- }
511
- #rsssl-feedback {
512
- font-weight: 600;
513
- color: @color-success;
514
- padding-left: 10px;
515
- }
516
- }
517
- .rsssl-deactivate-keep-ssl {
518
- th, span {
519
- display: none;
520
- }
521
- }
522
- }
523
- &.half-height {
524
- height: (@gridblock_height / 2) + @grid_margin;
525
-
526
- .item-container {
527
- height: @gridblock_height / 2;
528
- .rsssl-grid-item-content {
529
- height: 110px;
530
- .form-table tbody {
531
- tr, th {
532
- width:100%;
533
- max-width:100%;
534
- }
535
- }
536
- }
537
- }
538
- }
539
-
540
- &.small {
541
- .item-container {
542
- width: @gridblock_width_small - @grid_margin;
543
- th {
544
- width: 90% !important;
545
- }
546
- .form-table tbody tr {
547
- width: 100%;
548
- }
549
- }
550
- }
551
- &.no-border {
552
- .item-container {
553
- border: none;
554
- }
555
- }
556
- &.no-background {
557
- .item-container {
558
- background-color: #f2f2f2;
559
- }
560
- }
561
- }
562
- /*
563
- Footers
564
- */
565
-
566
- #rsssl-progress-footer, #rsssl-premium-settings-footer {
567
- width: 100%;
568
- text-align: right;
569
- margin-right: @grid_margin;
570
- .rsssl-footer-item {
571
- form {
572
- float:left;
573
- }
574
- }
575
- .rsssl-footer-item +.rsssl-footer-item {
576
- margin-left:20px;
577
- padding:4px 0;
578
- }
579
-
580
- .footer-left {
581
- float:left;
582
- .upsell {
583
- min-width: 80px;
584
- text-align: center;
585
- }
586
- }
587
-
588
- .footer-right {
589
- float:right;
590
- }
591
- .hidden {
592
- display: none;
593
- }
594
- }
595
-
596
- .rsssl-system-status-footer-info {
597
- margin-right: 20px;
598
- width: 100%;
599
- text-align: right;
600
- .system-status-info {
601
- margin-left: 6px;
602
- }
603
- }
604
- /*
605
- Dots
606
- */
607
-
608
- .dot {
609
- height: 10px;
610
- width: 10px;
611
- border-radius: 50%;
612
- display: inline-block;
613
- }
614
- .rsssl-dot-success {
615
- background-color: #61ce70;
616
- }
617
- .rsssl-dot-error {
618
- background-color: #d7263d;
619
- }
620
- }
621
-
622
- .upsell-grid-container {
623
- .rsssl-secondary-header-item {
624
- img {
625
- height: 30px;
626
- padding-top: 5px;
627
- }
628
- }
629
- }
630
-
631
- // Code below should be integrated in to the code above.
632
- .rsssl-grid {
633
- position: relative;
634
- .rsssl-item {
635
- width: calc(100% - 20px);
636
- padding: 10px;
637
- height: @gridblock_height;
638
- min-height: 500px;
639
- z-index: 1;
640
- @media only screen and (min-width: @break-xs) {
641
- width: calc(100% - 20px);
642
- }
643
-
644
- @media only screen and (min-width: @break-s) {
645
- width: calc(100% - 20px);
646
- }
647
-
648
- @media only screen and (min-width: @break-m) {
649
- width: calc(100% - 20px);
650
- }
651
-
652
- @media only screen and (min-width: @break-l) {
653
- width: calc(100% - 20px);
654
- }
655
-
656
- @media only screen and (min-width: @break-xl) {
657
- width: calc(50% - 20px);
658
- }
659
-
660
-
661
- &.small {
662
- width: calc(100% - 20px);
663
-
664
- @media only screen and (min-width: @break-xs) {
665
- width: calc(100% - 20px);
666
- }
667
-
668
- @media only screen and (min-width: @break-s) {
669
- width: calc(100% - 20px);
670
- }
671
-
672
- @media only screen and (min-width: @break-m) {
673
- width: calc(50% - 20px);
674
- }
675
-
676
- @media only screen and (min-width: @break-l) {
677
- width: calc(50% - 20px);
678
- }
679
-
680
- @media only screen and (min-width: @break-xl) {
681
- width: calc(25% - 20px);
682
- }
683
- .item-container{
684
- width: 100%;
685
- min-width: 200px;
686
- }
687
-
688
- }
689
-
690
- &.half-height {
691
- min-height: 250px;
692
- @media only screen and (min-width: @break-xs) {
693
- height: @gridblock_height / 2;
694
- min-height: 250px;
695
- }
696
-
697
- @media only screen and (min-width: @break-s) {
698
- min-height: 250px;
699
- height: @gridblock_height / 2;
700
- }
701
-
702
- @media only screen and (min-width: @break-m) {
703
- min-height: 250px;
704
- height: @gridblock_height / 2;
705
- }
706
-
707
- @media only screen and (min-width: @break-l) {
708
- min-height: 250px;
709
- height: @gridblock_height / 2;
710
- }
711
-
712
- @media only screen and (min-width: @break-xl) {
713
- min-height: 250px;
714
- height: @gridblock_height / 2;
715
- }
716
-
717
- .item-container {
718
- width: 100%;
719
- min-width: 200px;
720
- min-height: 250px;
721
- }
722
- }
723
- .settings.rsssl-item{
724
- width: 100%;
725
- padding: 0;
726
- }
727
-
728
- &.muuri-item-hidden {
729
- z-index: 0;
730
- }
731
- &.muuri-item-releasing {
732
- z-index: 2;
733
- }
734
- &.muuri-item-dragging {
735
- z-index: 3;
736
- }
737
- .rsssl-grid-header {
738
- border-bottom: 1px solid @light-grey;
739
- padding: 0;
740
- height: 60px;
741
- .rsssl-grid-header-container {
742
- margin: 0 20px;
743
- height: 100%;
744
- }
745
-
746
-
747
- .rsssl-grid-title{
748
- cursor: pointer;
749
- font-size: 20px;
750
- padding: 20px 0;
751
- font-weight: bold;
752
- float: left;
753
- }
754
- .rsssl-grid-controls {
755
- float: right;
756
- margin-top: 20px;
757
- color: #cecece;
758
- }
759
- }
760
- .item-container {
761
- background-color: #fff;
762
- position: relative;
763
- box-shadow: 0 0 5px 5px rgba(222,222,222,0.2);
764
- height: 100%;
765
- width: 100%;
766
-
767
- .item-content {
768
- clear:both;
769
- margin:15px;
770
- height: calc(100% - 100px);
771
- padding-top: 0px;
772
- padding-bottom:10px;
773
- }
774
-
775
- }
776
-
777
- &.no-border {
778
- .item-container {
779
- border: none;
780
- }
781
- }
782
- &.no-background {
783
- .item-container {
784
- background-color: #F1F1F1;
785
- }
786
- }
787
-
788
- &.muuri-item-placeholder .item-container {
789
- border-style: dashed;
790
- padding:0;
791
- }
792
- }
793
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
grid/css/grid.min.css DELETED
@@ -1 +0,0 @@
1
- .settings_page_really-simple-ssl #wpcontent,.settings_page_rlrsssl_really_simple_ssl #wpcontent{padding:0}.rsssl-grid #rsssl-premium-settings-footer .rsssl-footer-item form,.rsssl-grid #rsssl-progress-footer .rsssl-footer-item form,.settings_page_really-simple-ssl #wpcontent .rsssl-footer-item form,.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-footer-item form{float:left}.settings_page_really-simple-ssl #wpcontent .nav-tab,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab{padding:16px 20px 17px;margin-bottom:0;color:#444;font-weight:400;font-size:1.2em;background:inherit;border:0}.settings_page_really-simple-ssl #wpcontent .nav-tab.nav-tab-active,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab.nav-tab-active{border-bottom:2px solid #fbc43d;background:#fff;padding-bottom:15px}@media screen and (max-width:800px){.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper{display:flex;flex-wrap:wrap;justify-content:center}.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .nav-tab,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .nav-tab{margin-left:25px}.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .documentation,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .documentation{display:none}}@media screen and (max-width:480px){.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .nav-tab,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .nav-tab{padding:22px 3px 10px}.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper .nav-tab-active,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper .nav-tab-active{padding-bottom:10px}}.settings_page_really-simple-ssl #wpcontent .nav-tab-wrapper,.settings_page_rlrsssl_really_simple_ssl #wpcontent .nav-tab-wrapper{min-height:60px;background-color:#fff;display:flex;align-items:center;border:0}.settings_page_really-simple-ssl #wpcontent .header-links .header-upsell .documentation,.settings_page_really-simple-ssl #wpcontent .rsssl-logo-container,.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell .documentation,.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container{margin-left:25px}.settings_page_really-simple-ssl #wpcontent .rsssl-logo-container #rsssl-logo,.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container #rsssl-logo{height:40px;width:200px}.settings_page_really-simple-ssl #wpcontent .rsssl-logo-container #rsssl-logo img,.settings_page_rlrsssl_really_simple_ssl #wpcontent .rsssl-logo-container #rsssl-logo img{width:200px}.settings_page_really-simple-ssl #wpcontent .header-links,.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links{display:flex;flex:1;justify-content:flex-end;flex-direction:row;align-items:center;margin-right:20px}.settings_page_really-simple-ssl #wpcontent .header-links .documentation,.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .documentation{text-decoration:underline}.settings_page_really-simple-ssl #wpcontent .header-links .header-upsell a,.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell a{text-decoration:none}.settings_page_really-simple-ssl #wpcontent .header-links .header-upsell .header-upsell-pro,.settings_page_rlrsssl_really_simple_ssl #wpcontent .header-links .header-upsell .header-upsell-pro{color:#000;border:3px solid #000;margin:10px;width:80px;text-align:center;padding:5px;border-radius:20px;font-weight:600}.rsssl-grid{width:calc(100% - 20px);margin:10px;display:flex;flex-direction:row;flex-wrap:wrap}.rsssl-grid .button-rsssl-tertiary{background-color:#d7263d;color:#fff;border:0}.rsssl-grid .rsssl-wide-button{width:220px}.rsssl-grid .rsssl-progress .rsssl-task-list{height:257px;overflow:hidden}.rsssl-grid .rsssl-progress .rsssl-toggle-active{text-decoration:underline}.rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl span,.rsssl-grid .rsssl-item .item-container .rsssl-deactivate-keep-ssl th,.rsssl-grid .rsssl-item .item-container h2,.rsssl-grid .rsssl-progress #rsssl-all-tasks,.rsssl-grid .rsssl-progress #rsssl-remaining-tasks{display:none}.rsssl-grid .rsssl-progress .rsssl-tasks-container{border-bottom:1px solid #d3d3d3;color:#d3d3d3}.rsssl-grid .rsssl-progress .rsssl-tasks-container.active{text-decoration:none;border-bottom:0;color:initial}.rsssl-grid .rsssl-progress .rsssl-tasks-inactive{text-decoration:underline;color:#d3d3d3}.rsssl-grid .rsssl-item{width:800px}.rsssl-grid .rsssl-item.small{width:400px}.rsssl-grid .rsssl-item .rsssl-close-warning-x{color:#ccc;margin-right:25px;margin-top:15px}.rsssl-grid .rsssl-item .item-container .form-table{display:flex}.rsssl-grid .rsssl-item .item-container .form-table tbody{display:flex;flex-direction:column;flex-wrap:wrap;max-height:340px;width:100%!important}.rsssl-grid .rsssl-item .item-container .form-table tbody tr{padding:0!important;display:flex;align-items:center;flex-direction:row;width:50%}.rsssl-grid .rsssl-item .item-container .form-table tbody tr td{margin:0}.rsssl-grid .rsssl-item .item-container .form-table tbody tr th{margin-left:0;width:90%;display:flex;align-items:center;font-weight:400}.rsssl-grid .rsssl-item .item-container .form-table tbody tr th .dashicons-editor-help{font-size:22px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr th .rsssl-tooltip-right{padding-right:10px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr td,.rsssl-grid .rsssl-item .item-container .form-table tbody tr th{padding:6px 0!important;font-size:13px}.rsssl-grid .rsssl-item .item-container .form-table tbody tr td p,.rsssl-grid .rsssl-item .item-container .form-table tbody tr th p{font-size:13px}.rsssl-grid .rsssl-item .item-container .rsssl-save-settings-feedback{margin-right:20px;color:#d7263d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header{display:flex;align-items:center;justify-content:space-between;height:60px;border-bottom:1px solid #dedede;padding:0 25px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-instructions a{color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item{display:flex;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .all-task-count,.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .open-task-count{padding-left:3px;padding-top:3px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-header .rsssl-secondary-header-item .all-task-count{margin-right:5px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table td+td,.rsssl-grid .rsssl-item .item-container .rsssl-table-td-main-content{padding-left:15px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content{height:360px;margin:10px 25px;border-bottom:1px solid #dedede}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block{padding-top:10px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-bar-container{margin:0 0 25px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress{overflow:hidden;height:20px;border-radius:5px;background-color:#f7f7f7}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress .bar{height:100%;background-color:#61ce70}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet:hover,.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress .bar.orange{background-color:#fbc43d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text{display:flex;align-items:center;margin:10px 0;padding-top:10px;padding-bottom:10px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-percentage{font-size:32px;font-weight:700}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text{margin-left:35px;font-size:18px;font-weight:600}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .progress-text .rsssl-progress-text a{margin-left:3px}.rsssl-grid,.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table tr{position:relative}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-block .rsssl-progress-table td{padding:10px 10px 10px 0}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks{color:#3c3c3c;padding-bottom:15px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content{display:flex;flex-direction:column;margin-right:10px;height:340px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top{flex-grow:1}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top .rsssl-tips-tricks-element{margin-top:10px;margin-bottom:15px;display:flex;flex-direction:row;justify-content:space-between}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .tips-tricks-content .tips-tricks-top .rsssl-tips-tricks-content{padding-right:20px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-tips-tricks .rsssl-tips-tricks-read-more a{text-decoration:none;white-space:nowrap}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-bullet{height:13px;width:13px;border-radius:50%;margin-right:10px;background-color:#d3d3d3;text-decoration:none}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container{display:flex;flex-wrap:wrap;flex-direction:row}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums{display:flex;width:50%}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums a{text-decoration:none;color:#3c3c3c;display:flex;align-items:center;padding:2px 0}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-bullet{margin:7px 7px 7px 0;background-color:#d3d3d3;float:left}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content{float:left;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-support-forums-container .rsssl-support-forums .rsssl-forums-content:hover{text-decoration:underline}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content #rsssl-feedback{color:#d7263d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell{display:flex!important;flex-direction:row;padding:7px 0;align-items:center;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-text a{text-decoration:none;color:#3c3c3c}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-text a:hover{color:#fbc43d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .rsp-image{margin-right:5px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .burst-green{background-color:#297a31}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .cmplztc-black{background-color:#333}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .cmplz-blue{background-color:#27adea}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-upsell .plugin-status{margin-left:auto}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-progress-status{display:block;min-width:60px;text-align:center;border-radius:15px;padding:4px 8px;font-size:.8em;font-weight:600;height:17px;line-height:17px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-premium{background-color:#29b6f6;color:#fff}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-success{background-color:#61ce70;color:#fff}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-open{background-color:#fbc43d}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-content .rsssl-warning{background-color:#d7263d;color:#fff}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer{display:flex;align-items:center;margin:14px 25px 0;height:40px;bottom:0;width:95%}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer .rsssl-button-save{margin-right:25px}.rsssl-grid .rsssl-item .item-container .rsssl-grid-item-footer #rsssl-feedback{font-weight:600;color:#61ce70;padding-left:10px}.rsssl-grid .rsssl-item.half-height{height:247.5px}.rsssl-grid .rsssl-item.half-height .item-container{height:475px/2}.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content{height:110px}.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content .form-table tbody th,.rsssl-grid .rsssl-item.half-height .item-container .rsssl-grid-item-content .form-table tbody tr{width:100%;max-width:100%}.rsssl-grid .rsssl-item.small .item-container th{width:90%!important}.rsssl-grid .rsssl-item.small .item-container .form-table tbody tr{width:100%}.rsssl-grid #rsssl-premium-settings-footer,.rsssl-grid #rsssl-progress-footer{width:100%;text-align:right;margin-right:10px}.rsssl-grid #rsssl-premium-settings-footer .rsssl-footer-item+.rsssl-footer-item,.rsssl-grid #rsssl-progress-footer .rsssl-footer-item+.rsssl-footer-item{margin-left:20px;padding:4px 0}.rsssl-grid #rsssl-premium-settings-footer .footer-left,.rsssl-grid #rsssl-progress-footer .footer-left{float:left}.rsssl-grid #rsssl-premium-settings-footer .footer-left .upsell,.rsssl-grid #rsssl-progress-footer .footer-left .upsell{min-width:80px;text-align:center}.rsssl-grid #rsssl-premium-settings-footer .footer-right,.rsssl-grid #rsssl-progress-footer .footer-right{float:right}.rsssl-grid #rsssl-premium-settings-footer .hidden,.rsssl-grid #rsssl-progress-footer .hidden{display:none}.rsssl-grid .rsssl-system-status-footer-info{margin-right:20px;width:100%;text-align:right}.rsssl-grid .rsssl-system-status-footer-info .system-status-info{margin-left:6px}.rsssl-grid .dot{height:10px;width:10px;border-radius:50%;display:inline-block}.rsssl-grid .rsssl-dot-success{background-color:#61ce70}.rsssl-grid .rsssl-dot-error{background-color:#d7263d}.upsell-grid-container .rsssl-secondary-header-item img{height:30px;padding-top:5px}.rsssl-grid .rsssl-item{width:calc(100% - 20px);padding:10px;height:475px;min-height:500px;z-index:1}@media only screen and (min-width:400px){.rsssl-grid .rsssl-item{width:calc(100% - 20px)}}@media only screen and (min-width:600px){.rsssl-grid .rsssl-item{width:calc(100% - 20px)}}@media only screen and (min-width:768px){.rsssl-grid .rsssl-item{width:calc(100% - 20px)}}@media only screen and (min-width:992px){.rsssl-grid .rsssl-item{width:calc(100% - 20px)}}@media only screen and (min-width:1555px){.rsssl-grid .rsssl-item{width:calc(50% - 20px)}}.rsssl-grid .rsssl-item.small{width:calc(100% - 20px)}@media only screen and (min-width:400px){.rsssl-grid .rsssl-item.small{width:calc(100% - 20px)}}@media only screen and (min-width:600px){.rsssl-grid .rsssl-item.small{width:calc(100% - 20px)}}@media only screen and (min-width:768px){.rsssl-grid .rsssl-item.small{width:calc(50% - 20px)}}@media only screen and (min-width:992px){.rsssl-grid .rsssl-item.small{width:calc(50% - 20px)}}@media only screen and (min-width:1555px){.rsssl-grid .rsssl-item.small{width:calc(25% - 20px)}}.rsssl-grid .rsssl-item.small .item-container{width:100%;min-width:200px}.rsssl-grid .rsssl-item.half-height{min-height:250px}@media only screen and (min-width:400px){.rsssl-grid .rsssl-item.half-height{height:475px/2;min-height:250px}}@media only screen and (min-width:600px){.rsssl-grid .rsssl-item.half-height{min-height:250px;height:475px/2}}@media only screen and (min-width:768px){.rsssl-grid .rsssl-item.half-height{min-height:250px;height:475px/2}}@media only screen and (min-width:992px){.rsssl-grid .rsssl-item.half-height{min-height:250px;height:475px/2}}@media only screen and (min-width:1555px){.rsssl-grid .rsssl-item.half-height{min-height:250px;height:475px/2}}.rsssl-grid .rsssl-item.half-height .item-container{width:100%;min-width:200px;min-height:250px}.rsssl-grid .rsssl-item .settings.rsssl-item{width:100%;padding:0}.rsssl-grid .rsssl-item.muuri-item-hidden{z-index:0}.rsssl-grid .rsssl-item.muuri-item-releasing{z-index:2}.rsssl-grid .rsssl-item.muuri-item-dragging{z-index:3}.rsssl-grid .rsssl-item .rsssl-grid-header{border-bottom:1px solid #d3d3d3;padding:0;height:60px}.rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-header-container{margin:0 20px;height:100%}.rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-title{cursor:pointer;font-size:20px;padding:20px 0;font-weight:700;float:left}.rsssl-grid .rsssl-item .rsssl-grid-header .rsssl-grid-controls{float:right;margin-top:20px;color:#cecece}.rsssl-grid .rsssl-item .item-container{background-color:#fff;position:relative;box-shadow:0 0 5px 5px rgba(222,222,222,.2);height:100%;width:100%}.rsssl-grid .rsssl-item .item-container .item-content{clear:both;margin:15px;height:calc(100% - 100px);padding-top:0;padding-bottom:10px}.rsssl-grid .rsssl-item.no-border .item-container{border:0}.rsssl-grid .rsssl-item.no-background .item-container{background-color:#f1f1f1}.rsssl-grid .rsssl-item.muuri-item-placeholder .item-container{border-style:dashed;padding:0}
 
grid/templates/grid-container.php DELETED
@@ -1,10 +0,0 @@
1
- <div class="rsssl-grid">
2
- <?php $hide = isset( $_GET['settings-updated']) ? 'rsssl-settings-saved--fade-in': ''; ?>
3
- <div class="rsssl-settings-saved <?php echo $hide?>">
4
- <div class="rsssl-settings-saved__text_and_icon">
5
- <span><div class="rsssl-tooltip-icon dashicons-before rsssl-icon rsssl-success check"><svg width="18" height="18" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1671 566q0 40-28 68l-724 724-136 136q-28 28-68 28t-68-28l-136-136-362-362q-28-28-28-68t28-68l136-136q28-28 68-28t68 28l294 295 656-657q28-28 68-28t68 28l136 136q28 28 28 68z"></path></svg></div></span>
6
- <span><?php _e('Changes saved successfully', 'really-simple-ssl') ?> </span>
7
- </div>
8
- </div>
9
- {content}
10
- </div>
 
 
 
 
 
 
 
 
 
 
grid/templates/grid-element.php DELETED
@@ -1,16 +0,0 @@
1
- <div class="rsssl-item {class}">
2
- <div class="item-container">
3
- {form_open}
4
- <div class="rsssl-grid-item-header">
5
- <h3>{title}</h3>
6
- {header}
7
- </div>
8
- <div class="rsssl-grid-item-content">
9
- {content}
10
- </div>
11
- <div class="rsssl-grid-item-footer">
12
- {footer}
13
- </div>
14
- {form_close}
15
- </div>
16
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
grid/templates/header.php DELETED
@@ -1,8 +0,0 @@
1
- <?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
2
-
3
- <div class="rsssl-secondary-header-item">
4
- <div class="rsssl-save-settings-feedback" style="display: none;">
5
- <?php _e("Save settings" , "really-simple-ssl") ?>
6
- </div>
7
- <div class="rsssl-instructions">{instructions}</div>
8
- </div>
 
 
 
 
 
 
 
 
grid/templates/ms-settings.php DELETED
@@ -1,3 +0,0 @@
1
- <?php defined('ABSPATH') or die("you do not have access to this page!");
2
- settings_fields('rsssl_network_options');
3
- do_settings_sections("really-simple-ssl");
 
 
 
grid/templates/other-plugins.php DELETED
@@ -1,57 +0,0 @@
1
- <?php defined('ABSPATH') or die("you do not have access to this page!");
2
- $plugins = array(
3
- 'COMPLIANZTC' => array(
4
- 'constant_free' => 'cmplz_tc_version',
5
- 'constant_premium' => 'cmplz_tc_version',
6
- 'website' => 'https://complianz.io?src=rsssl-plugin',
7
- 'search' => 'complianz+terms+conditions+stand-alone',
8
- ),
9
- 'COMPLIANZ' => array(
10
- 'constant_free' => 'cmplz_plugin',
11
- 'constant_premium' => 'cmplz_premium',
12
- 'website' => 'https://complianz.io/pricing/?src=rsssl-plugin',
13
- 'search' => 'complianz+really+simple+cookies+rogierlankhorst',
14
- ),
15
- 'BURST' => array(
16
- 'constant_free' => 'burst_version',
17
- 'constant_premium' => 'burst_version',
18
- 'website' => 'https://burst-statistics.com',
19
- 'search' => 'burst+statistics+really+simple+plugins+self-hosted',
20
- ),
21
- );
22
- ?>
23
- <div>
24
- <div class="rsssl-upsell rsssl-cmplz">
25
- <div class="plugin-color">
26
- <div class="cmplz-blue rsssl-bullet"></div>
27
- </div>
28
- <div class="plugin-text">
29
- <a href="https://wordpress.org/plugins/complianz-gdpr/" target="_blank">Complianz – GDPR/CCPA Cookie Consent</a>
30
- </div>
31
- <div class="plugin-status">
32
- <?php echo RSSSL()->really_simple_ssl->get_status_link($plugins['COMPLIANZ'])?>
33
- </div>
34
- </div>
35
- <div class="rsssl-upsell rsssl-burst">
36
- <div class="plugin-color">
37
- <div class="burst-green rsssl-bullet"></div>
38
- </div>
39
- <div class="plugin-text">
40
- <a href="https://wordpress.org/plugins/burst-statistics/" target="_blank">Burst Statistics - <?php _e("Self-hosted, Privacy-friendly analytics tool", "really-simple-ssl")?></a>
41
- </div>
42
- <div class="plugin-status">
43
- <?php echo RSSSL()->really_simple_ssl->get_status_link($plugins['BURST'])?>
44
- </div>
45
- </div>
46
- <div class="rsssl-upsell rsssl-cmplztc">
47
- <div class="plugin-color">
48
- <div class="cmplztc-black rsssl-bullet"></div>
49
- </div>
50
- <div class="plugin-text">
51
- <a href="https://wordpress.org/plugins/complianz-terms-conditions/" target="_blank">Complianz - Terms & Conditions</a>
52
- </div>
53
- <div class="plugin-status">
54
- <?php echo RSSSL()->really_simple_ssl->get_status_link($plugins['COMPLIANZTC'])?>
55
- </div>
56
- </div>
57
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
grid/templates/our-plugins-header.php DELETED
@@ -1,5 +0,0 @@
1
- <div class="rsssl-secondary-header-item">
2
- <a href="https://really-simple-plugins.com/">
3
- <img src="<?php echo rsssl_url?>assets/really-simple-plugins.png" alt="Really Simple Plugins Logo">
4
- </a>
5
- </div>
 
 
 
 
 
grid/templates/progress-footer.php DELETED
@@ -1,56 +0,0 @@
1
- <?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
2
-
3
- <?php
4
- if (RSSSL()->really_simple_ssl->ssl_enabled) {
5
- $ssl_enabled = "rsssl-dot-success";
6
- $ssl_text = __("SSL Activated", "really-simple-ssl");
7
- } else {
8
- $ssl_enabled = "rsssl-dot-error";
9
- $ssl_text = __("SSL Not activated", "really-simple-ssl");
10
- }
11
-
12
- if (RSSSL()->really_simple_ssl->has_301_redirect()) {
13
- $redirect_301 = "rsssl-dot-success";
14
- } else {
15
- $redirect_301 = "rsssl-dot-error";
16
- }
17
-
18
-
19
- $button_text = __("Go PRO!", "really-simple-ssl");
20
- $button_link = RSSSL()->really_simple_ssl->pro_url;
21
- $go_pro = "<a href='$button_link' target='_blank' class='button button-default upsell'>$button_text</a>";
22
- $activate_btn = "";
23
- if (!RSSSL()->really_simple_ssl->ssl_enabled) {
24
- if ( RSSSL()->really_simple_ssl->site_has_ssl || ( defined( 'RSSSL_FORCE_ACTIVATE' ) && RSSSL_FORCE_ACTIVATE ) ) {
25
- $button_text = __( "Activate SSL", "really-simple-ssl" );
26
- $activate_btn = '<form action="" method="post" ><input type="submit" class="button button-primary" value="' . $button_text . '" id="rsssl_do_activate_ssl" name="rsssl_do_activate_ssl"></form>';
27
- }
28
- }
29
-
30
- $items = array(
31
- 1 => array(
32
- 'class' => 'footer-right',
33
- 'dot_class' => $ssl_enabled,
34
- 'text' => $ssl_text,
35
- ),
36
- 2 => array(
37
- 'class' => 'footer-right',
38
- 'dot_class' => $redirect_301,
39
- 'text' => __("301 Redirect", "really-simple-ssl"),
40
- ),
41
- );
42
-
43
- ?>
44
- <div id="rsssl-progress-footer">
45
- <span class="rsssl-footer-item footer-left">
46
- <?php echo apply_filters("rsssl_progress_footer_left", '').$activate_btn.apply_filters("rsssl_progress_footer_right", $go_pro )?>
47
- </span>
48
- <?php
49
- foreach ($items as $item) { ?>
50
- <span class="rsssl-footer-item <?php echo $item['class']?>">
51
- <span class="rsssl-grid-footer dot <?php echo $item['dot_class']?>"></span>
52
- <?php echo $item['text']?>
53
- </span>
54
-
55
- <?php } ?>
56
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
grid/templates/progress-header.php DELETED
@@ -1,20 +0,0 @@
1
- <?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
2
-
3
- <div class="rsssl-secondary-header-item">
4
- <?php $all_task_count = RSSSL()->really_simple_ssl->get_all_task_count(); ?>
5
- <div class="rsssl-tasks-container rsssl-all-tasks">
6
- <input type="checkbox" class="rsssl-task-toggle" id="rsssl-all-tasks" name="rsssl_all_tasks" <?php if (get_option('rsssl_all_tasks') ) echo "checked"?>>
7
- <label class="rsssl-tasks <?php if (get_option('rsssl_all_tasks') ) echo "active"?>" for="rsssl-all-tasks"><?php _e( "All tasks", "really-simple-ssl" ); ?><?php echo " " . "(" . $all_task_count . ")"; ?></label>
8
- </div>
9
- <div class="rsssl-spacer"></div>
10
- <?php
11
- $open_task_count = RSSSL()->really_simple_ssl->get_remaining_tasks_count();
12
- if ($open_task_count ==! 0) {?>
13
- <div class="rsssl-tasks-container rsssl-remaining-tasks">
14
- <input type="checkbox" class="rsssl-task-toggle" id="rsssl-remaining-tasks" name="rsssl_remaining_tasks" <?php if (get_option('rsssl_remaining_tasks') ) echo "checked"?>>
15
- <label for="rsssl-remaining-tasks" id="rsssl-remaining-tasks-label" class="<?php if (get_option('rsssl_remaining_tasks') ) echo "checked"?>"><?php _e( "Remaining tasks", "really-simple-ssl" ); ?><?php echo " " . '(<span class="rsssl_remaining_task_count">' . $open_task_count . "</span>)"; ?></label>
16
- </div>
17
- <?php
18
- }
19
- ?>
20
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
grid/templates/progress.php DELETED
@@ -1,64 +0,0 @@
1
- <?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
2
-
3
- <?php
4
- $percentage_completed = RSSSL()->really_simple_ssl->get_score_percentage();
5
- $lowest_possible_task_count = RSSSL()->really_simple_ssl->get_lowest_possible_task_count();
6
- $progress_bar_class = '';
7
- if ( $percentage_completed < 80 ) {
8
- $progress_bar_class = 'orange';
9
- }
10
- ?>
11
-
12
- <div class="rsssl-progress-block">
13
- <div class="rsssl-progress-bar-text">
14
- <div class="progress-bar-container">
15
- <div class="progress">
16
- <div class="bar <?php echo $progress_bar_class?>" style="width:<?php echo $percentage_completed?>%"></div>
17
- </div>
18
- </div>
19
-
20
- <div class="progress-text">
21
- <span class="rsssl-progress-percentage">
22
- <?php echo $percentage_completed?>%
23
- </span>
24
- <span class="rsssl-progress-text">
25
- <?php
26
- $open_task_count = RSSSL()->really_simple_ssl->get_remaining_tasks_count();
27
- $open_tasks_html = '<span class="rsssl-progress-count">'.$open_task_count.'</span>';
28
- if (RSSSL()->really_simple_ssl->ssl_enabled) {
29
- $doing_well = __( "SSL is activated on your site.", 'really-simple-ssl' ) . ' ' . sprintf( _n( "You still have %s task open.", "You still have %s tasks open.", $open_task_count, 'really-simple-ssl' ), $open_tasks_html );
30
-
31
- if ( $open_task_count === 0 ) {
32
- _e("SSL configuration finished!", "really-simple-ssl");
33
- } elseif ( !defined('rsssl_pro_version') ){
34
- if ( $open_task_count >= $lowest_possible_task_count) {
35
- echo $doing_well;
36
- } else {
37
- printf(__("Basic SSL configuration finished! Improve your score with %sReally Simple SSL Pro%s.", "really-simple-ssl"), '<a target="_blank" href="' . RSSSL()->really_simple_ssl->pro_url . '">', '</a>');
38
- }
39
- } else {
40
- echo $doing_well;
41
- }
42
- } else {
43
- if ( !is_network_admin() ) _e("SSL is not yet enabled on this site." , "really-simple-ssl");
44
- }
45
- do_action('rsssl_progress_feedback');
46
- ?>
47
- </span>
48
- </div>
49
- </div>
50
-
51
- <div class="rsssl-scroll-container">
52
- <table class="rsssl-progress-table">
53
- <thead></thead>
54
- <tbody>
55
- <?php
56
- $notices = RSSSL()->really_simple_ssl->get_notices_list(array( 'status' => 'all' ));
57
- foreach ($notices as $id => $notice) {
58
- RSSSL()->really_simple_ssl->notice_row($id, $notice);
59
- }
60
- ?>
61
- </tbody>
62
- </table>
63
- </div>
64
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
grid/templates/settings-footer.php DELETED
@@ -1,3 +0,0 @@
1
- <?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
2
-
3
- <input class="button button-rsssl-secondary rsssl-button-save" name="Submit" type="submit" value="<?php echo __("Save", "really-simple-ssl"); ?>"/>
 
 
 
grid/templates/settings.php DELETED
@@ -1,7 +0,0 @@
1
- <?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
2
- <div class="rsssl-settings">
3
- <?php
4
- settings_fields('rlrsssl_options');
5
- do_settings_sections('rlrsssl');
6
- ?>
7
- </div>
 
 
 
 
 
 
 
grid/templates/support-footer.php DELETED
@@ -1,8 +0,0 @@
1
- <?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
2
-
3
- <a href="<?php echo trailingslashit(rsssl_url).'system-status.php' ?>" class="button button-rsssl-secondary rsssl-wide-button"><?php _e("Download system status", "really-simple-ssl")?></a>
4
- <div id="rsssl-feedback"></div>
5
- <div class="rsssl-system-status-footer-info">
6
- <span class="system-status-info"><?php echo "<b>" . __("Server type:", "really-simple-ssl") . "</b> " . RSSSL()->rsssl_server->get_server(); ?></span>
7
- <span class="system-status-info"><?php echo "<b>" . __("SSL type:", "really-simple-ssl") . "</b> " . $this->ssl_type; ?></span>
8
- </div>
 
 
 
 
 
 
 
 
grid/templates/support.php DELETED
@@ -1,45 +0,0 @@
1
- <?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
2
-
3
- <div id="rsssl-support-forums-container">
4
- <div class="rsssl-support-forums">
5
- <a href="https://really-simple-ssl.com/forums/forum/general-issues/" target="_blank">
6
- <div class="rsssl-bullet"></div>
7
- <div class="rsssl-forums-content"><?php _e("General Issues", "really-simple-ssl")?></div>
8
- </a>
9
- </div>
10
-
11
- <div class="rsssl-support-forums">
12
- <a href="https://really-simple-ssl.com/forums/forum/redirect-loops/" target="_blank">
13
- <div class="rsssl-bullet"></div>
14
- <div class="rsssl-forums-content"><?php _e("Redirect loops", "really-simple-ssl")?></div>
15
- </a>
16
- </div>
17
-
18
- <div class="rsssl-support-forums">
19
- <a href="https://really-simple-ssl.com/forums/forum/multisite/" target="_blank">
20
- <div class="rsssl-bullet"></div>
21
- <div class="rsssl-forums-content"><?php _e("Multisite", "really-simple-ssl")?></div>
22
- </a>
23
- </div>
24
-
25
- <div class="rsssl-support-forums">
26
- <a href="https://really-simple-ssl.com/forums/forum/really-simple-ssl-pro/" target="_blank">
27
- <div class="rsssl-bullet"></div>
28
- <div class="rsssl-forums-content"><?php _e("Really Simple SSL Pro", "really-simple-ssl")?></div>
29
- </a>
30
- </div>
31
-
32
- <div class="rsssl-support-forums">
33
- <a href="https://really-simple-ssl.com/forums/forum/mixed-content-site/" target="_blank">
34
- <div class="rsssl-bullet"></div>
35
- <div class="rsssl-forums-content"><?php _e("Mixed Content", "really-simple-ssl")?></div>
36
- </a>
37
- </div>
38
-
39
- <div class="rsssl-support-forums">
40
- <a href="https://really-simple-ssl.com/knowledge-base/how-to-fix-mixed-content-in-elementor-after-moving-to-ssl/" target="_blank">
41
- <div class="rsssl-bullet"></div>
42
- <div class="rsssl-forums-content"><?php _e("Elementor", "really-simple-ssl")?></div>
43
- </a>
44
- </div>
45
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
grid/templates/tips-tricks-footer.php DELETED
@@ -1,3 +0,0 @@
1
- <?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
2
-
3
- <a href="https://really-simple-ssl.com/knowledge-base-overview/" target="_blank" class="button button-rsssl-secondary"><?php _e("Documentation", "really-simple-ssl"); ?></a>
 
 
 
grid/templates/tips-tricks.php DELETED
@@ -1,63 +0,0 @@
1
- <?php defined('ABSPATH') or die("you do not have access to this page!"); ?>
2
- <div class="rsssl-tips-tricks">
3
- <div class="tips-tricks-content">
4
- <div class="tips-tricks-top">
5
- <div class="rsssl-tips-tricks-element">
6
- <div class="rsssl-tips-tricks-content">
7
- <?php _e("Improve security: Add Cross-Site Protection Headers to prevent malicious attacks", "really-simple-ssl")?>
8
- </div>
9
- <div class="rsssl-tips-tricks-read-more">
10
- <a href="https://really-simple-ssl.com/cross-origin-security-headers/" target="_blank"><?php _e("Read more", "really-simple-ssl");?></a>
11
- </div>
12
- </div>
13
- <div class="rsssl-tips-tricks-element">
14
- <div class="rsssl-tips-tricks-content">
15
- <?php _e("Improve security: Enable HTTP Strict Transport Security (HSTS)", "really-simple-ssl")?>
16
- </div>
17
- <div class="rsssl-tips-tricks-read-more">
18
- <a href="https://really-simple-ssl.com/hsts-http-strict-transport-security-good/" target="_blank"><?php _e("Read more", "really-simple-ssl");?></a>
19
- </div>
20
- </div>
21
- <div class="rsssl-tips-tricks-element">
22
- <div class="rsssl-tips-tricks-content">
23
- <?php _e("Improve security: Add security headers", "really-simple-ssl");?>
24
- </div>
25
- <div class="rsssl-tips-tricks-read-more">
26
- <a href="https://really-simple-ssl.com/everything-you-need-to-know-about-security-headers/" target="_blank"><?php _e("Read more", "really-simple-ssl");?></a>
27
- </div>
28
- </div>
29
- <div class="rsssl-tips-tricks-element">
30
- <div class="rsssl-tips-tricks-content">
31
- <?php _e("Adding a Content Security Policy", "really-simple-ssl");?>
32
- </div>
33
- <div class="rsssl-tips-tricks-read-more">
34
- <a href="https://really-simple-ssl.com/knowledge-base/how-to-use-the-content-security-policy-generator/" target="_blank"><?php _e("Read more", "really-simple-ssl");?></a>
35
- </div>
36
- </div>
37
- <div class="rsssl-tips-tricks-element">
38
- <div class="rsssl-tips-tricks-content">
39
- <?php _e("Adding a Permission Policy", "really-simple-ssl");?>
40
- </div>
41
- <div class="rsssl-tips-tricks-read-more">
42
- <a href="https://really-simple-ssl.com/knowledge-base/how-to-use-the-permissions-policy-header/" target="_blank"><?php _e("Read more", "really-simple-ssl");?></a>
43
- </div>
44
- </div>
45
- <div class="rsssl-tips-tricks-element">
46
- <div class="rsssl-tips-tricks-content">
47
- <?php _e("Information about landing page redirects", "really-simple-ssl");?>
48
- </div>
49
- <div class="rsssl-tips-tricks-read-more">
50
- <a href="https://really-simple-ssl.com/knowledge-base/avoid-landing-page-redirects/" target="_blank"><?php _e("Read more", "really-simple-ssl");?></a>
51
- </div>
52
- </div>
53
- <div class="rsssl-tips-tricks-element">
54
- <div class="rsssl-tips-tricks-content">
55
- <?php _e("Install a Let's Encrypt SSL Certificate with Really Simple SSL", "really-simple-ssl");?>
56
- </div>
57
- <div class="rsssl-tips-tricks-read-more">
58
- <a href="https://really-simple-ssl.com/install-ssl-certificate/" target="_blank"><?php _e("Read more", "really-simple-ssl");?></a>
59
- </div>
60
- </div>
61
- </div>
62
- </div>
63
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
gulpfile.js ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const gulp = require('gulp');
2
+ const rtlcss = require('gulp-rtlcss');
3
+ const concat = require('gulp-concat');
4
+ const cssbeautify = require('gulp-cssbeautify');
5
+ const cssuglify = require('gulp-uglifycss');
6
+ const jsuglify = require('gulp-uglify');
7
+ const sass = require('gulp-sass')(require('sass'));
8
+ const spawn = require('child_process').spawn;
9
+
10
+ function scssTask(cb) {
11
+ // compile scss to css and minify
12
+ gulp.src('./assets/css/admin.scss')
13
+ .pipe(sass(({outputStyle: 'expanded'})).on('error', sass.logError))
14
+ .pipe(cssbeautify())
15
+ .pipe(gulp.dest('./assets/css'))
16
+ .pipe(cssuglify())
17
+ .pipe(concat('admin.min.css'))
18
+ .pipe(gulp.dest('./assets/css'))
19
+ .pipe(rtlcss())
20
+ .pipe(gulp.dest('./assets/css/rtl'));
21
+
22
+ cb();
23
+ }
24
+ exports.scss = scssTask
25
+
26
+ gulp.task('default', function () {
27
+ return
28
+ });
29
+ function jsTask(cb) {
30
+ // compile js and minify
31
+ // gulp.src('js/src/burst.js')
32
+ // .pipe(concat('burst.js'))
33
+ // .pipe(gulp.dest('./js/build'))
34
+ // .pipe(concat('burst.min.js'))
35
+ // .pipe(jsuglify())
36
+ // .pipe(gulp.dest('./js/build'));
37
+
38
+ cb();
39
+ }
40
+ exports.js = jsTask
41
+
42
+ function defaultTask(cb) {
43
+ gulp.watch('./assets/css/**/*.scss', { ignoreInitial: false }, scssTask);
44
+ // gulp.watch('./assets/js/**/*.js', { ignoreInitial: false }, jsTask);
45
+ spawn('npm', ['start'], { cwd: 'settings', stdio: 'inherit' })
46
+ cb();
47
+ }
48
+ exports.default = defaultTask
49
+
50
+ // function buildTask(cb) {
51
+ // gulp.task(scssTask);
52
+ // spawn('npm', ['build'], { cwd: 'settings', stdio: 'inherit' })
53
+ // run('npm run build').exec()
54
+ // cb();
55
+ // }
56
+ // exports.build = buildTask
languages/really-simple-ssl.pot CHANGED
@@ -1,2353 +1,3199 @@
1
- #, fuzzy
 
2
  msgid ""
3
  msgstr ""
4
- "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
- "Project-Id-Version: Really Simple SSL\n"
6
- "POT-Creation-Date: 2021-11-11 13:27+0100\n"
7
- "PO-Revision-Date: 2021-11-11 13:27+0100\n"
8
- "Last-Translator: Rogier Lankhorst <rogierlankhorst@gmail.com>\n"
9
- "Language-Team: Rogier Lankhorst <rogierlankhorst@gmail.com>\n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
- "X-Generator: Poedit 2.2.1\n"
14
- "X-Poedit-Basepath: ..\n"
15
- "X-Poedit-Flags-xgettext: --add-comments=translators:\n"
16
- "X-Poedit-WPHeader: rlrsssl-really-simple-ssl.php\n"
17
- "X-Poedit-SourceCharset: UTF-8\n"
18
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
19
- "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
20
- "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
21
- "X-Poedit-SearchPath-0: .\n"
22
- "X-Poedit-SearchPathExcluded-0: *.js\n"
23
-
24
- #: class-admin.php:50 class-cache.php:11 class-certificate.php:14
25
- #: class-front-end.php:18 class-help.php:9 class-mixed-content-fixer.php:13
26
- #: class-multisite.php:28 class-site-health.php:12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  #: lets-encrypt/class-letsencrypt-handler.php:30
28
- #, php-format
 
29
  msgid "%s is a singleton class and you cannot create a second instance."
30
  msgstr ""
31
 
32
- #: class-admin.php:116
33
- #, php-format
34
- msgid ""
35
- "Really Simple SSL and Really Simple SSL add-ons do not process any personal "
36
- "identifiable information, so the GDPR does not apply to these plugins or "
37
- "usage of these plugins on your website. You can find our privacy policy <a "
38
- "href=\"%s\" target=\"_blank\">here</a>."
39
  msgstr ""
40
 
41
- #: class-admin.php:544 lets-encrypt/wizard/templates/last-step.php:13
42
- msgid "Almost ready to migrate to SSL!"
 
 
43
  msgstr ""
44
 
45
- #: class-admin.php:552 lets-encrypt/wizard/templates/activate.php:45
46
- msgid "Before you migrate, please check for: "
 
 
 
47
  msgstr ""
48
 
49
- #: class-admin.php:554 class-multisite.php:573
50
- #: lets-encrypt/wizard/templates/activate.php:19
51
- #: lets-encrypt/wizard/templates/activate.php:48
52
- msgid ""
53
- "Http references in your .css and .js files: change any http:// into https://"
54
  msgstr ""
55
 
56
- #: class-admin.php:555
57
- msgid ""
58
- "Images, stylesheets or scripts from a domain without an SSL certificate: "
59
- "remove them or move to your own server"
60
  msgstr ""
61
 
62
- #: class-admin.php:556 lets-encrypt/wizard/templates/activate.php:56
63
- msgid "You may need to login in again."
64
  msgstr ""
65
 
66
- #: class-admin.php:559 lets-encrypt/wizard/templates/activate.php:58
67
- msgid "An SSL certificate has been detected"
68
  msgstr ""
69
 
70
- #: class-admin.php:561
71
- msgid "No SSL certificate has been detected."
72
  msgstr ""
73
 
74
- #: class-admin.php:562
75
- #, php-format
76
- msgid ""
77
- "Please %srefresh detection%s if a certificate has been installed recently."
78
  msgstr ""
79
 
80
- #: class-admin.php:563
81
- msgid ""
82
- "This detection method is not 100% accurate. If you’re certain an SSL "
83
- "certificate is present, please check “Override SSL detection” to continue "
84
- "activating SSL."
85
  msgstr ""
86
 
87
- #: class-admin.php:568 lets-encrypt/wizard/templates/activate.php:26
88
- #: lets-encrypt/wizard/templates/activate.php:66
89
- msgid ""
90
- "You can also let the automatic scan of the pro version handle this for you, "
91
- "and get premium support, increased security with HSTS and more!"
92
  msgstr ""
93
 
94
- #: class-admin.php:569 lets-encrypt/wizard/templates/activate.php:30
95
- #: lets-encrypt/wizard/templates/activate.php:70
96
- msgid "Check out Really Simple SSL Pro"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  msgstr ""
98
 
99
- #: class-admin.php:837 class-site-health.php:125
100
- #: grid/templates/progress-footer.php:25
101
- #: lets-encrypt/wizard/config/steps.php:156
102
- msgid "Activate SSL"
103
  msgstr ""
104
 
105
- #: class-admin.php:840 lets-encrypt/wizard/class-wizard.php:909
106
- msgid "Get ready with PRO!"
107
  msgstr ""
108
 
109
- #: class-admin.php:843 class-admin.php:3025 class-admin.php:3040
110
- msgid "Install SSL certificate"
111
  msgstr ""
112
 
113
- #: class-admin.php:846
114
- msgid "Override SSL detection"
115
  msgstr ""
116
 
117
- #: class-admin.php:2406
118
- msgid ""
119
- "A definition of a siteurl or homeurl was detected in your wp-config.php, but "
120
- "the file is not writable."
121
  msgstr ""
122
 
123
- #: class-admin.php:2408 class-admin.php:2435
124
- #, php-format
125
- msgid "Set your wp-config.php to %swritable%s and reload this page."
126
  msgstr ""
127
 
128
- #: class-admin.php:2411
129
- msgid "Your wp-config.php has to be edited, but is not writable."
130
  msgstr ""
131
 
132
- #: class-admin.php:2412
133
- msgid ""
134
- "Because your site is behind a loadbalancer and is_ssl() returns false, you "
135
- "should add the following line of code to your wp-config.php."
136
  msgstr ""
137
 
138
- #: class-admin.php:2428
139
- #, php-format
140
- msgid "Or set your wp-config.php to %swritable%s and reload this page."
141
  msgstr ""
142
 
143
- #: class-admin.php:2434
144
- msgid ""
145
- "Because your server does not pass a variable with which WordPress can detect "
146
- "SSL, WordPress may create redirect loops on SSL."
147
  msgstr ""
148
 
149
- #: class-admin.php:2441
150
- msgid "System detection encountered issues"
151
  msgstr ""
152
 
153
- #: class-admin.php:2555
154
- #, php-format
155
- msgid ""
156
- "Hi, Really Simple SSL has kept your site secure for some time now, awesome! "
157
- "If you have a moment, please consider leaving a review on WordPress.org to "
158
- "spread the word. We greatly appreciate it! If you have any questions or "
159
- "feedback, leave us a %smessage%s."
160
  msgstr ""
161
 
162
- #: class-admin.php:2557
163
- #, php-format
164
- msgid ""
165
- "Hi, Really Simple SSL has kept your site secure for a month now, awesome! If "
166
- "you have a moment, please consider leaving a review on WordPress.org to "
167
- "spread the word. We greatly appreciate it! If you have any questions or "
168
- "feedback, leave us a %smessage%s."
169
  msgstr ""
170
 
171
- #: class-admin.php:2563
172
- msgid "Leave a review"
173
  msgstr ""
174
 
175
- #: class-admin.php:2564
176
- msgid "Maybe later"
177
  msgstr ""
178
 
179
- #: class-admin.php:2565
180
- msgid "Don't show again"
181
  msgstr ""
182
 
183
- #: class-admin.php:2747
184
- msgid "SSL settings"
185
  msgstr ""
186
 
187
- #: class-admin.php:2748
188
- msgid "SSL"
189
  msgstr ""
190
 
191
- #: class-admin.php:2770 class-admin.php:3645 class-admin.php:4023
192
- #: class-admin.php:4579 class-multisite.php:225 class-multisite.php:337
193
- #: class-multisite.php:409
194
- msgid "Settings"
195
  msgstr ""
196
 
197
- #: class-admin.php:2807
198
- msgid "General"
199
  msgstr ""
200
 
201
- #: class-admin.php:2825 class-multisite.php:468
202
- #: grid/templates/tips-tricks-footer.php:3
203
- msgid "Documentation"
204
  msgstr ""
205
 
206
- #: class-admin.php:2831 class-admin.php:4583 class-multisite.php:229
207
- #: class-multisite.php:474 lets-encrypt/wizard/class-wizard.php:405
208
- msgid "Support"
209
  msgstr ""
210
 
211
- #: class-admin.php:2886
212
- msgid "No recommended redirect rules detected."
213
  msgstr ""
214
 
215
- #: class-admin.php:2901
216
- msgid "(Unknown)"
 
 
217
  msgstr ""
218
 
219
- #: class-admin.php:2915
220
- msgid "Major security issue!"
221
  msgstr ""
222
 
223
- #: class-admin.php:2916
224
- msgid ""
225
- "The 'force-deactivate.php' file has to be renamed to .txt. Otherwise your "
226
- "ssl can be deactivated by anyone on the internet."
227
  msgstr ""
228
 
229
- #: class-admin.php:2917
230
- msgid "Check again"
231
  msgstr ""
232
 
233
- #: class-admin.php:2930
234
- #, php-format
235
- msgid ""
236
- "The Really Simple SSL plugin folder in the /wp-content/plugins/ directory "
237
- "has been renamed to %s. This might cause issues when deactivating, or with "
238
- "premium add-ons. To fix this you can rename the Really Simple SSL folder "
239
- "back to the default %s."
240
  msgstr ""
241
 
242
- #: class-admin.php:2946
243
- msgid ""
244
- "SSL is now activated. Check if your website is secure by following this "
245
- "article."
246
  msgstr ""
247
 
248
- #: class-admin.php:2961
249
- msgid ""
250
- "Really Simple SSL pro is not up to date. Update Really Simple SSL pro to "
251
- "ensure compatibility."
252
  msgstr ""
253
 
254
- #: class-admin.php:2976
255
- msgid ""
256
- "Don't forget to change your settings in Google Analytics and Search Console."
257
  msgstr ""
258
 
259
- #: class-admin.php:2990
260
- msgid "https://really-simple-ssl.com/really-simple-ssl-4-a-new-dashboard"
261
  msgstr ""
262
 
263
- #: class-admin.php:2991
264
- msgid "Really Simple SSL 4.0. Learn more about our newest major release."
265
  msgstr ""
266
 
267
- #: class-admin.php:3004
268
- msgid "SSL is enabled on your site."
269
  msgstr ""
270
 
271
- #: class-admin.php:3008
272
- msgid "SSL is not enabled yet."
273
  msgstr ""
274
 
275
- #: class-admin.php:3019
276
- msgid "Cannot activate SSL due to system configuration."
277
  msgstr ""
278
 
279
- #: class-admin.php:3023
280
- msgid "No SSL detected"
281
  msgstr ""
282
 
283
- #: class-admin.php:3024
284
- msgid "No SSL detected. Use the retry button to check again."
285
  msgstr ""
286
 
287
- #: class-admin.php:3026 lets-encrypt/wizard/class-wizard.php:904
288
- msgid "Retry"
 
289
  msgstr ""
290
 
291
- #: class-admin.php:3032
292
- msgid "An SSL certificate was detected on your site."
293
  msgstr ""
294
 
295
- #: class-admin.php:3037
296
- msgid "Your SSL certificate will expire soon."
297
  msgstr ""
298
 
299
- #: class-admin.php:3038
300
- #, php-format
301
- msgid "SSL certificate will expire on %s."
 
 
 
302
  msgstr ""
303
 
304
- #: class-admin.php:3038
305
- msgid ""
306
- "If your hosting provider auto-renews your certificate, no action is "
307
- "required. Alternatively, you have the option to generate an SSL certificate "
308
- "with Really Simple SSL."
309
  msgstr ""
310
 
311
- #: class-admin.php:3039
312
- #, php-format
313
- msgid ""
314
- "Depending on your hosting provider, %smanual installation%s may be required."
315
  msgstr ""
316
 
317
- #: class-admin.php:3041
318
- msgid "Re-check"
319
  msgstr ""
320
 
321
- #: class-admin.php:3054
322
- msgid "Mixed content fixer was successfully detected on the front-end."
323
  msgstr ""
324
 
325
- #: class-admin.php:3059
326
- msgid "Really Simple SSL has received no response from the webpage."
327
  msgstr ""
328
 
329
- #: class-admin.php:3066
330
- msgid ""
331
- "The mixed content fixer is active, but was not detected on the frontpage."
332
  msgstr ""
333
 
334
- #: class-admin.php:3071
335
- msgid "Error occurred when retrieving the webpage."
 
 
336
  msgstr ""
337
 
338
- #: class-admin.php:3077
339
- msgid ""
340
- "Mixed content fixer not enabled. Enable the option to fix mixed content on "
341
- "your site."
342
  msgstr ""
343
 
344
- #: class-admin.php:3083
345
- #, php-format
346
- msgid ""
347
- "The mixed content fixer could not be detected due to a cURL error: %s. cURL "
348
- "errors are often caused by an outdated version of PHP or cURL and don't "
349
- "affect the front-end of your site. Contact your hosting provider for a fix."
350
  msgstr ""
351
 
352
- #: class-admin.php:3096
353
- msgid "301 redirect to https set."
354
  msgstr ""
355
 
356
- #: class-admin.php:3100
357
- msgid ""
358
- "No 301 redirect is set. Enable the WordPress 301 redirect in the settings to "
359
- "get a 301 permanent redirect."
360
  msgstr ""
361
 
362
- #: class-admin.php:3112
363
- msgid "301 redirect to https set: .htaccess redirect."
 
364
  msgstr ""
365
 
366
- #: class-admin.php:3117
367
- msgid ""
368
- "WordPress 301 redirect enabled. We recommend to enable a 301 .htaccess "
369
- "redirect."
370
  msgstr ""
371
 
372
- #: class-admin.php:3123
373
- msgid ""
374
- "Enable a .htaccess redirect or WordPress redirect in the settings to create "
375
- "a 301 redirect."
376
  msgstr ""
377
 
378
- #: class-admin.php:3129
379
- #, php-format
380
- msgid ""
381
- "The %s file is not writable. You can either use the WordPress redirect, add "
382
- "the rules manually, or set the file to %swritable%s."
383
  msgstr ""
384
 
385
- #: class-admin.php:3135
386
- msgid ""
387
- "The .htaccess redirect rules selected by this plugin failed in the test. Set "
388
- "manually or dismiss to leave on WordPress redirect."
389
  msgstr ""
390
 
391
- #: class-admin.php:3150
392
- msgid ""
393
- "Your site uses Elementor. This can require some additional steps before "
394
- "getting the secure lock."
395
  msgstr ""
396
 
397
- #: class-admin.php:3164
398
- msgid ""
399
- "Your site uses Divi. This can require some additional steps before getting "
400
- "the secure lock."
401
  msgstr ""
402
 
403
- #: class-admin.php:3177
404
- msgid "HTTP Strict Transport Security was enabled."
 
405
  msgstr ""
406
 
407
- #: class-admin.php:3181
408
- #, php-format
409
- msgid "HTTP Strict Transport Security is not enabled %s(Read more)%s."
410
  msgstr ""
411
 
412
- #: class-admin.php:3196
413
- msgid "HttpOnly Secure cookies have been set automatically!"
 
414
  msgstr ""
415
 
416
- #: class-admin.php:3201
417
- msgid "HttpOnly Secure cookies not set."
418
  msgstr ""
419
 
420
- #: class-admin.php:3208
421
- msgid ""
422
- "To set the httponly secure cookie settings, your wp-config.php has to be "
423
- "edited, but the file is not writable."
424
  msgstr ""
425
 
426
- #: class-admin.php:3208
427
- msgid "Add the following lines of code to your wp-config.php."
428
  msgstr ""
429
 
430
- #: class-admin.php:3216
431
- msgid "Or set your wp-config.php to writable and reload this page."
432
  msgstr ""
433
 
434
- #: class-admin.php:3230
435
- #, php-format
436
- msgid "Recommended security headers not enabled (%sRead more%s)."
437
  msgstr ""
438
 
439
- #: class-admin.php:3241
440
- msgid ""
441
- "Due to a recent update by WP Engine, we have changed your settings "
442
- "automatically to adapt."
443
  msgstr ""
444
 
445
- #: class-admin.php:3254
446
- msgid ""
447
- "You have the Really Simple SSL Let's Encrypt beta add-on activated. This "
448
- "functionality has now been integrated in core, so you can deactivate the add-"
449
- "on."
450
  msgstr ""
451
 
452
- #: class-admin.php:3266
453
- #, php-format
454
- msgid "We have detected the %s plugin on your website."
455
  msgstr ""
456
 
457
- #: class-admin.php:3266
458
- msgid ""
459
- "As Really Simple SSL handles all the functionality this plugin provides, we "
460
- "recommend to disable this plugin to prevent unexpected behaviour."
461
  msgstr ""
462
 
463
- #: class-admin.php:3282
464
- msgid "Black Friday sale! Get 40% Off Really Simple SSL Pro"
 
465
  msgstr ""
466
 
467
- #: class-admin.php:3396
468
- #, php-format
469
- msgid "%sMore info%s or %sdismiss%s"
470
  msgstr ""
471
 
472
- #: class-admin.php:3398
473
- #, php-format
474
- msgid "%sMore info%s"
475
  msgstr ""
476
 
477
- #: class-admin.php:3402
478
- #, php-format
479
- msgid "%sEnable%s or %sdismiss%s"
480
  msgstr ""
481
 
482
- #: class-admin.php:3637 class-multisite.php:401
483
- msgid "Your progress"
484
  msgstr ""
485
 
486
- #: class-admin.php:3652
487
- msgid "Tips & Tricks"
488
  msgstr ""
489
 
490
- #: class-admin.php:3660 class-multisite.php:425
491
- msgid "Our plugins"
492
  msgstr ""
493
 
494
- #: class-admin.php:3667 class-multisite.php:417
495
- msgid "Support forum"
496
  msgstr ""
497
 
498
- #: class-admin.php:3764
499
- msgid "Install"
500
  msgstr ""
501
 
502
- #: class-admin.php:3767
503
- msgid "Upgrade to pro"
504
  msgstr ""
505
 
506
- #: class-admin.php:3769
507
- msgid "Installed"
508
  msgstr ""
509
 
510
- #: class-admin.php:3826
511
- msgid "Instructions manual"
512
  msgstr ""
513
 
514
- #: class-admin.php:3891
515
- msgid "Completed"
516
  msgstr ""
517
 
518
- #: class-admin.php:3893
519
- msgid "Warning"
 
520
  msgstr ""
521
 
522
- #: class-admin.php:3895
523
- msgid "Open"
524
  msgstr ""
525
 
526
- #: class-admin.php:3897
527
- msgid "Premium"
528
  msgstr ""
529
 
530
- #: class-admin.php:3945
531
- msgid "More info"
532
  msgstr ""
533
 
534
- #: class-admin.php:3984 grid/templates/progress.php:37
535
- #, php-format
536
- msgid ""
537
- "Basic SSL configuration finished! Improve your score with %sReally Simple "
538
- "SSL Pro%s."
539
  msgstr ""
540
 
541
- #: class-admin.php:3986 grid/templates/progress.php:29
542
- msgid "SSL is activated on your site."
543
  msgstr ""
544
 
545
- #: class-admin.php:3988 grid/templates/progress.php:43
546
- msgid "SSL is not yet enabled on this site."
 
 
 
 
 
547
  msgstr ""
548
 
549
- #: class-admin.php:3991 grid/templates/progress.php:29
550
- #, fuzzy, php-format
551
- msgid "You still have %s task open."
552
  msgstr ""
553
- "#-#-#-#-# legacy_PHP_extracted.pot (PACKAGE VERSION) #-#-#-#-#\n"
554
- "#-#-#-#-# 1legacy_PHP_extracted.pot (PACKAGE VERSION) #-#-#-#-#\n"
555
 
556
- #: class-admin.php:3992
557
- #, php-format
558
- msgid " You still have %s tasks open."
 
 
 
559
  msgstr ""
560
 
561
- #: class-admin.php:3998
562
- msgid "Copied!"
563
  msgstr ""
564
 
565
- #: class-admin.php:4025
566
- msgid ""
567
- "In most cases you need to leave this enabled, to prevent mixed content "
568
- "issues on your site."
569
  msgstr ""
570
 
571
- #: class-admin.php:4026
572
- msgid "Mixed content fixer"
573
  msgstr ""
574
 
575
- #: class-admin.php:4030
576
- msgid ""
577
- "Redirects all requests over HTTP to HTTPS using a PHP 301 redirect. Enable "
578
- "if the .htaccess redirect cannot be used, for example on NGINX servers."
579
  msgstr ""
580
 
581
- #: class-admin.php:4031
582
- msgid "Enable WordPress 301 redirect"
583
  msgstr ""
584
 
585
- #: class-admin.php:4035
586
- msgid ""
587
- "A .htaccess redirect is faster and works better with caching. Really Simple "
588
- "SSL detects the redirect code that is most likely to work (99% of websites), "
589
- "but this is not 100%. Make sure you know how to regain access to your site "
590
- "if anything goes wrong!"
591
  msgstr ""
592
 
593
- #: class-admin.php:4036 class-site-health.php:158
594
- msgid "Enable 301 .htaccess redirect"
595
  msgstr ""
596
 
597
- #: class-admin.php:4042
598
- msgid ""
599
- "If you want to customize the Really Simple SSL .htaccess, you need to "
600
- "prevent Really Simple SSL from rewriting it. Enabling this option will do "
601
- "that."
602
  msgstr ""
603
 
604
- #: class-admin.php:4043
605
- msgid "Stop editing the .htaccess file"
 
 
 
 
 
 
 
 
606
  msgstr ""
607
 
608
- #: class-admin.php:4048
609
- msgid ""
610
- "If this option is set to true, the mixed content fixer will fire on the init "
611
- "hook instead of the template_redirect hook. Only use this option when you "
612
- "experience problems with the mixed content fixer.\""
613
  msgstr ""
614
 
615
- #: class-admin.php:4049
616
- msgid "Fire mixed content fixer with different method"
 
 
 
617
  msgstr ""
618
 
619
- #: class-admin.php:4052 class-multisite.php:341
620
- msgid ""
621
- "Enable this option to permanently dismiss all +1 notices in the 'Your "
622
- "progress' tab"
 
623
  msgstr ""
624
 
625
- #: class-admin.php:4053 class-multisite.php:342
626
- msgid "Dismiss all Really Simple SSL notices"
627
  msgstr ""
628
 
629
- #: class-admin.php:4055
630
- msgid ""
631
- "If enabled, all the Really Simple SSL pages within the WordPress admin will "
632
- "be in high contrast"
633
  msgstr ""
634
 
635
- #: class-admin.php:4056
636
- msgid "Enable High Contrast mode"
637
  msgstr ""
638
 
639
- #: class-admin.php:4169 class-admin.php:4199 class-admin.php:4276
640
- #: class-admin.php:4552
641
- msgid "This option is enabled on the network menu."
642
  msgstr ""
643
 
644
- #: class-admin.php:4195
645
- #, php-format
646
- msgid ""
647
- "Before you enable the htaccess redirect, make sure you know how to %sregain "
648
- "access%s to your site in case of a redirect loop."
649
  msgstr ""
650
 
651
- #: class-admin.php:4202
652
- msgid ""
653
- "If the setting 'stop editing the .htaccess file' is enabled, you can't "
654
- "change this setting."
655
  msgstr ""
656
 
657
- #: class-admin.php:4234
658
- #, php-format
659
- msgid ".htaccess is currently not %swritable%s."
660
- msgstr ""
 
661
 
662
- #: class-admin.php:4496
663
- msgid "Are you sure?"
664
  msgstr ""
665
 
666
- #: class-admin.php:4509
667
- msgid "To deactivate the plugin correctly, please select if you want to:"
668
  msgstr ""
669
 
670
- #: class-admin.php:4511
671
- msgid "Deactivate, but stay on SSL."
672
  msgstr ""
673
 
674
- #: class-admin.php:4512
675
- msgid ""
676
- "Deactivate, and revert to http. This will remove all changes by the plugin."
677
  msgstr ""
678
 
679
- #: class-admin.php:4514
680
- msgid "Deactivating the plugin while keeping SSL will do the following:"
681
  msgstr ""
682
 
683
- #: class-admin.php:4516
684
- msgid "The mixed content fixer will stop working"
685
  msgstr ""
686
 
687
- #: class-admin.php:4517
688
- msgid "The WordPress 301 redirect will stop working"
689
  msgstr ""
690
 
691
- #: class-admin.php:4518
692
- msgid "Your site address will remain https://"
 
693
  msgstr ""
694
 
695
- #: class-admin.php:4519
696
- msgid "The .htaccess redirect will remain active"
697
  msgstr ""
698
 
699
- #: class-admin.php:4529
700
- msgid "Cancel"
701
  msgstr ""
702
 
703
- #: class-admin.php:4530
704
- msgid "Deactivate, keep https"
705
  msgstr ""
706
 
707
- #: class-admin.php:4531
708
- msgid "Deactivate, revert to http"
709
  msgstr ""
710
 
711
- #: class-admin.php:4585 class-multisite.php:231
712
- msgid "Premium Support"
713
  msgstr ""
714
 
715
- #: class-admin.php:4591 class-multisite.php:237
716
- msgid "Improve security - Upgrade to Pro"
717
  msgstr ""
718
 
719
- #: class-multisite.php:91
720
- msgid "No choice has been made regarding networkwide or per site activation."
721
  msgstr ""
722
 
723
- #: class-multisite.php:93
724
- msgid "SSL is activated network wide."
725
  msgstr ""
726
 
727
- #: class-multisite.php:95
728
- msgid "SSL is activated per site."
729
  msgstr ""
730
 
731
- #: class-multisite.php:122
732
- msgid "SSL is enabled networkwide."
733
  msgstr ""
734
 
735
- #: class-multisite.php:126
736
- msgid "SSL is enabled per site."
737
  msgstr ""
738
 
739
- #: class-multisite.php:130
740
- msgid "SSL is not enabled yet"
741
  msgstr ""
742
 
743
- #: class-multisite.php:144
744
- msgid ""
745
- "You run a Multisite installation with subfolders, which prevents this plugin "
746
- "from fixing your missing server variable in the wp-config.php."
747
  msgstr ""
748
 
749
- #: class-multisite.php:145
750
- msgid ""
751
- "Because the $_SERVER[\"HTTPS\"] variable is not set, your website may "
752
- "experience redirect loops."
753
  msgstr ""
754
 
755
- #: class-multisite.php:146
756
- msgid "Activate networkwide to fix this."
757
  msgstr ""
758
 
759
- #: class-multisite.php:157
760
- msgid ""
761
- "You run a Multisite installation with subdomains, but your site doesn't have "
762
- "a wildcard certificate."
763
  msgstr ""
764
 
765
- #: class-multisite.php:158
766
- msgid ""
767
- "This leads to issues when activating SSL networkwide since subdomains will "
768
- "be forced over SSL as well while they don't have a valid certificate."
769
  msgstr ""
770
 
771
- #: class-multisite.php:159
772
- msgid "Activate SSL per site or install a wildcard certificate to fix this."
773
  msgstr ""
774
 
775
- #: class-multisite.php:338
776
- msgid "Select to enable SSL networkwide or per site."
777
  msgstr ""
778
 
779
- #: class-multisite.php:339
780
- msgid "Enable SSL"
781
  msgstr ""
782
 
783
- #: class-multisite.php:359
784
- msgid "Choose option"
785
  msgstr ""
786
 
787
- #: class-multisite.php:361
788
- msgid "networkwide"
789
  msgstr ""
790
 
791
- #: class-multisite.php:362
792
- msgid "per site"
 
793
  msgstr ""
794
 
795
- #: class-multisite.php:456
796
- msgid "Options saved."
797
  msgstr ""
798
 
799
- #: class-multisite.php:570
800
- msgid "Setup"
801
  msgstr ""
802
 
803
- #: class-multisite.php:571
804
- msgid ""
805
- "Some things can't be done automatically. Before you migrate, please check "
806
- "for: "
807
  msgstr ""
808
 
809
- #: class-multisite.php:574 lets-encrypt/wizard/templates/activate.php:20
810
- #: lets-encrypt/wizard/templates/activate.php:49
811
- msgid ""
812
- "Images, stylesheets or scripts from a domain without an SSL certificate: "
813
- "remove them or move to your own server."
814
  msgstr ""
815
 
816
- #: class-multisite.php:576 class-multisite.php:604
817
- msgid ""
818
- "You can also let the automatic scan of the pro version handle this for you, "
819
- "and get premium support and increased security with HSTS included."
820
  msgstr ""
821
 
822
- #: class-multisite.php:578 class-multisite.php:606
823
- msgid "Check out Really Simple SSL Premium"
824
  msgstr ""
825
 
826
- #: class-multisite.php:583
827
- msgid "Activate SSL networkwide"
828
  msgstr ""
829
 
830
- #: class-multisite.php:586
831
- msgid "Activate SSL per site"
832
  msgstr ""
833
 
834
- #: class-multisite.php:589
835
- msgid ""
836
- "Networkwide activation does not check if a site has an SSL certificate. It "
837
- "just migrates all sites to SSL."
838
  msgstr ""
839
 
840
- #: class-multisite.php:1033
841
- #, php-format
842
- msgid "Conversion of websites %s percent complete."
843
  msgstr ""
844
 
845
- #: class-multisite.php:1034
846
- msgid ""
847
- "Site conversion in progress. Please refresh this page to check if the "
848
- "process has finished. It will proceed in the background."
849
  msgstr ""
850
 
851
- #: class-multisite.php:1035
852
- #, php-format
853
- msgid ""
854
- "If the conversion does not proceed after a few minutes, click %shere%s to "
855
- "force the conversion process."
856
  msgstr ""
857
 
858
- #: class-multisite.php:1039
859
- msgid "Conversion of websites completed."
860
  msgstr ""
861
 
862
- #: class-multisite.php:1041
863
- msgid "Really Simple SSL has converted all your websites to SSL."
864
  msgstr ""
865
 
866
- #: class-multisite.php:1044
867
- msgid "Really Simple SSL has converted all your websites to non SSL."
868
  msgstr ""
869
 
870
- #: class-site-health.php:32
871
- msgid "SSL Status Test"
872
  msgstr ""
873
 
874
- #: class-site-health.php:38
875
- msgid "Security Headers Test"
876
  msgstr ""
877
 
878
- #: class-site-health.php:55
879
- msgid "Recommended security headers installed"
880
  msgstr ""
881
 
882
- #: class-site-health.php:63
883
- msgid "The recommended security headers are detected on your site."
884
  msgstr ""
885
 
886
- #: class-site-health.php:75
887
- msgid "Not all recommended security headers are installed"
888
  msgstr ""
889
 
890
- #: class-site-health.php:76
891
- msgid "Your .htaccess file does not contain all recommended security headers."
892
  msgstr ""
893
 
894
- #: class-site-health.php:80
895
- msgid "Learn more about security headers"
 
896
  msgstr ""
897
 
898
- #: class-site-health.php:99
899
- msgid "301 SSL redirect enabled"
900
  msgstr ""
901
 
902
- #: class-site-health.php:107
903
- msgid "You have set a 301 redirect to SSL. This is important for SEO purposes"
904
  msgstr ""
905
 
906
- #: class-site-health.php:116
907
- msgid "SSL is not enabled."
908
  msgstr ""
909
 
910
- #: class-site-health.php:119
911
- msgid ""
912
- "Really Simple SSL detected an SSL certificate, but has not been configured "
913
- "to enforce SSL."
914
  msgstr ""
915
 
916
- #: class-site-health.php:129
917
- msgid "No SSL detected."
 
 
918
  msgstr ""
919
 
920
- #: class-site-health.php:132
921
- msgid ""
922
- "Really Simple SSL is installed, but no valid SSL certificate is detected."
923
  msgstr ""
924
 
925
- #: class-site-health.php:138
926
- msgid "No 301 redirect to SSL enabled."
927
  msgstr ""
928
 
929
- #: class-site-health.php:141
930
- msgid "To ensure all traffic passes through SSL, please enable a 301 redirect."
 
931
  msgstr ""
932
 
933
- #: class-site-health.php:146
934
- msgid "Enable 301 redirect"
935
  msgstr ""
936
 
937
- #: class-site-health.php:150
938
- msgid "301 .htaccess redirect is not enabled."
 
939
  msgstr ""
940
 
941
- #: class-site-health.php:153
942
- msgid ""
943
- "The 301 .htaccess redirect is the fastest and most reliable redirect option."
944
  msgstr ""
945
 
946
- #: grid/templates/grid-container.php:6
947
- #: lets-encrypt/wizard/templates/content.php:8
948
- msgid "Changes saved successfully"
949
  msgstr ""
950
 
951
- #: grid/templates/header.php:5
952
- msgid "Save settings"
953
  msgstr ""
954
 
955
- #: grid/templates/other-plugins.php:40
956
- msgid "Beautiful recipes optimized for Google "
957
  msgstr ""
958
 
959
- #: grid/templates/progress-footer.php:6
960
- msgid "SSL Activated"
 
961
  msgstr ""
962
 
963
- #: grid/templates/progress-footer.php:9
964
- msgid "SSL Not activated"
965
  msgstr ""
966
 
967
- #: grid/templates/progress-footer.php:19
968
- msgid "Go PRO!"
969
  msgstr ""
970
 
971
- #: grid/templates/progress-footer.php:39
972
- msgid "301 Redirect"
 
 
 
973
  msgstr ""
974
 
975
- #: grid/templates/progress-header.php:7
976
- msgid "All tasks"
977
  msgstr ""
978
 
979
- #: grid/templates/progress-header.php:15
980
- msgid "Remaining tasks"
981
  msgstr ""
982
 
983
- #: grid/templates/progress.php:32
984
- msgid "SSL configuration finished!"
985
  msgstr ""
986
 
987
- #: grid/templates/settings-footer.php:3
988
- #: lets-encrypt/wizard/class-field.php:1302
989
- msgid "Save"
990
  msgstr ""
991
 
992
- #: grid/templates/support-footer.php:3
993
- msgid "Download system status"
994
  msgstr ""
995
 
996
- #: grid/templates/support-footer.php:6
997
- msgid "Server type:"
998
  msgstr ""
999
 
1000
- #: grid/templates/support-footer.php:7
1001
- msgid "SSL type:"
1002
  msgstr ""
1003
 
1004
- #: grid/templates/support.php:7
1005
- msgid "General Issues"
1006
  msgstr ""
1007
 
1008
- #: grid/templates/support.php:14
1009
- msgid "Redirect loops"
1010
  msgstr ""
1011
 
1012
- #: grid/templates/support.php:21
1013
- msgid "Multisite"
1014
  msgstr ""
1015
 
1016
- #: grid/templates/support.php:28
1017
- msgid "Really Simple SSL Pro"
1018
  msgstr ""
1019
 
1020
- #: grid/templates/support.php:35
1021
- msgid "Mixed Content"
1022
  msgstr ""
1023
 
1024
- #: grid/templates/support.php:42
1025
- msgid "Elementor"
1026
  msgstr ""
1027
 
1028
- #: grid/templates/tips-tricks.php:7
1029
- msgid "Is your site still not secure? Do the extensive site scan"
1030
  msgstr ""
1031
 
1032
- #: grid/templates/tips-tricks.php:10 grid/templates/tips-tricks.php:18
1033
- #: grid/templates/tips-tricks.php:26 grid/templates/tips-tricks.php:34
1034
- #: grid/templates/tips-tricks.php:42 grid/templates/tips-tricks.php:50
1035
- msgid "Read more"
1036
  msgstr ""
1037
 
1038
- #: grid/templates/tips-tricks.php:15
1039
- msgid "Improve security: Enable HTTP Strict Transport Security (HSTS)"
1040
  msgstr ""
1041
 
1042
- #: grid/templates/tips-tricks.php:23
1043
- msgid "Improve security: Add security headers"
1044
  msgstr ""
1045
 
1046
- #: grid/templates/tips-tricks.php:31
1047
- msgid "Adding a Content Security Policy"
1048
  msgstr ""
1049
 
1050
- #: grid/templates/tips-tricks.php:39
1051
- msgid "Adding a Permission Policy"
1052
  msgstr ""
1053
 
1054
- #: grid/templates/tips-tricks.php:47
1055
- msgid "Information about landing page redirects"
 
1056
  msgstr ""
1057
 
1058
- #: grid/templates/tips-tricks.php:56
1059
- #, php-format
1060
- msgid "Any questions? See the %sdocumentation%s or the %sWordPress Forum%s."
1061
  msgstr ""
1062
 
1063
- #: lets-encrypt/class-letsencrypt-handler.php:188
1064
- msgid "It is not possible to install Let's Encrypt on a localhost environment."
1065
  msgstr ""
1066
 
1067
- #: lets-encrypt/class-letsencrypt-handler.php:193
1068
- msgid ""
1069
- "It is not possible to install Let's Encrypt on a subsite. Please go to the "
1070
- "main site of your website."
1071
  msgstr ""
1072
 
1073
- #: lets-encrypt/class-letsencrypt-handler.php:198
1074
- msgid ""
1075
- "It is not possible to install Let's Encrypt on a subfolder configuration."
1076
  msgstr ""
1077
 
1078
- #: lets-encrypt/class-letsencrypt-handler.php:202
1079
- msgid "Your domain meets the requirements for Let's Encrypt."
1080
  msgstr ""
1081
 
1082
- #: lets-encrypt/class-letsencrypt-handler.php:266
1083
- msgid "(unknown)"
 
1084
  msgstr ""
1085
 
1086
- #: lets-encrypt/class-letsencrypt-handler.php:272
1087
- #, php-format
1088
- msgid "Your certificate will expire on %s."
1089
  msgstr ""
1090
 
1091
- #: lets-encrypt/class-letsencrypt-handler.php:272
1092
- msgid "Continue to renew."
1093
  msgstr ""
1094
 
1095
- #: lets-encrypt/class-letsencrypt-handler.php:276
1096
- msgid "You already have a valid SSL certificate."
 
 
 
 
1097
  msgstr ""
1098
 
1099
- #: lets-encrypt/class-letsencrypt-handler.php:282
1100
- msgid "SSL certificate should be generated and installed."
1101
  msgstr ""
1102
 
1103
- #: lets-encrypt/class-letsencrypt-handler.php:313
1104
- msgid ""
1105
- "The Hosting Panel software was not recognized. Depending on your hosting "
1106
- "provider, the generated certificate may need to be installed manually."
1107
  msgstr ""
1108
 
1109
- #: lets-encrypt/class-letsencrypt-handler.php:317
1110
- msgid ""
1111
- "CPanel recognized. Possibly the certificate can be installed automatically."
1112
  msgstr ""
1113
 
1114
- #: lets-encrypt/class-letsencrypt-handler.php:320
1115
- msgid ""
1116
- "Plesk recognized. Possibly the certificate can be installed automatically."
1117
  msgstr ""
1118
 
1119
- #: lets-encrypt/class-letsencrypt-handler.php:323
1120
- msgid ""
1121
- "DirectAdmin recognized. Possibly the certificate can be installed "
1122
- "automatically."
1123
  msgstr ""
1124
 
1125
- #: lets-encrypt/class-letsencrypt-handler.php:339
1126
- msgid ""
1127
- "The PHP function CURL is not available on your server, which is required. "
1128
- "Please contact your hosting provider."
1129
  msgstr ""
1130
 
1131
- #: lets-encrypt/class-letsencrypt-handler.php:343
1132
- msgid "The PHP function CURL has successfully been detected."
1133
  msgstr ""
1134
 
1135
- #: lets-encrypt/class-letsencrypt-handler.php:363
1136
- msgid "Successfully retrieved account"
1137
  msgstr ""
1138
 
1139
- #: lets-encrypt/class-letsencrypt-handler.php:371
1140
- msgid "The used domain for your email address is not allowed."
1141
  msgstr ""
1142
 
1143
- #: lets-encrypt/class-letsencrypt-handler.php:372
1144
- #, php-format
1145
- msgid "Please change your email address %shere%s and try again."
1146
  msgstr ""
1147
 
1148
- #: lets-encrypt/class-letsencrypt-handler.php:381
1149
- msgid "The email address was not set. Please set the email address"
1150
  msgstr ""
1151
 
1152
- #: lets-encrypt/class-letsencrypt-handler.php:418
1153
- #: lets-encrypt/class-letsencrypt-handler.php:426
1154
- msgid "Token successfully retrieved."
1155
  msgstr ""
1156
 
1157
- #: lets-encrypt/class-letsencrypt-handler.php:433
1158
- msgid "Token not received yet."
1159
  msgstr ""
1160
 
1161
- #: lets-encrypt/class-letsencrypt-handler.php:443
1162
- #: lets-encrypt/class-letsencrypt-handler.php:661
1163
- msgid ""
1164
- "The order is invalid, possibly due to too many failed authorization "
1165
- "attempts. Please start at the previous step."
1166
  msgstr ""
1167
 
1168
- #: lets-encrypt/class-letsencrypt-handler.php:447
1169
- msgid "Order ID mismatch, regenerate order."
1170
  msgstr ""
1171
 
1172
- #: lets-encrypt/class-letsencrypt-handler.php:450
1173
- msgid "If you entered your DNS records before, they need to be changed."
1174
  msgstr ""
1175
 
1176
- #: lets-encrypt/class-letsencrypt-handler.php:474
1177
- msgid "Configured for HTTP challenge"
1178
  msgstr ""
1179
 
1180
- #: lets-encrypt/class-letsencrypt-handler.php:501
1181
- #: lets-encrypt/integrations/cpanel/functions.php:45
1182
- msgid "Token not generated. Please complete the previous step."
1183
  msgstr ""
1184
 
1185
- #: lets-encrypt/class-letsencrypt-handler.php:515
1186
- msgid "Successfully verified DNS records"
1187
  msgstr ""
1188
 
1189
- #: lets-encrypt/class-letsencrypt-handler.php:522
1190
- #, php-format
1191
- msgid "The DNS response for %s was %s, while it should be %s."
1192
  msgstr ""
1193
 
1194
- #: lets-encrypt/class-letsencrypt-handler.php:531
1195
- #, php-format
1196
- msgid "Could not verify TXT record for domain %s"
1197
  msgstr ""
1198
 
1199
- #: lets-encrypt/class-letsencrypt-handler.php:572
1200
- msgid ""
1201
- "The certificate generation was rate limited for 10 minutes because the "
1202
- "authorization failed."
1203
  msgstr ""
1204
 
1205
- #: lets-encrypt/class-letsencrypt-handler.php:574
1206
- msgid "Please double check your DNS txt record."
1207
  msgstr ""
1208
 
1209
- #: lets-encrypt/class-letsencrypt-handler.php:588
1210
- msgid "DNS records were not verified yet. Please complete the previous step."
1211
  msgstr ""
1212
 
1213
- #: lets-encrypt/class-letsencrypt-handler.php:619
1214
- msgid "Certificate already generated. It was renewed if required."
1215
  msgstr ""
1216
 
1217
- #: lets-encrypt/class-letsencrypt-handler.php:644
1218
- msgid "Authorization not completed yet."
1219
  msgstr ""
1220
 
1221
- #: lets-encrypt/class-letsencrypt-handler.php:664
1222
- msgid ""
1223
- "As your order will be regenerated, you'll need to update your DNS text "
1224
- "records."
1225
  msgstr ""
1226
 
1227
- #: lets-encrypt/class-letsencrypt-handler.php:672
1228
- msgid "OCSP not supported, the certificate will be generated without OCSP."
1229
  msgstr ""
1230
 
1231
- #: lets-encrypt/class-letsencrypt-handler.php:710
1232
- msgid "Successfully generated certificate."
1233
  msgstr ""
1234
 
1235
- #: lets-encrypt/class-letsencrypt-handler.php:716
1236
- msgid "Files not created yet..."
1237
  msgstr ""
1238
 
1239
- #: lets-encrypt/class-letsencrypt-handler.php:724
1240
- msgid "Bundle not available yet..."
1241
  msgstr ""
1242
 
1243
- #: lets-encrypt/class-letsencrypt-handler.php:768
1244
- msgid "Order successfully created."
1245
  msgstr ""
1246
 
1247
- #: lets-encrypt/class-letsencrypt-handler.php:785
1248
- msgid "Order successfully retrieved."
1249
  msgstr ""
1250
 
1251
- #: lets-encrypt/class-letsencrypt-handler.php:937
1252
- msgid "Terms & Conditions are accepted."
1253
  msgstr ""
1254
 
1255
- #: lets-encrypt/class-letsencrypt-handler.php:941
1256
- msgid ""
1257
- "The Terms & Conditions were not accepted. Please accept in the general "
1258
- "settings."
1259
  msgstr ""
1260
 
1261
- #: lets-encrypt/class-letsencrypt-handler.php:1050
1262
- #, php-format
1263
- msgid "Please complete the following step(s) first: %s"
1264
  msgstr ""
1265
 
1266
- #: lets-encrypt/class-letsencrypt-handler.php:1066
1267
- msgid ""
1268
- "The following directories do not have the necessary writing permissions."
1269
  msgstr ""
1270
 
1271
- #: lets-encrypt/class-letsencrypt-handler.php:1066
1272
- msgid "Set permissions to 644 to enable SSL generation."
 
1273
  msgstr ""
1274
 
1275
- #: lets-encrypt/class-letsencrypt-handler.php:1073
1276
- msgid "The required directories have the necessary writing permissions."
1277
  msgstr ""
1278
 
1279
- #: lets-encrypt/class-letsencrypt-handler.php:1088
1280
- msgid "The challenge directory is not created yet."
1281
  msgstr ""
1282
 
1283
- #: lets-encrypt/class-letsencrypt-handler.php:1092
1284
- msgid "The challenge directory was successfully created."
1285
  msgstr ""
1286
 
1287
- #: lets-encrypt/class-letsencrypt-handler.php:1105
1288
- msgid "The key directory is not created yet."
 
 
 
 
1289
  msgstr ""
1290
 
1291
- #: lets-encrypt/class-letsencrypt-handler.php:1109
1292
- msgid "Trying to create directory in root of website."
1293
  msgstr ""
1294
 
1295
- #: lets-encrypt/class-letsencrypt-handler.php:1117
1296
- msgid "The key directory was successfully created."
1297
  msgstr ""
1298
 
1299
- #: lets-encrypt/class-letsencrypt-handler.php:1132
1300
- msgid "The certs directory is not created yet."
1301
  msgstr ""
1302
 
1303
- #: lets-encrypt/class-letsencrypt-handler.php:1136
1304
- msgid "The certs directory was successfully created."
1305
  msgstr ""
1306
 
1307
- #: lets-encrypt/class-letsencrypt-handler.php:1195
1308
- #: lets-encrypt/class-letsencrypt-handler.php:1472
1309
- msgid "no response"
1310
  msgstr ""
1311
 
1312
- #: lets-encrypt/class-letsencrypt-handler.php:1199
1313
- #, php-format
1314
- msgid "Could not reach challenge directory over %s."
1315
  msgstr ""
1316
 
1317
- #: lets-encrypt/class-letsencrypt-handler.php:1205
1318
- msgid "Challenge directory not writable."
1319
  msgstr ""
1320
 
1321
- #: lets-encrypt/class-letsencrypt-handler.php:1219
1322
- #: lets-encrypt/class-letsencrypt-handler.php:1223
1323
- #, php-format
1324
- msgid "Error code %s."
1325
  msgstr ""
1326
 
1327
- #: lets-encrypt/class-letsencrypt-handler.php:1232
1328
- #: lets-encrypt/class-letsencrypt-handler.php:1495
1329
- #: lets-encrypt/class-letsencrypt-handler.php:1546
1330
- msgid "Successfully verified alias domain."
1331
  msgstr ""
1332
 
1333
- #: lets-encrypt/class-letsencrypt-handler.php:1430
1334
- #, php-format
1335
- msgid ""
1336
- "This is a multisite configuration with subdomains, which requires a wildcard "
1337
- "certificate. Wildcard certificates are part of the %spremium%s plan."
1338
  msgstr ""
1339
 
1340
- #: lets-encrypt/class-letsencrypt-handler.php:1435
1341
- msgid "No subdomain setup detected."
1342
  msgstr ""
1343
 
1344
- #: lets-encrypt/class-letsencrypt-handler.php:1465
1345
- msgid "Alias domain check is not relevant for a subdomain"
1346
  msgstr ""
1347
 
1348
- #: lets-encrypt/class-letsencrypt-handler.php:1484
1349
- msgid ""
1350
- "Please check if the non www version of your site also points to this website."
1351
  msgstr ""
1352
 
1353
- #: lets-encrypt/class-letsencrypt-handler.php:1486
1354
- msgid ""
1355
- "Please check if the www version of your site also points to this website."
 
 
 
 
1356
  msgstr ""
1357
 
1358
- #: lets-encrypt/class-letsencrypt-handler.php:1488
1359
- msgid "Could not verify alias domain."
 
 
1360
  msgstr ""
1361
 
1362
- #: lets-encrypt/class-letsencrypt-handler.php:1488
1363
- msgid "If this is not the case, don't add this alias to your certificate."
 
 
 
1364
  msgstr ""
1365
 
1366
- #: lets-encrypt/class-letsencrypt-handler.php:1517
1367
- msgid "Could not create test folder and file."
1368
  msgstr ""
1369
 
1370
- #: lets-encrypt/class-letsencrypt-handler.php:1518
1371
- msgid ""
1372
- "Please create a folder 'rsssl' in the uploads directory, with 644 "
1373
- "permissions."
1374
  msgstr ""
1375
 
1376
- #: lets-encrypt/class-letsencrypt-handler.php:1535
1377
- #, php-format
1378
- msgid "Error code %s"
1379
  msgstr ""
1380
 
1381
- #: lets-encrypt/class-letsencrypt-handler.php:1615
1382
- msgid "The certificate installation was rate limited. Please try again later."
1383
  msgstr ""
1384
 
1385
- #: lets-encrypt/class-letsencrypt-handler.php:1641
1386
- msgid "Not recognized server."
1387
  msgstr ""
1388
 
1389
- #: lets-encrypt/class-letsencrypt-handler.php:1647
1390
- msgid "Installation failed."
1391
  msgstr ""
1392
 
1393
- #: lets-encrypt/class-letsencrypt-handler.php:1652
1394
- #: lets-encrypt/integrations/cloudways/functions.php:22
1395
- #: lets-encrypt/integrations/cpanel/functions.php:16
1396
- #: lets-encrypt/integrations/cpanel/functions.php:33
1397
- #: lets-encrypt/integrations/directadmin/functions.php:16
1398
- #: lets-encrypt/integrations/plesk/functions.php:16
1399
- msgid ""
1400
- "The system is not ready for the installation yet. Please run the wizard "
1401
- "again."
1402
  msgstr ""
1403
 
1404
- #: lets-encrypt/cron.php:76
1405
- msgid "Once every week"
1406
  msgstr ""
1407
 
1408
- #: lets-encrypt/cron.php:80
1409
- msgid "Once every day"
1410
  msgstr ""
1411
 
1412
- #: lets-encrypt/cron.php:84
1413
- msgid "Once every 5 minutes"
1414
  msgstr ""
1415
 
1416
- #: lets-encrypt/download.php:49
1417
- msgid "File missing. Please retry the previous steps."
1418
  msgstr ""
1419
 
1420
- #: lets-encrypt/functions.php:317
1421
- #, php-format
1422
- msgid ""
1423
- "The minimum requirements for the PHP version have not been met. Please "
1424
- "upgrade to %s"
1425
  msgstr ""
1426
 
1427
- #: lets-encrypt/functions.php:321
1428
- msgid "You have the required PHP version to continue."
1429
  msgstr ""
1430
 
1431
- #: lets-encrypt/functions.php:379 lets-encrypt/functions.php:380
1432
- msgid "Instructions"
1433
  msgstr ""
1434
 
1435
- #: lets-encrypt/functions.php:383
1436
- msgid "Please complete manually in your hosting dashboard."
1437
  msgstr ""
1438
 
1439
- #: lets-encrypt/functions.php:384
1440
- msgid "Please activate it manually on your hosting dashboard."
1441
  msgstr ""
1442
 
1443
- #: lets-encrypt/functions.php:386
1444
- #, php-format
1445
- msgid "Please complete %smanually%s"
1446
  msgstr ""
1447
 
1448
- #: lets-encrypt/functions.php:387
1449
- #, php-format
1450
- msgid "Please activate it on your dashboard %smanually%s"
1451
  msgstr ""
1452
 
1453
- #: lets-encrypt/functions.php:388
1454
- msgid "Go to activation"
1455
  msgstr ""
1456
 
1457
- #: lets-encrypt/functions.php:389
1458
- msgid "Go to installation"
1459
  msgstr ""
1460
 
1461
- #: lets-encrypt/functions.php:393
1462
- #, php-format
1463
- msgid ""
1464
- "According to our information, your hosting provider supplies your account "
1465
- "with an SSL certificate by default. Please contact your %shosting support%s "
1466
- "if this is not the case."
1467
  msgstr ""
1468
 
1469
- #: lets-encrypt/functions.php:394 lets-encrypt/functions.php:398
1470
- #: lets-encrypt/functions.php:406
1471
- msgid ""
1472
- "After completing the installation, you can continue to the next step to "
1473
- "complete your configuration."
1474
  msgstr ""
1475
 
1476
- #: lets-encrypt/functions.php:396
1477
- msgid "You already have free SSL on your hosting environment."
1478
  msgstr ""
1479
 
1480
- #: lets-encrypt/functions.php:401
1481
- #, php-format
1482
- msgid ""
1483
- "According to our information, your hosting provider does not allow any kind "
1484
- "of SSL installation, other then their own paid certificate. For an "
1485
- "alternative hosting provider with SSL, see this %sarticle%s."
1486
  msgstr ""
1487
 
1488
- #: lets-encrypt/functions.php:403
1489
- msgid "Your hosting environment does not allow automatic SSL installation."
 
 
1490
  msgstr ""
1491
 
1492
- #: lets-encrypt/functions.php:405
1493
- #, php-format
1494
- msgid "You can follow these %sinstructions%s."
1495
  msgstr ""
1496
 
1497
- #: lets-encrypt/functions.php:504
1498
- #, php-format
1499
- msgid "For more information, please read this %sarticle%s"
1500
  msgstr ""
1501
 
1502
- #: lets-encrypt/integrations/cloudways/cloudways.php:166
1503
- msgid "Failed retrieving access token"
1504
  msgstr ""
1505
 
1506
- #: lets-encrypt/integrations/cloudways/cloudways.php:186
1507
- #: lets-encrypt/integrations/cloudways/cloudways.php:192
1508
- msgid "Successfully installed Let's Encrypt"
1509
  msgstr ""
1510
 
1511
- #: lets-encrypt/integrations/cloudways/cloudways.php:201
1512
- msgid "Error enabling auto renew for Let's Encrypt"
1513
  msgstr ""
1514
 
1515
- #: lets-encrypt/integrations/cloudways/cloudways.php:217
1516
- #: lets-encrypt/integrations/cloudways/cloudways.php:252
1517
- msgid "Successfully retrieved server id and app id"
1518
  msgstr ""
1519
 
1520
- #: lets-encrypt/integrations/cloudways/cloudways.php:259
1521
- msgid "Could not retrieve server list"
1522
  msgstr ""
1523
 
1524
- #: lets-encrypt/integrations/cloudways/functions.php:39
1525
- msgid "Retrieving Cloudways server data..."
1526
  msgstr ""
1527
 
1528
- #: lets-encrypt/integrations/cloudways/functions.php:45
1529
- msgid "Installing SSL certificate..."
1530
  msgstr ""
1531
 
1532
- #: lets-encrypt/integrations/cloudways/functions.php:51
1533
- msgid "Enabling auto renew..."
1534
  msgstr ""
1535
 
1536
- #: lets-encrypt/integrations/cpanel/cpanel.php:64
1537
- #: lets-encrypt/integrations/directadmin/directadmin.php:64
1538
- msgid "No valid list of domains."
1539
  msgstr ""
1540
 
1541
- #: lets-encrypt/integrations/cpanel/cpanel.php:111
1542
- #: lets-encrypt/integrations/directadmin/directadmin.php:124
1543
- #, php-format
1544
- msgid "SSL successfully installed on %s"
1545
  msgstr ""
1546
 
1547
- #: lets-encrypt/integrations/cpanel/cpanel.php:117
1548
- msgid "Errors were reported during installation"
1549
  msgstr ""
1550
 
1551
- #: lets-encrypt/integrations/cpanel/cpanel.php:157
1552
- msgid "Errors were reported during installation."
1553
  msgstr ""
1554
 
1555
- #: lets-encrypt/integrations/cpanel/cpanel.php:242
1556
- msgid "Unable to connect to cPanel"
1557
  msgstr ""
1558
 
1559
- #: lets-encrypt/integrations/cpanel/cpanel.php:246
1560
- msgid "Login credentials incorrect"
1561
  msgstr ""
1562
 
1563
- #: lets-encrypt/integrations/cpanel/cpanel.php:254
1564
- #: lets-encrypt/integrations/cpanel/cpanel.php:273
1565
- msgid "Successfully added TXT record."
1566
  msgstr ""
1567
 
1568
- #: lets-encrypt/integrations/cpanel/cpanel.php:258
1569
- #: lets-encrypt/integrations/cpanel/cpanel.php:278
1570
- msgid ""
1571
- "Could not automatically add TXT record. Please proceed manually, following "
1572
- "the steps below."
1573
  msgstr ""
1574
 
1575
- #: lets-encrypt/integrations/cpanel/functions.php:61
1576
- msgid ""
1577
- "The system is not ready for the DNS verification yet. Please run the wizard "
1578
- "again."
1579
  msgstr ""
1580
 
1581
- #: lets-encrypt/integrations/cpanel/functions.php:86
1582
- msgid "Attempting to install certificate using AutoSSL..."
1583
  msgstr ""
1584
 
1585
- #: lets-encrypt/integrations/cpanel/functions.php:95
1586
- msgid "Attempting to set DNS txt record..."
1587
  msgstr ""
1588
 
1589
- #: lets-encrypt/integrations/cpanel/functions.php:102
1590
- #: lets-encrypt/integrations/directadmin/functions.php:30
1591
- msgid "Attempting to install certificate..."
 
1592
  msgstr ""
1593
 
1594
- #: lets-encrypt/integrations/plesk/functions.php:34
1595
- msgid "Installing SSL certificate using PLESK API..."
1596
  msgstr ""
1597
 
1598
- #: lets-encrypt/integrations/plesk/plesk.php:88
1599
- msgid "Successfully installed SSL"
1600
  msgstr ""
1601
 
1602
- #: lets-encrypt/wizard/class-field.php:1294
1603
- msgid "Start"
1604
  msgstr ""
1605
 
1606
- #: lets-encrypt/wizard/class-field.php:1311
1607
- msgid "Refresh"
1608
  msgstr ""
1609
 
1610
- #: lets-encrypt/wizard/class-wizard.php:57
1611
- msgid "Verifying DNS records..."
 
1612
  msgstr ""
1613
 
1614
- #: lets-encrypt/wizard/class-wizard.php:63
1615
- #: lets-encrypt/wizard/config/steps.php:135
1616
- msgid "Generating SSL certificate..."
1617
  msgstr ""
1618
 
1619
- #: lets-encrypt/wizard/class-wizard.php:86
1620
- msgid "Checking for subdomain setup..."
1621
  msgstr ""
1622
 
1623
- #: lets-encrypt/wizard/class-wizard.php:180
1624
- #, php-format
1625
- msgid "Attempt %s."
1626
  msgstr ""
1627
 
1628
- #: lets-encrypt/wizard/class-wizard.php:402
1629
- msgid "Before you begin!"
 
1630
  msgstr ""
1631
 
1632
- #: lets-encrypt/wizard/class-wizard.php:403
1633
- msgid ""
1634
- "During the SSL generation process you might discover you want to give some "
1635
- "feedback about your experiences or need some help. If so, keep our form "
1636
- "ready and try to be as complete and precise as possible so we can assist as "
1637
- "fast as possible."
1638
  msgstr ""
1639
 
1640
- #: lets-encrypt/wizard/class-wizard.php:648
1641
- #, php-format
1642
- msgid "The wizard is currently being edited by %s"
1643
  msgstr ""
1644
 
1645
- #: lets-encrypt/wizard/class-wizard.php:650
1646
- #, php-format
1647
- msgid "If this user stops editing, the lock will expire after %s minutes."
1648
  msgstr ""
1649
 
1650
- #: lets-encrypt/wizard/class-wizard.php:831
1651
- msgid "Previous"
1652
  msgstr ""
1653
 
1654
- #: lets-encrypt/wizard/class-wizard.php:840
1655
- msgid "Save and continue"
1656
  msgstr ""
1657
 
1658
- #: lets-encrypt/wizard/class-wizard.php:897
1659
- msgid "Go to dashboard"
1660
  msgstr ""
1661
 
1662
- #: lets-encrypt/wizard/class-wizard.php:900
1663
- msgid "Go ahead, activate SSL!"
1664
  msgstr ""
1665
 
1666
- #: lets-encrypt/wizard/class-wizard.php:966
1667
- #: lets-encrypt/wizard/config/class-config.php:536
1668
- msgid "I don't know, or not listed, proceed with installation"
 
 
1669
  msgstr ""
1670
 
1671
- #: lets-encrypt/wizard/config/class-config.php:529
1672
- msgid "Yes"
 
1673
  msgstr ""
1674
 
1675
- #: lets-encrypt/wizard/config/class-config.php:530
1676
- msgid "No"
 
1677
  msgstr ""
1678
 
1679
- #: lets-encrypt/wizard/config/questions.php:39
1680
- msgid ""
1681
- "This email address will used to create a Let's Encrypt account. This is also "
1682
- "where you will receive renewal notifications."
1683
  msgstr ""
1684
 
1685
- #: lets-encrypt/wizard/config/questions.php:41
1686
- msgid "Email address"
 
1687
  msgstr ""
1688
 
1689
- #: lets-encrypt/wizard/config/questions.php:42
1690
- #: lets-encrypt/wizard/config/questions.php:73
1691
- msgid "This field is prefilled based on your configuration"
1692
  msgstr ""
1693
 
1694
- #: lets-encrypt/wizard/config/questions.php:52
1695
- msgid "Terms & Conditions"
 
1696
  msgstr ""
1697
 
1698
- #: lets-encrypt/wizard/config/questions.php:53
1699
- #, php-format
1700
- msgid "I agree to the Let's Encrypt %sTerms & Conditions%s"
1701
  msgstr ""
1702
 
1703
- #: lets-encrypt/wizard/config/questions.php:61
1704
- msgid ""
1705
- "OCSP stapling should be enabled by default. You can disable if this is not "
1706
- "supported by your hosting provider."
1707
  msgstr ""
1708
 
1709
- #: lets-encrypt/wizard/config/questions.php:62
1710
- msgid "OCSP Stapling"
 
1711
  msgstr ""
1712
 
1713
- #: lets-encrypt/wizard/config/questions.php:63
1714
- msgid "Disable OCSP Stapling"
 
1715
  msgstr ""
1716
 
1717
- #: lets-encrypt/wizard/config/questions.php:72
1718
- #: lets-encrypt/wizard/config/steps.php:51
1719
- msgid "Domain"
1720
  msgstr ""
1721
 
1722
- #: lets-encrypt/wizard/config/questions.php:84
1723
- msgid "This will include both the www. and non-www. version of your domain."
 
1724
  msgstr ""
1725
 
1726
- #: lets-encrypt/wizard/config/questions.php:84
1727
- msgid ""
1728
- "You should have the www domain pointed to the same website as the non-www "
1729
- "domain."
1730
  msgstr ""
1731
 
1732
- #: lets-encrypt/wizard/config/questions.php:86
1733
- msgid "Include alias domain too?"
 
1734
  msgstr ""
1735
 
1736
- #: lets-encrypt/wizard/config/questions.php:98
1737
- msgid ""
1738
- "By selecting your hosting provider we can tell you if your hosting provider "
1739
- "already supports free SSL, and how you can activate it."
1740
  msgstr ""
1741
 
1742
- #: lets-encrypt/wizard/config/questions.php:100
1743
- msgid ""
1744
- "By selecting your hosting provider we can tell you if your hosting provider "
1745
- "already supports free SSL, and/or where you can activate it."
1746
  msgstr ""
1747
 
1748
- #: lets-encrypt/wizard/config/questions.php:101
1749
- #, php-format
1750
- msgid ""
1751
- "If your hosting provider is not listed, and there's an SSL activation/"
1752
- "installation link, please let us %sknow%s."
1753
  msgstr ""
1754
 
1755
- #: lets-encrypt/wizard/config/questions.php:103
1756
- msgid "Hosting provider"
 
1757
  msgstr ""
1758
 
1759
- #: lets-encrypt/wizard/config/questions.php:114
1760
- msgid "CPanel host"
 
1761
  msgstr ""
1762
 
1763
- #: lets-encrypt/wizard/config/questions.php:115
1764
- msgid "The URL you use to access your cPanel dashboard. Ends on :2083."
 
1765
  msgstr ""
1766
 
1767
- #: lets-encrypt/wizard/config/questions.php:132
1768
- msgid "CPanel username"
 
1769
  msgstr ""
1770
 
1771
- #: lets-encrypt/wizard/config/questions.php:149
1772
- msgid "CPanel password"
 
1773
  msgstr ""
1774
 
1775
- #: lets-encrypt/wizard/config/questions.php:165
1776
- msgid "DirectAdmin host"
 
1777
  msgstr ""
1778
 
1779
- #: lets-encrypt/wizard/config/questions.php:166
1780
- msgid "The URL you use to access your DirectAdmin dashboard. Ends on :2222."
 
1781
  msgstr ""
1782
 
1783
- #: lets-encrypt/wizard/config/questions.php:183
1784
- msgid "DirectAdmin username"
 
1785
  msgstr ""
1786
 
1787
- #: lets-encrypt/wizard/config/questions.php:200
1788
- msgid "DirectAdmin password"
 
1789
  msgstr ""
1790
 
1791
- #: lets-encrypt/wizard/config/questions.php:218
1792
- msgid "CloudWays user email"
 
 
1793
  msgstr ""
1794
 
1795
- #: lets-encrypt/wizard/config/questions.php:231
1796
- msgid "CloudWays api key"
 
1797
  msgstr ""
1798
 
1799
- #: lets-encrypt/wizard/config/questions.php:234
1800
- #, php-format
1801
- msgid ""
1802
- "You can find your api key %shere%s (make sure you're logged in with your "
1803
- "main account)."
1804
  msgstr ""
1805
 
1806
- #: lets-encrypt/wizard/config/questions.php:246
1807
- msgid "Plesk host"
 
1808
  msgstr ""
1809
 
1810
- #: lets-encrypt/wizard/config/questions.php:247
1811
- msgid "The URL you use to access your Plesk dashboard. Ends on :8443."
 
1812
  msgstr ""
1813
 
1814
- #: lets-encrypt/wizard/config/questions.php:263
1815
- msgid "Plesk username"
 
 
 
1816
  msgstr ""
1817
 
1818
- #: lets-encrypt/wizard/config/questions.php:264
1819
- #, php-format
1820
- msgid "You can find your Plesk username and password in %s"
 
1821
  msgstr ""
1822
 
1823
- #: lets-encrypt/wizard/config/questions.php:281
1824
- msgid "Plesk password"
 
1825
  msgstr ""
1826
 
1827
- #: lets-encrypt/wizard/config/questions.php:298
1828
- msgid "Credentials storage"
 
1829
  msgstr ""
1830
 
1831
- #: lets-encrypt/wizard/config/questions.php:299
1832
- msgid ""
1833
- "Store for renewal purposes. If not stored, renewal may need to be done "
1834
- "manually."
1835
  msgstr ""
1836
 
1837
- #: lets-encrypt/wizard/config/steps.php:8
1838
- msgid "System Status"
 
1839
  msgstr ""
1840
 
1841
- #: lets-encrypt/wizard/config/steps.php:9
1842
- msgid "Detected status of your setup."
 
 
1843
  msgstr ""
1844
 
1845
- #: lets-encrypt/wizard/config/steps.php:12
1846
- msgid "Checking PHP version..."
 
1847
  msgstr ""
1848
 
1849
- #: lets-encrypt/wizard/config/steps.php:17
1850
- msgid "Checking SSL certificate..."
 
1851
  msgstr ""
1852
 
1853
- #: lets-encrypt/wizard/config/steps.php:22
1854
- msgid "Checking if CURL is available..."
 
 
 
1855
  msgstr ""
1856
 
1857
- #: lets-encrypt/wizard/config/steps.php:27
1858
- msgid "Checking server software..."
 
1859
  msgstr ""
1860
 
1861
- #: lets-encrypt/wizard/config/steps.php:32
1862
- msgid "Checking alias domain..."
 
 
 
1863
  msgstr ""
1864
 
1865
- #: lets-encrypt/wizard/config/steps.php:37
1866
- msgid "Checking for website configuration..."
 
1867
  msgstr ""
1868
 
1869
- #: lets-encrypt/wizard/config/steps.php:45
1870
- msgid "General settings"
 
1871
  msgstr ""
1872
 
1873
- #: lets-encrypt/wizard/config/steps.php:47
1874
- #, php-format
1875
- msgid ""
1876
- "We have tried to make our Wizard as simple and fast as possible. Although "
1877
- "these questions are all necessary, if there’s any way you think we can "
1878
- "improve the plugin, please let us %sknow%s!"
1879
  msgstr ""
1880
 
1881
- #: lets-encrypt/wizard/config/steps.php:48
1882
- #, php-format
1883
- msgid ""
1884
- " Please note that you can always save and finish the wizard later, use our "
1885
- "%sdocumentation%s for additional information or log a %ssupport ticket%s if "
1886
- "you need our assistance."
1887
  msgstr ""
1888
 
1889
- #: lets-encrypt/wizard/config/steps.php:52
1890
- msgid ""
1891
- "Letʼs Encrypt is a free, automated and open certificate authority brought to "
1892
- "you by the nonprofit Internet Security Research Group (ISRG)."
1893
  msgstr ""
1894
 
1895
- #: lets-encrypt/wizard/config/steps.php:55
1896
- msgid "Hosting"
 
1897
  msgstr ""
1898
 
1899
- #: lets-encrypt/wizard/config/steps.php:56
1900
- msgid ""
1901
- "Below you will find the instructions for different hosting environments and "
1902
- "configurations. If you start the process with the necessary instructions and "
1903
- "credentials the next view steps will be done in no time."
1904
  msgstr ""
1905
 
1906
- #: lets-encrypt/wizard/config/steps.php:64
1907
- msgid "Directories"
 
1908
  msgstr ""
1909
 
1910
- #: lets-encrypt/wizard/config/steps.php:67
1911
- msgid "Checking challenge directory..."
 
1912
  msgstr ""
1913
 
1914
- #: lets-encrypt/wizard/config/steps.php:73
1915
- msgid "Checking key directory..."
 
1916
  msgstr ""
1917
 
1918
- #: lets-encrypt/wizard/config/steps.php:79
1919
- msgid "Checking certs directory..."
 
 
1920
  msgstr ""
1921
 
1922
- #: lets-encrypt/wizard/config/steps.php:85
1923
- msgid "Checking permissions..."
 
 
1924
  msgstr ""
1925
 
1926
- #: lets-encrypt/wizard/config/steps.php:92
1927
- msgid "Checking challenge directory reachable over http..."
 
1928
  msgstr ""
1929
 
1930
- #: lets-encrypt/wizard/config/steps.php:101
1931
- msgid "DNS Verification"
 
1932
  msgstr ""
1933
 
1934
- #: lets-encrypt/wizard/config/steps.php:104
1935
- #: lets-encrypt/wizard/config/steps.php:129
1936
- msgid "Creating account..."
1937
  msgstr ""
1938
 
1939
- #: lets-encrypt/wizard/config/steps.php:110
1940
- msgid "Retrieving DNS verification token..."
 
1941
  msgstr ""
1942
 
1943
- #: lets-encrypt/wizard/config/steps.php:119
1944
- msgid "Generation"
 
1945
  msgstr ""
1946
 
1947
- #: lets-encrypt/wizard/config/steps.php:120
1948
- msgid "We will now generate your SSL Certificate"
 
1949
  msgstr ""
1950
 
1951
- #: lets-encrypt/wizard/config/steps.php:123
1952
- msgid "Checking if Terms & Conditions are accepted..."
 
1953
  msgstr ""
1954
 
1955
- #: lets-encrypt/wizard/config/steps.php:144
1956
- #: lets-encrypt/wizard/templates/menu.php:2
1957
- msgid "Installation"
1958
  msgstr ""
1959
 
1960
- #: lets-encrypt/wizard/config/steps.php:147
1961
- msgid "Searching for link to SSL installation page on your server..."
 
1962
  msgstr ""
1963
 
1964
- #: lets-encrypt/wizard/notices.php:6
1965
- msgid ""
1966
- "The non-www version of your site does not point to this website. This is "
1967
- "recommended, as it will allow you to add it to the certificate as well."
1968
  msgstr ""
1969
 
1970
- #: lets-encrypt/wizard/notices.php:8
1971
- msgid ""
1972
- "The www version of your site does not point to this website. This is "
1973
- "recommended, as it will allow you to add it to the certificate as well."
1974
  msgstr ""
1975
 
1976
- #: lets-encrypt/wizard/notices.php:41
1977
- #, php-format
1978
- msgid "Your certificate is valid to: %s"
1979
  msgstr ""
1980
 
1981
- #: lets-encrypt/wizard/notices.php:45
1982
- #, php-format
1983
- msgid "Your certificate will expire on %s. You can renew it %shere%s."
1984
  msgstr ""
1985
 
1986
- #: lets-encrypt/wizard/notices.php:60
1987
- #, php-format
1988
- msgid ""
1989
- "The automatic installation of your certificate has failed. Please check your "
1990
- "credentials, and retry the %sinstallation%s."
1991
  msgstr ""
1992
 
1993
- #: lets-encrypt/wizard/notices.php:67
1994
- #, php-format
1995
- msgid ""
1996
- "The SSL certificate has been renewed, and requires manual %sinstallation%s "
1997
- "in your hosting dashboard."
1998
  msgstr ""
1999
 
2000
- #: lets-encrypt/wizard/notices.php:74
2001
- #, php-format
2002
- msgid ""
2003
- "Automatic renewal of your certificate was not possible. The SSL certificate "
2004
- "should be %srenewed%s manually."
2005
  msgstr ""
2006
 
2007
- #: lets-encrypt/wizard/notices.php:81
2008
- msgid "Your certificate will be renewed and installed automatically."
 
2009
  msgstr ""
2010
 
2011
- #: lets-encrypt/wizard/notices.php:96
2012
- msgid ""
2013
- "Your server provides shell functionality, which offers additional methods to "
2014
- "install SSL. If installing SSL using the default methods is not possible, "
2015
- "you can install the shell add on."
2016
  msgstr ""
2017
 
2018
- #: lets-encrypt/wizard/notices.php:99
2019
- msgid "Read more about this add on."
 
2020
  msgstr ""
2021
 
2022
- #: lets-encrypt/wizard/notices.php:116
2023
- msgid "Your Key and Certificate directories are not properly protected."
 
2024
  msgstr ""
2025
 
2026
- #: lets-encrypt/wizard/notices.php:148
2027
- msgid "You have switched to DNS verification."
 
2028
  msgstr ""
2029
 
2030
- #: lets-encrypt/wizard/notices.php:149
2031
- msgid "You can switch back to directory verification here."
 
2032
  msgstr ""
2033
 
2034
- #: lets-encrypt/wizard/notices.php:150
2035
- msgid "Switch to directory verification"
 
2036
  msgstr ""
2037
 
2038
- #: lets-encrypt/wizard/notices.php:153
2039
- #, php-format
2040
- msgid ""
2041
- "If you also want to secure subdomains like mail.domain.com, cpanel.domain."
2042
- "com, you have to use the %sDNS%s challenge."
2043
  msgstr ""
2044
 
2045
- #: lets-encrypt/wizard/notices.php:154
2046
- msgid ""
2047
- "Please note that auto-renewal with a DNS challenge might not be possible."
2048
  msgstr ""
2049
 
2050
- #: lets-encrypt/wizard/notices.php:155
2051
- #: lets-encrypt/wizard/templates/directories.php:17
2052
- #: lets-encrypt/wizard/templates/directories.php:42
2053
- msgid "Switch to DNS verification"
2054
  msgstr ""
2055
 
2056
- #: lets-encrypt/wizard/templates/activate.php:13
2057
- msgid "Your site is secured with a valid SSL certificate!"
 
2058
  msgstr ""
2059
 
2060
- #: lets-encrypt/wizard/templates/activate.php:13
2061
- #: lets-encrypt/wizard/templates/activate.php:42
2062
- msgid ""
2063
- "In some cases it takes a few minutes for the certificate to get detected. In "
2064
- "that case, check back in a few minutes."
2065
  msgstr ""
2066
 
2067
- #: lets-encrypt/wizard/templates/activate.php:16
2068
- msgid "If you just activated SSL, please check for: "
 
2069
  msgstr ""
2070
 
2071
- #: lets-encrypt/wizard/templates/activate.php:21
2072
- msgid "SSL was already activated on your website!"
 
2073
  msgstr ""
2074
 
2075
- #: lets-encrypt/wizard/templates/activate.php:42
2076
- msgid "Almost ready to activate SSL!"
 
2077
  msgstr ""
2078
 
2079
- #: lets-encrypt/wizard/templates/activate.php:55
2080
- #, php-format
2081
- msgid ""
2082
- "We strongly recommend to create a %sbackup%s of your site before activating "
2083
- "SSL"
2084
  msgstr ""
2085
 
2086
- #: lets-encrypt/wizard/templates/activate.php:60
2087
- msgid ""
2088
- "No SSL certificate has been detected yet. In some cases this takes a few "
2089
- "minutes."
2090
  msgstr ""
2091
 
2092
- #: lets-encrypt/wizard/templates/content.php:18
2093
- msgid ""
2094
- "This will clear all settings for Really Simple SSL Let\\'s Encrypt, and will "
2095
- "clear the order in the ssl/keys directory."
2096
  msgstr ""
2097
 
2098
- #: lets-encrypt/wizard/templates/content.php:18
2099
- msgid "Reset Let's Encrypt"
 
2100
  msgstr ""
2101
 
2102
- #: lets-encrypt/wizard/templates/content.php:22
2103
- msgid "Notifications"
 
 
2104
  msgstr ""
2105
 
2106
- #: lets-encrypt/wizard/templates/directories.php:9
2107
- #: lets-encrypt/wizard/templates/dns-verification.php:7
2108
- #: lets-encrypt/wizard/templates/installation.php:18
2109
- msgid "Next step"
2110
  msgstr ""
2111
 
2112
- #: lets-encrypt/wizard/templates/directories.php:15
2113
- msgid ""
2114
- "If the challenge directory cannot be created, or is not reachable, you can "
2115
- "either remove the server limitation, or change to DNS verification."
2116
  msgstr ""
2117
 
2118
- #: lets-encrypt/wizard/templates/directories.php:21
2119
- msgid "Create a challenge directory"
 
2120
  msgstr ""
2121
 
2122
- #: lets-encrypt/wizard/templates/directories.php:22
2123
- msgid "The challenge directory is used to verify the domain ownership."
 
 
 
2124
  msgstr ""
2125
 
2126
- #: lets-encrypt/wizard/templates/directories.php:25
2127
- msgid ""
2128
- "Navigate in FTP or File Manager to the root of your WordPress installation:"
2129
  msgstr ""
2130
 
2131
- #: lets-encrypt/wizard/templates/directories.php:29
2132
- msgid "Create a folder called “.well-known”"
 
2133
  msgstr ""
2134
 
2135
- #: lets-encrypt/wizard/templates/directories.php:32
2136
- msgid ""
2137
- "Inside the folder called “.well-known” create a new folder called “acme-"
2138
- "challenge”, with 644 writing permissions."
2139
  msgstr ""
2140
 
2141
- #: lets-encrypt/wizard/templates/directories.php:35
2142
- #: lets-encrypt/wizard/templates/directories.php:60
2143
- #: lets-encrypt/wizard/templates/directories.php:79
2144
- msgid "Click the refresh button."
2145
  msgstr ""
2146
 
2147
- #: lets-encrypt/wizard/templates/directories.php:39
2148
- msgid "Or you can switch to DNS verification"
 
2149
  msgstr ""
2150
 
2151
- #: lets-encrypt/wizard/templates/directories.php:41
2152
- msgid ""
2153
- "If the challenge directory cannot be created, you can either remove the "
2154
- "server limitation, or change to DNS verification."
2155
  msgstr ""
2156
 
2157
- #: lets-encrypt/wizard/templates/directories.php:46
2158
- msgid "Create a key directory"
 
2159
  msgstr ""
2160
 
2161
- #: lets-encrypt/wizard/templates/directories.php:47
2162
- msgid "The key directory is needed to store the generated keys."
 
 
2163
  msgstr ""
2164
 
2165
- #: lets-encrypt/wizard/templates/directories.php:47
2166
- #: lets-encrypt/wizard/templates/directories.php:66
2167
- msgid ""
2168
- "By placing it outside the root folder, it is not accessible over the "
2169
- "internet."
2170
  msgstr ""
2171
 
2172
- #: lets-encrypt/wizard/templates/directories.php:50
2173
- #: lets-encrypt/wizard/templates/directories.php:69
2174
- msgid ""
2175
- "Navigate in FTP or File Manager to one level above the root of your "
2176
- "WordPress installation:"
2177
  msgstr ""
2178
 
2179
- #: lets-encrypt/wizard/templates/directories.php:54
2180
- #: lets-encrypt/wizard/templates/directories.php:73
2181
- msgid "Create a folder called “ssl”"
2182
  msgstr ""
2183
 
2184
- #: lets-encrypt/wizard/templates/directories.php:57
2185
- msgid ""
2186
- "Inside the folder called “ssl” create a new folder called “keys”, with 644 "
2187
- "writing permissions."
2188
  msgstr ""
2189
 
2190
- #: lets-encrypt/wizard/templates/directories.php:65
2191
- msgid "Create a certs directory"
 
2192
  msgstr ""
2193
 
2194
- #: lets-encrypt/wizard/templates/directories.php:66
2195
- msgid "The certificate will get stored in this directory."
 
2196
  msgstr ""
2197
 
2198
- #: lets-encrypt/wizard/templates/directories.php:76
2199
- msgid ""
2200
- "Inside the folder called “ssl” create a new folder called “certs”, with 644 "
2201
- "writing permissions."
2202
  msgstr ""
2203
 
2204
- #: lets-encrypt/wizard/templates/dns-verification.php:8
2205
- msgid ""
2206
- "Add the following token as text record to your DNS records. We recommend to "
2207
- "use a short TTL during installation, in case you need to change it."
2208
  msgstr ""
2209
 
2210
- #: lets-encrypt/wizard/templates/dns-verification.php:20
2211
- msgid "domain"
 
2212
  msgstr ""
2213
 
2214
- #: lets-encrypt/wizard/templates/dns-verification.php:21
2215
- msgid "Value"
 
2216
  msgstr ""
2217
 
2218
- #: lets-encrypt/wizard/templates/generation.php:11
2219
- msgid ""
2220
- "We could not check the DNS records. If you just added the record, please "
2221
- "check in a few minutes."
2222
  msgstr ""
2223
 
2224
- #: lets-encrypt/wizard/templates/generation.php:12
2225
- #, php-format
2226
- msgid "You can manually check the DNS records in an %sonline tool%s."
 
2227
  msgstr ""
2228
 
2229
- #: lets-encrypt/wizard/templates/generation.php:13
2230
- msgid ""
2231
- "If you're sure it's set correctly, you can click the button to skip the DNS "
2232
- "check."
2233
  msgstr ""
2234
 
2235
- #: lets-encrypt/wizard/templates/generation.php:16
2236
- msgid "Skip DNS check"
 
2237
  msgstr ""
2238
 
2239
- #: lets-encrypt/wizard/templates/installation.php:14
2240
- msgid "copied!"
 
2241
  msgstr ""
2242
 
2243
- #: lets-encrypt/wizard/templates/installation.php:22
2244
- msgid "Install your certificate."
 
2245
  msgstr ""
2246
 
2247
- #: lets-encrypt/wizard/templates/installation.php:25
2248
- msgid "Certificate (CRT)"
 
2249
  msgstr ""
2250
 
2251
- #: lets-encrypt/wizard/templates/installation.php:26
2252
- msgid ""
2253
- "This is the certificate, which you need to install in your hosting dashboard."
2254
  msgstr ""
2255
 
2256
- #: lets-encrypt/wizard/templates/installation.php:30
2257
- #: lets-encrypt/wi
1
+ # Copyright (C) 2022 Really Simple Plugins
2
+ # This file is distributed under the GPL2.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Really Simple SSL 6.0.3\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/really-simple-ssl\n"
7
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
+ "Language-Team: LANGUAGE <LL@li.org>\n"
 
 
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-11-03T16:14:22+00:00\n"
13
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
+ "X-Generator: WP-CLI 2.6.0\n"
15
+ "X-Domain: really-simple-ssl\n"
16
+
17
+ #. Plugin Name of the plugin
18
+ msgid "Really Simple SSL"
19
+ msgstr ""
20
+
21
+ #. Plugin URI of the plugin
22
+ msgid "https://really-simple-ssl.com"
23
+ msgstr ""
24
+
25
+ #. Description of the plugin
26
+ msgid "Lightweight SSL & Hardening Plugin"
27
+ msgstr ""
28
+
29
+ #. Author of the plugin
30
+ msgid "Really Simple Plugins"
31
+ msgstr ""
32
+
33
+ #. Author URI of the plugin
34
+ msgid "https://really-simple-plugins.com"
35
+ msgstr ""
36
+
37
+ #: class-admin.php:20
38
+ #: class-cache.php:10
39
+ #: class-certificate.php:10
40
+ #: class-front-end.php:15
41
+ #: class-site-health.php:8
42
  #: lets-encrypt/class-letsencrypt-handler.php:30
43
+ #: onboarding/class-onboarding.php:18
44
+ #: security/firewall-manager.php:8
45
  msgid "%s is a singleton class and you cannot create a second instance."
46
  msgstr ""
47
 
48
+ #: class-admin.php:104
49
+ msgid "Really Simple SSL and Really Simple SSL add-ons do not process any personal identifiable information, so the GDPR does not apply to these plugins or usage of these plugins on your website. You can find our privacy policy <a href=\"%s\" target=\"_blank\">here</a>."
 
 
 
 
 
50
  msgstr ""
51
 
52
+ #: class-admin.php:466
53
+ #: settings/build/index.js:382
54
+ #: settings/src/Onboarding/Onboarding.js:269
55
+ msgid "Dismiss"
56
  msgstr ""
57
 
58
+ #: class-admin.php:467
59
+ #: settings/build/index.js:382
60
+ #: settings/src/Dashboard/TaskElement.js:29
61
+ #: settings/src/Settings/Help.js:26
62
+ msgid "More info"
63
  msgstr ""
64
 
65
+ #: class-admin.php:1599
66
+ msgid "Hi, Really Simple SSL has kept your site secure for some time now, awesome! If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %smessage%s."
 
 
 
67
  msgstr ""
68
 
69
+ #: class-admin.php:1601
70
+ msgid "Hi, Really Simple SSL has kept your site secure for a month now, awesome! If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %smessage%s."
 
 
71
  msgstr ""
72
 
73
+ #: class-admin.php:1607
74
+ msgid "Leave a review"
75
  msgstr ""
76
 
77
+ #: class-admin.php:1608
78
+ msgid "Maybe later"
79
  msgstr ""
80
 
81
+ #: class-admin.php:1609
82
+ msgid "Don't show again"
83
  msgstr ""
84
 
85
+ #: class-admin.php:1764
86
+ msgid "Completed"
 
 
87
  msgstr ""
88
 
89
+ #: class-admin.php:1765
90
+ #: settings/build/index.js:382
91
+ #: settings/src/Settings/MixedContentScan.js:198
92
+ msgid "Warning"
 
93
  msgstr ""
94
 
95
+ #: class-admin.php:1766
96
+ msgid "Open"
 
 
 
97
  msgstr ""
98
 
99
+ #: class-admin.php:1767
100
+ #: settings/build/index.js:382
101
+ #: settings/src/Dashboard/OtherPlugins.js:85
102
+ #: settings/src/Settings/SettingsGroup.js:133
103
+ msgid "Upgrade"
104
+ msgstr ""
105
+
106
+ #: class-admin.php:1804
107
+ msgid "No recommended redirect rules detected."
108
+ msgstr ""
109
+
110
+ #: class-admin.php:1819
111
+ msgid "(Unknown)"
112
+ msgstr ""
113
+
114
+ #: class-admin.php:1828
115
+ msgid "Your wp-config.php has to be edited, but is not writable."
116
+ msgstr ""
117
+
118
+ #: class-admin.php:1829
119
+ #: class-admin.php:1850
120
+ msgid "Set your wp-config.php to writable and reload this page."
121
+ msgstr ""
122
+
123
+ #: class-admin.php:1830
124
+ msgid "To safely enable SSL on your server configuration, you should add the following line of code to your wp-config.php."
125
+ msgstr ""
126
+
127
+ #: class-admin.php:1850
128
+ msgid "A definition of a site url or home url was detected in your wp-config.php, but the file is not writable."
129
+ msgstr ""
130
+
131
+ #: class-admin.php:1865
132
+ msgid "The 'force-deactivate.php' file has to be renamed to .txt. Otherwise your ssl can be deactivated by anyone on the internet."
133
+ msgstr ""
134
+
135
+ #: class-admin.php:1866
136
+ msgid "Check again"
137
+ msgstr ""
138
+
139
+ #: class-admin.php:1880
140
+ msgid "The Really Simple SSL plugin folder in the /wp-content/plugins/ directory has been renamed to %s. This might cause issues when deactivating, or with premium add-ons. To fix this you can rename the Really Simple SSL folder back to the default %s."
141
+ msgstr ""
142
+
143
+ #: class-admin.php:1895
144
+ msgid "SSL is now activated. Check if your website is secure by following this article."
145
+ msgstr ""
146
+
147
+ #: class-admin.php:1910
148
+ msgid "Really Simple SSL Pro is not up to date. Update Really Simple SSL Pro to ensure compatibility."
149
+ msgstr ""
150
+
151
+ #: class-admin.php:1925
152
+ msgid "Remember to change your URLs in external services like Google Analytics, Search Console and others. This should prevent any data loss resulting from the switch to https."
153
+ msgstr ""
154
+
155
+ #: class-admin.php:1939
156
+ msgid "SSL is enabled on your site."
157
+ msgstr ""
158
+
159
+ #: class-admin.php:1943
160
+ msgid "SSL is not enabled yet."
161
+ msgstr ""
162
+
163
+ #: class-admin.php:1960
164
+ msgid "The wp-config.php file is not writable, and needs to be edited. Please set this file to writable."
165
+ msgstr ""
166
+
167
+ #: class-admin.php:1964
168
+ msgid "No SSL detected"
169
+ msgstr ""
170
+
171
+ #: class-admin.php:1965
172
+ msgid "No SSL detected. Use the retry button to check again."
173
+ msgstr ""
174
+
175
+ #: class-admin.php:1966
176
+ #: class-admin.php:1974
177
+ #: class-admin.php:1988
178
+ msgid "Install SSL certificate"
179
+ msgstr ""
180
+
181
+ #: class-admin.php:1967
182
+ msgid "Retry"
183
+ msgstr ""
184
+
185
+ #: class-admin.php:1972
186
+ msgid "Could not test certificate"
187
+ msgstr ""
188
+
189
+ #: class-admin.php:1973
190
+ #: onboarding/config.php:175
191
+ msgid "Automatic certificate detection is not possible on your server."
192
+ msgstr ""
193
+
194
+ #: class-admin.php:1975
195
+ msgid "Check manually"
196
+ msgstr ""
197
+
198
+ #: class-admin.php:1980
199
+ msgid "An SSL certificate was detected on your site."
200
+ msgstr ""
201
+
202
+ #: class-admin.php:1985
203
+ msgid "Your SSL certificate will expire soon."
204
+ msgstr ""
205
+
206
+ #: class-admin.php:1986
207
+ msgid "SSL certificate will expire on %s."
208
+ msgstr ""
209
+
210
+ #: class-admin.php:1986
211
+ msgid "If your hosting provider auto-renews your certificate, no action is required. Alternatively, you have the option to generate an SSL certificate with Really Simple SSL."
212
+ msgstr ""
213
+
214
+ #: class-admin.php:1987
215
+ msgid "Depending on your hosting provider, %smanual installation%s may be required."
216
+ msgstr ""
217
+
218
+ #: class-admin.php:1989
219
+ msgid "Re-check"
220
+ msgstr ""
221
+
222
+ #: class-admin.php:2001
223
+ msgid "Mixed content fixer was successfully detected on the front-end."
224
+ msgstr ""
225
+
226
+ #: class-admin.php:2006
227
+ msgid "Really Simple SSL has received no response from the webpage."
228
+ msgstr ""
229
+
230
+ #: class-admin.php:2013
231
+ msgid "The mixed content fixer is active, but was not detected on the frontpage."
232
+ msgstr ""
233
+
234
+ #: class-admin.php:2018
235
+ msgid "Error occurred when retrieving the webpage."
236
+ msgstr ""
237
+
238
+ #: class-admin.php:2024
239
+ msgid "Mixed content fixer not enabled. Enable the option to fix mixed content on your site."
240
+ msgstr ""
241
+
242
+ #: class-admin.php:2030
243
+ msgid "The mixed content fixer could not be detected due to a cURL error: %s. cURL errors are often caused by an outdated version of PHP or cURL and don't affect the front-end of your site. Contact your hosting provider for a fix."
244
+ msgstr ""
245
+
246
+ #: class-admin.php:2043
247
+ msgid "301 redirect to https set."
248
+ msgstr ""
249
+
250
+ #: class-admin.php:2047
251
+ msgid "No 301 redirect is set. Enable the WordPress 301 redirect in the settings to get a 301 permanent redirect."
252
+ msgstr ""
253
+
254
+ #: class-admin.php:2062
255
+ msgid "301 redirect to https set: .htaccess redirect."
256
+ msgstr ""
257
+
258
+ #: class-admin.php:2067
259
+ msgid "WordPress 301 redirect enabled. We recommend to enable a 301 .htaccess redirect."
260
+ msgstr ""
261
+
262
+ #: class-admin.php:2074
263
+ msgid "Enable a .htaccess redirect or PHP redirect in the settings to create a 301 redirect."
264
+ msgstr ""
265
+
266
+ #: class-admin.php:2079
267
+ msgid ".htaccess redirect."
268
+ msgstr ""
269
+
270
+ #: class-admin.php:2081
271
+ msgid "The .htaccess redirect rules selected by this plugin failed in the test. Set manually or dismiss to leave on PHP redirect."
272
+ msgstr ""
273
+
274
+ #: class-admin.php:2096
275
+ msgid "Your site uses Elementor. This can require some additional steps before getting the secure lock."
276
+ msgstr ""
277
+
278
+ #: class-admin.php:2110
279
+ msgid "Your site uses Divi. This can require some additional steps before getting the secure lock."
280
+ msgstr ""
281
+
282
+ #: class-admin.php:2126
283
+ msgid "HttpOnly Secure cookies have been set automatically!"
284
+ msgstr ""
285
+
286
+ #: class-admin.php:2131
287
+ msgid "HttpOnly Secure cookies not set."
288
+ msgstr ""
289
+
290
+ #: class-admin.php:2138
291
+ msgid "To set the httponly secure cookie settings, your wp-config.php has to be edited, but the file is not writable."
292
+ msgstr ""
293
+
294
+ #: class-admin.php:2138
295
+ msgid "Add the following lines of code to your wp-config.php."
296
+ msgstr ""
297
+
298
+ #: class-admin.php:2146
299
+ msgid "Or set your wp-config.php to writable and reload this page."
300
+ msgstr ""
301
+
302
+ #: class-admin.php:2160
303
+ msgid "See which recommended security headers are not present on your website."
304
+ msgstr ""
305
+
306
+ #: class-admin.php:2166
307
+ msgid "Recommended security headers enabled."
308
+ msgstr ""
309
+
310
+ #: class-admin.php:2177
311
+ msgid "Improve security with Really Simple SSL Pro."
312
+ msgstr ""
313
+
314
+ #: class-admin.php:2191
315
+ msgid "Due to a recent update by WP Engine, we have changed your settings automatically to adapt."
316
+ msgstr ""
317
+
318
+ #: class-admin.php:2204
319
+ msgid "You have the Really Simple SSL Let's Encrypt beta add-on activated. This functionality has now been integrated in core, so you can deactivate the add-on."
320
+ msgstr ""
321
+
322
+ #: class-admin.php:2215
323
+ msgid "We have detected the %s plugin on your website."
324
+ msgstr ""
325
+
326
+ #: class-admin.php:2215
327
+ msgid "As Really Simple SSL handles all the functionality this plugin provides, we recommend to disable this plugin to prevent unexpected behavior."
328
+ msgstr ""
329
+
330
+ #: class-admin.php:2230
331
+ msgid "Black Friday sale! Get 40% Off Really Simple SSL Pro"
332
+ msgstr ""
333
+
334
+ #: class-admin.php:2246
335
+ msgid "Thanks for updating to Really Simple SSL 6.0! Check out our new features on the settings page."
336
+ msgstr ""
337
+
338
+ #: class-admin.php:2593
339
+ msgid "Are you sure?"
340
+ msgstr ""
341
+
342
+ #: class-admin.php:2604
343
+ msgid "To deactivate the plugin correctly, please select if you want to:"
344
+ msgstr ""
345
+
346
+ #: class-admin.php:2606
347
+ msgid "Deactivate, but stay on SSL."
348
+ msgstr ""
349
+
350
+ #: class-admin.php:2607
351
+ msgid "Deactivate, and revert to http. This will remove all changes by the plugin."
352
+ msgstr ""
353
+
354
+ #: class-admin.php:2609
355
+ msgid "Deactivating the plugin while keeping SSL will do the following:"
356
+ msgstr ""
357
+
358
+ #: class-admin.php:2611
359
+ msgid "The mixed content fixer will stop working"
360
+ msgstr ""
361
+
362
+ #: class-admin.php:2612
363
+ msgid "The WordPress 301 redirect will stop working"
364
+ msgstr ""
365
+
366
+ #: class-admin.php:2613
367
+ msgid "Your site address will remain https://"
368
+ msgstr ""
369
+
370
+ #: class-admin.php:2614
371
+ msgid "The .htaccess redirect will remain active"
372
+ msgstr ""
373
+
374
+ #: class-admin.php:2623
375
+ #: upgrade/upgrade-to-pro.php:361
376
+ msgid "Cancel"
377
+ msgstr ""
378
+
379
+ #: class-admin.php:2624
380
+ msgid "Deactivate, keep https"
381
+ msgstr ""
382
+
383
+ #: class-admin.php:2625
384
+ msgid "Deactivate, revert to http"
385
+ msgstr ""
386
+
387
+ #: class-admin.php:2651
388
+ #: class-admin.php:2654
389
+ #: class-multisite.php:216
390
+ #: settings/config/config.php:17
391
+ #: settings/build/index.js:382
392
+ #: settings/src/Dashboard/SecurityFeaturesBlock/SecurityFeaturesFooter.js:14
393
+ msgid "Settings"
394
+ msgstr ""
395
+
396
+ #: class-admin.php:2659
397
+ #: class-multisite.php:219
398
+ #: settings/build/index.js:382
399
+ #: settings/src/Header.js:43
400
+ msgid "Support"
401
+ msgstr ""
402
+
403
+ #: class-admin.php:2664
404
+ #: class-multisite.php:223
405
+ msgid "Improve security - Upgrade"
406
+ msgstr ""
407
+
408
+ #: class-multisite.php:114
409
+ msgid "SSL is enabled networkwide."
410
+ msgstr ""
411
+
412
+ #: class-multisite.php:118
413
+ msgid "SSL is not enabled on your network"
414
+ msgstr ""
415
+
416
+ #: class-multisite.php:131
417
+ msgid "You run a Multisite installation with subfolders, which prevents this plugin from fixing your missing server variable in the wp-config.php."
418
+ msgstr ""
419
+
420
+ #: class-multisite.php:132
421
+ msgid "Because the $_SERVER[\"HTTPS\"] variable is not set, your website may experience redirect loops."
422
+ msgstr ""
423
+
424
+ #: class-multisite.php:133
425
+ msgid "Activate networkwide to fix this."
426
+ msgstr ""
427
+
428
+ #: class-multisite.php:145
429
+ msgid "SSL activation in progress"
430
+ msgstr ""
431
+
432
+ #: class-multisite.php:146
433
+ msgid "A networkwide SSL activation process has been started, but has not been completed. Please go to the SSL settings page to complete the process."
434
+ msgstr ""
435
+
436
+ #: class-multisite.php:147
437
+ msgid "View settings page"
438
+ msgstr ""
439
+
440
+ #: class-multisite.php:161
441
+ msgid "You run a Multisite installation with subdomains, but your site doesn't have a wildcard certificate."
442
+ msgstr ""
443
+
444
+ #: class-multisite.php:162
445
+ msgid "This leads to issues when activating SSL networkwide since subdomains will be forced over SSL as well while they don't have a valid certificate."
446
+ msgstr ""
447
+
448
+ #: class-multisite.php:163
449
+ msgid "Activate SSL per site or install a wildcard certificate to fix this."
450
+ msgstr ""
451
+
452
+ #: class-site-health.php:31
453
+ msgid "SSL Status Test"
454
+ msgstr ""
455
+
456
+ #: class-site-health.php:36
457
+ msgid "Security Headers Test"
458
+ msgstr ""
459
+
460
+ #: class-site-health.php:82
461
+ msgid "The value, WP_DEBUG_LOG, has been added to this website’s configuration file. This means any errors on the site will be written to a file which is potentially available to all users."
462
+ msgstr ""
463
+
464
+ #: class-site-health.php:88
465
+ msgid "Remove from public location with Really Simple SSL"
466
+ msgstr ""
467
+
468
+ #: class-site-health.php:104
469
+ msgid "Your site is set to display errors on your website"
470
+ msgstr ""
471
+
472
+ #: class-site-health.php:112
473
+ msgid "The value, WP_DEBUG_DISPLAY, has either been enabled by WP_DEBUG or added to your configuration file. This will make errors display on the front end of your site."
474
+ msgstr ""
475
+
476
+ #: class-site-health.php:118
477
+ msgid "Read more about security concerns with debug display enabled"
478
+ msgstr ""
479
+
480
+ #: class-site-health.php:135
481
+ msgid "Recommended security headers installed"
482
+ msgstr ""
483
+
484
+ #: class-site-health.php:143
485
+ msgid "The recommended security headers are detected on your site."
486
+ msgstr ""
487
+
488
+ #: class-site-health.php:155
489
+ msgid "Not all recommended security headers are installed"
490
+ msgstr ""
491
+
492
+ #: class-site-health.php:156
493
+ msgid "Your website does not send all recommended security headers."
494
+ msgstr ""
495
+
496
+ #: class-site-health.php:160
497
+ msgid "Learn more about security headers"
498
+ msgstr ""
499
+
500
+ #: class-site-health.php:175
501
+ msgid "301 SSL redirect enabled"
502
+ msgstr ""
503
+
504
+ #: class-site-health.php:183
505
+ msgid "You have set a 301 redirect to SSL. This is important for SEO purposes"
506
+ msgstr ""
507
+
508
+ #: class-site-health.php:192
509
+ msgid "SSL is not enabled."
510
+ msgstr ""
511
+
512
+ #: class-site-health.php:195
513
+ msgid "Really Simple SSL detected an SSL certificate, but has not been configured to enforce SSL."
514
+ msgstr ""
515
+
516
+ #: class-site-health.php:201
517
+ #: settings/build/index.js:382
518
+ #: settings/src/Dashboard/ProgressFooter.js:42
519
+ #: settings/src/Onboarding/Onboarding.js:242
520
+ msgid "Activate SSL"
521
+ msgstr ""
522
+
523
+ #: class-site-health.php:205
524
+ msgid "No SSL detected."
525
+ msgstr ""
526
+
527
+ #: class-site-health.php:208
528
+ msgid "Really Simple SSL is installed, but no valid SSL certificate is detected."
529
+ msgstr ""
530
+
531
+ #: class-site-health.php:214
532
+ msgid "No 301 redirect to SSL enabled."
533
+ msgstr ""
534
+
535
+ #: class-site-health.php:217
536
+ msgid "To ensure all traffic passes through SSL, please enable a 301 redirect."
537
+ msgstr ""
538
+
539
+ #: class-site-health.php:222
540
+ msgid "Enable 301 redirect"
541
+ msgstr ""
542
+
543
+ #: class-site-health.php:226
544
+ msgid "301 .htaccess redirect is not enabled."
545
+ msgstr ""
546
+
547
+ #: class-site-health.php:229
548
+ msgid "The 301 .htaccess redirect is the fastest and most reliable redirect option."
549
+ msgstr ""
550
+
551
+ #: class-site-health.php:234
552
+ msgid "Enable 301 .htaccess redirect"
553
+ msgstr ""
554
+
555
+ #: lets-encrypt/class-le-restapi.php:177
556
+ #: lets-encrypt/class-le-restapi.php:239
557
+ msgid "Permission denied."
558
+ msgstr ""
559
+
560
+ #: lets-encrypt/class-le-restapi.php:247
561
+ msgid "Test not found."
562
+ msgstr ""
563
+
564
+ #: lets-encrypt/class-letsencrypt-handler.php:192
565
+ msgid "It is not possible to install Let's Encrypt on a localhost environment."
566
+ msgstr ""
567
+
568
+ #: lets-encrypt/class-letsencrypt-handler.php:197
569
+ msgid "It is not possible to install Let's Encrypt on a subsite. Please go to the main site of your website."
570
+ msgstr ""
571
+
572
+ #: lets-encrypt/class-letsencrypt-handler.php:202
573
+ msgid "It is not possible to install Let's Encrypt on a subfolder configuration."
574
+ msgstr ""
575
+
576
+ #: lets-encrypt/class-letsencrypt-handler.php:206
577
+ msgid "Your domain meets the requirements for Let's Encrypt."
578
+ msgstr ""
579
+
580
+ #: lets-encrypt/class-letsencrypt-handler.php:270
581
+ msgid "(unknown)"
582
+ msgstr ""
583
+
584
+ #: lets-encrypt/class-letsencrypt-handler.php:276
585
+ msgid "Your certificate will expire on %s."
586
+ msgstr ""
587
+
588
+ #: lets-encrypt/class-letsencrypt-handler.php:276
589
+ msgid "Continue to renew."
590
+ msgstr ""
591
+
592
+ #: lets-encrypt/class-letsencrypt-handler.php:280
593
+ msgid "You already have a valid SSL certificate."
594
+ msgstr ""
595
+
596
+ #: lets-encrypt/class-letsencrypt-handler.php:286
597
+ msgid "SSL certificate should be generated and installed."
598
+ msgstr ""
599
+
600
+ #: lets-encrypt/class-letsencrypt-handler.php:317
601
+ msgid "The Hosting Panel software was not recognized. Depending on your hosting provider, the generated certificate may need to be installed manually."
602
+ msgstr ""
603
+
604
+ #: lets-encrypt/class-letsencrypt-handler.php:321
605
+ msgid "CPanel recognized. Possibly the certificate can be installed automatically."
606
+ msgstr ""
607
+
608
+ #: lets-encrypt/class-letsencrypt-handler.php:324
609
+ msgid "Plesk recognized. Possibly the certificate can be installed automatically."
610
+ msgstr ""
611
+
612
+ #: lets-encrypt/class-letsencrypt-handler.php:327
613
+ msgid "DirectAdmin recognized. Possibly the certificate can be installed automatically."
614
+ msgstr ""
615
+
616
+ #: lets-encrypt/class-letsencrypt-handler.php:343
617
+ msgid "The PHP function CURL is not available on your server, which is required. Please contact your hosting provider."
618
+ msgstr ""
619
+
620
+ #: lets-encrypt/class-letsencrypt-handler.php:347
621
+ msgid "The PHP function CURL has successfully been detected."
622
+ msgstr ""
623
+
624
+ #: lets-encrypt/class-letsencrypt-handler.php:367
625
+ msgid "Successfully retrieved account"
626
+ msgstr ""
627
+
628
+ #: lets-encrypt/class-letsencrypt-handler.php:374
629
+ msgid "The used domain for your email address is not allowed."
630
+ msgstr ""
631
+
632
+ #: lets-encrypt/class-letsencrypt-handler.php:375
633
+ msgid "Please change your email address %shere%s and try again."
634
+ msgstr ""
635
+
636
+ #: lets-encrypt/class-letsencrypt-handler.php:383
637
+ msgid "The email address was not set. Please set the email address"
638
+ msgstr ""
639
+
640
+ #: lets-encrypt/class-letsencrypt-handler.php:420
641
+ #: lets-encrypt/class-letsencrypt-handler.php:428
642
+ msgid "Token successfully retrieved."
643
+ msgstr ""
644
+
645
+ #: lets-encrypt/class-letsencrypt-handler.php:435
646
+ msgid "Token not received yet."
647
+ msgstr ""
648
+
649
+ #: lets-encrypt/class-letsencrypt-handler.php:447
650
+ #: lets-encrypt/class-letsencrypt-handler.php:676
651
+ msgid "The order is invalid, possibly due to too many failed authorization attempts. Please start at the previous step."
652
+ msgstr ""
653
+
654
+ #: lets-encrypt/class-letsencrypt-handler.php:451
655
+ msgid "Order ID mismatch, regenerate order."
656
+ msgstr ""
657
+
658
+ #: lets-encrypt/class-letsencrypt-handler.php:454
659
+ msgid "If you entered your DNS records before, they need to be changed."
660
+ msgstr ""
661
+
662
+ #: lets-encrypt/class-letsencrypt-handler.php:476
663
+ msgid "Configured for HTTP challenge"
664
+ msgstr ""
665
+
666
+ #: lets-encrypt/class-letsencrypt-handler.php:518
667
+ #: lets-encrypt/integrations/cpanel/functions.php:45
668
+ msgid "Token not generated. Please complete the previous step."
669
+ msgstr ""
670
+
671
+ #: lets-encrypt/class-letsencrypt-handler.php:532
672
+ msgid "Successfully verified DNS records"
673
+ msgstr ""
674
+
675
+ #: lets-encrypt/class-letsencrypt-handler.php:539
676
+ msgid "The DNS response for %s was %s, while it should be %s."
677
+ msgstr ""
678
+
679
+ #: lets-encrypt/class-letsencrypt-handler.php:548
680
+ msgid "Could not verify TXT record for domain %s"
681
+ msgstr ""
682
+
683
+ #: lets-encrypt/class-letsencrypt-handler.php:589
684
+ msgid "The certificate generation was rate limited for 10 minutes because the authorization failed."
685
+ msgstr ""
686
+
687
+ #: lets-encrypt/class-letsencrypt-handler.php:591
688
+ msgid "Please double check your DNS txt record."
689
+ msgstr ""
690
+
691
+ #: lets-encrypt/class-letsencrypt-handler.php:605
692
+ msgid "DNS records were not verified yet. Please complete the previous step."
693
+ msgstr ""
694
+
695
+ #: lets-encrypt/class-letsencrypt-handler.php:636
696
+ msgid "Certificate already generated. It was renewed if required."
697
+ msgstr ""
698
+
699
+ #: lets-encrypt/class-letsencrypt-handler.php:660
700
+ msgid "Authorization not completed yet."
701
+ msgstr ""
702
+
703
+ #: lets-encrypt/class-letsencrypt-handler.php:679
704
+ msgid "As your order will be regenerated, you'll need to update your DNS text records."
705
+ msgstr ""
706
+
707
+ #: lets-encrypt/class-letsencrypt-handler.php:687
708
+ msgid "OCSP not supported, the certificate will be generated without OCSP."
709
+ msgstr ""
710
+
711
+ #: lets-encrypt/class-letsencrypt-handler.php:724
712
+ msgid "Successfully generated certificate."
713
+ msgstr ""
714
+
715
+ #: lets-encrypt/class-letsencrypt-handler.php:730
716
+ msgid "Files not created yet..."
717
+ msgstr ""
718
+
719
+ #: lets-encrypt/class-letsencrypt-handler.php:738
720
+ msgid "Bundle not available yet..."
721
+ msgstr ""
722
+
723
+ #: lets-encrypt/class-letsencrypt-handler.php:781
724
+ msgid "Order successfully created."
725
+ msgstr ""
726
+
727
+ #: lets-encrypt/class-letsencrypt-handler.php:797
728
+ msgid "Order successfully retrieved."
729
+ msgstr ""
730
+
731
+ #: lets-encrypt/class-letsencrypt-handler.php:949
732
+ msgid "Terms & Conditions are accepted."
733
+ msgstr ""
734
+
735
+ #: lets-encrypt/class-letsencrypt-handler.php:953
736
+ msgid "The Terms & Conditions were not accepted. Please accept in the general settings."
737
+ msgstr ""
738
+
739
+ #: lets-encrypt/class-letsencrypt-handler.php:1062
740
+ msgid "Please complete the following step(s) first: %s"
741
+ msgstr ""
742
+
743
+ #: lets-encrypt/class-letsencrypt-handler.php:1078
744
+ msgid "The following directories do not have the necessary writing permissions."
745
+ msgstr ""
746
+
747
+ #: lets-encrypt/class-letsencrypt-handler.php:1078
748
+ msgid "Set permissions to 644 to enable SSL generation."
749
+ msgstr ""
750
+
751
+ #: lets-encrypt/class-letsencrypt-handler.php:1085
752
+ msgid "The required directories have the necessary writing permissions."
753
+ msgstr ""
754
+
755
+ #: lets-encrypt/class-letsencrypt-handler.php:1097
756
+ msgid "We have not detected any known hosting limitations."
757
+ msgstr ""
758
+
759
+ #: lets-encrypt/class-letsencrypt-handler.php:1104
760
+ #: lets-encrypt/functions.php:355
761
+ msgid "According to our information, your hosting provider does not allow any kind of SSL installation, other then their own paid certificate. For an alternative hosting provider with SSL, see this %sarticle%s."
762
+ msgstr ""
763
+
764
+ #: lets-encrypt/class-letsencrypt-handler.php:1111
765
+ #: lets-encrypt/functions.php:345
766
+ msgid "According to our information, your hosting provider supplies your account with an SSL certificate by default. Please contact your %shosting support%s if this is not the case."
767
+ msgstr ""
768
+
769
+ #: lets-encrypt/class-letsencrypt-handler.php:1112
770
+ msgid "After completing the installation, you can let Really Simple SSL automatically configure your site for SSL by using the 'Activate SSL' button."
771
+ msgstr ""
772
+
773
+ #: lets-encrypt/class-letsencrypt-handler.php:1128
774
+ msgid "The challenge directory is not created yet."
775
+ msgstr ""
776
+
777
+ #: lets-encrypt/class-letsencrypt-handler.php:1132
778
+ msgid "The challenge directory was successfully created."
779
+ msgstr ""
780
+
781
+ #: lets-encrypt/class-letsencrypt-handler.php:1145
782
+ msgid "The key directory is not created yet."
783
+ msgstr ""
784
+
785
+ #: lets-encrypt/class-letsencrypt-handler.php:1149
786
+ msgid "Trying to create directory in root of website."
787
+ msgstr ""
788
+
789
+ #: lets-encrypt/class-letsencrypt-handler.php:1157
790
+ msgid "The key directory was successfully created."
791
+ msgstr ""
792
+
793
+ #: lets-encrypt/class-letsencrypt-handler.php:1172
794
+ msgid "The certs directory is not created yet."
795
+ msgstr ""
796
+
797
+ #: lets-encrypt/class-letsencrypt-handler.php:1176
798
+ msgid "The certs directory was successfully created."
799
+ msgstr ""
800
+
801
+ #: lets-encrypt/class-letsencrypt-handler.php:1235
802
+ #: lets-encrypt/class-letsencrypt-handler.php:1545
803
+ msgid "no response"
804
+ msgstr ""
805
+
806
+ #: lets-encrypt/class-letsencrypt-handler.php:1239
807
+ msgid "Could not reach challenge directory over %s."
808
+ msgstr ""
809
+
810
+ #: lets-encrypt/class-letsencrypt-handler.php:1245
811
+ msgid "Challenge directory not writable."
812
+ msgstr ""
813
+
814
+ #: lets-encrypt/class-letsencrypt-handler.php:1259
815
+ #: lets-encrypt/class-letsencrypt-handler.php:1263
816
+ msgid "Error code %s."
817
+ msgstr ""
818
+
819
+ #: lets-encrypt/class-letsencrypt-handler.php:1270
820
+ #: lets-encrypt/class-letsencrypt-handler.php:1568
821
+ #: lets-encrypt/class-letsencrypt-handler.php:1619
822
+ msgid "Successfully verified alias domain."
823
+ msgstr ""
824
+
825
+ #: lets-encrypt/class-letsencrypt-handler.php:1503
826
+ msgid "This is a multisite configuration with subdomains, which requires a wildcard certificate. Wildcard certificates are part of the %spremium%s plan."
827
+ msgstr ""
828
+
829
+ #: lets-encrypt/class-letsencrypt-handler.php:1508
830
+ msgid "No subdomain setup detected."
831
+ msgstr ""
832
+
833
+ #: lets-encrypt/class-letsencrypt-handler.php:1538
834
+ msgid "Alias domain check is not relevant for a subdomain"
835
+ msgstr ""
836
+
837
+ #: lets-encrypt/class-letsencrypt-handler.php:1557
838
+ msgid "Please check if the non www version of your site also points to this website."
839
+ msgstr ""
840
+
841
+ #: lets-encrypt/class-letsencrypt-handler.php:1559
842
+ msgid "Please check if the www version of your site also points to this website."
843
+ msgstr ""
844
+
845
+ #: lets-encrypt/class-letsencrypt-handler.php:1561
846
+ msgid "Could not verify alias domain."
847
+ msgstr ""
848
+
849
+ #: lets-encrypt/class-letsencrypt-handler.php:1561
850
+ msgid "If this is not the case, don't add this alias to your certificate."
851
+ msgstr ""
852
+
853
+ #: lets-encrypt/class-letsencrypt-handler.php:1590
854
+ msgid "Could not create test folder and file."
855
+ msgstr ""
856
+
857
+ #: lets-encrypt/class-letsencrypt-handler.php:1591
858
+ msgid "Please create a folder 'rsssl' in the uploads directory, with 644 permissions."
859
+ msgstr ""
860
+
861
+ #: lets-encrypt/class-letsencrypt-handler.php:1608
862
+ msgid "Error code %s"
863
+ msgstr ""
864
+
865
+ #: lets-encrypt/class-letsencrypt-handler.php:1687
866
+ msgid "The certificate installation was rate limited. Please try again later."
867
+ msgstr ""
868
+
869
+ #: lets-encrypt/class-letsencrypt-handler.php:1713
870
+ msgid "Not recognized server."
871
+ msgstr ""
872
+
873
+ #: lets-encrypt/class-letsencrypt-handler.php:1718
874
+ msgid "Installation failed."
875
+ msgstr ""
876
+
877
+ #: lets-encrypt/class-letsencrypt-handler.php:1723
878
+ #: lets-encrypt/integrations/cloudways/functions.php:22
879
+ #: lets-encrypt/integrations/cpanel/functions.php:16
880
+ #: lets-encrypt/integrations/cpanel/functions.php:33
881
+ #: lets-encrypt/integrations/directadmin/functions.php:16
882
+ #: lets-encrypt/integrations/plesk/functions.php:16
883
+ msgid "The system is not ready for the installation yet. Please run the wizard again."
884
+ msgstr ""
885
+
886
+ #: lets-encrypt/config/class-hosts.php:534
887
+ msgid "I don't know, or not listed, proceed with installation"
888
+ msgstr ""
889
+
890
+ #: lets-encrypt/config/fields.php:8
891
+ #: settings/config/config.php:205
892
+ msgid "System Status"
893
+ msgstr ""
894
+
895
+ #: lets-encrypt/config/fields.php:12
896
+ msgid "General settings"
897
+ msgstr ""
898
+
899
+ #: lets-encrypt/config/fields.php:17
900
+ #: settings/config/config.php:223
901
+ msgid "Directories"
902
+ msgstr ""
903
+
904
+ #: lets-encrypt/config/fields.php:21
905
+ msgid "DNS Verification"
906
+ msgstr ""
907
+
908
+ #: lets-encrypt/config/fields.php:25
909
+ #: settings/config/config.php:233
910
+ msgid "Generation"
911
+ msgstr ""
912
+
913
+ #: lets-encrypt/config/fields.php:29
914
+ #: settings/config/config.php:238
915
+ msgid "Installation"
916
+ msgstr ""
917
+
918
+ #: lets-encrypt/config/fields.php:46
919
+ msgid "Detected status of your setup."
920
+ msgstr ""
921
+
922
+ #: lets-encrypt/config/fields.php:51
923
+ msgid "Checking SSL certificate..."
924
+ msgstr ""
925
+
926
+ #: lets-encrypt/config/fields.php:57
927
+ msgid "Checking if CURL is available..."
928
+ msgstr ""
929
+
930
+ #: lets-encrypt/config/fields.php:63
931
+ msgid "Checking server software..."
932
+ msgstr ""
933
+
934
+ #: lets-encrypt/config/fields.php:69
935
+ msgid "Checking alias domain..."
936
+ msgstr ""
937
+
938
+ #: lets-encrypt/config/fields.php:75
939
+ msgid "Checking for website configuration..."
940
+ msgstr ""
941
+
942
+ #: lets-encrypt/config/fields.php:91
943
+ #: lets-encrypt/config/fields.php:94
944
+ msgid "Email address"
945
+ msgstr ""
946
+
947
+ #: lets-encrypt/config/fields.php:95
948
+ msgid "This email address is used to create a Let's Encrypt account. This is also where you will receive renewal notifications."
949
+ msgstr ""
950
+
951
+ #: lets-encrypt/config/fields.php:107
952
+ msgid "I agree to the Terms & Conditions from Let's Encrypt."
953
+ msgstr ""
954
+
955
+ #: lets-encrypt/config/fields.php:108
956
+ msgid "Terms & Conditions."
957
+ msgstr ""
958
+
959
+ #: lets-encrypt/config/fields.php:119
960
+ msgid "Disable OCSP stapling"
961
+ msgstr ""
962
+
963
+ #: lets-encrypt/config/fields.php:120
964
+ msgid "OCSP stapling is configured as enabled by default. You can disable this option if this is not supported by your hosting provider."
965
+ msgstr ""
966
+
967
+ #: lets-encrypt/config/fields.php:122
968
+ msgid "Disable OCSP Stapling"
969
+ msgstr ""
970
+
971
+ #: lets-encrypt/config/fields.php:129
972
+ #: lets-encrypt/config/notices.php:49
973
+ msgid "Domain"
974
+ msgstr ""
975
+
976
+ #: lets-encrypt/config/fields.php:139
977
+ #: lets-encrypt/config/fields.php:142
978
+ msgid "Include alias"
979
+ msgstr ""
980
+
981
+ #: lets-encrypt/config/fields.php:143
982
+ msgid "This will include both the www. and non-www. version of your domain."
983
+ msgstr ""
984
+
985
+ #: lets-encrypt/config/fields.php:144
986
+ msgid "You should have the www domain pointed to the same website as the non-www domain."
987
+ msgstr ""
988
+
989
+ #: lets-encrypt/config/fields.php:161
990
+ msgid "Hosting Provider"
991
+ msgstr ""
992
+
993
+ #: lets-encrypt/config/fields.php:162
994
+ msgid "By selecting your hosting provider we can tell you if your hosting provider already supports free SSL, and/or where you can activate it."
995
+ msgstr ""
996
+
997
+ #: lets-encrypt/config/fields.php:164
998
+ msgid "If your hosting provider is not listed, and there's an SSL activation/installation link, please let us %sknow%s."
999
+ msgstr ""
1000
+
1001
+ #: lets-encrypt/config/fields.php:168
1002
+ msgid "Hosting provider"
1003
+ msgstr ""
1004
+
1005
+ #: lets-encrypt/config/fields.php:177
1006
+ #: lets-encrypt/config/fields.php:180
1007
+ msgid "CPanel host"
1008
+ msgstr ""
1009
+
1010
+ #: lets-encrypt/config/fields.php:181
1011
+ msgid "The URL you use to access your cPanel dashboard. Ends on :2083."
1012
+ msgstr ""
1013
+
1014
+ #: lets-encrypt/config/fields.php:200
1015
+ msgid "CPanel username"
1016
+ msgstr ""
1017
+
1018
+ #: lets-encrypt/config/fields.php:218
1019
+ msgid "CPanel password"
1020
+ msgstr ""
1021
+
1022
+ #: lets-encrypt/config/fields.php:236
1023
+ msgid "DirectAdmin host"
1024
+ msgstr ""
1025
+
1026
+ #: lets-encrypt/config/fields.php:239
1027
+ msgid "Direct Admin URL"
1028
+ msgstr ""
1029
+
1030
+ #: lets-encrypt/config/fields.php:240
1031
+ msgid "The URL you use to access your DirectAdmin dashboard. Ends on :2222."
1032
+ msgstr ""
1033
+
1034
+ #: lets-encrypt/config/fields.php:259
1035
+ msgid "DirectAdmin username"
1036
  msgstr ""
1037
 
1038
+ #: lets-encrypt/config/fields.php:277
1039
+ msgid "DirectAdmin password"
 
 
1040
  msgstr ""
1041
 
1042
+ #: lets-encrypt/config/fields.php:296
1043
+ msgid "CloudWays user email"
1044
  msgstr ""
1045
 
1046
+ #: lets-encrypt/config/fields.php:311
1047
+ msgid "CloudWays api key"
1048
  msgstr ""
1049
 
1050
+ #: lets-encrypt/config/fields.php:316
1051
+ msgid "CloudWays API key"
1052
  msgstr ""
1053
 
1054
+ #: lets-encrypt/config/fields.php:317
1055
+ msgid "You can find your api key %shere%s (make sure you're logged in with your main account)."
 
 
1056
  msgstr ""
1057
 
1058
+ #: lets-encrypt/config/fields.php:332
1059
+ msgid "Plesk host"
 
1060
  msgstr ""
1061
 
1062
+ #: lets-encrypt/config/fields.php:335
1063
+ msgid "Plesk admin URL"
1064
  msgstr ""
1065
 
1066
+ #: lets-encrypt/config/fields.php:336
1067
+ msgid "The URL you use to access your Plesk dashboard. Ends on :8443."
 
 
1068
  msgstr ""
1069
 
1070
+ #: lets-encrypt/config/fields.php:355
1071
+ msgid "Plesk username"
 
1072
  msgstr ""
1073
 
1074
+ #: lets-encrypt/config/fields.php:358
1075
+ msgid "Plesk username and password"
 
 
1076
  msgstr ""
1077
 
1078
+ #: lets-encrypt/config/fields.php:359
1079
+ msgid "You can find your Plesk username and password in %s"
1080
  msgstr ""
1081
 
1082
+ #: lets-encrypt/config/fields.php:378
1083
+ msgid "Plesk password"
 
 
 
 
 
1084
  msgstr ""
1085
 
1086
+ #: lets-encrypt/config/fields.php:396
1087
+ msgid "Do you want to store these credentials for renewal purposes?"
 
 
 
 
 
1088
  msgstr ""
1089
 
1090
+ #: lets-encrypt/config/fields.php:400
1091
+ msgid "Store for renewal purposes. If not stored, renewal may need to be done manually."
1092
  msgstr ""
1093
 
1094
+ #: lets-encrypt/config/fields.php:429
1095
+ msgid "Checking host..."
1096
  msgstr ""
1097
 
1098
+ #: lets-encrypt/config/fields.php:435
1099
+ msgid "Checking challenge directory..."
1100
  msgstr ""
1101
 
1102
+ #: lets-encrypt/config/fields.php:441
1103
+ msgid "Checking key directory..."
1104
  msgstr ""
1105
 
1106
+ #: lets-encrypt/config/fields.php:447
1107
+ msgid "Checking certs directory..."
1108
  msgstr ""
1109
 
1110
+ #: lets-encrypt/config/fields.php:453
1111
+ msgid "Checking permissions..."
 
 
1112
  msgstr ""
1113
 
1114
+ #: lets-encrypt/config/fields.php:460
1115
+ msgid "Checking challenge directory reachable over http..."
1116
  msgstr ""
1117
 
1118
+ #: lets-encrypt/config/fields.php:479
1119
+ #: lets-encrypt/config/fields.php:516
1120
+ msgid "Creating account..."
1121
  msgstr ""
1122
 
1123
+ #: lets-encrypt/config/fields.php:485
1124
+ msgid "Retrieving DNS verification token..."
 
1125
  msgstr ""
1126
 
1127
+ #: lets-encrypt/config/fields.php:510
1128
+ msgid "Checking if Terms & Conditions are accepted..."
1129
  msgstr ""
1130
 
1131
+ #: lets-encrypt/config/fields.php:522
1132
+ #: settings/build/index.js:382
1133
+ #: settings/src/LetsEncrypt/LetsEncrypt.js:93
1134
+ msgid "Generating SSL certificate..."
1135
  msgstr ""
1136
 
1137
+ #: lets-encrypt/config/fields.php:535
1138
+ msgid "Searching for link to SSL installation page on your server..."
1139
  msgstr ""
1140
 
1141
+ #: lets-encrypt/config/fields.php:552
1142
+ msgid "Checking for subdomain setup..."
 
 
1143
  msgstr ""
1144
 
1145
+ #: lets-encrypt/config/notices.php:27
1146
+ msgid "Your Key and Certificate directories are not properly protected."
1147
  msgstr ""
1148
 
1149
+ #: lets-encrypt/config/notices.php:39
1150
+ msgid "The non-www version of your site does not point to this website. This is recommended, as it will allow you to add it to the certificate as well."
 
 
 
 
 
1151
  msgstr ""
1152
 
1153
+ #: lets-encrypt/config/notices.php:41
1154
+ msgid "The www version of your site does not point to this website. This is recommended, as it will allow you to add it to the certificate as well."
 
 
1155
  msgstr ""
1156
 
1157
+ #: lets-encrypt/config/notices.php:68
1158
+ msgid "Your certificate is valid until: %s"
 
 
1159
  msgstr ""
1160
 
1161
+ #: lets-encrypt/config/notices.php:72
1162
+ msgid "Your certificate will expire on %s. You can renew it %shere%s."
 
1163
  msgstr ""
1164
 
1165
+ #: lets-encrypt/config/notices.php:87
1166
+ msgid "The automatic installation of your certificate has failed. Please check your credentials, and retry the %sinstallation%s."
1167
  msgstr ""
1168
 
1169
+ #: lets-encrypt/config/notices.php:94
1170
+ msgid "The SSL certificate has been renewed, and requires manual %sinstallation%s in your hosting dashboard."
1171
  msgstr ""
1172
 
1173
+ #: lets-encrypt/config/notices.php:101
1174
+ msgid "Automatic renewal of your certificate was not possible. The SSL certificate should be %srenewed%s manually."
1175
  msgstr ""
1176
 
1177
+ #: lets-encrypt/config/notices.php:108
1178
+ msgid "Your certificate will be renewed and installed automatically."
1179
  msgstr ""
1180
 
1181
+ #: lets-encrypt/config/notices.php:123
1182
+ msgid "Your server provides shell functionality, which offers additional methods to install SSL. If installing SSL using the default methods is not possible, you can install the shell add on."
1183
  msgstr ""
1184
 
1185
+ #: lets-encrypt/config/notices.php:140
1186
+ msgid "You are using the Really Simple SSL Shell Exec add on, but of a version not compatible with Really Simple SSL 6.0 and onwards."
1187
  msgstr ""
1188
 
1189
+ #: lets-encrypt/config/notices.php:161
1190
+ msgid "Renew installation"
1191
  msgstr ""
1192
 
1193
+ #: lets-encrypt/config/notices.php:164
1194
+ #: lets-encrypt/config/notices.php:167
1195
+ msgid "Renew certificate"
1196
  msgstr ""
1197
 
1198
+ #: lets-encrypt/download.php:49
1199
+ msgid "File missing. Please retry the previous steps."
1200
  msgstr ""
1201
 
1202
+ #: lets-encrypt/functions.php:12
1203
+ msgid "For more information, please read this %sarticle%s"
1204
  msgstr ""
1205
 
1206
+ #: lets-encrypt/functions.php:330
1207
+ #: lets-encrypt/functions.php:331
1208
+ #: settings/build/index.js:382
1209
+ #: settings/src/Dashboard/GridBlock.js:93
1210
+ #: settings/src/Settings/SettingsGroup.js:93
1211
+ msgid "Instructions"
1212
  msgstr ""
1213
 
1214
+ #: lets-encrypt/functions.php:334
1215
+ msgid "Please complete manually in your hosting dashboard."
 
 
 
1216
  msgstr ""
1217
 
1218
+ #: lets-encrypt/functions.php:335
1219
+ msgid "Please activate it manually on your hosting dashboard."
 
 
1220
  msgstr ""
1221
 
1222
+ #: lets-encrypt/functions.php:337
1223
+ msgid "Please complete %smanually%s"
1224
  msgstr ""
1225
 
1226
+ #: lets-encrypt/functions.php:338
1227
+ msgid "Please activate it on your dashboard %smanually%s"
1228
  msgstr ""
1229
 
1230
+ #: lets-encrypt/functions.php:339
1231
+ msgid "Go to activation"
1232
  msgstr ""
1233
 
1234
+ #: lets-encrypt/functions.php:340
1235
+ msgid "Go to installation"
 
1236
  msgstr ""
1237
 
1238
+ #: lets-encrypt/functions.php:347
1239
+ #: lets-encrypt/functions.php:351
1240
+ #: lets-encrypt/functions.php:361
1241
+ msgid "After completing the installation, you can continue to the next step to complete your configuration."
1242
  msgstr ""
1243
 
1244
+ #: lets-encrypt/functions.php:349
1245
+ msgid "You already have free SSL on your hosting environment."
 
 
1246
  msgstr ""
1247
 
1248
+ #: lets-encrypt/functions.php:358
1249
+ msgid "Your hosting environment does not allow automatic SSL installation."
 
 
 
 
1250
  msgstr ""
1251
 
1252
+ #: lets-encrypt/functions.php:360
1253
+ msgid "You can follow these %sinstructions%s."
1254
  msgstr ""
1255
 
1256
+ #: lets-encrypt/integrations/cloudways/cloudways.php:157
1257
+ msgid "Failed retrieving access token"
 
 
1258
  msgstr ""
1259
 
1260
+ #: lets-encrypt/integrations/cloudways/cloudways.php:177
1261
+ #: lets-encrypt/integrations/cloudways/cloudways.php:183
1262
+ msgid "Successfully installed Let's Encrypt"
1263
  msgstr ""
1264
 
1265
+ #: lets-encrypt/integrations/cloudways/cloudways.php:192
1266
+ msgid "Error enabling auto renew for Let's Encrypt"
 
 
1267
  msgstr ""
1268
 
1269
+ #: lets-encrypt/integrations/cloudways/cloudways.php:208
1270
+ #: lets-encrypt/integrations/cloudways/cloudways.php:241
1271
+ msgid "Successfully retrieved server id and app id"
 
1272
  msgstr ""
1273
 
1274
+ #: lets-encrypt/integrations/cloudways/cloudways.php:248
1275
+ msgid "Could not retrieve server list"
 
 
 
1276
  msgstr ""
1277
 
1278
+ #: lets-encrypt/integrations/cloudways/functions.php:37
1279
+ msgid "Retrieving Cloudways server data..."
 
 
1280
  msgstr ""
1281
 
1282
+ #: lets-encrypt/integrations/cloudways/functions.php:43
1283
+ msgid "Installing SSL certificate..."
 
 
1284
  msgstr ""
1285
 
1286
+ #: lets-encrypt/integrations/cloudways/functions.php:49
1287
+ msgid "Enabling auto renew..."
 
 
1288
  msgstr ""
1289
 
1290
+ #: lets-encrypt/integrations/cpanel/cpanel.php:64
1291
+ #: lets-encrypt/integrations/directadmin/directadmin.php:64
1292
+ msgid "No valid list of domains."
1293
  msgstr ""
1294
 
1295
+ #: lets-encrypt/integrations/cpanel/cpanel.php:105
1296
+ #: lets-encrypt/integrations/cpanel/cpanel.php:165
1297
+ msgid "Your website's ip address is blocked. Please add your domain's ip address to the security policy in CPanel"
1298
  msgstr ""
1299
 
1300
+ #: lets-encrypt/integrations/cpanel/cpanel.php:115
1301
+ #: lets-encrypt/integrations/directadmin/directadmin.php:122
1302
+ msgid "SSL successfully installed on %s"
1303
  msgstr ""
1304
 
1305
+ #: lets-encrypt/integrations/cpanel/cpanel.php:120
1306
+ msgid "Errors were reported during installation"
1307
  msgstr ""
1308
 
1309
+ #: lets-encrypt/integrations/cpanel/cpanel.php:180
1310
+ msgid "Errors were reported during installation."
 
 
1311
  msgstr ""
1312
 
1313
+ #: lets-encrypt/integrations/cpanel/cpanel.php:264
1314
+ msgid "Unable to connect to cPanel"
1315
  msgstr ""
1316
 
1317
+ #: lets-encrypt/integrations/cpanel/cpanel.php:268
1318
+ msgid "Login credentials incorrect"
1319
  msgstr ""
1320
 
1321
+ #: lets-encrypt/integrations/cpanel/cpanel.php:276
1322
+ #: lets-encrypt/integrations/cpanel/cpanel.php:295
1323
+ msgid "Successfully added TXT record."
1324
  msgstr ""
1325
 
1326
+ #: lets-encrypt/integrations/cpanel/cpanel.php:280
1327
+ #: lets-encrypt/integrations/cpanel/cpanel.php:299
1328
+ msgid "Could not automatically add TXT record. Please proceed manually, following the steps below."
 
1329
  msgstr ""
1330
 
1331
+ #: lets-encrypt/integrations/cpanel/functions.php:61
1332
+ msgid "The system is not ready for the DNS verification yet. Please run the wizard again."
 
 
 
1333
  msgstr ""
1334
 
1335
+ #: lets-encrypt/integrations/cpanel/functions.php:89
1336
+ msgid "Attempting to install certificate using AutoSSL..."
 
1337
  msgstr ""
1338
 
1339
+ #: lets-encrypt/integrations/cpanel/functions.php:98
1340
+ msgid "Attempting to set DNS txt record..."
 
 
1341
  msgstr ""
1342
 
1343
+ #: lets-encrypt/integrations/cpanel/functions.php:105
1344
+ #: lets-encrypt/integrations/directadmin/functions.php:35
1345
+ msgid "Attempting to install certificate..."
1346
  msgstr ""
1347
 
1348
+ #: lets-encrypt/integrations/plesk/functions.php:33
1349
+ msgid "Installing SSL certificate using PLESK API..."
 
1350
  msgstr ""
1351
 
1352
+ #: lets-encrypt/integrations/plesk/plesk.php:87
1353
+ msgid "Successfully installed SSL"
 
1354
  msgstr ""
1355
 
1356
+ #: onboarding/config.php:23
1357
+ msgid "You can also let the automatic scan of the pro version handle this for you, and get premium support, increased security with HSTS and more!"
 
1358
  msgstr ""
1359
 
1360
+ #: onboarding/config.php:23
1361
+ msgid "Check out Really Simple SSL Pro"
1362
  msgstr ""
1363
 
1364
+ #: onboarding/config.php:29
1365
+ msgid "Almost ready to migrate to SSL!"
1366
  msgstr ""
1367
 
1368
+ #: onboarding/config.php:30
1369
+ msgid "Before you migrate, please check for:"
1370
  msgstr ""
1371
 
1372
+ #: onboarding/config.php:39
1373
+ msgid "Thanks for updating!"
1374
  msgstr ""
1375
 
1376
+ #: onboarding/config.php:39
1377
+ msgid "Congratulations!"
1378
  msgstr ""
1379
 
1380
+ #: onboarding/config.php:40
1381
+ msgid "Now have a look at our new features."
1382
  msgstr ""
1383
 
1384
+ #: onboarding/config.php:42
1385
+ msgid "Want to know more about our features and plugins?"
1386
  msgstr ""
1387
 
1388
+ #: onboarding/config.php:42
1389
+ msgid "Please read this %sarticle%s."
1390
  msgstr ""
1391
 
1392
+ #: onboarding/config.php:70
1393
+ msgid "Burst Statistics - Self-hosted, Privacy-friendly analytics tool"
1394
  msgstr ""
1395
 
1396
+ #: onboarding/config.php:76
1397
+ #: settings/settings.php:320
1398
+ msgid "Complianz - Cookie Consent Management as it should be"
1399
  msgstr ""
1400
 
1401
+ #: onboarding/config.php:83
1402
+ msgid "SSL has been activated"
1403
  msgstr ""
1404
 
1405
+ #: onboarding/config.php:92
1406
+ msgid "Enable recommended hardening features in Really Simple SSL"
1407
  msgstr ""
1408
 
1409
+ #: onboarding/config.php:97
1410
+ msgid "Enable"
1411
  msgstr ""
1412
 
1413
+ #: onboarding/config.php:101
1414
+ msgid "Hardening features are enabled!"
 
 
 
1415
  msgstr ""
1416
 
1417
+ #: onboarding/config.php:116
1418
+ msgid "%s has been installed!"
1419
  msgstr ""
1420
 
1421
+ #: onboarding/config.php:128
1422
+ #: upgrade/upgrade-to-pro.php:138
1423
+ #: upgrade/upgrade-to-pro.php:151
1424
+ #: upgrade/upgrade-to-pro.php:168
1425
+ #: settings/build/index.js:382
1426
+ #: settings/src/Dashboard/OtherPlugins.js:67
1427
+ msgid "Install"
1428
  msgstr ""
1429
 
1430
+ #: onboarding/config.php:132
1431
+ msgid "Activate our plugin %s"
 
1432
  msgstr ""
 
 
1433
 
1434
+ #: onboarding/config.php:137
1435
+ #: settings/config/config.php:243
1436
+ #: settings/build/index.js:382
1437
+ #: settings/src/Dashboard/OtherPlugins.js:68
1438
+ #: settings/src/Settings/License.js:134
1439
+ msgid "Activate"
1440
  msgstr ""
1441
 
1442
+ #: onboarding/config.php:155
1443
+ msgid "Http references in your .css and .js files: change any http:// into https://"
1444
  msgstr ""
1445
 
1446
+ #: onboarding/config.php:159
1447
+ msgid "Images, stylesheets or scripts from a domain without an SSL certificate: remove them or move to your own server."
 
 
1448
  msgstr ""
1449
 
1450
+ #: onboarding/config.php:163
1451
+ msgid "You may need to login in again."
1452
  msgstr ""
1453
 
1454
+ #: onboarding/config.php:170
1455
+ msgid "An SSL certificate has been detected"
 
 
1456
  msgstr ""
1457
 
1458
+ #: onboarding/config.php:175
1459
+ msgid "Could not test certificate."
1460
  msgstr ""
1461
 
1462
+ #: onboarding/config.php:180
1463
+ msgid "No SSL certificate has been detected."
 
 
 
 
1464
  msgstr ""
1465
 
1466
+ #: onboarding/config.php:180
1467
+ msgid "Please refresh the SSL status if a certificate has been installed recently."
1468
  msgstr ""
1469
 
1470
+ #: placeholders/class-placeholder.php:97
1471
+ msgid "Mixed content in PHP file in %s"
 
 
 
1472
  msgstr ""
1473
 
1474
+ #: placeholders/class-placeholder.php:101
1475
+ #: placeholders/class-placeholder.php:118
1476
+ #: placeholders/class-placeholder.php:142
1477
+ #: placeholders/class-placeholder.php:159
1478
+ #: placeholders/class-placeholder.php:185
1479
+ #: placeholders/class-placeholder.php:210
1480
+ #: settings/config/config.php:865
1481
+ #: settings/build/index.js:382
1482
+ #: settings/src/Settings/MixedContentScan.js:227
1483
+ msgid "Details"
1484
  msgstr ""
1485
 
1486
+ #: placeholders/class-placeholder.php:113
1487
+ msgid "Mixed content in %s"
 
 
 
1488
  msgstr ""
1489
 
1490
+ #: placeholders/class-placeholder.php:126
1491
+ #: placeholders/class-placeholder.php:167
1492
+ #: placeholders/class-placeholder.php:193
1493
+ #: placeholders/class-placeholder.php:218
1494
+ msgid "Import and insert file"
1495
  msgstr ""
1496
 
1497
+ #: placeholders/class-placeholder.php:127
1498
+ #: placeholders/class-placeholder.php:168
1499
+ #: placeholders/class-placeholder.php:194
1500
+ #: placeholders/class-placeholder.php:219
1501
+ msgid "Copyright warning!"
1502
  msgstr ""
1503
 
1504
+ #: placeholders/class-placeholder.php:138
1505
+ msgid "Mixed content in CSS/JS file from other domain"
1506
  msgstr ""
1507
 
1508
+ #: placeholders/class-placeholder.php:155
1509
+ msgid "Mixed content in post: "
 
 
1510
  msgstr ""
1511
 
1512
+ #: placeholders/class-placeholder.php:180
1513
+ msgid "Mixed content in the postmeta table"
1514
  msgstr ""
1515
 
1516
+ #: placeholders/class-placeholder.php:201
1517
+ msgid "Widget area"
 
1518
  msgstr ""
1519
 
1520
+ #: placeholders/class-placeholder.php:206
1521
+ msgid "Widget with mixed content"
 
 
 
1522
  msgstr ""
1523
 
1524
+ #: progress/class-progress.php:81
1525
+ msgid "SSL is activated on your site."
 
 
1526
  msgstr ""
1527
 
1528
+ #: progress/class-progress.php:81
1529
+ msgid "You still have %s task open."
1530
+ msgid_plural "You still have %s tasks open."
1531
+ msgstr[0] ""
1532
+ msgstr[1] ""
1533
 
1534
+ #: progress/class-progress.php:83
1535
+ msgid "SSL configuration finished!"
1536
  msgstr ""
1537
 
1538
+ #: progress/class-progress.php:88
1539
+ msgid "Basic SSL configuration finished! Improve your score with %sReally Simple SSL Pro%s."
1540
  msgstr ""
1541
 
1542
+ #: progress/class-progress.php:94
1543
+ msgid "SSL is not yet enabled on this site."
1544
  msgstr ""
1545
 
1546
+ #: rlrsssl-really-simple-ssl.php:35
1547
+ msgid "Really Simple SSL cannot be activated. The plugin requires PHP 7.2 or higher"
 
1548
  msgstr ""
1549
 
1550
+ #: rlrsssl-really-simple-ssl.php:41
1551
+ msgid "Really Simple SSL cannot be activated. The plugin requires WordPress 5.7 or higher"
1552
  msgstr ""
1553
 
1554
+ #: rlrsssl-really-simple-ssl.php:183
1555
+ msgid "Update Really Simple SSL Pro: the plugin needs to be updated to the latest version to be compatible."
1556
  msgstr ""
1557
 
1558
+ #: rlrsssl-really-simple-ssl.php:184
1559
+ msgid "Visit the plugins overview or %srenew your license%s."
1560
  msgstr ""
1561
 
1562
+ #: security/firewall-manager.php:141
1563
+ #: security/firewall-manager.php:147
1564
+ msgid "Firewall"
1565
  msgstr ""
1566
 
1567
+ #: security/firewall-manager.php:142
1568
+ msgid "A firewall rule was enabled, but the wp-config.php is not writable."
1569
  msgstr ""
1570
 
1571
+ #: security/firewall-manager.php:142
1572
+ msgid "Please set the wp-config.php to writable until the rule has been written."
1573
  msgstr ""
1574
 
1575
+ #: security/firewall-manager.php:148
1576
+ msgid "A firewall rule was enabled, but /the wp-content/ folder is not writable."
1577
  msgstr ""
1578
 
1579
+ #: security/firewall-manager.php:148
1580
+ msgid "Please set the wp-content folder to writable:"
1581
  msgstr ""
1582
 
1583
+ #: security/integrations.php:14
1584
+ msgid "File editing"
1585
  msgstr ""
1586
 
1587
+ #: security/integrations.php:22
1588
+ msgid "Hide WP version"
1589
  msgstr ""
1590
 
1591
+ #: security/integrations.php:30
1592
+ msgid "User Enumeration"
1593
  msgstr ""
1594
 
1595
+ #: security/integrations.php:38
1596
+ msgid "Block code execution in uploads directory"
1597
  msgstr ""
1598
 
1599
+ #: security/integrations.php:46
1600
+ msgid "Prevent login error leakage"
1601
  msgstr ""
1602
 
1603
+ #: security/integrations.php:53
1604
+ msgid "Disable directory indexing"
1605
  msgstr ""
1606
 
1607
+ #: security/integrations.php:62
1608
+ msgid "Do not allow users with admin username"
1609
  msgstr ""
1610
 
1611
+ #: security/integrations.php:70
1612
+ msgid "Block user registration when login name equals display name"
1613
  msgstr ""
1614
 
1615
+ #: security/notices.php:31
1616
+ msgid "Disable application passwords."
 
 
1617
  msgstr ""
1618
 
1619
+ #: security/notices.php:45
1620
+ msgid ".htaccess not writable"
 
 
1621
  msgstr ""
1622
 
1623
+ #: security/notices.php:46
1624
+ msgid "An option that requires the .htaccess file is enabled, but the file is not writable."
1625
  msgstr ""
1626
 
1627
+ #: security/notices.php:46
1628
+ #: security/notices.php:54
1629
+ #: security/notices.php:73
1630
+ msgid "Please add the following lines to your .htaccess, or set it to writable:"
1631
  msgstr ""
1632
 
1633
+ #: security/notices.php:53
1634
+ msgid ".htaccess does not exist"
 
 
1635
  msgstr ""
1636
 
1637
+ #: security/notices.php:54
1638
+ msgid "An option that requires the .htaccess file is enabled, but the file does not exist."
1639
  msgstr ""
1640
 
1641
+ #: security/notices.php:72
1642
+ msgid ".htaccess in uploads not writable"
1643
  msgstr ""
1644
 
1645
+ #: security/notices.php:73
1646
+ msgid "An option that requires the .htaccess file in the uploads directory is enabled, but the file is not writable."
1647
  msgstr ""
1648
 
1649
+ #: security/notices.php:92
1650
+ msgid "It is currently possible to create an administrator user with the same login and display name."
1651
  msgstr ""
1652
 
1653
+ #: security/notices.php:106
1654
+ msgid "We have detected administrator roles where the login and display names are the same."
1655
  msgstr ""
1656
 
1657
+ #: security/notices.php:120
1658
+ #: security/sync-settings.php:34
1659
+ msgid "Debugging"
1660
  msgstr ""
1661
 
1662
+ #: security/notices.php:121
1663
+ msgid "Your site logs information to a public debugging file."
1664
  msgstr ""
1665
 
1666
+ #: security/notices.php:138
1667
+ msgid "Your site is vulnerable to user enumeration attacks."
1668
  msgstr ""
1669
 
1670
+ #: security/notices.php:140
1671
+ msgid "Prevent user enumeration"
 
 
1672
  msgstr ""
1673
 
1674
+ #: security/notices.php:158
1675
+ msgid "To prevent attackers from identifying the renamed administrator, activate the 'Disable User Enumeration' setting."
 
 
 
1676
  msgstr ""
1677
 
1678
+ #: security/notices.php:173
1679
+ msgid "Username"
 
 
1680
  msgstr ""
1681
 
1682
+ #: security/notices.php:174
1683
+ msgid "Your site registered a user with the name 'admin'."
1684
  msgstr ""
1685
 
1686
+ #: security/notices.php:189
1687
+ msgid "Code execution is allowed in the public 'Uploads' folder."
1688
  msgstr ""
1689
 
1690
+ #: security/notices.php:200
1691
+ msgid "Your database prefix is renamed and randomized. Awesome!"
1692
  msgstr ""
1693
 
1694
+ #: security/notices.php:205
1695
+ msgid "Your database prefix is set to the default 'wp_'."
 
 
1696
  msgstr ""
1697
 
1698
+ #: security/notices.php:235
1699
+ msgid "The built-in file editors are accessible to others."
 
1700
  msgstr ""
1701
 
1702
+ #: security/notices.php:249
1703
+ msgid "Anyone can register an account on your site. Consider disabling this option in the WordPress general settings."
 
 
1704
  msgstr ""
1705
 
1706
+ #: security/notices.php:262
1707
+ msgid "Your WordPress version is visible to others."
 
 
 
1708
  msgstr ""
1709
 
1710
+ #: security/sync-settings.php:35
1711
+ msgid "Changed debug.log location to:"
1712
  msgstr ""
1713
 
1714
+ #: security/wordpress/block-code-execution-uploads.php:14
1715
+ msgid "Could not find code execution test file."
1716
  msgstr ""
1717
 
1718
+ #: security/wordpress/block-code-execution-uploads.php:19
1719
+ msgid "Uploads folder not writable."
1720
  msgstr ""
1721
 
1722
+ #: security/wordpress/block-code-execution-uploads.php:24
1723
+ msgid "Could not copy code execution test file."
1724
  msgstr ""
1725
 
1726
+ #: security/wordpress/block-code-execution-uploads.php:37
1727
+ msgid "The code to block code execution in the uploads folder cannot be added automatically on nginx. Add the following code to your nginx.conf file:"
1728
  msgstr ""
1729
 
1730
+ #: security/wordpress/prevent-login-info-leakage.php:9
1731
+ msgid "Invalid login details."
1732
  msgstr ""
1733
 
1734
+ #: security/wordpress/rename-admin-user.php:13
1735
+ msgid "Username 'admin' has been changed to %s"
1736
  msgstr ""
1737
 
1738
+ #: security/wordpress/user-enumeration.php:10
1739
+ msgid "forbidden - number in author name not allowed = "
1740
  msgstr ""
1741
 
1742
+ #: settings/config/config.php:11
1743
+ msgid "Dashboard"
1744
  msgstr ""
1745
 
1746
+ #: settings/config/config.php:23
1747
+ #: settings/config/config.php:28
1748
+ msgid "General"
1749
  msgstr ""
1750
 
1751
+ #: settings/config/config.php:33
1752
+ msgid "Premium Support"
1753
  msgstr ""
1754
 
1755
+ #: settings/config/config.php:34
1756
+ msgid "The following information is attached when you send this form: license key, scan results, your domain, .htaccess file, debug log and a list of active plugins."
1757
  msgstr ""
1758
 
1759
+ #: settings/config/config.php:36
1760
+ msgid "Get Premium Support with %sReally Simple SSL Pro%s"
1761
  msgstr ""
1762
 
1763
+ #: settings/config/config.php:38
1764
+ msgid "Debugging with Really Simple SSL"
 
 
1765
  msgstr ""
1766
 
1767
+ #: settings/config/config.php:44
1768
+ #: settings/config/config.php:50
1769
+ #: settings/config/config.php:1133
1770
+ msgid "Hardening"
1771
  msgstr ""
1772
 
1773
+ #: settings/config/config.php:56
1774
+ msgid "Advanced Hardening"
 
1775
  msgstr ""
1776
 
1777
+ #: settings/config/config.php:57
1778
+ msgid "Get Advanced Hardening with %sReally Simple SSL Pro%s"
1779
  msgstr ""
1780
 
1781
+ #: settings/config/config.php:63
1782
+ #: settings/config/config.php:604
1783
+ msgid "XML-RPC"
1784
  msgstr ""
1785
 
1786
+ #: settings/config/config.php:64
1787
+ msgid "Get XML-RPC with %sReally Simple SSL Pro%s"
1788
  msgstr ""
1789
 
1790
+ #: settings/config/config.php:70
1791
+ #: settings/config/config.php:77
1792
+ msgid "Mixed Content Scan"
1793
  msgstr ""
1794
 
1795
+ #: settings/config/config.php:73
1796
+ #: settings/config/config.php:80
1797
+ msgid "Get the Mixed Content Scan with %sReally Simple SSL Pro%s"
1798
  msgstr ""
1799
 
1800
+ #: settings/config/config.php:97
1801
+ msgid "Recommended Security Headers"
 
1802
  msgstr ""
1803
 
1804
+ #: settings/config/config.php:104
1805
+ msgid "Get Recommended Security Headers with %sReally Simple SSL Pro%s"
1806
  msgstr ""
1807
 
1808
+ #: settings/config/config.php:106
1809
+ msgid "Recommended Security Headers "
1810
  msgstr ""
1811
 
1812
+ #: settings/config/config.php:113
1813
+ #: settings/config/config.php:123
1814
+ msgid "HTTP Strict Transport Security"
1815
  msgstr ""
1816
 
1817
+ #: settings/config/config.php:114
1818
+ msgid "Intro HSTS"
1819
  msgstr ""
1820
 
1821
+ #: settings/config/config.php:121
1822
+ msgid "Get HTTP Strict Transport Security with %sReally Simple SSL Pro%s"
1823
  msgstr ""
1824
 
1825
+ #: settings/config/config.php:130
1826
+ #: settings/config/config.php:131
1827
+ #: settings/config/config.php:141
1828
+ #: settings/config/config.php:887
1829
+ msgid "Permissions Policy"
1830
  msgstr ""
1831
 
1832
+ #: settings/config/config.php:136
1833
+ msgid "Get the Permissions Policy with %sReally Simple SSL Pro%s"
1834
  msgstr ""
1835
 
1836
+ #: settings/config/config.php:147
1837
+ msgid "Content Security Policy"
1838
  msgstr ""
1839
 
1840
+ #: settings/config/config.php:148
1841
+ msgid "Content Security Policy intro"
1842
  msgstr ""
1843
 
1844
+ #: settings/config/config.php:155
1845
+ msgid "Get Upgrade Insecure Requests with %sReally Simple SSL Pro%s"
 
1846
  msgstr ""
1847
 
1848
+ #: settings/config/config.php:158
1849
+ msgid "Upgrade Insecure Requests"
1850
  msgstr ""
1851
 
1852
+ #: settings/config/config.php:164
1853
+ msgid "Get Frame Ancestors with %sReally Simple SSL Pro%s"
1854
  msgstr ""
1855
 
1856
+ #: settings/config/config.php:167
1857
+ msgid "Frame Ancestors"
1858
  msgstr ""
1859
 
1860
+ #: settings/config/config.php:174
1861
+ msgid "Get Source Directives with %sReally Simple SSL Pro%s"
1862
  msgstr ""
1863
 
1864
+ #: settings/config/config.php:176
1865
+ msgid "Source Directives"
1866
  msgstr ""
1867
 
1868
+ #: settings/config/config.php:184
1869
+ msgid "Get Cross Origin Policy Headers with %sReally Simple SSL Pro%s"
1870
  msgstr ""
1871
 
1872
+ #: settings/config/config.php:186
1873
+ msgid "Cross Origin Policy"
1874
  msgstr ""
1875
 
1876
+ #: settings/config/config.php:195
1877
+ msgid "Let's Encrypt"
1878
  msgstr ""
1879
 
1880
+ #: settings/config/config.php:196
1881
+ msgid "We have tried to make our Wizard as simple and fast as possible. Although these questions are all necessary, if there’s any way you think we can improve the plugin, please let us %sknow%s!"
1882
  msgstr ""
1883
 
1884
+ #: settings/config/config.php:198
1885
+ msgid " Please note that you can always save and finish the wizard later, use our %sdocumentation%s for additional information or log a %ssupport ticket%s if you need our assistance."
1886
  msgstr ""
1887
 
1888
+ #: settings/config/config.php:206
1889
+ msgid "Letʼs Encrypt is a free, automated and open certificate authority brought to you by the nonprofit Internet Security Research Group (ISRG)."
 
 
1890
  msgstr ""
1891
 
1892
+ #: settings/config/config.php:213
1893
+ msgid "General Settings"
1894
  msgstr ""
1895
 
1896
+ #: settings/config/config.php:217
1897
+ msgid "Hosting"
1898
  msgstr ""
1899
 
1900
+ #: settings/config/config.php:218
1901
+ msgid "Below you will find the instructions for different hosting environments and configurations. If you start the process with the necessary instructions and credentials the next view steps will be done in no time."
1902
  msgstr ""
1903
 
1904
+ #: settings/config/config.php:228
1905
+ msgid "DNS verification"
1906
  msgstr ""
1907
 
1908
+ #: settings/config/config.php:290
1909
+ #: settings/config/config.php:298
1910
+ msgid "Redirect method"
1911
  msgstr ""
1912
 
1913
+ #: settings/config/config.php:292
1914
+ msgid "No redirect"
 
1915
  msgstr ""
1916
 
1917
+ #: settings/config/config.php:293
1918
+ msgid "301 PHP redirect"
1919
  msgstr ""
1920
 
1921
+ #: settings/config/config.php:294
1922
+ msgid "301 .htaccess redirect"
 
 
1923
  msgstr ""
1924
 
1925
+ #: settings/config/config.php:299
1926
+ msgid "Redirects all requests over HTTP to HTTPS using a PHP 301 redirect. Enable if the .htaccess redirect cannot be used, for example on NGINX servers."
 
1927
  msgstr ""
1928
 
1929
+ #: settings/config/config.php:315
1930
+ msgid "Mixed content fixer"
1931
  msgstr ""
1932
 
1933
+ #: settings/config/config.php:329
1934
+ #: settings/config/config.php:332
1935
+ msgid "Mixed content fixer - init hook"
1936
  msgstr ""
1937
 
1938
+ #: settings/config/config.php:333
1939
+ msgid "If this option is set to true, the mixed content fixer will fire on the init hook instead of the template_redirect hook. Only use this option when you experience problems with the mixed content fixer."
 
1940
  msgstr ""
1941
 
1942
+ #: settings/config/config.php:360
1943
+ msgid "Dismiss all notices"
1944
  msgstr ""
1945
 
1946
+ #: settings/config/config.php:370
1947
+ #: settings/build/index.js:382
1948
+ #: settings/src/LetsEncrypt/Installation.js:103
1949
+ #: settings/src/LetsEncrypt/Installation.js:108
1950
+ #: settings/src/LetsEncrypt/Installation.js:112
1951
+ msgid "Download"
1952
  msgstr ""
1953
 
1954
+ #: settings/config/config.php:371
1955
+ msgid "System status"
1956
  msgstr ""
1957
 
1958
+ #: settings/config/config.php:380
1959
+ msgid "Delete all data on plugin deletion"
 
 
1960
  msgstr ""
1961
 
1962
+ #: settings/config/config.php:388
1963
+ msgid "Stop editing the .htaccess file"
 
1964
  msgstr ""
1965
 
1966
+ #: settings/config/config.php:405
1967
+ msgid "Premium support"
 
1968
  msgstr ""
1969
 
1970
+ #: settings/config/config.php:418
1971
+ msgid "Disable \"anyone can register\""
 
 
1972
  msgstr ""
1973
 
1974
+ #: settings/config/config.php:424
1975
+ msgid "About Hardening"
 
 
1976
  msgstr ""
1977
 
1978
+ #: settings/config/config.php:425
1979
+ msgid "Hardening features limit the possibility of potential weaknesses and vulnerabilities which can be misused."
1980
  msgstr ""
1981
 
1982
+ #: settings/config/config.php:428
1983
+ msgid "User registration is restricted"
1984
  msgstr ""
1985
 
1986
+ #: settings/config/config.php:429
1987
+ msgid "User registration is not restricted"
1988
  msgstr ""
1989
 
1990
+ #: settings/config/config.php:438
1991
+ msgid "Disable the built-in file editors"
 
1992
  msgstr ""
1993
 
1994
+ #: settings/config/config.php:442
1995
+ msgid "File editing is disabled"
1996
  msgstr ""
1997
 
1998
+ #: settings/config/config.php:443
1999
+ msgid "File editing is enabled"
 
2000
  msgstr ""
2001
 
2002
+ #: settings/config/config.php:452
2003
+ msgid "Prevent code execution in the public 'Uploads' folder"
2004
  msgstr ""
2005
 
2006
+ #: settings/config/config.php:456
2007
+ msgid "Code execution is restricted"
 
 
 
2008
  msgstr ""
2009
 
2010
+ #: settings/config/config.php:457
2011
+ msgid "Code execution is not restricted"
2012
  msgstr ""
2013
 
2014
+ #: settings/config/config.php:466
2015
+ msgid "Hide your WordPress version"
2016
  msgstr ""
2017
 
2018
+ #: settings/config/config.php:475
2019
+ msgid "Prevent exposed login feedback"
2020
  msgstr ""
2021
 
2022
+ #: settings/config/config.php:484
2023
+ msgid "Disable directory browsing"
 
2024
  msgstr ""
2025
 
2026
+ #: settings/config/config.php:488
2027
+ msgid "Browsing directories is blocked"
2028
  msgstr ""
2029
 
2030
+ #: settings/config/config.php:489
2031
+ msgid "Browsing directories is possible"
 
2032
  msgstr ""
2033
 
2034
+ #: settings/config/config.php:498
2035
+ msgid "Disable user enumeration"
 
2036
  msgstr ""
2037
 
2038
+ #: settings/config/config.php:502
2039
+ msgid "User enumeration is restricted"
 
 
2040
  msgstr ""
2041
 
2042
+ #: settings/config/config.php:503
2043
+ msgid "User enumeration is possible"
2044
  msgstr ""
2045
 
2046
+ #: settings/config/config.php:512
2047
+ msgid "Rename 'admin' usernames"
2048
  msgstr ""
2049
 
2050
+ #: settings/config/config.php:516
2051
+ msgid "Username 'Admin' is not allowed"
2052
  msgstr ""
2053
 
2054
+ #: settings/config/config.php:517
2055
+ msgid "Username 'Admin' is allowed"
2056
  msgstr ""
2057
 
2058
+ #: settings/config/config.php:526
2059
+ msgid "Disable XML-RPC"
 
 
2060
  msgstr ""
2061
 
2062
+ #: settings/config/config.php:535
2063
+ msgid "Block user registrations when login and display name are the same"
2064
  msgstr ""
2065
 
2066
+ #: settings/config/config.php:544
2067
+ msgid "Disable HTTP methods"
2068
  msgstr ""
2069
 
2070
+ #: settings/config/config.php:553
2071
+ msgid "Rename and randomize your database prefix"
2072
  msgstr ""
2073
 
2074
+ #: settings/config/config.php:562
2075
+ msgid "Change debug.log file location"
2076
  msgstr ""
2077
 
2078
+ #: settings/config/config.php:566
2079
+ msgid "Debug log not publicly accessible"
2080
  msgstr ""
2081
 
2082
+ #: settings/config/config.php:567
2083
+ msgid "Debug log is now public"
2084
  msgstr ""
2085
 
2086
+ #: settings/config/config.php:576
2087
+ msgid "Disable application passwords"
2088
  msgstr ""
2089
 
2090
+ #: settings/config/config.php:616
2091
+ msgid "Method"
 
 
2092
  msgstr ""
2093
 
2094
+ #: settings/config/config.php:621
2095
+ msgid "Login status"
 
2096
  msgstr ""
2097
 
2098
+ #: settings/config/config.php:626
2099
+ msgid "Count"
 
2100
  msgstr ""
2101
 
2102
+ #: settings/config/config.php:631
2103
+ #: settings/config/config.php:1068
2104
+ msgid "Action"
2105
  msgstr ""
2106
 
2107
+ #: settings/config/config.php:636
2108
+ msgid "Delete"
2109
  msgstr ""
2110
 
2111
+ #: settings/config/config.php:653
2112
+ msgid "About Recommended Security Headers"
2113
  msgstr ""
2114
 
2115
+ #: settings/config/config.php:654
2116
+ msgid "These security headers are the fundamental security measures to protect your website visitors while visiting your website."
2117
  msgstr ""
2118
 
2119
+ #: settings/config/config.php:672
2120
+ #: settings/config/config.php:686
2121
+ #: settings/config/config.php:786
2122
+ #: settings/config/config.php:808
2123
+ #: settings/config/config.php:823
2124
+ msgid "Off"
2125
  msgstr ""
2126
 
2127
+ #: settings/config/config.php:687
2128
+ msgid "recommended"
2129
  msgstr ""
2130
 
2131
+ #: settings/config/config.php:711
2132
+ msgid "About HTTP Strict Transport Security"
2133
  msgstr ""
2134
 
2135
+ #: settings/config/config.php:712
2136
+ msgid "Leveraging your SSL certificate with HSTS is a staple for every website. Force your website over SSL, mitigating risks of malicious counterfeit websites in your name."
2137
  msgstr ""
2138
 
2139
+ #: settings/config/config.php:766
2140
+ msgid "One day (for testing only)"
2141
  msgstr ""
2142
 
2143
+ #: settings/config/config.php:767
2144
+ msgid "One year"
 
2145
  msgstr ""
2146
 
2147
+ #: settings/config/config.php:768
2148
+ msgid "Two years (required for preload)"
 
2149
  msgstr ""
2150
 
2151
+ #: settings/config/config.php:794
2152
+ msgid "About Cross Origin Policies"
2153
  msgstr ""
2154
 
2155
+ #: settings/config/config.php:795
2156
+ msgid "One of the most powerful features, and therefore the most complex are the Cross-Origin headers that can isolate your website so any data leaks are minimized."
 
 
2157
  msgstr ""
2158
 
2159
+ #: settings/config/config.php:841
2160
+ msgid "About the Mixed Content Scan"
 
 
2161
  msgstr ""
2162
 
2163
+ #: settings/config/config.php:842
2164
+ msgid "The extensive mixed content scan will list all current and future issues and provide a fix, or instructions to fix manually."
 
 
 
2165
  msgstr ""
2166
 
2167
+ #: settings/config/config.php:846
2168
+ msgid "Type"
2169
  msgstr ""
2170
 
2171
+ #: settings/config/config.php:852
2172
+ msgid "Description"
2173
  msgstr ""
2174
 
2175
+ #: settings/config/config.php:858
2176
+ #: settings/config/config.php:1053
2177
+ msgid "Location"
2178
  msgstr ""
2179
 
2180
+ #: settings/config/config.php:871
2181
+ #: settings/build/index.js:382
2182
+ #: settings/src/Dashboard/TaskElement.js:30
2183
+ #: settings/src/Dashboard/TaskElement.js:31
2184
+ #: settings/src/Modal/Modal.js:80
2185
+ #: settings/src/Settings/MixedContentScan.js:233
2186
+ msgid "Fix"
2187
  msgstr ""
2188
 
2189
+ #: settings/config/config.php:886
2190
+ #: settings/build/index.js:382
2191
+ #: settings/src/Settings/ChangeStatus.js:11
2192
+ msgid "Allow"
2193
  msgstr ""
2194
 
2195
+ #: settings/config/config.php:886
2196
+ #: settings/build/index.js:382
2197
+ #: settings/src/Settings/LearningMode.js:254
2198
+ #: settings/src/Settings/PermissionsPolicy.js:148
2199
+ msgid "Disable"
2200
  msgstr ""
2201
 
2202
+ #: settings/config/config.php:886
2203
+ msgid "Self (Default)"
2204
  msgstr ""
2205
 
2206
+ #: settings/config/config.php:892
2207
+ msgid "About the Permission Policy"
 
 
2208
  msgstr ""
2209
 
2210
+ #: settings/config/config.php:893
2211
+ msgid "Browser features are plentiful, but most are not needed on your website."
 
2212
  msgstr ""
2213
 
2214
+ #: settings/config/config.php:893
2215
+ msgid "They might be misused if you don’t actively tell the browser to disable these features."
2216
  msgstr ""
2217
 
2218
+ #: settings/config/config.php:897
2219
+ msgid "Feature"
2220
  msgstr ""
2221
 
2222
+ #: settings/config/config.php:902
2223
+ msgid "Options"
2224
  msgstr ""
2225
 
2226
+ #: settings/config/config.php:975
2227
+ msgid "Enable Permissions Policy"
 
 
 
 
 
 
 
2228
  msgstr ""
2229
 
2230
+ #: settings/config/config.php:984
2231
+ msgid "Serve encrypted and authenticated responses"
2232
  msgstr ""
2233
 
2234
+ #: settings/config/config.php:990
2235
+ msgid "About the Content Security Policy"
2236
  msgstr ""
2237
 
2238
+ #: settings/config/config.php:991
2239
+ msgid "The content security policy has many options, so we always recommend starting in ‘learning mode’ to see what files and scripts are loaded."
2240
  msgstr ""
2241
 
2242
+ #: settings/config/config.php:1006
2243
+ msgid "Disable (Default)"
2244
  msgstr ""
2245
 
2246
+ #: settings/config/config.php:1010
2247
+ msgid "Allow your domain to be embedded"
 
 
 
2248
  msgstr ""
2249
 
2250
+ #: settings/config/config.php:1019
2251
+ msgid "Add additional domains which can embed your website, if needed. Comma seperated."
2252
  msgstr ""
2253
 
2254
+ #: settings/config/config.php:1058
2255
+ msgid "Directive"
2256
  msgstr ""
2257
 
2258
+ #: settings/config/config.php:1063
2259
+ msgid "Source"
2260
  msgstr ""
2261
 
2262
+ #: settings/config/config.php:1110
2263
+ msgid "Progress"
2264
  msgstr ""
2265
 
2266
+ #: settings/config/config.php:1123
2267
+ msgid "Powered by Qualys"
 
2268
  msgstr ""
2269
 
2270
+ #: settings/config/config.php:1125
2271
+ msgid "Status"
 
2272
  msgstr ""
2273
 
2274
+ #: settings/config/config.php:1141
2275
+ msgid "Tips & Tricks"
2276
  msgstr ""
2277
 
2278
+ #: settings/config/config.php:1152
2279
+ msgid "Other Plugins"
2280
  msgstr ""
2281
 
2282
+ #: settings/settings.php:85
2283
+ msgid "SSL settings"
 
 
 
 
2284
  msgstr ""
2285
 
2286
+ #: settings/settings.php:86
2287
+ msgid "SSL"
 
 
 
2288
  msgstr ""
2289
 
2290
+ #: settings/settings.php:312
2291
+ msgid "Self-hosted, Privacy-friendly analytics tool"
2292
  msgstr ""
2293
 
2294
+ #: settings/settings.php:327
2295
+ msgid "Terms and Conditions"
 
 
 
 
2296
  msgstr ""
2297
 
2298
+ #: settings/templates/tips-tricks-footer.php:3
2299
+ #: settings/build/index.js:382
2300
+ #: settings/src/Header.js:39
2301
+ msgid "Documentation"
2302
  msgstr ""
2303
 
2304
+ #: upgrade/upgrade-to-pro.php:73
2305
+ msgid "Checking if plugin folder exists..."
 
2306
  msgstr ""
2307
 
2308
+ #: upgrade/upgrade-to-pro.php:74
2309
+ msgid "Able to create destination folder"
 
2310
  msgstr ""
2311
 
2312
+ #: upgrade/upgrade-to-pro.php:75
2313
+ msgid "Destination folder already exists"
2314
  msgstr ""
2315
 
2316
+ #: upgrade/upgrade-to-pro.php:80
2317
+ msgid "Validating license..."
 
2318
  msgstr ""
2319
 
2320
+ #: upgrade/upgrade-to-pro.php:81
2321
+ msgid "License valid"
2322
  msgstr ""
2323
 
2324
+ #: upgrade/upgrade-to-pro.php:82
2325
+ msgid "License invalid"
 
2326
  msgstr ""
2327
 
2328
+ #: upgrade/upgrade-to-pro.php:87
2329
+ msgid "Retrieving package information..."
2330
  msgstr ""
2331
 
2332
+ #: upgrade/upgrade-to-pro.php:88
2333
+ msgid "Package information retrieved"
2334
  msgstr ""
2335
 
2336
+ #: upgrade/upgrade-to-pro.php:89
2337
+ msgid "Failed to gather package information"
2338
  msgstr ""
2339
 
2340
+ #: upgrade/upgrade-to-pro.php:94
2341
+ msgid "Installing plugin..."
2342
  msgstr ""
2343
 
2344
+ #: upgrade/upgrade-to-pro.php:95
2345
+ msgid "Plugin installed"
 
2346
  msgstr ""
2347
 
2348
+ #: upgrade/upgrade-to-pro.php:96
2349
+ msgid "Failed to install plugin"
 
 
2350
  msgstr ""
2351
 
2352
+ #: upgrade/upgrade-to-pro.php:101
2353
+ msgid "Activating plugin..."
2354
  msgstr ""
2355
 
2356
+ #: upgrade/upgrade-to-pro.php:102
2357
+ msgid "Plugin activated"
2358
  msgstr ""
2359
 
2360
+ #: upgrade/upgrade-to-pro.php:103
2361
+ msgid "Failed to activate plugin"
2362
  msgstr ""
2363
 
2364
+ #: upgrade/upgrade-to-pro.php:136
2365
+ msgid "Self-hosted and privacy-friendly analytics tool."
2366
  msgstr ""
2367
 
2368
+ #: upgrade/upgrade-to-pro.php:140
2369
+ msgid "Get detailed insights into visitors' behaviour with Burst Statistics, the privacy-friendly analytics dashboard from Really Simple Plugins."
 
2370
  msgstr ""
2371
 
2372
+ #: upgrade/upgrade-to-pro.php:149
2373
+ msgid "GDPR/CCPA Privacy Suite"
 
 
 
2374
  msgstr ""
2375
 
2376
+ #: upgrade/upgrade-to-pro.php:153
2377
+ msgid "Configure your Cookie Notice, Cookie Consent and Cookie Policy with our Wizard and Cookie Scan. Supports GDPR, DSGVO, TTDSG, LGPD, POPIA, RGPD, CCPA and PIPEDA."
 
 
2378
  msgstr ""
2379
 
2380
+ #: upgrade/upgrade-to-pro.php:166
2381
+ msgid "One click SSL optimization"
2382
  msgstr ""
2383
 
2384
+ #: upgrade/upgrade-to-pro.php:170
2385
+ msgid "Really Simple SSL automatically detects your settings and configures your website to run over HTTPS. To keep it lightweight, we kept the options to a minimum. Your website will move to SSL with one click."
2386
  msgstr ""
2387
 
2388
+ #: upgrade/upgrade-to-pro.php:181
2389
+ #: settings/build/index.js:382
2390
+ #: settings/src/Dashboard/OtherPlugins.js:88
2391
+ msgid "Installed"
2392
  msgstr ""
2393
 
2394
+ #: upgrade/upgrade-to-pro.php:224
2395
+ msgid "Installation finished"
2396
  msgstr ""
2397
 
2398
+ #: upgrade/upgrade-to-pro.php:322
2399
+ msgid "Recommended by Really Simple Plugins"
2400
  msgstr ""
2401
 
2402
+ #: upgrade/upgrade-to-pro.php:347
2403
+ msgid "Installing"
2404
  msgstr ""
2405
 
2406
+ #: upgrade/upgrade-to-pro.php:358
2407
+ msgid "Visit Dashboard"
2408
  msgstr ""
2409
 
2410
+ #: upgrade/upgrade-to-pro.php:363
2411
+ #: upgrade/upgrade-to-pro.php:364
2412
+ msgid "An Error Occurred:"
2413
  msgstr ""
2414
 
2415
+ #: upgrade/upgrade-to-pro.php:363
2416
+ msgid "Install %sManually%s."
 
2417
  msgstr ""
2418
 
2419
+ #: upgrade/upgrade-to-pro.php:364
2420
+ msgid "Check your %slicense%s."
2421
  msgstr ""
2422
 
2423
+ #: upgrade/upgrade-to-pro.php:421
2424
+ msgid "Plugin already installed!"
 
2425
  msgstr ""
2426
 
2427
+ #: upgrade/upgrade-to-pro.php:521
2428
+ #: upgrade/upgrade-to-pro.php:553
2429
+ msgid "An error occurred, please try again."
2430
  msgstr ""
2431
 
2432
+ #: upgrade/upgrade-to-pro.php:529
2433
+ msgid "Your license key expired on %s."
 
 
 
 
2434
  msgstr ""
2435
 
2436
+ #: upgrade/upgrade-to-pro.php:535
2437
+ msgid "Your license key has been disabled."
 
2438
  msgstr ""
2439
 
2440
+ #: upgrade/upgrade-to-pro.php:538
2441
+ msgid "Missing license."
 
2442
  msgstr ""
2443
 
2444
+ #: upgrade/upgrade-to-pro.php:541
2445
+ msgid "Invalid license."
2446
  msgstr ""
2447
 
2448
+ #: upgrade/upgrade-to-pro.php:544
2449
+ msgid "Your license is not active for this URL."
2450
  msgstr ""
2451
 
2452
+ #: upgrade/upgrade-to-pro.php:547
2453
+ msgid "This appears to be an invalid license key for this plugin."
2454
  msgstr ""
2455
 
2456
+ #: upgrade/upgrade-to-pro.php:550
2457
+ msgid "Your license key has reached its activation limit."
2458
  msgstr ""
2459
 
2460
+ #: settings/build/index.js:382
2461
+ #: settings/src/Dashboard/ProgressFooter.js:44
2462
+ #: settings/src/Header.js:48
2463
+ #: settings/src/Menu/Menu.js:49
2464
+ msgid "Go Pro"
2465
  msgstr ""
2466
 
2467
+ #: settings/build/index.js:382
2468
+ #: settings/src/Dashboard/ProgressBlockHeader.js:51
2469
+ msgid "All tasks"
2470
  msgstr ""
2471
 
2472
+ #: settings/build/index.js:382
2473
+ #: settings/src/Dashboard/ProgressBlockHeader.js:55
2474
+ msgid "Remaining tasks"
2475
  msgstr ""
2476
 
2477
+ #: settings/build/index.js:382
2478
+ #: settings/src/Dashboard/SecurityFeaturesBlock/SecurityFeatureBullet.js:27
2479
+ msgid "%sRead more%s"
 
2480
  msgstr ""
2481
 
2482
+ #: settings/build/index.js:382
2483
+ #: settings/src/Dashboard/SecurityFeaturesBlock/SecurityFeaturesBlock.js:38
2484
+ msgid "Improve WordPress security."
2485
  msgstr ""
2486
 
2487
+ #: settings/build/index.js:382
2488
+ #: settings/src/Dashboard/SecurityFeaturesBlock/SecurityFeaturesBlock.js:39
2489
+ msgid "Check our %sdocumentation%s"
2490
  msgstr ""
2491
 
2492
+ #: settings/build/index.js:382
2493
+ #: settings/src/Dashboard/SecurityFeaturesBlock/SecurityFeaturesBlock.js:40
2494
+ msgid "or use the %sWordPress forum%s."
2495
  msgstr ""
2496
 
2497
+ #: settings/build/index.js:382
2498
+ #: settings/src/Dashboard/ProgressFooter.js:32
2499
+ msgid "SSL Activated"
2500
  msgstr ""
2501
 
2502
+ #: settings/build/index.js:382
2503
+ #: settings/src/Dashboard/ProgressFooter.js:32
2504
+ msgid "SSL not activated"
 
2505
  msgstr ""
2506
 
2507
+ #: settings/build/index.js:382
2508
+ #: settings/src/Dashboard/ProgressFooter.js:52
2509
+ msgid "Mixed content"
2510
  msgstr ""
2511
 
2512
+ #: settings/build/index.js:382
2513
+ #: settings/src/Dashboard/ProgressFooter.js:56
2514
+ msgid "301 redirect"
2515
  msgstr ""
2516
 
2517
+ #: settings/build/index.js:382
2518
+ #: settings/src/Dashboard/SslLabs.js:350
2519
+ msgid "No test started yet"
2520
  msgstr ""
2521
 
2522
+ #: settings/build/index.js:382
2523
+ #: settings/src/Dashboard/SslLabs.js:378
2524
+ msgid "Not available on localhost"
2525
  msgstr ""
2526
 
2527
+ #: settings/build/index.js:382
2528
+ #: settings/src/Dashboard/SslLabs.js:333
2529
+ msgid "Protocol support"
 
2530
  msgstr ""
2531
 
2532
+ #: settings/build/index.js:382
2533
+ #: settings/src/Dashboard/SslLabs.js:334
2534
+ msgid "Protocol support..."
2535
  msgstr ""
2536
 
2537
+ #: settings/build/index.js:382
2538
+ #: settings/src/Dashboard/SslLabs.js:335
2539
+ msgid "Supports TLS 1.1"
 
2540
  msgstr ""
2541
 
2542
+ #: settings/build/index.js:382
2543
+ #: settings/src/Dashboard/SslLabs.js:336
2544
+ msgid "No TLS 1.1"
 
2545
  msgstr ""
2546
 
2547
+ #: settings/build/index.js:382
2548
+ #: settings/src/Dashboard/SslLabs.js:233
2549
+ msgid "HSTS"
 
 
2550
  msgstr ""
2551
 
2552
+ #: settings/build/index.js:382
2553
+ #: settings/src/Dashboard/SslLabs.js:234
2554
+ msgid "HSTS..."
2555
  msgstr ""
2556
 
2557
+ #: settings/build/index.js:382
2558
+ #: settings/src/Dashboard/SslLabs.js:235
2559
+ msgid "No HSTS header"
2560
  msgstr ""
2561
 
2562
+ #: settings/build/index.js:382
2563
+ #: settings/src/Dashboard/SslLabs.js:236
2564
+ msgid "HSTS header detected"
2565
  msgstr ""
2566
 
2567
+ #: settings/build/index.js:382
2568
+ #: settings/src/Dashboard/SslLabs.js:304
2569
+ msgid "Certificate"
2570
  msgstr ""
2571
 
2572
+ #: settings/build/index.js:382
2573
+ #: settings/src/Dashboard/SslLabs.js:305
2574
+ msgid "Certificate..."
2575
  msgstr ""
2576
 
2577
+ #: settings/build/index.js:382
2578
+ #: settings/src/Dashboard/SslLabs.js:306
2579
+ msgid "Certificate issue"
2580
  msgstr ""
2581
 
2582
+ #: settings/build/index.js:382
2583
+ #: settings/src/Dashboard/SslLabs.js:307
2584
+ msgid "Valid certificate"
2585
  msgstr ""
2586
 
2587
+ #: settings/build/index.js:382
2588
+ #: settings/src/Dashboard/SslLabs.js:269
2589
+ msgid "Cipher strength"
2590
  msgstr ""
2591
 
2592
+ #: settings/build/index.js:382
2593
+ #: settings/src/Dashboard/SslLabs.js:412
2594
+ msgid "What does my score mean?"
2595
  msgstr ""
2596
 
2597
+ #: settings/build/index.js:382
2598
+ #: settings/src/Dashboard/SslLabs.js:412
2599
+ #: settings/src/LetsEncrypt/DnsVerification.js:60
2600
+ msgid "Read more"
2601
  msgstr ""
2602
 
2603
+ #: settings/build/index.js:382
2604
+ #: settings/src/Dashboard/SslLabs.js:418
2605
+ msgid "Last check:"
2606
  msgstr ""
2607
 
2608
+ #: settings/build/index.js:382
2609
+ #: settings/src/Dashboard/SslLabs.js:424
2610
+ msgid "View detailed report on Qualys SSL Labs"
 
 
2611
  msgstr ""
2612
 
2613
+ #: settings/build/index.js:382
2614
+ #: settings/src/Dashboard/SslLabsFooter.js:14
2615
+ msgid "Continue SSL Health check"
2616
  msgstr ""
2617
 
2618
+ #: settings/build/index.js:382
2619
+ #: settings/src/Dashboard/SslLabsFooter.js:15
2620
+ msgid "Check SSL Health"
2621
  msgstr ""
2622
 
2623
+ #: settings/build/index.js:382
2624
+ #: settings/src/Dashboard/OtherPlugins.js:69
2625
+ #: settings/src/Onboarding/Onboarding.js:194
2626
+ #: settings/src/Onboarding/Onboarding.js:195
2627
+ msgid "Activating..."
2628
  msgstr ""
2629
 
2630
+ #: settings/build/index.js:382
2631
+ #: settings/src/Dashboard/OtherPlugins.js:70
2632
+ #: settings/src/Dashboard/OtherPlugins.js:71
2633
+ msgid "Downloading..."
2634
  msgstr ""
2635
 
2636
+ #: settings/build/index.js:382
2637
+ #: settings/src/Menu/MenuItem.js:40
2638
+ msgid "New"
2639
  msgstr ""
2640
 
2641
+ #: settings/build/index.js:382
2642
+ #: settings/src/Settings/License.js:133
2643
+ msgid "Deactivate"
2644
  msgstr ""
2645
 
2646
+ #: settings/build/index.js:382
2647
+ #: settings/src/LetsEncrypt/Directories.js:22
2648
+ #: settings/src/LetsEncrypt/DnsVerification.js:23
2649
+ msgid "The challenge directory is used to verify the domain ownership."
2650
  msgstr ""
2651
 
2652
+ #: settings/build/index.js:382
2653
+ #: settings/src/LetsEncrypt/Directories.js:30
2654
+ msgid "The key directory is needed to store the generated keys."
2655
  msgstr ""
2656
 
2657
+ #: settings/build/index.js:382
2658
+ #: settings/src/LetsEncrypt/Directories.js:30
2659
+ #: settings/src/LetsEncrypt/Directories.js:38
2660
+ msgid "By placing it outside the root folder, it is not publicly accessible."
2661
  msgstr ""
2662
 
2663
+ #: settings/build/index.js:382
2664
+ #: settings/src/LetsEncrypt/Directories.js:38
2665
+ msgid "The certificate will get stored in this directory."
2666
  msgstr ""
2667
 
2668
+ #: settings/build/index.js:382
2669
+ #: settings/src/LetsEncrypt/Directories.js:55
2670
+ msgid "Switched to DNS"
2671
  msgstr ""
2672
 
2673
+ #: settings/build/index.js:382
2674
+ #: settings/src/LetsEncrypt/Directories.js:70
2675
+ #: settings/src/LetsEncrypt/DnsVerification.js:58
2676
+ #: settings/src/LetsEncrypt/Installation.js:99
2677
+ msgid "Next step"
2678
  msgstr ""
2679
 
2680
+ #: settings/build/index.js:382
2681
+ #: settings/src/LetsEncrypt/Directories.js:75
2682
+ msgid "If the challenge directory cannot be created, or is not reachable, you can either remove the server limitation, or change to DNS verification."
2683
  msgstr ""
2684
 
2685
+ #: settings/build/index.js:382
2686
+ #: settings/src/LetsEncrypt/Directories.js:81
2687
+ #: settings/src/LetsEncrypt/Directories.js:94
2688
+ #: settings/src/LetsEncrypt/Directories.js:123
2689
+ msgid "Switch to DNS verification"
2690
  msgstr ""
2691
 
2692
+ #: settings/build/index.js:382
2693
+ #: settings/src/LetsEncrypt/Directories.js:87
2694
+ msgid "If you also want to secure subdomains like mail.domain.com, cpanel.domain.com, you have to use the %sDNS%s challenge."
2695
  msgstr ""
2696
 
2697
+ #: settings/build/index.js:382
2698
+ #: settings/src/LetsEncrypt/Directories.js:89
2699
+ msgid "Please note that auto-renewal with a DNS challenge might not be possible."
2700
  msgstr ""
2701
 
2702
+ #: settings/build/index.js:382
2703
+ #: settings/src/LetsEncrypt/Directories.js:99
2704
+ msgid "Create a challenge directory"
 
 
 
2705
  msgstr ""
2706
 
2707
+ #: settings/build/index.js:382
2708
+ #: settings/src/LetsEncrypt/Directories.js:102
2709
+ msgid "Navigate in FTP or File Manager to the root of your WordPress installation:"
 
 
 
2710
  msgstr ""
2711
 
2712
+ #: settings/build/index.js:382
2713
+ #: settings/src/LetsEncrypt/Directories.js:106
2714
+ msgid "Create a folder called “.well-known”"
 
2715
  msgstr ""
2716
 
2717
+ #: settings/build/index.js:382
2718
+ #: settings/src/LetsEncrypt/Directories.js:109
2719
+ msgid "Inside the folder called “.well-known” create a new folder called “acme-challenge”, with 644 writing permissions."
2720
  msgstr ""
2721
 
2722
+ #: settings/build/index.js:382
2723
+ #: settings/src/LetsEncrypt/Directories.js:112
2724
+ #: settings/src/LetsEncrypt/Directories.js:144
2725
+ #: settings/src/LetsEncrypt/Directories.js:166
2726
+ msgid "Click the refresh button."
2727
  msgstr ""
2728
 
2729
+ #: settings/build/index.js:382
2730
+ #: settings/src/LetsEncrypt/Directories.js:116
2731
+ msgid "Or you can switch to DNS verification"
2732
  msgstr ""
2733
 
2734
+ #: settings/build/index.js:382
2735
+ #: settings/src/LetsEncrypt/Directories.js:118
2736
+ msgid "If the challenge directory cannot be created, you can either remove the server limitation, or change to DNS verification."
2737
  msgstr ""
2738
 
2739
+ #: settings/build/index.js:382
2740
+ #: settings/src/LetsEncrypt/Directories.js:131
2741
+ msgid "Create a key directory"
2742
  msgstr ""
2743
 
2744
+ #: settings/build/index.js:382
2745
+ #: settings/src/LetsEncrypt/Directories.js:134
2746
+ #: settings/src/LetsEncrypt/Directories.js:156
2747
+ msgid "Navigate in FTP or File Manager to one level above the root of your WordPress installation:"
2748
  msgstr ""
2749
 
2750
+ #: settings/build/index.js:382
2751
+ #: settings/src/LetsEncrypt/Directories.js:138
2752
+ #: settings/src/LetsEncrypt/Directories.js:160
2753
+ msgid "Create a folder called “ssl”"
2754
  msgstr ""
2755
 
2756
+ #: settings/build/index.js:382
2757
+ #: settings/src/LetsEncrypt/Directories.js:141
2758
+ msgid "Inside the folder called “ssl” create a new folder called “keys”, with 644 writing permissions."
2759
  msgstr ""
2760
 
2761
+ #: settings/build/index.js:382
2762
+ #: settings/src/LetsEncrypt/Directories.js:153
2763
+ msgid "Create a certs directory"
2764
  msgstr ""
2765
 
2766
+ #: settings/build/index.js:382
2767
+ #: settings/src/LetsEncrypt/Directories.js:163
2768
+ msgid "Inside the folder called “ssl” create a new folder called “certs”, with 644 writing permissions."
2769
  msgstr ""
2770
 
2771
+ #: settings/build/index.js:382
2772
+ #: settings/src/LetsEncrypt/DnsVerification.js:59
2773
+ msgid "Add the following token as text record to your DNS records. We recommend to use a short TTL during installation, in case you need to change it."
2774
  msgstr ""
2775
 
2776
+ #: settings/build/index.js:382
2777
+ #: settings/src/LetsEncrypt/DnsVerification.js:65
2778
+ msgid "domain"
2779
  msgstr ""
2780
 
2781
+ #: settings/build/index.js:382
2782
+ #: settings/src/LetsEncrypt/DnsVerification.js:66
2783
+ msgid "Value"
2784
  msgstr ""
2785
 
2786
+ #: settings/build/index.js:382
2787
+ #: settings/src/LetsEncrypt/DnsVerification.js:79
2788
+ msgid "DNS verification active. You can switch back to directory verification here."
2789
  msgstr ""
2790
 
2791
+ #: settings/build/index.js:382
2792
+ #: settings/src/LetsEncrypt/DnsVerification.js:41
2793
+ msgid "Switched to directory"
2794
  msgstr ""
2795
 
2796
+ #: settings/build/index.js:382
2797
+ #: settings/src/LetsEncrypt/DnsVerification.js:83
2798
+ msgid "Switch to directory verification"
2799
  msgstr ""
2800
 
2801
+ #: settings/build/index.js:382
2802
+ #: settings/src/LetsEncrypt/Generation.js:44
2803
+ msgid "We could not check the DNS records. If you just added the record, please check in a few minutes."
 
2804
  msgstr ""
2805
 
2806
+ #: settings/build/index.js:382
2807
+ #: settings/src/LetsEncrypt/Generation.js:45
2808
+ msgid "You can manually check the DNS records in an %sonline tool%s."
 
2809
  msgstr ""
2810
 
2811
+ #: settings/build/index.js:382
2812
+ #: settings/src/LetsEncrypt/Generation.js:47
2813
+ msgid "If you're sure it's set correctly, you can click the button to skip the DNS check."
2814
  msgstr ""
2815
 
2816
+ #: settings/build/index.js:382
2817
+ #: settings/src/LetsEncrypt/Generation.js:27
2818
+ msgid "Skip DNS verification "
2819
  msgstr ""
2820
 
2821
+ #: settings/build/index.js:382
2822
+ #: settings/src/LetsEncrypt/Generation.js:53
2823
+ msgid "Skip DNS check"
 
 
2824
  msgstr ""
2825
 
2826
+ #: settings/build/index.js:382
2827
+ #: settings/src/Onboarding/Onboarding.js:163
2828
+ msgid "SSL has been activated network wide"
 
 
2829
  msgstr ""
2830
 
2831
+ #: settings/build/index.js:382
2832
+ #: settings/src/Onboarding/Onboarding.js:166
2833
+ msgid "Processing activation of subsites networkwide"
 
 
2834
  msgstr ""
2835
 
2836
+ #: settings/build/index.js:382
2837
+ #: settings/src/Onboarding/Onboarding.js:196
2838
+ msgid "Installing..."
2839
  msgstr ""
2840
 
2841
+ #: settings/build/index.js:382
2842
+ #: settings/src/Onboarding/Onboarding.js:197
2843
+ msgid "Failed"
 
 
2844
  msgstr ""
2845
 
2846
+ #: settings/build/index.js:382
2847
+ #: settings/src/Onboarding/Onboarding.js:198
2848
+ msgid "Finished"
2849
  msgstr ""
2850
 
2851
+ #: settings/build/index.js:382
2852
+ #: settings/src/Onboarding/Onboarding.js:219
2853
+ msgid "working"
2854
  msgstr ""
2855
 
2856
+ #: settings/build/index.js:382
2857
+ #: settings/src/Onboarding/Onboarding.js:220
2858
+ msgid "completed"
2859
  msgstr ""
2860
 
2861
+ #: settings/build/index.js:382
2862
+ #: settings/src/Onboarding/Onboarding.js:69
2863
+ msgid "Re-checking SSL certificate, please wait..."
2864
  msgstr ""
2865
 
2866
+ #: settings/build/index.js:382
2867
+ #: settings/src/Onboarding/Onboarding.js:292
2868
+ msgid "Refresh SSL status"
2869
  msgstr ""
2870
 
2871
+ #: settings/build/index.js:382
2872
+ #: settings/src/Onboarding/Onboarding.js:293
2873
+ msgid "The SSL detection method is not 100% accurate."
 
 
2874
  msgstr ""
2875
 
2876
+ #: settings/build/index.js:382
2877
+ #: settings/src/Onboarding/Onboarding.js:294
2878
+ msgid "If you’re certain an SSL certificate is present, and refresh SSL status does not work, please check “Override SSL detection” to continue activating SSL."
2879
  msgstr ""
2880
 
2881
+ #: settings/build/index.js:382
2882
+ #: settings/src/Onboarding/Onboarding.js:242
2883
+ msgid "Activate SSL networkwide"
 
2884
  msgstr ""
2885
 
2886
+ #: settings/build/index.js:382
2887
+ #: settings/src/Onboarding/Onboarding.js:247
2888
+ msgid "Improve Security with PRO"
2889
  msgstr ""
2890
 
2891
+ #: settings/build/index.js:382
2892
+ #: settings/src/Onboarding/Onboarding.js:248
2893
+ msgid "Install SSL"
 
 
2894
  msgstr ""
2895
 
2896
+ #: settings/build/index.js:382
2897
+ #: settings/src/Onboarding/Onboarding.js:250
2898
+ msgid "Override SSL detection"
2899
  msgstr ""
2900
 
2901
+ #: settings/build/index.js:382
2902
+ #: settings/src/Onboarding/Onboarding.js:268
2903
+ msgid "Go to Dashboard"
2904
  msgstr ""
2905
 
2906
+ #: settings/build/index.js:382
2907
+ #: settings/src/LetsEncrypt/Installation.js:24
2908
+ msgid "This is the certificate, which you need to install in your hosting dashboard."
2909
  msgstr ""
2910
 
2911
+ #: settings/build/index.js:382
2912
+ #: settings/src/LetsEncrypt/Installation.js:25
2913
+ #: settings/src/LetsEncrypt/Installation.js:101
2914
+ msgid "Certificate (CRT)"
 
2915
  msgstr ""
2916
 
2917
+ #: settings/build/index.js:382
2918
+ #: settings/src/LetsEncrypt/Installation.js:31
2919
+ msgid "The private key can be uploaded or pasted in the appropriate field on your hosting dashboard."
 
2920
  msgstr ""
2921
 
2922
+ #: settings/build/index.js:382
2923
+ #: settings/src/LetsEncrypt/Installation.js:32
2924
+ #: settings/src/LetsEncrypt/Installation.js:106
2925
+ msgid "Private Key (KEY)"
2926
  msgstr ""
2927
 
2928
+ #: settings/build/index.js:382
2929
+ #: settings/src/LetsEncrypt/Installation.js:38
2930
+ msgid "The CA Bundle will sometimes be automatically detected. If not, you can use this file."
2931
  msgstr ""
2932
 
2933
+ #: settings/build/index.js:382
2934
+ #: settings/src/LetsEncrypt/Installation.js:39
2935
+ #: settings/src/LetsEncrypt/Installation.js:110
2936
+ msgid "Certificate Authority Bundle (CABUNDLE)"
2937
  msgstr ""
2938
 
2939
+ #: settings/build/index.js:382
2940
+ #: settings/src/LetsEncrypt/Installation.js:73
2941
+ msgid "Copied!"
 
2942
  msgstr ""
2943
 
2944
+ #: settings/build/index.js:382
2945
+ #: settings/src/LetsEncrypt/Installation.js:95
2946
+ msgid "The certificate is not generated by Really Simple SSL, so there are no installation files here"
 
2947
  msgstr ""
2948
 
2949
+ #: settings/build/index.js:382
2950
+ #: settings/src/LetsEncrypt/Installation.js:100
2951
+ msgid "Install your certificate."
2952
  msgstr ""
2953
 
2954
+ #: settings/build/index.js:382
2955
+ #: settings/src/LetsEncrypt/Installation.js:104
2956
+ #: settings/src/LetsEncrypt/Installation.js:109
2957
+ #: settings/src/LetsEncrypt/Installation.js:113
2958
+ msgid "Copy content"
2959
  msgstr ""
2960
 
2961
+ #: settings/build/index.js:382
2962
+ #: settings/src/LetsEncrypt/LetsEncrypt.js:86
2963
+ msgid "Verifying DNS records..."
2964
  msgstr ""
2965
 
2966
+ #: settings/build/index.js:382
2967
+ #: settings/src/LetsEncrypt/LetsEncrypt.js:234
2968
+ msgid "Attempt %s."
2969
  msgstr ""
2970
 
2971
+ #: settings/build/index.js:382
2972
+ #: settings/src/Settings/MixedContentScan.js:220
2973
+ msgid "View"
 
2974
  msgstr ""
2975
 
2976
+ #: settings/build/index.js:382
2977
+ #: settings/src/Settings/MixedContentScan.js:284
2978
+ msgid "No results. Start your first scan"
 
2979
  msgstr ""
2980
 
2981
+ #: settings/build/index.js:382
2982
+ #: settings/src/Settings/MixedContentScan.js:285
2983
+ msgid "Everything is now served over SSL"
2984
  msgstr ""
2985
 
2986
+ #: settings/build/index.js:382
2987
+ #: settings/src/Settings/LearningMode.js:245
2988
+ #: settings/src/Settings/MixedContentScan.js:301
2989
+ msgid "No results"
2990
  msgstr ""
2991
 
2992
+ #: settings/build/index.js:382
2993
+ #: settings/src/Settings/ChangeStatus.js:11
2994
+ msgid "Revoke"
2995
  msgstr ""
2996
 
2997
+ #: settings/build/index.js:382
2998
+ #: settings/src/Settings/LearningMode.js:253
2999
+ #: settings/src/Settings/PermissionsPolicy.js:140
3000
+ msgid "Enforce"
3001
  msgstr ""
3002
 
3003
+ #: settings/build/index.js:382
3004
+ #: settings/src/Settings/LearningMode.js:269
3005
+ #: settings/src/Settings/PermissionsPolicy.js:146
3006
+ msgid "Enforced"
 
3007
  msgstr ""
3008
 
3009
+ #: settings/build/index.js:382
3010
+ #: settings/src/Settings/PermissionsPolicy.js:147
3011
+ msgid "Permissions Policy is enforced."
 
 
3012
  msgstr ""
3013
 
3014
+ #: settings/build/index.js:382
3015
+ #: settings/src/Settings/Support.js:65
3016
+ msgid "Type your question here"
3017
  msgstr ""
3018
 
3019
+ #: settings/build/index.js:382
3020
+ #: settings/src/Settings/Support.js:72
3021
+ msgid "Send"
 
3022
  msgstr ""
3023
 
3024
+ #: settings/build/index.js:382
3025
+ #: settings/src/Settings/LearningMode.js:155
3026
+ msgid "We're configuring your %s. Exit to edit and enforce."
3027
  msgstr ""
3028
 
3029
+ #: settings/build/index.js:382
3030
+ #: settings/src/Settings/LearningMode.js:156
3031
+ msgid "%s has been disabled."
3032
  msgstr ""
3033
 
3034
+ #: settings/build/index.js:382
3035
+ #: settings/src/Settings/LearningMode.js:157
3036
+ msgid "%s is enforced."
 
3037
  msgstr ""
3038
 
3039
+ #: settings/build/index.js:382
3040
+ #: settings/src/Settings/LearningMode.js:199
3041
+ msgid "success"
 
3042
  msgstr ""
3043
 
3044
+ #: settings/build/index.js:382
3045
+ #: settings/src/Settings/LearningMode.js:199
3046
+ msgid "failed"
3047
  msgstr ""
3048
 
3049
+ #: settings/build/index.js:382
3050
+ #: settings/src/Settings/LearningMode.js:262
3051
+ msgid "Enable Learning Mode"
3052
  msgstr ""
3053
 
3054
+ #: settings/build/index.js:382
3055
+ #: settings/src/Settings/LearningMode.js:271
3056
+ msgid "Disable to configure"
 
3057
  msgstr ""
3058
 
3059
+ #: settings/build/index.js:382
3060
+ #: settings/src/Settings/LearningMode.js:276
3061
+ #: settings/src/Settings/LearningMode.js:283
3062
+ msgid "Learning Mode"
3063
  msgstr ""
3064
 
3065
+ #: settings/build/index.js:382
3066
+ #: settings/src/Settings/LearningMode.js:278
3067
+ msgid "Exit learning mode"
 
3068
  msgstr ""
3069
 
3070
+ #: settings/build/index.js:382
3071
+ #: settings/src/Settings/LearningMode.js:284
3072
+ msgid "We finished the configuration."
3073
  msgstr ""
3074
 
3075
+ #: settings/build/index.js:382
3076
+ #: settings/src/Settings/LearningMode.js:285
3077
+ msgid "Review the settings and enforce the policy"
3078
  msgstr ""
3079
 
3080
+ #: settings/build/index.js:382
3081
+ #: settings/src/Settings/LearningMode.js:290
3082
+ msgid "Disabled "
3083
  msgstr ""
3084
 
3085
+ #: settings/build/index.js:382
3086
+ #: settings/src/Settings/LearningMode.js:169
3087
+ msgid "All"
3088
  msgstr ""
3089
 
3090
+ #: settings/build/index.js:382
3091
+ #: settings/src/Settings/LearningMode.js:170
3092
+ msgid "Allowed"
3093
  msgstr ""
3094