WordPress Online Booking and Scheduling Plugin – Bookly - Version 18.4

Version Description

Download this release

Release Info

Developer Ladela
Plugin Icon 128x128 WordPress Online Booking and Scheduling Plugin – Bookly
Version 18.4
Comparing to
See all releases

Code changes from version 18.3 to 18.4

Files changed (112) hide show
  1. backend/Backend.php +2 -0
  2. backend/components/controls/Container.php +2 -2
  3. backend/components/controls/Inputs.php +7 -2
  4. backend/components/dialogs/appointment/edit/Dialog.php +3 -2
  5. backend/components/dialogs/appointment/edit/templates/edit.php +1 -1
  6. backend/components/dialogs/customer/edit/Dialog.php +4 -2
  7. backend/components/dialogs/customer/edit/templates/edit.php +2 -1
  8. backend/components/dialogs/notifications/Dialog.php +3 -3
  9. backend/components/dialogs/queue/Dialog.php +3 -3
  10. backend/components/dialogs/recharge/Ajax.php +77 -0
  11. backend/components/dialogs/recharge/Amounts.php +75 -0
  12. backend/components/dialogs/recharge/Dialog.php +53 -0
  13. backend/components/dialogs/recharge/amounts/auto/Ajax.php +24 -0
  14. backend/components/dialogs/recharge/amounts/auto/Button.php +53 -0
  15. backend/components/dialogs/recharge/amounts/auto/resources/js/recharge-auto.js +106 -0
  16. backend/components/dialogs/recharge/amounts/auto/templates/modal.php +23 -0
  17. backend/components/dialogs/recharge/amounts/auto/templates/recharges.php +19 -0
  18. backend/components/dialogs/recharge/amounts/auto/templates/selector.php +47 -0
  19. backend/components/dialogs/recharge/amounts/manual/Button.php +31 -0
  20. backend/components/dialogs/recharge/amounts/manual/templates/_best_offer.php +39 -0
  21. backend/components/dialogs/recharge/amounts/manual/templates/_button.php +20 -0
  22. backend/components/dialogs/recharge/amounts/manual/templates/balance.php +26 -0
  23. backend/components/dialogs/recharge/amounts/manual/templates/recharges.php +22 -0
  24. backend/components/dialogs/recharge/resources/js/recharge-dialog.js +202 -0
  25. backend/components/dialogs/recharge/templates/_accepted.php +31 -0
  26. backend/components/dialogs/recharge/templates/_amounts.php +14 -0
  27. backend/components/dialogs/recharge/templates/_cancelled.php +34 -0
  28. backend/components/dialogs/recharge/templates/_payment.php +58 -0
  29. backend/components/dialogs/recharge/templates/dialog.php +25 -0
  30. backend/components/dialogs/service/edit/resources/js/service-edit-dialog.js +6 -4
  31. backend/components/dialogs/sms/Dialog.php +6 -6
  32. backend/components/dialogs/table_settings/templates/dialog.php +1 -1
  33. backend/components/info/base/templates/notice.php +0 -23
  34. backend/components/notices/Nps.php +0 -1
  35. backend/components/notices/SmsPromotion.php +41 -0
  36. backend/components/notices/SmsPromotionAjax.php +25 -0
  37. backend/components/{info → notices}/base/Notice.php +2 -2
  38. backend/components/{info → notices}/base/images/photo.png +0 -0
  39. backend/components/notices/base/templates/notice.php +29 -0
  40. backend/components/{info → notices}/rate/Ajax.php +2 -2
  41. backend/components/{info → notices}/rate/Notice.php +3 -3
  42. backend/components/{info → notices}/rate/resources/js/rate.js +0 -0
  43. backend/components/notices/resources/js/sms-promotion.js +35 -0
  44. backend/components/notices/resources/js/subscribe.js +7 -6
  45. backend/components/notices/templates/collect_stats.php +1 -1
  46. backend/components/notices/templates/powered_by.php +1 -1
  47. backend/components/notices/templates/sms_promotion.php +45 -0
  48. backend/components/support/resources/js/support.js +4 -4
  49. backend/components/support/templates/buttons.php +1 -1
  50. backend/modules/appointments/resources/js/appointments.js +1 -1
  51. backend/modules/calendar/Ajax.php +11 -0
  52. backend/modules/calendar/Page.php +5 -3
  53. backend/modules/calendar/resources/images/box-small.png +0 -0
  54. backend/modules/calendar/resources/images/calendar.png +0 -0
  55. backend/modules/calendar/resources/js/calendar-common.js +3 -0
  56. backend/modules/calendar/resources/js/calendar.js +37 -1
  57. backend/modules/calendar/templates/calendar.php +22 -1
  58. backend/modules/customers/Ajax.php +9 -3
  59. backend/modules/debug/lib/QueryBuilder.php +1 -0
  60. backend/modules/debug/lib/Schema.php +7 -1
  61. backend/modules/notifications/Page.php +1 -1
  62. backend/modules/services/Ajax.php +37 -0
  63. backend/modules/services/Page.php +2 -0
  64. backend/modules/services/forms/Service.php +1 -0
  65. backend/modules/services/proxy/Shared.php +1 -0
  66. backend/modules/services/resources/js/services-list.js +21 -1
  67. backend/modules/services/templates/time.php +1 -1
  68. backend/modules/settings/resources/js/settings.js +20 -18
  69. backend/modules/settings/templates/_calendar_codes.php +1 -0
  70. backend/modules/sms/Ajax.php +118 -66
  71. backend/modules/sms/Page.php +131 -118
  72. backend/modules/sms/resources/js/confirm-email.js +70 -0
  73. backend/modules/sms/resources/js/notifications-list.js +13 -2
  74. backend/modules/sms/resources/js/setup-country.js +58 -0
  75. backend/modules/sms/resources/js/sms-common.js +100 -0
  76. backend/modules/sms/resources/js/sms-registration.js +158 -0
  77. backend/modules/sms/resources/js/sms.js +241 -348
  78. backend/modules/sms/templates/_auto_recharge.php +0 -20
  79. backend/modules/sms/templates/_buttons.php +0 -94
  80. backend/modules/sms/templates/_confirm_email.php +40 -0
  81. backend/modules/sms/templates/_invoice.php +0 -70
  82. backend/modules/sms/templates/_settings.php +138 -0
  83. backend/modules/sms/templates/_setup_country.php +31 -0
  84. backend/modules/sms/templates/index.php +55 -197
  85. backend/modules/sms/templates/index_registration.php +110 -0
  86. backend/modules/staff/resources/js/staff-list.js +1 -1
  87. backend/resources/bootstrap/css/bootstrap.min.css +1 -1
  88. backend/resources/images/buy10.png +0 -0
  89. backend/resources/images/buy100.png +0 -0
  90. backend/resources/images/buy25.png +0 -0
  91. backend/resources/images/buy50.png +0 -0
  92. backend/resources/images/calendar.png +0 -0
  93. frontend/components/booking/InfoText.php +7 -5
  94. frontend/modules/booking/Ajax.php +5 -4
  95. languages/bookly-ar.mo +0 -0
  96. languages/bookly-ar.po +4 -4
  97. languages/bookly-cs_CZ.po +5 -5
  98. languages/bookly-de_DE.mo +0 -0
  99. languages/bookly-de_DE.po +377 -168
  100. languages/bookly-es_ES.mo +0 -0
  101. languages/bookly-es_ES.po +346 -142
  102. languages/bookly-fr_FR.mo +0 -0
  103. languages/bookly-fr_FR.po +349 -144
  104. languages/bookly-it_IT.po +5 -5
  105. languages/bookly-ja.mo +0 -0
  106. languages/bookly-ja.po +3 -3
  107. languages/bookly-nl_NL.mo +0 -0
  108. languages/bookly-nl_NL.po +343 -143
  109. languages/bookly-pt_BR.mo +0 -0
  110. languages/bookly-pt_BR.po +314 -140
  111. languages/bookly-pt_PT.mo +0 -0
  112. languages/bookly-pt_PT.po +892 -687
backend/Backend.php CHANGED
@@ -29,6 +29,8 @@ abstract class Backend
29
  Components\Notices\CollectStats::render();
30
  // Show Powered by Bookly notice.
31
  Components\Notices\PoweredBy::render();
 
 
32
  }
33
  // Let add-ons render admin notices.
34
  Lib\Proxy\Shared::renderAdminNotices( $bookly_page );
29
  Components\Notices\CollectStats::render();
30
  // Show Powered by Bookly notice.
31
  Components\Notices\PoweredBy::render();
32
+ // Show SMS promotion notice.
33
+ Components\Notices\SmsPromotion::render();
34
  }
35
  // Let add-ons render admin notices.
36
  Lib\Proxy\Shared::renderAdminNotices( $bookly_page );
backend/components/controls/Container.php CHANGED
@@ -1,13 +1,13 @@
1
  <?php
2
  namespace Bookly\Backend\Components\Controls;
3
 
4
- use Bookly\Lib as BooklyLib;
5
 
6
  /**
7
  * Class Container
8
  * @package Bookly\Backend\Components\Controls
9
  */
10
- class Container extends BooklyLib\Base\Component
11
  {
12
  /**
13
  * Render header for container.
1
  <?php
2
  namespace Bookly\Backend\Components\Controls;
3
 
4
+ use Bookly\Lib;
5
 
6
  /**
7
  * Class Container
8
  * @package Bookly\Backend\Components\Controls
9
  */
10
+ class Container extends Lib\Base\Component
11
  {
12
  /**
13
  * Render header for container.
backend/components/controls/Inputs.php CHANGED
@@ -111,14 +111,19 @@ class Inputs
111
  } else {
112
  $attributes['class'] = 'custom-control-input';
113
  }
 
 
 
 
 
114
  foreach ( $attributes as $n => $v ) {
115
  if( $v !== null ) {
116
  $attrs_str .= sprintf( ' %s="%s"', $n, esc_attr( $v ) );
117
  }
118
  }
119
 
120
- printf( '<div class="custom-control custom-%1$s"><input type="%1$s"%2$s><label class="custom-control-label" for="%3$s">%4$s</label></div>',
121
- $type, $attrs_str, $attributes['id'], esc_html( $label )
122
  );
123
  }
124
  }
111
  } else {
112
  $attributes['class'] = 'custom-control-input';
113
  }
114
+ $parent_class = '';
115
+ if ( array_key_exists( 'parent-class', $attributes ) ) {
116
+ $parent_class = $attributes['parent-class'];
117
+ unset( $attributes['parent-class'] );
118
+ }
119
  foreach ( $attributes as $n => $v ) {
120
  if( $v !== null ) {
121
  $attrs_str .= sprintf( ' %s="%s"', $n, esc_attr( $v ) );
122
  }
123
  }
124
 
125
+ printf( '<div class="custom-control custom-%1$s %5$s"><input type="%1$s"%2$s><label class="custom-control-label" for="%3$s">%4$s</label></div>',
126
+ $type, $attrs_str, $attributes['id'], esc_html( $label ), $parent_class
127
  );
128
  }
129
  }
backend/components/dialogs/appointment/edit/Dialog.php CHANGED
@@ -11,8 +11,9 @@ class Dialog extends Lib\Base\Component
11
  {
12
  /**
13
  * Render create/edit appointment dialog.
 
14
  */
15
- public static function render()
16
  {
17
  self::enqueueStyles( array(
18
  'backend' => array( 'css/fontawesome-all.min.css' ),
@@ -53,6 +54,6 @@ class Dialog extends Lib\Base\Component
53
 
54
  Proxy\Shared::enqueueAssets();
55
 
56
- self::renderTemplate( 'edit' );
57
  }
58
  }
11
  {
12
  /**
13
  * Render create/edit appointment dialog.
14
+ * @param bool $show_wp_users
15
  */
16
+ public static function render( $show_wp_users = true )
17
  {
18
  self::enqueueStyles( array(
19
  'backend' => array( 'css/fontawesome-all.min.css' ),
54
 
55
  Proxy\Shared::enqueueAssets();
56
 
57
+ self::renderTemplate( 'edit', compact( 'show_wp_users' ) );
58
  }
59
  }
backend/components/dialogs/appointment/edit/templates/edit.php CHANGED
@@ -264,6 +264,6 @@ use Bookly\Lib\Entities\CustomerAppointment;
264
 
265
  <?php Dialogs\Appointment\CustomerDetails\Dialog::render() ?>
266
  <?php AttachPaymentProxy\Pro::renderAttachPaymentDialog() ?>
267
- <?php Dialogs\Customer\Edit\Dialog::render() ?>
268
  <?php Dialogs\Payment\Dialog::render() ?>
269
  </div>
264
 
265
  <?php Dialogs\Appointment\CustomerDetails\Dialog::render() ?>
266
  <?php AttachPaymentProxy\Pro::renderAttachPaymentDialog() ?>
267
+ <?php Dialogs\Customer\Edit\Dialog::render( $show_wp_users ) ?>
268
  <?php Dialogs\Payment\Dialog::render() ?>
269
  </div>
backend/components/dialogs/customer/edit/Dialog.php CHANGED
@@ -11,8 +11,10 @@ class Dialog extends Lib\Base\Component
11
  {
12
  /**
13
  * Render customer dialog.
 
 
14
  */
15
- public static function render()
16
  {
17
  self::enqueueStyles( array(
18
  'frontend' => get_option( 'bookly_cst_phone_default_country' ) == 'disabled'
@@ -53,6 +55,6 @@ class Dialog extends Lib\Base\Component
53
  'noResultFound' => __( 'No result found', 'bookly' ),
54
  ) );
55
 
56
- static::renderTemplate( 'edit' );
57
  }
58
  }
11
  {
12
  /**
13
  * Render customer dialog.
14
+ *
15
+ * @param bool $show_wp_users
16
  */
17
+ public static function render( $show_wp_users = true )
18
  {
19
  self::enqueueStyles( array(
20
  'frontend' => get_option( 'bookly_cst_phone_default_country' ) == 'disabled'
55
  'noResultFound' => __( 'No result found', 'bookly' ),
56
  ) );
57
 
58
+ static::renderTemplate( 'edit', compact( 'show_wp_users' ) );
59
  }
60
  }
backend/components/dialogs/customer/edit/templates/edit.php CHANGED
@@ -15,6 +15,7 @@ use Bookly\Lib\Config;
15
  <div class="bookly-loading"></div>
16
  </div>
17
  <div class="modal-body" ng-hide="loading">
 
18
  <div class="form-group">
19
  <label for="wp_user"><?php esc_html_e( 'User', 'bookly' ) ?></label>
20
  <select ng-model="form.wp_user_id" class="form-control custom-select" id="wp_user" ng-change="changeWpUser()">
@@ -26,7 +27,7 @@ use Bookly\Lib\Config;
26
  <?php endforeach ?>
27
  </select>
28
  </div>
29
-
30
  <?php if ( Config::showFirstLastName() ) : ?>
31
  <div class="form-group">
32
  <div class="row">
15
  <div class="bookly-loading"></div>
16
  </div>
17
  <div class="modal-body" ng-hide="loading">
18
+ <?php if ( $show_wp_users ) : ?>
19
  <div class="form-group">
20
  <label for="wp_user"><?php esc_html_e( 'User', 'bookly' ) ?></label>
21
  <select ng-model="form.wp_user_id" class="form-control custom-select" id="wp_user" ng-change="changeWpUser()">
27
  <?php endforeach ?>
28
  </select>
29
  </div>
30
+ <?php endif ?>
31
  <?php if ( Config::showFirstLastName() ) : ?>
32
  <div class="form-group">
33
  <div class="row">
backend/components/dialogs/notifications/Dialog.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  namespace Bookly\Backend\Components\Dialogs\Notifications;
3
 
4
- use Bookly\Lib as BooklyLib;
5
  use Bookly\Backend\Components\Dialogs\Sms\Dialog as SmsDialog;
6
 
7
  /**
@@ -30,8 +30,8 @@ class Dialog extends SmsDialog
30
  ) );
31
 
32
  wp_localize_script( 'bookly-notification-dialog.js', 'BooklyNotificationDialogL10n', array(
33
- 'csrfToken' => BooklyLib\Utils\Common::getCsrfToken(),
34
- 'recurringActive' => (int) BooklyLib\Config::recurringAppointmentsActive(),
35
  'defaultNotification' => self::getDefaultNotification(),
36
  'title' => array(
37
  'container' => __( 'Email', 'bookly' ),
1
  <?php
2
  namespace Bookly\Backend\Components\Dialogs\Notifications;
3
 
4
+ use Bookly\Lib;
5
  use Bookly\Backend\Components\Dialogs\Sms\Dialog as SmsDialog;
6
 
7
  /**
30
  ) );
31
 
32
  wp_localize_script( 'bookly-notification-dialog.js', 'BooklyNotificationDialogL10n', array(
33
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
34
+ 'recurringActive' => (int) Lib\Config::recurringAppointmentsActive(),
35
  'defaultNotification' => self::getDefaultNotification(),
36
  'title' => array(
37
  'container' => __( 'Email', 'bookly' ),
backend/components/dialogs/queue/Dialog.php CHANGED
@@ -1,13 +1,13 @@
1
  <?php
2
  namespace Bookly\Backend\Components\Dialogs\Queue;
3
 
4
- use Bookly\Lib as BooklyLib;
5
 
6
  /**
7
  * Class Dialog
8
  * @package Bookly\Backend\Components\Dialogs\Queue
9
  */
10
- class Dialog extends BooklyLib\Base\Component
11
  {
12
  /**
13
  * Render notifications queue dialog.
@@ -28,7 +28,7 @@ class Dialog extends BooklyLib\Base\Component
28
  ) );
29
 
30
  wp_localize_script( 'bookly-queue-dialog.js', 'BooklyNotificationQueueDialogL10n', array(
31
- 'csrfToken' => BooklyLib\Utils\Common::getCsrfToken(),
32
  ) );
33
 
34
  self::renderTemplate( 'dialog' );
1
  <?php
2
  namespace Bookly\Backend\Components\Dialogs\Queue;
3
 
4
+ use Bookly\Lib;
5
 
6
  /**
7
  * Class Dialog
8
  * @package Bookly\Backend\Components\Dialogs\Queue
9
  */
10
+ class Dialog extends Lib\Base\Component
11
  {
12
  /**
13
  * Render notifications queue dialog.
28
  ) );
29
 
30
  wp_localize_script( 'bookly-queue-dialog.js', 'BooklyNotificationQueueDialogL10n', array(
31
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
32
  ) );
33
 
34
  self::renderTemplate( 'dialog' );
backend/components/dialogs/recharge/Ajax.php ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Recharge;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Ajax
8
+ * @package Bookly\Backend\Components\Dialogs\Recharge
9
+ */
10
+ class Ajax extends Lib\Base\Ajax
11
+ {
12
+ /**
13
+ * Initial for enabling Auto-Recharge balance with PayPal
14
+ */
15
+ public static function initAutoRechargePaypal()
16
+ {
17
+ $sms = Lib\SMS::getInstance();
18
+ $url = $sms->getPreApprovalUrl( self::parameter( 'recharge' ), self::parameter( 'url' ) );
19
+ if ( $url !== false ) {
20
+ wp_send_json_success( array( 'paypal_preapproval' => $url ) );
21
+ } else {
22
+ $errors = $sms->getErrors();
23
+ $message = __( 'Auto-Recharge has failed, please replenish your balance directly.', 'bookly' );
24
+ if ( array_key_exists( 'ERROR_PROMOTION_NOT_AVAILABLE', $errors ) ) {
25
+ $message = $errors['ERROR_PROMOTION_NOT_AVAILABLE'];
26
+ }
27
+ wp_send_json_error( compact( 'message' ) );
28
+ }
29
+ }
30
+
31
+ /**
32
+ * Create Stripe Checkout session
33
+ */
34
+ public static function createStripeCheckoutSession()
35
+ {
36
+ $sms = Lib\SMS::getInstance();
37
+ $result = $sms->createStripeCheckoutSession(
38
+ self::parameter( 'recharge' ),
39
+ self::parameter( 'mode' ),
40
+ self::parameter( 'url' )
41
+ );
42
+
43
+ if ( $result === false ) {
44
+ $errors = $sms->getErrors();
45
+ if ( array_key_exists( 'ERROR_RECHARGE_NOT_AVAILABLE', $errors ) ) {
46
+ wp_send_json_error( array( 'message' => $errors['ERROR_RECHARGE_NOT_AVAILABLE'] ) );
47
+ } else {
48
+ wp_send_json_error( array( 'message' => __( 'Card payment has failed, please use another payment option', 'bookly' ) ) );
49
+ }
50
+ } else {
51
+ wp_send_json( $result );
52
+ }
53
+ }
54
+
55
+ /**
56
+ * Create PayPal order
57
+ */
58
+ public static function createPaypalOrder()
59
+ {
60
+ $sms = Lib\SMS::getInstance();
61
+ $order_url = $sms->createPaypalOrder(
62
+ self::parameter( 'recharge' ),
63
+ self::parameter( 'url' )
64
+ );
65
+
66
+ if ( $order_url === false ) {
67
+ $errors = $sms->getErrors();
68
+ if ( array_key_exists( 'ERROR_RECHARGE_NOT_AVAILABLE', $errors ) ) {
69
+ wp_send_json_error( array( 'message' => $errors['ERROR_RECHARGE_NOT_AVAILABLE'] ) );
70
+ } else {
71
+ wp_send_json_error( array( 'message' => __( 'Payment has failed, please use another payment option', 'bookly' ) ) );
72
+ }
73
+ } else {
74
+ wp_send_json_success( compact( 'order_url' ) );
75
+ }
76
+ }
77
+ }
backend/components/dialogs/recharge/Amounts.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Recharge;
3
+
4
+ use Bookly\Lib\Base;
5
+ use Bookly\Lib\SMS;
6
+
7
+ /**
8
+ * Class Amounts
9
+ * @package Bookly\Backend\Components\Dialogs\Recharge
10
+ */
11
+ class Amounts extends Base\Cache
12
+ {
13
+ const RECHARGE_TYPE_MANUAL = 'manual';
14
+ const RECHARGE_TYPE_AUTO = 'auto';
15
+
16
+ /** @var array */
17
+ private $items;
18
+
19
+ /**
20
+ * @return Amounts
21
+ */
22
+ public static function getInstance()
23
+ {
24
+ if ( ! self::hasInCache( __FUNCTION__ ) ) {
25
+ self::putInCache( __FUNCTION__, new static() );
26
+ }
27
+
28
+ return self::getFromCache( __FUNCTION__ );
29
+ }
30
+
31
+ /**
32
+ * Constructor.
33
+ */
34
+ public function __construct()
35
+ {
36
+ $sms = SMS::getInstance();
37
+ $recharge = $sms->getRecharge();
38
+ if ( empty( $recharge ) ) {
39
+ $sms->loadProfile();
40
+ $recharge = $sms->getRecharge();
41
+ }
42
+ $this->items = $recharge['amounts'];
43
+ }
44
+
45
+ /**
46
+ * Get items
47
+ *
48
+ * @param string $type
49
+ * @return array
50
+ */
51
+ public function getItems( $type )
52
+ {
53
+ return $this->items[ $type ];
54
+ }
55
+
56
+ /**
57
+ * Get item with specific tag
58
+ *
59
+ * @param string $tag
60
+ * @param string $type
61
+ * @return int|null
62
+ */
63
+ public function getTaggedItem( $tag, $type )
64
+ {
65
+ $items = $this->getItems( $type );
66
+
67
+ foreach ( $items as $item ) {
68
+ if ( in_array( $tag, $item['tags'] ) ) {
69
+ return $item;
70
+ }
71
+ }
72
+
73
+ return null;
74
+ }
75
+ }
backend/components/dialogs/recharge/Dialog.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Recharge;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Dialog
8
+ * @package Bookly\Backend\Components\Dialogs\Recharge
9
+ */
10
+ class Dialog extends Lib\Base\Component
11
+ {
12
+
13
+ public static function render()
14
+ {
15
+ $sms = Lib\SMS::getInstance();
16
+ if ( $sms->loadProfile() ) {
17
+ self::enqueueStyles( array(
18
+ 'frontend' => array( 'css/ladda.min.css', ),
19
+ 'backend' => array( 'css/fontawesome-all.min.css', ),
20
+ ) );
21
+
22
+ self::enqueueScripts( array(
23
+ 'frontend' => array(
24
+ 'js/spin.min.js' => array( 'jquery', ),
25
+ 'js/ladda.min.js' => array( 'jquery', ),
26
+ ),
27
+ 'backend' => array( 'js/alert.js' => array( 'jquery' ), ),
28
+ 'module' => array( 'js/recharge-dialog.js' => array( 'jquery' ), ),
29
+ ) );
30
+
31
+ $recharge = $sms->getRecharge();
32
+ wp_localize_script( 'bookly-recharge-dialog.js', 'BooklyRechargeDialogL10n', array(
33
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
34
+ 'country' => $sms->getCountry(),
35
+ 'no_card' => $recharge['no_card'],
36
+ 'payment' => array(
37
+ 'manual' => array(
38
+ 'action' => __( 'Pay using', 'bookly' ),
39
+ 'accepted' => __( 'Your payment has been accepted for processing', 'bookly' ),
40
+ 'cancelled' => __( 'Your payment has been cancelled', 'bookly' ),
41
+ ),
42
+ 'auto' => array(
43
+ 'action' => __( 'Continue with', 'bookly' ),
44
+ 'enabled' => __( 'Auto-Recharge has been enabled', 'bookly' ),
45
+ 'cancelled' => __( 'Auto-Recharge has been cancelled', 'bookly' ),
46
+ ),
47
+ ),
48
+ ) );
49
+
50
+ self::renderTemplate( 'dialog', compact( 'sms' ) );
51
+ }
52
+ }
53
+ }
backend/components/dialogs/recharge/amounts/auto/Ajax.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Recharge\Amounts\Auto;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Ajax
8
+ * @package Bookly\Backend\Components\Dialogs\Recharge\Amounts\Auto
9
+ */
10
+ class Ajax extends Lib\Base\Ajax
11
+ {
12
+ /**
13
+ * Disable Auto-Recharge balance
14
+ */
15
+ public static function disableAutoRecharge()
16
+ {
17
+ $declined = Lib\SMS::getInstance()->disableAutoRecharge();
18
+ if ( $declined !== false ) {
19
+ wp_send_json_success( array( 'message' => __( 'Auto-Recharge disabled', 'bookly' ) ) );
20
+ } else {
21
+ wp_send_json_error( array( 'message' => sprintf( __( 'Can\'t disable Auto-Recharge, please contact us at %s', 'bookly' ), '<a href="mailto:support@bookly.info">support@bookly.info</a>' ) ) );
22
+ }
23
+ }
24
+ }
backend/components/dialogs/recharge/amounts/auto/Button.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Recharge\Amounts\Auto;
3
+
4
+ use Bookly\Backend\Components\Dialogs\Recharge\Amounts;
5
+ use Bookly\Lib;
6
+
7
+ /**
8
+ * Class Button
9
+ * @package Bookly\Backend\Components\Dialogs\Recharge\Amounts\Auto
10
+ */
11
+ class Button extends Lib\Base\Component
12
+ {
13
+ public static function renderSelector()
14
+ {
15
+ self::enqueueStyles( array(
16
+ 'frontend' => array( 'css/ladda.min.css', ),
17
+ 'backend' => array( 'css/fontawesome-all.min.css', ),
18
+ ) );
19
+
20
+ self::enqueueScripts( array(
21
+ 'frontend' => array(
22
+ 'js/spin.min.js' => array( 'jquery', ),
23
+ 'js/ladda.min.js' => array( 'jquery', ),
24
+ ),
25
+ 'backend' => array( 'js/alert.js' => array( 'jquery' ), ),
26
+ 'module' => array( 'js/recharge-auto.js' => array( 'jquery' ), ),
27
+ ) );
28
+
29
+ $sms = Lib\SMS::getInstance();
30
+ $auto_recharge = array(
31
+ 'enabled' => $sms->autoRechargeEnabled(),
32
+ 'amount' => $sms->getAutoRechargeAmount(),
33
+ 'bonus' => $sms->getAutoRechargeBonus()
34
+ );
35
+
36
+ wp_localize_script( 'bookly-recharge-auto.js', 'BooklyAutoRechargeL10n', array(
37
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
38
+ 'auto_recharge' => $auto_recharge,
39
+ ) );
40
+
41
+ self::renderTemplate( 'selector', array( 'recharges' => Amounts::getInstance()->getItems( Amounts::RECHARGE_TYPE_AUTO ) ) );
42
+ }
43
+
44
+ public static function renderRecharges()
45
+ {
46
+ self::renderTemplate( 'recharges' );
47
+ }
48
+
49
+ public static function renderConfirmModal()
50
+ {
51
+ self::renderTemplate( 'modal' );
52
+ }
53
+ }
backend/components/dialogs/recharge/amounts/auto/resources/js/recharge-auto.js ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function($) {
2
+ 'use strict';
3
+
4
+ let $selector = $('.bookly-js-auto-recharge-selector'),
5
+ $disableAutoRechargeModal = $('#bookly-js-disable-auto-recharge-modal'),
6
+ selector = {
7
+ $items: $('[data-recharge-data]', $selector),
8
+ $dropdown: $('.bookly-js-auto-recharge-dropdown', $selector),
9
+ $amount: $('.bookly-js-auto-amount', $selector),
10
+ $bonus: $('.bookly-js-auto-bonus', $selector).hide(),
11
+ $usersChoice: $('.bookly-js-users-choice-auto', $selector).hide(),
12
+ $bestOffer: $('.bookly-js-best-offer-auto', $selector).hide(),
13
+ $enable: $('.bookly-js-auto-recharge-enable', $selector),
14
+ $enabled: $('.bookly-js-auto-recharge-enabled', $selector),
15
+ $disable: $('.bookly-js-auto-confirm-disable', $selector),
16
+ $container: $('#bookly-recharge-amounts .bookly-js-auto-recharge-container'),
17
+ },
18
+ recharge = {};
19
+
20
+ selector
21
+ .$items.on('click', function () {
22
+ recharge = $(this).data('recharge-data');
23
+ selector.$amount.html(recharge.amount);
24
+ if (recharge.bonus) {
25
+ selector.$bonus.show();
26
+ $('span', selector.$bonus).html(recharge.bonus);
27
+ } else {
28
+ selector.$bonus.hide();
29
+ }
30
+ selector.$bestOffer.toggle(recharge.tags.includes('best_offer'));
31
+ selector.$usersChoice.toggle(recharge.tags.includes('users_choice'));
32
+ });
33
+ selector
34
+ .$enable.on('click', function() {
35
+ $(document.body).trigger('bookly.recharge.choice', ['auto', recharge]);
36
+ });
37
+ selector
38
+ .$disable.on('click', function () {
39
+ $disableAutoRechargeModal.booklyModal('show');
40
+ });
41
+
42
+ $disableAutoRechargeModal
43
+ .on('show.bs.modal', function () {
44
+ $('.bookly-js-amount', $disableAutoRechargeModal).html(parseFloat(BooklyAutoRechargeL10n.auto_recharge.amount));
45
+ if (BooklyAutoRechargeL10n.auto_recharge.bonus) {
46
+ $('.bookly-js-amount', $disableAutoRechargeModal).append(' + ' + BooklyAutoRechargeL10n.auto_recharge.bonus);
47
+ }
48
+ })
49
+ .on('click', '#bookly-js-auto-recharge-disable', function () {
50
+ let ladda = Ladda.create(this);
51
+ ladda.start();
52
+ $.ajax({
53
+ method: 'POST',
54
+ url: ajaxurl,
55
+ data: {
56
+ action: 'bookly_disable_auto_recharge',
57
+ csrf_token: BooklyAutoRechargeL10n.csrfToken,
58
+ },
59
+ dataType: 'json',
60
+ success: function (response) {
61
+ if (response.success) {
62
+ booklyAlert({success: [response.data.message]});
63
+ $disableAutoRechargeModal.booklyModal('hide');
64
+ autoRechageToggle(false);
65
+ } else {
66
+ booklyAlert({error: [response.data.message]});
67
+ }
68
+ ladda.stop();
69
+ }
70
+ });
71
+ });
72
+
73
+ function autoRechageToggle(enabled) {
74
+ selector.$dropdown.prop('disabled', enabled).toggleClass('disabled', enabled);
75
+ selector.$enable.toggle(!enabled);
76
+ selector.$enabled.toggle(enabled);
77
+ selector.$disable.toggle(enabled);
78
+ if (enabled) {
79
+ selector.$amount.html(BooklyAutoRechargeL10n.auto_recharge.amount);
80
+ if (BooklyAutoRechargeL10n.auto_recharge.bonus) {
81
+ selector.$bonus.show();
82
+ $('span', selector.$bonus).html(BooklyAutoRechargeL10n.auto_recharge.bonus);
83
+ } else {
84
+ selector.$bonus.hide();
85
+ }
86
+ selector.$container.hide();
87
+ } else {
88
+ if ($('.bookly-js-best-offer', selector.$items).length > 0) {
89
+ $('.bookly-js-best-offer', selector.$items).trigger('click');
90
+ } else if ($('.bookly-js-users-choice', selector.$items).length > 0) {
91
+ $('.bookly-js-users-choice', selector.$items).trigger('click')
92
+ } else {
93
+ selector.$items.first().trigger('click');
94
+ }
95
+ selector.$container.show();
96
+ }
97
+ }
98
+
99
+ autoRechageToggle(BooklyAutoRechargeL10n.auto_recharge.enabled);
100
+
101
+ $(document.body).on('bookly.auto-recharge.toggle', {},
102
+ function (event, enabled) {
103
+ autoRechageToggle(enabled);
104
+ }
105
+ );
106
+ });
backend/components/dialogs/recharge/amounts/auto/templates/modal.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Controls\Buttons;
3
+ ?>
4
+ <div class="bookly-modal bookly-fade" tabindex="-1" role="dialog" id="bookly-js-disable-auto-recharge-modal">
5
+ <div class="modal-dialog" role="document">
6
+ <div class="modal-content">
7
+ <div class="modal-header">
8
+ <h5 class="modal-title"><?php esc_html_e( 'Disable Auto-Recharge', 'bookly' ) ?></h5>
9
+ <button type="button" class="close" data-dismiss="bookly-modal" aria-label="Close">
10
+ <span aria-hidden="true">&times;</span>
11
+ </button>
12
+ </div>
13
+ <div class="modal-body">
14
+ <p class="text-danger"><?php esc_html_e( 'Are you sure you want to disable Auto-Recharge?', 'bookly' ) ?></p>
15
+ <?php esc_html_e( 'Amount' ) ?>: $<span class="bookly-js-amount"></span>
16
+ </div>
17
+ <div class="modal-footer">
18
+ <?php Buttons::render( 'bookly-js-auto-recharge-disable', 'btn-danger', __( 'Disable', 'bookly' ) ) ?>
19
+ <?php Buttons::renderCancel( __( 'Close', 'bookly' ) ) ?>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </div>
backend/components/dialogs/recharge/amounts/auto/templates/recharges.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Dialogs\Recharge\Amounts\Auto\Button;
3
+ ?>
4
+ <div class="bookly-js-auto-recharge-container">
5
+ <div class="form-row mb-3">
6
+ <div class="col"><hr/></div>
7
+ <div class="col-auto"><h5 class="text-muted"><?php esc_html_e( 'or', 'bookly' ) ?></h5></div>
8
+ <div class="col"><hr/></div>
9
+ </div>
10
+ <div class="card bg-light">
11
+ <div class="card-body pb-1">
12
+ <div class="text-center font-weight-bolder mb-2"><?php esc_html_e( 'Turn on Auto-Recharge and get even more', 'bookly' ) ?></div>
13
+ <div class="mx-auto w-50">
14
+ <?php Button::renderSelector() ?>
15
+ </div>
16
+ <h6 class="text-center mt-2"><?php printf( __( 'We will only charge you when your balance falls bellow %s', 'bookly' ), '<b>$10</b>' ) ?></h6>
17
+ </div>
18
+ </div>
19
+ </div>
backend/components/dialogs/recharge/amounts/auto/templates/selector.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Controls\Buttons;
3
+
4
+ /**
5
+ * @var array $recharges
6
+ */
7
+ ?>
8
+ <div class="form-row flex-nowrap bookly-js-auto-recharge-selector">
9
+ <div class="col">
10
+ <div class="dropdown">
11
+ <button class="bookly-js-auto-recharge-dropdown btn btn-default dropdown-toggle d-flex align-items-center w-100" type="button" data-toggle="dropdown">
12
+ <span class="flex-grow-1 text-left"><?php esc_html_e( 'Amount', 'bookly' ) ?>:</span>
13
+ <span>
14
+ <span class="bookly-js-best-offer-auto badge badge-warning" style="display: none"><small><strong><?php esc_html_e( 'best offer', 'bookly' ) ?></strong></small></span>
15
+ <span class="bookly-js-users-choice-auto badge badge-danger" style="display: none"><small><strong><?php esc_html_e( 'users choice', 'bookly' ) ?></strong></small></span>
16
+ $<span class="bookly-js-auto-amount"></span>
17
+ <span class="text-success bookly-js-auto-bonus"> + <span></span></span>
18
+ </span>
19
+ </button>
20
+ <div class="dropdown-menu dropdown-menu-right text-right w-100 shadow">
21
+ <h6 class="my-2 mx-4 text-muted small"><?php esc_html_e( 'Select amount of Auto-Recharge', 'bookly' ) ?></h6>
22
+ <?php foreach ( $recharges as $recharge ) : ?>
23
+ <div class="dropdown-divider m-0"></div>
24
+ <button type="button" class="dropdown-item" data-recharge-data=<?php echo json_encode( $recharge ) ?>>
25
+ <?php if ( in_array( 'best_offer', $recharge['tags'] ) ) : ?>
26
+ <span class="bookly-js-best-offer badge badge-warning"><small><strong><?php esc_html_e( 'best offer', 'bookly' ) ?></strong></small></span>
27
+ <?php endif ?>
28
+ <?php if ( in_array( 'users_choice', $recharge['tags'] ) ) : ?>
29
+ <span class="bookly-js-users-choice badge badge-danger"><small><strong><?php esc_html_e( 'users choice', 'bookly' ) ?></strong></small></span>
30
+ <?php endif ?>
31
+ $<?php echo $recharge['amount'] ?>
32
+ <?php if ( $recharge['bonus'] ) : ?>
33
+ <span class="text-success">+ <?php echo $recharge['bonus'] ?></span>
34
+ <?php endif ?>
35
+ </button>
36
+ <?php endforeach ?>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ <div class="col-auto">
41
+ <?php Buttons::render( null, 'bookly-js-auto-recharge-enable btn-success', __( 'Enable', 'bookly' ) . '…' ) ?>
42
+ <span class="bookly-js-auto-recharge-enabled mr-2">
43
+ <i class="fas fa-fw fa-check-circle text-success"></i> <?php esc_html_e( 'Enabled', 'bookly' ) ?>
44
+ </span>
45
+ <?php Buttons::render( null, 'bookly-js-auto-confirm-disable btn-danger', __( 'Disable', 'bookly' ) . '…' ) ?>
46
+ </div>
47
+ </div>
backend/components/dialogs/recharge/amounts/manual/Button.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Recharge\Amounts\Manual;
3
+
4
+ use Bookly\Backend\Components\Dialogs\Recharge\Amounts;
5
+ use Bookly\Lib;
6
+
7
+ /**
8
+ * Class Button
9
+ * @package Bookly\Backend\Components\Dialogs\Recharge\Amounts\Manual
10
+ */
11
+ class Button extends Lib\Base\Component
12
+ {
13
+ public static function renderBalance()
14
+ {
15
+ $sms = Lib\SMS::getInstance();
16
+ self::enqueueStyles( array(
17
+ 'backend' => array( 'css/fontawesome-all.min.css', ),
18
+ ) );
19
+
20
+ self::renderTemplate( 'balance', compact( 'sms' ) );
21
+ }
22
+
23
+ public static function renderRecharges()
24
+ {
25
+ $amounts = Amounts::getInstance();
26
+ self::renderTemplate( 'recharges', array(
27
+ 'recharges' => $amounts->getItems( Amounts::RECHARGE_TYPE_MANUAL ),
28
+ 'best_offer' => $amounts->getTaggedItem( 'best_offer', Amounts::RECHARGE_TYPE_MANUAL )
29
+ ) );
30
+ }
31
+ }
backend/components/dialogs/recharge/amounts/manual/templates/_best_offer.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ /**
3
+ * @var array $best_offer
4
+ */
5
+ ?>
6
+ <div class="form-row">
7
+ <div class="card bg-light" style="position: absolute; margin-top:25px; width: 96%; height: 174px; margin-left: 5px"></div>
8
+ <div class="card mx-auto text-white my-3" style="background-color: #28a745; cursor: pointer">
9
+ <div class="card-body text-center pb-2 pt-0" data-recharge-manual=<?php echo json_encode( $best_offer ) ?>>
10
+ <table>
11
+ <tr>
12
+ <td rowspan="2" style="vertical-align: bottom;line-height: 6.5rem;font-size: 2rem">$</td>
13
+ <td rowspan="2"><span style="font-size: 6rem"><?php echo $best_offer['amount'] ?></span></td>
14
+ <?php if ( $best_offer['bonus'] ) : ?>
15
+ <td rowspan="2" style="vertical-align: top;font-size: 2rem; line-height: 6rem">+<b class="mr-1 text-warning"><?php echo $best_offer['bonus'] ?></b></td>
16
+ <?php endif ?>
17
+ <td style="padding-top: 22px" class="text-right">
18
+ <b class="bg-warning px-2 py-1 text-dark text-uppercase" style="font-size: 1rem"><?php esc_html_e( 'Best offer', 'bookly' ) ?></b>
19
+ </td>
20
+ </tr>
21
+ <tr>
22
+ <td style="vertical-align: top;" class="text-right">
23
+ <?php if ( in_array( 'users_choice', $best_offer['tags'] ) ) : ?>
24
+ <b style="font-size: 0.7rem;top: -3px;position: relative;" class="ml-auto bg-danger mt-n2 py-1 px-3 mb-2 text-nowrap text-uppercase"><?php esc_html_e( 'Users choice', 'bookly' ) ?></b><br>
25
+ <?php endif ?>
26
+ <div style="font-size: 2rem; background-color: #24983F" class="h4 d-bloc text-center text-light font-weight-bolder py-2 px-3 text-nowrap"><?php esc_html_e( 'Buy now', 'bookly' ) ?></div>
27
+ </td>
28
+ </tr>
29
+ </table>
30
+ <div class="row" style="color: #a9dcb5">
31
+ <div class="col"><i class="fab fa-2x fa-cc-paypal"></i></div>
32
+ <div class="col"><i class="fab fa-2x fa-cc-mastercard"></i></div>
33
+ <div class="col"><i class="fab fa-2x fa-cc-visa"></i></div>
34
+ <div class="col"><i class="fab fa-2x fa-cc-amex"></i></div>
35
+ <div class="col"><i class="fab fa-2x fa-cc-discover"></i></div>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </div>
backend/components/dialogs/recharge/amounts/manual/templates/_button.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ /**
3
+ * @var array $recharge
4
+ */
5
+ ?>
6
+ <div class="bookly-js-recharge card text-white bg-primary mb-3" style="cursor: pointer" data-recharge-manual=<?php echo json_encode( $recharge ) ?>>
7
+ <div class="card-header border-bottom-0 text-center p-0" style="height: 6rem">
8
+ <span style="vertical-align: bottom;line-height: 4.8rem;font-size: 2rem">$</span>
9
+ <span style="font-size: 4rem"><?php echo $recharge['amount'] ?></span>
10
+ <?php if ( $recharge['bonus'] ) : ?>
11
+ <b style="vertical-align: top;line-height: 4rem;font-size: 1.5rem">+<span class="text-warning"><?php echo $recharge['bonus'] ?></span></b>
12
+ <?php endif ?>
13
+ <?php if ( in_array( 'users_choice', $recharge['tags'] ) ) : ?>
14
+ <br><b style="font-size: 0.7rem;top: -1rem;position: relative;" class="mx-auto bg-danger py-1 px-md-3 px-1 text-truncate text-nowrap text-uppercase"><?php esc_html_e( 'users choice', 'bookly' ) ?></b>
15
+ <?php endif ?>
16
+ </div>
17
+ <div class="card-body text-center">
18
+ <span style="font-size: 2rem"><?php esc_html_e( 'Buy now', 'bookly' ) ?></span>
19
+ </div>
20
+ </div>
backend/components/dialogs/recharge/amounts/manual/templates/balance.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ /** @var \Bookly\Lib\SMS $sms */
3
+ $balance = $sms->getBalance();
4
+
5
+ if ( $balance <= 0 ) {
6
+ $btn_class = 'btn-danger';
7
+ $txt_class = 'text-danger';
8
+ } elseif ( $balance > 0 && $balance < 10 ) {
9
+ $btn_class = 'btn-warning';
10
+ $txt_class = '';
11
+ } else {
12
+ $btn_class = 'btn-success';
13
+ $txt_class = 'text-success';
14
+ }
15
+ ?>
16
+ <div class="btn-group mr-2">
17
+ <div class="border border-right-0 rounded pl-2 d-flex align-items-center">
18
+ <h6 class="small m-0"><b><?php _e( 'current<br/>balance', 'bookly' ) ?></b></h6>
19
+ </div>
20
+ <div class="border border-left-0 px-2 d-flex align-items-center">
21
+ <span class="lead <?php echo $txt_class ?>">$<?php echo number_format( $balance, 2 ) ?></span>
22
+ </div>
23
+ <button type="button" class="btn <?php echo $btn_class ?> text-nowrap bookly-js-recharge-dialog-activator">
24
+ <i class="fas fa-coins"></i><span class="d-none d-md-inline ml-2"><?php esc_html_e( 'Recharge', 'bookly' ) ?></span>
25
+ </button>
26
+ </div>
backend/components/dialogs/recharge/amounts/manual/templates/recharges.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ /**
3
+ * @var array $recharges
4
+ * @var array|null $best_offer
5
+ */
6
+ ?>
7
+ <?php if ( $best_offer ) : ?>
8
+ <?php include '_best_offer.php' ?>
9
+ <div class="form-row mb-2">
10
+ <div class="col"><hr/></div>
11
+ <div class="col-auto"><h5 class="text-muted"><?php esc_html_e( 'Other options', 'bookly' ) ?></h5></div>
12
+ <div class="col"><hr/></div>
13
+ </div>
14
+ <?php endif ?>
15
+ <div class="form-row">
16
+ <?php foreach ( $recharges as $recharge ) : ?>
17
+ <?php if ( $best_offer && $recharge['id'] == $best_offer['id'] ) : continue; endif ?>
18
+ <div class="col-4">
19
+ <?php self::renderTemplate( '_button', compact( 'recharge' ) ) ?>
20
+ </div>
21
+ <?php endforeach ?>
22
+ </div>
backend/components/dialogs/recharge/resources/js/recharge-dialog.js ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function($) {
2
+ 'use strict';
3
+
4
+ let $modal = $('#bookly-js-recharge-modal'),
5
+ $back = $('.bookly-js-back', $modal),
6
+ slides = {
7
+ amounts: $('#bookly-recharge-amounts', $modal),
8
+ payment: $('#bookly-recharge-payment', $modal).hide(),
9
+ accepted: $('#bookly-recharge-accepted', $modal).hide(),
10
+ cancelled: $('#bookly-recharge-cancelled', $modal).hide(),
11
+ },
12
+ $rechargeModalActivator = $('.bookly-js-recharge-dialog-activator'),
13
+ payment = {type: '', data: {}},
14
+ $recharge = $('[data-recharge-manual]'),
15
+ hash = window.location.href.split('#')
16
+ ;
17
+
18
+ let $amounts = $('.bookly-js-amount', slides.payment),
19
+ $pay = $('.bookly-js-pay', slides.payment);
20
+
21
+ $(document.body).on('bookly.recharge.choice', {},
22
+ function (event, type, recharge) {
23
+ $modal.booklyModal('show');
24
+ payment.type = type;
25
+ payment.recharge = recharge;
26
+ $amounts.html(recharge.amount);
27
+ showSlide('payment');
28
+ }
29
+ );
30
+
31
+ $rechargeModalActivator.on('click', function () {
32
+ $modal.booklyModal();
33
+ $back.trigger('click');
34
+ });
35
+
36
+ if (hash.length > 1) {
37
+ let hashObj = {};
38
+ hash[1].split('&').forEach(function (part) {
39
+ var params = part.split('=');
40
+ hashObj[params[0]] = params[1];
41
+ });
42
+
43
+ let showModal = false;
44
+ if (hashObj.hasOwnProperty('payment')) {
45
+ if (hashObj.payment === 'cancelled') {
46
+ $('.bookly-js-message', showSlide('cancelled')).html(BooklyRechargeDialogL10n.payment.manual.cancelled);
47
+ showModal = true;
48
+ } else if (hashObj.payment === 'accepted') {
49
+ $('.bookly-js-message', showSlide('accepted')).html(BooklyRechargeDialogL10n.payment.manual.accepted);
50
+ showModal = true;
51
+ }
52
+ } else if (hashObj.hasOwnProperty('auto-recharge')) {
53
+ if (hashObj['auto-recharge'] === 'cancelled') {
54
+ $('.bookly-js-message', showSlide('cancelled')).html(BooklyRechargeDialogL10n.payment.auto.cancelled);
55
+ showModal = true;
56
+ } else if (hashObj['auto-recharge'] === 'enabled') {
57
+ $('.bookly-js-message', showSlide('accepted')).html(BooklyRechargeDialogL10n.payment.auto.enabled);
58
+ showModal = true;
59
+ }
60
+ } else if (hashObj.hasOwnProperty('recharge')) {
61
+ window.location.href = '#';
62
+ $rechargeModalActivator.trigger('click');
63
+ } else if (hashObj.hasOwnProperty('notifications-settings')) {
64
+ window.location.href = '#';
65
+ $('#bookly-open-account-settings').trigger('click');
66
+ $('[href="#bookly-account-notifications-tab"]').click();
67
+ }
68
+ if (showModal) {
69
+ window.location.href = '#';
70
+ $modal.booklyModal('show');
71
+ setTimeout(function () {
72
+ if (slides.accepted.css('display') === 'block' || slides.cancelled.css('display') === 'block') {
73
+ $modal.booklyModal('hide');
74
+ }
75
+ }, 5000);
76
+ }
77
+
78
+ }
79
+
80
+ $recharge.on('click', function () {
81
+ $(document.body).trigger('bookly.recharge.choice', ['manual', $(this).data('recharge-manual')]);
82
+ });
83
+
84
+ $back.on('click', function () {
85
+ showSlide('amounts');
86
+ });
87
+
88
+ $pay.on('click', function () {
89
+ switch ($(this).data('gateway')) {
90
+ case 'paypal':
91
+ if (payment.type === 'manual') {
92
+ payManualPayPal(this);
93
+ } else if (payment.type === 'auto') {
94
+ payAutoPayPal(this);
95
+ }
96
+ break;
97
+ case 'card':
98
+ stripe(this);
99
+ break;
100
+ }
101
+ });
102
+
103
+ function showSlide(slide) {
104
+ $.each(slides, function () {
105
+ this.hide();
106
+ });
107
+
108
+ if (slide === 'payment') {
109
+ // Hide card payment for disabled countries
110
+ slides.payment.find('#bookly-pay-card').toggle(
111
+ !!BooklyRechargeDialogL10n.country &&
112
+ !BooklyRechargeDialogL10n.no_card.includes(BooklyRechargeDialogL10n.country)
113
+ );
114
+ slides.payment.find('.bookly-js-action').text(BooklyRechargeDialogL10n.payment[payment.type].action);
115
+ }
116
+
117
+ return slides[slide].show();
118
+ }
119
+
120
+ function payManualPayPal(btn) {
121
+ const ladda = Ladda.create(btn);
122
+ ladda.start();
123
+
124
+ $.ajax({
125
+ method: 'POST',
126
+ url: ajaxurl,
127
+ data: {
128
+ action: 'bookly_create_paypal_order',
129
+ url: document.URL.split('#')[0],
130
+ csrf_token: BooklyRechargeDialogL10n.csrfToken,
131
+ recharge: payment.recharge.id,
132
+ },
133
+ dataType: 'json',
134
+ success: function (response) {
135
+ if (response.success) {
136
+ window.location.replace(response.data.order_url);
137
+ } else {
138
+ $modal.booklyModal('hide');
139
+ ladda.stop();
140
+ booklyAlert({error: [response.data.message]});
141
+ }
142
+ }
143
+ });
144
+ }
145
+
146
+ function payAutoPayPal(btn) {
147
+ const ladda = Ladda.create(btn);
148
+ ladda.start();
149
+
150
+ $.ajax({
151
+ method: 'POST',
152
+ url: ajaxurl,
153
+ data: {
154
+ action: 'bookly_init_auto_recharge_paypal',
155
+ url: document.URL.split('#')[0],
156
+ csrf_token: BooklyRechargeDialogL10n.csrfToken,
157
+ recharge: payment.recharge.id
158
+ },
159
+ dataType: 'json',
160
+ success: function (response) {
161
+ if (response.success) {
162
+ window.location.replace(response.data.paypal_preapproval);
163
+ } else {
164
+ $modal.booklyModal('hide');
165
+ ladda.stop();
166
+ booklyAlert({error: [response.data.message]});
167
+ }
168
+ }
169
+ });
170
+ }
171
+
172
+ /**
173
+ * Pay with card via Stripe
174
+ *
175
+ * @param btn
176
+ */
177
+ function stripe(btn) {
178
+ const ladda = Ladda.create(btn);
179
+ ladda.start();
180
+
181
+ $.ajax({
182
+ method: 'POST',
183
+ url: ajaxurl,
184
+ data: {
185
+ action: 'bookly_create_stripe_checkout_session',
186
+ csrf_token: BooklyRechargeDialogL10n.csrfToken,
187
+ recharge: payment.recharge.id,
188
+ mode: payment.type === 'manual' ? 'payment' : 'setup',
189
+ url: document.URL.split('#')[0],
190
+ },
191
+ dataType: 'json',
192
+ success: function (response) {
193
+ if (response.success) {
194
+ window.location.href = response.url;
195
+ } else {
196
+ ladda.stop();
197
+ booklyAlert({error: [response.data.message]});
198
+ }
199
+ }
200
+ });
201
+ }
202
+ });
backend/components/dialogs/recharge/templates/_accepted.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
+ <style>
3
+ .bookly-success-icon {
4
+ box-sizing: border-box;
5
+ position: relative;
6
+ display: block;
7
+ width: 110px;
8
+ height: 110px;
9
+ border: 4px solid;
10
+ border-radius: 50%
11
+ }
12
+ .bookly-success-icon::after {
13
+ content: "";
14
+ display: block;
15
+ box-sizing: border-box;
16
+ position: absolute;
17
+ left: 20px;
18
+ top: -35px;
19
+ width: 35px;
20
+ height: 89px;
21
+ border-width: 0 4px 4px 0;
22
+ border-style: solid;
23
+ transform-origin: bottom left;
24
+ transform: rotate(45deg)
25
+ }
26
+ </style>
27
+ <h3 class="text-success text-center pb-0 mb-0"><?php esc_html_e( 'Thank you', 'bookly' ) ?>!</h3>
28
+ <div class="text-success py-5">
29
+ <i class="mx-auto bookly-success-icon"></i>
30
+ </div>
31
+ <p class="text-center bookly-js-message"><?php esc_html_e( 'Your payment has been accepted for processing', 'bookly' ) ?>!</p>
backend/components/dialogs/recharge/templates/_amounts.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Dialogs\Recharge\Amounts\Manual;
3
+ use Bookly\Backend\Components\Dialogs\Recharge\Amounts\Auto;
4
+ ?>
5
+ <h4 class="text-center"><?php esc_html_e( 'Please select an amount and recharge your account', 'bookly' ) ?></h4>
6
+ <?php Manual\Button::renderRecharges() ?>
7
+ <?php Auto\Button::renderRecharges() ?>
8
+ <div class="row mt-3 text-center" style="color:#595959">
9
+ <div class="col"><i class="fab fa-2x fa-cc-paypal"></i></div>
10
+ <div class="col"><i class="fab fa-2x fa-cc-mastercard"></i></div>
11
+ <div class="col"><i class="fab fa-2x fa-cc-visa"></i></div>
12
+ <div class="col"><i class="fab fa-2x fa-cc-amex"></i></div>
13
+ <div class="col"><i class="fab fa-2x fa-cc-discover"></i></div>
14
+ </div>
backend/components/dialogs/recharge/templates/_cancelled.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
+ <style>
3
+ .bookly-fail-icon {
4
+ box-sizing: border-box;
5
+ position: relative;
6
+ display: block;
7
+ width: 110px;
8
+ height: 110px;
9
+ border: 4px solid;
10
+ border-radius: 50%;
11
+ }
12
+ .bookly-fail-icon::after,
13
+ .bookly-fail-icon::before {
14
+ content: "";
15
+ display: block;
16
+ box-sizing: border-box;
17
+ position: absolute;
18
+ width: 73px;
19
+ height: 6px;
20
+ background: #dc3545;
21
+ transform: rotate(45deg);
22
+ border-radius: 5px;
23
+ top: 48px;
24
+ left: 15px;
25
+ }
26
+ .bookly-fail-icon::after {
27
+ transform: rotate(-45deg)
28
+ }
29
+ </style>
30
+ <h3 class="text-danger text-center pb-0 mb-0"><?php esc_html_e( 'Oops', 'bookly' ) ?>!</h3>
31
+ <div class="text-danger py-5">
32
+ <i class="mx-auto bookly-fail-icon"></i>
33
+ </div>
34
+ <p class="text-center bookly-js-message"><?php esc_html_e( 'Your payment has been cancelled', 'bookly' ) ?>!</p>
backend/components/dialogs/recharge/templates/_payment.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
+ <div class="row bg-light py-3 pl-3 mt-n3 mb-3">
3
+ <button class="btn btn-link bookly-js-back" type="button" ><i class="fas fa-fw fa-chevron-left ml-1"></i><?php esc_html_e( 'Back to the list of amounts', 'bookly' ) ?></button>
4
+ </div>
5
+ <h4 class="text-center pb-2"><?php esc_html_e( 'Please select a payment method', 'bookly' ) ?></h4>
6
+ <div class="row pb-0 mt-3">
7
+ <div class="col col-lg-8 offset-lg-2 col-md-12">
8
+ <div class="card">
9
+ <div class="card-body">
10
+ <div class="bookly-js-pay card text-white bg-primary ladda-button" data-gateway="paypal" style="cursor: pointer" data-style="zoom-in">
11
+ <div class="card-body">
12
+ <div class="form-row align-items-center">
13
+ <div class="col-2"><i class="fab fa-3x fa-paypal"></i></div>
14
+ <div class="col-6">
15
+ <div class="bookly-js-action"></div>
16
+ <div class="h2 font-weight-bold mb-0">PayPal</div>
17
+ </div>
18
+ <div class="col-4">
19
+ <span class="h2">$</span><span class="display-4 font-weight-bold bookly-js-amount"></span>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </div>
24
+
25
+ <div id="bookly-pay-card">
26
+ <div class="form-row my-2">
27
+ <div class="col"><hr/></div>
28
+ <div class="col-auto"><h5 class="text-muted"><?php esc_html_e( 'or', 'bookly' ) ?></h5></div>
29
+ <div class="col"><hr/></div>
30
+ </div>
31
+
32
+ <div class="bookly-js-pay card text-white bg-success ladda-button" data-gateway="card" style="cursor: pointer" data-style="zoom-in">
33
+ <div class="card-body">
34
+ <div class="form-row align-items-center">
35
+ <div class="col-2"><i class="far fa-3x fa-credit-card"></i></div>
36
+ <div class="col-6">
37
+ <div class="bookly-js-action"></div>
38
+ <div class="h2 font-weight-bold mb-0"><?php esc_html_e( 'Credit card', 'bookly' ) ?></div>
39
+ </div>
40
+ <div class="col-4">
41
+ <span class="h2">$</span><span class="display-4 font-weight-bold bookly-js-amount"></span>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ </div>
51
+
52
+ <div class="row mt-3 text-center" style="color:#595959">
53
+ <div class="col"><i class="fab fa-2x fa-cc-paypal"></i></div>
54
+ <div class="col"><i class="fab fa-2x fa-cc-mastercard"></i></div>
55
+ <div class="col"><i class="fab fa-2x fa-cc-visa"></i></div>
56
+ <div class="col"><i class="fab fa-2x fa-cc-amex"></i></div>
57
+ <div class="col"><i class="fab fa-2x fa-cc-discover"></i></div>
58
+ </div>
backend/components/dialogs/recharge/templates/dialog.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
+ <form id="bookly-js-recharge-modal" class="bookly-modal bookly-fade" tabindex=-1 role="dialog">
3
+ <div class="modal-dialog modal-lg">
4
+ <div class="modal-content">
5
+ <div class="modal-header">
6
+ <h4 class="modal-title"><?php esc_html_e( 'Account recharge', 'bookly' ) ?></h4>
7
+ <button type="button" class="close" data-dismiss="bookly-modal"><span>&times;</span></button>
8
+ </div>
9
+ <div class="modal-body">
10
+ <div id="bookly-recharge-amounts">
11
+ <?php static::renderTemplate( '_amounts' ) ?>
12
+ </div>
13
+ <div id="bookly-recharge-payment">
14
+ <?php static::renderTemplate( '_payment' ) ?>
15
+ </div>
16
+ <div id="bookly-recharge-accepted">
17
+ <?php static::renderTemplate( '_accepted' ) ?>
18
+ </div>
19
+ <div id="bookly-recharge-cancelled">
20
+ <?php static::renderTemplate( '_cancelled' ) ?>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </form>
backend/components/dialogs/service/edit/resources/js/service-edit-dialog.js CHANGED
@@ -62,6 +62,7 @@ jQuery(function ($) {
62
  $prefStaffOrder = $('.bookly-js-preferred-staff-order',$generalContainer),
63
  $prefStaffList = $('.bookly-js-preferred-staff-list',$generalContainer),
64
  $prefPeriod = $('.bookly-js-preferred-period',$generalContainer),
 
65
  staff_data = {}
66
  ;
67
  // Color picker.
@@ -95,6 +96,7 @@ jQuery(function ($) {
95
  }
96
  $prefStaffOrder.toggle(this.value === 'order');
97
  $prefPeriod.toggle(this.value === 'least_occupied_for_period' || this.value === 'most_occupied_for_period');
 
98
  }).trigger('change');
99
  // Preferred providers order.
100
  if ($prefStaffList.length) {
@@ -232,12 +234,12 @@ jQuery(function ($) {
232
 
233
  function checkRepeatError($panel) {
234
  if ($panel.find('[name="recurrence_enabled"]:checked').val() == 1 && $panel.find('[name="recurrence_frequencies[]"]:checked').length == 0) {
235
- $panel.find('[name="recurrence_enabled"]').closest('.form-group').addClass('has-error');
236
  $panel.find('.bookly-js-frequencies').closest('.form-group').find('button.dropdown-toggle').addClass('btn-danger').removeClass('btn-default');
237
  $serviceError.find('.bookly-js-recurrence-error').remove();
238
  $serviceError.append('<div class="bookly-js-recurrence-error bookly-js-error">' + BooklyL10n.recurrence_error + '</div>');
239
  } else {
240
- $panel.find('[name="recurrence_enabled"]').closest('.form-group').removeClass('has-error');
241
  $panel.find('.bookly-js-frequencies').closest('.form-group').find('button.dropdown-toggle').removeClass('btn-danger').addClass('btn-default');
242
  $serviceError.find('.bookly-js-recurrence-error').remove();
243
  }
@@ -248,10 +250,10 @@ jQuery(function ($) {
248
  if (parseInt($panel.find('[name="capacity_min"]').val()) > parseInt($panel.find('[name="capacity_max"]').val())) {
249
  $serviceError.find('.bookly-js-capacity-error').remove();
250
  $serviceError.append('<div class="bookly-js-capacity-error bookly-js-error">' + BooklyL10n.capacity_error + '</div>');
251
- $panel.find('[name="capacity_min"]').closest('.form-group').addClass('has-error');
252
  } else {
253
  $serviceError.find('.bookly-js-capacity-error').remove();
254
- $panel.find('[name="capacity_min"]').closest('.form-group').removeClass('has-error');
255
  }
256
  $saveButton.prop('disabled', $serviceError.find('.bookly-js-error').length > 0);
257
  }
62
  $prefStaffOrder = $('.bookly-js-preferred-staff-order',$generalContainer),
63
  $prefStaffList = $('.bookly-js-preferred-staff-list',$generalContainer),
64
  $prefPeriod = $('.bookly-js-preferred-period',$generalContainer),
65
+ $prefRandom = $('.bookly-js-preferred-random-staff',$generalContainer),
66
  staff_data = {}
67
  ;
68
  // Color picker.
96
  }
97
  $prefStaffOrder.toggle(this.value === 'order');
98
  $prefPeriod.toggle(this.value === 'least_occupied_for_period' || this.value === 'most_occupied_for_period');
99
+ $prefRandom.toggle(this.value !== 'order');
100
  }).trigger('change');
101
  // Preferred providers order.
102
  if ($prefStaffList.length) {
234
 
235
  function checkRepeatError($panel) {
236
  if ($panel.find('[name="recurrence_enabled"]:checked').val() == 1 && $panel.find('[name="recurrence_frequencies[]"]:checked').length == 0) {
237
+ $panel.find('[name="recurrence_enabled"]').addClass('is-invalid');
238
  $panel.find('.bookly-js-frequencies').closest('.form-group').find('button.dropdown-toggle').addClass('btn-danger').removeClass('btn-default');
239
  $serviceError.find('.bookly-js-recurrence-error').remove();
240
  $serviceError.append('<div class="bookly-js-recurrence-error bookly-js-error">' + BooklyL10n.recurrence_error + '</div>');
241
  } else {
242
+ $panel.find('[name="recurrence_enabled"]').removeClass('is-invalid');
243
  $panel.find('.bookly-js-frequencies').closest('.form-group').find('button.dropdown-toggle').removeClass('btn-danger').addClass('btn-default');
244
  $serviceError.find('.bookly-js-recurrence-error').remove();
245
  }
250
  if (parseInt($panel.find('[name="capacity_min"]').val()) > parseInt($panel.find('[name="capacity_max"]').val())) {
251
  $serviceError.find('.bookly-js-capacity-error').remove();
252
  $serviceError.append('<div class="bookly-js-capacity-error bookly-js-error">' + BooklyL10n.capacity_error + '</div>');
253
+ $panel.find('.bookly-js-capacity').addClass('is-invalid');
254
  } else {
255
  $serviceError.find('.bookly-js-capacity-error').remove();
256
+ $panel.find('.bookly-js-capacity').removeClass('is-invalid');
257
  }
258
  $saveButton.prop('disabled', $serviceError.find('.bookly-js-error').length > 0);
259
  }
backend/components/dialogs/sms/Dialog.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
  namespace Bookly\Backend\Components\Dialogs\Sms;
3
 
4
- use Bookly\Lib as BooklyLib;
5
  use Bookly\Backend\Components\Controls\Buttons;
6
 
7
  /**
8
  * Class Dialog
9
  * @package Bookly\Backend\Components\Dialogs\Sms
10
  */
11
- class Dialog extends BooklyLib\Base\Component
12
  {
13
  /**
14
  * Render payment details dialog.
@@ -33,8 +33,8 @@ class Dialog extends BooklyLib\Base\Component
33
  ) );
34
 
35
  wp_localize_script( 'bookly-notification-dialog.js', 'BooklyNotificationDialogL10n', array(
36
- 'csrfToken' => BooklyLib\Utils\Common::getCsrfToken(),
37
- 'recurringActive' => (int) BooklyLib\Config::recurringAppointmentsActive(),
38
  'defaultNotification' => self::getDefaultNotification(),
39
  'sms' => true,
40
  'title' => array(
@@ -62,7 +62,7 @@ class Dialog extends BooklyLib\Base\Component
62
  protected static function getDefaultNotification()
63
  {
64
  return array(
65
- 'type' => BooklyLib\Entities\Notification::TYPE_NEW_BOOKING,
66
  'active' => 1,
67
  'attach_ics' => 0,
68
  'attach_invoice' => 0,
@@ -72,7 +72,7 @@ class Dialog extends BooklyLib\Base\Component
72
  'to_admin' => 0,
73
  'to_customer' => 1,
74
  'to_staff' => 0,
75
- 'settings' => BooklyLib\DataHolders\Notification\Settings::getDefault(),
76
  );
77
  }
78
  }
1
  <?php
2
  namespace Bookly\Backend\Components\Dialogs\Sms;
3
 
4
+ use Bookly\Lib;
5
  use Bookly\Backend\Components\Controls\Buttons;
6
 
7
  /**
8
  * Class Dialog
9
  * @package Bookly\Backend\Components\Dialogs\Sms
10
  */
11
+ class Dialog extends Lib\Base\Component
12
  {
13
  /**
14
  * Render payment details dialog.
33
  ) );
34
 
35
  wp_localize_script( 'bookly-notification-dialog.js', 'BooklyNotificationDialogL10n', array(
36
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
37
+ 'recurringActive' => (int) Lib\Config::recurringAppointmentsActive(),
38
  'defaultNotification' => self::getDefaultNotification(),
39
  'sms' => true,
40
  'title' => array(
62
  protected static function getDefaultNotification()
63
  {
64
  return array(
65
+ 'type' => Lib\Entities\Notification::TYPE_NEW_BOOKING,
66
  'active' => 1,
67
  'attach_ics' => 0,
68
  'attach_invoice' => 0,
72
  'to_admin' => 0,
73
  'to_customer' => 1,
74
  'to_staff' => 0,
75
+ 'settings' => Lib\DataHolders\Notification\Settings::getDefault(),
76
  );
77
  }
78
  }
backend/components/dialogs/table_settings/templates/dialog.php CHANGED
@@ -2,7 +2,7 @@
2
  use Bookly\Backend\Components\Controls\Buttons;
3
  use Bookly\Backend\Components\Controls\Elements;
4
  ?>
5
- <form id="bookly-table-settings-modal" class="bookly-js-table-settings-modal bookly-modal bookly-fade" tabindex=-1 role="dialog">
6
  <div class="modal-dialog">
7
  <div class="modal-content">
8
  <div class="modal-header">
2
  use Bookly\Backend\Components\Controls\Buttons;
3
  use Bookly\Backend\Components\Controls\Elements;
4
  ?>
5
+ <form id="bookly-table-settings-modal" class="bookly-modal bookly-fade" tabindex=-1 role="dialog">
6
  <div class="modal-dialog">
7
  <div class="modal-content">
8
  <div class="modal-header">
backend/components/info/base/templates/notice.php DELETED
@@ -1,23 +0,0 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
- use Bookly\Backend\Components\Controls\Buttons;
3
- ?>
4
- <div id="bookly-tbs" class="wrap">
5
- <div id="<?php echo $id ?>" class="alert alert-success alert-dismissible" role="alert" <?php if ( $hidden ) : ?>style="display: none" <?php endif ?>>
6
- <div class="d-md-flex form-row align-items-center">
7
- <img src="<?php echo plugins_url( 'bookly-responsive-appointment-booking-tool/backend/components/info/base/images/photo.png' ) ?>" alt="avatar" width="72" height="72" style="width: 72px; height: 72px;">
8
- <div class="pl-md-4 col" style="min-width: 50%">
9
- <div><b class="bookly-js-alert-title"><?php echo esc_html( $title ) ?></b> <?php echo $sub_title ?></div>
10
- <div class="font-weight-bold mt-2 w-100" style="line-height: 1;"><?php echo $message ?></div>
11
- <small class="text-muted">Daniel Williams, PO at Bookly</small>
12
- </div>
13
- <div class="d-lg-inline-flex d-md-block mr-n5 mr-md-0">
14
- <?php foreach ( $buttons as $button ) : ?>
15
- <?php Buttons::render( null, $button['class'] . ' ml-md-1 mr-1 mb-1', $button['caption'] ) ?>
16
- <?php endforeach ?>
17
- </div>
18
- </div>
19
- <button type="button" class="close <?php echo esc_attr( $dismiss_js_class ) ?>" data-dismiss="alert" aria-label="Close">
20
- <span aria-hidden="true">&times;</span>
21
- </button>
22
- </div>
23
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
backend/components/notices/Nps.php CHANGED
@@ -3,7 +3,6 @@ namespace Bookly\Backend\Components\Notices;
3
 
4
  use Bookly\Lib;
5
  use Bookly\Backend\Modules;
6
- use Bookly\Backend\Components\Info\Rate;
7
 
8
  /**
9
  * Class Nps
3
 
4
  use Bookly\Lib;
5
  use Bookly\Backend\Modules;
 
6
 
7
  /**
8
  * Class Nps
backend/components/notices/SmsPromotion.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Notices;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class SmsPromotion
8
+ * @package Bookly\Backend\Components\Notices
9
+ */
10
+ class SmsPromotion extends Lib\Base\Component
11
+ {
12
+ /**
13
+ * Render collect stats notice.
14
+ */
15
+ public static function render()
16
+ {
17
+ if ( Lib\Utils\Common::isCurrentUserAdmin() && isset ( $_REQUEST['page'] ) && strncmp( $_REQUEST['page'], 'bookly-sms', 10 ) === 0 ) {
18
+ $promotion = Lib\SMS::getPromotionForNotice($type, ! Lib\SMS::getInstance()->loadProfile() );
19
+ if ( $promotion ) {
20
+ self::enqueueStyles( array(
21
+ 'frontend' => array( 'css/ladda.min.css', ),
22
+ 'backend' => array( 'bootstrap/css/bootstrap.min.css', ),
23
+ ) );
24
+ self::enqueueScripts( array(
25
+ 'backend' => array( 'bootstrap/js/bootstrap.min.js' => array( 'jquery' ), ),
26
+ 'frontend' => array(
27
+ 'js/spin.min.js' => array( 'jquery' ),
28
+ 'js/ladda.min.js' => array( 'jquery' ),
29
+ ),
30
+ 'module' => array( 'js/sms-promotion.js' => array( 'jquery' ), ),
31
+ ) );
32
+
33
+ wp_localize_script( 'bookly-sms-promotion.js', 'BooklySmsPromotionL10n', array(
34
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
35
+ ) );
36
+
37
+ self::renderTemplate( 'sms_promotion', compact( 'type', 'promotion' ) );
38
+ }
39
+ }
40
+ }
41
+ }
backend/components/notices/SmsPromotionAjax.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Notices;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class SmsPromotionAjax
8
+ * @package Bookly\Backend\Components\Notices
9
+ */
10
+ class SmsPromotionAjax extends Lib\Base\Ajax
11
+ {
12
+ /**
13
+ * Dismiss SMS promotion notice
14
+ */
15
+ public static function dismissSmsPromotionNotice()
16
+ {
17
+ $id = self::parameter( 'id' );
18
+ $dismiss = self::parameter( 'dismiss' );
19
+ $dismissed = get_user_meta( get_current_user_id(), 'bookly_dismiss_sms_promotion_notices', true ) ?: array();
20
+ $dismissed[ $id ] = time() + ( $dismiss == 'remind' ? 7 : 30 ) * DAY_IN_SECONDS;
21
+ update_user_meta( get_current_user_id(), 'bookly_dismiss_sms_promotion_notices', $dismissed );
22
+
23
+ wp_send_json_success();
24
+ }
25
+ }
backend/components/{info → notices}/base/Notice.php RENAMED
@@ -1,12 +1,12 @@
1
  <?php
2
- namespace Bookly\Backend\Components\Info\Base;
3
 
4
  use Bookly\Lib;
5
  use Bookly\Backend\Modules;
6
 
7
  /**
8
  * Class Notice
9
- * @package Bookly\Backend\Components\Info\Base
10
  */
11
  class Notice extends Lib\Base\Component
12
  {
1
  <?php
2
+ namespace Bookly\Backend\Components\Notices\Base;
3
 
4
  use Bookly\Lib;
5
  use Bookly\Backend\Modules;
6
 
7
  /**
8
  * Class Notice
9
+ * @package Bookly\Backend\Components\Notices\Base
10
  */
11
  class Notice extends Lib\Base\Component
12
  {
backend/components/{info → notices}/base/images/photo.png RENAMED
File without changes
backend/components/notices/base/templates/notice.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Controls\Buttons;
3
+ ?>
4
+ <div id="bookly-tbs" class="wrap">
5
+ <div id="<?php echo $id ?>" class="alert alert-success alert-dismissible" role="alert" <?php if ( $hidden ) : ?>style="display: none" <?php endif ?>>
6
+ <div class="row text-center text-md-left">
7
+ <div class="col-12 col-md-auto pr-md-0">
8
+ <img src="<?php echo plugins_url( 'bookly-responsive-appointment-booking-tool/backend/components/notices/base/images/photo.png' ) ?>" alt="Daniel Williams, PO at Bookly" width="72" style="width: 72px" />
9
+ </div>
10
+ <div class="col">
11
+ <div class="row">
12
+ <div class="col-12">
13
+ <div><b class="bookly-js-alert-title"><?php echo esc_html( $title ) ?></b> <?php echo $sub_title ?></div>
14
+ <div class="font-weight-bold mt-1"><?php echo $message ?></div>
15
+ <small class="text-muted">Daniel Williams, PO at Bookly</small>
16
+ </div>
17
+ <div class="col-12 mt-2">
18
+ <?php foreach ( $buttons as $button ) : ?>
19
+ <?php Buttons::render( null, $button['class'] . ' mr-1 mb-1', $button['caption'] ) ?>
20
+ <?php endforeach ?>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ <button type="button" class="close <?php echo esc_attr( $dismiss_js_class ) ?>" data-dismiss="alert" aria-label="Close">
26
+ <span aria-hidden="true">&times;</span>
27
+ </button>
28
+ </div>
29
+ </div>
backend/components/{info → notices}/rate/Ajax.php RENAMED
@@ -1,11 +1,11 @@
1
  <?php
2
- namespace Bookly\Backend\Components\Info\Rate;
3
 
4
  use Bookly\Lib;
5
 
6
  /**
7
  * Class Ajax
8
- * @package Bookly\Backend\Components\Info\Rate
9
  */
10
  class Ajax extends Lib\Base\Ajax
11
  {
1
  <?php
2
+ namespace Bookly\Backend\Components\Notices\Rate;
3
 
4
  use Bookly\Lib;
5
 
6
  /**
7
  * Class Ajax
8
+ * @package Bookly\Backend\Components\Notices\Rate
9
  */
10
  class Ajax extends Lib\Base\Ajax
11
  {
backend/components/{info → notices}/rate/Notice.php RENAMED
@@ -1,14 +1,14 @@
1
  <?php
2
- namespace Bookly\Backend\Components\Info\Rate;
3
 
4
  use Bookly\Lib;
5
  use Bookly\Backend\Modules;
6
- use Bookly\Backend\Components\Info\Base;
7
  use Bookly\Backend\Components\Support\Lib\Urls;
8
 
9
  /**
10
  * Class Notice
11
- * @package Bookly\Backend\Components\Info\Rate
12
  */
13
  class Notice extends Base\Notice
14
  {
1
  <?php
2
+ namespace Bookly\Backend\Components\Notices\Rate;
3
 
4
  use Bookly\Lib;
5
  use Bookly\Backend\Modules;
6
+ use Bookly\Backend\Components\Notices\Base;
7
  use Bookly\Backend\Components\Support\Lib\Urls;
8
 
9
  /**
10
  * Class Notice
11
+ * @package Bookly\Backend\Components\Notices\Rate
12
  */
13
  class Notice extends Base\Notice
14
  {
backend/components/{info → notices}/rate/resources/js/rate.js RENAMED
File without changes
backend/components/notices/resources/js/sms-promotion.js ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function ($) {
2
+ let $notice = $('#bookly-sms-promotion-notice'),
3
+ type = $notice.data('type'),
4
+ id = $notice.data('id');
5
+ $notice.on('close.bs.alert', function () {
6
+ $.post(ajaxurl, {
7
+ action: 'bookly_dismiss_sms_promotion_notice',
8
+ id: id,
9
+ dismiss: $notice.data('dismiss'),
10
+ csrf_token: BooklySmsPromotionL10n.csrfToken
11
+ });
12
+ });
13
+ $notice.find('.bookly-js-remind-me-later').on('click', function () {
14
+ $notice.data('dismiss', 'remind').alert('close');
15
+ });
16
+ $notice.find('.bookly-js-apply-action').on('click', function () {
17
+ switch (type) {
18
+ case 'registration':
19
+ let $form = $('.bookly-js-register-form'),
20
+ $input = $('#bookly-r-username', $form);
21
+ $form.closest('.card').addClass('border-success');
22
+ $('html, body').animate({
23
+ scrollTop: $input.offset().top - 20
24
+ }, 1000);
25
+ $input.focus();
26
+ break;
27
+ default:
28
+ let $modal = $('#bookly-js-recharge-modal');
29
+ $modal.booklyModal();
30
+ $('.bookly-js-back', $modal).trigger('click');
31
+ break;
32
+ }
33
+ $notice.alert('close');
34
+ });
35
+ });
backend/components/notices/resources/js/subscribe.js CHANGED
@@ -1,22 +1,23 @@
1
  jQuery(function ($) {
2
  let $alert = $('#bookly-subscribe-notice');
3
  $('#bookly-subscribe-btn').on('click', function () {
4
- $alert.find('.input-group').removeClass('has-error');
5
- let ladda = Ladda.create(this);
 
6
  ladda.start();
7
- $.post(ajaxurl, {action: 'bookly_subscribe', csrf_token : BooklySubscribeL10n.csrfToken, email: $('#bookly-subscribe-email').val()}, function (response) {
8
  ladda.stop();
9
  if (response.success) {
10
  $alert.alert('close');
11
  booklyAlert({success: [response.data.message]});
12
  } else {
13
- $alert.find('.input-group').addClass('has-error');
14
- booklyAlert({error : [response.data.message]});
15
  }
16
  });
17
  });
18
  $alert.on('close.bs.alert', function () {
19
- $.post(ajaxurl, {action: 'bookly_dismiss_subscribe_notice', csrf_token : BooklySubscribeL10n.csrfToken}, function () {
20
  // Indicator for Selenium that request has completed.
21
  $alert.remove();
22
  });
1
  jQuery(function ($) {
2
  let $alert = $('#bookly-subscribe-notice');
3
  $('#bookly-subscribe-btn').on('click', function () {
4
+ let $email = $('#bookly-subscribe-email', $alert),
5
+ ladda = Ladda.create(this);
6
+ $email.removeClass('is-invalid');
7
  ladda.start();
8
+ $.post(ajaxurl, {action: 'bookly_subscribe', csrf_token: BooklySubscribeL10n.csrfToken, email: $email.val()}, function (response) {
9
  ladda.stop();
10
  if (response.success) {
11
  $alert.alert('close');
12
  booklyAlert({success: [response.data.message]});
13
  } else {
14
+ $email.addClass('is-invalid');
15
+ booklyAlert({error: [response.data.message]});
16
  }
17
  });
18
  });
19
  $alert.on('close.bs.alert', function () {
20
+ $.post(ajaxurl, {action: 'bookly_dismiss_subscribe_notice', csrf_token: BooklySubscribeL10n.csrfToken}, function () {
21
  // Indicator for Selenium that request has completed.
22
  $alert.remove();
23
  });
backend/components/notices/templates/collect_stats.php CHANGED
@@ -15,8 +15,8 @@ use Bookly\Backend\Components\Controls\Buttons;
15
  <?php else: ?>
16
  <?php esc_html_e( 'Let the plugin anonymously collect usage information to help Bookly team improve the product.', 'bookly' ) ?>
17
  <div class="mt-2">
18
- <?php Buttons::render( null, 'btn-default', __( 'Disagree', 'bookly' ), array( 'data-dismiss' => 'alert' ) ) ?>
19
  <?php Buttons::render( 'bookly-enable-collecting-stats-btn', 'btn-success', __( 'Agree', 'bookly' ) ) ?>
 
20
  </div>
21
  <?php endif ?>
22
  </div>
15
  <?php else: ?>
16
  <?php esc_html_e( 'Let the plugin anonymously collect usage information to help Bookly team improve the product.', 'bookly' ) ?>
17
  <div class="mt-2">
 
18
  <?php Buttons::render( 'bookly-enable-collecting-stats-btn', 'btn-success', __( 'Agree', 'bookly' ) ) ?>
19
+ <?php Buttons::render( null, 'btn-default', __( 'Disagree', 'bookly' ), array( 'data-dismiss' => 'alert' ) ) ?>
20
  </div>
21
  <?php endif ?>
22
  </div>
backend/components/notices/templates/powered_by.php CHANGED
@@ -9,8 +9,8 @@ use Bookly\Backend\Components\Controls\Buttons;
9
  <div class="col">
10
  <?php esc_html_e( 'Allow the plugin to set a Powered by Bookly notice on the booking widget to spread information about the plugin. This will allow the team to improve the product and enhance its functionality.', 'bookly' ) ?>
11
  <div class="mt-2">
12
- <?php Buttons::render( null, 'btn-default', __( 'Disagree', 'bookly' ), array( 'data-dismiss' => 'alert' ) ) ?>
13
  <?php Buttons::render( 'bookly-show-powered-by', 'btn-success', __( 'Agree', 'bookly' ) ) ?>
 
14
  </div>
15
  </div>
16
  </div>
9
  <div class="col">
10
  <?php esc_html_e( 'Allow the plugin to set a Powered by Bookly notice on the booking widget to spread information about the plugin. This will allow the team to improve the product and enhance its functionality.', 'bookly' ) ?>
11
  <div class="mt-2">
 
12
  <?php Buttons::render( 'bookly-show-powered-by', 'btn-success', __( 'Agree', 'bookly' ) ) ?>
13
+ <?php Buttons::render( null, 'btn-default', __( 'Disagree', 'bookly' ), array( 'data-dismiss' => 'alert' ) ) ?>
14
  </div>
15
  </div>
16
  </div>
backend/components/notices/templates/sms_promotion.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Controls\Buttons;
3
+ use Bookly\Lib;
4
+ /**
5
+ * @var string $type
6
+ * @var array $promotion
7
+ */
8
+ ?>
9
+ <div id="bookly-tbs" class="wrap">
10
+ <div id="bookly-sms-promotion-notice" class="alert <?php echo $type == 'registration' ? 'alert-success' : 'alert-info' ?>" data-id="<?php echo $promotion['id'] ?>" data-type="<?php echo $type ?>" data-dismiss="close">
11
+ <button type="button" class="close" data-dismiss="alert">&times;</button>
12
+ <div class="form-row">
13
+ <div class="mr-3"><i class="fas fa-sms fa-2x"></i></div>
14
+ <div class="col">
15
+ <div>
16
+ <?php switch ( $type ) :
17
+ case 'registration':
18
+ case 'first_recharge':
19
+ $locale = Lib\Config::getLocale();
20
+ echo isset ( $promotion['texts'][ $locale ] ) ? $promotion['texts'][ $locale ]['info'] : $promotion['texts']['en']['info'];
21
+ break;
22
+ case 'manual': ?>
23
+ <b><?php printf( esc_html__( 'Recharge your account and get up to %s extra.', 'bookly' ), '$' . $promotion['amount'] ) ?></b>
24
+ <?php esc_html_e( 'Send SMS notifications to your customers, increasing their loyalty and involvement.', 'bookly' ) ?>
25
+ <?php break ?>
26
+ <?php case 'auto': ?>
27
+ <b><?php printf( esc_html__( 'Enable Auto-Recharge and get up to %s extra.', 'bookly' ), '$' . $promotion['amount'] ) ?></b>
28
+ <?php esc_html_e( 'Let your clients receive notifications on time - don\'t let the service stop.', 'bookly' ) ?>
29
+ <?php break ?>
30
+ <?php endswitch ?>
31
+ </div>
32
+ <div class="d-inline-flex mt-2">
33
+ <?php Buttons::render(
34
+ null,
35
+ 'btn-success bookly-js-apply-action',
36
+ $type == 'registration'
37
+ ? __( 'Register', 'bookly' )
38
+ : ( $type == 'auto' ? __( 'Enable', 'bookly' ) : __( 'Recharge', 'bookly' ) )
39
+ ) ?>
40
+ <?php Buttons::renderDefault( null, 'ml-2 bookly-js-remind-me-later', __( 'Remind me later', 'bookly' ) ) ?>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </div>
backend/components/support/resources/js/support.js CHANGED
@@ -85,11 +85,11 @@ jQuery(function ($) {
85
  ;
86
 
87
  // Validation.
88
- $email.closest('.form-group').toggleClass('has-error', $email.val() == '');
89
- $msg.closest('.form-group').toggleClass('has-error', $msg.val() == '');
90
 
91
  // Send request.
92
- if ($modal.find('.has-error').length == 0) {
93
  var ladda = Ladda.create(this);
94
  ladda.start();
95
  $.ajax({
@@ -111,7 +111,7 @@ jQuery(function ($) {
111
  } else {
112
  booklyAlert({error : [response.data.message]});
113
  if (response.data.invalid_email) {
114
- $email.closest('.form-group').addClass('has-error');
115
  }
116
  }
117
  },
85
  ;
86
 
87
  // Validation.
88
+ $email.toggleClass('is-invalid', $email.val() == '');
89
+ $msg.toggleClass('is-invalid', $msg.val() == '');
90
 
91
  // Send request.
92
+ if ($modal.find('.is-invalid').length == 0) {
93
  var ladda = Ladda.create(this);
94
  ladda.start();
95
  $.ajax({
111
  } else {
112
  booklyAlert({error : [response.data.message]});
113
  if (response.data.invalid_email) {
114
+ $email.addClass('is-invalid');
115
  }
116
  }
117
  },
backend/components/support/templates/buttons.php CHANGED
@@ -142,7 +142,7 @@ use Bookly\Lib\Utils;
142
  </div>
143
  <div class="modal-footer">
144
  <?php Inputs::renderCsrf() ?>
145
- <?php Buttons::renderSubmit( 'bookly-support-send', null, __( 'Send', 'bookly' ) ) ?>
146
  <?php Buttons::renderCancel() ?>
147
  </div>
148
  </div>
142
  </div>
143
  <div class="modal-footer">
144
  <?php Inputs::renderCsrf() ?>
145
+ <?php Buttons::render( 'bookly-support-send', 'btn-success', __( 'Send', 'bookly' ) ) ?>
146
  <?php Buttons::renderCancel() ?>
147
  </div>
148
  </div>
backend/modules/appointments/resources/js/appointments.js CHANGED
@@ -208,7 +208,7 @@ jQuery(function($) {
208
  orderable : false,
209
  width : 120,
210
  render : function (data, type, row, meta) {
211
- return '<button type="button" class="btn btn-default" data-action="edit"><i class="far fa-fw fa-edit mr-1"></i>' + BooklyL10n.edit + '…</a>';
212
  }
213
  });
214
  columns.push({
208
  orderable : false,
209
  width : 120,
210
  render : function (data, type, row, meta) {
211
+ return '<button type="button" class="btn btn-default" data-action="edit"><i class="far fa-fw fa-edit mr-1"></i>' + BooklyL10n.edit + '…</button>';
212
  }
213
  });
214
  columns.push({
backend/modules/calendar/Ajax.php CHANGED
@@ -169,6 +169,17 @@ class Ajax extends Page
169
  wp_send_json( $result );
170
  }
171
 
 
 
 
 
 
 
 
 
 
 
 
172
  /**
173
  * Get appointments for FullCalendar.
174
  *
169
  wp_send_json( $result );
170
  }
171
 
172
+ /**
173
+ * Update calendar refresh rate.
174
+ */
175
+ public static function updateCalendarRefreshRate()
176
+ {
177
+ $rate = (int) self::parameter( 'rate', 0 );
178
+ update_user_meta( get_current_user_id(), 'bookly_calendar_refresh_rate', $rate );
179
+
180
+ wp_send_json_success();
181
+ }
182
+
183
  /**
184
  * Get appointments for FullCalendar.
185
  *
backend/modules/calendar/Page.php CHANGED
@@ -39,7 +39,6 @@ class Page extends Lib\Base\Ajax
39
  wp_localize_script( 'bookly-calendar.js', 'BooklyL10n', array(
40
  'csrf_token' => Lib\Utils\Common::getCsrfToken(),
41
  'slotDuration' => $slot->format( '%H:%I:%S' ),
42
- 'mjsDateFormat' => Lib\Utils\DateTime::convertFormat( 'date', Lib\Utils\DateTime::FORMAT_MOMENT_JS ),
43
  'mjsTimeFormat' => Lib\Utils\DateTime::convertFormat( 'time', Lib\Utils\DateTime::FORMAT_MOMENT_JS ),
44
  'datePicker' => Lib\Utils\DateTime::datePickerOptions(),
45
  'dateRange' => Lib\Utils\DateTime::dateRangeOptions(),
@@ -96,8 +95,9 @@ class Page extends Lib\Base\Ajax
96
  )
97
  );
98
  }
 
99
 
100
- self::renderTemplate( 'calendar', compact( 'staff_members', 'staff_dropdown_data' ) );
101
  }
102
 
103
  /**
@@ -133,6 +133,7 @@ class Page extends Lib\Base\Ajax
133
  '{custom_fields}' => '',
134
  '{extras}' => '',
135
  '{extras_total_price}'=> 0,
 
136
  '{location_name}' => '',
137
  '{location_info}' => '',
138
  '{number_of_persons}' => '',
@@ -153,7 +154,7 @@ class Page extends Lib\Base\Ajax
153
  '{total_price}' => '',
154
  );
155
  $query
156
- ->select( 'a.id, ca.series_id, a.staff_any, a.location_id, a.start_date, DATE_ADD(a.end_date, INTERVAL IF(ca.extras_consider_duration, a.extras_duration, 0) SECOND) AS end_date,
157
  COALESCE(s.title,a.custom_service_name) AS service_name, COALESCE(s.color,"silver") AS service_color, s.info AS service_info,
158
  COALESCE(ss.price,a.custom_service_price) AS service_price,
159
  st.full_name AS staff_name, st.email AS staff_email, st.info AS staff_info, st.phone AS staff_phone,
@@ -198,6 +199,7 @@ class Page extends Lib\Base\Ajax
198
  $codes['{appointment_date}'] = Lib\Utils\DateTime::formatDate( $appointment['start_date'] );
199
  $codes['{appointment_time}'] = $appointment['duration'] >= DAY_IN_SECONDS ? $appointment['start_time_info'] : Lib\Utils\DateTime::formatTime( $appointment['start_date'] );
200
  $codes['{booking_number}'] = $appointment['id'];
 
201
  $codes['{on_waiting_list}'] = $appointment['on_waiting_list'];
202
  $codes['{service_name}'] = $appointment['service_name'] ? esc_html( $appointment['service_name'] ) : __( 'Untitled', 'bookly' );
203
  $codes['{service_price}'] = Lib\Utils\Price::format( $appointment['service_price'] * $appointment['units'] );
39
  wp_localize_script( 'bookly-calendar.js', 'BooklyL10n', array(
40
  'csrf_token' => Lib\Utils\Common::getCsrfToken(),
41
  'slotDuration' => $slot->format( '%H:%I:%S' ),
 
42
  'mjsTimeFormat' => Lib\Utils\DateTime::convertFormat( 'time', Lib\Utils\DateTime::FORMAT_MOMENT_JS ),
43
  'datePicker' => Lib\Utils\DateTime::datePickerOptions(),
44
  'dateRange' => Lib\Utils\DateTime::dateRangeOptions(),
95
  )
96
  );
97
  }
98
+ $refresh_rate = get_user_meta( get_current_user_id(), 'bookly_calendar_refresh_rate', true );
99
 
100
+ self::renderTemplate( 'calendar', compact( 'staff_members', 'staff_dropdown_data', 'refresh_rate' ) );
101
  }
102
 
103
  /**
133
  '{custom_fields}' => '',
134
  '{extras}' => '',
135
  '{extras_total_price}'=> 0,
136
+ '{internal_note}' => '',
137
  '{location_name}' => '',
138
  '{location_info}' => '',
139
  '{number_of_persons}' => '',
154
  '{total_price}' => '',
155
  );
156
  $query
157
+ ->select( 'a.id, ca.series_id, a.staff_any, a.location_id, a.internal_note, a.start_date, DATE_ADD(a.end_date, INTERVAL IF(ca.extras_consider_duration, a.extras_duration, 0) SECOND) AS end_date,
158
  COALESCE(s.title,a.custom_service_name) AS service_name, COALESCE(s.color,"silver") AS service_color, s.info AS service_info,
159
  COALESCE(ss.price,a.custom_service_price) AS service_price,
160
  st.full_name AS staff_name, st.email AS staff_email, st.info AS staff_info, st.phone AS staff_phone,
199
  $codes['{appointment_date}'] = Lib\Utils\DateTime::formatDate( $appointment['start_date'] );
200
  $codes['{appointment_time}'] = $appointment['duration'] >= DAY_IN_SECONDS ? $appointment['start_time_info'] : Lib\Utils\DateTime::formatTime( $appointment['start_date'] );
201
  $codes['{booking_number}'] = $appointment['id'];
202
+ $codes['{internal_note}'] = $appointment['internal_note'];
203
  $codes['{on_waiting_list}'] = $appointment['on_waiting_list'];
204
  $codes['{service_name}'] = $appointment['service_name'] ? esc_html( $appointment['service_name'] ) : __( 'Untitled', 'bookly' );
205
  $codes['{service_price}'] = Lib\Utils\Price::format( $appointment['service_price'] * $appointment['units'] );
backend/modules/calendar/resources/images/box-small.png DELETED
Binary file
backend/modules/calendar/resources/images/calendar.png DELETED
Binary file
backend/modules/calendar/resources/js/calendar-common.js CHANGED
@@ -211,6 +211,8 @@
211
  loading: function (isLoading) {
212
  if (isLoading) {
213
  $('.bookly-fc-loading').show();
 
 
214
  }
215
  },
216
  eventAfterAllRender: function () {
@@ -280,6 +282,7 @@
280
  getCurrentStaffId: function () { return -1; },
281
  getStaffMemberIds: function () { return []; },
282
  getLocationIds: function () { return []; },
 
283
  l10n: {},
284
  is_backend: true
285
  };
211
  loading: function (isLoading) {
212
  if (isLoading) {
213
  $('.bookly-fc-loading').show();
214
+ } else {
215
+ obj.options.refresh();
216
  }
217
  },
218
  eventAfterAllRender: function () {
282
  getCurrentStaffId: function () { return -1; },
283
  getStaffMemberIds: function () { return []; },
284
  getLocationIds: function () { return []; },
285
+ refresh: function () {},
286
  l10n: {},
287
  is_backend: true
288
  };
backend/modules/calendar/resources/js/calendar.js CHANGED
@@ -12,7 +12,8 @@ jQuery(function ($) {
12
  locationIds = getCookie('bookly_cal_location_ids'),
13
  tabId = getCookie('bookly_cal_tab_id'),
14
  lastView = getCookie('bookly_cal_view'),
15
- views = 'month,agendaWeek,agendaDay,multiStaffDay';
 
16
 
17
  if (views.indexOf(lastView) == -1) {
18
  lastView = 'multiStaffDay';
@@ -114,6 +115,40 @@ jQuery(function ($) {
114
  // Populate locationIds.
115
  locationIds = $locationsFilter.booklyDropdown('getSelected');
116
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  /**
118
  * Init FullCalendar.
119
  */
@@ -155,6 +190,7 @@ jQuery(function ($) {
155
  getLocationIds: function () {
156
  return locationIds;
157
  },
 
158
  l10n: BooklyL10n
159
  });
160
 
12
  locationIds = getCookie('bookly_cal_location_ids'),
13
  tabId = getCookie('bookly_cal_tab_id'),
14
  lastView = getCookie('bookly_cal_view'),
15
+ views = 'month,agendaWeek,agendaDay,multiStaffDay',
16
+ calendarTimer = null;
17
 
18
  if (views.indexOf(lastView) == -1) {
19
  lastView = 'multiStaffDay';
115
  // Populate locationIds.
116
  locationIds = $locationsFilter.booklyDropdown('getSelected');
117
 
118
+ /**
119
+ * Init calendar refresh buttons.
120
+ */
121
+ function refreshBooklyCalendar() {
122
+ let $refresh = $('input[name="bookly_calendar_refresh_rate"]:checked');
123
+ clearTimeout(calendarTimer);
124
+ if ($refresh.val() > 0) {
125
+ calendarTimer = setTimeout(function () {
126
+ $fullCalendar.fullCalendar('refetchEvents');
127
+ }, $refresh.val() * 1000)
128
+ }
129
+ }
130
+
131
+ $('#bookly-calendar-refresh').on('click', function () {
132
+ $fullCalendar.fullCalendar('refetchEvents');
133
+ });
134
+
135
+ $('input[name="bookly_calendar_refresh_rate"]').change(function () {
136
+ $.post(
137
+ ajaxurl,
138
+ {action: 'bookly_update_calendar_refresh_rate', csrf_token: BooklyL10n.csrf_token, rate: this.value},
139
+ function (response) {},
140
+ 'json'
141
+ );
142
+ if (this.value > 0) {
143
+ $(this).closest('.btn-group').find('button').addClass('btn-success').removeClass('btn-default');
144
+ } else {
145
+ $(this).closest('.btn-group').find('button').addClass('btn-default').removeClass('btn-success');
146
+ }
147
+ refreshBooklyCalendar();
148
+ });
149
+
150
+ refreshBooklyCalendar();
151
+
152
  /**
153
  * Init FullCalendar.
154
  */
190
  getLocationIds: function () {
191
  return locationIds;
192
  },
193
+ refresh: refreshBooklyCalendar,
194
  l10n: BooklyL10n
195
  });
196
 
backend/modules/calendar/templates/calendar.php CHANGED
@@ -3,9 +3,11 @@ use Bookly\Lib\Utils\Common;
3
  use Bookly\Backend\Components;
4
  use Bookly\Backend\Modules as Backend;
5
  use Bookly\Backend\Modules\Calendar\Proxy;
 
6
  /**
7
  * @var Bookly\Lib\Entities\Staff[] $staff_members
8
- * @var array $staff_dropdown_data
 
9
  */
10
  ?>
11
  <style>
@@ -36,6 +38,25 @@ use Bookly\Backend\Modules\Calendar\Proxy;
36
  <?php endforeach ?>
37
  </ul>
38
  <div class="col-auto col-md"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  <?php Proxy\OutlookCalendar::renderSyncButton( $staff_members ) ?>
40
  <?php Proxy\AdvancedGoogleCalendar::renderSyncButton( $staff_members ) ?>
41
  <?php Proxy\Locations::renderCalendarLocationFilter() ?>
3
  use Bookly\Backend\Components;
4
  use Bookly\Backend\Modules as Backend;
5
  use Bookly\Backend\Modules\Calendar\Proxy;
6
+
7
  /**
8
  * @var Bookly\Lib\Entities\Staff[] $staff_members
9
+ * @var array $staff_dropdown_data
10
+ * @var int $refresh_rate
11
  */
12
  ?>
13
  <style>
38
  <?php endforeach ?>
39
  </ul>
40
  <div class="col-auto col-md"></div>
41
+ <div class="col-auto mb-2">
42
+ <div class="btn-group">
43
+ <button type="button" class="btn <?php echo $refresh_rate > 0 ? 'btn-success' : 'btn-default' ?>" id="bookly-calendar-refresh"><i class="fas fa-sync-alt"></i></button>
44
+ <button type="button" class="btn <?php echo $refresh_rate > 0 ? 'btn-success' : 'btn-default' ?> dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
45
+ <div class="dropdown-menu pb-0">
46
+ <h6 class="dropdown-header"><?php esc_html_e( 'Auto-refresh Calendar', 'bookly' ) ?></h6>
47
+ <div class="dropdown-divider"></div>
48
+ <?php Components\Controls\Inputs::renderRadioGroup( null, null,
49
+ array(
50
+ '60' => array( 'title' => __( 'Every 1 minute', 'bookly' ) ),
51
+ '300' => array( 'title' => __( 'Every 5 minutes', 'bookly' ) ),
52
+ '900' => array( 'title' => __( 'Every 15 minutes', 'bookly' ) ),
53
+ '0' => array( 'title' => __( 'Disable', 'bookly' ) ),
54
+ ),
55
+ $refresh_rate,
56
+ array( 'name' => 'bookly_calendar_refresh_rate', 'parent-class' => 'mx-3 my-2 w-100' ) ) ?>
57
+ </div>
58
+ </div>
59
+ </div>
60
  <?php Proxy\OutlookCalendar::renderSyncButton( $staff_members ) ?>
61
  <?php Proxy\AdvancedGoogleCalendar::renderSyncButton( $staff_members ) ?>
62
  <?php Proxy\Locations::renderCalendarLocationFilter() ?>
backend/modules/customers/Ajax.php CHANGED
@@ -14,7 +14,10 @@ class Ajax extends Lib\Base\Ajax
14
  */
15
  protected static function permissions()
16
  {
17
- return array( '_default' => 'supervisor', );
 
 
 
18
  }
19
 
20
  /**
@@ -153,8 +156,11 @@ class Ajax extends Lib\Base\Ajax
153
 
154
  $query->limit( $max_results )->offset( ( $page - 1 ) * $max_results );
155
 
 
 
 
156
  $customers = array();
157
- foreach ( $query->fetchArray() as $customer ) {
158
  $name = $customer['text'];
159
  if ( $customer['email'] != '' || $customer['phone'] != '' ) {
160
  $name .= ' (' . trim( $customer['email'] . ', ' . $customer['phone'], ', ' ) . ')';
@@ -169,7 +175,7 @@ class Ajax extends Lib\Base\Ajax
169
  wp_send_json( array(
170
  'results' => $customers,
171
  'pagination' => array(
172
- 'more' => ( int ) $wpdb->get_var( 'SELECT FOUND_ROWS()' ) > $max_results * $page,
173
  ),
174
  ) );
175
  }
14
  */
15
  protected static function permissions()
16
  {
17
+ return array(
18
+ '_default' => 'supervisor',
19
+ 'getCustomersList' => array( 'staff', 'supervisor' ),
20
+ );
21
  }
22
 
23
  /**
156
 
157
  $query->limit( $max_results )->offset( ( $page - 1 ) * $max_results );
158
 
159
+ $rows = $query->fetchArray();
160
+ $more = ( int ) $wpdb->get_var( 'SELECT FOUND_ROWS()' ) > $max_results * $page;
161
+
162
  $customers = array();
163
+ foreach ( $rows as $customer ) {
164
  $name = $customer['text'];
165
  if ( $customer['email'] != '' || $customer['phone'] != '' ) {
166
  $name .= ' (' . trim( $customer['email'] . ', ' . $customer['phone'], ', ' ) . ')';
175
  wp_send_json( array(
176
  'results' => $customers,
177
  'pagination' => array(
178
+ 'more' => $more,
179
  ),
180
  ) );
181
  }
backend/modules/debug/lib/QueryBuilder.php CHANGED
@@ -299,6 +299,7 @@ class QueryBuilder
299
  'bookly_payments.paid_type' => array( 'type' => "enum('in_full','deposit')", 'is_nullabe' => 0, 'extra' => "", 'default' => "in_full", 'key' => "" ),
300
  'bookly_payments.gateway_price_correction' => array( 'type' => "decimal(10,2)", 'is_nullabe' => 1, 'extra' => "", 'default' => "0.00", 'key' => "" ),
301
  'bookly_payments.status' => array( 'type' => "enum('pending','completed','rejected')", 'is_nullabe' => 0, 'extra' => "", 'default' => "completed", 'key' => "" ),
 
302
  'bookly_payments.details' => array( 'type' => "text", 'is_nullabe' => 1, 'extra' => "", 'default' => null, 'key' => "" ),
303
  'bookly_payments.created' => array( 'type' => "datetime", 'is_nullabe' => 0, 'extra' => "", 'default' => null, 'key' => "" ),
304
  'bookly_schedule_item_breaks.id' => array( 'type' => "int unsigned", 'is_nullabe' => 0, 'extra' => "auto_increment", 'default' => null, 'key' => "PRI" ),
299
  'bookly_payments.paid_type' => array( 'type' => "enum('in_full','deposit')", 'is_nullabe' => 0, 'extra' => "", 'default' => "in_full", 'key' => "" ),
300
  'bookly_payments.gateway_price_correction' => array( 'type' => "decimal(10,2)", 'is_nullabe' => 1, 'extra' => "", 'default' => "0.00", 'key' => "" ),
301
  'bookly_payments.status' => array( 'type' => "enum('pending','completed','rejected')", 'is_nullabe' => 0, 'extra' => "", 'default' => "completed", 'key' => "" ),
302
+ 'bookly_payments.token' => array( 'type' => "varchar(255)", 'is_nullabe' => 1, 'extra' => "", 'default' => null, 'key' => "" ),
303
  'bookly_payments.details' => array( 'type' => "text", 'is_nullabe' => 1, 'extra' => "", 'default' => null, 'key' => "" ),
304
  'bookly_payments.created' => array( 'type' => "datetime", 'is_nullabe' => 0, 'extra' => "", 'default' => null, 'key' => "" ),
305
  'bookly_schedule_item_breaks.id' => array( 'type' => "int unsigned", 'is_nullabe' => 0, 'extra' => "auto_increment", 'default' => null, 'key' => "PRI" ),
backend/modules/debug/lib/Schema.php CHANGED
@@ -118,8 +118,14 @@ class Schema
118
  break;
119
  case 'MySql':
120
  default:
 
 
 
 
 
 
121
  return array(
122
- 'type' => $data['DATA_TYPE'],
123
  'is_nullabe' => $data['IS_NULLABLE'] === 'YES' ? 1 : 0,
124
  'extra' => $data['EXTRA'],
125
  'default' => $data['COLUMN_DEFAULT'],
118
  break;
119
  case 'MySql':
120
  default:
121
+ $type = $data['DATA_TYPE'];
122
+ // 5.6.32-1+deb.sury.org~precise+0.1
123
+ if ( $type === 'mediumtext' ) {
124
+ $type = 'text';
125
+ }
126
+
127
  return array(
128
+ 'type' => $type,
129
  'is_nullabe' => $data['IS_NULLABLE'] === 'YES' ? 1 : 0,
130
  'extra' => $data['EXTRA'],
131
  'default' => $data['COLUMN_DEFAULT'],
backend/modules/notifications/Page.php CHANGED
@@ -40,7 +40,7 @@ class Page extends Lib\Base\Component
40
  'sentSuccessfully' => __( 'Sent successfully.', 'bookly' ),
41
  'settingsSaved' => __( 'Settings saved.', 'bookly' ),
42
  'areYouSure' => __( 'Are you sure?', 'bookly' ),
43
- 'zeroRecords' => __( 'No records.', 'bookly' ),
44
  'processing' => __( 'Processing...', 'bookly' ),
45
  'state' => array( __( 'Disabled', 'bookly' ), __( 'Enabled', 'bookly' ) ),
46
  'action' => array( __( 'enable', 'bookly' ), __( 'disable', 'bookly' ) ),
40
  'sentSuccessfully' => __( 'Sent successfully.', 'bookly' ),
41
  'settingsSaved' => __( 'Settings saved.', 'bookly' ),
42
  'areYouSure' => __( 'Are you sure?', 'bookly' ),
43
+ 'noResults' => __( 'No records.', 'bookly' ),
44
  'processing' => __( 'Processing...', 'bookly' ),
45
  'state' => array( __( 'Disabled', 'bookly' ), __( 'Enabled', 'bookly' ) ),
46
  'action' => array( __( 'enable', 'bookly' ), __( 'disable', 'bookly' ) ),
backend/modules/services/Ajax.php CHANGED
@@ -351,4 +351,41 @@ class Ajax extends Page
351
 
352
  wp_send_json_success( Lib\Entities\Category::query()->sortBy( 'position' )->fetchArray() );
353
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
354
  }
351
 
352
  wp_send_json_success( Lib\Entities\Category::query()->sortBy( 'position' )->fetchArray() );
353
  }
354
+
355
+ /**
356
+ * Duplicate service.
357
+ */
358
+ public static function duplicateService()
359
+ {
360
+ $service_id = self::parameter( 'service_id' );
361
+ $service = Lib\Entities\Service::find( $service_id );
362
+ if ( $service ) {
363
+ // Create copy of service
364
+ $new_service = new Lib\Entities\Service( $service->getFields() );
365
+ $new_service
366
+ ->setId( null )
367
+ ->setTitle( sprintf( __( 'Copy of %s', 'bookly' ), $new_service->getTitle() ) )
368
+ ->setVisibility( Lib\Entities\Service::VISIBILITY_PRIVATE )
369
+ ->save();
370
+
371
+ foreach ( Lib\Entities\StaffService::query()->where( 'service_id', $service->getId() )->fetchArray() as $staff_service ) {
372
+ $new_staff_service = new Lib\Entities\StaffService( $staff_service );
373
+ $new_staff_service->setId( null )->setServiceId( $new_service->getId() )->save();
374
+ }
375
+
376
+ foreach ( Lib\Entities\SubService::query()->where( 'service_id', $service->getId() )->fetchArray() as $sub_service ) {
377
+ $new_sub_service = new Lib\Entities\SubService( $sub_service );
378
+ $new_sub_service->setId( null )->setServiceId( $new_service->getId() )->save();
379
+ }
380
+
381
+ Proxy\Shared::duplicateService( $service->getId(), $new_service->getId() );
382
+
383
+ wp_send_json_success( array(
384
+ 'id' => $new_service->getId(),
385
+ 'title' => $new_service->getTitle(),
386
+ ) );
387
+ }
388
+
389
+ wp_send_json_success();
390
+ }
391
  }
backend/modules/services/Page.php CHANGED
@@ -58,7 +58,9 @@ class Page extends Lib\Base\Ajax
58
  wp_localize_script( 'bookly-services-list.js', 'BooklyL10n', array(
59
  'csrfToken' => Lib\Utils\Common::getCsrfToken(),
60
  'are_you_sure' => esc_attr__( 'Are you sure?', 'bookly' ),
 
61
  'edit' => esc_attr__( 'Edit', 'bookly' ),
 
62
  'reorder' => esc_attr__( 'Reorder', 'bookly' ),
63
  'staff' => $staff,
64
  'categories' => $categories,
58
  wp_localize_script( 'bookly-services-list.js', 'BooklyL10n', array(
59
  'csrfToken' => Lib\Utils\Common::getCsrfToken(),
60
  'are_you_sure' => esc_attr__( 'Are you sure?', 'bookly' ),
61
+ 'private_warning' => esc_attr__( 'The service will be created with the visibility of Private.', 'bookly' ),
62
  'edit' => esc_attr__( 'Edit', 'bookly' ),
63
+ 'duplicate' => esc_attr__( 'Duplicate', 'bookly' ),
64
  'reorder' => esc_attr__( 'Reorder', 'bookly' ),
65
  'staff' => $staff,
66
  'categories' => $categories,
backend/modules/services/forms/Service.php CHANGED
@@ -43,6 +43,7 @@ class Service extends Lib\Base\Form
43
  'staff_preference',
44
  'staff_preferred_period_before',
45
  'staff_preferred_period_after',
 
46
  'recurrence_enabled',
47
  'recurrence_frequencies',
48
  'visibility',
43
  'staff_preference',
44
  'staff_preferred_period_before',
45
  'staff_preferred_period_after',
46
+ 'staff_preferred_random',
47
  'recurrence_enabled',
48
  'recurrence_frequencies',
49
  'visibility',
backend/modules/services/proxy/Shared.php CHANGED
@@ -8,6 +8,7 @@ use Bookly\Lib;
8
  * @package Bookly\Backend\Modules\Services\Proxy
9
  *
10
  * @method static void enqueueAssetsForServices() Enqueue assets for page Services.
 
11
  * @method static array prepareServiceColors( array $colors, int $service_id, int $service_type ) Prepare colors for service.
12
  * @method static array prepareServiceIcons( array $icons ) Prepare service icons.
13
  * @method static array prepareServiceTypes( array $types ) Prepare service types.
8
  * @package Bookly\Backend\Modules\Services\Proxy
9
  *
10
  * @method static void enqueueAssetsForServices() Enqueue assets for page Services.
11
+ * @method static void duplicateService( int $source_id, int $target_id ) Duplicate service.
12
  * @method static array prepareServiceColors( array $colors, int $service_id, int $service_type ) Prepare colors for service.
13
  * @method static array prepareServiceIcons( array $icons ) Prepare service icons.
14
  * @method static array prepareServiceTypes( array $types ) Prepare service types.
backend/modules/services/resources/js/services-list.js CHANGED
@@ -95,7 +95,7 @@ jQuery(function ($) {
95
  orderable: false,
96
  searchable: false,
97
  render: function (data, type, row, meta) {
98
- return '<button type="button" class="btn btn-default" data-action="edit"><i class="far fa-fw fa-edit mr-1"></i>' + BooklyL10n.edit + '…</a>';
99
  }
100
  });
101
  columns.push({
@@ -232,6 +232,26 @@ jQuery(function ($) {
232
  delete_services(ajaxurl, data);
233
  });
234
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
235
  $('.bookly-js-select')
236
  .select2({
237
  width: '100%',
95
  orderable: false,
96
  searchable: false,
97
  render: function (data, type, row, meta) {
98
+ return '<div class="d-inline-flex"><button type="button" class="btn btn-default mr-1" data-action="edit"><i class="far fa-fw fa-edit mr-1"></i>' + BooklyL10n.edit + '…</button><button type="button" class="btn btn-default ladda-button" data-action="duplicate" data-spinner-size="40" data-style="zoom-in" data-spinner-color="#666666"><span class="ladda-label"><i class="far fa-fw fa-clone mr-1"></i>' + BooklyL10n.duplicate + '…</span></button></div>';
99
  }
100
  });
101
  columns.push({
232
  delete_services(ajaxurl, data);
233
  });
234
 
235
+ $servicesList.on('click', '[data-action="duplicate"]', function () {
236
+ if (confirm(BooklyL10n.are_you_sure + "\n\n" + BooklyL10n.private_warning)) {
237
+ let ladda = rangeTools.ladda(this),
238
+ data = $servicesList.DataTable().row($(this).closest('td')).data();
239
+ $.post(
240
+ ajaxurl,
241
+ {
242
+ action : 'bookly_duplicate_service',
243
+ service_id: data.id,
244
+ csrf_token: BooklyL10n.csrfToken,
245
+ },
246
+ function (response) {
247
+ dt.ajax.reload();
248
+ BooklyServiceOrderDialogL10n.services.push({id: response.data.id, title: response.data.title});
249
+ ladda.stop();
250
+ }
251
+ );
252
+ }
253
+ });
254
+
255
  $('.bookly-js-select')
256
  .select2({
257
  width: '100%',
backend/modules/services/templates/time.php CHANGED
@@ -51,7 +51,7 @@ use Bookly\Backend\Modules\Services\Proxy;
51
  <option value="<?php echo $duration ?>"<?php selected( $service['slot_length'], $duration ) ?>><?php echo esc_html( DateTime::secondsToInterval( $duration ) ) ?></option>
52
  <?php endforeach ?>
53
  </select>
54
- <small class="form-text text-muted"><?php esc_html_e( 'The time interval which is used as a step when building all time slots for the service at the Time step. The setting overrides global settings in Settings General. Use Default to apply global settings.', 'bookly' ) ?></small>
55
  </div>
56
  <?php Proxy\Pro::renderPadding( $service ) ?>
57
  <?php Proxy\Tasks::renderSubForm( $service ) ?>
51
  <option value="<?php echo $duration ?>"<?php selected( $service['slot_length'], $duration ) ?>><?php echo esc_html( DateTime::secondsToInterval( $duration ) ) ?></option>
52
  <?php endforeach ?>
53
  </select>
54
+ <small class="form-text text-muted"><?php esc_html_e( 'The time interval which is used as a step when building all time slots for the service at the Time step. The setting overrides global settings in Settings > General. Use Default to apply global settings.', 'bookly' ) ?></small>
55
  </div>
56
  <?php Proxy\Pro::renderPadding( $service ) ?>
57
  <?php Proxy\Tasks::renderSubForm( $service ) ?>
backend/modules/settings/resources/js/settings.js CHANGED
@@ -1,22 +1,23 @@
1
  jQuery(function ($) {
2
- let $helpBtn = $('#bookly-help-btn'),
3
- $businessHours = $('#business-hours'),
4
- $companyLogo = $('#bookly-js-company-logo'),
5
- $finalStepUrl = $('input[name=bookly_url_final_step_url]'),
6
- $finalStepUrlMode = $('#bookly_settings_final_step_url_mode'),
7
- $participants = $('#bookly_appointment_participants'),
8
- $defaultCountry = $('#bookly_cst_phone_default_country'),
9
- $defaultCountryCode = $('#bookly_cst_default_country_code'),
10
- $gcSyncMode = $('#bookly_gc_sync_mode'),
11
- $gcLimitEvents = $('#bookly_gc_limit_events'),
12
- $gcFullSyncOffset = $('#bookly_gc_full_sync_offset_days'),
13
- $gcFullSyncTitles = $('#bookly_gc_full_sync_titles'),
14
- $ocSyncMode = $('#bookly_oc_sync_mode'),
15
- $ocLimitEvents = $('#bookly_oc_limit_events'),
16
- $ocFullSyncOffset = $('#bookly_oc_full_sync_offset_days'),
17
- $ocFullSyncTitles = $('#bookly_oc_full_sync_titles'),
18
- $currency = $('#bookly_pmt_currency'),
19
- $formats = $('#bookly_pmt_price_format')
 
20
  ;
21
 
22
  booklyAlert(BooklyL10n.alert);
@@ -46,6 +47,7 @@ jQuery(function ($) {
46
  $gcLimitEvents.closest('.form-group').toggle(this.value == '1.5-way');
47
  $gcFullSyncOffset.closest('.form-group').toggle(this.value == '2-way');
48
  $gcFullSyncTitles.closest('.form-group').toggle(this.value == '2-way');
 
49
  }).trigger('change');
50
 
51
  // Outlook Calendar tab.
1
  jQuery(function ($) {
2
+ let $helpBtn = $('#bookly-help-btn'),
3
+ $businessHours = $('#business-hours'),
4
+ $companyLogo = $('#bookly-js-company-logo'),
5
+ $finalStepUrl = $('input[name=bookly_url_final_step_url]'),
6
+ $finalStepUrlMode = $('#bookly_settings_final_step_url_mode'),
7
+ $participants = $('#bookly_appointment_participants'),
8
+ $defaultCountry = $('#bookly_cst_phone_default_country'),
9
+ $defaultCountryCode = $('#bookly_cst_default_country_code'),
10
+ $gcSyncMode = $('#bookly_gc_sync_mode'),
11
+ $gcLimitEvents = $('#bookly_gc_limit_events'),
12
+ $gcFullSyncOffset = $('#bookly_gc_full_sync_offset_days'),
13
+ $gcFullSyncTitles = $('#bookly_gc_full_sync_titles'),
14
+ $gcForceUpdateDescription = $('#bookly_gc_force_update_description'),
15
+ $ocSyncMode = $('#bookly_oc_sync_mode'),
16
+ $ocLimitEvents = $('#bookly_oc_limit_events'),
17
+ $ocFullSyncOffset = $('#bookly_oc_full_sync_offset_days'),
18
+ $ocFullSyncTitles = $('#bookly_oc_full_sync_titles'),
19
+ $currency = $('#bookly_pmt_currency'),
20
+ $formats = $('#bookly_pmt_price_format')
21
  ;
22
 
23
  booklyAlert(BooklyL10n.alert);
47
  $gcLimitEvents.closest('.form-group').toggle(this.value == '1.5-way');
48
  $gcFullSyncOffset.closest('.form-group').toggle(this.value == '2-way');
49
  $gcFullSyncTitles.closest('.form-group').toggle(this.value == '2-way');
50
+ $gcForceUpdateDescription.closest('.form-group').toggle(this.value == '2-way');
51
  }).trigger('change');
52
 
53
  // Outlook Calendar tab.
backend/modules/settings/templates/_calendar_codes.php CHANGED
@@ -10,6 +10,7 @@ $codes = array(
10
  array( 'code' => 'company_name', 'description' => __( 'name of company', 'bookly' ) ),
11
  array( 'code' => 'company_phone', 'description' => __( 'company phone', 'bookly' ) ),
12
  array( 'code' => 'company_website', 'description' => __( 'company web-site address', 'bookly' ) ),
 
13
  array( 'code' => 'service_capacity', 'description' => __( 'capacity of service', 'bookly' ) ),
14
  array( 'code' => 'service_duration', 'description' => __( 'duration of service', 'bookly' ) ),
15
  array( 'code' => 'service_info', 'description' => __( 'info of service', 'bookly' ) ),
10
  array( 'code' => 'company_name', 'description' => __( 'name of company', 'bookly' ) ),
11
  array( 'code' => 'company_phone', 'description' => __( 'company phone', 'bookly' ) ),
12
  array( 'code' => 'company_website', 'description' => __( 'company web-site address', 'bookly' ) ),
13
+ array( 'code' => 'internal_note', 'description' => __( 'internal note', 'bookly' ) ),
14
  array( 'code' => 'service_capacity', 'description' => __( 'capacity of service', 'bookly' ) ),
15
  array( 'code' => 'service_duration', 'description' => __( 'duration of service', 'bookly' ) ),
16
  array( 'code' => 'service_info', 'description' => __( 'info of service', 'bookly' ) ),
backend/modules/sms/Ajax.php CHANGED
@@ -25,13 +25,11 @@ class Ajax extends Lib\Base\Ajax
25
  */
26
  public static function getPurchasesList()
27
  {
28
- $sms = new Lib\SMS();
29
-
30
  $dates = explode( ' - ', self::parameter( 'range' ), 2 );
31
  $start = Lib\Utils\DateTime::applyTimeZoneOffset( $dates[0], 0 );
32
  $end = Lib\Utils\DateTime::applyTimeZoneOffset( date( 'Y-m-d', strtotime( '+1 day', strtotime( $dates[1] ) ) ), 0 );
33
 
34
- wp_send_json( $sms->getPurchasesList( $start, $end ) );
35
  }
36
 
37
  /**
@@ -39,13 +37,11 @@ class Ajax extends Lib\Base\Ajax
39
  */
40
  public static function getSmsList()
41
  {
42
- $sms = new Lib\SMS();
43
-
44
  $dates = explode( ' - ', self::parameter( 'range' ), 2 );
45
  $start = Lib\Utils\DateTime::applyTimeZoneOffset( $dates[0], 0 );
46
  $end = Lib\Utils\DateTime::applyTimeZoneOffset( date( 'Y-m-d', strtotime( '+1 day', strtotime( $dates[1] ) ) ), 0 );
47
 
48
- wp_send_json( $sms->getSmsList( $start, $end ) );
49
  }
50
 
51
  /**
@@ -53,48 +49,21 @@ class Ajax extends Lib\Base\Ajax
53
  */
54
  public static function getPriceList()
55
  {
56
- $sms = new Lib\SMS();
57
- wp_send_json( $sms->getPriceList() );
58
  }
59
 
60
  /**
61
- * Resend email confirmation for sms user.
62
  */
63
- public static function resendConfirmation()
64
  {
65
- $sms = new Lib\SMS();
66
- $send = $sms->resendConfirmation();
67
- $message = $send ? __( 'The email has been resent', 'bookly' ) : __( 'Service is temporarily unavailable. Please try again later.', 'bookly' );
68
- $send
69
- ? wp_send_json_success( compact( 'message' ) )
70
- : wp_send_json_error( compact( 'message' ) );
71
- }
72
 
73
- /**
74
- * Initial for enabling Auto-Recharge balance
75
- */
76
- public static function initAutoRecharge()
77
- {
78
- $sms = new Lib\SMS();
79
- $key = $sms->getPreapprovalKey( self::parameter( 'amount' ) );
80
- if ( $key !== false ) {
81
- wp_send_json_success( array( 'paypal_preapproval' => 'https://www.paypal.com/cgi-bin/webscr?cmd=_ap-preapproval&preapprovalkey=' . $key ) );
82
- } else {
83
- wp_send_json_error( array( 'message' => __( 'Auto-Recharge has failed, please replenish your balance directly.', 'bookly' ) ) );
84
- }
85
- }
86
-
87
- /**
88
- * Disable Auto-Recharge balance
89
- */
90
- public static function declineAutoRecharge()
91
- {
92
- $sms = new Lib\SMS();
93
- $declined = $sms->declinePreapproval();
94
- if ( $declined !== false ) {
95
- wp_send_json_success( array( 'message' => __( 'Auto-Recharge disabled', 'bookly' ) ) );
96
  } else {
97
- wp_send_json_error( array( 'message' => __( 'Error. Can\'t disable Auto-Recharge, you can perform this action in your PayPal account.', 'bookly' ) ) );
98
  }
99
  }
100
 
@@ -103,13 +72,12 @@ class Ajax extends Lib\Base\Ajax
103
  */
104
  public static function changePassword()
105
  {
106
- $sms = new Lib\SMS();
107
  $old_password = self::parameter( 'old_password' );
108
  $new_password = self::parameter( 'new_password' );
109
 
110
- $result = $sms->changePassword( $new_password, $old_password );
111
  if ( $result === false ) {
112
- wp_send_json_error( array( 'message' => current( $sms->getErrors() ) ) );
113
  } else {
114
  wp_send_json_success();
115
  }
@@ -120,7 +88,7 @@ class Ajax extends Lib\Base\Ajax
120
  */
121
  public static function sendTestSms()
122
  {
123
- $sms = new Lib\SMS();
124
  $response = array( 'success' => $sms->sendSms(
125
  self::parameter( 'phone_number' ),
126
  'Bookly test SMS.',
@@ -142,7 +110,7 @@ class Ajax extends Lib\Base\Ajax
142
  */
143
  public static function forgotPassword()
144
  {
145
- $sms = new Lib\SMS();
146
  $step = self::parameter( 'step' );
147
  $code = self::parameter( 'code' );
148
  $username = self::parameter( 'username' );
@@ -161,8 +129,7 @@ class Ajax extends Lib\Base\Ajax
161
  */
162
  public static function getSenderIdsList()
163
  {
164
- $sms = new Lib\SMS();
165
- wp_send_json( $sms->getSenderIdsList() );
166
  }
167
 
168
  /**
@@ -170,12 +137,12 @@ class Ajax extends Lib\Base\Ajax
170
  */
171
  public static function requestSenderId()
172
  {
173
- $sms = new Lib\SMS();
174
  $result = $sms->requestSenderId( self::parameter( 'sender_id' ) );
175
  if ( $result === false ) {
176
  wp_send_json_error( array( 'message' => current( $sms->getErrors() ) ) );
177
  } else {
178
- wp_send_json_success( array( 'request_id' => $result->request_id ) );
179
  }
180
  }
181
 
@@ -184,7 +151,7 @@ class Ajax extends Lib\Base\Ajax
184
  */
185
  public static function cancelSenderId()
186
  {
187
- $sms = new Lib\SMS();
188
  $result = $sms->cancelSenderId();
189
  if ( $result === false ) {
190
  wp_send_json_error( array( 'message' => current( $sms->getErrors() ) ) );
@@ -198,7 +165,7 @@ class Ajax extends Lib\Base\Ajax
198
  */
199
  public static function resetSenderId()
200
  {
201
- $sms = new Lib\SMS();
202
  $result = $sms->resetSenderId();
203
  if ( $result === false ) {
204
  wp_send_json_error( array( 'message' => current( $sms->getErrors() ) ) );
@@ -212,31 +179,68 @@ class Ajax extends Lib\Base\Ajax
212
  */
213
  public static function saveInvoiceData()
214
  {
215
- $sms = new Lib\SMS();
216
  $result = $sms->sendInvoiceData( (array) self::parameter( 'invoice' ) );
217
  if ( $result === false ) {
218
  wp_send_json_error( array( 'message' => current( $sms->getErrors() ) ) );
219
  } else {
220
- wp_send_json_success( array( 'message' => __( 'Settings saved.', 'bookly' ) ) );
221
  }
222
  }
223
 
224
  /**
225
- * Confirmation email.
226
  */
227
- public static function completeSmsRegistration()
228
  {
229
- $code = trim( self::parameter( 'code' ) );
230
- $sms = new Lib\SMS();
231
- $response = $sms->completeRegistration( $code );
232
- if ( $response ) {
233
- update_option( 'bookly_sms_token', $response->token );
234
- update_option( 'bookly_sms_unverified_token', '' );
235
- update_option( 'bookly_sms_unverified_username', '' );
236
  wp_send_json_success();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
  } else {
238
- wp_send_json_error( array( 'message' => current( $sms->getErrors() ) ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
239
  }
 
 
240
  }
241
 
242
  /**
@@ -321,8 +325,7 @@ class Ajax extends Lib\Base\Ajax
321
  public static function sendQueue()
322
  {
323
  $queue = self::parameter( 'queue', array() );
324
- $sms = new Lib\SMS();
325
-
326
  foreach ( $queue as $notification ) {
327
  if ( $notification['gateway'] == 'sms' ) {
328
  $sms->sendSms( $notification['address'], $notification['message'], $notification['impersonal'], $notification['type_id'] );
@@ -362,4 +365,53 @@ class Ajax extends Lib\Base\Ajax
362
  }
363
  }
364
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
365
  }
25
  */
26
  public static function getPurchasesList()
27
  {
 
 
28
  $dates = explode( ' - ', self::parameter( 'range' ), 2 );
29
  $start = Lib\Utils\DateTime::applyTimeZoneOffset( $dates[0], 0 );
30
  $end = Lib\Utils\DateTime::applyTimeZoneOffset( date( 'Y-m-d', strtotime( '+1 day', strtotime( $dates[1] ) ) ), 0 );
31
 
32
+ wp_send_json( Lib\SMS::getInstance()->getPurchasesList( $start, $end ) );
33
  }
34
 
35
  /**
37
  */
38
  public static function getSmsList()
39
  {
 
 
40
  $dates = explode( ' - ', self::parameter( 'range' ), 2 );
41
  $start = Lib\Utils\DateTime::applyTimeZoneOffset( $dates[0], 0 );
42
  $end = Lib\Utils\DateTime::applyTimeZoneOffset( date( 'Y-m-d', strtotime( '+1 day', strtotime( $dates[1] ) ) ), 0 );
43
 
44
+ wp_send_json( Lib\SMS::getInstance()->getSmsList( $start, $end ) );
45
  }
46
 
47
  /**
49
  */
50
  public static function getPriceList()
51
  {
52
+ wp_send_json( Lib\SMS::getInstance()->getPriceList() );
 
53
  }
54
 
55
  /**
56
+ * Change country.
57
  */
58
+ public static function changeCountry()
59
  {
60
+ $country = self::parameter( 'country' );
 
 
 
 
 
 
61
 
62
+ $result = Lib\SMS::getInstance()->changeCountry( $country );
63
+ if ( $result === false ) {
64
+ wp_send_json_error( array( 'message' => current( Lib\SMS::getInstance()->getErrors() ) ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  } else {
66
+ wp_send_json( $result );
67
  }
68
  }
69
 
72
  */
73
  public static function changePassword()
74
  {
 
75
  $old_password = self::parameter( 'old_password' );
76
  $new_password = self::parameter( 'new_password' );
77
 
78
+ $result = Lib\SMS::getInstance()->changePassword( $new_password, $old_password );
79
  if ( $result === false ) {
80
+ wp_send_json_error( array( 'message' => current( Lib\SMS::getInstance()->getErrors() ) ) );
81
  } else {
82
  wp_send_json_success();
83
  }
88
  */
89
  public static function sendTestSms()
90
  {
91
+ $sms = Lib\SMS::getInstance();
92
  $response = array( 'success' => $sms->sendSms(
93
  self::parameter( 'phone_number' ),
94
  'Bookly test SMS.',
110
  */
111
  public static function forgotPassword()
112
  {
113
+ $sms = Lib\SMS::getInstance();
114
  $step = self::parameter( 'step' );
115
  $code = self::parameter( 'code' );
116
  $username = self::parameter( 'username' );
129
  */
130
  public static function getSenderIdsList()
131
  {
132
+ wp_send_json( Lib\SMS::getInstance()->getSenderIdsList() );
 
133
  }
134
 
135
  /**
137
  */
138
  public static function requestSenderId()
139
  {
140
+ $sms = Lib\SMS::getInstance();
141
  $result = $sms->requestSenderId( self::parameter( 'sender_id' ) );
142
  if ( $result === false ) {
143
  wp_send_json_error( array( 'message' => current( $sms->getErrors() ) ) );
144
  } else {
145
+ wp_send_json_success( array( 'request_id' => $result['request_id'] ) );
146
  }
147
  }
148
 
151
  */
152
  public static function cancelSenderId()
153
  {
154
+ $sms = Lib\SMS::getInstance();
155
  $result = $sms->cancelSenderId();
156
  if ( $result === false ) {
157
  wp_send_json_error( array( 'message' => current( $sms->getErrors() ) ) );
165
  */
166
  public static function resetSenderId()
167
  {
168
+ $sms = Lib\SMS::getInstance();
169
  $result = $sms->resetSenderId();
170
  if ( $result === false ) {
171
  wp_send_json_error( array( 'message' => current( $sms->getErrors() ) ) );
179
  */
180
  public static function saveInvoiceData()
181
  {
182
+ $sms = Lib\SMS::getInstance();
183
  $result = $sms->sendInvoiceData( (array) self::parameter( 'invoice' ) );
184
  if ( $result === false ) {
185
  wp_send_json_error( array( 'message' => current( $sms->getErrors() ) ) );
186
  } else {
187
+ wp_send_json_success();
188
  }
189
  }
190
 
191
  /**
192
+ * Login.
193
  */
194
+ public static function smsLogin()
195
  {
196
+ $sms = new Lib\SMS();
197
+ $result = $sms->login( self::parameter( 'username' ), self::parameter( 'password' ) );
198
+ if ( $result ) {
 
 
 
 
199
  wp_send_json_success();
200
+ }
201
+
202
+ wp_send_json_error( array( 'message' => current( $sms->getErrors() ) ) );
203
+ }
204
+
205
+ /**
206
+ * Registration.
207
+ */
208
+ public static function smsRegister()
209
+ {
210
+ $sms = new Lib\SMS();
211
+
212
+ if ( self::parameter( 'accept_tos', false ) ) {
213
+ $response = $sms->register(
214
+ self::parameter( 'username' ),
215
+ self::parameter( 'password' ),
216
+ self::parameter( 'password_repeat' ),
217
+ self::parameter( 'country' )
218
+ );
219
+ if ( $response ) {
220
+ update_option( 'bookly_sms_token', $response['token'] );
221
+
222
+ wp_send_json_success();
223
+ }
224
  } else {
225
+ wp_send_json_error( array( 'message' => __( 'Please accept terms and conditions.', 'bookly' ) ) );
226
+ }
227
+
228
+ wp_send_json_error( array( 'message' => current( $sms->getErrors() ) ) );
229
+ }
230
+
231
+ /**
232
+ * Logout.
233
+ */
234
+ public static function smsLogout()
235
+ {
236
+ $sms = new Lib\SMS();
237
+ $sms->logout();
238
+
239
+ foreach ( get_users( 'role=administrator' ) as $user ) {
240
+ delete_user_meta( $user->ID, 'bookly_dismiss_sms_account_settings_notice' );
241
  }
242
+
243
+ wp_send_json_success();
244
  }
245
 
246
  /**
325
  public static function sendQueue()
326
  {
327
  $queue = self::parameter( 'queue', array() );
328
+ $sms = Lib\SMS::getInstance();
 
329
  foreach ( $queue as $notification ) {
330
  if ( $notification['gateway'] == 'sms' ) {
331
  $sms->sendSms( $notification['address'], $notification['message'], $notification['impersonal'], $notification['type_id'] );
365
  }
366
  }
367
  }
368
+
369
+ /**
370
+ * Apply confirmation code.
371
+ */
372
+ public static function applyConfirmationCode()
373
+ {
374
+ $code = self::parameter( 'code' );
375
+
376
+ $result = Lib\SMS::getInstance()->confirmEmail( $code );
377
+ if ( $result === false ) {
378
+ wp_send_json_error( array( 'message' => current( Lib\SMS::getInstance()->getErrors() ) ) );
379
+ } else {
380
+ wp_send_json( $result );
381
+ }
382
+ }
383
+
384
+ /**
385
+ * Resend confirmation code.
386
+ */
387
+ public static function resendConfirmationCode()
388
+ {
389
+ $result = Lib\SMS::getInstance()->resendConfirmation();
390
+ if ( $result === false ) {
391
+ wp_send_json_error( array( 'message' => current( Lib\SMS::getInstance()->getErrors() ) ) );
392
+ } else {
393
+ wp_send_json( $result );
394
+ }
395
+ }
396
+
397
+
398
+ /**
399
+ * Dismiss confirm email modal.
400
+ */
401
+ public static function dismissConfirmEmail()
402
+ {
403
+ update_user_meta( get_current_user_id(), 'bookly_dismiss_sms_confirm_email', 1 );
404
+
405
+ wp_send_json_success();
406
+ }
407
+
408
+ /**
409
+ * Dismiss notice that shows user where SMS account settings are located
410
+ */
411
+ public static function dismissSmsAccountSettingsNotice()
412
+ {
413
+ update_user_meta( get_current_user_id(), Lib\Plugin::getPrefix() . 'dismiss_sms_account_settings_notice', 1 );
414
+
415
+ wp_send_json_success();
416
+ }
417
  }
backend/modules/sms/Page.php CHANGED
@@ -13,14 +13,79 @@ class Page extends Lib\Base\Component
13
  * Render page.
14
  */
15
  public static function render()
 
 
 
 
 
 
 
 
 
 
 
 
16
  {
17
  self::enqueueStyles( array(
18
- 'frontend' => array_merge(
19
- array( 'css/ladda.min.css', ),
20
- get_option( 'bookly_cst_phone_default_country' ) == 'disabled'
21
- ? array()
22
- : array( 'css/intlTelInput.css' )
 
 
 
 
 
23
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  'backend' => array( 'bootstrap/css/bootstrap.min.css', ),
25
  ) );
26
 
@@ -31,6 +96,7 @@ class Page extends Lib\Base\Component
31
  'js/moment.min.js',
32
  'js/daterangepicker.js' => array( 'jquery' ),
33
  'js/alert.js' => array( 'jquery' ),
 
34
  ),
35
  'frontend' => array_merge(
36
  array(
@@ -42,81 +108,24 @@ class Page extends Lib\Base\Component
42
  : array( 'js/intlTelInput.min.js' => array( 'jquery' ) )
43
  ),
44
  'module' => array(
45
- 'js/sms.js' => array( 'bookly-notifications-list.js', ),
 
46
  'js/notifications-list.js' => array( 'jquery', ),
47
- ),
48
  ) );
49
 
50
- $alert = array( 'success' => array(), 'error' => array() );
51
- $prices = array();
52
- $sms = new Lib\SMS();
53
-
54
- $show_form = get_option( 'bookly_sms_unverified_token' ) ? 'confirm' : 'registration';
55
- $user_login = null;
56
- if ( self::hasParameter( 'form-login' ) ) {
57
- if ( $sms->login( self::parameter( 'username' ), self::parameter( 'password' ) ) === 'ERROR_EMAIL_CONFIRM_REQUIRED' ) {
58
- $user_login = self::parameter( 'username' );
59
- $show_form = 'confirm';
60
- }
61
- } elseif ( self::hasParameter( 'form-logout' ) ) {
62
- $sms->logout();
63
- } elseif ( self::hasParameter( 'form-registration' ) ) {
64
- if ( self::parameter( 'accept_tos', false ) ) {
65
- $success = $sms->register(
66
- self::parameter( 'username' ),
67
- self::parameter( 'password' ),
68
- self::parameter( 'password_repeat' )
69
- );
70
- if ( $success ) {
71
- $user_login = self::parameter( 'username' );
72
- $show_form = 'confirm';
73
- update_option( 'bookly_sms_unverified_token', $success->token );
74
- update_option( 'bookly_sms_unverified_username', $user_login );
75
- } else {
76
- $show_form = 'registration';
77
- }
78
- } else {
79
- $alert['error'][] = __( 'Please accept terms and conditions.', 'bookly' );
80
- }
81
  }
82
- if ( $user_login !== null || self::hasParameter( 'form-registration' ) ) {
83
- $is_logged_in = false;
84
- } else {
85
- $is_logged_in = $sms->loadProfile();
86
  }
87
 
88
- if ( ! $is_logged_in ) {
89
- if ( $response = $sms->getPriceList() ) {
90
- $prices = $response->list;
91
- }
92
- if ( $_SERVER['REQUEST_METHOD'] == 'GET' ) {
93
- // Hide authentication errors on auto login.
94
- $sms->clearErrors();
95
- }
96
- } else {
97
- switch ( self::parameter( 'paypal_result' ) ) {
98
- case 'success':
99
- $alert['success'][] = __( 'Your payment has been accepted for processing.', 'bookly' );
100
- break;
101
- case 'cancel':
102
- $alert['error'][] = __( 'Your payment has been interrupted.', 'bookly' );
103
- break;
104
- }
105
- if ( self::hasParameter( 'tab' ) ) {
106
- switch ( self::parameter( 'auto-recharge' ) ) {
107
- case 'approved':
108
- $alert['success'][] = __( 'Auto-Recharge enabled.', 'bookly' );
109
- break;
110
- case 'declined':
111
- $alert['error'][] = __( 'You declined the Auto-Recharge of your balance.', 'bookly' );
112
- break;
113
- }
114
- }
115
- }
116
- $current_tab = self::hasParameter( 'tab' ) ? self::parameter( 'tab' ) : 'notifications';
117
- $alert['error'] = array_merge( $alert['error'], array_values( $sms->getErrors() ) );
118
- // Services in custom notifications where the recipient is client only.
119
- $only_client = Lib\Entities\Service::query()->whereIn( 'type', array( Lib\Entities\Service::TYPE_COMPOUND, Lib\Entities\Service::TYPE_COLLABORATIVE ) )->fetchCol( 'id' );
120
 
121
  // Prepare tables settings.
122
  $datatables = Lib\Utils\Tables::getSettings( array(
@@ -127,53 +136,50 @@ class Page extends Lib\Base\Component
127
  'sms_sender',
128
  ) );
129
 
130
- wp_localize_script( 'bookly-daterangepicker.js', 'BooklyL10n',
131
- array(
132
- 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
133
- 'smsAlert' => $alert,
134
- 'areYouSure' => __( 'Are you sure?', 'bookly' ),
135
- 'cancel' => __( 'Cancel', 'bookly' ),
136
- 'country' => get_option( 'bookly_cst_phone_default_country' ),
137
- 'current_tab' => $current_tab,
138
- 'mjsDateFormat' => Lib\Utils\DateTime::convertFormat( 'date', Lib\Utils\DateTime::FORMAT_MOMENT_JS ),
139
- 'input_old_password' => __( 'Please enter old password.', 'bookly' ),
140
- 'passwords_no_same' => __( 'Passwords must be the same.', 'bookly' ),
141
- 'intlTelInput' => array(
142
- 'country' => get_option( 'bookly_cst_phone_default_country' ),
143
- 'utils' => is_rtl() ? '' : plugins_url( 'intlTelInput.utils.js', Lib\Plugin::getDirectory() . '/frontend/resources/js/intlTelInput.utils.js' ),
144
- 'enabled' => get_option( 'bookly_cst_phone_default_country' ) != 'disabled',
145
- ),
146
- 'datePicker' => Lib\Utils\DateTime::datePickerOptions(),
147
- 'dateRange' => Lib\Utils\DateTime::dateRangeOptions( array( 'lastMonth' => __( 'Last month', 'bookly' ), ) ),
148
- 'sender_id' => array(
149
- 'sent' => __( 'Sender ID request is sent.', 'bookly' ),
150
- 'set_default' => __( 'Sender ID is reset to default.', 'bookly' ),
151
- ),
152
- 'zeroRecords' => __( 'No records for selected period.', 'bookly' ),
153
- 'zeroRecords2' => __( 'No records.', 'bookly' ),
154
- 'processing' => __( 'Processing...', 'bookly' ),
155
- 'onlyClient' => $only_client,
156
- 'invoice' => array(
157
- 'button' => __( 'Invoice', 'bookly' ),
158
- 'alert' => __( 'To generate an invoice you should fill in company information in Bookly > SMS Notifications > Send invoice.', 'bookly' ),
159
- 'link' => $sms->getInvoiceLink(),
160
- ),
161
- 'state' => array( __( 'Disabled', 'bookly' ), __( 'Enabled', 'bookly' ) ),
162
- 'action' => array( __( 'enable', 'bookly' ), __( 'disable', 'bookly' ) ),
163
- 'edit' => __( 'Edit', 'bookly' ),
164
- 'settingsSaved' => __( 'Settings saved.', 'bookly' ),
165
- 'gateway' => 'sms',
166
- 'datatables' => $datatables
167
- )
168
  );
169
- foreach ( range( 1, 23 ) as $hours ) {
170
- $bookly_ntf_processing_interval_values[] = array( $hours, Lib\Utils\DateTime::secondsToInterval( $hours * HOUR_IN_SECONDS ) );
 
 
 
171
  }
172
 
 
 
173
  // Number of undelivered sms.
174
  $undelivered_count = Lib\SMS::getUndeliveredSmsCount();
175
 
176
- self::renderTemplate( 'index', compact( 'sms', 'is_logged_in', 'prices', 'bookly_ntf_processing_interval_values', 'undelivered_count', 'user_login', 'show_form', 'datatables' ) );
177
  }
178
 
179
  /**
@@ -181,13 +187,20 @@ class Page extends Lib\Base\Component
181
  */
182
  public static function addBooklyMenuItem()
183
  {
184
- $sms = __( 'SMS Notifications', 'bookly' );
185
- $count = Lib\SMS::getUndeliveredSmsCount();
 
 
 
 
 
 
 
186
 
187
  add_submenu_page(
188
  'bookly-menu',
189
  $sms,
190
- $count ? sprintf( '%s <span class="update-plugins count-%d"><span class="update-count">%d</span></span>', $sms, $count, $count ) : $sms,
191
  Lib\Utils\Common::getRequiredCapability(),
192
  self::pageSlug(),
193
  function () { Page::render(); }
13
  * Render page.
14
  */
15
  public static function render()
16
+ {
17
+ if ( Lib\SMS::getInstance()->loadProfile() ) {
18
+ return self::renderMain();
19
+ } else {
20
+ return self::renderRegistration();
21
+ }
22
+ }
23
+
24
+ /**
25
+ * Render registration page
26
+ */
27
+ protected static function renderRegistration()
28
  {
29
  self::enqueueStyles( array(
30
+ 'frontend' => array( 'css/ladda.min.css', 'css/intlTelInput.css' ),
31
+ 'backend' => array( 'bootstrap/css/bootstrap.min.css', ),
32
+ ) );
33
+
34
+ self::enqueueScripts( array(
35
+ 'backend' => array(
36
+ 'bootstrap/js/bootstrap.min.js' => array( 'jquery' ),
37
+ 'js/datatables.min.js' => array( 'jquery' ),
38
+ 'js/alert.js' => array( 'jquery' ),
39
+ 'js/select2.min.js' => array( 'jquery' ),
40
  ),
41
+ 'frontend' => array(
42
+ 'js/spin.min.js' => array( 'jquery' ),
43
+ 'js/ladda.min.js' => array( 'jquery' ),
44
+ ),
45
+ 'module' => array(
46
+ 'js/sms-common.js' => array( 'jquery' ),
47
+ 'js/sms-registration.js' => array( 'bookly-sms-common.js' ),
48
+ )
49
+ ) );
50
+
51
+ $promotions = get_option( 'bookly_sms_promotions', array() );
52
+ if ( isset ( $promotions['registration'] ) ) {
53
+ $promotion = $promotions['registration'];
54
+ $locale = Lib\Config::getLocale();
55
+ $registration_promotion_texts = isset ( $promotion['texts'][ $locale ] ) ?
56
+ array( 'form' => $promotion['texts'][ $locale ]['form'], 'button' => $promotion['texts'][ $locale ]['button'] ) :
57
+ array( 'form' => $promotion['texts']['en']['form'], 'button' => $promotion['texts']['en']['button'] );
58
+ } else {
59
+ $registration_promotion_texts = array( 'form' => null, 'button' => null );
60
+ }
61
+
62
+ // Prepare tables settings.
63
+ $datatables = Lib\Utils\Tables::getSettings( array(
64
+ 'sms_prices',
65
+ ) );
66
+
67
+ wp_localize_script( 'bookly-sms-common.js', 'BooklyL10n',
68
+ array(
69
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
70
+ 'passwords_no_match' => __( 'Passwords don\'t match', 'bookly' ),
71
+ 'noResults' => __( 'No records.', 'bookly' ),
72
+ 'processing' => __( 'Processing...', 'bookly' ),
73
+ 'datatables' => $datatables
74
+ )
75
+ );
76
+
77
+ self::renderTemplate( 'index_registration', compact( 'datatables', 'registration_promotion_texts' ) );
78
+ }
79
+
80
+ /**
81
+ * Render main page (logged in)
82
+ */
83
+ protected static function renderMain()
84
+ {
85
+ $sms = Lib\SMS::getInstance();
86
+
87
+ self::enqueueStyles( array(
88
+ 'frontend' => array( 'css/ladda.min.css', 'css/intlTelInput.css' ),
89
  'backend' => array( 'bootstrap/css/bootstrap.min.css', ),
90
  ) );
91
 
96
  'js/moment.min.js',
97
  'js/daterangepicker.js' => array( 'jquery' ),
98
  'js/alert.js' => array( 'jquery' ),
99
+ 'js/select2.min.js' => array( 'jquery' ),
100
  ),
101
  'frontend' => array_merge(
102
  array(
108
  : array( 'js/intlTelInput.min.js' => array( 'jquery' ) )
109
  ),
110
  'module' => array(
111
+ 'js/sms-common.js' => array( 'jquery' ),
112
+ 'js/sms.js' => array( 'bookly-sms-common.js', ),
113
  'js/notifications-list.js' => array( 'jquery', ),
114
+ )
115
  ) );
116
 
117
+ if ( ! $sms->getCountry() ) {
118
+ self::enqueueScripts( array(
119
+ 'module' => array( 'js/setup-country.js' => array( 'bookly-sms-common.js', ) )
120
+ ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  }
122
+ if ( ! $sms->getEmailConfirmed() ) {
123
+ self::enqueueScripts( array(
124
+ 'module' => array( 'js/confirm-email.js' => array( 'jquery', ) )
125
+ ) );
126
  }
127
 
128
+ $current_tab = self::hasParameter( 'tab' ) ? self::parameter( 'tab' ) : 'notifications';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
 
130
  // Prepare tables settings.
131
  $datatables = Lib\Utils\Tables::getSettings( array(
136
  'sms_sender',
137
  ) );
138
 
139
+ $l10n = array(
140
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
141
+ 'areYouSure' => __( 'Are you sure?', 'bookly' ),
142
+ 'country' => $sms->getCountry(),
143
+ 'current_tab' => $current_tab,
144
+ 'intlTelInput' => array(
145
+ 'country' => get_option( 'bookly_cst_phone_default_country' ),
146
+ 'utils' => is_rtl() ? '' : plugins_url( 'intlTelInput.utils.js', Lib\Plugin::getDirectory() . '/frontend/resources/js/intlTelInput.utils.js' ),
147
+ 'enabled' => get_option( 'bookly_cst_phone_default_country' ) != 'disabled',
148
+ ),
149
+ 'datePicker' => Lib\Utils\DateTime::datePickerOptions(),
150
+ 'dateRange' => Lib\Utils\DateTime::dateRangeOptions( array( 'lastMonth' => __( 'Last month', 'bookly' ), ) ),
151
+ 'sender_id' => array(
152
+ 'sent' => __( 'Sender ID request is sent.', 'bookly' ),
153
+ 'set_default' => __( 'Sender ID is reset to default.', 'bookly' ),
154
+ ),
155
+ 'zeroRecords' => __( 'No records for selected period.', 'bookly' ),
156
+ 'noResults' => __( 'No records.', 'bookly' ),
157
+ 'processing' => __( 'Processing...', 'bookly' ),
158
+ 'invoice' => array(
159
+ 'button' => __( 'Invoice', 'bookly' ),
160
+ 'alert' => __( 'To generate an invoice you should fill in company information in Bookly SMS Account settings -> Invoice', 'bookly' ),
161
+ 'link' => $sms->getInvoiceLink(),
162
+ ),
163
+ 'state' => array( __( 'Disabled', 'bookly' ), __( 'Enabled', 'bookly' ) ),
164
+ 'action' => array( __( 'enable', 'bookly' ), __( 'disable', 'bookly' ) ),
165
+ 'edit' => __( 'Edit', 'bookly' ),
166
+ 'settingsSaved' => __( 'Settings saved.', 'bookly' ),
167
+ 'gateway' => 'sms',
168
+ 'datatables' => $datatables
 
 
 
 
 
 
 
 
169
  );
170
+ if ( ! $sms->getEmailConfirmed() ) {
171
+ $l10n += array(
172
+ 'confirm_email_code_resent' => __( 'An email containing the confirmation code has been sent to your email address.', 'bookly' ),
173
+ 'show_confirm_email_dialog' => ! get_user_meta( get_current_user_id(), 'bookly_dismiss_sms_confirm_email', true ),
174
+ );
175
  }
176
 
177
+ wp_localize_script( 'bookly-daterangepicker.js', 'BooklyL10n', $l10n );
178
+
179
  // Number of undelivered sms.
180
  $undelivered_count = Lib\SMS::getUndeliveredSmsCount();
181
 
182
+ self::renderTemplate( 'index', compact( 'sms', 'undelivered_count', 'datatables' ) );
183
  }
184
 
185
  /**
187
  */
188
  public static function addBooklyMenuItem()
189
  {
190
+ $sms = __( 'SMS Notifications', 'bookly' );
191
+
192
+ $promotion = Lib\SMS::getPromotionForNotice();
193
+ if ( $promotion ) {
194
+ $title = sprintf( '%s <span class="update-plugins"><span class="update-count">$</span></span>', $sms );
195
+ } else {
196
+ $count = Lib\SMS::getUndeliveredSmsCount();
197
+ $title = $count ? sprintf( '%s <span class="update-plugins"><span class="update-count">%d</span></span>', $sms, $count ) : $sms;
198
+ }
199
 
200
  add_submenu_page(
201
  'bookly-menu',
202
  $sms,
203
+ $title,
204
  Lib\Utils\Common::getRequiredCapability(),
205
  self::pageSlug(),
206
  function () { Page::render(); }
backend/modules/sms/resources/js/confirm-email.js ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function ($) {
2
+ 'use strict';
3
+ let $modal = $('#bookly-confirm-email-modal'),
4
+ $code = $('#bookly-confirmation-code', $modal),
5
+ $resend_button = $('.bookly-js-resend-confirmation', $modal),
6
+ $apply_button = $('#bookly-apply-confirmation-code', $modal),
7
+ $later_button = $('.modal-footer button[data-dismiss="bookly-modal"]', $modal),
8
+ $open_modal_button = $('#bookly-open-email-confirm'),
9
+ $settings_button = $('#bookly-open-account-settings');
10
+
11
+ // Apply code.
12
+ $apply_button.on('click', function (e) {
13
+ e.preventDefault();
14
+ let ladda = Ladda.create(this);
15
+ ladda.start();
16
+ $.post(
17
+ ajaxurl,
18
+ {
19
+ action: 'bookly_apply_confirmation_code',
20
+ code: $code.val(),
21
+ csrf_token: BooklyL10n.csrfToken
22
+ },
23
+ function (response) {
24
+ if (response.success) {
25
+ $open_modal_button.hide();
26
+ $settings_button.removeClass('btn-danger').addClass('btn-primary').find('i').removeClass('fa-user-slash').addClass('fa-user');
27
+ $modal.booklyModal('hide');
28
+ } else {
29
+ booklyAlert({error: [response.data.message]});
30
+ }
31
+ ladda.stop();
32
+ });
33
+ });
34
+
35
+ // Resend code.
36
+ $resend_button.on('click', function (e) {
37
+ e.preventDefault();
38
+ $.post(
39
+ ajaxurl,
40
+ {
41
+ action: 'bookly_resend_confirmation_code',
42
+ csrf_token: BooklyL10n.csrfToken
43
+ },
44
+ function (response) {
45
+ if (response.success) {
46
+ booklyAlert({success: [BooklyL10n.confirm_email_code_resent]})
47
+ } else {
48
+ booklyAlert({error: [response.data.message]});
49
+ }
50
+ });
51
+ });
52
+
53
+ // I'll do it later button.
54
+ $later_button.on('click', function (e) {
55
+ $.post(
56
+ ajaxurl,
57
+ {
58
+ action: 'bookly_dismiss_confirm_email',
59
+ csrf_token: BooklyL10n.csrfToken
60
+ });
61
+ });
62
+
63
+ // Open table settings modal.
64
+ $open_modal_button.off().on('click', function () {
65
+ $modal.booklyModal('show');
66
+ });
67
+ if (BooklyL10n.show_confirm_email_dialog) {
68
+ $modal.booklyModal('show');
69
+ }
70
+ });
backend/modules/sms/resources/js/notifications-list.js CHANGED
@@ -48,7 +48,7 @@ jQuery(function($) {
48
  orderable: false,
49
  responsivePriority: 1,
50
  render: function (data, type, row, meta) {
51
- return ' <button type="button" class="btn btn-default ladda-button" data-action="edit" data-spinner-size="40" data-style="zoom-in" data-spinner-color="#666666"><i class="far fa-fw fa-edit mr-1"></i><span class="ladda-label">' + BooklyL10n.edit + '…</span></a>';
52
  }
53
  });
54
  columns.push({
@@ -86,7 +86,7 @@ jQuery(function($) {
86
  columns : columns,
87
  dom : "<'row'<'col-sm-12'tr>><'row float-left mt-3'<'col-sm-12'p>>",
88
  language : {
89
- zeroRecords: BooklyL10n.zeroRecords,
90
  processing : BooklyL10n.processing
91
  }
92
  }).on('click', '[data-action=toggle-active]', function (e) {
@@ -227,6 +227,17 @@ jQuery(function($) {
227
  }
228
  });
229
 
 
 
 
 
 
 
 
 
 
 
 
230
  $btnTestEmail
231
  .on('click', function () {
232
  $modalTestEmail.booklyModal()
48
  orderable: false,
49
  responsivePriority: 1,
50
  render: function (data, type, row, meta) {
51
+ return ' <button type="button" class="btn btn-default ladda-button" data-action="edit" data-spinner-size="40" data-style="zoom-in" data-spinner-color="#666666"><i class="far fa-fw fa-edit mr-1"></i><span class="ladda-label">' + BooklyL10n.edit + '…</span></button>';
52
  }
53
  });
54
  columns.push({
86
  columns : columns,
87
  dom : "<'row'<'col-sm-12'tr>><'row float-left mt-3'<'col-sm-12'p>>",
88
  language : {
89
+ zeroRecords: BooklyL10n.noResults,
90
  processing : BooklyL10n.processing
91
  }
92
  }).on('click', '[data-action=toggle-active]', function (e) {
227
  }
228
  });
229
 
230
+ $('[href=#bookly-js-auto]').click(
231
+ function () {
232
+ if (this.classList.contains("toggle")) {
233
+ $(this).removeClass("border rounded mb-3 toggle");
234
+ $(this).addClass("border-light rounded-top bg-light");
235
+ } else {
236
+ $(this).removeClass("border-light rounded-top bg-light")
237
+ $(this).addClass("border rounded mb-3 toggle");
238
+ }
239
+ });
240
+
241
  $btnTestEmail
242
  .on('click', function () {
243
  $modalTestEmail.booklyModal()
backend/modules/sms/resources/js/setup-country.js ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function($) {
2
+ 'use strict';
3
+
4
+ const
5
+ $dialog = $('#bookly-setup-country'),
6
+ $country = $('#bookly-s-country'),
7
+ $setBtn = $('#bookly-set-country'),
8
+ settings = {
9
+ $country: $('#bookly-country'),
10
+ $invoiceCountry: $('.bookly-js-invoice-country .bookly-js-label')
11
+ }
12
+ ;
13
+
14
+ $country.booklySelectCountry({dropdownParent: $dialog});
15
+ $.get('https://ipinfo.io', function() {}, 'jsonp').always(function(resp) {
16
+ const countryCode = (resp && resp.country) ? resp.country : '';
17
+ $country.val(countryCode.toLowerCase()).trigger('change');
18
+ });
19
+
20
+ /**
21
+ * Setup country dialog
22
+ */
23
+ $dialog.booklyModal('show');
24
+ $setBtn.on('click', function () {
25
+ const ladda = Ladda.create(this);
26
+ ladda.start();
27
+ const country = $country.val();
28
+ $.ajax({
29
+ type: 'POST',
30
+ url: ajaxurl,
31
+ data: {
32
+ action: 'bookly_change_country',
33
+ csrf_token: BooklyL10n.csrfToken,
34
+ country: country
35
+ },
36
+ dataType: 'json',
37
+ success: function (response) {
38
+ if (response.success) {
39
+ booklyAlert({success: [BooklyL10n.settingsSaved]});
40
+ BooklyL10n.country = country;
41
+ if (BooklyRechargeDialogL10n) {
42
+ BooklyRechargeDialogL10n.country = country;
43
+ }
44
+ settings.$country.val(country).trigger('change');
45
+ settings.$invoiceCountry.html($country.select2('data')[0].text);
46
+ if (response.auto_recharge === 'disabled') {
47
+ $(document.body).trigger('bookly.auto-recharge.toggle', [false]);
48
+ }
49
+ $dialog.booklyModal('hide');
50
+ } else {
51
+ if (response.data && response.data.message) {
52
+ booklyAlert({error: [response.data.message]});
53
+ }
54
+ }
55
+ }
56
+ }).always(ladda.stop);
57
+ });
58
+ });
backend/modules/sms/resources/js/sms-common.js ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function($) {
2
+ 'use strict';
3
+
4
+ /**
5
+ * Select country
6
+ *
7
+ * @param opts
8
+ * @returns {*}
9
+ */
10
+ $.fn.booklySelectCountry = function (opts) {
11
+ const formatCountry = function (item) {
12
+ return $('<span class="intl-tel-input"><div class="d-inline-block mr-2 iti-flag ' + item.id + '"></div>' + item.text + '</span>');
13
+ };
14
+ opts = $.extend({
15
+ width: '100%',
16
+ theme: 'bootstrap4',
17
+ dropdownParent: '#bookly-tbs',
18
+ language: {
19
+ noResults: function() { return BooklyL10n.noResults; }
20
+ },
21
+ templateResult: formatCountry,
22
+ templateSelection: formatCountry,
23
+ data: [{id:"af",text:"Afghanistan (‫افغانستان‬‎)"},{id:"al",text:"Albania (Shqipëri)"},{id:"dz",text:"Algeria (‫الجزائر‬‎)"},{id:"as",text:"American Samoa"},{id:"ad",text:"Andorra"},{id:"ao",text:"Angola"},{id:"ai",text:"Anguilla"},{id:"ag",text:"Antigua and Barbuda"},{id:"ar",text:"Argentina"},{id:"am",text:"Armenia (Հայաստան)"},{id:"aw",text:"Aruba"},{id:"au",text:"Australia"},{id:"at",text:"Austria (Österreich)"},{id:"az",text:"Azerbaijan (Azərbaycan)"},{id:"bs",text:"Bahamas"},{id:"bh",text:"Bahrain (‫البحرين‬‎)"},{id:"bd",text:"Bangladesh (বাংলাদেশ)"},{id:"bb",text:"Barbados"},{id:"by",text:"Belarus (Беларусь)"},{id:"be",text:"Belgium (België)"},{id:"bz",text:"Belize"},{id:"bj",text:"Benin (Bénin)"},{id:"bm",text:"Bermuda"},{id:"bt",text:"Bhutan (འབྲུག)"},{id:"bo",text:"Bolivia"},{id:"ba",text:"Bosnia and Herzegovina (Босна и Херцеговина)"},{id:"bw",text:"Botswana"},{id:"br",text:"Brazil (Brasil)"},{id:"io",text:"British Indian Ocean Territory"},{id:"vg",text:"British Virgin Islands"},{id:"bn",text:"Brunei"},{id:"bg",text:"Bulgaria (България)"},{id:"bf",text:"Burkina Faso"},{id:"bi",text:"Burundi (Uburundi)"},{id:"kh",text:"Cambodia (កម្ពុជា)"},{id:"cm",text:"Cameroon (Cameroun)"},{id:"ca",text:"Canada"},{id:"cv",text:"Cape Verde (Kabu Verdi)"},{id:"bq",text:"Caribbean Netherlands"},{id:"ky",text:"Cayman Islands"},{id:"cf",text:"Central African Republic (République centrafricaine)"},{id:"td",text:"Chad (Tchad)"},{id:"cl",text:"Chile"},{id:"cn",text:"China (中国)"},{id:"cx",text:"Christmas Island"},{id:"cc",text:"Cocos (Keeling) Islands"},{id:"co",text:"Colombia"},{id:"km",text:"Comoros (‫جزر القمر‬‎)"},{id:"cd",text:"Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)"},{id:"cg",text:"Congo (Republic) (Congo-Brazzaville)"},{id:"ck",text:"Cook Islands"},{id:"cr",text:"Costa Rica"},{id:"ci",text:"Côte d’Ivoire"},{id:"hr",text:"Croatia (Hrvatska)"},{id:"cu",text:"Cuba"},{id:"cw",text:"Curaçao"},{id:"cy",text:"Cyprus (Κύπρος)"},{id:"cz",text:"Czech Republic (Česká republika)"},{id:"dk",text:"Denmark (Danmark)"},{id:"dj",text:"Djibouti"},{id:"dm",text:"Dominica"},{id:"do",text:"Dominican Republic (República Dominicana)"},{id:"ec",text:"Ecuador"},{id:"eg",text:"Egypt (‫مصر‬‎)"},{id:"sv",text:"El Salvador"},{id:"gq",text:"Equatorial Guinea (Guinea Ecuatorial)"},{id:"er",text:"Eritrea"},{id:"ee",text:"Estonia (Eesti)"},{id:"et",text:"Ethiopia"},{id:"fk",text:"Falkland Islands (Islas Malvinas)"},{id:"fo",text:"Faroe Islands (Føroyar)"},{id:"fj",text:"Fiji"},{id:"fi",text:"Finland (Suomi)"},{id:"fr",text:"France"},{id:"gf",text:"French Guiana (Guyane française)"},{id:"pf",text:"French Polynesia (Polynésie française)"},{id:"ga",text:"Gabon"},{id:"gm",text:"Gambia"},{id:"ge",text:"Georgia (საქართველო)"},{id:"de",text:"Germany (Deutschland)"},{id:"gh",text:"Ghana (Gaana)"},{id:"gi",text:"Gibraltar"},{id:"gr",text:"Greece (Ελλάδα)"},{id:"gl",text:"Greenland (Kalaallit Nunaat)"},{id:"gd",text:"Grenada"},{id:"gp",text:"Guadeloupe"},{id:"gu",text:"Guam"},{id:"gt",text:"Guatemala"},{id:"gg",text:"Guernsey"},{id:"gn",text:"Guinea (Guinée)"},{id:"gw",text:"Guinea-Bissau (Guiné Bissau)"},{id:"gy",text:"Guyana"},{id:"ht",text:"Haiti"},{id:"hn",text:"Honduras"},{id:"hk",text:"Hong Kong (香港)"},{id:"hu",text:"Hungary (Magyarország)"},{id:"is",text:"Iceland (Ísland)"},{id:"in",text:"India (भारत)"},{id:"id",text:"Indonesia"},{id:"ir",text:"Iran (‫ایران‬‎)"},{id:"iq",text:"Iraq (‫العراق‬‎)"},{id:"ie",text:"Ireland"},{id:"im",text:"Isle of Man"},{id:"il",text:"Israel (‫ישראל‬‎)"},{id:"it",text:"Italy (Italia)"},{id:"jm",text:"Jamaica"},{id:"jp",text:"Japan (日本)"},{id:"je",text:"Jersey"},{id:"jo",text:"Jordan (‫الأردن‬‎)"},{id:"kz",text:"Kazakhstan (Казахстан)"},{id:"ke",text:"Kenya"},{id:"ki",text:"Kiribati"},{id:"xk",text:"Kosovo"},{id:"kw",text:"Kuwait (‫الكويت‬‎)"},{id:"kg",text:"Kyrgyzstan (Кыргызстан)"},{id:"la",text:"Laos (ລາວ)"},{id:"lv",text:"Latvia (Latvija)"},{id:"lb",text:"Lebanon (‫لبنان‬‎)"},{id:"ls",text:"Lesotho"},{id:"lr",text:"Liberia"},{id:"ly",text:"Libya (‫ليبيا‬‎)"},{id:"li",text:"Liechtenstein"},{id:"lt",text:"Lithuania (Lietuva)"},{id:"lu",text:"Luxembourg"},{id:"mo",text:"Macau (澳門)"},{id:"mk",text:"Macedonia (FYROM) (Македонија)"},{id:"mg",text:"Madagascar (Madagasikara)"},{id:"mw",text:"Malawi"},{id:"my",text:"Malaysia"},{id:"mv",text:"Maldives"},{id:"ml",text:"Mali"},{id:"mt",text:"Malta"},{id:"mh",text:"Marshall Islands"},{id:"mq",text:"Martinique"},{id:"mr",text:"Mauritania (‫موريتانيا‬‎)"},{id:"mu",text:"Mauritius (Moris)"},{id:"yt",text:"Mayotte"},{id:"mx",text:"Mexico (México)"},{id:"fm",text:"Micronesia"},{id:"md",text:"Moldova (Republica Moldova)"},{id:"mc",text:"Monaco"},{id:"mn",text:"Mongolia (Монгол)"},{id:"me",text:"Montenegro (Crna Gora)"},{id:"ms",text:"Montserrat"},{id:"ma",text:"Morocco (‫المغرب‬‎)"},{id:"mz",text:"Mozambique (Moçambique)"},{id:"mm",text:"Myanmar (Burma) (မြန်မာ)"},{id:"na",text:"Namibia (Namibië)"},{id:"nr",text:"Nauru"},{id:"np",text:"Nepal (नेपाल)"},{id:"nl",text:"Netherlands (Nederland)"},{id:"nc",text:"New Caledonia (Nouvelle-Calédonie)"},{id:"nz",text:"New Zealand"},{id:"ni",text:"Nicaragua"},{id:"ne",text:"Niger (Nijar)"},{id:"ng",text:"Nigeria"},{id:"nu",text:"Niue"},{id:"nf",text:"Norfolk Island"},{id:"kp",text:"North Korea (조선 민주주의 인민 공화국)"},{id:"mp",text:"Northern Mariana Islands"},{id:"no",text:"Norway (Norge)"},{id:"om",text:"Oman (‫عُمان‬‎)"},{id:"pk",text:"Pakistan (‫پاکستان‬‎)"},{id:"pw",text:"Palau"},{id:"ps",text:"Palestine (‫فلسطين‬‎)"},{id:"pa",text:"Panama (Panamá)"},{id:"pg",text:"Papua New Guinea"},{id:"py",text:"Paraguay"},{id:"pe",text:"Peru (Perú)"},{id:"ph",text:"Philippines"},{id:"pl",text:"Poland (Polska)"},{id:"pt",text:"Portugal"},{id:"pr",text:"Puerto Rico"},{id:"qa",text:"Qatar (‫قطر‬‎)"},{id:"re",text:"Réunion (La Réunion)"},{id:"ro",text:"Romania (România)"},{id:"ru",text:"Russia (Россия)"},{id:"rw",text:"Rwanda"},{id:"bl",text:"Saint Barthélemy"},{id:"sh",text:"Saint Helena"},{id:"kn",text:"Saint Kitts and Nevis"},{id:"lc",text:"Saint Lucia"},{id:"mf",text:"Saint Martin (Saint-Martin (partie française))"},{id:"pm",text:"Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)"},{id:"vc",text:"Saint Vincent and the Grenadines"},{id:"ws",text:"Samoa"},{id:"sm",text:"San Marino"},{id:"st",text:"São Tomé and Príncipe (São Tomé e Príncipe)"},{id:"sa",text:"Saudi Arabia (‫المملكة العربية السعودية‬‎)"},{id:"sn",text:"Senegal (Sénégal)"},{id:"rs",text:"Serbia (Србија)"},{id:"sc",text:"Seychelles"},{id:"sl",text:"Sierra Leone"},{id:"sg",text:"Singapore"},{id:"sx",text:"Sint Maarten"},{id:"sk",text:"Slovakia (Slovensko)"},{id:"si",text:"Slovenia (Slovenija)"},{id:"sb",text:"Solomon Islands"},{id:"so",text:"Somalia (Soomaaliya)"},{id:"za",text:"South Africa"},{id:"kr",text:"South Korea (대한민국)"},{id:"ss",text:"South Sudan (‫جنوب السودان‬‎)"},{id:"es",text:"Spain (España)"},{id:"lk",text:"Sri Lanka (ශ්‍රී ලංකාව)"},{id:"sd",text:"Sudan (‫السودان‬‎)"},{id:"sr",text:"Suriname"},{id:"sj",text:"Svalbard and Jan Mayen"},{id:"sz",text:"Swaziland"},{id:"se",text:"Sweden (Sverige)"},{id:"ch",text:"Switzerland (Schweiz)"},{id:"sy",text:"Syria (‫سوريا‬‎)"},{id:"tw",text:"Taiwan (台灣)"},{id:"tj",text:"Tajikistan"},{id:"tz",text:"Tanzania"},{id:"th",text:"Thailand (ไทย)"},{id:"tl",text:"Timor-Leste"},{id:"tg",text:"Togo"},{id:"tk",text:"Tokelau"},{id:"to",text:"Tonga"},{id:"tt",text:"Trinidad and Tobago"},{id:"tn",text:"Tunisia (‫تونس‬‎)"},{id:"tr",text:"Turkey (Türkiye)"},{id:"tm",text:"Turkmenistan"},{id:"tc",text:"Turks and Caicos Islands"},{id:"tv",text:"Tuvalu"},{id:"vi",text:"U.S. Virgin Islands"},{id:"ug",text:"Uganda"},{id:"ua",text:"Ukraine (Україна)"},{id:"ae",text:"United Arab Emirates (‫الإمارات العربية المتحدة‬‎)"},{id:"gb",text:"United Kingdom"},{id:"us",text:"United States"},{id:"uy",text:"Uruguay"},{id:"uz",text:"Uzbekistan (Oʻzbekiston)"},{id:"vu",text:"Vanuatu"},{id:"va",text:"Vatican City (Città del Vaticano)"},{id:"ve",text:"Venezuela"},{id:"vn",text:"Vietnam (Việt Nam)"},{id:"wf",text:"Wallis and Futuna (Wallis-et-Futuna)"},{id:"eh",text:"Western Sahara (‫الصحراء الغربية‬‎)"},{id:"ye",text:"Yemen (‫اليمن‬‎)"},{id:"zm",text:"Zambia"},{id:"zw",text:"Zimbabwe"},{id:"ax",text:"Åland Islands"}]
24
+ }, opts);
25
+
26
+ return this.select2(opts);
27
+ };
28
+
29
+ /**
30
+ * Prices list
31
+ *
32
+ * @param opts
33
+ */
34
+ $.fn.booklySmsPrices = function (opts) {
35
+ let columns = [];
36
+
37
+ $.each(BooklyL10n.datatables.sms_prices.settings.columns, function (column, show) {
38
+ if (show) {
39
+ switch (column) {
40
+ case 'country_iso_code':
41
+ columns.push({
42
+ data: column,
43
+ className: 'align-middle',
44
+ render: function ( data, type, row, meta ) {
45
+ return '<div class="iti-flag ' + data + '"></div>';
46
+ }
47
+ });
48
+ break;
49
+ case 'price':
50
+ columns.push({
51
+ data: column,
52
+ className: "text-right",
53
+ render: function ( data, type, row, meta ) {
54
+ return '$' + data.replace(/0+$/, '');
55
+ }
56
+ });
57
+ break;
58
+ case 'price_alt':
59
+ columns.push({
60
+ data: column,
61
+ className: "text-right",
62
+ render: function ( data, type, row, meta ) {
63
+ if (row.price_alt === '') {
64
+ return '-';
65
+ } else {
66
+ return '$' + data.replace(/0+$/, '');
67
+ }
68
+ }
69
+ });
70
+ break;
71
+ default:
72
+ columns.push({data: column});
73
+ break;
74
+ }
75
+ }
76
+ });
77
+ if (columns.length) {
78
+ this.DataTable({
79
+ ordering: false,
80
+ paging: false,
81
+ info: false,
82
+ searching: false,
83
+ processing: true,
84
+ responsive: true,
85
+ ajax: {
86
+ url: ajaxurl,
87
+ data: {action: 'bookly_get_price_list', csrf_token: BooklyL10n.csrfToken},
88
+ dataSrc: 'list'
89
+ },
90
+ columns: columns,
91
+ language: {
92
+ zeroRecords: BooklyL10n.noResults,
93
+ processing: BooklyL10n.processing
94
+ }
95
+ });
96
+ }
97
+
98
+ return this;
99
+ };
100
+ });
backend/modules/sms/resources/js/sms-registration.js ADDED
@@ -0,0 +1,158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function($) {
2
+ 'use strict';
3
+
4
+ let $form_forgot = $('.bookly-js-forgot-form'),
5
+ $form_register = $('.bookly-js-register-form'),
6
+ $form_login = $('.bookly-js-login-form')
7
+ ;
8
+
9
+ $('.bookly-js-show-register-form').on('click', function (e) {
10
+ e.preventDefault();
11
+ $form_login.hide();
12
+ $form_register.show();
13
+ $form_forgot.hide();
14
+ });
15
+
16
+ $('#bookly-r-country').booklySelectCountry();
17
+ $.get('https://ipinfo.io', function() {}, 'jsonp').always(function(resp) {
18
+ const countryCode = (resp && resp.country) ? resp.country : '';
19
+ $('#bookly-r-country').val(countryCode.toLowerCase()).trigger('change');
20
+ });
21
+
22
+ $('.bookly-js-show-login-form').on('click', function (e) {
23
+ e.preventDefault();
24
+ $form_login.show();
25
+ $form_register.hide();
26
+ $form_forgot.hide();
27
+ });
28
+
29
+ $('.bookly-js-show-forgot-form').on('click', function (e) {
30
+ e.preventDefault();
31
+ $form_forgot.show();
32
+ $form_login.hide();
33
+ $form_register.hide();
34
+ });
35
+
36
+ $('.bookly-js-form-forgot-next').on('click', function (e) {
37
+ e.preventDefault();
38
+ var $btn = $(this),
39
+ $form = $(this).parents('form'),
40
+ $code = $form.find('input[name="code"]'),
41
+ $pwd = $form.find('input[name="password"]'),
42
+ $username = $form.find('input[name="username"]'),
43
+ $pwd_repeat = $form.find('input[name="password_repeat"]'),
44
+ data = { action: 'bookly_forgot_password', step: $btn.data('step'), username: $username.val(), csrf_token : BooklyL10n.csrfToken };
45
+ switch ($(this).data('step')) {
46
+ case 0:
47
+ forgot_helper( data, function() {
48
+ $username.parent().addClass('hidden');
49
+ $code.parent().removeClass('hidden');
50
+ $btn.data('step', 1);
51
+ });
52
+ break;
53
+ case 1:
54
+ data.code = $code.val();
55
+ forgot_helper(data, function() {
56
+ $code.parent().addClass('hidden');
57
+ $pwd.parent().removeClass('hidden');
58
+ $pwd_repeat.parent().removeClass('hidden');
59
+ $btn.data('step', 2);
60
+ });
61
+ break;
62
+ case 2:
63
+ data.code = $code.val();
64
+ data.password = $pwd.val();
65
+ data.password_repeat = $pwd_repeat.val();
66
+ if (data.password === data.password_repeat && data.password !== '') {
67
+ forgot_helper(data, function() {
68
+ $('.bookly-js-show-login-form').trigger('click');
69
+ $btn.data('step', 0);
70
+ $username.parent().removeClass('hidden');
71
+ $pwd.parent().addClass('hidden');
72
+ $pwd_repeat.parent().addClass('hidden');
73
+ $form.trigger('reset');
74
+ });
75
+ } else {
76
+ booklyAlert({error: [BooklyL10n.passwords_no_same]});
77
+ }
78
+ break;
79
+ }
80
+ });
81
+
82
+ $form_login.on('submit', function (e) {
83
+ e.preventDefault();
84
+ let ladda = Ladda.create(this.elements.submit);
85
+ ladda.start();
86
+ $.ajax({
87
+ method: 'POST',
88
+ url: ajaxurl,
89
+ data: {
90
+ action: 'bookly_sms_login',
91
+ username: $('.bookly-js-login-form [name="username"]').val(),
92
+ password: $('.bookly-js-login-form [name="password"]').val(),
93
+ csrf_token : BooklyL10n.csrfToken,
94
+ },
95
+ dataType: 'json',
96
+ success: function (response) {
97
+ if (response.success) {
98
+ window.location.reload();
99
+ } else {
100
+ if (response.data && response.data.message) {
101
+ booklyAlert({error: [response.data.message]});
102
+ }
103
+ ladda.stop();
104
+ }
105
+ }
106
+ });
107
+ });
108
+
109
+ $form_register.on('submit', function (e) {
110
+ e.preventDefault();
111
+ let ladda = Ladda.create(this.elements['form-registration']);
112
+ ladda.start();
113
+ $.ajax({
114
+ method: 'POST',
115
+ url: ajaxurl,
116
+ data: {
117
+ action: 'bookly_sms_register',
118
+ username: $('.bookly-js-register-form [name="username"]').val(),
119
+ password: $('.bookly-js-register-form [name="password"]').val(),
120
+ password_repeat: $('.bookly-js-register-form [name="password_repeat"]').val(),
121
+ country: $('.bookly-js-register-form [name="country"]').val(),
122
+ accept_tos: $('.bookly-js-register-form [name="accept_tos"]').prop('checked'),
123
+ csrf_token : BooklyL10n.csrfToken,
124
+ },
125
+ dataType: 'json',
126
+ success: function (response) {
127
+ if (response.success) {
128
+ window.location.reload();
129
+ } else {
130
+ if (response.data && response.data.message) {
131
+ booklyAlert({error: [response.data.message]});
132
+ }
133
+ ladda.stop();
134
+ }
135
+ }
136
+ });
137
+ });
138
+
139
+ function forgot_helper(data, callback) {
140
+ $.ajax({
141
+ method: 'POST',
142
+ url: ajaxurl,
143
+ data: data,
144
+ dataType: 'json',
145
+ success: function (response) {
146
+ if (response.success) {
147
+ callback();
148
+ } else {
149
+ if (response.data && response.data.message) {
150
+ booklyAlert({error: [response.data.message]});
151
+ }
152
+ }
153
+ }
154
+ });
155
+ }
156
+
157
+ $('#bookly-prices').booklySmsPrices();
158
+ });
backend/modules/sms/resources/js/sms.js CHANGED
@@ -1,228 +1,214 @@
1
  jQuery(function($) {
2
  'use strict';
3
 
4
- let $form_confirm = $('.bookly-js-confirm-form'),
5
- $form_forgot = $('.bookly-js-forgot-form'),
6
- $form_invoice = $('.bookly-js-invoice'),
7
- $form_register = $('.bookly-js-register-form'),
8
- $form_login = $('.bookly-js-login-form')
9
- ;
10
-
11
- booklyAlert(BooklyL10n.smsAlert);
12
-
13
- $('.bookly-js-show-register-form').on('click', function (e) {
14
- e.preventDefault();
15
- $form_confirm.hide();
16
- $form_login.hide();
17
- $form_register.show();
18
- $form_forgot.hide();
19
  });
20
 
21
- $('.bookly-js-show-login-form').on('click', function (e) {
22
- e.preventDefault();
23
- $form_confirm.hide();
24
- $form_login.show();
25
- $form_register.hide();
26
- $form_forgot.hide();
27
- });
28
 
29
- $('.bookly-js-show-forgot-form').on('click', function (e) {
30
- e.preventDefault();
31
- $form_confirm.hide();
32
- $form_forgot.show();
33
- $form_login.hide();
34
- $form_register.hide();
35
- });
36
 
37
- $('.bookly-js-form-forgot-next').on('click', function (e) {
38
- e.preventDefault();
39
- var $btn = $(this),
40
- $form = $(this).parents('form'),
41
- $code = $form.find('input[name="code"]'),
42
- $pwd = $form.find('input[name="password"]'),
43
- $username = $form.find('input[name="username"]'),
44
- $pwd_repeat = $form.find('input[name="password_repeat"]'),
45
- data = { action: 'bookly_forgot_password', step: $btn.data('step'), username: $username.val(), csrf_token : BooklyL10n.csrfToken };
46
- switch ($(this).data('step')) {
47
- case 0:
48
- forgot_helper( data, function() {
49
- $username.parent().addClass('hidden');
50
- $code.parent().removeClass('hidden');
51
- $btn.data('step', 1);
52
- });
53
- break;
54
- case 1:
55
- data.code = $code.val();
56
- forgot_helper(data, function() {
57
- $code.parent().addClass('hidden');
58
- $pwd.parent().removeClass('hidden');
59
- $pwd_repeat.parent().removeClass('hidden');
60
- $btn.data('step', 2);
61
  });
62
- break;
63
- case 2:
64
- data.code = $code.val();
65
- data.password = $pwd.val();
66
- data.password_repeat = $pwd_repeat.val();
67
- if (data.password == data.password_repeat && data.password != '') {
68
- forgot_helper(data, function() {
69
- $('.bookly-js-show-login-form').trigger('click');
70
- $btn.data('step', 0);
71
- $username.parent().removeClass('hidden');
72
- $pwd.parent().addClass('hidden');
73
- $pwd_repeat.parent().addClass('hidden');
74
- $form.trigger('reset');
 
 
 
 
 
 
75
  });
76
- } else {
77
- booklyAlert({error: [BooklyL10n.passwords_no_same]});
78
- }
79
- break;
80
- }
81
- });
82
 
83
- $('.bookly-js-resend-confirmation').on('click', function (e) {
84
- e.preventDefault();
85
- $.ajax({
86
- url : ajaxurl,
87
- data : {
88
- action: 'bookly_resend_confirmation',
89
- csrf_token : BooklyL10n.csrfToken,
90
- },
91
- dataType : 'json',
92
- xhrFields : { withCredentials: true },
93
- crossDomain : 'withCredentials' in new XMLHttpRequest(),
94
- success : function (response) {
95
- if (response.success) {
96
- booklyAlert({success: [response.data.message]});
97
- } else {
98
- booklyAlert({error: [response.data.message]});
99
  }
100
- }
101
- });
102
- });
103
 
104
- $('#bookly-js-confirm-sms-account').on('click', function () {
105
- let ladda = Ladda.create(this);
 
 
 
 
 
 
 
 
106
  ladda.start();
 
107
  $.ajax({
108
- method : 'POST',
109
- url : ajaxurl,
110
- data : {
111
- action: 'bookly_complete_sms_registration',
112
- code: $('.bookly-js-confirmation-code').val(),
113
- csrf_token : BooklyL10n.csrfToken,
114
  },
115
- dataType : 'json',
116
- xhrFields : {withCredentials: true},
117
- crossDomain: 'withCredentials' in new XMLHttpRequest(),
118
- success : function (response) {
119
  if (response.success) {
120
- window.location.reload();
 
 
 
 
 
 
 
 
121
  } else {
122
  if (response.data && response.data.message) {
123
  booklyAlert({error: [response.data.message]});
124
  }
125
  }
126
- ladda.stop();
127
  }
128
- });
129
  });
130
 
131
- function forgot_helper(data, callback) {
132
- $.ajax({
133
- method : 'POST',
134
- url : ajaxurl,
135
- data : data,
136
- dataType : 'json',
137
- xhrFields : {withCredentials: true},
138
- crossDomain: 'withCredentials' in new XMLHttpRequest(),
139
- success : function (response) {
140
- if (response.success) {
141
- callback();
142
- } else {
143
- if (response.data && response.data.message) {
144
- if (response.data.hasOwnProperty('code')) {
145
- if (response.data.code == 'ERROR_EMAIL_CONFIRM_REQUIRED') {
146
- $form_confirm.show();
147
- $form_forgot.hide();
148
- $form_login.hide();
149
- $form_register.hide();
150
- }
151
- }
152
- booklyAlert({error: [response.data.message]});
153
- }
154
- }
155
- }
156
- });
157
  }
158
 
159
- $form_invoice
160
- .on('click', 'button', function () {
161
- var ladda = Ladda.create(this),
162
- invalid = false,
163
- data = $form_invoice.serializeArray();
164
- $('input[required]', $form_invoice).each(function () {
165
- if ($(this).val() == '') {
166
- $(this).addClass('is-invalid');
167
- invalid = true;
168
- } else {
169
- $(this).removeClass('is-invalid');
170
- }
171
- });
172
 
173
- if (invalid) {
174
- return false;
 
 
 
 
 
 
175
  } else {
176
- ladda.start();
177
- data.push({name: 'action', value: 'bookly_save_invoice_data'});
178
- data.push({name: 'csrf_token', value: BooklyL10n.csrfToken});
179
- $.ajax({
180
- url : ajaxurl,
181
- type : 'POST',
182
- data : data,
183
- dataType : 'json',
184
- success : function(response) {
185
- if (response.success) {
186
- booklyAlert({success: [response.data.message]});
187
- } else {
188
- booklyAlert({error: [response.data.message]});
189
- }
190
- ladda.stop();
191
- }
192
- });
193
  }
194
  });
195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
 
197
- $('.bookly-js-checkboxes :checkbox').on('change', function () {
198
- let $checkbox = $(this),
199
- $label = $checkbox.next('label'),
200
- $img = $checkbox.parent().prev('img');
201
- $label.removeClass('custom-control-label');
202
- $label.css({marginBottom: 0, verticalAlign: 'top'});
203
- $img.show();
204
- $.get(ajaxurl, {action: 'bookly_admin_notify', csrf_token : BooklyL10n.csrfToken, option_name: $checkbox.attr('name'), value: $checkbox.is(':checked') ? 1 : 0 }, function () {}, 'json').always(function () {
205
- $label.addClass('custom-control-label');
206
- $img.hide();
 
 
 
 
 
 
 
 
207
  });
208
  });
209
 
210
- $('#ajax-send-change-password').on('click', function (e) {
 
 
 
211
  e.preventDefault();
212
- var $form = $('#form-change-password');
213
- var new_password = $form.find('#new_password').val();
214
- if ($form.find('#old_password').val() != '') {
215
- if (new_password == $form.find('#new_password_repeat').val() && new_password != '') {
 
 
 
 
 
 
 
 
 
 
 
216
  $.ajax({
217
- type : 'POST',
218
- url : ajaxurl,
219
- data : $form.serialize(),
220
- dataType : 'json',
221
- xhrFields : { withCredentials: true },
222
- crossDomain : 'withCredentials' in new XMLHttpRequest(),
223
- success : function (response) {
224
  if (response.success) {
225
- $('#modal_change_password').booklyModal('hide');
226
  $form.trigger('reset');
227
  } else {
228
  if (response.data && response.data.message) {
@@ -230,15 +216,18 @@ jQuery(function($) {
230
  }
231
  }
232
  }
233
- });
234
  } else {
235
- booklyAlert({error: [BooklyL10n.passwords_no_same]});
 
 
236
  }
237
- } else {
238
- booklyAlert({error: [BooklyL10n.input_old_password]});
239
  }
240
  });
241
 
 
 
 
242
  var $phone_input = $('#admin_phone');
243
  if (BooklyL10n.intlTelInput.enabled) {
244
  $phone_input.intlTelInput({
@@ -264,15 +253,13 @@ jQuery(function($) {
264
  $('#send_test_sms').on('click', function (e) {
265
  e.preventDefault();
266
  $.ajax({
267
- url : ajaxurl,
268
- data : {
269
  action: 'bookly_send_test_sms',
270
  csrf_token : BooklyL10n.csrfToken,
271
  phone_number: getPhoneNumber() },
272
- dataType : 'json',
273
- xhrFields : { withCredentials: true },
274
- crossDomain : 'withCredentials' in new XMLHttpRequest(),
275
- success : function (response) {
276
  if (response.success) {
277
  booklyAlert({success: [response.message]});
278
  } else {
@@ -282,42 +269,38 @@ jQuery(function($) {
282
  });
283
  });
284
 
285
- /**
286
- * Auto-Recharge Tab.
287
- */
288
- var $recharge_init = $('#bookly-auto-recharge-init'),
289
- $recharge_decline = $('#bookly-auto-recharge-decline'),
290
- $recharge_amount = $('#bookly-recharge-amount')
291
- ;
292
- $recharge_init.on('click', function () {
293
- var ladda = Ladda.create(this);
294
- ladda.start();
295
- $.get(ajaxurl, {action: 'bookly_init_auto_recharge', csrf_token : BooklyL10n.csrfToken, amount: $recharge_amount.val()}, function () {
296
- }, 'json').always(function (response) {
297
- if (response.success) {
298
- window.location.replace(response.data.paypal_preapproval);
299
- } else {
300
- ladda.stop();
301
- booklyAlert({error: [response.data.message]});
302
- }
303
- });
304
- });
305
- $recharge_decline.on('click', function () {
306
- var ladda = Ladda.create(this);
307
- ladda.start();
308
- $.get(ajaxurl, {action: 'bookly_decline_auto_recharge', csrf_token : BooklyL10n.csrfToken}, function () {}, 'json')
309
- .always(function (response) {
310
- ladda.stop();
311
- if (response.success) {
312
- $recharge_amount.prop('disabled', false);
313
- $recharge_init.prop('disabled', false);
314
- $recharge_decline.prop('disabled', true);
315
- booklyAlert({success: [response.data.message]});
316
- } else {
317
- booklyAlert({error: [response.data.message]});
318
  }
319
  });
320
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
 
322
  /**
323
  * Date range pickers options.
@@ -361,13 +344,28 @@ jQuery(function($) {
361
 
362
  $.each(BooklyL10n.datatables.sms_purchases.settings.columns, function (column, show) {
363
  if (show) {
364
- columns.push({data: column});
 
 
 
 
 
 
 
 
 
 
 
 
365
  }
366
  });
367
  columns.push({
368
  className: "text-right",
369
  render : function (data, type, row, meta) {
370
- return '<button type="button" class="btn btn-default" data-action="download-invoice"><i class="far fa-fw fa-file-pdf mr-1"></i> ' + BooklyL10n.invoice.button + '</a>';
 
 
 
371
  }
372
  });
373
 
@@ -401,13 +399,11 @@ jQuery(function($) {
401
 
402
  $('#bookly-purchases')
403
  .on('click', '[data-action=download-invoice]', function () {
404
- if ($('#bookly_sms_invoice_company_name').val() == '') {
405
- booklyAlert({error: [BooklyL10n.invoice.alert]});
406
- $('#collapse_invoice').collapse('show');
407
- $('#bookly_sms_invoice_company_name').focus();
408
  } else {
409
- var data = $('#bookly-purchases').DataTable().row($(this).closest('td')).data();
410
- window.location = BooklyL10n.invoice.link + '/' + data.order;
411
  }
412
  });
413
 
@@ -479,109 +475,8 @@ jQuery(function($) {
479
  * Prices Tab.
480
  */
481
  $("[href='#price_list']").one('click', function() {
482
- fillPriceTable();
483
  });
484
- if ($('form.bookly-js-login-form').length){
485
- fillPriceTable();
486
- }
487
- $('[data-action=save-administrator-phone]')
488
- .on('click', function (e) {
489
- e.preventDefault();
490
- $.ajax({
491
- url: ajaxurl,
492
- method: 'POST',
493
- data: {
494
- action: 'bookly_save_administrator_phone',
495
- bookly_sms_administrator_phone: getPhoneNumber(),
496
- csrf_token: BooklyL10n.csrfToken
497
- },
498
- success: function (response) {
499
- if (response.success) {
500
- booklyAlert({success: [BooklyL10n.settingsSaved]});
501
- }
502
- }
503
- });
504
- });
505
-
506
- function fillPriceTable() {
507
- /**
508
- * Init Columns.
509
- */
510
- let columns = [];
511
-
512
- $.each(BooklyL10n.datatables.sms_prices.settings.columns, function (column, show) {
513
- if (show) {
514
- switch (column) {
515
- case 'country_iso_code':
516
- columns.push({
517
- data: column, render: function ( data, type, row, meta ) {
518
- return '<div class="iti-flag ' + data + '"></div>';
519
- }
520
- });
521
- break;
522
- case 'price':
523
- columns.push({
524
- data: column,
525
- className: "text-right",
526
- render: function ( data, type, row, meta ) {
527
- return '$' + data.replace(/0+$/, '');
528
- }
529
- });
530
- break;
531
- case 'price_alt':
532
- columns.push({
533
- data: column,
534
- className: "text-right",
535
- render: function ( data, type, row, meta ) {
536
- if (row.price_alt == '') {
537
- return '-';
538
- } else {
539
- return '$' + data.replace(/0+$/, '');
540
- }
541
- }
542
- });
543
- break;
544
- default:
545
- columns.push({data: column});
546
- break;
547
- }
548
- }
549
- });
550
- if (columns.length) {
551
- var dt = $('#bookly-prices').DataTable({
552
- ordering : false,
553
- paging : false,
554
- info : false,
555
- searching : false,
556
- processing: true,
557
- responsive: true,
558
- ajax : {
559
- url : ajaxurl,
560
- data : {action: 'bookly_get_price_list', csrf_token: BooklyL10n.csrfToken},
561
- dataSrc: 'list'
562
- },
563
- columns : columns,
564
- language : {
565
- zeroRecords: BooklyL10n.zeroRecords,
566
- processing : BooklyL10n.processing
567
- }
568
- });
569
- }
570
- }
571
-
572
- function getPhoneNumber() {
573
- var phone_number;
574
- try {
575
- phone_number = BooklyL10n.intlTelInput.enabled ? $phone_input.intlTelInput('getNumber') : $phone_input.val();
576
- if (phone_number == '') {
577
- phone_number = $phone_input.val();
578
- }
579
- } catch (error) { // In case when intlTelInput can't return phone number.
580
- phone_number = $phone_input.val();
581
- }
582
-
583
- return phone_number;
584
- }
585
 
586
  /**
587
  * Sender ID Tab.
@@ -639,7 +534,6 @@ jQuery(function($) {
639
  url : ajaxurl,
640
  data : {action: 'bookly_request_sender_id', csrf_token : BooklyL10n.csrfToken, 'sender_id': $sender_id.val()},
641
  dataType : 'json',
642
- xhrFields: {withCredentials: true},
643
  success: function (response) {
644
  if (response.success) {
645
  booklyAlert({success: [BooklyL10n.sender_id.sent]});
@@ -663,7 +557,6 @@ jQuery(function($) {
663
  url: ajaxurl,
664
  data: {action: 'bookly_reset_sender_id', csrf_token : BooklyL10n.csrfToken},
665
  dataType: 'json',
666
- xhrFields: {withCredentials: true},
667
  success: function (response) {
668
  if (response.success) {
669
  booklyAlert({success: [BooklyL10n.sender_id.set_default]});
@@ -686,11 +579,11 @@ jQuery(function($) {
686
  var ladda = Ladda.create(this);
687
  ladda.start();
688
  $.ajax({
689
- method : 'POST',
690
- url : ajaxurl,
691
- data: {action: 'bookly_cancel_sender_id', csrf_token : BooklyL10n.csrfToken},
692
- dataType : 'json',
693
- success : function (response) {
694
  if (response.success) {
695
  $sender_id.prop('disabled', false).val('');
696
  $request_sender_id.show();
1
  jQuery(function($) {
2
  'use strict';
3
 
4
+ $('#bookly-logout').on('click', function () {
5
+ let ladda = Ladda.create(this);
6
+ ladda.start();
7
+ $.ajax({
8
+ method: 'POST',
9
+ url: ajaxurl,
10
+ data: {
11
+ action: 'bookly_sms_logout',
12
+ csrf_token : BooklyL10n.csrfToken,
13
+ },
14
+ dataType: 'json',
15
+ success: function () {
16
+ window.location.reload();
17
+ }
18
+ });
19
  });
20
 
21
+ /**
22
+ * Account settings
23
+ */
24
+ const $openSettingsBtn = $('#bookly-open-account-settings');
25
+ const $invoiceCountry = $('.bookly-js-invoice-country .bookly-js-label');
26
+ const $country = $('#bookly-country');
 
27
 
28
+ let invoiceDataValid = true;
 
 
 
 
 
 
29
 
30
+ if ($openSettingsBtn.data('content')) {
31
+ $openSettingsBtn
32
+ .on('click', function () {
33
+ $openSettingsBtn.booklyPopover('hide');
34
+ $.ajax({
35
+ url: ajaxurl,
36
+ type: 'POST',
37
+ data: {
38
+ action: 'bookly_dismiss_sms_account_settings_notice',
39
+ csrf_token: BooklyL10n.csrfToken
40
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  });
42
+ })
43
+ .booklyPopover({
44
+ html: true,
45
+ sanitize: false,
46
+ trigger: 'manual',
47
+ container: '#bookly-tbs',
48
+ template: '<div class="bookly-popover" role="tooltip"><div class="arrow"></div><div class="popover-body"></div></div>',
49
+ placement: function (tip) {
50
+ $(tip)
51
+ .find('.popover-body button').on('click', function () {
52
+ $openSettingsBtn.booklyPopover('hide');
53
+ $.ajax({
54
+ url: ajaxurl,
55
+ type: 'POST',
56
+ data: {
57
+ action: 'bookly_dismiss_sms_account_settings_notice',
58
+ csrf_token: BooklyL10n.csrfToken
59
+ }
60
+ });
61
  });
 
 
 
 
 
 
62
 
63
+ return 'bottom';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  }
65
+ })
66
+ .booklyPopover('show');
67
+ }
68
 
69
+ /**
70
+ * Settings: Country tab
71
+ */
72
+ $country
73
+ .booklySelectCountry({dropdownParent: '#bookly-account-settings'})
74
+ .val(BooklyL10n.country).trigger('change')
75
+ ;
76
+
77
+ $('#bookly-update-country').on('click', function () {
78
+ const ladda = Ladda.create(this);
79
  ladda.start();
80
+ const country = $country.val();
81
  $.ajax({
82
+ type: 'POST',
83
+ url: ajaxurl,
84
+ data: {
85
+ action: 'bookly_change_country',
86
+ csrf_token: BooklyL10n.csrfToken,
87
+ country: country
88
  },
89
+ dataType: 'json',
90
+ success: function (response) {
 
 
91
  if (response.success) {
92
+ booklyAlert({success: [BooklyL10n.settingsSaved]});
93
+ BooklyL10n.country = country;
94
+ if (BooklyRechargeDialogL10n) {
95
+ BooklyRechargeDialogL10n.country = country;
96
+ }
97
+ $invoiceCountry.html($country.select2('data')[0].text);
98
+ if (response.auto_recharge === 'disabled') {
99
+ $(document.body).trigger('bookly.auto-recharge.toggle', [false]);
100
+ }
101
  } else {
102
  if (response.data && response.data.message) {
103
  booklyAlert({error: [response.data.message]});
104
  }
105
  }
 
106
  }
107
+ }).always(ladda.stop);
108
  });
109
 
110
+ /**
111
+ * Settings: Invoice tab
112
+ */
113
+ if ($country.length && $country.select2('data').length > 0) {
114
+ $invoiceCountry.html($country.select2('data')[0].text);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  }
116
 
117
+ $('.bookly-js-invoice-country a').on('click', function (e) {
118
+ e.preventDefault();
119
+ $('#bookly-account-settings .nav-link[href=#bookly-country-tab]').trigger('click');
120
+ });
 
 
 
 
 
 
 
 
 
121
 
122
+ $('#bookly-save-invoice').on('click', function (e) {
123
+ e.preventDefault();
124
+ const $form = $(this).closest('form');
125
+ invoiceDataValid = true;
126
+ $('input[required]', $form).each(function () {
127
+ if ($(this).val() === '') {
128
+ $(this).addClass('is-invalid');
129
+ invoiceDataValid = false;
130
  } else {
131
+ $(this).removeClass('is-invalid');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  }
133
  });
134
 
135
+ if (invoiceDataValid) {
136
+ const ladda = Ladda.create(this);
137
+ ladda.start();
138
+ const data = $form.serializeArray();
139
+ data.push({name: 'action', value: 'bookly_save_invoice_data'});
140
+ data.push({name: 'csrf_token', value: BooklyL10n.csrfToken});
141
+ $.ajax({
142
+ type: 'POST',
143
+ url: ajaxurl,
144
+ data: data,
145
+ dataType: 'json',
146
+ success: function(response) {
147
+ if (response.success) {
148
+ booklyAlert({success: [BooklyL10n.settingsSaved]});
149
+ } else {
150
+ booklyAlert({error: [response.data.message]});
151
+ }
152
+ }
153
+ }).always(ladda.stop);
154
+ } else {
155
+ return false;
156
+ }
157
+ }).closest('form').find('input[required]').each(function () {
158
+ if (this.value === '') {
159
+ invoiceDataValid = false;
160
+ }
161
+ });
162
 
163
+ /**
164
+ * Settings: Notifications tab
165
+ */
166
+ $('#bookly-account-notifications-tab :checkbox').on('change', function () {
167
+ let $checkbox = $(this);
168
+ $checkbox.prop('disabled', true).addClass('bookly-checkbox-loading');
169
+ $.get(
170
+ ajaxurl,
171
+ {
172
+ action: 'bookly_admin_notify',
173
+ csrf_token : BooklyL10n.csrfToken,
174
+ option_name: $checkbox.attr('name'),
175
+ value: $checkbox.is(':checked') ? 1 : 0
176
+ },
177
+ function () {},
178
+ 'json'
179
+ ).always(function () {
180
+ $checkbox.prop('disabled', false).removeClass('bookly-checkbox-loading');
181
  });
182
  });
183
 
184
+ /**
185
+ * Settings: Change password tab
186
+ */
187
+ $('#bookly-change-password').on('click', function (e) {
188
  e.preventDefault();
189
+ const $form = $(this).closest('form');
190
+ const $oldPassword = $form.find('#old_password');
191
+ const $newPassword = $form.find('#new_password');
192
+ const $repeatPassword = $form.find('#new_password_repeat');
193
+ $oldPassword.toggleClass('is-invalid', $oldPassword.val() === '');
194
+ $newPassword.toggleClass('is-invalid', $newPassword.val() === '');
195
+ if ($oldPassword.val() !== '' && $newPassword.val() !== '') {
196
+ if ($newPassword.val() === $repeatPassword.val()) {
197
+ $newPassword.removeClass('is-invalid');
198
+ $repeatPassword.removeClass('is-invalid');
199
+ const ladda = Ladda.create(this);
200
+ ladda.start();
201
+ const data = $form.serializeArray();
202
+ data.push({name: 'action', value: 'bookly_change_password'});
203
+ data.push({name: 'csrf_token', value: BooklyL10n.csrfToken});
204
  $.ajax({
205
+ type: 'POST',
206
+ url: ajaxurl,
207
+ data: data,
208
+ dataType: 'json',
209
+ success: function (response) {
 
 
210
  if (response.success) {
211
+ booklyAlert({success: [BooklyL10n.settingsSaved]});
212
  $form.trigger('reset');
213
  } else {
214
  if (response.data && response.data.message) {
216
  }
217
  }
218
  }
219
+ }).always(ladda.stop);
220
  } else {
221
+ booklyAlert({error: [BooklyL10n.passwords_no_match]});
222
+ $newPassword.addClass('is-invalid');
223
+ $repeatPassword.addClass('is-invalid');
224
  }
 
 
225
  }
226
  });
227
 
228
+ /**
229
+ * Notifications Tab
230
+ */
231
  var $phone_input = $('#admin_phone');
232
  if (BooklyL10n.intlTelInput.enabled) {
233
  $phone_input.intlTelInput({
253
  $('#send_test_sms').on('click', function (e) {
254
  e.preventDefault();
255
  $.ajax({
256
+ url: ajaxurl,
257
+ data: {
258
  action: 'bookly_send_test_sms',
259
  csrf_token : BooklyL10n.csrfToken,
260
  phone_number: getPhoneNumber() },
261
+ dataType: 'json',
262
+ success: function (response) {
 
 
263
  if (response.success) {
264
  booklyAlert({success: [response.message]});
265
  } else {
269
  });
270
  });
271
 
272
+ $('[data-action=save-administrator-phone]')
273
+ .on('click', function (e) {
274
+ e.preventDefault();
275
+ $.ajax({
276
+ url: ajaxurl,
277
+ method: 'POST',
278
+ data: {
279
+ action: 'bookly_save_administrator_phone',
280
+ bookly_sms_administrator_phone: getPhoneNumber(),
281
+ csrf_token: BooklyL10n.csrfToken
282
+ },
283
+ success: function (response) {
284
+ if (response.success) {
285
+ booklyAlert({success: [BooklyL10n.settingsSaved]});
286
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  }
288
  });
289
+ });
290
+
291
+ function getPhoneNumber() {
292
+ var phone_number;
293
+ try {
294
+ phone_number = BooklyL10n.intlTelInput.enabled ? $phone_input.intlTelInput('getNumber') : $phone_input.val();
295
+ if (phone_number == '') {
296
+ phone_number = $phone_input.val();
297
+ }
298
+ } catch (error) { // In case when intlTelInput can't return phone number.
299
+ phone_number = $phone_input.val();
300
+ }
301
+
302
+ return phone_number;
303
+ }
304
 
305
  /**
306
  * Date range pickers options.
344
 
345
  $.each(BooklyL10n.datatables.sms_purchases.settings.columns, function (column, show) {
346
  if (show) {
347
+ if (column === 'amount') {
348
+ columns.push({
349
+ data: column,
350
+ render: function (data, type, row, meta) {
351
+ const disabled = ['Pending','Rejected','Cancelled reversal'].includes(row.status);
352
+ return data >= 0
353
+ ? '<span class="text-' + (disabled ? 'muted' : 'success') + '">+ $' + data + '</span>'
354
+ : '<span class="text-' + (disabled ? 'muted' : 'danger') + '">- $' + data.substring(1) + '</span>';
355
+ }
356
+ });
357
+ } else {
358
+ columns.push({data: column});
359
+ }
360
  }
361
  });
362
  columns.push({
363
  className: "text-right",
364
  render : function (data, type, row, meta) {
365
+ if ((row.type === 'PayPal' || row.type === 'Card') && row.status === 'Paid') {
366
+ return '<button type="button" class="btn btn-default" data-action="download-invoice"><i class="far fa-fw fa-file-pdf mr-1"></i> ' + BooklyL10n.invoice.button + '</button>';
367
+ }
368
+ return '';
369
  }
370
  });
371
 
399
 
400
  $('#bookly-purchases')
401
  .on('click', '[data-action=download-invoice]', function () {
402
+ if (invoiceDataValid) {
403
+ const data = $('#bookly-purchases').DataTable().row($(this).closest('td')).data();
404
+ window.location = BooklyL10n.invoice.link + '/' + data.id;
 
405
  } else {
406
+ booklyAlert({error: [BooklyL10n.invoice.alert]});
 
407
  }
408
  });
409
 
475
  * Prices Tab.
476
  */
477
  $("[href='#price_list']").one('click', function() {
478
+ $('#bookly-prices').booklySmsPrices();
479
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
480
 
481
  /**
482
  * Sender ID Tab.
534
  url : ajaxurl,
535
  data : {action: 'bookly_request_sender_id', csrf_token : BooklyL10n.csrfToken, 'sender_id': $sender_id.val()},
536
  dataType : 'json',
 
537
  success: function (response) {
538
  if (response.success) {
539
  booklyAlert({success: [BooklyL10n.sender_id.sent]});
557
  url: ajaxurl,
558
  data: {action: 'bookly_reset_sender_id', csrf_token : BooklyL10n.csrfToken},
559
  dataType: 'json',
 
560
  success: function (response) {
561
  if (response.success) {
562
  booklyAlert({success: [BooklyL10n.sender_id.set_default]});
579
  var ladda = Ladda.create(this);
580
  ladda.start();
581
  $.ajax({
582
+ method: 'POST',
583
+ url: ajaxurl,
584
+ data: {action: 'bookly_cancel_sender_id', csrf_token : BooklyL10n.csrfToken},
585
+ dataType: 'json',
586
+ success: function (response) {
587
  if (response.success) {
588
  $sender_id.prop('disabled', false).val('');
589
  $request_sender_id.show();
backend/modules/sms/templates/_auto_recharge.php DELETED
@@ -1,20 +0,0 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
- use Bookly\Backend\Components\Controls\Buttons;
3
- ?>
4
- <p class="alert alert-info">
5
- <?php esc_html_e( 'We will only charge your PayPal account when your balance falls below $10.', 'bookly' ) ?>
6
- </p>
7
-
8
- <div class="form-group">
9
- <label for="bookly-recharge-amount"><?php esc_html_e( 'Amount', 'bookly' ) ?></label>
10
- <select id="bookly-recharge-amount" class="form-control custom-select"<?php disabled( $sms->autoRechargeEnabled() ) ?>>
11
- <?php foreach ( array( 10, 25, 50, 100 ) as $amount ) : ?>
12
- <?php printf( '<option value="%1$s" %2$s>$%1$s</option>', $amount, selected( $sms->getAutoRechargeAmount() == $amount, true, false ) ) ?>
13
- <?php endforeach ?>
14
- </select>
15
- </div>
16
-
17
- <div class="text-right mt-3">
18
- <?php Buttons::render( 'bookly-auto-recharge-init', 'btn-success', __( 'Enable Auto-Recharge', 'bookly' ) . '…', $sms->autoRechargeEnabled() ? array( 'disabled' => 'disabled' ) : array() ) ?>
19
- <?php Buttons::renderDefault( 'bookly-auto-recharge-decline', null, __( 'Disable Auto-Recharge', 'bookly' ) . '…', $sms->autoRechargeEnabled() ? array() : array( 'disabled' => 'disabled' ) ) ?>
20
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
backend/modules/sms/templates/_buttons.php DELETED
@@ -1,94 +0,0 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
- use Bookly\Lib\Utils\Common;
3
- $business = 'finance@ladela.com';
4
- $action = 'https://www.paypal.com/cgi-bin/webscr';
5
- $page_slug = Bookly\Backend\Modules\Sms\Ajax::pageSlug();
6
- ?>
7
- <div class="row">
8
- <div class="col-xs-12 col-md-3">
9
- <form action="<?php echo esc_url( $action ) ?>" method="post">
10
- <input type="hidden" name="item_name" value="Bookly SMS">
11
- <input type="hidden" name="currency_code" value="USD">
12
- <input type="hidden" name="amount" value="10">
13
- <input type="hidden" name="return" value="<?php echo Common::escAdminUrl( $page_slug, array( 'paypal_result' => 'success' ) ) ?>">
14
- <input type="hidden" name="cancel_return" value="<?php echo Common::escAdminUrl( $page_slug, array( 'paypal_result' => 'cancel', 'tab' => 'add_money' ) ) ?>">
15
- <input type="hidden" name="cmd" value="_xclick">
16
- <input type="hidden" name="business" value="<?php echo esc_attr( $business ) ?>">
17
- <input type="hidden" name="custom" value="<?php echo esc_attr( $sms->getUserName() ) ?>">
18
- <input type="hidden" name="no_shipping" value="1">
19
- <input type="hidden" name="handling" value="0.77">
20
- <input type="hidden" name="landing_page" value="billing">
21
- <input type="image" class="embed-responsive"
22
- src="<?php echo plugins_url( 'bookly-responsive-appointment-booking-tool/backend/resources/images/buy10.png' ) ?>"
23
- border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
24
- <img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif"
25
- width="1" height="1">
26
- </form>
27
- </div>
28
- <div class="col-xs-12 col-md-3">
29
- <form action="<?php echo esc_url( $action ) ?>" method="post">
30
- <input type="hidden" name="item_name" value="Bookly SMS">
31
- <input type="hidden" name="currency_code" value="USD">
32
- <input type="hidden" name="amount" value="25">
33
- <input type="hidden" name="return" value="<?php echo Common::escAdminUrl( $page_slug, array( 'paypal_result' => 'success' ) ) ?>">
34
- <input type="hidden" name="cancel_return" value="<?php echo Common::escAdminUrl( $page_slug, array( 'paypal_result' => 'cancel', 'tab' => 'add_money' ) ) ?>">
35
- <input type="hidden" name="cmd" value="_xclick">
36
- <input type="hidden" name="business" value="<?php echo esc_attr( $business ) ?>">
37
- <input type="hidden" name="custom" value="<?php echo esc_attr( $sms->getUserName() ) ?>">
38
- <input type="hidden" name="no_shipping" value="1">
39
- <input type="hidden" name="handling" value="1.46">
40
- <input type="hidden" name="landing_page" value="billing">
41
- <input type="image" class="embed-responsive"
42
- src="<?php echo plugins_url( 'bookly-responsive-appointment-booking-tool/backend/resources/images/buy25.png' ) ?>"
43
- border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
44
- <img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif"
45
- width="1" height="1">
46
- </form>
47
- </div>
48
- <div class="col-xs-12 col-md-3">
49
- <form action="<?php echo esc_url( $action ) ?>" method="post">
50
- <input type="hidden" name="item_name" value="Bookly SMS">
51
- <input type="hidden" name="currency_code" value="USD">
52
- <input type="hidden" name="amount" value="50">
53
- <input type="hidden" name="return" value="<?php echo Common::escAdminUrl( $page_slug, array( 'paypal_result' => 'success' ) ) ?>">
54
- <input type="hidden" name="cancel_return" value="<?php echo Common::escAdminUrl( $page_slug, array( 'paypal_result' => 'cancel', 'tab' => 'add_money' ) ) ?>">
55
- <input type="hidden" name="cmd" value="_xclick">
56
- <input type="hidden" name="business" value="<?php echo esc_attr( $business ) ?>">
57
- <input type="hidden" name="custom" value="<?php echo esc_attr( $sms->getUserName() ) ?>">
58
- <input type="hidden" name="no_shipping" value="1">
59
- <input type="hidden" name="handling" value="2.61">
60
- <input type="hidden" name="landing_page" value="billing">
61
- <input type="image" class="embed-responsive"
62
- src="<?php echo plugins_url( 'bookly-responsive-appointment-booking-tool/backend/resources/images/buy50.png' ) ?>"
63
- border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
64
- <img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif"
65
- width="1" height="1">
66
- </form>
67
- </div>
68
- <div class="col-xs-12 col-md-3">
69
- <form action="<?php echo esc_url( $action ) ?>" method="post">
70
- <input type="hidden" name="item_name" value="Bookly SMS">
71
- <input type="hidden" name="currency_code" value="USD">
72
- <input type="hidden" name="amount" value="100">
73
- <input type="hidden" name="return" value="<?php echo Common::escAdminUrl( $page_slug, array( 'paypal_result' => 'success' ) ) ?>">
74
- <input type="hidden" name="cancel_return" value="<?php echo Common::escAdminUrl( $page_slug, array( 'paypal_result' => 'cancel', 'tab' => 'add_money' ) ) ?>">
75
- <input type="hidden" name="cmd" value="_xclick">
76
- <input type="hidden" name="business" value="<?php echo esc_attr( $business ) ?>">
77
- <input type="hidden" name="custom" value="<?php echo esc_attr( $sms->getUserName() ) ?>">
78
- <input type="hidden" name="no_shipping" value="1">
79
- <input type="hidden" name="handling" value="4.92">
80
- <input type="hidden" name="landing_page" value="billing">
81
- <input type="image" class="embed-responsive"
82
- src="<?php echo plugins_url( 'bookly-responsive-appointment-booking-tool/backend/resources/images/buy100.png' ) ?>"
83
- border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
84
- <img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif"
85
- width="1" height="1">
86
- </form>
87
- </div>
88
- </div>
89
-
90
-
91
-
92
-
93
-
94
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
backend/modules/sms/templates/_confirm_email.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Controls\Buttons;
3
+ ?>
4
+ <form id="bookly-confirm-email-modal" class="bookly-modal bookly-fade" tabindex=-1 role="dialog">
5
+ <div class="modal-dialog">
6
+ <div class="modal-content">
7
+ <div class="modal-header">
8
+ <h5 class="modal-title"><?php esc_html_e( 'Thank you for registration.', 'bookly' ) ?></h5>
9
+ <button type="button" class="close" data-dismiss="bookly-modal"><span>&times;</span></button>
10
+ </div>
11
+ <div class="modal-body">
12
+ <p>
13
+ <?php esc_html_e( 'You\'re almost ready to get started with Bookly SMS Service.', 'bookly' ) ?>
14
+ <?php esc_html_e( 'An email containing the confirmation code has been sent to your email address.', 'bookly' ) ?>
15
+ </p>
16
+ <p><?php esc_html_e( 'To complete registration, please enter the confirmation code below.', 'bookly' ) ?></p>
17
+ <div class="input-group mb-4">
18
+ <input type="text" class="form-control bookly-js-confirmation-code" id="bookly-confirmation-code" placeholder="<?php esc_attr_e( 'Confirmation code', 'bookly' ) ?>" />
19
+ <div class="input-group-append">
20
+ <?php Buttons::renderSubmit( 'bookly-apply-confirmation-code', null, __( 'Confirm' ), array( 'name' => 'submit' ) ) ?>
21
+ </div>
22
+ </div>
23
+ <h6>
24
+ <b><?php esc_html_e( 'Didn\'t receive the email?', 'bookly' ) ?></b>
25
+ </h6>
26
+ <ol>
27
+ <li>
28
+ <?php esc_html_e( 'Check your spam folder.', 'bookly' ) ?>
29
+ </li>
30
+ <li>
31
+ <?php printf( esc_html__( 'Click %s here %s to resend the email.', 'bookly' ), '<a href="#" class="bookly-js-resend-confirmation">', '</a>' ) ?>
32
+ </li>
33
+ </ol>
34
+ </div>
35
+ <div class="modal-footer">
36
+ <?php Buttons::renderCancel( __( 'I\'ll do it later', 'bookly' ) ) ?>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ </form>
backend/modules/sms/templates/_invoice.php DELETED
@@ -1,70 +0,0 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
- use Bookly\Backend\Components\Controls\Buttons;
3
- use Bookly\Backend\Components\Controls\Inputs;
4
- ?>
5
- <form class="card bookly-collapse bookly-js-invoice mt-2 mb-3">
6
- <div class="card-header d-flex align-items-center" role="tab">
7
- <input name="invoice[send]" value="0" class="hidden" />
8
- <?php Inputs::renderCheckBox( '', 1, $invoice['send'], array( 'name' => 'invoice[send]' ) ) ?>
9
- <a href="#collapse_invoice" class="collapsed" role="button" data-toggle="collapse"><?php esc_html_e( 'Send invoice', 'bookly' ) ?></a>
10
- </div>
11
- <div id="collapse_invoice" class="collapse">
12
- <div class="card-body">
13
- <div class="row">
14
- <div class="col-md-6">
15
- <div class="form-group">
16
- <label for="bookly_sms_invoice_company_name"><?php esc_html_e( 'Company name', 'bookly' ) ?>*</label>
17
- <input name="invoice[company_name]" type="text" class="form-control" id="bookly_sms_invoice_company_name" required value="<?php echo esc_attr( $invoice['company_name'] ) ?>">
18
- </div>
19
- </div>
20
- <div class="col-md-6">
21
- <div class="alert alert-info">
22
- <i class="fas fa-info-circle text-info mr-2"></i> <?php esc_html_e( 'Note: invoice will be sent to your PayPal email address', 'bookly' ) ?></i>
23
- </div>
24
- </div>
25
- </div>
26
- <div class="row">
27
- <div class="col-md-6">
28
- <div class="form-group">
29
- <label for="bookly_sms_invoice_company_address"><?php esc_html_e( 'Company address', 'bookly' ) ?>*</label>
30
- <input name="invoice[company_address]" type="text" class="form-control" id="bookly_sms_invoice_company_address" required value="<?php echo esc_attr( $invoice['company_address'] ) ?>">
31
- </div>
32
- </div>
33
- <div class="col-md-6">
34
- <div class="form-group mt-n2">
35
- <?php Inputs::renderCheckBox( __( 'Copy invoice to another email(s)', 'bookly' ), 1, $invoice['send_copy'], array( 'name' => 'invoice[send_copy]' ) ) ?>
36
- <input name="invoice[cc]" type="text" class="form-control" value="<?php echo esc_attr( $invoice['cc'] ) ?>">
37
- <small class="form-text text-muted"><?php esc_html_e( 'Enter one or more email addresses separated by commas.', 'bookly' ) ?></small>
38
- </div>
39
- </div>
40
- </div>
41
- <div class="row">
42
- <div class="col-md-6">
43
- <div class="form-group">
44
- <label for="bookly_sms_invoice_company_address_l2"><?php esc_html_e( 'Company address line 2', 'bookly' ) ?></label>
45
- <input name="invoice[company_address_l2]" type="text" class="form-control" id="bookly_sms_invoice_company_address_l2" value="<?php echo esc_attr( $invoice['company_address_l2'] ) ?>">
46
- </div>
47
- <div class="form-row">
48
- <div class="form-group col-md-6">
49
- <label for="bookly_sms_invoice_company_vat"><?php esc_html_e( 'VAT', 'bookly' ) ?></label>
50
- <input name="invoice[company_vat]" type="text" class="form-control" id="bookly_sms_invoice_company_vat" value="<?php echo esc_attr( $invoice['company_vat'] ) ?>">
51
- </div>
52
- <div class="form-group col-md-6">
53
- <label for="bookly_sms_invoice_company_code"><?php esc_html_e( 'Company code', 'bookly' ) ?></label>
54
- <input name="invoice[company_code]" type="text" class="form-control" id="bookly_sms_invoice_company_code" value="<?php echo esc_attr( $invoice['company_code'] ) ?>">
55
- </div>
56
- </div>
57
- </div>
58
- <div class="col-md-6">
59
- <div class="form-group">
60
- <label for="bookly_sms_invoice_company_add_text"><?php esc_html_e( 'Additional text to include into invoice', 'bookly' ) ?></label>
61
- <textarea name="invoice[company_add_text]" class="form-control" rows="4" style="height: 118px;" id="bookly_sms_invoice_company_add_text"><?php echo esc_textarea( $invoice['company_add_text'] ) ?></textarea>
62
- </div>
63
- </div>
64
- </div>
65
- </div>
66
- <div class="card-footer bg-transparent d-flex justify-content-end">
67
- <?php Buttons::renderSubmit( null ) ?>
68
- </div>
69
- </div>
70
- </form>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
backend/modules/sms/templates/_settings.php ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Controls\Buttons;
3
+ use Bookly\Backend\Components\Controls\Inputs;
4
+ use Bookly\Backend\Components\Dialogs\Recharge;
5
+ use Bookly\Lib;
6
+ /**
7
+ * @var Lib\SMS $sms
8
+ */
9
+ $invoice = $sms->getInvoiceData();
10
+ ?>
11
+ <div class="bookly-modal bookly-fade" id="bookly-account-settings" tabindex=-1 role="dialog">
12
+ <div class="modal-dialog modal-lg">
13
+ <div class="modal-content">
14
+ <div class="modal-header">
15
+ <h5 class="modal-title"><?php esc_html_e( 'Account settings', 'bookly' ) ?></h5>
16
+ <button type="button" class="close" data-dismiss="bookly-modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
17
+ </div>
18
+ <div class="modal-body">
19
+ <div class="row">
20
+ <div class="col-3">
21
+ <div class="nav flex-column nav-pills">
22
+ <a class="nav-link active" data-toggle="bookly-pill" href="#bookly-auto-recharge-tab"><?php esc_html_e( 'Auto-Recharge', 'bookly' ) ?></a>
23
+ <a class="nav-link mt-2" data-toggle="bookly-pill" href="#bookly-invoice-tab"><?php esc_html_e( 'Invoice', 'bookly' ) ?></a>
24
+ <a class="nav-link mt-2" data-toggle="bookly-pill" href="#bookly-account-notifications-tab"><?php esc_html_e( 'Notifications', 'bookly' ) ?></a>
25
+ <a class="nav-link mt-2" data-toggle="bookly-pill" href="#bookly-country-tab"><?php esc_html_e( 'Country', 'bookly' ) ?></a>
26
+ <a class="nav-link mt-2" data-toggle="bookly-pill" href="#bookly-change-password-tab"><?php esc_html_e( 'Change password', 'bookly' ) ?></a>
27
+ </div>
28
+ </div>
29
+ <div class="col-9">
30
+ <div class="tab-content">
31
+ <div class="tab-pane bookly-fade show active" id="bookly-auto-recharge-tab">
32
+ <div class="form-row align-items-center">
33
+ <div class="col-8">
34
+ <?php Recharge\Amounts\Auto\Button::renderSelector() ?>
35
+ </div>
36
+ </div>
37
+ <small class="text-muted"><?php printf( __( 'We will only charge you when your balance falls bellow %s', 'bookly' ), '<b>$10</b>' ) ?></small>
38
+ </div>
39
+
40
+ <div class="tab-pane bookly-fade" id="bookly-invoice-tab">
41
+ <form>
42
+ <div class="form-group">
43
+ <label for="bookly_sms_invoice_company_name"><?php esc_html_e( 'Company name', 'bookly' ) ?>*</label>
44
+ <input name="invoice[company_name]" type="text" class="form-control" id="bookly_sms_invoice_company_name" required value="<?php echo esc_attr( $invoice['company_name'] ) ?>">
45
+ </div>
46
+ <div class="form-group">
47
+ <label for="bookly_sms_invoice_company_address"><?php esc_html_e( 'Company address', 'bookly' ) ?>*</label>
48
+ <input name="invoice[company_address]" type="text" class="form-control" id="bookly_sms_invoice_company_address" required value="<?php echo esc_attr( $invoice['company_address'] ) ?>">
49
+ </div>
50
+ <div class="form-group">
51
+ <label for="bookly_sms_invoice_company_address_l2"><?php esc_html_e( 'Company address line 2', 'bookly' ) ?></label>
52
+ <input name="invoice[company_address_l2]" type="text" class="form-control" id="bookly_sms_invoice_company_address_l2" value="<?php echo esc_attr( $invoice['company_address_l2'] ) ?>">
53
+ </div>
54
+ <div class="form-group bookly-js-invoice-country">
55
+ <div class="bookly-js-label">N/A</div>
56
+ <small class="form-text text-muted mb-2"><?php _e( 'You can change the country <a href="#">here</a>', 'bookly' ) ?></small>
57
+ </div>
58
+ <div class="form-row">
59
+ <div class="form-group col-md-6">
60
+ <label for="bookly_sms_invoice_company_code"><?php esc_html_e( 'Company number', 'bookly' ) ?></label>
61
+ <input name="invoice[company_code]" type="text" class="form-control" id="bookly_sms_invoice_company_code" value="<?php echo esc_attr( $invoice['company_code'] ) ?>">
62
+ </div>
63
+ <div class="form-group col-md-6">
64
+ <label for="bookly_sms_invoice_company_vat"><?php esc_html_e( 'VAT / Tax number', 'bookly' ) ?></label>
65
+ <input name="invoice[company_vat]" type="text" class="form-control" id="bookly_sms_invoice_company_vat" value="<?php echo esc_attr( $invoice['company_vat'] ) ?>">
66
+ </div>
67
+ </div>
68
+ <div class="form-group">
69
+ <label for="bookly_sms_invoice_company_add_text"><?php esc_html_e( 'Additional text to include in invoice', 'bookly' ) ?></label>
70
+ <textarea name="invoice[company_add_text]" class="form-control" rows="3" id="bookly_sms_invoice_company_add_text"><?php echo esc_textarea( $invoice['company_add_text'] ) ?></textarea>
71
+ </div>
72
+ <div class="form-group border-top pt-2">
73
+ <input name="invoice[send]" value="0" class="hidden" />
74
+ <?php Inputs::renderCheckBox( 'Send invoice', 1, $invoice['send'], array( 'name' => 'invoice[send]' ) ) ?>
75
+ <small class="text-muted"><?php printf( __( 'The invoice will be sent to <a href="mailto:%1$s">%1$s</a>', 'bookly' ), Bookly\Lib\SMS::getInstance()->getUserName() ) ?></small>
76
+ </div>
77
+ <div class="form-group">
78
+ <?php Inputs::renderCheckBox( __( 'Copy invoice to another email(s)', 'bookly' ), 1, $invoice['send_copy'], array( 'name' => 'invoice[send_copy]' ) ) ?>
79
+ <input name="invoice[cc]" type="text" class="form-control mt-2" value="<?php echo esc_attr( $invoice['cc'] ) ?>">
80
+ <small class="form-text text-muted"><?php esc_html_e( 'Enter one or more email addresses separated by commas.', 'bookly' ) ?></small>
81
+ </div>
82
+ <?php Buttons::renderSubmit( 'bookly-save-invoice', null, __( 'Save invoice settings', 'bookly' ) ) ?>
83
+ </form>
84
+ </div>
85
+
86
+ <div class="tab-pane bookly-fade" id="bookly-account-notifications-tab">
87
+ <div class="form-group">
88
+ <div class="custom-control custom-checkbox">
89
+ <input class="custom-control-input" type="checkbox" id="bookly_sms_notify_low_balance" name="bookly_sms_notify_low_balance" <?php checked( get_option( 'bookly_sms_notify_low_balance' ) ) ?>>
90
+ <label class="custom-control-label" for="bookly_sms_notify_low_balance"><span><?php esc_html_e( 'Send email notification to administrators at low balance', 'bookly' ) ?></span></label>
91
+ </div>
92
+ </div>
93
+ <div class="custom-control custom-checkbox">
94
+ <input class="custom-control-input" type="checkbox" id="bookly_sms_notify_weekly_summary" name="bookly_sms_notify_weekly_summary" <?php checked( get_option( 'bookly_sms_notify_weekly_summary' ) ) ?>>
95
+ <label class="custom-control-label" for="bookly_sms_notify_weekly_summary"><span><?php esc_html_e( 'Send weekly summary to administrators', 'bookly' ) ?></span></label>
96
+ </div>
97
+ </div>
98
+
99
+ <div class="tab-pane bookly-fade" id="bookly-country-tab">
100
+ <div class="form-group">
101
+ <select id="bookly-country"></select>
102
+ <small class="text-muted"><?php esc_html_e( 'Your country is the location from where you consume Bookly SMS services and is used to provide you with the payment methods available in that country.', 'bookly' ) ?></small>
103
+ </div>
104
+ <?php Buttons::renderSubmit( 'bookly-update-country', null, __( 'Update country', 'bookly' ) ) ?>
105
+ </div>
106
+
107
+ <div class="tab-pane bookly-fade" id="bookly-change-password-tab">
108
+ <form>
109
+ <div class="form-group">
110
+ <label for="old_password"><?php esc_html_e( 'Old password', 'bookly' ) ?></label>
111
+ <input type="password" class="form-control" id="old_password" name="old_password" placeholder="<?php esc_attr_e( 'Old password', 'bookly' ) ?>" required />
112
+ </div>
113
+ <div class="form-group">
114
+ <label for="new_password"><?php esc_html_e( 'New password', 'bookly' ) ?></label>
115
+ <input type="password" class="form-control" id="new_password" name="new_password" placeholder="<?php esc_attr_e( 'New password', 'bookly' ) ?>" required />
116
+ </div>
117
+ <div class="form-group">
118
+ <label for="new_password_repeat"><?php esc_html_e( 'Repeat new password', 'bookly' ) ?></label>
119
+ <input type="password" class="form-control" id="new_password_repeat" placeholder="<?php esc_attr_e( 'Repeat new password', 'bookly' ) ?>" required />
120
+ </div>
121
+ <?php Buttons::renderSubmit( 'bookly-change-password', null, __( 'Change password', 'bookly' ) ) ?>
122
+ </form>
123
+ </div>
124
+ </div>
125
+ </div>
126
+ </div>
127
+ </div>
128
+ <div class="modal-footer">
129
+ <?php Buttons::renderCancel( __( 'Close', 'bookly' ) ) ?>
130
+ </div>
131
+ </div>
132
+ </div>
133
+ </div>
134
+
135
+ <?php Recharge\Amounts\Auto\Button::renderConfirmModal() ?>
136
+ <?php if ( ! $sms->getCountry() ): ?>
137
+ <?php include '_setup_country.php' ?>
138
+ <?php endif ?>
backend/modules/sms/templates/_setup_country.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Controls\Buttons;
3
+ ?>
4
+ <div class="bookly-modal bookly-fade" id="bookly-setup-country" tabindex=-1 role="dialog">
5
+ <div class="modal-dialog">
6
+ <div class="modal-content">
7
+ <div class="modal-header">
8
+ <h5 class="modal-title"><?php esc_html_e( 'Setup your country', 'bookly' ) ?></h5>
9
+ <button type="button" class="close" data-dismiss="bookly-modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
10
+ </div>
11
+ <div class="modal-body">
12
+ <div class="alert alert-danger" role="alert">
13
+ <p>
14
+ <?php esc_html_e( 'Please spend a minute to setup your country. This will help us provide you with appropriate payment methods when replenishing your account.', 'bookly' ) ?>
15
+ </p>
16
+ <p class="mb-0">
17
+ <?php esc_html_e( 'The country will also be displayed in the invoice on a separate line below the company address. Make sure the other fields in the invoice do not contain the name of the country.', 'bookly' ) ?>
18
+ </p>
19
+ </div>
20
+ <div class="form-group mt-2">
21
+ <select id="bookly-s-country"></select>
22
+ <small class="text-muted"><?php esc_html_e( 'Your country is the location from where you consume Bookly SMS services and is used to provide you with the payment methods available in that country', 'bookly' ) ?></small>
23
+ </div>
24
+ </div>
25
+ <div class="modal-footer">
26
+ <?php Buttons::renderSubmit( 'bookly-set-country', null, __( 'Set country', 'bookly' ) ) ?>
27
+ <?php Buttons::renderCancel( __( 'I\'ll do it later', 'bookly' ) ) ?>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </div>
backend/modules/sms/templates/index.php CHANGED
@@ -1,9 +1,11 @@
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
- use Bookly\Backend\Components\Controls\Inputs;
3
- use Bookly\Backend\Components\Controls\Buttons;
4
  use Bookly\Backend\Components\Support;
5
- use Bookly\Backend\Components\Dialogs;
6
- /** @var Bookly\Lib\SMS $sms */
 
 
 
 
7
  ?>
8
  <div id="bookly-tbs" class="wrap">
9
  <div class="form-row align-items-center mb-3">
@@ -12,206 +14,62 @@ use Bookly\Backend\Components\Dialogs;
12
  </div>
13
  <div class="card">
14
  <div class="card-body">
15
- <?php if ( $is_logged_in ) : ?>
16
- <div class="form-row">
17
- <div class="col-xs-6 col-sm-8 col-md-9">
18
- <div class="form-row">
19
- <div class="col-sm-7">
20
- <h4><?php esc_html_e( 'Your balance', 'bookly' ) ?>: <b>$<?php echo $sms->getBalance() ?></b></h4>
21
- <div class="bookly-js-checkboxes" style="padding-left: 14px">
22
- <img src="<?php echo plugins_url( 'bookly-responsive-appointment-booking-tool/backend/resources/images/loading.gif' ) ?>" style="display: none; position: absolute; margin-top: 4px;">
23
- <?php Inputs::renderCheckBox( __( 'Send email notification to administrators at low balance', 'bookly' ), null, get_option( 'bookly_sms_notify_low_balance' ), array( 'name' => 'bookly_sms_notify_low_balance' ) ) ?>
24
- <img src="<?php echo plugins_url( 'bookly-responsive-appointment-booking-tool/backend/resources/images/loading.gif' ) ?>" style="display: none; position: absolute; margin-top: 4px;">
25
- <?php Inputs::renderCheckBox( __( 'Send weekly summary to administrators', 'bookly' ), null, get_option( 'bookly_sms_notify_weekly_summary' ), array( 'name' => 'bookly_sms_notify_weekly_summary' ) ) ?>
26
- </div>
27
- </div>
28
- <div class="col-sm-5">
29
- <h5><?php esc_html_e( 'Sender ID', 'bookly' ) ?>: <b class="bookly-js-sender-id"><?php echo $sms->getSenderId() ?></b> <small><a id="bookly-open-tab-sender-id" href="#"><?php esc_html_e( 'Change', 'bookly' ) ?></a></small>
30
- <?php if ( $sms->getSenderIdApprovalDate() ) : ?>
31
- <span class="text-muted text-form bookly-js-sender-id-approval-date"><?php esc_html_e( 'Approved at', 'bookly' ) ?>: <strong><?php echo \Bookly\Lib\Utils\DateTime::formatDate( $sms->getSenderIdApprovalDate() ) ?></strong></span>
32
- <?php endif ?>
33
- </h5>
34
- </div>
35
- </div>
36
- </div>
37
- <div class="col-xs-6 col-sm-4 col-md-3 text-right">
38
- <form method="post" class="btn-group">
39
- <button type="button" class="btn btn-success" data-toggle="bookly-modal" href="#modal_change_password">
40
- <i class="far fa-fw fa-user"></i>
41
- <?php echo $sms->getUserName() ?>
42
  </button>
43
- <button class="btn btn-default" type="submit" name="form-logout"><?php esc_html_e( 'Log out', 'bookly' ) ?></button>
44
- </form>
 
 
45
  </div>
46
  </div>
 
47
 
48
- <?php $self::renderTemplate( '_invoice', array( 'invoice' => $sms->getInvoiceData() ) ) ?>
49
- <ul class="nav nav-tabs mb-3" id="sms_tabs">
50
- <li class="nav-item"><a class="nav-link active" data-toggle="bookly-tab" href="#notifications"><?php esc_html_e( 'Notifications', 'bookly' ) ?></a></li>
51
- <li class="nav-item"><a class="nav-link" data-toggle="bookly-tab" href="#add_money"><?php esc_html_e( 'Add money', 'bookly' ) ?></a></li>
52
- <li class="nav-item"><a class="nav-link" data-toggle="bookly-tab" href="#auto_recharge"><?php esc_html_e( 'Auto-Recharge', 'bookly' ) ?></a></li>
53
- <li class="nav-item"><a class="nav-link" data-toggle="bookly-tab" href="#purchases"><?php esc_html_e( 'Purchases', 'bookly' ) ?></a></li>
54
- <li class="nav-item"><a class="nav-link" data-toggle="bookly-tab" href="#sms_details"><?php esc_html_e( 'SMS Details', 'bookly' );
55
- if ( $undelivered_count ) : ?> <span class="badge bg-danger"><?php echo $undelivered_count ?></span><?php endif ?></a> </li>
56
- <li class="nav-item"><a class="nav-link" data-toggle="bookly-tab" href="#price_list"><?php esc_html_e( 'Price list', 'bookly' ) ?></a></li>
57
- <li class="nav-item"><a class="nav-link" data-toggle="bookly-tab" href="#sender_id"><?php esc_html_e( 'Sender ID', 'bookly' ) ?></a></li>
58
- </ul>
59
- <?php endif ?>
60
-
61
- <?php if ( $is_logged_in ) : ?>
62
- <div class="tab-content mt-3">
63
- <div class="tab-pane active" id="notifications"><?php include '_notifications.php' ?></div>
64
- <div class="tab-pane" id="add_money"><?php include '_buttons.php' ?></div>
65
- <div class="tab-pane" id="auto_recharge"><?php include '_auto_recharge.php' ?></div>
66
- <div class="tab-pane" id="purchases"><?php include '_purchases.php' ?></div>
67
- <div class="tab-pane" id="sms_details"><?php include '_sms_details.php' ?></div>
68
- <div class="tab-pane" id="price_list"><?php include '_price.php' ?></div>
69
- <div class="tab-pane" id="sender_id"><?php include '_sender_id.php' ?></div>
70
- </div>
71
- <?php else : ?>
72
- <div class="alert alert-info">
73
- <p><?php esc_html_e( 'SMS Notifications (or "Bookly SMS") is a service for notifying your customers via text messages which are sent to mobile phones.', 'bookly' ) ?></p>
74
- <p><?php esc_html_e( 'It is necessary to register in order to start using this service.', 'bookly' ) ?></p>
75
- <p><?php esc_html_e( 'After registration you will need to configure notification messages and top up your balance in order to start sending SMS.', 'bookly' ) ?></p>
76
- </div>
77
- <div class="row">
78
- <div class="col-md-4">
79
- <div class="card">
80
- <div class="card-body bookly-js-confirm-form"<?php if ( $show_form !== 'confirm' ) : ?> style="display: none;"<?php endif ?>>
81
- <legend><?php esc_html_e( 'Thank you for registration.', 'bookly' ) ?></legend>
82
- <p><?php esc_html_e( 'You\'re almost ready to get started with Bookly SMS Service.', 'bookly' ) ?></p>
83
- <p><?php esc_html_e( 'An email containing the confirmation code has been sent to your email address.', 'bookly' ) ?></p>
84
- <p>
85
- <?php esc_html_e( 'To complete registration, please enter the confirmation code below.', 'bookly' ) ?>
86
- </p>
87
- <div class="input-group mb-3">
88
- <input type="text" class="form-control bookly-js-confirmation-code" placeholder="<?php esc_attr_e( 'Confirmation code', 'bookly') ?>" aria-label="Recipient's username" aria-describedby="basic-addon2">
89
- <div class="input-group-append">
90
- <?php Buttons::render( 'bookly-js-confirm-sms-account', 'btn-success', __( 'Confirm' ) ); ?>
91
- </div>
92
- </div>
93
- <hr>
94
- <h6>
95
- <b><?php esc_html_e( 'Didn\'t receive the email?', 'bookly' ) ?></b>
96
- </h6>
97
- <ol>
98
- <li>
99
- <?php printf( esc_html__( 'Is %s the correct email?', 'bookly' ), sprintf( '<a href="mailto:%1$s">%1$s</a>', get_option( 'bookly_sms_unverified_username' ) ) ) ?>
100
- <br><?php printf( esc_html__( 'If not, you can %s restart the registration process%s.', 'bookly' ), '<a href="#" class="bookly-js-show-register-form">', '</a>' ) ?>
101
- </li>
102
- <li>
103
- <?php esc_html_e( 'Check your spam folder.', 'bookly' ) ?>
104
- </li>
105
- <li>
106
- <?php printf( esc_html__( 'Click %s here %s to resend the email.', 'bookly' ), '<a href="#" class="bookly-js-resend-confirmation">', '</a>' ) ?>
107
- </li>
108
- </ol>
109
- </div>
110
-
111
- <form method="post" class="card-body bookly-js-login-form" action="<?php echo esc_url( remove_query_arg( array( 'paypal_result', 'auto-recharge', 'tab', ) ) ) ?>" style="display: none;">
112
- <h5 class="cart-title"><?php esc_html_e( 'Login', 'bookly' ) ?></h5>
113
- <div class="form-group">
114
- <label for="bookly-username"><?php esc_html_e( 'Email', 'bookly' ) ?></label>
115
- <input id="bookly-username" class="form-control" type="text" required="required" value="" name="username">
116
- </div>
117
- <div class="form-group">
118
- <label for="bookly-password"><?php esc_html_e( 'Password', 'bookly' ) ?></label>
119
- <input id="bookly-password" class="form-control" type="password" required="required" name="password">
120
- </div>
121
-
122
- <button type="submit" name="form-login" class="btn btn-success mb-2"><?php esc_html_e( 'Log In', 'bookly' ) ?></button>
123
- <a href="#" class="bookly-js-show-register-form mx-2"><?php esc_html_e( 'Registration', 'bookly' ) ?></a><br>
124
- <a href="#" class="bookly-js-show-forgot-form"><?php esc_html_e( 'Forgot password', 'bookly' ) ?></a>
125
- </form>
126
-
127
- <form method="post" class="card-body bookly-js-register-form"<?php if ( $show_form !== 'registration' ) : ?> style="display: none;"<?php endif ?>>
128
- <h5 class="rard-title"><?php esc_html_e( 'Registration', 'bookly' ) ?></h5>
129
- <div class="form-group">
130
- <label for="bookly-r-username"><?php esc_html_e( 'Email', 'bookly' ) ?></label>
131
- <input id="bookly-r-username" name="username" class="form-control" required="required" value="" type="text">
132
- </div>
133
- <div class="form-group">
134
- <label for="bookly-r-password"><?php esc_html_e( 'Password', 'bookly' ) ?></label>
135
- <input id="bookly-r-password" name="password" class="form-control" required="required" value="" type="password">
136
- </div>
137
- <div class="form-group">
138
- <label for="bookly-r-repeat-password"><?php esc_html_e( 'Repeat password', 'bookly' ) ?></label>
139
- <input id="bookly-r-repeat-password" name="password_repeat" class="form-control" required="required" value="" type="password">
140
- </div>
141
- <div class="form-group">
142
- <div class="custom-control custom-checkbox">
143
- <input class="custom-control-input" type="checkbox" id="bookly-r-tos" name="accept_tos" required="required" value="1">
144
- <label class="custom-control-label" for="bookly-r-tos">
145
- <?php printf( __( 'I accept <a href="%1$s" target="_blank">Service Terms</a> and <a href="%2$s" target="_blank">Privacy Policy</a>', 'bookly' ), 'https://www.booking-wp-plugin.com/terms/', 'https://www.booking-wp-plugin.com/privacy/' ) ?>
146
- </label>
147
- </div>
148
- </div>
149
 
150
- <button type="submit" name="form-registration" class="btn btn-success mr-2"><?php esc_html_e( 'Register', 'bookly' ) ?></button>
151
- <a href="#" class="bookly-js-show-login-form"><?php esc_html_e( 'Log In', 'bookly' ) ?></a>
152
- </form>
153
-
154
- <form method="post" class="card-body bookly-js-forgot-form" style="display: none;">
155
- <h5 class="card-title"><?php esc_html_e( 'Forgot password', 'bookly' ) ?></h5>
156
- <div class="form-group">
157
- <input name="username" class="form-control" value="" type="text" placeholder="<?php esc_attr_e( 'Email', 'bookly' ) ?>"/>
158
- </div>
159
- <div class="form-group hidden">
160
- <input name="code" class="form-control" value="" type="text" placeholder="<?php esc_attr_e( 'Enter code from email', 'bookly' ) ?>"/>
161
- </div>
162
- <div class="form-group hidden">
163
- <input name="password" class="form-control" value="" type="password" placeholder="<?php esc_attr_e( 'New password', 'bookly' ) ?>"/>
164
- </div>
165
- <div class="form-group hidden">
166
- <input name="password_repeat" class="form-control" value="" type="password" placeholder="<?php esc_attr_e( 'Repeat new password', 'bookly' ) ?>"/>
167
- </div>
168
- <div class="form-group">
169
- <button class="btn btn-success bookly-js-form-forgot-next mr-2" data-step="0"><?php esc_html_e( 'Next', 'bookly' ) ?></button>
170
- <a href="#" class="bookly-js-show-login-form"><?php esc_html_e( 'Log In', 'bookly' ) ?></a>
171
- </div>
172
- </form>
173
- </div>
174
- </div>
175
- <div class="col-md-8">
176
- <?php include '_price.php' ?>
177
- </div>
178
- </div>
179
- <?php endif ?>
180
  </div>
181
  </div>
182
 
183
- <?php if ( $is_logged_in ) : ?>
184
- <div class="bookly-modal bookly-fade" id="modal_change_password" tabindex=-1 role="dialog">
185
- <form id="form-change-password">
186
- <div class="modal-dialog modal-sm">
187
- <div class="modal-content">
188
- <div class="modal-header">
189
- <h5 class="modal-title"><?php esc_html_e( 'Change password', 'bookly' ) ?></h5>
190
- <button type="button" class="close" data-dismiss="bookly-modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
191
- </div>
192
- <div class="modal-body">
193
- <div class="form-group">
194
- <label for="old_password"><?php esc_html_e( 'Old password', 'bookly' ) ?></label>
195
- <input type="password" class="form-control" id="old_password" name="old_password" placeholder="<?php esc_attr_e( 'Old password', 'bookly' ) ?>">
196
- </div>
197
- <div class="form-group">
198
- <label for="new_password"><?php esc_html_e( 'New password', 'bookly' ) ?></label>
199
- <input type="password" class="form-control" id="new_password" name="new_password" placeholder="<?php esc_attr_e( 'New password', 'bookly' ) ?>">
200
- </div>
201
- <div class="form-group">
202
- <label for="new_password_repeat"><?php esc_html_e( 'Repeat new password', 'bookly' ) ?></label>
203
- <input type="password" class="form-control" id="new_password_repeat" placeholder="<?php esc_attr_e( 'Repeat new password', 'bookly' ) ?>">
204
- </div>
205
- </div>
206
- <div class="modal-footer">
207
- <?php Inputs::renderCsrf() ?>
208
- <?php Buttons::renderSubmit( 'ajax-send-change-password', 'btn-sm' ) ?>
209
- </div>
210
- <input type="hidden" name="action" value="bookly_change_password">
211
- </div>
212
- </div>
213
- </form>
214
- </div>
215
  <?php endif ?>
216
- <?php Dialogs\TableSettings\Dialog::render() ?>
217
  </div>
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
 
 
2
  use Bookly\Backend\Components\Support;
3
+ use Bookly\Backend\Components\Dialogs\TableSettings;
4
+ use Bookly\Backend\Components\Dialogs\Recharge;
5
+ /**
6
+ * @var Bookly\Lib\SMS $sms
7
+ * @var int $undelivered_count
8
+ */
9
  ?>
10
  <div id="bookly-tbs" class="wrap">
11
  <div class="form-row align-items-center mb-3">
14
  </div>
15
  <div class="card">
16
  <div class="card-body">
17
+ <div class="row mb-3">
18
+ <div class="col">
19
+ <p class="h6 m-0 p-0"><strong><?php esc_html_e( 'Sender ID', 'bookly' ) ?>:</strong> <a href="#" id="bookly-open-tab-sender-id"><?php echo esc_html( $sms->getSenderId() ) ?>
20
+ <i class="fas fa-pencil-alt ml-1"></i></a></p>
21
+ <?php if ( $sms->getSenderIdApprovalDate() ) : ?>
22
+ <p class="h6 small m-0 p-0 mb-1 mr-1 text-muted text-form bookly-js-sender-id-approval-date"><?php esc_html_e( 'Approved at', 'bookly' ) ?>:
23
+ <strong><?php echo \Bookly\Lib\Utils\DateTime::formatDate( $sms->getSenderIdApprovalDate() ) ?></strong></p>
24
+ <?php else: ?>
25
+ <p class="h6 small m-0 p-0 mb-1 mr-1 text-muted"><?php esc_html_e( 'Change the sender\'s name to your phone number or any other name', 'bookly' ) ?></p>
26
+ <?php endif ?>
27
+ </div>
28
+ <div class="col-auto">
29
+ <?php Recharge\Amounts\Manual\Button::renderBalance() ?>
30
+ <div class="btn-group">
31
+ <button type="button" id="bookly-open-account-settings" class="btn <?php echo $sms->getEmailConfirmed() ? 'btn-primary' : 'btn-danger' ?> text-truncate" data-toggle="bookly-modal" href="#bookly-account-settings"
32
+ <?php if ( ! get_user_meta( get_current_user_id(), 'bookly_dismiss_sms_account_settings_notice', true ) ): ?>
33
+ data-content="<?php echo esc_attr( '<button type="button" class="close ml-2"><span>&times;</span></button>' . __( 'Click this button to access your Bookly SMS account settings', 'bookly' ) ) ?>"
34
+ <?php endif ?>
35
+ >
36
+ <i class="fas <?php echo $sms->getEmailConfirmed() ? 'fa-user' : 'fa-user-slash' ?>"></i><span class="d-none d-sm-inline ml-2"><?php echo $sms->getUserName() ?></span>
37
+ </button>
38
+ <?php if ( ! $sms->getEmailConfirmed() ) : ?>
39
+ <button id="bookly-open-email-confirm" type="button" class="btn btn-success text-nowrap ladda-button" data-spinner-color="#666666" data-style="zoom-in" data-spinner-size="40">
40
+ <span class="ladda-label"><i class="fas fa-exclamation-circle"></i><span class="d-none d-md-inline-block ml-2"><?php esc_html_e( 'Confirm email', 'bookly' ) ?>…</span></span>
 
 
 
41
  </button>
42
+ <?php endif ?>
43
+ <button id="bookly-logout" type="button" class="btn btn-white border text-nowrap rounded-right ladda-button" data-spinner-color="#666666" data-style="zoom-in" data-spinner-size="40">
44
+ <span class="ladda-label"><i class="fas fa-sign-out-alt"></i><span class="d-none d-md-inline-block ml-2"><?php esc_html_e( 'Log out', 'bookly' ) ?></span></span>
45
+ </button>
46
  </div>
47
  </div>
48
+ </div>
49
 
50
+ <ul class="nav nav-tabs mb-3" id="sms_tabs">
51
+ <li class="nav-item"><a class="nav-link active" data-toggle="bookly-tab" href="#notifications"><?php esc_html_e( 'Notifications', 'bookly' ) ?></a></li>
52
+ <li class="nav-item"><a class="nav-link" data-toggle="bookly-tab" href="#purchases"><?php esc_html_e( 'Purchases', 'bookly' ) ?></a></li>
53
+ <li class="nav-item"><a class="nav-link" data-toggle="bookly-tab" href="#sms_details"><?php esc_html_e( 'SMS Details', 'bookly' );
54
+ if ( $undelivered_count ) : ?> <span class="badge bg-danger"><?php echo $undelivered_count ?></span><?php endif ?></a></li>
55
+ <li class="nav-item"><a class="nav-link" data-toggle="bookly-tab" href="#price_list"><?php esc_html_e( 'Price list', 'bookly' ) ?></a></li>
56
+ <li class="nav-item"><a class="nav-link" data-toggle="bookly-tab" href="#sender_id"><?php esc_html_e( 'Sender ID', 'bookly' ) ?></a></li>
57
+ </ul>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
+ <div class="tab-content mt-3">
60
+ <div class="tab-pane active" id="notifications"><?php include '_notifications.php' ?></div>
61
+ <div class="tab-pane" id="purchases"><?php include '_purchases.php' ?></div>
62
+ <div class="tab-pane" id="sms_details"><?php include '_sms_details.php' ?></div>
63
+ <div class="tab-pane" id="price_list"><?php include '_price.php' ?></div>
64
+ <div class="tab-pane" id="sender_id"><?php include '_sender_id.php' ?></div>
65
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  </div>
67
  </div>
68
 
69
+ <?php include '_settings.php' ?>
70
+ <?php Recharge\Dialog::render() ?>
71
+ <?php TableSettings\Dialog::render() ?>
72
+ <?php if ( ! $sms->getEmailConfirmed() ) : ?>
73
+ <?php include '_confirm_email.php' ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  <?php endif ?>
 
75
  </div>
backend/modules/sms/templates/index_registration.php ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Controls\Buttons;
3
+ use Bookly\Backend\Components\Support;
4
+ use Bookly\Backend\Components\Dialogs\TableSettings;
5
+ /**
6
+ * @var array $registration_promotion_texts
7
+ */
8
+ ?>
9
+ <div id="bookly-tbs" class="wrap">
10
+ <div class="form-row align-items-center mb-3">
11
+ <h4 class="col m-0"><?php esc_html_e( 'SMS Notifications', 'bookly' ) ?></h4>
12
+ <?php Support\Buttons::render( $self::pageSlug() ) ?>
13
+ </div>
14
+ <div class="card">
15
+ <div class="card-body">
16
+ <div class="alert alert-info">
17
+ <p><?php esc_html_e( 'SMS Notifications (or "Bookly SMS") is a service for notifying your customers via text messages which are sent to mobile phones.', 'bookly' ) ?></p>
18
+ <p><?php esc_html_e( 'It is necessary to register in order to start using this service.', 'bookly' ) ?></p>
19
+ <p><?php esc_html_e( 'After registration you will need to configure notification messages and top up your balance in order to start sending SMS.', 'bookly' ) ?></p>
20
+ </div>
21
+ <div class="row">
22
+ <div class="col-md-4">
23
+ <div class="card">
24
+ <form class="card-body bookly-js-login-form" style="display: none;">
25
+ <h5 class="cart-title"><?php esc_html_e( 'Login', 'bookly' ) ?></h5>
26
+ <div class="form-group">
27
+ <label for="bookly-username"><?php esc_html_e( 'Email', 'bookly' ) ?></label>
28
+ <input id="bookly-username" class="form-control" type="text" required="required" value="" name="username">
29
+ </div>
30
+ <div class="form-group">
31
+ <label for="bookly-password"><?php esc_html_e( 'Password', 'bookly' ) ?></label>
32
+ <input id="bookly-password" class="form-control" type="password" required="required" name="password">
33
+ </div>
34
+
35
+ <?php Buttons::renderSubmit( null, 'mb-2', __( 'Log In', 'bookly' ), array( 'name' => 'submit' ) ) ?>
36
+ <a href="#" class="bookly-js-show-register-form mx-2"><?php esc_html_e( 'Registration', 'bookly' ) ?></a><br>
37
+ <a href="#" class="bookly-js-show-forgot-form"><?php esc_html_e( 'Forgot password', 'bookly' ) ?></a>
38
+ </form>
39
+
40
+ <form method="post" class="card-body bookly-js-register-form">
41
+ <h5 class="card-title"><?php esc_html_e( 'Registration', 'bookly' ) ?></h5>
42
+ <?php if ( $registration_promotion_texts['form'] ): ?>
43
+ <div class="form-group"><?php echo $registration_promotion_texts['form'] ?></div>
44
+ <?php endif ?>
45
+ <div class="form-group">
46
+ <label for="bookly-r-username"><?php esc_html_e( 'Email', 'bookly' ) ?></label>
47
+ <input id="bookly-r-username" name="username" class="form-control" required="required" value="" type="text">
48
+ </div>
49
+ <div class="form-group">
50
+ <label for="bookly-r-password"><?php esc_html_e( 'Password', 'bookly' ) ?></label>
51
+ <input id="bookly-r-password" name="password" class="form-control" required="required" value="" type="password">
52
+ </div>
53
+ <div class="form-group">
54
+ <label for="bookly-r-repeat-password"><?php esc_html_e( 'Repeat password', 'bookly' ) ?></label>
55
+ <input id="bookly-r-repeat-password" name="password_repeat" class="form-control" required="required" value="" type="password">
56
+ </div>
57
+ <div class="form-group">
58
+ <label for="bookly-r-country"><?php esc_html_e( 'Country', 'bookly' ) ?></label>
59
+ <select id="bookly-r-country" name="country"></select>
60
+ <small class="text-muted"><?php esc_html_e( 'Your country is the location from where you consume Bookly SMS services and is used to provide you with the payment methods available in that country', 'bookly' ) ?></small>
61
+ </div>
62
+ <div class="form-group">
63
+ <div class="custom-control custom-checkbox">
64
+ <input class="custom-control-input" type="checkbox" id="bookly-r-tos" name="accept_tos" required="required" value="1">
65
+ <label class="custom-control-label" for="bookly-r-tos">
66
+ <?php printf( __( 'I accept <a href="%1$s" target="_blank">Service Terms</a> and <a href="%2$s" target="_blank">Privacy Policy</a>', 'bookly' ), 'https://www.booking-wp-plugin.com/terms/', 'https://www.booking-wp-plugin.com/privacy/' ) ?>
67
+ </label>
68
+ </div>
69
+ </div>
70
+ <div class="btn-group mr-2">
71
+ <?php Buttons::renderSubmit( null, null, __( 'Register', 'bookly' ), array( 'name' => 'form-registration' ) ) ?>
72
+ <?php if ( $registration_promotion_texts['button'] ) : ?>
73
+ <div class="border border-left-0 rounded px-2 d-flex align-items-center">
74
+ <h6 class="m-0"><?php echo $registration_promotion_texts['button'] ?></h6>
75
+ </div>
76
+ <?php endif ?>
77
+ </div>
78
+ <a href="#" class="bookly-js-show-login-form"><?php esc_html_e( 'Log In', 'bookly' ) ?></a>
79
+ </form>
80
+
81
+ <form method="post" class="card-body bookly-js-forgot-form" style="display: none;">
82
+ <h5 class="card-title"><?php esc_html_e( 'Forgot password', 'bookly' ) ?></h5>
83
+ <div class="form-group">
84
+ <input name="username" class="form-control" value="" type="text" placeholder="<?php esc_attr_e( 'Email', 'bookly' ) ?>"/>
85
+ </div>
86
+ <div class="form-group hidden">
87
+ <input name="code" class="form-control" value="" type="text" placeholder="<?php esc_attr_e( 'Enter code from email', 'bookly' ) ?>"/>
88
+ </div>
89
+ <div class="form-group hidden">
90
+ <input name="password" class="form-control" value="" type="password" placeholder="<?php esc_attr_e( 'New password', 'bookly' ) ?>"/>
91
+ </div>
92
+ <div class="form-group hidden">
93
+ <input name="password_repeat" class="form-control" value="" type="password" placeholder="<?php esc_attr_e( 'Repeat new password', 'bookly' ) ?>"/>
94
+ </div>
95
+ <div class="form-group">
96
+ <button class="btn btn-success bookly-js-form-forgot-next mr-2" data-step="0"><?php esc_html_e( 'Next', 'bookly' ) ?></button>
97
+ <a href="#" class="bookly-js-show-login-form"><?php esc_html_e( 'Log In', 'bookly' ) ?></a>
98
+ </div>
99
+ </form>
100
+ </div>
101
+ </div>
102
+ <div class="col-md-8">
103
+ <?php include '_price.php' ?>
104
+ </div>
105
+ </div>
106
+ </div>
107
+ </div>
108
+
109
+ <?php TableSettings\Dialog::render() ?>
110
+ </div>
backend/modules/staff/resources/js/staff-list.js CHANGED
@@ -60,7 +60,7 @@ jQuery(function ($) {
60
  searchable : false,
61
  width : 90,
62
  render : function (data, type, row, meta) {
63
- return '<button type="button" class="btn btn-default" data-action="edit"><i class="far fa-fw fa-edit mr-1"></i>' + BooklyL10n.edit + '…</a>';
64
  }
65
  });
66
  columns.push({
60
  searchable : false,
61
  width : 90,
62
  render : function (data, type, row, meta) {
63
+ return '<button type="button" class="btn btn-default" data-action="edit"><i class="far fa-fw fa-edit mr-1"></i>' + BooklyL10n.edit + '…</button>';
64
  }
65
  });
66
  columns.push({
backend/resources/bootstrap/css/bootstrap.min.css CHANGED
@@ -3,4 +3,4 @@
3
  * Copyright 2011-2019 The Bootstrap Authors
4
  * Copyright 2011-2019 Twitter, Inc.
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
- */#bookly-tbs{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:transparent}#bookly-tbs *,#bookly-tbs ::after,#bookly-tbs ::before{box-sizing:border-box}#bookly-tbs html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}#bookly-tbs article,#bookly-tbs aside,#bookly-tbs figcaption,#bookly-tbs figure,#bookly-tbs footer,#bookly-tbs header,#bookly-tbs hgroup,#bookly-tbs main,#bookly-tbs nav,#bookly-tbs section{display:block}#bookly-tbs body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}#bookly-tbs [tabindex="-1"]:focus:not(:focus-visible){outline:0!important}#bookly-tbs hr{box-sizing:content-box;height:0;overflow:visible}#bookly-tbs h1,#bookly-tbs h2,#bookly-tbs h3,#bookly-tbs h4,#bookly-tbs h5,#bookly-tbs h6{margin-top:0;margin-bottom:.5rem}#bookly-tbs p{margin-top:0;margin-bottom:1rem}#bookly-tbs abbr[data-original-title],#bookly-tbs abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}#bookly-tbs address{margin-bottom:1rem;font-style:normal;line-height:inherit}#bookly-tbs dl,#bookly-tbs ol,#bookly-tbs ul{margin-top:0;margin-bottom:1rem}#bookly-tbs ol ol,#bookly-tbs ol ul,#bookly-tbs ul ol,#bookly-tbs ul ul{margin-bottom:0}#bookly-tbs dt{font-weight:700}#bookly-tbs dd{margin-bottom:.5rem;margin-left:0}#bookly-tbs blockquote{margin:0 0 1rem}#bookly-tbs b,#bookly-tbs strong{font-weight:bolder}#bookly-tbs small{font-size:80%}#bookly-tbs sub,#bookly-tbs sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}#bookly-tbs sub{bottom:-.25em}#bookly-tbs sup{top:-.5em}#bookly-tbs a{color:#007bff;text-decoration:none;background-color:transparent}#bookly-tbs a:hover{color:#0056b3;text-decoration:underline}#bookly-tbs a:not([href]){color:inherit;text-decoration:none}#bookly-tbs a:not([href]):hover{color:inherit;text-decoration:none}#bookly-tbs code,#bookly-tbs kbd,#bookly-tbs pre,#bookly-tbs samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}#bookly-tbs pre{margin-top:0;margin-bottom:1rem;overflow:auto}#bookly-tbs figure{margin:0 0 1rem}#bookly-tbs img{vertical-align:middle;border-style:none}#bookly-tbs svg{overflow:hidden;vertical-align:middle}#bookly-tbs table{border-collapse:collapse}#bookly-tbs caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}#bookly-tbs th{text-align:inherit}#bookly-tbs label{display:inline-block;margin-bottom:.5rem}#bookly-tbs button{border-radius:0}#bookly-tbs button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}#bookly-tbs button,#bookly-tbs input,#bookly-tbs optgroup,#bookly-tbs select,#bookly-tbs textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}#bookly-tbs button,#bookly-tbs input{overflow:visible}#bookly-tbs button,#bookly-tbs select{text-transform:none}#bookly-tbs select{word-wrap:normal}#bookly-tbs [type=button],#bookly-tbs [type=reset],#bookly-tbs [type=submit],#bookly-tbs button{-webkit-appearance:button}#bookly-tbs [type=button]:not(:disabled),#bookly-tbs [type=reset]:not(:disabled),#bookly-tbs [type=submit]:not(:disabled),#bookly-tbs button:not(:disabled){cursor:pointer}#bookly-tbs [type=button]::-moz-focus-inner,#bookly-tbs [type=reset]::-moz-focus-inner,#bookly-tbs [type=submit]::-moz-focus-inner,#bookly-tbs button::-moz-focus-inner{padding:0;border-style:none}#bookly-tbs input[type=checkbox],#bookly-tbs input[type=radio]{box-sizing:border-box;padding:0}#bookly-tbs input[type=date],#bookly-tbs input[type=datetime-local],#bookly-tbs input[type=month],#bookly-tbs input[type=time]{-webkit-appearance:listbox}#bookly-tbs textarea{overflow:auto;resize:vertical}#bookly-tbs fieldset{min-width:0;padding:0;margin:0;border:0}#bookly-tbs legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}#bookly-tbs progress{vertical-align:baseline}#bookly-tbs [type=number]::-webkit-inner-spin-button,#bookly-tbs [type=number]::-webkit-outer-spin-button{height:auto}#bookly-tbs [type=search]{outline-offset:-2px;-webkit-appearance:none}#bookly-tbs [type=search]::-webkit-search-decoration{-webkit-appearance:none}#bookly-tbs ::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}#bookly-tbs output{display:inline-block}#bookly-tbs summary{display:list-item;cursor:pointer}#bookly-tbs template{display:none}#bookly-tbs [hidden]{display:none!important}#bookly-tbs .h1,#bookly-tbs .h2,#bookly-tbs .h3,#bookly-tbs .h4,#bookly-tbs .h5,#bookly-tbs .h6,#bookly-tbs h1,#bookly-tbs h2,#bookly-tbs h3,#bookly-tbs h4,#bookly-tbs h5,#bookly-tbs h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}#bookly-tbs .h1,#bookly-tbs h1{font-size:2.5rem}#bookly-tbs .h2,#bookly-tbs h2{font-size:2rem}#bookly-tbs .h3,#bookly-tbs h3{font-size:1.75rem}#bookly-tbs .h4,#bookly-tbs h4{font-size:1.5rem}#bookly-tbs .h5,#bookly-tbs h5{font-size:1.25rem}#bookly-tbs .h6,#bookly-tbs h6{font-size:1rem}#bookly-tbs .lead{font-size:1.25rem;font-weight:300}#bookly-tbs .display-1{font-size:6rem;font-weight:300;line-height:1.2}#bookly-tbs .display-2{font-size:5.5rem;font-weight:300;line-height:1.2}#bookly-tbs .display-3{font-size:4.5rem;font-weight:300;line-height:1.2}#bookly-tbs .display-4{font-size:3.5rem;font-weight:300;line-height:1.2}#bookly-tbs hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}#bookly-tbs .small,#bookly-tbs small{font-size:80%;font-weight:400}#bookly-tbs .mark,#bookly-tbs mark{padding:.2em;background-color:#fcf8e3}#bookly-tbs .list-unstyled{padding-left:0;list-style:none}#bookly-tbs .list-inline{padding-left:0;list-style:none}#bookly-tbs .list-inline-item{display:inline-block}#bookly-tbs .list-inline-item:not(:last-child){margin-right:.5rem}#bookly-tbs .initialism{font-size:90%;text-transform:uppercase}#bookly-tbs .blockquote{margin-bottom:1rem;font-size:1.25rem}#bookly-tbs .blockquote-footer{display:block;font-size:80%;color:#6c757d}#bookly-tbs .blockquote-footer::before{content:"\2014\00A0"}#bookly-tbs .img-fluid{max-width:100%;height:auto}#bookly-tbs .img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}#bookly-tbs .figure{display:inline-block}#bookly-tbs .figure-img{margin-bottom:.5rem;line-height:1}#bookly-tbs .figure-caption{font-size:90%;color:#6c757d}#bookly-tbs code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>#bookly-tbs code{color:inherit}#bookly-tbs kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}#bookly-tbs kbd kbd{padding:0;font-size:100%;font-weight:700}#bookly-tbs pre{display:block;font-size:87.5%;color:#212529}#bookly-tbs pre code{font-size:inherit;color:inherit;word-break:normal}#bookly-tbs .pre-scrollable{max-height:340px;overflow-y:scroll}#bookly-tbs .container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){#bookly-tbs .container{max-width:540px}}@media (min-width:768px){#bookly-tbs .container{max-width:720px}}@media (min-width:992px){#bookly-tbs .container{max-width:960px}}@media (min-width:1200px){#bookly-tbs .container{max-width:1140px}}#bookly-tbs .container-fluid,#bookly-tbs .container-lg,#bookly-tbs .container-md,#bookly-tbs .container-sm,#bookly-tbs .container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){#bookly-tbs .container,#bookly-tbs .container-sm{max-width:540px}}@media (min-width:768px){#bookly-tbs .container,#bookly-tbs .container-md,#bookly-tbs .container-sm{max-width:720px}}@media (min-width:992px){#bookly-tbs .container,#bookly-tbs .container-lg,#bookly-tbs .container-md,#bookly-tbs .container-sm{max-width:960px}}@media (min-width:1200px){#bookly-tbs .container,#bookly-tbs .container-lg,#bookly-tbs .container-md,#bookly-tbs .container-sm,#bookly-tbs .container-xl{max-width:1140px}}#bookly-tbs .jCal-wrap,#bookly-tbs .row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}#bookly-tbs .no-gutters{margin-right:0;margin-left:0}#bookly-tbs .no-gutters>.col,#bookly-tbs .no-gutters>[class*=col-]{padding-right:0;padding-left:0}#bookly-tbs .col,#bookly-tbs .col-1,#bookly-tbs .col-10,#bookly-tbs .col-11,#bookly-tbs .col-12,#bookly-tbs .col-2,#bookly-tbs .col-3,#bookly-tbs .col-4,#bookly-tbs .col-5,#bookly-tbs .col-6,#bookly-tbs .col-7,#bookly-tbs .col-8,#bookly-tbs .col-9,#bookly-tbs .col-auto,#bookly-tbs .col-lg,#bookly-tbs .col-lg-1,#bookly-tbs .col-lg-10,#bookly-tbs .col-lg-11,#bookly-tbs .col-lg-12,#bookly-tbs .col-lg-2,#bookly-tbs .col-lg-3,#bookly-tbs .col-lg-4,#bookly-tbs .col-lg-5,#bookly-tbs .col-lg-6,#bookly-tbs .col-lg-7,#bookly-tbs .col-lg-8,#bookly-tbs .col-lg-9,#bookly-tbs .col-lg-auto,#bookly-tbs .col-md,#bookly-tbs .col-md-1,#bookly-tbs .col-md-10,#bookly-tbs .col-md-11,#bookly-tbs .col-md-12,#bookly-tbs .col-md-2,#bookly-tbs .col-md-3,#bookly-tbs .col-md-4,#bookly-tbs .col-md-5,#bookly-tbs .col-md-6,#bookly-tbs .col-md-7,#bookly-tbs .col-md-8,#bookly-tbs .col-md-9,#bookly-tbs .col-md-auto,#bookly-tbs .col-sm,#bookly-tbs .col-sm-1,#bookly-tbs .col-sm-10,#bookly-tbs .col-sm-11,#bookly-tbs .col-sm-12,#bookly-tbs .col-sm-2,#bookly-tbs .col-sm-3,#bookly-tbs .col-sm-4,#bookly-tbs .col-sm-5,#bookly-tbs .col-sm-6,#bookly-tbs .col-sm-7,#bookly-tbs .col-sm-8,#bookly-tbs .col-sm-9,#bookly-tbs .col-sm-auto,#bookly-tbs .col-xl,#bookly-tbs .col-xl-1,#bookly-tbs .col-xl-10,#bookly-tbs .col-xl-11,#bookly-tbs .col-xl-12,#bookly-tbs .col-xl-2,#bookly-tbs .col-xl-3,#bookly-tbs .col-xl-4,#bookly-tbs .col-xl-5,#bookly-tbs .col-xl-6,#bookly-tbs .col-xl-7,#bookly-tbs .col-xl-8,#bookly-tbs .col-xl-9,#bookly-tbs .col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}#bookly-tbs .col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}#bookly-tbs .row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}#bookly-tbs .row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}#bookly-tbs .col-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}#bookly-tbs .col-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .col-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .col-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}#bookly-tbs .col-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .col-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}#bookly-tbs .col-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}#bookly-tbs .col-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}#bookly-tbs .col-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}#bookly-tbs .col-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}#bookly-tbs .col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .order-first{-webkit-box-ordinal-group:0;order:-1}#bookly-tbs .order-last{-webkit-box-ordinal-group:14;order:13}#bookly-tbs .order-0{-webkit-box-ordinal-group:1;order:0}#bookly-tbs .order-1{-webkit-box-ordinal-group:2;order:1}#bookly-tbs .order-2{-webkit-box-ordinal-group:3;order:2}#bookly-tbs .order-3{-webkit-box-ordinal-group:4;order:3}#bookly-tbs .order-4{-webkit-box-ordinal-group:5;order:4}#bookly-tbs .order-5{-webkit-box-ordinal-group:6;order:5}#bookly-tbs .order-6{-webkit-box-ordinal-group:7;order:6}#bookly-tbs .order-7{-webkit-box-ordinal-group:8;order:7}#bookly-tbs .order-8{-webkit-box-ordinal-group:9;order:8}#bookly-tbs .order-9{-webkit-box-ordinal-group:10;order:9}#bookly-tbs .order-10{-webkit-box-ordinal-group:11;order:10}#bookly-tbs .order-11{-webkit-box-ordinal-group:12;order:11}#bookly-tbs .order-12{-webkit-box-ordinal-group:13;order:12}#bookly-tbs .offset-1{margin-left:8.333333%}#bookly-tbs .offset-2{margin-left:16.666667%}#bookly-tbs .offset-3{margin-left:25%}#bookly-tbs .offset-4{margin-left:33.333333%}#bookly-tbs .offset-5{margin-left:41.666667%}#bookly-tbs .offset-6{margin-left:50%}#bookly-tbs .offset-7{margin-left:58.333333%}#bookly-tbs .offset-8{margin-left:66.666667%}#bookly-tbs .offset-9{margin-left:75%}#bookly-tbs .offset-10{margin-left:83.333333%}#bookly-tbs .offset-11{margin-left:91.666667%}@media (min-width:576px){#bookly-tbs .col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}#bookly-tbs .row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}#bookly-tbs .row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}#bookly-tbs .col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}#bookly-tbs .col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}#bookly-tbs .col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}#bookly-tbs .col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}#bookly-tbs .col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}#bookly-tbs .col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}#bookly-tbs .col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}#bookly-tbs .col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .order-sm-first{-webkit-box-ordinal-group:0;order:-1}#bookly-tbs .order-sm-last{-webkit-box-ordinal-group:14;order:13}#bookly-tbs .order-sm-0{-webkit-box-ordinal-group:1;order:0}#bookly-tbs .order-sm-1{-webkit-box-ordinal-group:2;order:1}#bookly-tbs .order-sm-2{-webkit-box-ordinal-group:3;order:2}#bookly-tbs .order-sm-3{-webkit-box-ordinal-group:4;order:3}#bookly-tbs .order-sm-4{-webkit-box-ordinal-group:5;order:4}#bookly-tbs .order-sm-5{-webkit-box-ordinal-group:6;order:5}#bookly-tbs .order-sm-6{-webkit-box-ordinal-group:7;order:6}#bookly-tbs .order-sm-7{-webkit-box-ordinal-group:8;order:7}#bookly-tbs .order-sm-8{-webkit-box-ordinal-group:9;order:8}#bookly-tbs .order-sm-9{-webkit-box-ordinal-group:10;order:9}#bookly-tbs .order-sm-10{-webkit-box-ordinal-group:11;order:10}#bookly-tbs .order-sm-11{-webkit-box-ordinal-group:12;order:11}#bookly-tbs .order-sm-12{-webkit-box-ordinal-group:13;order:12}#bookly-tbs .offset-sm-0{margin-left:0}#bookly-tbs .offset-sm-1{margin-left:8.333333%}#bookly-tbs .offset-sm-2{margin-left:16.666667%}#bookly-tbs .offset-sm-3{margin-left:25%}#bookly-tbs .offset-sm-4{margin-left:33.333333%}#bookly-tbs .offset-sm-5{margin-left:41.666667%}#bookly-tbs .offset-sm-6{margin-left:50%}#bookly-tbs .offset-sm-7{margin-left:58.333333%}#bookly-tbs .offset-sm-8{margin-left:66.666667%}#bookly-tbs .offset-sm-9{margin-left:75%}#bookly-tbs .offset-sm-10{margin-left:83.333333%}#bookly-tbs .offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){#bookly-tbs .col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}#bookly-tbs .row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}#bookly-tbs .row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}#bookly-tbs .col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}#bookly-tbs .col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}#bookly-tbs .col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}#bookly-tbs .col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}#bookly-tbs .col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}#bookly-tbs .col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}#bookly-tbs .col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}#bookly-tbs .col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .order-md-first{-webkit-box-ordinal-group:0;order:-1}#bookly-tbs .order-md-last{-webkit-box-ordinal-group:14;order:13}#bookly-tbs .order-md-0{-webkit-box-ordinal-group:1;order:0}#bookly-tbs .order-md-1{-webkit-box-ordinal-group:2;order:1}#bookly-tbs .order-md-2{-webkit-box-ordinal-group:3;order:2}#bookly-tbs .order-md-3{-webkit-box-ordinal-group:4;order:3}#bookly-tbs .order-md-4{-webkit-box-ordinal-group:5;order:4}#bookly-tbs .order-md-5{-webkit-box-ordinal-group:6;order:5}#bookly-tbs .order-md-6{-webkit-box-ordinal-group:7;order:6}#bookly-tbs .order-md-7{-webkit-box-ordinal-group:8;order:7}#bookly-tbs .order-md-8{-webkit-box-ordinal-group:9;order:8}#bookly-tbs .order-md-9{-webkit-box-ordinal-group:10;order:9}#bookly-tbs .order-md-10{-webkit-box-ordinal-group:11;order:10}#bookly-tbs .order-md-11{-webkit-box-ordinal-group:12;order:11}#bookly-tbs .order-md-12{-webkit-box-ordinal-group:13;order:12}#bookly-tbs .offset-md-0{margin-left:0}#bookly-tbs .offset-md-1{margin-left:8.333333%}#bookly-tbs .offset-md-2{margin-left:16.666667%}#bookly-tbs .offset-md-3{margin-left:25%}#bookly-tbs .offset-md-4{margin-left:33.333333%}#bookly-tbs .offset-md-5{margin-left:41.666667%}#bookly-tbs .offset-md-6{margin-left:50%}#bookly-tbs .offset-md-7{margin-left:58.333333%}#bookly-tbs .offset-md-8{margin-left:66.666667%}#bookly-tbs .offset-md-9{margin-left:75%}#bookly-tbs .offset-md-10{margin-left:83.333333%}#bookly-tbs .offset-md-11{margin-left:91.666667%}}@media (min-width:992px){#bookly-tbs .col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}#bookly-tbs .row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}#bookly-tbs .row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}#bookly-tbs .col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}#bookly-tbs .col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}#bookly-tbs .col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}#bookly-tbs .col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}#bookly-tbs .col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}#bookly-tbs .col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}#bookly-tbs .col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}#bookly-tbs .col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .order-lg-first{-webkit-box-ordinal-group:0;order:-1}#bookly-tbs .order-lg-last{-webkit-box-ordinal-group:14;order:13}#bookly-tbs .order-lg-0{-webkit-box-ordinal-group:1;order:0}#bookly-tbs .order-lg-1{-webkit-box-ordinal-group:2;order:1}#bookly-tbs .order-lg-2{-webkit-box-ordinal-group:3;order:2}#bookly-tbs .order-lg-3{-webkit-box-ordinal-group:4;order:3}#bookly-tbs .order-lg-4{-webkit-box-ordinal-group:5;order:4}#bookly-tbs .order-lg-5{-webkit-box-ordinal-group:6;order:5}#bookly-tbs .order-lg-6{-webkit-box-ordinal-group:7;order:6}#bookly-tbs .order-lg-7{-webkit-box-ordinal-group:8;order:7}#bookly-tbs .order-lg-8{-webkit-box-ordinal-group:9;order:8}#bookly-tbs .order-lg-9{-webkit-box-ordinal-group:10;order:9}#bookly-tbs .order-lg-10{-webkit-box-ordinal-group:11;order:10}#bookly-tbs .order-lg-11{-webkit-box-ordinal-group:12;order:11}#bookly-tbs .order-lg-12{-webkit-box-ordinal-group:13;order:12}#bookly-tbs .offset-lg-0{margin-left:0}#bookly-tbs .offset-lg-1{margin-left:8.333333%}#bookly-tbs .offset-lg-2{margin-left:16.666667%}#bookly-tbs .offset-lg-3{margin-left:25%}#bookly-tbs .offset-lg-4{margin-left:33.333333%}#bookly-tbs .offset-lg-5{margin-left:41.666667%}#bookly-tbs .offset-lg-6{margin-left:50%}#bookly-tbs .offset-lg-7{margin-left:58.333333%}#bookly-tbs .offset-lg-8{margin-left:66.666667%}#bookly-tbs .offset-lg-9{margin-left:75%}#bookly-tbs .offset-lg-10{margin-left:83.333333%}#bookly-tbs .offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){#bookly-tbs .col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}#bookly-tbs .row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}#bookly-tbs .row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}#bookly-tbs .col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}#bookly-tbs .col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}#bookly-tbs .col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}#bookly-tbs .col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}#bookly-tbs .col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}#bookly-tbs .col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}#bookly-tbs .col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}#bookly-tbs .col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .order-xl-first{-webkit-box-ordinal-group:0;order:-1}#bookly-tbs .order-xl-last{-webkit-box-ordinal-group:14;order:13}#bookly-tbs .order-xl-0{-webkit-box-ordinal-group:1;order:0}#bookly-tbs .order-xl-1{-webkit-box-ordinal-group:2;order:1}#bookly-tbs .order-xl-2{-webkit-box-ordinal-group:3;order:2}#bookly-tbs .order-xl-3{-webkit-box-ordinal-group:4;order:3}#bookly-tbs .order-xl-4{-webkit-box-ordinal-group:5;order:4}#bookly-tbs .order-xl-5{-webkit-box-ordinal-group:6;order:5}#bookly-tbs .order-xl-6{-webkit-box-ordinal-group:7;order:6}#bookly-tbs .order-xl-7{-webkit-box-ordinal-group:8;order:7}#bookly-tbs .order-xl-8{-webkit-box-ordinal-group:9;order:8}#bookly-tbs .order-xl-9{-webkit-box-ordinal-group:10;order:9}#bookly-tbs .order-xl-10{-webkit-box-ordinal-group:11;order:10}#bookly-tbs .order-xl-11{-webkit-box-ordinal-group:12;order:11}#bookly-tbs .order-xl-12{-webkit-box-ordinal-group:13;order:12}#bookly-tbs .offset-xl-0{margin-left:0}#bookly-tbs .offset-xl-1{margin-left:8.333333%}#bookly-tbs .offset-xl-2{margin-left:16.666667%}#bookly-tbs .offset-xl-3{margin-left:25%}#bookly-tbs .offset-xl-4{margin-left:33.333333%}#bookly-tbs .offset-xl-5{margin-left:41.666667%}#bookly-tbs .offset-xl-6{margin-left:50%}#bookly-tbs .offset-xl-7{margin-left:58.333333%}#bookly-tbs .offset-xl-8{margin-left:66.666667%}#bookly-tbs .offset-xl-9{margin-left:75%}#bookly-tbs .offset-xl-10{margin-left:83.333333%}#bookly-tbs .offset-xl-11{margin-left:91.666667%}}#bookly-tbs .table{width:100%;margin-bottom:1rem;color:#212529}#bookly-tbs .table td,#bookly-tbs .table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}#bookly-tbs .table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}#bookly-tbs .table tbody+tbody{border-top:2px solid #dee2e6}#bookly-tbs .table-sm td,#bookly-tbs .table-sm th{padding:.3rem}#bookly-tbs .table-bordered{border:1px solid #dee2e6}#bookly-tbs .table-bordered td,#bookly-tbs .table-bordered th{border:1px solid #dee2e6}#bookly-tbs .table-bordered thead td,#bookly-tbs .table-bordered thead th{border-bottom-width:2px}#bookly-tbs .table-borderless tbody+tbody,#bookly-tbs .table-borderless td,#bookly-tbs .table-borderless th,#bookly-tbs .table-borderless thead th{border:0}#bookly-tbs .table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}#bookly-tbs .table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}#bookly-tbs .table-primary,#bookly-tbs .table-primary>td,#bookly-tbs .table-primary>th{background-color:#b8daff}#bookly-tbs .table-primary tbody+tbody,#bookly-tbs .table-primary td,#bookly-tbs .table-primary th,#bookly-tbs .table-primary thead th{border-color:#7abaff}#bookly-tbs .table-hover .table-primary:hover{background-color:#9fcdff}#bookly-tbs .table-hover .table-primary:hover>td,#bookly-tbs .table-hover .table-primary:hover>th{background-color:#9fcdff}#bookly-tbs .table-secondary,#bookly-tbs .table-secondary>td,#bookly-tbs .table-secondary>th{background-color:#d6d8db}#bookly-tbs .table-secondary tbody+tbody,#bookly-tbs .table-secondary td,#bookly-tbs .table-secondary th,#bookly-tbs .table-secondary thead th{border-color:#b3b7bb}#bookly-tbs .table-hover .table-secondary:hover{background-color:#c8cbcf}#bookly-tbs .table-hover .table-secondary:hover>td,#bookly-tbs .table-hover .table-secondary:hover>th{background-color:#c8cbcf}#bookly-tbs .table-success,#bookly-tbs .table-success>td,#bookly-tbs .table-success>th{background-color:#c3e6cb}#bookly-tbs .table-success tbody+tbody,#bookly-tbs .table-success td,#bookly-tbs .table-success th,#bookly-tbs .table-success thead th{border-color:#8fd19e}#bookly-tbs .table-hover .table-success:hover{background-color:#b1dfbb}#bookly-tbs .table-hover .table-success:hover>td,#bookly-tbs .table-hover .table-success:hover>th{background-color:#b1dfbb}#bookly-tbs .table-info,#bookly-tbs .table-info>td,#bookly-tbs .table-info>th{background-color:#bee5eb}#bookly-tbs .table-info tbody+tbody,#bookly-tbs .table-info td,#bookly-tbs .table-info th,#bookly-tbs .table-info thead th{border-color:#86cfda}#bookly-tbs .table-hover .table-info:hover{background-color:#abdde5}#bookly-tbs .table-hover .table-info:hover>td,#bookly-tbs .table-hover .table-info:hover>th{background-color:#abdde5}#bookly-tbs .table-warning,#bookly-tbs .table-warning>td,#bookly-tbs .table-warning>th{background-color:#ffeeba}#bookly-tbs .table-warning tbody+tbody,#bookly-tbs .table-warning td,#bookly-tbs .table-warning th,#bookly-tbs .table-warning thead th{border-color:#ffdf7e}#bookly-tbs .table-hover .table-warning:hover{background-color:#ffe8a1}#bookly-tbs .table-hover .table-warning:hover>td,#bookly-tbs .table-hover .table-warning:hover>th{background-color:#ffe8a1}#bookly-tbs .table-danger,#bookly-tbs .table-danger>td,#bookly-tbs .table-danger>th{background-color:#f5c6cb}#bookly-tbs .table-danger tbody+tbody,#bookly-tbs .table-danger td,#bookly-tbs .table-danger th,#bookly-tbs .table-danger thead th{border-color:#ed969e}#bookly-tbs .table-hover .table-danger:hover{background-color:#f1b0b7}#bookly-tbs .table-hover .table-danger:hover>td,#bookly-tbs .table-hover .table-danger:hover>th{background-color:#f1b0b7}#bookly-tbs .table-light,#bookly-tbs .table-light>td,#bookly-tbs .table-light>th{background-color:#fdfdfe}#bookly-tbs .table-light tbody+tbody,#bookly-tbs .table-light td,#bookly-tbs .table-light th,#bookly-tbs .table-light thead th{border-color:#fbfcfc}#bookly-tbs .table-hover .table-light:hover{background-color:#ececf6}#bookly-tbs .table-hover .table-light:hover>td,#bookly-tbs .table-hover .table-light:hover>th{background-color:#ececf6}#bookly-tbs .table-dark,#bookly-tbs .table-dark>td,#bookly-tbs .table-dark>th{background-color:#c6c8ca}#bookly-tbs .table-dark tbody+tbody,#bookly-tbs .table-dark td,#bookly-tbs .table-dark th,#bookly-tbs .table-dark thead th{border-color:#95999c}#bookly-tbs .table-hover .table-dark:hover{background-color:#b9bbbe}#bookly-tbs .table-hover .table-dark:hover>td,#bookly-tbs .table-hover .table-dark:hover>th{background-color:#b9bbbe}#bookly-tbs .table-active,#bookly-tbs .table-active>td,#bookly-tbs .table-active>th{background-color:rgba(0,0,0,.075)}#bookly-tbs .table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}#bookly-tbs .table-hover .table-active:hover>td,#bookly-tbs .table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}#bookly-tbs .table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}#bookly-tbs .table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}#bookly-tbs .table-dark{color:#fff;background-color:#343a40}#bookly-tbs .table-dark td,#bookly-tbs .table-dark th,#bookly-tbs .table-dark thead th{border-color:#454d55}#bookly-tbs .table-dark.table-bordered{border:0}#bookly-tbs .table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}#bookly-tbs .table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){#bookly-tbs .table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}#bookly-tbs .table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){#bookly-tbs .table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}#bookly-tbs .table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){#bookly-tbs .table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}#bookly-tbs .table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){#bookly-tbs .table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}#bookly-tbs .table-responsive-xl>.table-bordered{border:0}}#bookly-tbs .table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}#bookly-tbs .table-responsive>.table-bordered{border:0}#bookly-tbs .form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){#bookly-tbs .form-control{-webkit-transition:none;transition:none}}#bookly-tbs .form-control::-ms-expand{background-color:transparent;border:0}#bookly-tbs .form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}#bookly-tbs .form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}#bookly-tbs .form-control::-moz-placeholder{color:#6c757d;opacity:1}#bookly-tbs .form-control:-ms-input-placeholder{color:#6c757d;opacity:1}#bookly-tbs .form-control::-ms-input-placeholder{color:#6c757d;opacity:1}#bookly-tbs .form-control::placeholder{color:#6c757d;opacity:1}#bookly-tbs .form-control:disabled,#bookly-tbs .form-control[readonly]{background-color:#e9ecef;opacity:1}#bookly-tbs select.form-control:focus::-ms-value{color:#495057;background-color:#fff}#bookly-tbs .form-control-file,#bookly-tbs .form-control-range{display:block;width:100%}#bookly-tbs .col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}#bookly-tbs .col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}#bookly-tbs .col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}#bookly-tbs .form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}#bookly-tbs .form-control-plaintext.form-control-lg,#bookly-tbs .form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}#bookly-tbs .form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}#bookly-tbs .form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}#bookly-tbs select.form-control[multiple],#bookly-tbs select.form-control[size]{height:auto}#bookly-tbs textarea.form-control{height:auto}#bookly-tbs .form-group{margin-bottom:1rem}#bookly-tbs .form-text{display:block;margin-top:.25rem}#bookly-tbs .form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}#bookly-tbs .form-row>.col,#bookly-tbs .form-row>[class*=col-]{padding-right:5px;padding-left:5px}#bookly-tbs .form-check{position:relative;display:block;padding-left:1.25rem}#bookly-tbs .form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}#bookly-tbs .form-check-input:disabled~.form-check-label,#bookly-tbs .form-check-input[disabled]~.form-check-label{color:#6c757d}#bookly-tbs .form-check-label{margin-bottom:0}#bookly-tbs .form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}#bookly-tbs .form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}#bookly-tbs .valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}#bookly-tbs .valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}#bookly-tbs.is-valid~.valid-feedback,#bookly-tbs.is-valid~.valid-tooltip,.was-validated #bookly-tbs:valid~.valid-feedback,.was-validated #bookly-tbs:valid~.valid-tooltip{display:block}#bookly-tbs .form-control.is-valid,.was-validated #bookly-tbs .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}#bookly-tbs .form-control.is-valid:focus,.was-validated #bookly-tbs .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}#bookly-tbs textarea.form-control.is-valid,.was-validated #bookly-tbs textarea.form-control:valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}#bookly-tbs .custom-select.is-valid,.was-validated #bookly-tbs .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}#bookly-tbs .custom-select.is-valid:focus,.was-validated #bookly-tbs .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}#bookly-tbs .form-check-input.is-valid~.form-check-label,.was-validated #bookly-tbs .form-check-input:valid~.form-check-label{color:#28a745}#bookly-tbs .form-check-input.is-valid~.valid-feedback,#bookly-tbs .form-check-input.is-valid~.valid-tooltip,.was-validated #bookly-tbs .form-check-input:valid~.valid-feedback,.was-validated #bookly-tbs .form-check-input:valid~.valid-tooltip{display:block}#bookly-tbs .custom-control-input.is-valid~.custom-control-label,.was-validated #bookly-tbs .custom-control-input:valid~.custom-control-label{color:#28a745}#bookly-tbs .custom-control-input.is-valid~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}#bookly-tbs .custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}#bookly-tbs .custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}#bookly-tbs .custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}#bookly-tbs .custom-file-input.is-valid~.custom-file-label,.was-validated #bookly-tbs .custom-file-input:valid~.custom-file-label{border-color:#28a745}#bookly-tbs .custom-file-input.is-valid:focus~.custom-file-label,.was-validated #bookly-tbs .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}#bookly-tbs .invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}#bookly-tbs .invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}#bookly-tbs.is-invalid~.invalid-feedback,#bookly-tbs.is-invalid~.invalid-tooltip,.was-validated #bookly-tbs:invalid~.invalid-feedback,.was-validated #bookly-tbs:invalid~.invalid-tooltip{display:block}#bookly-tbs .form-control.is-invalid,.was-validated #bookly-tbs .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}#bookly-tbs .form-control.is-invalid:focus,.was-validated #bookly-tbs .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}#bookly-tbs textarea.form-control.is-invalid,.was-validated #bookly-tbs textarea.form-control:invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}#bookly-tbs .custom-select.is-invalid,.was-validated #bookly-tbs .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}#bookly-tbs .custom-select.is-invalid:focus,.was-validated #bookly-tbs .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}#bookly-tbs .form-check-input.is-invalid~.form-check-label,.was-validated #bookly-tbs .form-check-input:invalid~.form-check-label{color:#dc3545}#bookly-tbs .form-check-input.is-invalid~.invalid-feedback,#bookly-tbs .form-check-input.is-invalid~.invalid-tooltip,.was-validated #bookly-tbs .form-check-input:invalid~.invalid-feedback,.was-validated #bookly-tbs .form-check-input:invalid~.invalid-tooltip{display:block}#bookly-tbs .custom-control-input.is-invalid~.custom-control-label,.was-validated #bookly-tbs .custom-control-input:invalid~.custom-control-label{color:#dc3545}#bookly-tbs .custom-control-input.is-invalid~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}#bookly-tbs .custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}#bookly-tbs .custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}#bookly-tbs .custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}#bookly-tbs .custom-file-input.is-invalid~.custom-file-label,.was-validated #bookly-tbs .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}#bookly-tbs .custom-file-input.is-invalid:focus~.custom-file-label,.was-validated #bookly-tbs .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}#bookly-tbs .form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}#bookly-tbs .form-inline .form-check{width:100%}@media (min-width:576px){#bookly-tbs .form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;margin-bottom:0}#bookly-tbs .form-inline .form-group{display:-webkit-box;display:flex;-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center;margin-bottom:0}#bookly-tbs .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}#bookly-tbs .form-inline .form-control-plaintext{display:inline-block}#bookly-tbs .form-inline .custom-select,#bookly-tbs .form-inline .input-group{width:auto}#bookly-tbs .form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}#bookly-tbs .form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}#bookly-tbs .form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}#bookly-tbs .form-inline .custom-control-label{margin-bottom:0}}#bookly-tbs .btn,#bookly-tbs .fc .fc-button{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){#bookly-tbs .btn,#bookly-tbs .fc .fc-button{-webkit-transition:none;transition:none}}#bookly-tbs .btn:hover,#bookly-tbs .fc .fc-button:hover{color:#212529;text-decoration:none}#bookly-tbs .btn.focus,#bookly-tbs .btn:focus,#bookly-tbs .fc .fc-button:focus,#bookly-tbs .fc .focus.fc-button{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .btn.disabled,#bookly-tbs .btn:disabled,#bookly-tbs .fc .disabled.fc-button,#bookly-tbs .fc .fc-button:disabled{opacity:.65}#bookly-tbs .fc a.disabled.fc-button,#bookly-tbs .fc fieldset:disabled a.fc-button,#bookly-tbs a.btn.disabled,#bookly-tbs fieldset:disabled .fc a.fc-button,#bookly-tbs fieldset:disabled a.btn{pointer-events:none}#bookly-tbs .btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}#bookly-tbs .btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}#bookly-tbs .btn-primary.focus,#bookly-tbs .btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}#bookly-tbs .btn-primary.disabled,#bookly-tbs .btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}#bookly-tbs .btn-primary:not(:disabled):not(.disabled).active,#bookly-tbs .btn-primary:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}#bookly-tbs .btn-primary:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-primary:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}#bookly-tbs .btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}#bookly-tbs .btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}#bookly-tbs .btn-secondary.focus,#bookly-tbs .btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}#bookly-tbs .btn-secondary.disabled,#bookly-tbs .btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}#bookly-tbs .btn-secondary:not(:disabled):not(.disabled).active,#bookly-tbs .btn-secondary:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}#bookly-tbs .btn-secondary:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-secondary:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}#bookly-tbs .btn-success,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary{color:#fff;background-color:#28a745;border-color:#28a745}#bookly-tbs .btn-success:hover,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:hover{color:#fff;background-color:#218838;border-color:#1e7e34}#bookly-tbs .btn-success.focus,#bookly-tbs .btn-success:focus,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:focus,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .focus.btn-primary{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}#bookly-tbs .btn-success.disabled,#bookly-tbs .btn-success:disabled,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:disabled,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .disabled.btn-primary{color:#fff;background-color:#28a745;border-color:#28a745}#bookly-tbs .btn-success:not(:disabled):not(.disabled).active,#bookly-tbs .btn-success:not(:disabled):not(.disabled):active,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:not(:disabled):not(.disabled).active,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-success.dropdown-toggle,.show>#bookly-tbs .daterangepicker.show-calendar .drp-buttons .dropdown-toggle.btn-primary{color:#fff;background-color:#1e7e34;border-color:#1c7430}#bookly-tbs .btn-success:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-success:not(:disabled):not(.disabled):active:focus,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:not(:disabled):not(.disabled).active:focus,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-success.dropdown-toggle:focus,.show>#bookly-tbs .daterangepicker.show-calendar .drp-buttons .dropdown-toggle.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}#bookly-tbs .btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}#bookly-tbs .btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}#bookly-tbs .btn-info.focus,#bookly-tbs .btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}#bookly-tbs .btn-info.disabled,#bookly-tbs .btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}#bookly-tbs .btn-info:not(:disabled):not(.disabled).active,#bookly-tbs .btn-info:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}#bookly-tbs .btn-info:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-info:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}#bookly-tbs .btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}#bookly-tbs .btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}#bookly-tbs .btn-warning.focus,#bookly-tbs .btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}#bookly-tbs .btn-warning.disabled,#bookly-tbs .btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}#bookly-tbs .btn-warning:not(:disabled):not(.disabled).active,#bookly-tbs .btn-warning:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}#bookly-tbs .btn-warning:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-warning:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}#bookly-tbs .btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}#bookly-tbs .btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}#bookly-tbs .btn-danger.focus,#bookly-tbs .btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}#bookly-tbs .btn-danger.disabled,#bookly-tbs .btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}#bookly-tbs .btn-danger:not(:disabled):not(.disabled).active,#bookly-tbs .btn-danger:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}#bookly-tbs .btn-danger:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-danger:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}#bookly-tbs .btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}#bookly-tbs .btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}#bookly-tbs .btn-light.focus,#bookly-tbs .btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}#bookly-tbs .btn-light.disabled,#bookly-tbs .btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}#bookly-tbs .btn-light:not(:disabled):not(.disabled).active,#bookly-tbs .btn-light:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}#bookly-tbs .btn-light:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-light:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}#bookly-tbs .btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}#bookly-tbs .btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}#bookly-tbs .btn-dark.focus,#bookly-tbs .btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}#bookly-tbs .btn-dark.disabled,#bookly-tbs .btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}#bookly-tbs .btn-dark:not(:disabled):not(.disabled).active,#bookly-tbs .btn-dark:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}#bookly-tbs .btn-dark:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-dark:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}#bookly-tbs .btn-outline-primary{color:#007bff;border-color:#007bff}#bookly-tbs .btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}#bookly-tbs .btn-outline-primary.focus,#bookly-tbs .btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}#bookly-tbs .btn-outline-primary.disabled,#bookly-tbs .btn-outline-primary:disabled{color:#007bff;background-color:transparent}#bookly-tbs .btn-outline-primary:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-primary:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}#bookly-tbs .btn-outline-primary:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}#bookly-tbs .btn-outline-secondary{color:#6c757d;border-color:#6c757d}#bookly-tbs .btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}#bookly-tbs .btn-outline-secondary.focus,#bookly-tbs .btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}#bookly-tbs .btn-outline-secondary.disabled,#bookly-tbs .btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}#bookly-tbs .btn-outline-secondary:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-secondary:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}#bookly-tbs .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}#bookly-tbs .btn-outline-success{color:#28a745;border-color:#28a745}#bookly-tbs .btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}#bookly-tbs .btn-outline-success.focus,#bookly-tbs .btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}#bookly-tbs .btn-outline-success.disabled,#bookly-tbs .btn-outline-success:disabled{color:#28a745;background-color:transparent}#bookly-tbs .btn-outline-success:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-success:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}#bookly-tbs .btn-outline-success:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}#bookly-tbs .btn-outline-info{color:#17a2b8;border-color:#17a2b8}#bookly-tbs .btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}#bookly-tbs .btn-outline-info.focus,#bookly-tbs .btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}#bookly-tbs .btn-outline-info.disabled,#bookly-tbs .btn-outline-info:disabled{color:#17a2b8;background-color:transparent}#bookly-tbs .btn-outline-info:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-info:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}#bookly-tbs .btn-outline-info:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}#bookly-tbs .btn-outline-warning{color:#ffc107;border-color:#ffc107}#bookly-tbs .btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}#bookly-tbs .btn-outline-warning.focus,#bookly-tbs .btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}#bookly-tbs .btn-outline-warning.disabled,#bookly-tbs .btn-outline-warning:disabled{color:#ffc107;background-color:transparent}#bookly-tbs .btn-outline-warning:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-warning:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}#bookly-tbs .btn-outline-warning:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}#bookly-tbs .btn-outline-danger{color:#dc3545;border-color:#dc3545}#bookly-tbs .btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}#bookly-tbs .btn-outline-danger.focus,#bookly-tbs .btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}#bookly-tbs .btn-outline-danger.disabled,#bookly-tbs .btn-outline-danger:disabled{color:#dc3545;background-color:transparent}#bookly-tbs .btn-outline-danger:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-danger:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}#bookly-tbs .btn-outline-danger:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}#bookly-tbs .btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}#bookly-tbs .btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}#bookly-tbs .btn-outline-light.focus,#bookly-tbs .btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}#bookly-tbs .btn-outline-light.disabled,#bookly-tbs .btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}#bookly-tbs .btn-outline-light:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-light:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}#bookly-tbs .btn-outline-light:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}#bookly-tbs .btn-outline-dark{color:#343a40;border-color:#343a40}#bookly-tbs .btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}#bookly-tbs .btn-outline-dark.focus,#bookly-tbs .btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}#bookly-tbs .btn-outline-dark.disabled,#bookly-tbs .btn-outline-dark:disabled{color:#343a40;background-color:transparent}#bookly-tbs .btn-outline-dark:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-dark:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}#bookly-tbs .btn-outline-dark:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}#bookly-tbs .btn-link{font-weight:400;color:#007bff;text-decoration:none}#bookly-tbs .btn-link:hover{color:#0056b3;text-decoration:underline}#bookly-tbs .btn-link.focus,#bookly-tbs .btn-link:focus{text-decoration:underline;box-shadow:none}#bookly-tbs .btn-link.disabled,#bookly-tbs .btn-link:disabled{color:#6c757d;pointer-events:none}#bookly-tbs .btn-group-lg>.btn,#bookly-tbs .btn-lg,#bookly-tbs .fc .btn-group-lg>.fc-button{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}#bookly-tbs .btn-group-sm>.btn,#bookly-tbs .btn-sm,#bookly-tbs .fc .btn-group-sm>.fc-button{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}#bookly-tbs .btn-block{display:block;width:100%}#bookly-tbs .btn-block+.btn-block{margin-top:.5rem}#bookly-tbs input[type=button].btn-block,#bookly-tbs input[type=reset].btn-block,#bookly-tbs input[type=submit].btn-block{width:100%}#bookly-tbs .fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){#bookly-tbs .fade{-webkit-transition:none;transition:none}}#bookly-tbs .fade:not(.show){opacity:0}#bookly-tbs .collapse:not(.show){display:none}#bookly-tbs .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){#bookly-tbs .collapsing{-webkit-transition:none;transition:none}}#bookly-tbs .dropdown,#bookly-tbs .dropleft,#bookly-tbs .dropright,#bookly-tbs .dropup{position:relative}#bookly-tbs .dropdown-toggle{white-space:nowrap}#bookly-tbs .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}#bookly-tbs .dropdown-toggle:empty::after{margin-left:0}#bookly-tbs .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}#bookly-tbs .dropdown-menu-left{right:auto;left:0}#bookly-tbs .dropdown-menu-right{right:0;left:auto}@media (min-width:576px){#bookly-tbs .dropdown-menu-sm-left{right:auto;left:0}#bookly-tbs .dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){#bookly-tbs .dropdown-menu-md-left{right:auto;left:0}#bookly-tbs .dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){#bookly-tbs .dropdown-menu-lg-left{right:auto;left:0}#bookly-tbs .dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){#bookly-tbs .dropdown-menu-xl-left{right:auto;left:0}#bookly-tbs .dropdown-menu-xl-right{right:0;left:auto}}#bookly-tbs .dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}#bookly-tbs .dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}#bookly-tbs .dropup .dropdown-toggle:empty::after{margin-left:0}#bookly-tbs .dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}#bookly-tbs .dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}#bookly-tbs .dropright .dropdown-toggle:empty::after{margin-left:0}#bookly-tbs .dropright .dropdown-toggle::after{vertical-align:0}#bookly-tbs .dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}#bookly-tbs .dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}#bookly-tbs .dropleft .dropdown-toggle::after{display:none}#bookly-tbs .dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}#bookly-tbs .dropleft .dropdown-toggle:empty::after{margin-left:0}#bookly-tbs .dropleft .dropdown-toggle::before{vertical-align:0}#bookly-tbs .dropdown-menu[x-placement^=bottom],#bookly-tbs .dropdown-menu[x-placement^=left],#bookly-tbs .dropdown-menu[x-placement^=right],#bookly-tbs .dropdown-menu[x-placement^=top]{right:auto;bottom:auto}#bookly-tbs .dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}#bookly-tbs .dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}#bookly-tbs .dropdown-item:focus,#bookly-tbs .dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}#bookly-tbs .dropdown-item.active,#bookly-tbs .dropdown-item:active{color:#16181b;text-decoration:none;background-color:#f8f9fa}#bookly-tbs .dropdown-item.disabled,#bookly-tbs .dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}#bookly-tbs .dropdown-menu.show{display:block}#bookly-tbs .dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}#bookly-tbs .dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}#bookly-tbs .btn-group,#bookly-tbs .btn-group-vertical,#bookly-tbs .fc .fc-button-group{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}#bookly-tbs .btn-group-vertical>.btn,#bookly-tbs .btn-group>.btn,#bookly-tbs .fc .btn-group-vertical>.fc-button,#bookly-tbs .fc .btn-group>.fc-button,#bookly-tbs .fc .fc-button-group>.btn,#bookly-tbs .fc .fc-button-group>.fc-button{position:relative;-webkit-box-flex:1;flex:1 1 auto}#bookly-tbs .btn-group-vertical>.btn:hover,#bookly-tbs .btn-group>.btn:hover,#bookly-tbs .fc .btn-group-vertical>.fc-button:hover,#bookly-tbs .fc .btn-group>.fc-button:hover,#bookly-tbs .fc .fc-button-group>.btn:hover,#bookly-tbs .fc .fc-button-group>.fc-button:hover{z-index:1}#bookly-tbs .btn-group-vertical>.btn.active,#bookly-tbs .btn-group-vertical>.btn:active,#bookly-tbs .btn-group-vertical>.btn:focus,#bookly-tbs .btn-group>.btn.active,#bookly-tbs .btn-group>.btn:active,#bookly-tbs .btn-group>.btn:focus,#bookly-tbs .fc .btn-group-vertical>.active.fc-button,#bookly-tbs .fc .btn-group-vertical>.fc-button:active,#bookly-tbs .fc .btn-group-vertical>.fc-button:focus,#bookly-tbs .fc .btn-group>.active.fc-button,#bookly-tbs .fc .btn-group>.fc-button:active,#bookly-tbs .fc .btn-group>.fc-button:focus,#bookly-tbs .fc .fc-button-group>.active.fc-button,#bookly-tbs .fc .fc-button-group>.btn.active,#bookly-tbs .fc .fc-button-group>.btn:active,#bookly-tbs .fc .fc-button-group>.btn:focus,#bookly-tbs .fc .fc-button-group>.fc-button:active,#bookly-tbs .fc .fc-button-group>.fc-button:focus{z-index:1}#bookly-tbs .btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}#bookly-tbs .btn-toolbar .input-group{width:auto}#bookly-tbs .btn-group>.btn-group:not(:first-child),#bookly-tbs .btn-group>.btn:not(:first-child),#bookly-tbs .fc .btn-group>.fc-button-group:not(:first-child),#bookly-tbs .fc .btn-group>.fc-button:not(:first-child),#bookly-tbs .fc .fc-button-group>.btn-group:not(:first-child),#bookly-tbs .fc .fc-button-group>.btn:not(:first-child),#bookly-tbs .fc .fc-button-group>.fc-button-group:not(:first-child),#bookly-tbs .fc .fc-button-group>.fc-button:not(:first-child){margin-left:-1px}#bookly-tbs .btn-group>.btn-group:not(:last-child)>.btn,#bookly-tbs .btn-group>.btn:not(:last-child):not(.dropdown-toggle),#bookly-tbs .fc .btn-group>.btn-group:not(:last-child)>.fc-button,#bookly-tbs .fc .btn-group>.fc-button-group:not(:last-child)>.btn,#bookly-tbs .fc .btn-group>.fc-button-group:not(:last-child)>.fc-button,#bookly-tbs .fc .btn-group>.fc-button:not(:last-child):not(.dropdown-toggle),#bookly-tbs .fc .fc-button-group>.btn-group:not(:last-child)>.btn,#bookly-tbs .fc .fc-button-group>.btn-group:not(:last-child)>.fc-button,#bookly-tbs .fc .fc-button-group>.btn:not(:last-child):not(.dropdown-toggle),#bookly-tbs .fc .fc-button-group>.fc-button-group:not(:last-child)>.btn,#bookly-tbs .fc .fc-button-group>.fc-button-group:not(:last-child)>.fc-button,#bookly-tbs .fc .fc-button-group>.fc-button:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .btn-group>.btn-group:not(:first-child)>.btn,#bookly-tbs .btn-group>.btn:not(:first-child),#bookly-tbs .fc .btn-group>.btn-group:not(:first-child)>.fc-button,#bookly-tbs .fc .btn-group>.fc-button-group:not(:first-child)>.btn,#bookly-tbs .fc .btn-group>.fc-button-group:not(:first-child)>.fc-button,#bookly-tbs .fc .btn-group>.fc-button:not(:first-child),#bookly-tbs .fc .fc-button-group>.btn-group:not(:first-child)>.btn,#bookly-tbs .fc .fc-button-group>.btn-group:not(:first-child)>.fc-button,#bookly-tbs .fc .fc-button-group>.btn:not(:first-child),#bookly-tbs .fc .fc-button-group>.fc-button-group:not(:first-child)>.btn,#bookly-tbs .fc .fc-button-group>.fc-button-group:not(:first-child)>.fc-button,#bookly-tbs .fc .fc-button-group>.fc-button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}#bookly-tbs .dropdown-toggle-split::after,.dropright #bookly-tbs .dropdown-toggle-split::after,.dropup #bookly-tbs .dropdown-toggle-split::after{margin-left:0}.dropleft #bookly-tbs .dropdown-toggle-split::before{margin-right:0}#bookly-tbs .btn-group-sm>.btn+.dropdown-toggle-split,#bookly-tbs .btn-sm+.dropdown-toggle-split,#bookly-tbs .fc .btn-group-sm>.fc-button+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}#bookly-tbs .btn-group-lg>.btn+.dropdown-toggle-split,#bookly-tbs .btn-lg+.dropdown-toggle-split,#bookly-tbs .fc .btn-group-lg>.fc-button+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}#bookly-tbs .btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}#bookly-tbs .btn-group-vertical>.btn,#bookly-tbs .btn-group-vertical>.btn-group,#bookly-tbs .fc .btn-group-vertical>.fc-button,#bookly-tbs .fc .btn-group-vertical>.fc-button-group{width:100%}#bookly-tbs .btn-group-vertical>.btn-group:not(:first-child),#bookly-tbs .btn-group-vertical>.btn:not(:first-child),#bookly-tbs .fc .btn-group-vertical>.fc-button-group:not(:first-child),#bookly-tbs .fc .btn-group-vertical>.fc-button:not(:first-child){margin-top:-1px}#bookly-tbs .btn-group-vertical>.btn-group:not(:last-child)>.btn,#bookly-tbs .btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),#bookly-tbs .fc .btn-group-vertical>.btn-group:not(:last-child)>.fc-button,#bookly-tbs .fc .btn-group-vertical>.fc-button-group:not(:last-child)>.btn,#bookly-tbs .fc .btn-group-vertical>.fc-button-group:not(:last-child)>.fc-button,#bookly-tbs .fc .btn-group-vertical>.fc-button:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}#bookly-tbs .btn-group-vertical>.btn-group:not(:first-child)>.btn,#bookly-tbs .btn-group-vertical>.btn:not(:first-child),#bookly-tbs .fc .btn-group-vertical>.btn-group:not(:first-child)>.fc-button,#bookly-tbs .fc .btn-group-vertical>.fc-button-group:not(:first-child)>.btn,#bookly-tbs .fc .btn-group-vertical>.fc-button-group:not(:first-child)>.fc-button,#bookly-tbs .fc .btn-group-vertical>.fc-button:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .btn-group-toggle>.btn,#bookly-tbs .btn-group-toggle>.btn-group>.btn,#bookly-tbs .fc .btn-group-toggle>.btn-group>.fc-button,#bookly-tbs .fc .btn-group-toggle>.fc-button,#bookly-tbs .fc .btn-group-toggle>.fc-button-group>.btn,#bookly-tbs .fc .btn-group-toggle>.fc-button-group>.fc-button{margin-bottom:0}#bookly-tbs .btn-group-toggle>.btn input[type=checkbox],#bookly-tbs .btn-group-toggle>.btn input[type=radio],#bookly-tbs .btn-group-toggle>.btn-group>.btn input[type=checkbox],#bookly-tbs .btn-group-toggle>.btn-group>.btn input[type=radio],#bookly-tbs .fc .btn-group-toggle>.btn-group>.fc-button input[type=checkbox],#bookly-tbs .fc .btn-group-toggle>.btn-group>.fc-button input[type=radio],#bookly-tbs .fc .btn-group-toggle>.fc-button input[type=checkbox],#bookly-tbs .fc .btn-group-toggle>.fc-button input[type=radio],#bookly-tbs .fc .btn-group-toggle>.fc-button-group>.btn input[type=checkbox],#bookly-tbs .fc .btn-group-toggle>.fc-button-group>.btn input[type=radio],#bookly-tbs .fc .btn-group-toggle>.fc-button-group>.fc-button input[type=checkbox],#bookly-tbs .fc .btn-group-toggle>.fc-button-group>.fc-button input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}#bookly-tbs .input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}#bookly-tbs .input-group>.custom-file,#bookly-tbs .input-group>.custom-select,#bookly-tbs .input-group>.form-control,#bookly-tbs .input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}#bookly-tbs .input-group>.custom-file+.custom-file,#bookly-tbs .input-group>.custom-file+.custom-select,#bookly-tbs .input-group>.custom-file+.form-control,#bookly-tbs .input-group>.custom-select+.custom-file,#bookly-tbs .input-group>.custom-select+.custom-select,#bookly-tbs .input-group>.custom-select+.form-control,#bookly-tbs .input-group>.form-control+.custom-file,#bookly-tbs .input-group>.form-control+.custom-select,#bookly-tbs .input-group>.form-control+.form-control,#bookly-tbs .input-group>.form-control-plaintext+.custom-file,#bookly-tbs .input-group>.form-control-plaintext+.custom-select,#bookly-tbs .input-group>.form-control-plaintext+.form-control{margin-left:-1px}#bookly-tbs .input-group>.custom-file .custom-file-input:focus~.custom-file-label,#bookly-tbs .input-group>.custom-select:focus,#bookly-tbs .input-group>.form-control:focus{z-index:3}#bookly-tbs .input-group>.custom-file .custom-file-input:focus{z-index:4}#bookly-tbs .input-group>.custom-select:not(:last-child),#bookly-tbs .input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .input-group>.custom-select:not(:first-child),#bookly-tbs .input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}#bookly-tbs .input-group>.custom-file:not(:last-child) .custom-file-label,#bookly-tbs .input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .input-group-append,#bookly-tbs .input-group-prepend{display:-webkit-box;display:flex}#bookly-tbs .fc .input-group-append .fc-button,#bookly-tbs .fc .input-group-prepend .fc-button,#bookly-tbs .input-group-append .btn,#bookly-tbs .input-group-append .fc .fc-button,#bookly-tbs .input-group-prepend .btn,#bookly-tbs .input-group-prepend .fc .fc-button{position:relative;z-index:2}#bookly-tbs .fc .input-group-append .fc-button:focus,#bookly-tbs .fc .input-group-prepend .fc-button:focus,#bookly-tbs .input-group-append .btn:focus,#bookly-tbs .input-group-append .fc .fc-button:focus,#bookly-tbs .input-group-prepend .btn:focus,#bookly-tbs .input-group-prepend .fc .fc-button:focus{z-index:3}#bookly-tbs .fc .input-group-append .btn+.fc-button,#bookly-tbs .fc .input-group-append .fc-button+.btn,#bookly-tbs .fc .input-group-append .fc-button+.fc-button,#bookly-tbs .fc .input-group-append .fc-button+.input-group-text,#bookly-tbs .fc .input-group-append .input-group-text+.fc-button,#bookly-tbs .fc .input-group-prepend .btn+.fc-button,#bookly-tbs .fc .input-group-prepend .fc-button+.btn,#bookly-tbs .fc .input-group-prepend .fc-button+.fc-button,#bookly-tbs .fc .input-group-prepend .fc-button+.input-group-text,#bookly-tbs .fc .input-group-prepend .input-group-text+.fc-button,#bookly-tbs .input-group-append .btn+.btn,#bookly-tbs .input-group-append .btn+.input-group-text,#bookly-tbs .input-group-append .fc .btn+.fc-button,#bookly-tbs .input-group-append .fc .fc-button+.btn,#bookly-tbs .input-group-append .fc .fc-button+.fc-button,#bookly-tbs .input-group-append .fc .fc-button+.input-group-text,#bookly-tbs .input-group-append .fc .input-group-text+.fc-button,#bookly-tbs .input-group-append .input-group-text+.btn,#bookly-tbs .input-group-append .input-group-text+.input-group-text,#bookly-tbs .input-group-prepend .btn+.btn,#bookly-tbs .input-group-prepend .btn+.input-group-text,#bookly-tbs .input-group-prepend .fc .btn+.fc-button,#bookly-tbs .input-group-prepend .fc .fc-button+.btn,#bookly-tbs .input-group-prepend .fc .fc-button+.fc-button,#bookly-tbs .input-group-prepend .fc .fc-button+.input-group-text,#bookly-tbs .input-group-prepend .fc .input-group-text+.fc-button,#bookly-tbs .input-group-prepend .input-group-text+.btn,#bookly-tbs .input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}#bookly-tbs .input-group-prepend{margin-right:-1px}#bookly-tbs .input-group-append{margin-left:-1px}#bookly-tbs .input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}#bookly-tbs .input-group-text input[type=checkbox],#bookly-tbs .input-group-text input[type=radio]{margin-top:0}#bookly-tbs .input-group-lg>.custom-select,#bookly-tbs .input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}#bookly-tbs .fc .input-group-lg>.input-group-append>.fc-button,#bookly-tbs .fc .input-group-lg>.input-group-prepend>.fc-button,#bookly-tbs .input-group-lg>.custom-select,#bookly-tbs .input-group-lg>.form-control,#bookly-tbs .input-group-lg>.input-group-append>.btn,#bookly-tbs .input-group-lg>.input-group-append>.input-group-text,#bookly-tbs .input-group-lg>.input-group-prepend>.btn,#bookly-tbs .input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}#bookly-tbs .input-group-sm>.custom-select,#bookly-tbs .input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}#bookly-tbs .fc .input-group-sm>.input-group-append>.fc-button,#bookly-tbs .fc .input-group-sm>.input-group-prepend>.fc-button,#bookly-tbs .input-group-sm>.custom-select,#bookly-tbs .input-group-sm>.form-control,#bookly-tbs .input-group-sm>.input-group-append>.btn,#bookly-tbs .input-group-sm>.input-group-append>.input-group-text,#bookly-tbs .input-group-sm>.input-group-prepend>.btn,#bookly-tbs .input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}#bookly-tbs .input-group-lg>.custom-select,#bookly-tbs .input-group-sm>.custom-select{padding-right:1.75rem}#bookly-tbs .fc .input-group>.input-group-append:last-child>.fc-button:not(:last-child):not(.dropdown-toggle),#bookly-tbs .fc .input-group>.input-group-append:not(:last-child)>.fc-button,#bookly-tbs .fc .input-group>.input-group-prepend>.fc-button,#bookly-tbs .input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),#bookly-tbs .input-group>.input-group-append:last-child>.input-group-text:not(:last-child),#bookly-tbs .input-group>.input-group-append:not(:last-child)>.btn,#bookly-tbs .input-group>.input-group-append:not(:last-child)>.input-group-text,#bookly-tbs .input-group>.input-group-prepend>.btn,#bookly-tbs .input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .fc .input-group>.input-group-append>.fc-button,#bookly-tbs .fc .input-group>.input-group-prepend:first-child>.fc-button:not(:first-child),#bookly-tbs .fc .input-group>.input-group-prepend:not(:first-child)>.fc-button,#bookly-tbs .input-group>.input-group-append>.btn,#bookly-tbs .input-group>.input-group-append>.input-group-text,#bookly-tbs .input-group>.input-group-prepend:first-child>.btn:not(:first-child),#bookly-tbs .input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),#bookly-tbs .input-group>.input-group-prepend:not(:first-child)>.btn,#bookly-tbs .input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}#bookly-tbs .custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}#bookly-tbs .custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}#bookly-tbs .custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}#bookly-tbs .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}#bookly-tbs .custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}#bookly-tbs .custom-control-input:disabled~.custom-control-label,#bookly-tbs .custom-control-input[disabled]~.custom-control-label{color:#6c757d}#bookly-tbs .custom-control-input:disabled~.custom-control-label::before,#bookly-tbs .custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}#bookly-tbs .custom-control-label{position:relative;margin-bottom:0;vertical-align:top}#bookly-tbs .custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}#bookly-tbs .custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}#bookly-tbs .custom-checkbox .custom-control-label::before{border-radius:.25rem}#bookly-tbs .custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}#bookly-tbs .custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}#bookly-tbs .custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}#bookly-tbs .custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}#bookly-tbs .custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}#bookly-tbs .custom-radio .custom-control-label::before{border-radius:50%}#bookly-tbs .custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}#bookly-tbs .custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}#bookly-tbs .custom-switch{padding-left:2.25rem}#bookly-tbs .custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}#bookly-tbs .custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){#bookly-tbs .custom-switch .custom-control-label::after{-webkit-transition:none;transition:none}}#bookly-tbs .custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}#bookly-tbs .custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}#bookly-tbs .custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}#bookly-tbs .custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .custom-select:focus::-ms-value{color:#495057;background-color:#fff}#bookly-tbs .custom-select[multiple],#bookly-tbs .custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}#bookly-tbs .custom-select:disabled{color:#6c757d;background-color:#e9ecef}#bookly-tbs .custom-select::-ms-expand{display:none}#bookly-tbs .custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}#bookly-tbs .custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}#bookly-tbs .custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}#bookly-tbs .custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}#bookly-tbs .custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}#bookly-tbs .custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .custom-file-input:disabled~.custom-file-label,#bookly-tbs .custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}#bookly-tbs .custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}#bookly-tbs .custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}#bookly-tbs .custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}#bookly-tbs .custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}#bookly-tbs .custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}#bookly-tbs .custom-range:focus{outline:0}#bookly-tbs .custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .custom-range::-moz-focus-outer{border:0}#bookly-tbs .custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){#bookly-tbs .custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}#bookly-tbs .custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}#bookly-tbs .custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}#bookly-tbs .custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){#bookly-tbs .custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}#bookly-tbs .custom-range::-moz-range-thumb:active{background-color:#b3d7ff}#bookly-tbs .custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}#bookly-tbs .custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){#bookly-tbs .custom-range::-ms-thumb{-ms-transition:none;transition:none}}#bookly-tbs .custom-range::-ms-thumb:active{background-color:#b3d7ff}#bookly-tbs .custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}#bookly-tbs .custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}#bookly-tbs .custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}#bookly-tbs .custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}#bookly-tbs .custom-range:disabled::-webkit-slider-runnable-track{cursor:default}#bookly-tbs .custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}#bookly-tbs .custom-range:disabled::-moz-range-track{cursor:default}#bookly-tbs .custom-range:disabled::-ms-thumb{background-color:#adb5bd}#bookly-tbs .custom-control-label::before,#bookly-tbs .custom-file-label,#bookly-tbs .custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){#bookly-tbs .custom-control-label::before,#bookly-tbs .custom-file-label,#bookly-tbs .custom-select{-webkit-transition:none;transition:none}}#bookly-tbs .nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}#bookly-tbs .nav-link{display:block;padding:.5rem 1rem}#bookly-tbs .nav-link:focus,#bookly-tbs .nav-link:hover{text-decoration:none}#bookly-tbs .nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}#bookly-tbs .nav-tabs{border-bottom:1px solid #dee2e6}#bookly-tbs .nav-tabs .nav-item{margin-bottom:-1px}#bookly-tbs .nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}#bookly-tbs .nav-tabs .nav-link:focus,#bookly-tbs .nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}#bookly-tbs .nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}#bookly-tbs .nav-tabs .nav-item.show .nav-link,#bookly-tbs .nav-tabs .nav-link.active{color:#343a40;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}#bookly-tbs .nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .nav-pills .nav-link{border-radius:.25rem}#bookly-tbs .nav-pills .nav-link.active,#bookly-tbs .nav-pills .show>.nav-link{color:#fff;background-color:#007bff}#bookly-tbs .nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}#bookly-tbs .nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}#bookly-tbs .tab-content>.tab-pane{display:none}#bookly-tbs .tab-content>.active{display:block}#bookly-tbs .navbar{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between;padding:.5rem 1rem}#bookly-tbs .navbar .container,#bookly-tbs .navbar .container-fluid,#bookly-tbs .navbar .container-lg,#bookly-tbs .navbar .container-md,#bookly-tbs .navbar .container-sm,#bookly-tbs .navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}#bookly-tbs .navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}#bookly-tbs .navbar-brand:focus,#bookly-tbs .navbar-brand:hover{text-decoration:none}#bookly-tbs .navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}#bookly-tbs .navbar-nav .nav-link{padding-right:0;padding-left:0}#bookly-tbs .navbar-nav .dropdown-menu{position:static;float:none}#bookly-tbs .navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}#bookly-tbs .navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}#bookly-tbs .navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}#bookly-tbs .navbar-toggler:focus,#bookly-tbs .navbar-toggler:hover{text-decoration:none}#bookly-tbs .navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){#bookly-tbs .navbar-expand-sm>.container,#bookly-tbs .navbar-expand-sm>.container-fluid,#bookly-tbs .navbar-expand-sm>.container-lg,#bookly-tbs .navbar-expand-sm>.container-md,#bookly-tbs .navbar-expand-sm>.container-sm,#bookly-tbs .navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){#bookly-tbs .navbar-expand-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}#bookly-tbs .navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}#bookly-tbs .navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}#bookly-tbs .navbar-expand-sm>.container,#bookly-tbs .navbar-expand-sm>.container-fluid,#bookly-tbs .navbar-expand-sm>.container-lg,#bookly-tbs .navbar-expand-sm>.container-md,#bookly-tbs .navbar-expand-sm>.container-sm,#bookly-tbs .navbar-expand-sm>.container-xl{flex-wrap:nowrap}#bookly-tbs .navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}#bookly-tbs .navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){#bookly-tbs .navbar-expand-md>.container,#bookly-tbs .navbar-expand-md>.container-fluid,#bookly-tbs .navbar-expand-md>.container-lg,#bookly-tbs .navbar-expand-md>.container-md,#bookly-tbs .navbar-expand-md>.container-sm,#bookly-tbs .navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){#bookly-tbs .navbar-expand-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}#bookly-tbs .navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}#bookly-tbs .navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}#bookly-tbs .navbar-expand-md>.container,#bookly-tbs .navbar-expand-md>.container-fluid,#bookly-tbs .navbar-expand-md>.container-lg,#bookly-tbs .navbar-expand-md>.container-md,#bookly-tbs .navbar-expand-md>.container-sm,#bookly-tbs .navbar-expand-md>.container-xl{flex-wrap:nowrap}#bookly-tbs .navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}#bookly-tbs .navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){#bookly-tbs .navbar-expand-lg>.container,#bookly-tbs .navbar-expand-lg>.container-fluid,#bookly-tbs .navbar-expand-lg>.container-lg,#bookly-tbs .navbar-expand-lg>.container-md,#bookly-tbs .navbar-expand-lg>.container-sm,#bookly-tbs .navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){#bookly-tbs .navbar-expand-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}#bookly-tbs .navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}#bookly-tbs .navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}#bookly-tbs .navbar-expand-lg>.container,#bookly-tbs .navbar-expand-lg>.container-fluid,#bookly-tbs .navbar-expand-lg>.container-lg,#bookly-tbs .navbar-expand-lg>.container-md,#bookly-tbs .navbar-expand-lg>.container-sm,#bookly-tbs .navbar-expand-lg>.container-xl{flex-wrap:nowrap}#bookly-tbs .navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}#bookly-tbs .navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){#bookly-tbs .navbar-expand-xl>.container,#bookly-tbs .navbar-expand-xl>.container-fluid,#bookly-tbs .navbar-expand-xl>.container-lg,#bookly-tbs .navbar-expand-xl>.container-md,#bookly-tbs .navbar-expand-xl>.container-sm,#bookly-tbs .navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){#bookly-tbs .navbar-expand-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}#bookly-tbs .navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}#bookly-tbs .navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}#bookly-tbs .navbar-expand-xl>.container,#bookly-tbs .navbar-expand-xl>.container-fluid,#bookly-tbs .navbar-expand-xl>.container-lg,#bookly-tbs .navbar-expand-xl>.container-md,#bookly-tbs .navbar-expand-xl>.container-sm,#bookly-tbs .navbar-expand-xl>.container-xl{flex-wrap:nowrap}#bookly-tbs .navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}#bookly-tbs .navbar-expand-xl .navbar-toggler{display:none}}#bookly-tbs .navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}#bookly-tbs .navbar-expand>.container,#bookly-tbs .navbar-expand>.container-fluid,#bookly-tbs .navbar-expand>.container-lg,#bookly-tbs .navbar-expand>.container-md,#bookly-tbs .navbar-expand>.container-sm,#bookly-tbs .navbar-expand>.container-xl{padding-right:0;padding-left:0}#bookly-tbs .navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .navbar-expand .navbar-nav .dropdown-menu{position:absolute}#bookly-tbs .navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}#bookly-tbs .navbar-expand>.container,#bookly-tbs .navbar-expand>.container-fluid,#bookly-tbs .navbar-expand>.container-lg,#bookly-tbs .navbar-expand>.container-md,#bookly-tbs .navbar-expand>.container-sm,#bookly-tbs .navbar-expand>.container-xl{flex-wrap:nowrap}#bookly-tbs .navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}#bookly-tbs .navbar-expand .navbar-toggler{display:none}#bookly-tbs .navbar-light .navbar-brand{color:rgba(0,0,0,.9)}#bookly-tbs .navbar-light .navbar-brand:focus,#bookly-tbs .navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}#bookly-tbs .navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}#bookly-tbs .navbar-light .navbar-nav .nav-link:focus,#bookly-tbs .navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}#bookly-tbs .navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}#bookly-tbs .navbar-light .navbar-nav .active>.nav-link,#bookly-tbs .navbar-light .navbar-nav .nav-link.active,#bookly-tbs .navbar-light .navbar-nav .nav-link.show,#bookly-tbs .navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}#bookly-tbs .navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}#bookly-tbs .navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}#bookly-tbs .navbar-light .navbar-text{color:rgba(0,0,0,.5)}#bookly-tbs .navbar-light .navbar-text a{color:rgba(0,0,0,.9)}#bookly-tbs .navbar-light .navbar-text a:focus,#bookly-tbs .navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}#bookly-tbs .navbar-dark .navbar-brand{color:#fff}#bookly-tbs .navbar-dark .navbar-brand:focus,#bookly-tbs .navbar-dark .navbar-brand:hover{color:#fff}#bookly-tbs .navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}#bookly-tbs .navbar-dark .navbar-nav .nav-link:focus,#bookly-tbs .navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}#bookly-tbs .navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}#bookly-tbs .navbar-dark .navbar-nav .active>.nav-link,#bookly-tbs .navbar-dark .navbar-nav .nav-link.active,#bookly-tbs .navbar-dark .navbar-nav .nav-link.show,#bookly-tbs .navbar-dark .navbar-nav .show>.nav-link{color:#fff}#bookly-tbs .navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}#bookly-tbs .navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}#bookly-tbs .navbar-dark .navbar-text{color:rgba(255,255,255,.5)}#bookly-tbs .navbar-dark .navbar-text a{color:#fff}#bookly-tbs .navbar-dark .navbar-text a:focus,#bookly-tbs .navbar-dark .navbar-text a:hover{color:#fff}#bookly-tbs .card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}#bookly-tbs .card>hr{margin-right:0;margin-left:0}#bookly-tbs .card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}#bookly-tbs .card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}#bookly-tbs .card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}#bookly-tbs .card-title{margin-bottom:.75rem}#bookly-tbs .card-subtitle{margin-top:-.375rem;margin-bottom:0}#bookly-tbs .card-text:last-child{margin-bottom:0}#bookly-tbs .card-link:hover{text-decoration:none}#bookly-tbs .card-link+.card-link{margin-left:1.25rem}#bookly-tbs .card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}#bookly-tbs .card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}#bookly-tbs .card-header+.list-group .list-group-item:first-child{border-top:0}#bookly-tbs .card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}#bookly-tbs .card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}#bookly-tbs .card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}#bookly-tbs .card-header-pills{margin-right:-.625rem;margin-left:-.625rem}#bookly-tbs .card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}#bookly-tbs .card-img,#bookly-tbs .card-img-bottom,#bookly-tbs .card-img-top{flex-shrink:0;width:100%}#bookly-tbs .card-img,#bookly-tbs .card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}#bookly-tbs .card-img,#bookly-tbs .card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}#bookly-tbs .card-deck .card{margin-bottom:15px}@media (min-width:576px){#bookly-tbs .card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}#bookly-tbs .card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}#bookly-tbs .card-group>.card{margin-bottom:15px}@media (min-width:576px){#bookly-tbs .card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}#bookly-tbs .card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}#bookly-tbs .card-group>.card+.card{margin-left:0;border-left:0}#bookly-tbs .card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .card-group>.card:not(:last-child) .card-header,#bookly-tbs .card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}#bookly-tbs .card-group>.card:not(:last-child) .card-footer,#bookly-tbs .card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}#bookly-tbs .card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .card-group>.card:not(:first-child) .card-header,#bookly-tbs .card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}#bookly-tbs .card-group>.card:not(:first-child) .card-footer,#bookly-tbs .card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}#bookly-tbs .card-columns .card{margin-bottom:.75rem}@media (min-width:576px){#bookly-tbs .card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}#bookly-tbs .card-columns .card{display:inline-block;width:100%}}#bookly-tbs .accordion>.card{overflow:hidden}#bookly-tbs .accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}#bookly-tbs .accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}#bookly-tbs .breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}#bookly-tbs .breadcrumb-item+.breadcrumb-item{padding-left:.5rem}#bookly-tbs .breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}#bookly-tbs .breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}#bookly-tbs .breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}#bookly-tbs .breadcrumb-item.active{color:#6c757d}#bookly-tbs .pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}#bookly-tbs .page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}#bookly-tbs .page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}#bookly-tbs .page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}#bookly-tbs .page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}#bookly-tbs .page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}#bookly-tbs .page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}#bookly-tbs .pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}#bookly-tbs .pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}#bookly-tbs .pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}#bookly-tbs .pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}#bookly-tbs .pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}#bookly-tbs .pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}#bookly-tbs .badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){#bookly-tbs .badge{-webkit-transition:none;transition:none}}#bookly-tbs a.badge:focus,#bookly-tbs a.badge:hover{text-decoration:none}#bookly-tbs .badge:empty{display:none}#bookly-tbs .btn .badge,#bookly-tbs .fc .fc-button .badge{position:relative;top:-1px}#bookly-tbs .badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}#bookly-tbs .badge-primary{color:#fff;background-color:#007bff}#bookly-tbs a.badge-primary:focus,#bookly-tbs a.badge-primary:hover{color:#fff;background-color:#0062cc}#bookly-tbs a.badge-primary.focus,#bookly-tbs a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}#bookly-tbs .badge-secondary{color:#fff;background-color:#6c757d}#bookly-tbs a.badge-secondary:focus,#bookly-tbs a.badge-secondary:hover{color:#fff;background-color:#545b62}#bookly-tbs a.badge-secondary.focus,#bookly-tbs a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}#bookly-tbs .badge-success{color:#fff;background-color:#28a745}#bookly-tbs a.badge-success:focus,#bookly-tbs a.badge-success:hover{color:#fff;background-color:#1e7e34}#bookly-tbs a.badge-success.focus,#bookly-tbs a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}#bookly-tbs .badge-info{color:#fff;background-color:#17a2b8}#bookly-tbs a.badge-info:focus,#bookly-tbs a.badge-info:hover{color:#fff;background-color:#117a8b}#bookly-tbs a.badge-info.focus,#bookly-tbs a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}#bookly-tbs .badge-warning{color:#212529;background-color:#ffc107}#bookly-tbs a.badge-warning:focus,#bookly-tbs a.badge-warning:hover{color:#212529;background-color:#d39e00}#bookly-tbs a.badge-warning.focus,#bookly-tbs a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}#bookly-tbs .badge-danger{color:#fff;background-color:#dc3545}#bookly-tbs a.badge-danger:focus,#bookly-tbs a.badge-danger:hover{color:#fff;background-color:#bd2130}#bookly-tbs a.badge-danger.focus,#bookly-tbs a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}#bookly-tbs .badge-light{color:#212529;background-color:#f8f9fa}#bookly-tbs a.badge-light:focus,#bookly-tbs a.badge-light:hover{color:#212529;background-color:#dae0e5}#bookly-tbs a.badge-light.focus,#bookly-tbs a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}#bookly-tbs .badge-dark{color:#fff;background-color:#343a40}#bookly-tbs a.badge-dark:focus,#bookly-tbs a.badge-dark:hover{color:#fff;background-color:#1d2124}#bookly-tbs a.badge-dark.focus,#bookly-tbs a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}#bookly-tbs .jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){#bookly-tbs .jumbotron{padding:4rem 2rem}}#bookly-tbs .jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}#bookly-tbs .alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}#bookly-tbs .alert-heading{color:inherit}#bookly-tbs .alert-link{font-weight:700}#bookly-tbs .alert-dismissible{padding-right:4rem}#bookly-tbs .alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}#bookly-tbs .alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}#bookly-tbs .alert-primary hr{border-top-color:#9fcdff}#bookly-tbs .alert-primary .alert-link{color:#002752}#bookly-tbs .alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}#bookly-tbs .alert-secondary hr{border-top-color:#c8cbcf}#bookly-tbs .alert-secondary .alert-link{color:#202326}#bookly-tbs .alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}#bookly-tbs .alert-success hr{border-top-color:#b1dfbb}#bookly-tbs .alert-success .alert-link{color:#0b2e13}#bookly-tbs .alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}#bookly-tbs .alert-info hr{border-top-color:#abdde5}#bookly-tbs .alert-info .alert-link{color:#062c33}#bookly-tbs .alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}#bookly-tbs .alert-warning hr{border-top-color:#ffe8a1}#bookly-tbs .alert-warning .alert-link{color:#533f03}#bookly-tbs .alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}#bookly-tbs .alert-danger hr{border-top-color:#f1b0b7}#bookly-tbs .alert-danger .alert-link{color:#491217}#bookly-tbs .alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}#bookly-tbs .alert-light hr{border-top-color:#ececf6}#bookly-tbs .alert-light .alert-link{color:#686868}#bookly-tbs .alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}#bookly-tbs .alert-dark hr{border-top-color:#b9bbbe}#bookly-tbs .alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}#bookly-tbs .progress{display:-webkit-box;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}#bookly-tbs .progress-bar{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){#bookly-tbs .progress-bar{-webkit-transition:none;transition:none}}#bookly-tbs .progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}#bookly-tbs .progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){#bookly-tbs .progress-bar-animated{-webkit-animation:none;animation:none}}#bookly-tbs .media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}#bookly-tbs .media-body{-webkit-box-flex:1;flex:1}#bookly-tbs .list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}#bookly-tbs .list-group-item-action{width:100%;color:#495057;text-align:inherit}#bookly-tbs .list-group-item-action:focus,#bookly-tbs .list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}#bookly-tbs .list-group-item-action:active{color:#212529;background-color:#e9ecef}#bookly-tbs .list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}#bookly-tbs .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}#bookly-tbs .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}#bookly-tbs .list-group-item.disabled,#bookly-tbs .list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}#bookly-tbs .list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}#bookly-tbs .list-group-item+#bookly-tbs .list-group-item{border-top-width:0}#bookly-tbs .list-group-item+#bookly-tbs .list-group-item.active{margin-top:-1px;border-top-width:1px}#bookly-tbs .list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}#bookly-tbs .list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}#bookly-tbs .list-group-horizontal .list-group-item.active{margin-top:0}#bookly-tbs .list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}#bookly-tbs .list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){#bookly-tbs .list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}#bookly-tbs .list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}#bookly-tbs .list-group-horizontal-sm .list-group-item.active{margin-top:0}#bookly-tbs .list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}#bookly-tbs .list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){#bookly-tbs .list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}#bookly-tbs .list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}#bookly-tbs .list-group-horizontal-md .list-group-item.active{margin-top:0}#bookly-tbs .list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}#bookly-tbs .list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){#bookly-tbs .list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}#bookly-tbs .list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}#bookly-tbs .list-group-horizontal-lg .list-group-item.active{margin-top:0}#bookly-tbs .list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}#bookly-tbs .list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){#bookly-tbs .list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}#bookly-tbs .list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}#bookly-tbs .list-group-horizontal-xl .list-group-item.active{margin-top:0}#bookly-tbs .list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}#bookly-tbs .list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}#bookly-tbs .list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}#bookly-tbs .list-group-flush .list-group-item:first-child{border-top-width:0}#bookly-tbs .list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}#bookly-tbs .list-group-item-primary{color:#004085;background-color:#b8daff}#bookly-tbs .list-group-item-primary.list-group-item-action:focus,#bookly-tbs .list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}#bookly-tbs .list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}#bookly-tbs .list-group-item-secondary{color:#383d41;background-color:#d6d8db}#bookly-tbs .list-group-item-secondary.list-group-item-action:focus,#bookly-tbs .list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}#bookly-tbs .list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}#bookly-tbs .list-group-item-success{color:#155724;background-color:#c3e6cb}#bookly-tbs .list-group-item-success.list-group-item-action:focus,#bookly-tbs .list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}#bookly-tbs .list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}#bookly-tbs .list-group-item-info{color:#0c5460;background-color:#bee5eb}#bookly-tbs .list-group-item-info.list-group-item-action:focus,#bookly-tbs .list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}#bookly-tbs .list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}#bookly-tbs .list-group-item-warning{color:#856404;background-color:#ffeeba}#bookly-tbs .list-group-item-warning.list-group-item-action:focus,#bookly-tbs .list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}#bookly-tbs .list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}#bookly-tbs .list-group-item-danger{color:#721c24;background-color:#f5c6cb}#bookly-tbs .list-group-item-danger.list-group-item-action:focus,#bookly-tbs .list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}#bookly-tbs .list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}#bookly-tbs .list-group-item-light{color:#818182;background-color:#fdfdfe}#bookly-tbs .list-group-item-light.list-group-item-action:focus,#bookly-tbs .list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}#bookly-tbs .list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}#bookly-tbs .list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}#bookly-tbs .list-group-item-dark.list-group-item-action:focus,#bookly-tbs .list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}#bookly-tbs .list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}#bookly-tbs .close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}#bookly-tbs .close:hover{color:#000;text-decoration:none}#bookly-tbs .close:not(:disabled):not(.disabled):focus,#bookly-tbs .close:not(:disabled):not(.disabled):hover{opacity:.75}#bookly-tbs button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}#bookly-tbs a.close.disabled{pointer-events:none}#bookly-tbs .toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}#bookly-tbs .toast:not(:last-child){margin-bottom:.75rem}#bookly-tbs .toast.showing{opacity:1}#bookly-tbs .toast.show{display:block;opacity:1}#bookly-tbs .toast.hide{display:none}#bookly-tbs .toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}#bookly-tbs .toast-body{padding:.75rem}.bookly-modal-open{overflow:hidden}#bookly-tbs .bookly-modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.bookly-modal-open #bookly-tbs .bookly-modal{overflow-x:hidden;overflow-y:auto}#bookly-tbs .modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}#bookly-tbs .bookly-modal.bookly-fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){#bookly-tbs .bookly-modal.bookly-fade .modal-dialog{-webkit-transition:none;transition:none}}#bookly-tbs .bookly-modal.show .modal-dialog{-webkit-transform:none;transform:none}#bookly-tbs .bookly-modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}#bookly-tbs .modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}#bookly-tbs .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}#bookly-tbs .modal-dialog-scrollable .modal-footer,#bookly-tbs .modal-dialog-scrollable .modal-header{flex-shrink:0}#bookly-tbs .modal-dialog-scrollable .modal-body{overflow-y:auto}#bookly-tbs .modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}#bookly-tbs .modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}#bookly-tbs .modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}#bookly-tbs .modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}#bookly-tbs .modal-dialog-centered.modal-dialog-scrollable::before{content:none}#bookly-tbs .modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.bookly-modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.bookly-modal-backdrop.bookly-fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear;opacity:0}@media (prefers-reduced-motion:reduce){.bookly-modal-backdrop.bookly-fade{-webkit-transition:none;transition:none}}.bookly-modal-backdrop.show{opacity:.5}.bookly-modal-backdrop+.bookly-modal-backdrop{display:none!important}#bookly-tbs .modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}#bookly-tbs .modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}#bookly-tbs .modal-title{margin-bottom:0;line-height:1.5}#bookly-tbs .modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}#bookly-tbs .modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}#bookly-tbs .modal-footer>*{margin:.25rem}#bookly-tbs .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){#bookly-tbs .modal-dialog{max-width:500px;margin:3rem auto}#bookly-tbs .modal-dialog-scrollable{max-height:calc(100% - 6rem)}#bookly-tbs .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 6rem)}#bookly-tbs .modal-dialog-centered{min-height:calc(100% - 6rem)}#bookly-tbs .modal-dialog-centered::before{height:calc(100vh - 6rem)}#bookly-tbs .modal-sm{max-width:300px}}@media (min-width:992px){#bookly-tbs .modal-lg,#bookly-tbs .modal-xl{max-width:800px}}@media (min-width:1200px){#bookly-tbs .modal-xl{max-width:1140px}}#bookly-tbs .modal-faded{z-index:1039!important}#bookly-tbs .tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}#bookly-tbs .tooltip.show{opacity:.9}#bookly-tbs .tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}#bookly-tbs .tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}#bookly-tbs .bs-tooltip-auto[x-placement^=top],#bookly-tbs .bs-tooltip-top{padding:.4rem 0}#bookly-tbs .bs-tooltip-auto[x-placement^=top] .arrow,#bookly-tbs .bs-tooltip-top .arrow{bottom:0}#bookly-tbs .bs-tooltip-auto[x-placement^=top] .arrow::before,#bookly-tbs .bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}#bookly-tbs .bs-tooltip-auto[x-placement^=right],#bookly-tbs .bs-tooltip-right{padding:0 .4rem}#bookly-tbs .bs-tooltip-auto[x-placement^=right] .arrow,#bookly-tbs .bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}#bookly-tbs .bs-tooltip-auto[x-placement^=right] .arrow::before,#bookly-tbs .bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}#bookly-tbs .bs-tooltip-auto[x-placement^=bottom],#bookly-tbs .bs-tooltip-bottom{padding:.4rem 0}#bookly-tbs .bs-tooltip-auto[x-placement^=bottom] .arrow,#bookly-tbs .bs-tooltip-bottom .arrow{top:0}#bookly-tbs .bs-tooltip-auto[x-placement^=bottom] .arrow::before,#bookly-tbs .bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}#bookly-tbs .bs-tooltip-auto[x-placement^=left],#bookly-tbs .bs-tooltip-left{padding:0 .4rem}#bookly-tbs .bs-tooltip-auto[x-placement^=left] .arrow,#bookly-tbs .bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}#bookly-tbs .bs-tooltip-auto[x-placement^=left] .arrow::before,#bookly-tbs .bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}#bookly-tbs .tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}#bookly-tbs [class*=bs-popover-]>.arrow{overflow:visible;left:auto;top:auto;bottom:auto;right:auto;z-index:1040}#bookly-tbs [class*=bs-popover-]>.arrow::after{left:auto;top:auto;bottom:auto;right:auto;background-color:transparent;box-shadow:none;-webkit-transform:none;transform:none;width:auto;height:auto;z-index:1040}#bookly-tbs #bookly-appearance .bookly-popover{z-index:9999!important}#bookly-tbs .bookly-popover{position:absolute;top:0;left:0;z-index:1040;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}#bookly-tbs .bookly-popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}#bookly-tbs .bookly-popover .arrow::after,#bookly-tbs .bookly-popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}#bookly-tbs .bs-popover-auto[x-placement^=top],#bookly-tbs .bs-popover-top{margin-bottom:.5rem}#bookly-tbs .bs-popover-auto[x-placement^=top]>.arrow,#bookly-tbs .bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}#bookly-tbs .bs-popover-auto[x-placement^=top]>.arrow::before,#bookly-tbs .bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}#bookly-tbs .bs-popover-auto[x-placement^=top]>.arrow::after,#bookly-tbs .bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}#bookly-tbs .bs-popover-auto[x-placement^=right],#bookly-tbs .bs-popover-right{margin-left:.5rem}#bookly-tbs .bs-popover-auto[x-placement^=right]>.arrow,#bookly-tbs .bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}#bookly-tbs .bs-popover-auto[x-placement^=right]>.arrow::before,#bookly-tbs .bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}#bookly-tbs .bs-popover-auto[x-placement^=right]>.arrow::after,#bookly-tbs .bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}#bookly-tbs .bs-popover-auto[x-placement^=bottom],#bookly-tbs .bs-popover-bottom{margin-top:.5rem}#bookly-tbs .bs-popover-auto[x-placement^=bottom]>.arrow,#bookly-tbs .bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}#bookly-tbs .bs-popover-auto[x-placement^=bottom]>.arrow::before,#bookly-tbs .bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}#bookly-tbs .bs-popover-auto[x-placement^=bottom]>.arrow::after,#bookly-tbs .bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}#bookly-tbs .bs-popover-auto[x-placement^=bottom] .popover-header::before,#bookly-tbs .bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}#bookly-tbs .bs-popover-auto[x-placement^=left],#bookly-tbs .bs-popover-left{margin-right:.5rem}#bookly-tbs .bs-popover-auto[x-placement^=left]>.arrow,#bookly-tbs .bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}#bookly-tbs .bs-popover-auto[x-placement^=left]>.arrow::before,#bookly-tbs .bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}#bookly-tbs .bs-popover-auto[x-placement^=left]>.arrow::after,#bookly-tbs .bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}#bookly-tbs .popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}#bookly-tbs .popover-header:empty{display:none}#bookly-tbs .popover-body{padding:.5rem .75rem;color:#212529}#bookly-tbs .carousel{position:relative}#bookly-tbs .carousel.pointer-event{touch-action:pan-y}#bookly-tbs .carousel-inner{position:relative;width:100%;overflow:hidden}#bookly-tbs .carousel-inner::after{display:block;clear:both;content:""}#bookly-tbs .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){#bookly-tbs .carousel-item{-webkit-transition:none;transition:none}}#bookly-tbs .carousel-item-next,#bookly-tbs .carousel-item-prev,#bookly-tbs .carousel-item.active{display:block}#bookly-tbs .active.carousel-item-right,#bookly-tbs .carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}#bookly-tbs .active.carousel-item-left,#bookly-tbs .carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}#bookly-tbs .carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}#bookly-tbs .carousel-fade .carousel-item-next.carousel-item-left,#bookly-tbs .carousel-fade .carousel-item-prev.carousel-item-right,#bookly-tbs .carousel-fade .carousel-item.active{z-index:1;opacity:1}#bookly-tbs .carousel-fade .active.carousel-item-left,#bookly-tbs .carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){#bookly-tbs .carousel-fade .active.carousel-item-left,#bookly-tbs .carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}#bookly-tbs .carousel-control-next,#bookly-tbs .carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){#bookly-tbs .carousel-control-next,#bookly-tbs .carousel-control-prev{-webkit-transition:none;transition:none}}#bookly-tbs .carousel-control-next:focus,#bookly-tbs .carousel-control-next:hover,#bookly-tbs .carousel-control-prev:focus,#bookly-tbs .carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}#bookly-tbs .carousel-control-prev{left:0}#bookly-tbs .carousel-control-next{right:0}#bookly-tbs .carousel-control-next-icon,#bookly-tbs .carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}#bookly-tbs .carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}#bookly-tbs .carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}#bookly-tbs .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}#bookly-tbs .carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){#bookly-tbs .carousel-indicators li{-webkit-transition:none;transition:none}}#bookly-tbs .carousel-indicators .active{opacity:1}#bookly-tbs .carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}#bookly-tbs .spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}#bookly-tbs .spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}#bookly-tbs .spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}#bookly-tbs .spinner-grow-sm{width:1rem;height:1rem}#bookly-tbs .align-baseline{vertical-align:baseline!important}#bookly-tbs .align-top{vertical-align:top!important}#bookly-tbs .align-middle{vertical-align:middle!important}#bookly-tbs .align-bottom{vertical-align:bottom!important}#bookly-tbs .align-text-bottom{vertical-align:text-bottom!important}#bookly-tbs .align-text-top{vertical-align:text-top!important}#bookly-tbs .bg-primary{background-color:#007bff!important}#bookly-tbs a.bg-primary:focus,#bookly-tbs a.bg-primary:hover,#bookly-tbs button.bg-primary:focus,#bookly-tbs button.bg-primary:hover{background-color:#0062cc!important}#bookly-tbs .bg-secondary{background-color:#6c757d!important}#bookly-tbs a.bg-secondary:focus,#bookly-tbs a.bg-secondary:hover,#bookly-tbs button.bg-secondary:focus,#bookly-tbs button.bg-secondary:hover{background-color:#545b62!important}#bookly-tbs .bg-success{background-color:#28a745!important}#bookly-tbs a.bg-success:focus,#bookly-tbs a.bg-success:hover,#bookly-tbs button.bg-success:focus,#bookly-tbs button.bg-success:hover{background-color:#1e7e34!important}#bookly-tbs .bg-info{background-color:#17a2b8!important}#bookly-tbs a.bg-info:focus,#bookly-tbs a.bg-info:hover,#bookly-tbs button.bg-info:focus,#bookly-tbs button.bg-info:hover{background-color:#117a8b!important}#bookly-tbs .bg-warning{background-color:#ffc107!important}#bookly-tbs a.bg-warning:focus,#bookly-tbs a.bg-warning:hover,#bookly-tbs button.bg-warning:focus,#bookly-tbs button.bg-warning:hover{background-color:#d39e00!important}#bookly-tbs .bg-danger{background-color:#dc3545!important}#bookly-tbs a.bg-danger:focus,#bookly-tbs a.bg-danger:hover,#bookly-tbs button.bg-danger:focus,#bookly-tbs button.bg-danger:hover{background-color:#bd2130!important}#bookly-tbs .bg-light{background-color:#f8f9fa!important}#bookly-tbs a.bg-light:focus,#bookly-tbs a.bg-light:hover,#bookly-tbs button.bg-light:focus,#bookly-tbs button.bg-light:hover{background-color:#dae0e5!important}#bookly-tbs .bg-dark{background-color:#343a40!important}#bookly-tbs a.bg-dark:focus,#bookly-tbs a.bg-dark:hover,#bookly-tbs button.bg-dark:focus,#bookly-tbs button.bg-dark:hover{background-color:#1d2124!important}#bookly-tbs .bg-white{background-color:#fff!important}#bookly-tbs .bg-transparent{background-color:transparent!important}#bookly-tbs .border{border:1px solid #dee2e6!important}#bookly-tbs .border-top{border-top:1px solid #dee2e6!important}#bookly-tbs .border-right{border-right:1px solid #dee2e6!important}#bookly-tbs .border-bottom{border-bottom:1px solid #dee2e6!important}#bookly-tbs .border-left{border-left:1px solid #dee2e6!important}#bookly-tbs .border-0{border:0!important}#bookly-tbs .border-top-0{border-top:0!important}#bookly-tbs .border-right-0{border-right:0!important}#bookly-tbs .border-bottom-0{border-bottom:0!important}#bookly-tbs .border-left-0{border-left:0!important}#bookly-tbs .border-primary{border-color:#007bff!important}#bookly-tbs .border-secondary{border-color:#6c757d!important}#bookly-tbs .border-success{border-color:#28a745!important}#bookly-tbs .border-info{border-color:#17a2b8!important}#bookly-tbs .border-warning{border-color:#ffc107!important}#bookly-tbs .border-danger{border-color:#dc3545!important}#bookly-tbs .border-light{border-color:#f8f9fa!important}#bookly-tbs .border-dark{border-color:#343a40!important}#bookly-tbs .border-white{border-color:#fff!important}#bookly-tbs .rounded-sm{border-radius:.2rem!important}#bookly-tbs .rounded{border-radius:.25rem!important}#bookly-tbs .rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}#bookly-tbs .rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}#bookly-tbs .rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}#bookly-tbs .rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}#bookly-tbs .rounded-lg{border-radius:.3rem!important}#bookly-tbs .rounded-circle{border-radius:50%!important}#bookly-tbs .rounded-pill{border-radius:50rem!important}#bookly-tbs .rounded-0{border-radius:0!important}#bookly-tbs .clearfix::after{display:block;clear:both;content:""}#bookly-tbs .d-none{display:none!important}#bookly-tbs .d-inline{display:inline!important}#bookly-tbs .d-inline-block{display:inline-block!important}#bookly-tbs .d-block{display:block!important}#bookly-tbs .d-table{display:table!important}#bookly-tbs .d-table-row{display:table-row!important}#bookly-tbs .d-table-cell{display:table-cell!important}#bookly-tbs .d-flex{display:-webkit-box!important;display:flex!important}#bookly-tbs .d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){#bookly-tbs .d-sm-none{display:none!important}#bookly-tbs .d-sm-inline{display:inline!important}#bookly-tbs .d-sm-inline-block{display:inline-block!important}#bookly-tbs .d-sm-block{display:block!important}#bookly-tbs .d-sm-table{display:table!important}#bookly-tbs .d-sm-table-row{display:table-row!important}#bookly-tbs .d-sm-table-cell{display:table-cell!important}#bookly-tbs .d-sm-flex{display:-webkit-box!important;display:flex!important}#bookly-tbs .d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){#bookly-tbs .d-md-none{display:none!important}#bookly-tbs .d-md-inline{display:inline!important}#bookly-tbs .d-md-inline-block{display:inline-block!important}#bookly-tbs .d-md-block{display:block!important}#bookly-tbs .d-md-table{display:table!important}#bookly-tbs .d-md-table-row{display:table-row!important}#bookly-tbs .d-md-table-cell{display:table-cell!important}#bookly-tbs .d-md-flex{display:-webkit-box!important;display:flex!important}#bookly-tbs .d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){#bookly-tbs .d-lg-none{display:none!important}#bookly-tbs .d-lg-inline{display:inline!important}#bookly-tbs .d-lg-inline-block{display:inline-block!important}#bookly-tbs .d-lg-block{display:block!important}#bookly-tbs .d-lg-table{display:table!important}#bookly-tbs .d-lg-table-row{display:table-row!important}#bookly-tbs .d-lg-table-cell{display:table-cell!important}#bookly-tbs .d-lg-flex{display:-webkit-box!important;display:flex!important}#bookly-tbs .d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){#bookly-tbs .d-xl-none{display:none!important}#bookly-tbs .d-xl-inline{display:inline!important}#bookly-tbs .d-xl-inline-block{display:inline-block!important}#bookly-tbs .d-xl-block{display:block!important}#bookly-tbs .d-xl-table{display:table!important}#bookly-tbs .d-xl-table-row{display:table-row!important}#bookly-tbs .d-xl-table-cell{display:table-cell!important}#bookly-tbs .d-xl-flex{display:-webkit-box!important;display:flex!important}#bookly-tbs .d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{#bookly-tbs .d-print-none{display:none!important}#bookly-tbs .d-print-inline{display:inline!important}#bookly-tbs .d-print-inline-block{display:inline-block!important}#bookly-tbs .d-print-block{display:block!important}#bookly-tbs .d-print-table{display:table!important}#bookly-tbs .d-print-table-row{display:table-row!important}#bookly-tbs .d-print-table-cell{display:table-cell!important}#bookly-tbs .d-print-flex{display:-webkit-box!important;display:flex!important}#bookly-tbs .d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}#bookly-tbs .embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}#bookly-tbs .embed-responsive::before{display:block;content:""}#bookly-tbs .embed-responsive .embed-responsive-item,#bookly-tbs .embed-responsive embed,#bookly-tbs .embed-responsive iframe,#bookly-tbs .embed-responsive object,#bookly-tbs .embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}#bookly-tbs .embed-responsive-21by9::before{padding-top:42.857143%}#bookly-tbs .embed-responsive-16by9::before{padding-top:56.25%}#bookly-tbs .embed-responsive-4by3::before{padding-top:75%}#bookly-tbs .embed-responsive-1by1::before{padding-top:100%}#bookly-tbs .flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;flex-direction:row!important}#bookly-tbs .flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;flex-direction:column!important}#bookly-tbs .flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}#bookly-tbs .flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}#bookly-tbs .flex-wrap{flex-wrap:wrap!important}#bookly-tbs .flex-nowrap{flex-wrap:nowrap!important}#bookly-tbs .flex-wrap-reverse{flex-wrap:wrap-reverse!important}#bookly-tbs .flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}#bookly-tbs .flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}#bookly-tbs .flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}#bookly-tbs .flex-shrink-0{flex-shrink:0!important}#bookly-tbs .flex-shrink-1{flex-shrink:1!important}#bookly-tbs .justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}#bookly-tbs .justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}#bookly-tbs .justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}#bookly-tbs .justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}#bookly-tbs .justify-content-around{justify-content:space-around!important}#bookly-tbs .align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}#bookly-tbs .align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}#bookly-tbs .align-items-center{-webkit-box-align:center!important;align-items:center!important}#bookly-tbs .align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}#bookly-tbs .align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}#bookly-tbs .align-content-start{align-content:flex-start!important}#bookly-tbs .align-content-end{align-content:flex-end!important}#bookly-tbs .align-content-center{align-content:center!important}#bookly-tbs .align-content-between{align-content:space-between!important}#bookly-tbs .align-content-around{align-content:space-around!important}#bookly-tbs .align-content-stretch{align-content:stretch!important}#bookly-tbs .align-self-auto{align-self:auto!important}#bookly-tbs .align-self-start{align-self:flex-start!important}#bookly-tbs .align-self-end{align-self:flex-end!important}#bookly-tbs .align-self-center{align-self:center!important}#bookly-tbs .align-self-baseline{align-self:baseline!important}#bookly-tbs .align-self-stretch{align-self:stretch!important}@media (min-width:576px){#bookly-tbs .flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;flex-direction:row!important}#bookly-tbs .flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;flex-direction:column!important}#bookly-tbs .flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}#bookly-tbs .flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}#bookly-tbs .flex-sm-wrap{flex-wrap:wrap!important}#bookly-tbs .flex-sm-nowrap{flex-wrap:nowrap!important}#bookly-tbs .flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}#bookly-tbs .flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}#bookly-tbs .flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}#bookly-tbs .flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}#bookly-tbs .flex-sm-shrink-0{flex-shrink:0!important}#bookly-tbs .flex-sm-shrink-1{flex-shrink:1!important}#bookly-tbs .justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}#bookly-tbs .justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}#bookly-tbs .justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}#bookly-tbs .justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}#bookly-tbs .justify-content-sm-around{justify-content:space-around!important}#bookly-tbs .align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}#bookly-tbs .align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}#bookly-tbs .align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}#bookly-tbs .align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}#bookly-tbs .align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}#bookly-tbs .align-content-sm-start{align-content:flex-start!important}#bookly-tbs .align-content-sm-end{align-content:flex-end!important}#bookly-tbs .align-content-sm-center{align-content:center!important}#bookly-tbs .align-content-sm-between{align-content:space-between!important}#bookly-tbs .align-content-sm-around{align-content:space-around!important}#bookly-tbs .align-content-sm-stretch{align-content:stretch!important}#bookly-tbs .align-self-sm-auto{align-self:auto!important}#bookly-tbs .align-self-sm-start{align-self:flex-start!important}#bookly-tbs .align-self-sm-end{align-self:flex-end!important}#bookly-tbs .align-self-sm-center{align-self:center!important}#bookly-tbs .align-self-sm-baseline{align-self:baseline!important}#bookly-tbs .align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){#bookly-tbs .flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;flex-direction:row!important}#bookly-tbs .flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;flex-direction:column!important}#bookly-tbs .flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}#bookly-tbs .flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}#bookly-tbs .flex-md-wrap{flex-wrap:wrap!important}#bookly-tbs .flex-md-nowrap{flex-wrap:nowrap!important}#bookly-tbs .flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}#bookly-tbs .flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}#bookly-tbs .flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}#bookly-tbs .flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}#bookly-tbs .flex-md-shrink-0{flex-shrink:0!important}#bookly-tbs .flex-md-shrink-1{flex-shrink:1!important}#bookly-tbs .justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}#bookly-tbs .justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}#bookly-tbs .justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}#bookly-tbs .justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}#bookly-tbs .justify-content-md-around{justify-content:space-around!important}#bookly-tbs .align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}#bookly-tbs .align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}#bookly-tbs .align-items-md-center{-webkit-box-align:center!important;align-items:center!important}#bookly-tbs .align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}#bookly-tbs .align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}#bookly-tbs .align-content-md-start{align-content:flex-start!important}#bookly-tbs .align-content-md-end{align-content:flex-end!important}#bookly-tbs .align-content-md-center{align-content:center!important}#bookly-tbs .align-content-md-between{align-content:space-between!important}#bookly-tbs .align-content-md-around{align-content:space-around!important}#bookly-tbs .align-content-md-stretch{align-content:stretch!important}#bookly-tbs .align-self-md-auto{align-self:auto!important}#bookly-tbs .align-self-md-start{align-self:flex-start!important}#bookly-tbs .align-self-md-end{align-self:flex-end!important}#bookly-tbs .align-self-md-center{align-self:center!important}#bookly-tbs .align-self-md-baseline{align-self:baseline!important}#bookly-tbs .align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){#bookly-tbs .flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;flex-direction:row!important}#bookly-tbs .flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;flex-direction:column!important}#bookly-tbs .flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}#bookly-tbs .flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}#bookly-tbs .flex-lg-wrap{flex-wrap:wrap!important}#bookly-tbs .flex-lg-nowrap{flex-wrap:nowrap!important}#bookly-tbs .flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}#bookly-tbs .flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}#bookly-tbs .flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}#bookly-tbs .flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}#bookly-tbs .flex-lg-shrink-0{flex-shrink:0!important}#bookly-tbs .flex-lg-shrink-1{flex-shrink:1!important}#bookly-tbs .justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}#bookly-tbs .justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}#bookly-tbs .justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}#bookly-tbs .justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}#bookly-tbs .justify-content-lg-around{justify-content:space-around!important}#bookly-tbs .align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}#bookly-tbs .align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}#bookly-tbs .align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}#bookly-tbs .align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}#bookly-tbs .align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}#bookly-tbs .align-content-lg-start{align-content:flex-start!important}#bookly-tbs .align-content-lg-end{align-content:flex-end!important}#bookly-tbs .align-content-lg-center{align-content:center!important}#bookly-tbs .align-content-lg-between{align-content:space-between!important}#bookly-tbs .align-content-lg-around{align-content:space-around!important}#bookly-tbs .align-content-lg-stretch{align-content:stretch!important}#bookly-tbs .align-self-lg-auto{align-self:auto!important}#bookly-tbs .align-self-lg-start{align-self:flex-start!important}#bookly-tbs .align-self-lg-end{align-self:flex-end!important}#bookly-tbs .align-self-lg-center{align-self:center!important}#bookly-tbs .align-self-lg-baseline{align-self:baseline!important}#bookly-tbs .align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){#bookly-tbs .flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;flex-direction:row!important}#bookly-tbs .flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;flex-direction:column!important}#bookly-tbs .flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}#bookly-tbs .flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}#bookly-tbs .flex-xl-wrap{flex-wrap:wrap!important}#bookly-tbs .flex-xl-nowrap{flex-wrap:nowrap!important}#bookly-tbs .flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}#bookly-tbs .flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}#bookly-tbs .flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}#bookly-tbs .flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}#bookly-tbs .flex-xl-shrink-0{flex-shrink:0!important}#bookly-tbs .flex-xl-shrink-1{flex-shrink:1!important}#bookly-tbs .justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}#bookly-tbs .justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}#bookly-tbs .justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}#bookly-tbs .justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}#bookly-tbs .justify-content-xl-around{justify-content:space-around!important}#bookly-tbs .align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}#bookly-tbs .align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}#bookly-tbs .align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}#bookly-tbs .align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}#bookly-tbs .align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}#bookly-tbs .align-content-xl-start{align-content:flex-start!important}#bookly-tbs .align-content-xl-end{align-content:flex-end!important}#bookly-tbs .align-content-xl-center{align-content:center!important}#bookly-tbs .align-content-xl-between{align-content:space-between!important}#bookly-tbs .align-content-xl-around{align-content:space-around!important}#bookly-tbs .align-content-xl-stretch{align-content:stretch!important}#bookly-tbs .align-self-xl-auto{align-self:auto!important}#bookly-tbs .align-self-xl-start{align-self:flex-start!important}#bookly-tbs .align-self-xl-end{align-self:flex-end!important}#bookly-tbs .align-self-xl-center{align-self:center!important}#bookly-tbs .align-self-xl-baseline{align-self:baseline!important}#bookly-tbs .align-self-xl-stretch{align-self:stretch!important}}#bookly-tbs .float-left{float:left!important}#bookly-tbs .float-right{float:right!important}#bookly-tbs .float-none{float:none!important}@media (min-width:576px){#bookly-tbs .float-sm-left{float:left!important}#bookly-tbs .float-sm-right{float:right!important}#bookly-tbs .float-sm-none{float:none!important}}@media (min-width:768px){#bookly-tbs .float-md-left{float:left!important}#bookly-tbs .float-md-right{float:right!important}#bookly-tbs .float-md-none{float:none!important}}@media (min-width:992px){#bookly-tbs .float-lg-left{float:left!important}#bookly-tbs .float-lg-right{float:right!important}#bookly-tbs .float-lg-none{float:none!important}}@media (min-width:1200px){#bookly-tbs .float-xl-left{float:left!important}#bookly-tbs .float-xl-right{float:right!important}#bookly-tbs .float-xl-none{float:none!important}}#bookly-tbs .overflow-auto{overflow:auto!important}#bookly-tbs .overflow-hidden{overflow:hidden!important}#bookly-tbs .position-static{position:static!important}#bookly-tbs .position-relative{position:relative!important}#bookly-tbs .position-absolute{position:absolute!important}#bookly-tbs .position-fixed{position:fixed!important}#bookly-tbs .position-sticky{position:-webkit-sticky!important;position:sticky!important}#bookly-tbs .fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}#bookly-tbs .fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){#bookly-tbs .sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}#bookly-tbs .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#bookly-tbs .sr-only-focusable:active,#bookly-tbs .sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}#bookly-tbs .shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}#bookly-tbs .shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}#bookly-tbs .shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}#bookly-tbs .shadow-none{box-shadow:none!important}#bookly-tbs .w-25{width:25%!important}#bookly-tbs .w-50{width:50%!important}#bookly-tbs .w-75{width:75%!important}#bookly-tbs .w-100{width:100%!important}#bookly-tbs .w-auto{width:auto!important}#bookly-tbs .h-25{height:25%!important}#bookly-tbs .h-50{height:50%!important}#bookly-tbs .h-75{height:75%!important}#bookly-tbs .h-100{height:100%!important}#bookly-tbs .h-auto{height:auto!important}#bookly-tbs .mw-100{max-width:100%!important}#bookly-tbs .mh-100{max-height:100%!important}#bookly-tbs .min-vw-100{min-width:100vw!important}#bookly-tbs .min-vh-100{min-height:100vh!important}#bookly-tbs .vw-100{width:100vw!important}#bookly-tbs .vh-100{height:100vh!important}#bookly-tbs .stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}#bookly-tbs .m-0{margin:0!important}#bookly-tbs .mt-0,#bookly-tbs .my-0{margin-top:0!important}#bookly-tbs .mr-0,#bookly-tbs .mx-0{margin-right:0!important}#bookly-tbs .mb-0,#bookly-tbs .my-0{margin-bottom:0!important}#bookly-tbs .ml-0,#bookly-tbs .mx-0{margin-left:0!important}#bookly-tbs .m-1{margin:.25rem!important}#bookly-tbs .mt-1,#bookly-tbs .my-1{margin-top:.25rem!important}#bookly-tbs .mr-1,#bookly-tbs .mx-1{margin-right:.25rem!important}#bookly-tbs .mb-1,#bookly-tbs .my-1{margin-bottom:.25rem!important}#bookly-tbs .ml-1,#bookly-tbs .mx-1{margin-left:.25rem!important}#bookly-tbs .m-2{margin:.5rem!important}#bookly-tbs .mt-2,#bookly-tbs .my-2{margin-top:.5rem!important}#bookly-tbs .mr-2,#bookly-tbs .mx-2{margin-right:.5rem!important}#bookly-tbs .mb-2,#bookly-tbs .my-2{margin-bottom:.5rem!important}#bookly-tbs .ml-2,#bookly-tbs .mx-2{margin-left:.5rem!important}#bookly-tbs .m-3{margin:1rem!important}#bookly-tbs .mt-3,#bookly-tbs .my-3{margin-top:1rem!important}#bookly-tbs .mr-3,#bookly-tbs .mx-3{margin-right:1rem!important}#bookly-tbs .mb-3,#bookly-tbs .my-3{margin-bottom:1rem!important}#bookly-tbs .ml-3,#bookly-tbs .mx-3{margin-left:1rem!important}#bookly-tbs .m-4{margin:1.5rem!important}#bookly-tbs .mt-4,#bookly-tbs .my-4{margin-top:1.5rem!important}#bookly-tbs .mr-4,#bookly-tbs .mx-4{margin-right:1.5rem!important}#bookly-tbs .mb-4,#bookly-tbs .my-4{margin-bottom:1.5rem!important}#bookly-tbs .ml-4,#bookly-tbs .mx-4{margin-left:1.5rem!important}#bookly-tbs .m-5{margin:3rem!important}#bookly-tbs .mt-5,#bookly-tbs .my-5{margin-top:3rem!important}#bookly-tbs .mr-5,#bookly-tbs .mx-5{margin-right:3rem!important}#bookly-tbs .mb-5,#bookly-tbs .my-5{margin-bottom:3rem!important}#bookly-tbs .ml-5,#bookly-tbs .mx-5{margin-left:3rem!important}#bookly-tbs .p-0{padding:0!important}#bookly-tbs .pt-0,#bookly-tbs .py-0{padding-top:0!important}#bookly-tbs .pr-0,#bookly-tbs .px-0{padding-right:0!important}#bookly-tbs .pb-0,#bookly-tbs .py-0{padding-bottom:0!important}#bookly-tbs .pl-0,#bookly-tbs .px-0{padding-left:0!important}#bookly-tbs .p-1{padding:.25rem!important}#bookly-tbs .pt-1,#bookly-tbs .py-1{padding-top:.25rem!important}#bookly-tbs .pr-1,#bookly-tbs .px-1{padding-right:.25rem!important}#bookly-tbs .pb-1,#bookly-tbs .py-1{padding-bottom:.25rem!important}#bookly-tbs .pl-1,#bookly-tbs .px-1{padding-left:.25rem!important}#bookly-tbs .p-2{padding:.5rem!important}#bookly-tbs .pt-2,#bookly-tbs .py-2{padding-top:.5rem!important}#bookly-tbs .pr-2,#bookly-tbs .px-2{padding-right:.5rem!important}#bookly-tbs .pb-2,#bookly-tbs .py-2{padding-bottom:.5rem!important}#bookly-tbs .pl-2,#bookly-tbs .px-2{padding-left:.5rem!important}#bookly-tbs .p-3{padding:1rem!important}#bookly-tbs .pt-3,#bookly-tbs .py-3{padding-top:1rem!important}#bookly-tbs .pr-3,#bookly-tbs .px-3{padding-right:1rem!important}#bookly-tbs .pb-3,#bookly-tbs .py-3{padding-bottom:1rem!important}#bookly-tbs .pl-3,#bookly-tbs .px-3{padding-left:1rem!important}#bookly-tbs .p-4{padding:1.5rem!important}#bookly-tbs .pt-4,#bookly-tbs .py-4{padding-top:1.5rem!important}#bookly-tbs .pr-4,#bookly-tbs .px-4{padding-right:1.5rem!important}#bookly-tbs .pb-4,#bookly-tbs .py-4{padding-bottom:1.5rem!important}#bookly-tbs .pl-4,#bookly-tbs .px-4{padding-left:1.5rem!important}#bookly-tbs .p-5{padding:3rem!important}#bookly-tbs .pt-5,#bookly-tbs .py-5{padding-top:3rem!important}#bookly-tbs .pr-5,#bookly-tbs .px-5{padding-right:3rem!important}#bookly-tbs .pb-5,#bookly-tbs .py-5{padding-bottom:3rem!important}#bookly-tbs .pl-5,#bookly-tbs .px-5{padding-left:3rem!important}#bookly-tbs .m-n1{margin:-.25rem!important}#bookly-tbs .mt-n1,#bookly-tbs .my-n1{margin-top:-.25rem!important}#bookly-tbs .mr-n1,#bookly-tbs .mx-n1{margin-right:-.25rem!important}#bookly-tbs .mb-n1,#bookly-tbs .my-n1{margin-bottom:-.25rem!important}#bookly-tbs .ml-n1,#bookly-tbs .mx-n1{margin-left:-.25rem!important}#bookly-tbs .m-n2{margin:-.5rem!important}#bookly-tbs .mt-n2,#bookly-tbs .my-n2{margin-top:-.5rem!important}#bookly-tbs .mr-n2,#bookly-tbs .mx-n2{margin-right:-.5rem!important}#bookly-tbs .mb-n2,#bookly-tbs .my-n2{margin-bottom:-.5rem!important}#bookly-tbs .ml-n2,#bookly-tbs .mx-n2{margin-left:-.5rem!important}#bookly-tbs .m-n3{margin:-1rem!important}#bookly-tbs .mt-n3,#bookly-tbs .my-n3{margin-top:-1rem!important}#bookly-tbs .mr-n3,#bookly-tbs .mx-n3{margin-right:-1rem!important}#bookly-tbs .mb-n3,#bookly-tbs .my-n3{margin-bottom:-1rem!important}#bookly-tbs .ml-n3,#bookly-tbs .mx-n3{margin-left:-1rem!important}#bookly-tbs .m-n4{margin:-1.5rem!important}#bookly-tbs .mt-n4,#bookly-tbs .my-n4{margin-top:-1.5rem!important}#bookly-tbs .mr-n4,#bookly-tbs .mx-n4{margin-right:-1.5rem!important}#bookly-tbs .mb-n4,#bookly-tbs .my-n4{margin-bottom:-1.5rem!important}#bookly-tbs .ml-n4,#bookly-tbs .mx-n4{margin-left:-1.5rem!important}#bookly-tbs .m-n5{margin:-3rem!important}#bookly-tbs .mt-n5,#bookly-tbs .my-n5{margin-top:-3rem!important}#bookly-tbs .mr-n5,#bookly-tbs .mx-n5{margin-right:-3rem!important}#bookly-tbs .mb-n5,#bookly-tbs .my-n5{margin-bottom:-3rem!important}#bookly-tbs .ml-n5,#bookly-tbs .mx-n5{margin-left:-3rem!important}#bookly-tbs .m-auto{margin:auto!important}#bookly-tbs .mt-auto,#bookly-tbs .my-auto{margin-top:auto!important}#bookly-tbs .mr-auto,#bookly-tbs .mx-auto{margin-right:auto!important}#bookly-tbs .mb-auto,#bookly-tbs .my-auto{margin-bottom:auto!important}#bookly-tbs .ml-auto,#bookly-tbs .mx-auto{margin-left:auto!important}@media (min-width:576px){#bookly-tbs .m-sm-0{margin:0!important}#bookly-tbs .mt-sm-0,#bookly-tbs .my-sm-0{margin-top:0!important}#bookly-tbs .mr-sm-0,#bookly-tbs .mx-sm-0{margin-right:0!important}#bookly-tbs .mb-sm-0,#bookly-tbs .my-sm-0{margin-bottom:0!important}#bookly-tbs .ml-sm-0,#bookly-tbs .mx-sm-0{margin-left:0!important}#bookly-tbs .m-sm-1{margin:.25rem!important}#bookly-tbs .mt-sm-1,#bookly-tbs .my-sm-1{margin-top:.25rem!important}#bookly-tbs .mr-sm-1,#bookly-tbs .mx-sm-1{margin-right:.25rem!important}#bookly-tbs .mb-sm-1,#bookly-tbs .my-sm-1{margin-bottom:.25rem!important}#bookly-tbs .ml-sm-1,#bookly-tbs .mx-sm-1{margin-left:.25rem!important}#bookly-tbs .m-sm-2{margin:.5rem!important}#bookly-tbs .mt-sm-2,#bookly-tbs .my-sm-2{margin-top:.5rem!important}#bookly-tbs .mr-sm-2,#bookly-tbs .mx-sm-2{margin-right:.5rem!important}#bookly-tbs .mb-sm-2,#bookly-tbs .my-sm-2{margin-bottom:.5rem!important}#bookly-tbs .ml-sm-2,#bookly-tbs .mx-sm-2{margin-left:.5rem!important}#bookly-tbs .m-sm-3{margin:1rem!important}#bookly-tbs .mt-sm-3,#bookly-tbs .my-sm-3{margin-top:1rem!important}#bookly-tbs .mr-sm-3,#bookly-tbs .mx-sm-3{margin-right:1rem!important}#bookly-tbs .mb-sm-3,#bookly-tbs .my-sm-3{margin-bottom:1rem!important}#bookly-tbs .ml-sm-3,#bookly-tbs .mx-sm-3{margin-left:1rem!important}#bookly-tbs .m-sm-4{margin:1.5rem!important}#bookly-tbs .mt-sm-4,#bookly-tbs .my-sm-4{margin-top:1.5rem!important}#bookly-tbs .mr-sm-4,#bookly-tbs .mx-sm-4{margin-right:1.5rem!important}#bookly-tbs .mb-sm-4,#bookly-tbs .my-sm-4{margin-bottom:1.5rem!important}#bookly-tbs .ml-sm-4,#bookly-tbs .mx-sm-4{margin-left:1.5rem!important}#bookly-tbs .m-sm-5{margin:3rem!important}#bookly-tbs .mt-sm-5,#bookly-tbs .my-sm-5{margin-top:3rem!important}#bookly-tbs .mr-sm-5,#bookly-tbs .mx-sm-5{margin-right:3rem!important}#bookly-tbs .mb-sm-5,#bookly-tbs .my-sm-5{margin-bottom:3rem!important}#bookly-tbs .ml-sm-5,#bookly-tbs .mx-sm-5{margin-left:3rem!important}#bookly-tbs .p-sm-0{padding:0!important}#bookly-tbs .pt-sm-0,#bookly-tbs .py-sm-0{padding-top:0!important}#bookly-tbs .pr-sm-0,#bookly-tbs .px-sm-0{padding-right:0!important}#bookly-tbs .pb-sm-0,#bookly-tbs .py-sm-0{padding-bottom:0!important}#bookly-tbs .pl-sm-0,#bookly-tbs .px-sm-0{padding-left:0!important}#bookly-tbs .p-sm-1{padding:.25rem!important}#bookly-tbs .pt-sm-1,#bookly-tbs .py-sm-1{padding-top:.25rem!important}#bookly-tbs .pr-sm-1,#bookly-tbs .px-sm-1{padding-right:.25rem!important}#bookly-tbs .pb-sm-1,#bookly-tbs .py-sm-1{padding-bottom:.25rem!important}#bookly-tbs .pl-sm-1,#bookly-tbs .px-sm-1{padding-left:.25rem!important}#bookly-tbs .p-sm-2{padding:.5rem!important}#bookly-tbs .pt-sm-2,#bookly-tbs .py-sm-2{padding-top:.5rem!important}#bookly-tbs .pr-sm-2,#bookly-tbs .px-sm-2{padding-right:.5rem!important}#bookly-tbs .pb-sm-2,#bookly-tbs .py-sm-2{padding-bottom:.5rem!important}#bookly-tbs .pl-sm-2,#bookly-tbs .px-sm-2{padding-left:.5rem!important}#bookly-tbs .p-sm-3{padding:1rem!important}#bookly-tbs .pt-sm-3,#bookly-tbs .py-sm-3{padding-top:1rem!important}#bookly-tbs .pr-sm-3,#bookly-tbs .px-sm-3{padding-right:1rem!important}#bookly-tbs .pb-sm-3,#bookly-tbs .py-sm-3{padding-bottom:1rem!important}#bookly-tbs .pl-sm-3,#bookly-tbs .px-sm-3{padding-left:1rem!important}#bookly-tbs .p-sm-4{padding:1.5rem!important}#bookly-tbs .pt-sm-4,#bookly-tbs .py-sm-4{padding-top:1.5rem!important}#bookly-tbs .pr-sm-4,#bookly-tbs .px-sm-4{padding-right:1.5rem!important}#bookly-tbs .pb-sm-4,#bookly-tbs .py-sm-4{padding-bottom:1.5rem!important}#bookly-tbs .pl-sm-4,#bookly-tbs .px-sm-4{padding-left:1.5rem!important}#bookly-tbs .p-sm-5{padding:3rem!important}#bookly-tbs .pt-sm-5,#bookly-tbs .py-sm-5{padding-top:3rem!important}#bookly-tbs .pr-sm-5,#bookly-tbs .px-sm-5{padding-right:3rem!important}#bookly-tbs .pb-sm-5,#bookly-tbs .py-sm-5{padding-bottom:3rem!important}#bookly-tbs .pl-sm-5,#bookly-tbs .px-sm-5{padding-left:3rem!important}#bookly-tbs .m-sm-n1{margin:-.25rem!important}#bookly-tbs .mt-sm-n1,#bookly-tbs .my-sm-n1{margin-top:-.25rem!important}#bookly-tbs .mr-sm-n1,#bookly-tbs .mx-sm-n1{margin-right:-.25rem!important}#bookly-tbs .mb-sm-n1,#bookly-tbs .my-sm-n1{margin-bottom:-.25rem!important}#bookly-tbs .ml-sm-n1,#bookly-tbs .mx-sm-n1{margin-left:-.25rem!important}#bookly-tbs .m-sm-n2{margin:-.5rem!important}#bookly-tbs .mt-sm-n2,#bookly-tbs .my-sm-n2{margin-top:-.5rem!important}#bookly-tbs .mr-sm-n2,#bookly-tbs .mx-sm-n2{margin-right:-.5rem!important}#bookly-tbs .mb-sm-n2,#bookly-tbs .my-sm-n2{margin-bottom:-.5rem!important}#bookly-tbs .ml-sm-n2,#bookly-tbs .mx-sm-n2{margin-left:-.5rem!important}#bookly-tbs .m-sm-n3{margin:-1rem!important}#bookly-tbs .mt-sm-n3,#bookly-tbs .my-sm-n3{margin-top:-1rem!important}#bookly-tbs .mr-sm-n3,#bookly-tbs .mx-sm-n3{margin-right:-1rem!important}#bookly-tbs .mb-sm-n3,#bookly-tbs .my-sm-n3{margin-bottom:-1rem!important}#bookly-tbs .ml-sm-n3,#bookly-tbs .mx-sm-n3{margin-left:-1rem!important}#bookly-tbs .m-sm-n4{margin:-1.5rem!important}#bookly-tbs .mt-sm-n4,#bookly-tbs .my-sm-n4{margin-top:-1.5rem!important}#bookly-tbs .mr-sm-n4,#bookly-tbs .mx-sm-n4{margin-right:-1.5rem!important}#bookly-tbs .mb-sm-n4,#bookly-tbs .my-sm-n4{margin-bottom:-1.5rem!important}#bookly-tbs .ml-sm-n4,#bookly-tbs .mx-sm-n4{margin-left:-1.5rem!important}#bookly-tbs .m-sm-n5{margin:-3rem!important}#bookly-tbs .mt-sm-n5,#bookly-tbs .my-sm-n5{margin-top:-3rem!important}#bookly-tbs .mr-sm-n5,#bookly-tbs .mx-sm-n5{margin-right:-3rem!important}#bookly-tbs .mb-sm-n5,#bookly-tbs .my-sm-n5{margin-bottom:-3rem!important}#bookly-tbs .ml-sm-n5,#bookly-tbs .mx-sm-n5{margin-left:-3rem!important}#bookly-tbs .m-sm-auto{margin:auto!important}#bookly-tbs .mt-sm-auto,#bookly-tbs .my-sm-auto{margin-top:auto!important}#bookly-tbs .mr-sm-auto,#bookly-tbs .mx-sm-auto{margin-right:auto!important}#bookly-tbs .mb-sm-auto,#bookly-tbs .my-sm-auto{margin-bottom:auto!important}#bookly-tbs .ml-sm-auto,#bookly-tbs .mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){#bookly-tbs .m-md-0{margin:0!important}#bookly-tbs .mt-md-0,#bookly-tbs .my-md-0{margin-top:0!important}#bookly-tbs .mr-md-0,#bookly-tbs .mx-md-0{margin-right:0!important}#bookly-tbs .mb-md-0,#bookly-tbs .my-md-0{margin-bottom:0!important}#bookly-tbs .ml-md-0,#bookly-tbs .mx-md-0{margin-left:0!important}#bookly-tbs .m-md-1{margin:.25rem!important}#bookly-tbs .mt-md-1,#bookly-tbs .my-md-1{margin-top:.25rem!important}#bookly-tbs .mr-md-1,#bookly-tbs .mx-md-1{margin-right:.25rem!important}#bookly-tbs .mb-md-1,#bookly-tbs .my-md-1{margin-bottom:.25rem!important}#bookly-tbs .ml-md-1,#bookly-tbs .mx-md-1{margin-left:.25rem!important}#bookly-tbs .m-md-2{margin:.5rem!important}#bookly-tbs .mt-md-2,#bookly-tbs .my-md-2{margin-top:.5rem!important}#bookly-tbs .mr-md-2,#bookly-tbs .mx-md-2{margin-right:.5rem!important}#bookly-tbs .mb-md-2,#bookly-tbs .my-md-2{margin-bottom:.5rem!important}#bookly-tbs .ml-md-2,#bookly-tbs .mx-md-2{margin-left:.5rem!important}#bookly-tbs .m-md-3{margin:1rem!important}#bookly-tbs .mt-md-3,#bookly-tbs .my-md-3{margin-top:1rem!important}#bookly-tbs .mr-md-3,#bookly-tbs .mx-md-3{margin-right:1rem!important}#bookly-tbs .mb-md-3,#bookly-tbs .my-md-3{margin-bottom:1rem!important}#bookly-tbs .ml-md-3,#bookly-tbs .mx-md-3{margin-left:1rem!important}#bookly-tbs .m-md-4{margin:1.5rem!important}#bookly-tbs .mt-md-4,#bookly-tbs .my-md-4{margin-top:1.5rem!important}#bookly-tbs .mr-md-4,#bookly-tbs .mx-md-4{margin-right:1.5rem!important}#bookly-tbs .mb-md-4,#bookly-tbs .my-md-4{margin-bottom:1.5rem!important}#bookly-tbs .ml-md-4,#bookly-tbs .mx-md-4{margin-left:1.5rem!important}#bookly-tbs .m-md-5{margin:3rem!important}#bookly-tbs .mt-md-5,#bookly-tbs .my-md-5{margin-top:3rem!important}#bookly-tbs .mr-md-5,#bookly-tbs .mx-md-5{margin-right:3rem!important}#bookly-tbs .mb-md-5,#bookly-tbs .my-md-5{margin-bottom:3rem!important}#bookly-tbs .ml-md-5,#bookly-tbs .mx-md-5{margin-left:3rem!important}#bookly-tbs .p-md-0{padding:0!important}#bookly-tbs .pt-md-0,#bookly-tbs .py-md-0{padding-top:0!important}#bookly-tbs .pr-md-0,#bookly-tbs .px-md-0{padding-right:0!important}#bookly-tbs .pb-md-0,#bookly-tbs .py-md-0{padding-bottom:0!important}#bookly-tbs .pl-md-0,#bookly-tbs .px-md-0{padding-left:0!important}#bookly-tbs .p-md-1{padding:.25rem!important}#bookly-tbs .pt-md-1,#bookly-tbs .py-md-1{padding-top:.25rem!important}#bookly-tbs .pr-md-1,#bookly-tbs .px-md-1{padding-right:.25rem!important}#bookly-tbs .pb-md-1,#bookly-tbs .py-md-1{padding-bottom:.25rem!important}#bookly-tbs .pl-md-1,#bookly-tbs .px-md-1{padding-left:.25rem!important}#bookly-tbs .p-md-2{padding:.5rem!important}#bookly-tbs .pt-md-2,#bookly-tbs .py-md-2{padding-top:.5rem!important}#bookly-tbs .pr-md-2,#bookly-tbs .px-md-2{padding-right:.5rem!important}#bookly-tbs .pb-md-2,#bookly-tbs .py-md-2{padding-bottom:.5rem!important}#bookly-tbs .pl-md-2,#bookly-tbs .px-md-2{padding-left:.5rem!important}#bookly-tbs .p-md-3{padding:1rem!important}#bookly-tbs .pt-md-3,#bookly-tbs .py-md-3{padding-top:1rem!important}#bookly-tbs .pr-md-3,#bookly-tbs .px-md-3{padding-right:1rem!important}#bookly-tbs .pb-md-3,#bookly-tbs .py-md-3{padding-bottom:1rem!important}#bookly-tbs .pl-md-3,#bookly-tbs .px-md-3{padding-left:1rem!important}#bookly-tbs .p-md-4{padding:1.5rem!important}#bookly-tbs .pt-md-4,#bookly-tbs .py-md-4{padding-top:1.5rem!important}#bookly-tbs .pr-md-4,#bookly-tbs .px-md-4{padding-right:1.5rem!important}#bookly-tbs .pb-md-4,#bookly-tbs .py-md-4{padding-bottom:1.5rem!important}#bookly-tbs .pl-md-4,#bookly-tbs .px-md-4{padding-left:1.5rem!important}#bookly-tbs .p-md-5{padding:3rem!important}#bookly-tbs .pt-md-5,#bookly-tbs .py-md-5{padding-top:3rem!important}#bookly-tbs .pr-md-5,#bookly-tbs .px-md-5{padding-right:3rem!important}#bookly-tbs .pb-md-5,#bookly-tbs .py-md-5{padding-bottom:3rem!important}#bookly-tbs .pl-md-5,#bookly-tbs .px-md-5{padding-left:3rem!important}#bookly-tbs .m-md-n1{margin:-.25rem!important}#bookly-tbs .mt-md-n1,#bookly-tbs .my-md-n1{margin-top:-.25rem!important}#bookly-tbs .mr-md-n1,#bookly-tbs .mx-md-n1{margin-right:-.25rem!important}#bookly-tbs .mb-md-n1,#bookly-tbs .my-md-n1{margin-bottom:-.25rem!important}#bookly-tbs .ml-md-n1,#bookly-tbs .mx-md-n1{margin-left:-.25rem!important}#bookly-tbs .m-md-n2{margin:-.5rem!important}#bookly-tbs .mt-md-n2,#bookly-tbs .my-md-n2{margin-top:-.5rem!important}#bookly-tbs .mr-md-n2,#bookly-tbs .mx-md-n2{margin-right:-.5rem!important}#bookly-tbs .mb-md-n2,#bookly-tbs .my-md-n2{margin-bottom:-.5rem!important}#bookly-tbs .ml-md-n2,#bookly-tbs .mx-md-n2{margin-left:-.5rem!important}#bookly-tbs .m-md-n3{margin:-1rem!important}#bookly-tbs .mt-md-n3,#bookly-tbs .my-md-n3{margin-top:-1rem!important}#bookly-tbs .mr-md-n3,#bookly-tbs .mx-md-n3{margin-right:-1rem!important}#bookly-tbs .mb-md-n3,#bookly-tbs .my-md-n3{margin-bottom:-1rem!important}#bookly-tbs .ml-md-n3,#bookly-tbs .mx-md-n3{margin-left:-1rem!important}#bookly-tbs .m-md-n4{margin:-1.5rem!important}#bookly-tbs .mt-md-n4,#bookly-tbs .my-md-n4{margin-top:-1.5rem!important}#bookly-tbs .mr-md-n4,#bookly-tbs .mx-md-n4{margin-right:-1.5rem!important}#bookly-tbs .mb-md-n4,#bookly-tbs .my-md-n4{margin-bottom:-1.5rem!important}#bookly-tbs .ml-md-n4,#bookly-tbs .mx-md-n4{margin-left:-1.5rem!important}#bookly-tbs .m-md-n5{margin:-3rem!important}#bookly-tbs .mt-md-n5,#bookly-tbs .my-md-n5{margin-top:-3rem!important}#bookly-tbs .mr-md-n5,#bookly-tbs .mx-md-n5{margin-right:-3rem!important}#bookly-tbs .mb-md-n5,#bookly-tbs .my-md-n5{margin-bottom:-3rem!important}#bookly-tbs .ml-md-n5,#bookly-tbs .mx-md-n5{margin-left:-3rem!important}#bookly-tbs .m-md-auto{margin:auto!important}#bookly-tbs .mt-md-auto,#bookly-tbs .my-md-auto{margin-top:auto!important}#bookly-tbs .mr-md-auto,#bookly-tbs .mx-md-auto{margin-right:auto!important}#bookly-tbs .mb-md-auto,#bookly-tbs .my-md-auto{margin-bottom:auto!important}#bookly-tbs .ml-md-auto,#bookly-tbs .mx-md-auto{margin-left:auto!important}}@media (min-width:992px){#bookly-tbs .m-lg-0{margin:0!important}#bookly-tbs .mt-lg-0,#bookly-tbs .my-lg-0{margin-top:0!important}#bookly-tbs .mr-lg-0,#bookly-tbs .mx-lg-0{margin-right:0!important}#bookly-tbs .mb-lg-0,#bookly-tbs .my-lg-0{margin-bottom:0!important}#bookly-tbs .ml-lg-0,#bookly-tbs .mx-lg-0{margin-left:0!important}#bookly-tbs .m-lg-1{margin:.25rem!important}#bookly-tbs .mt-lg-1,#bookly-tbs .my-lg-1{margin-top:.25rem!important}#bookly-tbs .mr-lg-1,#bookly-tbs .mx-lg-1{margin-right:.25rem!important}#bookly-tbs .mb-lg-1,#bookly-tbs .my-lg-1{margin-bottom:.25rem!important}#bookly-tbs .ml-lg-1,#bookly-tbs .mx-lg-1{margin-left:.25rem!important}#bookly-tbs .m-lg-2{margin:.5rem!important}#bookly-tbs .mt-lg-2,#bookly-tbs .my-lg-2{margin-top:.5rem!important}#bookly-tbs .mr-lg-2,#bookly-tbs .mx-lg-2{margin-right:.5rem!important}#bookly-tbs .mb-lg-2,#bookly-tbs .my-lg-2{margin-bottom:.5rem!important}#bookly-tbs .ml-lg-2,#bookly-tbs .mx-lg-2{margin-left:.5rem!important}#bookly-tbs .m-lg-3{margin:1rem!important}#bookly-tbs .mt-lg-3,#bookly-tbs .my-lg-3{margin-top:1rem!important}#bookly-tbs .mr-lg-3,#bookly-tbs .mx-lg-3{margin-right:1rem!important}#bookly-tbs .mb-lg-3,#bookly-tbs .my-lg-3{margin-bottom:1rem!important}#bookly-tbs .ml-lg-3,#bookly-tbs .mx-lg-3{margin-left:1rem!important}#bookly-tbs .m-lg-4{margin:1.5rem!important}#bookly-tbs .mt-lg-4,#bookly-tbs .my-lg-4{margin-top:1.5rem!important}#bookly-tbs .mr-lg-4,#bookly-tbs .mx-lg-4{margin-right:1.5rem!important}#bookly-tbs .mb-lg-4,#bookly-tbs .my-lg-4{margin-bottom:1.5rem!important}#bookly-tbs .ml-lg-4,#bookly-tbs .mx-lg-4{margin-left:1.5rem!important}#bookly-tbs .m-lg-5{margin:3rem!important}#bookly-tbs .mt-lg-5,#bookly-tbs .my-lg-5{margin-top:3rem!important}#bookly-tbs .mr-lg-5,#bookly-tbs .mx-lg-5{margin-right:3rem!important}#bookly-tbs .mb-lg-5,#bookly-tbs .my-lg-5{margin-bottom:3rem!important}#bookly-tbs .ml-lg-5,#bookly-tbs .mx-lg-5{margin-left:3rem!important}#bookly-tbs .p-lg-0{padding:0!important}#bookly-tbs .pt-lg-0,#bookly-tbs .py-lg-0{padding-top:0!important}#bookly-tbs .pr-lg-0,#bookly-tbs .px-lg-0{padding-right:0!important}#bookly-tbs .pb-lg-0,#bookly-tbs .py-lg-0{padding-bottom:0!important}#bookly-tbs .pl-lg-0,#bookly-tbs .px-lg-0{padding-left:0!important}#bookly-tbs .p-lg-1{padding:.25rem!important}#bookly-tbs .pt-lg-1,#bookly-tbs .py-lg-1{padding-top:.25rem!important}#bookly-tbs .pr-lg-1,#bookly-tbs .px-lg-1{padding-right:.25rem!important}#bookly-tbs .pb-lg-1,#bookly-tbs .py-lg-1{padding-bottom:.25rem!important}#bookly-tbs .pl-lg-1,#bookly-tbs .px-lg-1{padding-left:.25rem!important}#bookly-tbs .p-lg-2{padding:.5rem!important}#bookly-tbs .pt-lg-2,#bookly-tbs .py-lg-2{padding-top:.5rem!important}#bookly-tbs .pr-lg-2,#bookly-tbs .px-lg-2{padding-right:.5rem!important}#bookly-tbs .pb-lg-2,#bookly-tbs .py-lg-2{padding-bottom:.5rem!important}#bookly-tbs .pl-lg-2,#bookly-tbs .px-lg-2{padding-left:.5rem!important}#bookly-tbs .p-lg-3{padding:1rem!important}#bookly-tbs .pt-lg-3,#bookly-tbs .py-lg-3{padding-top:1rem!important}#bookly-tbs .pr-lg-3,#bookly-tbs .px-lg-3{padding-right:1rem!important}#bookly-tbs .pb-lg-3,#bookly-tbs .py-lg-3{padding-bottom:1rem!important}#bookly-tbs .pl-lg-3,#bookly-tbs .px-lg-3{padding-left:1rem!important}#bookly-tbs .p-lg-4{padding:1.5rem!important}#bookly-tbs .pt-lg-4,#bookly-tbs .py-lg-4{padding-top:1.5rem!important}#bookly-tbs .pr-lg-4,#bookly-tbs .px-lg-4{padding-right:1.5rem!important}#bookly-tbs .pb-lg-4,#bookly-tbs .py-lg-4{padding-bottom:1.5rem!important}#bookly-tbs .pl-lg-4,#bookly-tbs .px-lg-4{padding-left:1.5rem!important}#bookly-tbs .p-lg-5{padding:3rem!important}#bookly-tbs .pt-lg-5,#bookly-tbs .py-lg-5{padding-top:3rem!important}#bookly-tbs .pr-lg-5,#bookly-tbs .px-lg-5{padding-right:3rem!important}#bookly-tbs .pb-lg-5,#bookly-tbs .py-lg-5{padding-bottom:3rem!important}#bookly-tbs .pl-lg-5,#bookly-tbs .px-lg-5{padding-left:3rem!important}#bookly-tbs .m-lg-n1{margin:-.25rem!important}#bookly-tbs .mt-lg-n1,#bookly-tbs .my-lg-n1{margin-top:-.25rem!important}#bookly-tbs .mr-lg-n1,#bookly-tbs .mx-lg-n1{margin-right:-.25rem!important}#bookly-tbs .mb-lg-n1,#bookly-tbs .my-lg-n1{margin-bottom:-.25rem!important}#bookly-tbs .ml-lg-n1,#bookly-tbs .mx-lg-n1{margin-left:-.25rem!important}#bookly-tbs .m-lg-n2{margin:-.5rem!important}#bookly-tbs .mt-lg-n2,#bookly-tbs .my-lg-n2{margin-top:-.5rem!important}#bookly-tbs .mr-lg-n2,#bookly-tbs .mx-lg-n2{margin-right:-.5rem!important}#bookly-tbs .mb-lg-n2,#bookly-tbs .my-lg-n2{margin-bottom:-.5rem!important}#bookly-tbs .ml-lg-n2,#bookly-tbs .mx-lg-n2{margin-left:-.5rem!important}#bookly-tbs .m-lg-n3{margin:-1rem!important}#bookly-tbs .mt-lg-n3,#bookly-tbs .my-lg-n3{margin-top:-1rem!important}#bookly-tbs .mr-lg-n3,#bookly-tbs .mx-lg-n3{margin-right:-1rem!important}#bookly-tbs .mb-lg-n3,#bookly-tbs .my-lg-n3{margin-bottom:-1rem!important}#bookly-tbs .ml-lg-n3,#bookly-tbs .mx-lg-n3{margin-left:-1rem!important}#bookly-tbs .m-lg-n4{margin:-1.5rem!important}#bookly-tbs .mt-lg-n4,#bookly-tbs .my-lg-n4{margin-top:-1.5rem!important}#bookly-tbs .mr-lg-n4,#bookly-tbs .mx-lg-n4{margin-right:-1.5rem!important}#bookly-tbs .mb-lg-n4,#bookly-tbs .my-lg-n4{margin-bottom:-1.5rem!important}#bookly-tbs .ml-lg-n4,#bookly-tbs .mx-lg-n4{margin-left:-1.5rem!important}#bookly-tbs .m-lg-n5{margin:-3rem!important}#bookly-tbs .mt-lg-n5,#bookly-tbs .my-lg-n5{margin-top:-3rem!important}#bookly-tbs .mr-lg-n5,#bookly-tbs .mx-lg-n5{margin-right:-3rem!important}#bookly-tbs .mb-lg-n5,#bookly-tbs .my-lg-n5{margin-bottom:-3rem!important}#bookly-tbs .ml-lg-n5,#bookly-tbs .mx-lg-n5{margin-left:-3rem!important}#bookly-tbs .m-lg-auto{margin:auto!important}#bookly-tbs .mt-lg-auto,#bookly-tbs .my-lg-auto{margin-top:auto!important}#bookly-tbs .mr-lg-auto,#bookly-tbs .mx-lg-auto{margin-right:auto!important}#bookly-tbs .mb-lg-auto,#bookly-tbs .my-lg-auto{margin-bottom:auto!important}#bookly-tbs .ml-lg-auto,#bookly-tbs .mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){#bookly-tbs .m-xl-0{margin:0!important}#bookly-tbs .mt-xl-0,#bookly-tbs .my-xl-0{margin-top:0!important}#bookly-tbs .mr-xl-0,#bookly-tbs .mx-xl-0{margin-right:0!important}#bookly-tbs .mb-xl-0,#bookly-tbs .my-xl-0{margin-bottom:0!important}#bookly-tbs .ml-xl-0,#bookly-tbs .mx-xl-0{margin-left:0!important}#bookly-tbs .m-xl-1{margin:.25rem!important}#bookly-tbs .mt-xl-1,#bookly-tbs .my-xl-1{margin-top:.25rem!important}#bookly-tbs .mr-xl-1,#bookly-tbs .mx-xl-1{margin-right:.25rem!important}#bookly-tbs .mb-xl-1,#bookly-tbs .my-xl-1{margin-bottom:.25rem!important}#bookly-tbs .ml-xl-1,#bookly-tbs .mx-xl-1{margin-left:.25rem!important}#bookly-tbs .m-xl-2{margin:.5rem!important}#bookly-tbs .mt-xl-2,#bookly-tbs .my-xl-2{margin-top:.5rem!important}#bookly-tbs .mr-xl-2,#bookly-tbs .mx-xl-2{margin-right:.5rem!important}#bookly-tbs .mb-xl-2,#bookly-tbs .my-xl-2{margin-bottom:.5rem!important}#bookly-tbs .ml-xl-2,#bookly-tbs .mx-xl-2{margin-left:.5rem!important}#bookly-tbs .m-xl-3{margin:1rem!important}#bookly-tbs .mt-xl-3,#bookly-tbs .my-xl-3{margin-top:1rem!important}#bookly-tbs .mr-xl-3,#bookly-tbs .mx-xl-3{margin-right:1rem!important}#bookly-tbs .mb-xl-3,#bookly-tbs .my-xl-3{margin-bottom:1rem!important}#bookly-tbs .ml-xl-3,#bookly-tbs .mx-xl-3{margin-left:1rem!important}#bookly-tbs .m-xl-4{margin:1.5rem!important}#bookly-tbs .mt-xl-4,#bookly-tbs .my-xl-4{margin-top:1.5rem!important}#bookly-tbs .mr-xl-4,#bookly-tbs .mx-xl-4{margin-right:1.5rem!important}#bookly-tbs .mb-xl-4,#bookly-tbs .my-xl-4{margin-bottom:1.5rem!important}#bookly-tbs .ml-xl-4,#bookly-tbs .mx-xl-4{margin-left:1.5rem!important}#bookly-tbs .m-xl-5{margin:3rem!important}#bookly-tbs .mt-xl-5,#bookly-tbs .my-xl-5{margin-top:3rem!important}#bookly-tbs .mr-xl-5,#bookly-tbs .mx-xl-5{margin-right:3rem!important}#bookly-tbs .mb-xl-5,#bookly-tbs .my-xl-5{margin-bottom:3rem!important}#bookly-tbs .ml-xl-5,#bookly-tbs .mx-xl-5{margin-left:3rem!important}#bookly-tbs .p-xl-0{padding:0!important}#bookly-tbs .pt-xl-0,#bookly-tbs .py-xl-0{padding-top:0!important}#bookly-tbs .pr-xl-0,#bookly-tbs .px-xl-0{padding-right:0!important}#bookly-tbs .pb-xl-0,#bookly-tbs .py-xl-0{padding-bottom:0!important}#bookly-tbs .pl-xl-0,#bookly-tbs .px-xl-0{padding-left:0!important}#bookly-tbs .p-xl-1{padding:.25rem!important}#bookly-tbs .pt-xl-1,#bookly-tbs .py-xl-1{padding-top:.25rem!important}#bookly-tbs .pr-xl-1,#bookly-tbs .px-xl-1{padding-right:.25rem!important}#bookly-tbs .pb-xl-1,#bookly-tbs .py-xl-1{padding-bottom:.25rem!important}#bookly-tbs .pl-xl-1,#bookly-tbs .px-xl-1{padding-left:.25rem!important}#bookly-tbs .p-xl-2{padding:.5rem!important}#bookly-tbs .pt-xl-2,#bookly-tbs .py-xl-2{padding-top:.5rem!important}#bookly-tbs .pr-xl-2,#bookly-tbs .px-xl-2{padding-right:.5rem!important}#bookly-tbs .pb-xl-2,#bookly-tbs .py-xl-2{padding-bottom:.5rem!important}#bookly-tbs .pl-xl-2,#bookly-tbs .px-xl-2{padding-left:.5rem!important}#bookly-tbs .p-xl-3{padding:1rem!important}#bookly-tbs .pt-xl-3,#bookly-tbs .py-xl-3{padding-top:1rem!important}#bookly-tbs .pr-xl-3,#bookly-tbs .px-xl-3{padding-right:1rem!important}#bookly-tbs .pb-xl-3,#bookly-tbs .py-xl-3{padding-bottom:1rem!important}#bookly-tbs .pl-xl-3,#bookly-tbs .px-xl-3{padding-left:1rem!important}#bookly-tbs .p-xl-4{padding:1.5rem!important}#bookly-tbs .pt-xl-4,#bookly-tbs .py-xl-4{padding-top:1.5rem!important}#bookly-tbs .pr-xl-4,#bookly-tbs .px-xl-4{padding-right:1.5rem!important}#bookly-tbs .pb-xl-4,#bookly-tbs .py-xl-4{padding-bottom:1.5rem!important}#bookly-tbs .pl-xl-4,#bookly-tbs .px-xl-4{padding-left:1.5rem!important}#bookly-tbs .p-xl-5{padding:3rem!important}#bookly-tbs .pt-xl-5,#bookly-tbs .py-xl-5{padding-top:3rem!important}#bookly-tbs .pr-xl-5,#bookly-tbs .px-xl-5{padding-right:3rem!important}#bookly-tbs .pb-xl-5,#bookly-tbs .py-xl-5{padding-bottom:3rem!important}#bookly-tbs .pl-xl-5,#bookly-tbs .px-xl-5{padding-left:3rem!important}#bookly-tbs .m-xl-n1{margin:-.25rem!important}#bookly-tbs .mt-xl-n1,#bookly-tbs .my-xl-n1{margin-top:-.25rem!important}#bookly-tbs .mr-xl-n1,#bookly-tbs .mx-xl-n1{margin-right:-.25rem!important}#bookly-tbs .mb-xl-n1,#bookly-tbs .my-xl-n1{margin-bottom:-.25rem!important}#bookly-tbs .ml-xl-n1,#bookly-tbs .mx-xl-n1{margin-left:-.25rem!important}#bookly-tbs .m-xl-n2{margin:-.5rem!important}#bookly-tbs .mt-xl-n2,#bookly-tbs .my-xl-n2{margin-top:-.5rem!important}#bookly-tbs .mr-xl-n2,#bookly-tbs .mx-xl-n2{margin-right:-.5rem!important}#bookly-tbs .mb-xl-n2,#bookly-tbs .my-xl-n2{margin-bottom:-.5rem!important}#bookly-tbs .ml-xl-n2,#bookly-tbs .mx-xl-n2{margin-left:-.5rem!important}#bookly-tbs .m-xl-n3{margin:-1rem!important}#bookly-tbs .mt-xl-n3,#bookly-tbs .my-xl-n3{margin-top:-1rem!important}#bookly-tbs .mr-xl-n3,#bookly-tbs .mx-xl-n3{margin-right:-1rem!important}#bookly-tbs .mb-xl-n3,#bookly-tbs .my-xl-n3{margin-bottom:-1rem!important}#bookly-tbs .ml-xl-n3,#bookly-tbs .mx-xl-n3{margin-left:-1rem!important}#bookly-tbs .m-xl-n4{margin:-1.5rem!important}#bookly-tbs .mt-xl-n4,#bookly-tbs .my-xl-n4{margin-top:-1.5rem!important}#bookly-tbs .mr-xl-n4,#bookly-tbs .mx-xl-n4{margin-right:-1.5rem!important}#bookly-tbs .mb-xl-n4,#bookly-tbs .my-xl-n4{margin-bottom:-1.5rem!important}#bookly-tbs .ml-xl-n4,#bookly-tbs .mx-xl-n4{margin-left:-1.5rem!important}#bookly-tbs .m-xl-n5{margin:-3rem!important}#bookly-tbs .mt-xl-n5,#bookly-tbs .my-xl-n5{margin-top:-3rem!important}#bookly-tbs .mr-xl-n5,#bookly-tbs .mx-xl-n5{margin-right:-3rem!important}#bookly-tbs .mb-xl-n5,#bookly-tbs .my-xl-n5{margin-bottom:-3rem!important}#bookly-tbs .ml-xl-n5,#bookly-tbs .mx-xl-n5{margin-left:-3rem!important}#bookly-tbs .m-xl-auto{margin:auto!important}#bookly-tbs .mt-xl-auto,#bookly-tbs .my-xl-auto{margin-top:auto!important}#bookly-tbs .mr-xl-auto,#bookly-tbs .mx-xl-auto{margin-right:auto!important}#bookly-tbs .mb-xl-auto,#bookly-tbs .my-xl-auto{margin-bottom:auto!important}#bookly-tbs .ml-xl-auto,#bookly-tbs .mx-xl-auto{margin-left:auto!important}}#bookly-tbs .text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}#bookly-tbs .text-justify{text-align:justify!important}#bookly-tbs .text-wrap{white-space:normal!important}#bookly-tbs .text-nowrap{white-space:nowrap!important}#bookly-tbs .text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .text-left{text-align:left!important}#bookly-tbs .text-right{text-align:right!important}#bookly-tbs .text-center{text-align:center!important}@media (min-width:576px){#bookly-tbs .text-sm-left{text-align:left!important}#bookly-tbs .text-sm-right{text-align:right!important}#bookly-tbs .text-sm-center{text-align:center!important}}@media (min-width:768px){#bookly-tbs .text-md-left{text-align:left!important}#bookly-tbs .text-md-right{text-align:right!important}#bookly-tbs .text-md-center{text-align:center!important}}@media (min-width:992px){#bookly-tbs .text-lg-left{text-align:left!important}#bookly-tbs .text-lg-right{text-align:right!important}#bookly-tbs .text-lg-center{text-align:center!important}}@media (min-width:1200px){#bookly-tbs .text-xl-left{text-align:left!important}#bookly-tbs .text-xl-right{text-align:right!important}#bookly-tbs .text-xl-center{text-align:center!important}}#bookly-tbs .text-lowercase{text-transform:lowercase!important}#bookly-tbs .text-uppercase{text-transform:uppercase!important}#bookly-tbs .text-capitalize{text-transform:capitalize!important}#bookly-tbs .font-weight-light{font-weight:300!important}#bookly-tbs .font-weight-lighter{font-weight:lighter!important}#bookly-tbs .font-weight-normal{font-weight:400!important}#bookly-tbs .font-weight-bold{font-weight:700!important}#bookly-tbs .font-weight-bolder{font-weight:bolder!important}#bookly-tbs .font-italic{font-style:italic!important}#bookly-tbs .text-white{color:#fff!important}#bookly-tbs .text-primary{color:#007bff!important}#bookly-tbs a.text-primary:focus,#bookly-tbs a.text-primary:hover{color:#0056b3!important}#bookly-tbs .text-secondary{color:#6c757d!important}#bookly-tbs a.text-secondary:focus,#bookly-tbs a.text-secondary:hover{color:#494f54!important}#bookly-tbs .text-success{color:#28a745!important}#bookly-tbs a.text-success:focus,#bookly-tbs a.text-success:hover{color:#19692c!important}#bookly-tbs .text-info{color:#17a2b8!important}#bookly-tbs a.text-info:focus,#bookly-tbs a.text-info:hover{color:#0f6674!important}#bookly-tbs .text-warning{color:#ffc107!important}#bookly-tbs a.text-warning:focus,#bookly-tbs a.text-warning:hover{color:#ba8b00!important}#bookly-tbs .text-danger{color:#dc3545!important}#bookly-tbs a.text-danger:focus,#bookly-tbs a.text-danger:hover{color:#a71d2a!important}#bookly-tbs .text-light{color:#f8f9fa!important}#bookly-tbs a.text-light:focus,#bookly-tbs a.text-light:hover{color:#cbd3da!important}#bookly-tbs .text-dark{color:#343a40!important}#bookly-tbs a.text-dark:focus,#bookly-tbs a.text-dark:hover{color:#121416!important}#bookly-tbs .text-body{color:#212529!important}#bookly-tbs .text-muted{color:#6c757d!important}#bookly-tbs .text-black-50{color:rgba(0,0,0,.5)!important}#bookly-tbs .text-white-50{color:rgba(255,255,255,.5)!important}#bookly-tbs .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}#bookly-tbs .text-decoration-none{text-decoration:none!important}#bookly-tbs .text-break{word-break:break-word!important;overflow-wrap:break-word!important}#bookly-tbs .text-reset{color:inherit!important}#bookly-tbs .visible{visibility:visible!important}#bookly-tbs .invisible{visibility:hidden!important}@media print{#bookly-tbs *,#bookly-tbs ::after,#bookly-tbs ::before{text-shadow:none!important;box-shadow:none!important}#bookly-tbs a:not(.btn){text-decoration:underline}#bookly-tbs abbr[title]::after{content:" (" attr(title) ")"}#bookly-tbs pre{white-space:pre-wrap!important}#bookly-tbs blockquote,#bookly-tbs pre{border:1px solid #adb5bd;page-break-inside:avoid}#bookly-tbs thead{display:table-header-group}#bookly-tbs img,#bookly-tbs tr{page-break-inside:avoid}#bookly-tbs h2,#bookly-tbs h3,#bookly-tbs p{orphans:3;widows:3}#bookly-tbs h2,#bookly-tbs h3{page-break-after:avoid}@page{size:a3}#bookly-tbs body{min-width:992px!important}#bookly-tbs .container{min-width:992px!important}#bookly-tbs .navbar{display:none}#bookly-tbs .badge{border:1px solid #000}#bookly-tbs .table{border-collapse:collapse!important}#bookly-tbs .table td,#bookly-tbs .table th{background-color:#fff!important}#bookly-tbs .table-bordered td,#bookly-tbs .table-bordered th{border:1px solid #dee2e6!important}#bookly-tbs .table-dark{color:inherit}#bookly-tbs .table-dark tbody+tbody,#bookly-tbs .table-dark td,#bookly-tbs .table-dark th,#bookly-tbs .table-dark thead th{border-color:#dee2e6}#bookly-tbs .table .thead-dark th{color:inherit;border-color:#dee2e6}}#bookly-tbs p{font-size:1rem}#bookly-tbs ol,#bookly-tbs ul{padding:0 0 0 40px}#bookly-tbs ol{margin-left:0}#bookly-tbs ul{list-style:disc}#bookly-tbs li{margin:0}#bookly-tbs a:focus{box-shadow:none}#bookly-tbs .form-control{max-width:none}#bookly-tbs .btn,#bookly-tbs .fc .fc-button{white-space:nowrap}#bookly-tbs .btn-default,#bookly-tbs .fc .fc-button{color:#212529;background-color:#fff;border-color:#ced4da}#bookly-tbs .btn-default:hover,#bookly-tbs .fc .fc-button:hover{color:#212529;background-color:#ececec;border-color:#b1bbc4}#bookly-tbs .btn-default.focus,#bookly-tbs .btn-default:focus,#bookly-tbs .fc .fc-button:focus,#bookly-tbs .fc .focus.fc-button{color:#212529;background-color:#ececec;border-color:#b1bbc4;box-shadow:0 0 0 .2rem rgba(180,186,191,.5)}#bookly-tbs .btn-default.disabled,#bookly-tbs .btn-default:disabled,#bookly-tbs .fc .disabled.fc-button,#bookly-tbs .fc .fc-button:disabled{color:#212529;background-color:#fff;border-color:#ced4da}#bookly-tbs .btn-default:not(:disabled):not(.disabled).active,#bookly-tbs .btn-default:not(:disabled):not(.disabled):active,#bookly-tbs .fc .fc-button:not(:disabled):not(.disabled).active,#bookly-tbs .fc .fc-button:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-default.dropdown-toggle,.show>#bookly-tbs .fc .dropdown-toggle.fc-button{color:#212529;background-color:#e6e6e6;border-color:#aab4bf}#bookly-tbs .btn-default:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-default:not(:disabled):not(.disabled):active:focus,#bookly-tbs .fc .fc-button:not(:disabled):not(.disabled).active:focus,#bookly-tbs .fc .fc-button:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-default.dropdown-toggle:focus,.show>#bookly-tbs .fc .dropdown-toggle.fc-button:focus{box-shadow:0 0 0 .2rem rgba(180,186,191,.5)}#bookly-tbs .bookly-fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){#bookly-tbs .bookly-fade{-webkit-transition:none;transition:none}}#bookly-tbs .bookly-fade:not(.show){opacity:0}#bookly-tbs .dropdown-item:focus,#bookly-tbs .dropdown-item:hover{background-color:#fff}#bookly-tbs .dropdown-item .dropdown-item{padding:.25rem 0 .25rem 1.5rem}#bookly-tbs .dropdown-item .custom-control label{width:100%}#bookly-tbs .dropdown-item .custom-control:focus,#bookly-tbs .dropdown-item .custom-control:hover{background-color:#f8f9fa}#bookly-tbs .bookly-modal .dropdown-menu.show{overflow-y:auto;max-height:300px}#bookly-tbs .custom-checkbox .custom-control-input.bookly-checkbox-loading~.custom-control-label:before{content:'';width:16px;height:16px;background:url(../../images/ajax_loader_32x32.gif) no-repeat;background-size:contain;border:none;background-color:transparent!important}#bookly-tbs .custom-checkbox .custom-control-input:not(:checked)~.custom-control-label.bookly-toggle-label{color:#6c757d}#bookly-tbs .nav-tabs .nav-link{color:#495057}#bookly-tbs .nav-tabs .nav-link:hover{color:#343a40}#bookly-tbs .nav-tabs .nav-link:focus{box-shadow:none;outline:0}@media (max-width:575.98px){#bookly-tbs .bookly-nav-tabs-xs.nav-tabs .nav-link{background-color:#f8f9fa;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-color:#dee2e6;margin-bottom:.5rem}#bookly-tbs .bookly-nav-tabs-xs.nav-tabs .nav-link.active{background-color:#fff;border-bottom:1px solid #dee2e6}#bookly-tbs .bookly-nav-tabs-xs.nav-tabs .nav-link:hover{border-color:#343a40}}@media (max-width:767.98px){#bookly-tbs .bookly-nav-tabs-sm.nav-tabs .nav-link{background-color:#f8f9fa;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-color:#dee2e6;margin-bottom:.5rem}#bookly-tbs .bookly-nav-tabs-sm.nav-tabs .nav-link.active{background-color:#fff;border-bottom:1px solid #dee2e6}#bookly-tbs .bookly-nav-tabs-sm.nav-tabs .nav-link:hover{border-color:#343a40}}@media (max-width:991.98px){#bookly-tbs .bookly-nav-tabs-md.nav-tabs .nav-link{background-color:#f8f9fa;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-color:#dee2e6;margin-bottom:.5rem}#bookly-tbs .bookly-nav-tabs-md.nav-tabs .nav-link.active{background-color:#fff;border-bottom:1px solid #dee2e6}#bookly-tbs .bookly-nav-tabs-md.nav-tabs .nav-link:hover{border-color:#343a40}}@media (max-width:1199.98px){#bookly-tbs .bookly-nav-tabs-lg.nav-tabs .nav-link{background-color:#f8f9fa;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-color:#dee2e6;margin-bottom:.5rem}#bookly-tbs .bookly-nav-tabs-lg.nav-tabs .nav-link.active{background-color:#fff;border-bottom:1px solid #dee2e6}#bookly-tbs .bookly-nav-tabs-lg.nav-tabs .nav-link:hover{border-color:#343a40}}#bookly-tbs .bookly-nav-tabs-xl.nav-tabs .nav-link{background-color:#f8f9fa;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-color:#dee2e6;margin-bottom:.5rem}#bookly-tbs .bookly-nav-tabs-xl.nav-tabs .nav-link.active{background-color:#fff;border-bottom:1px solid #dee2e6}#bookly-tbs .bookly-nav-tabs-xl.nav-tabs .nav-link:hover{border-color:#343a40}#bookly-tbs .nav-pills .nav-link{background-color:#fff;background-clip:border-box;color:#212529;border:1px solid #ced4da}#bookly-tbs .nav-pills .nav-link:hover{color:#fff;background-color:#007bff}#bookly-tbs .nav-pills .nav-link.active,#bookly-tbs .nav-pills .nav-link:hover{border-color:transparent}#bookly-tbs .card{margin-top:0;padding:0;max-width:none;box-shadow:none}#bookly-tbs .bookly-card-highlighted{background-color:#f4e9e6}#bookly-tbs .list-group-item+.list-group-item{border-top-width:0}#bookly-tbs .list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}#bookly-tbs .list-group-item[style="display: none;"]+.list-group-item{border-top-left-radius:.25rem;border-top-right-radius:.25rem;border-top:1px solid rgba(0,0,0,.125)}#bookly-tbs .list-group-item.ui-sortable-helper,#bookly-tbs .list-group-item.ui-sortable-placeholder+.list-group-item{border-top:1px solid rgba(0,0,0,.125)}#bookly-tbs .bookly-cursor-move{cursor:move}#bookly-tbs .bookly-loading{position:relative;height:100px}#bookly-tbs .bookly-loading:before{content:'';position:absolute;left:calc(50% - 16px);top:calc(50% - 16px);width:32px;height:32px;background:url(../../images/ajax_loader_32x32.gif) no-repeat;background-size:contain}#bookly-tbs .bookly-loading.bookly-loading-sm{position:relative;display:inline-block;min-width:16px;min-height:16px;height:16px}#bookly-tbs .bookly-loading.bookly-loading-sm:before{left:0;top:2px;width:16px;height:16px}#bookly-tbs .bookly-hide-empty:empty{display:none}#bookly-tbs .text-pre-wrap{white-space:pre-wrap!important}#bookly-tbs .bookly-cursor-pointer{cursor:pointer}#bookly-tbs .bookly-alert{position:fixed;top:55px;right:13px;z-index:10000;text-align:left}@media (min-width:783px){#bookly-tbs .bookly-alert{right:21px}}#bookly-tbs .bookly-alert button{margin-left:10px}#bookly-tbs .bookly-collapse{margin-bottom:.75rem}#bookly-tbs .bookly-collapse a[data-toggle=collapse]{text-decoration:none;color:#343a40}#bookly-tbs .bookly-collapse a[data-toggle=collapse]:after{content:"\f0d8";font-family:"Font Awesome 5 Free";font-size:.875rem;font-weight:900;margin-left:.5em}#bookly-tbs .bookly-collapse a[data-toggle=collapse].collapsed{color:#495057}#bookly-tbs .bookly-collapse a[data-toggle=collapse].collapsed:hover{color:#343a40}#bookly-tbs .bookly-collapse a[data-toggle=collapse].collapsed:after{content:"\f0d7"}#bookly-tbs .bookly-color-picker{height:38px}#bookly-tbs .bookly-color-picker .wp-picker-container{position:absolute;z-index:1;padding:9px 8px 8px;margin:-8px 0 0 -8px;background-color:#fff}#bookly-tbs .bookly-color-picker .wp-picker-container *{box-sizing:content-box}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result{border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;border:none;box-shadow:0 0 0 1px #ced4da}@media (prefers-reduced-motion:reduce){#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result{-webkit-transition:none;transition:none}}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result:hover{box-shadow:0 0 0 1px #b1bbc4}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result:hover .wp-color-result-text{color:#212529;border-color:#b1bbc4;background-color:#ececec}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result.focus,#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result:focus{box-shadow:0 0 0 .2rem rgba(180,186,191,.5)}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result.focus .wp-color-result-text,#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result:focus .wp-color-result-text{color:#212529;border-color:#b1bbc4;background-color:#ececec}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result .wp-color-result-text{margin:-1px -1px -1px 0;border:1px solid #ced4da;border-radius:0 .25rem .25rem 0;color:#212529;padding:.375rem .75rem;font-weight:400;font-size:1rem;background-color:#fff;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;line-height:1.5;max-width:130px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (prefers-reduced-motion:reduce){#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result .wp-color-result-text{-webkit-transition:none;transition:none}}#bookly-tbs .bookly-color-picker .wp-picker-container.wp-picker-active{box-shadow:0 5px 10px rgba(0,0,0,.2)}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-picker-input-wrap{margin-left:8px}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-picker-input-wrap .wp-color-picker{margin-top:-1px;min-height:26px;border:1px solid #ced4da;border-radius:.25rem}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-picker-input-wrap input.wp-picker-clear{display:none}#bookly-tbs table.dataTable{clear:both;margin-top:6px!important;margin-bottom:6px!important;max-width:none!important;border-collapse:separate!important;border-spacing:0}#bookly-tbs table.dataTable td,#bookly-tbs table.dataTable th{box-sizing:content-box}#bookly-tbs table.dataTable td.dataTables_empty,#bookly-tbs table.dataTable th.dataTables_empty{text-align:center}#bookly-tbs table.dataTable.nowrap td,#bookly-tbs table.dataTable.nowrap th{white-space:nowrap}#bookly-tbs div.dataTables_wrapper div.dataTables_length label{font-weight:400;text-align:left;white-space:nowrap}#bookly-tbs div.dataTables_wrapper div.dataTables_length select{width:auto;display:inline-block}#bookly-tbs div.dataTables_wrapper div.dataTables_filter{text-align:right}#bookly-tbs div.dataTables_wrapper div.dataTables_filter label{font-weight:400;white-space:nowrap;text-align:left}#bookly-tbs div.dataTables_wrapper div.dataTables_filter input{margin-left:.5em;display:inline-block;width:auto}#bookly-tbs div.dataTables_wrapper div.dataTables_info{padding-top:.85em;white-space:nowrap}#bookly-tbs div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}#bookly-tbs div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}#bookly-tbs div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}#bookly-tbs table.dataTable thead>tr>td.sorting,#bookly-tbs table.dataTable thead>tr>td.sorting_asc,#bookly-tbs table.dataTable thead>tr>td.sorting_desc,#bookly-tbs table.dataTable thead>tr>th.sorting,#bookly-tbs table.dataTable thead>tr>th.sorting_asc,#bookly-tbs table.dataTable thead>tr>th.sorting_desc{padding-right:30px}#bookly-tbs table.dataTable thead>tr>td:active,#bookly-tbs table.dataTable thead>tr>th:active{outline:0}#bookly-tbs table.dataTable thead .sorting,#bookly-tbs table.dataTable thead .sorting_asc,#bookly-tbs table.dataTable thead .sorting_asc_disabled,#bookly-tbs table.dataTable thead .sorting_desc,#bookly-tbs table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}#bookly-tbs table.dataTable thead .sorting:after,#bookly-tbs table.dataTable thead .sorting:before,#bookly-tbs table.dataTable thead .sorting_asc:after,#bookly-tbs table.dataTable thead .sorting_asc:before,#bookly-tbs table.dataTable thead .sorting_asc_disabled:after,#bookly-tbs table.dataTable thead .sorting_asc_disabled:before,#bookly-tbs table.dataTable thead .sorting_desc:after,#bookly-tbs table.dataTable thead .sorting_desc:before,#bookly-tbs table.dataTable thead .sorting_desc_disabled:after,#bookly-tbs table.dataTable thead .sorting_desc_disabled:before{position:absolute;bottom:.9em;display:block;opacity:.3}#bookly-tbs table.dataTable thead .sorting:before,#bookly-tbs table.dataTable thead .sorting_asc:before,#bookly-tbs table.dataTable thead .sorting_asc_disabled:before,#bookly-tbs table.dataTable thead .sorting_desc:before,#bookly-tbs table.dataTable thead .sorting_desc_disabled:before{right:1em;content:"\2191"}#bookly-tbs table.dataTable thead .sorting:after,#bookly-tbs table.dataTable thead .sorting_asc:after,#bookly-tbs table.dataTable thead .sorting_asc_disabled:after,#bookly-tbs table.dataTable thead .sorting_desc:after,#bookly-tbs table.dataTable thead .sorting_desc_disabled:after{right:.5em;content:"\2193"}#bookly-tbs table.dataTable thead .sorting_asc:before,#bookly-tbs table.dataTable thead .sorting_desc:after{opacity:1}#bookly-tbs table.dataTable thead .sorting_asc_disabled:before,#bookly-tbs table.dataTable thead .sorting_desc_disabled:after{opacity:0}#bookly-tbs div.dataTables_scrollHead table.dataTable{margin-bottom:0!important}#bookly-tbs div.dataTables_scrollBody table{border-top:none;margin-top:0!important;margin-bottom:0!important}#bookly-tbs div.dataTables_scrollBody table thead .sorting:after,#bookly-tbs div.dataTables_scrollBody table thead .sorting:before,#bookly-tbs div.dataTables_scrollBody table thead .sorting_asc:after,#bookly-tbs div.dataTables_scrollBody table thead .sorting_asc:before,#bookly-tbs div.dataTables_scrollBody table thead .sorting_desc:after,#bookly-tbs div.dataTables_scrollBody table thead .sorting_desc:before{display:none}#bookly-tbs div.dataTables_scrollBody table tbody tr:first-child td,#bookly-tbs div.dataTables_scrollBody table tbody tr:first-child th{border-top:none}#bookly-tbs div.dataTables_scrollFoot>.dataTables_scrollFootInner{box-sizing:content-box}#bookly-tbs div.dataTables_scrollFoot>.dataTables_scrollFootInner>table{margin-top:0!important;border-top:none}@media screen and (max-width:767px){#bookly-tbs div.dataTables_wrapper div.dataTables_filter,#bookly-tbs div.dataTables_wrapper div.dataTables_info,#bookly-tbs div.dataTables_wrapper div.dataTables_length,#bookly-tbs div.dataTables_wrapper div.dataTables_paginate{text-align:center}}#bookly-tbs table.dataTable.table-sm>thead>tr>th{padding-right:20px}#bookly-tbs table.dataTable.table-sm .sorting:before,#bookly-tbs table.dataTable.table-sm .sorting_asc:before,#bookly-tbs table.dataTable.table-sm .sorting_desc:before{top:5px;right:.85em}#bookly-tbs table.dataTable.table-sm .sorting:after,#bookly-tbs table.dataTable.table-sm .sorting_asc:after,#bookly-tbs table.dataTable.table-sm .sorting_desc:after{top:5px}#bookly-tbs table.table-bordered.dataTable td,#bookly-tbs table.table-bordered.dataTable th{border-left-width:0}#bookly-tbs table.table-bordered.dataTable td:last-child,#bookly-tbs table.table-bordered.dataTable th:last-child{border-right-width:0}#bookly-tbs table.table-bordered.dataTable tbody td,#bookly-tbs table.table-bordered.dataTable tbody th{border-bottom-width:0}#bookly-tbs div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}#bookly-tbs div.table-responsive>div.dataTables_wrapper>div.jCal-wrap,#bookly-tbs div.table-responsive>div.dataTables_wrapper>div.row{margin:0}#bookly-tbs div.table-responsive>div.dataTables_wrapper>div.jCal-wrap>div[class^=col-]:first-child,#bookly-tbs div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:first-child{padding-left:0}#bookly-tbs div.table-responsive>div.dataTables_wrapper>div.jCal-wrap>div[class^=col-]:last-child,#bookly-tbs div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:last-child{padding-right:0}@keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}#bookly-tbs div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:#fff;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,.3);border-radius:3px;text-align:center;z-index:21}#bookly-tbs div.dt-button-info h2{padding:.5em;margin:0;font-weight:400;border-bottom:1px solid #ddd;background-color:#f3f3f3}#bookly-tbs div.dt-button-info>div{padding:1em}#bookly-tbs div.dt-button-collection-title{text-align:center;padding:.3em 0 .5em;font-size:.9em}#bookly-tbs div.dt-button-collection-title:empty{display:none}#bookly-tbs div.dt-button-collection{position:absolute;z-index:2001}#bookly-tbs div.dt-button-collection div.dropdown-menu{display:block;z-index:2002;min-width:100%}#bookly-tbs div.dt-button-collection div.dt-button-collection-title{background-color:#fff;border:1px solid rgba(0,0,0,.15)}#bookly-tbs div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}#bookly-tbs div.dt-button-collection.fixed.two-column{margin-left:-200px}#bookly-tbs div.dt-button-collection.fixed.three-column{margin-left:-225px}#bookly-tbs div.dt-button-collection.fixed.four-column{margin-left:-300px}#bookly-tbs div.dt-button-collection>:last-child{display:block!important;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}#bookly-tbs div.dt-button-collection>:last-child>*{-webkit-column-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid}#bookly-tbs div.dt-button-collection.two-column{width:400px}#bookly-tbs div.dt-button-collection.two-column>:last-child{padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}#bookly-tbs div.dt-button-collection.three-column{width:450px}#bookly-tbs div.dt-button-collection.three-column>:last-child{padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}#bookly-tbs div.dt-button-collection.four-column{width:600px}#bookly-tbs div.dt-button-collection.four-column>:last-child{padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}#bookly-tbs div.dt-button-collection .dt-button{border-radius:0}#bookly-tbs div.dt-button-collection.fixed{max-width:none}#bookly-tbs div.dt-button-collection.fixed:after,#bookly-tbs div.dt-button-collection.fixed:before{display:none}#bookly-tbs div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:999}@media screen and (max-width:767px){#bookly-tbs div.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:.5em}#bookly-tbs .fc div.dt-buttons a.fc-button,#bookly-tbs div.dt-buttons .fc a.fc-button,#bookly-tbs div.dt-buttons a.btn{float:none}}#bookly-tbs .fc div.dt-buttons a.processing.fc-button,#bookly-tbs .fc div.dt-buttons button.processing.fc-button,#bookly-tbs .fc div.dt-buttons div.processing.fc-button,#bookly-tbs div.dt-buttons .fc a.processing.fc-button,#bookly-tbs div.dt-buttons .fc button.processing.fc-button,#bookly-tbs div.dt-buttons .fc div.processing.fc-button,#bookly-tbs div.dt-buttons a.btn.processing,#bookly-tbs div.dt-buttons button.btn.processing,#bookly-tbs div.dt-buttons div.btn.processing{color:rgba(0,0,0,.2)}#bookly-tbs .fc div.dt-buttons a.processing.fc-button:after,#bookly-tbs .fc div.dt-buttons button.processing.fc-button:after,#bookly-tbs .fc div.dt-buttons div.processing.fc-button:after,#bookly-tbs div.dt-buttons .fc a.processing.fc-button:after,#bookly-tbs div.dt-buttons .fc button.processing.fc-button:after,#bookly-tbs div.dt-buttons .fc div.processing.fc-button:after,#bookly-tbs div.dt-buttons a.btn.processing:after,#bookly-tbs div.dt-buttons button.btn.processing:after,#bookly-tbs div.dt-buttons div.btn.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1.5s infinite linear;-o-animation:dtb-spinner 1.5s infinite linear;-ms-animation:dtb-spinner 1.5s infinite linear;-webkit-animation:dtb-spinner 1.5s infinite linear;-moz-animation:dtb-spinner 1.5s infinite linear}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>th.child{cursor:default!important}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before{display:none!important}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr[role=row]>td:first-child,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr[role=row]>th:first-child{position:relative;padding-left:30px;cursor:pointer}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr[role=row]>td:first-child:before,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr[role=row]>th:first-child:before{top:16px;left:4px;height:14px;width:14px;display:block;position:absolute;color:#fff;border:2px solid #fff;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0!important;font-family:'Courier New',Courier,monospace;line-height:14px;content:'+';background-color:#0275d8}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}#bookly-tbs table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,#bookly-tbs table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}#bookly-tbs table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,#bookly-tbs table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}#bookly-tbs table.dataTable.dtr-column>tbody>tr>td.control,#bookly-tbs table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}#bookly-tbs table.dataTable.dtr-column>tbody>tr>td.control:before,#bookly-tbs table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:#fff;border:2px solid #fff;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0!important;font-family:'Courier New',Courier,monospace;line-height:14px;content:'+';background-color:#0275d8}#bookly-tbs table.dataTable.dtr-column>tbody>tr.parent td.control:before,#bookly-tbs table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}#bookly-tbs table.dataTable>tbody>tr.child{padding:.5em 1em}#bookly-tbs table.dataTable>tbody>tr.child:hover{background:0 0!important}#bookly-tbs table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}#bookly-tbs table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:.5em 0}#bookly-tbs table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}#bookly-tbs table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}#bookly-tbs table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:700}#bookly-tbs div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}#bookly-tbs div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid #000;border-radius:.5em;box-shadow:0 12px 30px rgba(0,0,0,.6)}#bookly-tbs div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}#bookly-tbs div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}#bookly-tbs div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}#bookly-tbs div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,.6)}@media screen and (max-width:767px){#bookly-tbs div.dtr-modal div.dtr-modal-display{width:95%}}#bookly-tbs div.dtr-bs-modal table.table tr:first-child td{border-top:none}#bookly-tbs table.dt-rowReorder-float{position:absolute!important;opacity:.8;table-layout:fixed;outline:2px solid #0275d8;outline-offset:-2px;z-index:2001}#bookly-tbs tr.dt-rowReorder-moving{outline:2px solid #888;outline-offset:-2px}#bookly-tbs body.dt-rowReorder-noOverflow{overflow-x:hidden}#bookly-tbs table.dataTable td.reorder{text-align:center;cursor:move}#bookly-tbs .daterangepicker{position:absolute;color:inherit;background-color:#fff;border-radius:4px;border:1px solid #ddd;width:278px;max-width:none;padding:0;margin-top:7px;top:100px;left:20px;z-index:3001;display:none;font-family:arial;font-size:15px;line-height:1em}#bookly-tbs .daterangepicker:after,#bookly-tbs .daterangepicker:before{position:absolute;display:inline-block;border-bottom-color:rgba(0,0,0,.2);content:''}#bookly-tbs .daterangepicker:before{top:-7px;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:7px solid #ccc}#bookly-tbs .daterangepicker:after{top:-6px;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent}#bookly-tbs .daterangepicker.opensleft:before{right:9px}#bookly-tbs .daterangepicker.opensleft:after{right:10px}#bookly-tbs .daterangepicker.openscenter:before{left:0;right:0;width:0;margin-left:auto;margin-right:auto}#bookly-tbs .daterangepicker.openscenter:after{left:0;right:0;width:0;margin-left:auto;margin-right:auto}#bookly-tbs .daterangepicker.opensright:before{left:9px}#bookly-tbs .daterangepicker.opensright:after{left:10px}#bookly-tbs .daterangepicker.drop-up{margin-top:-7px}#bookly-tbs .daterangepicker.drop-up:before{top:initial;bottom:-7px;border-bottom:initial;border-top:7px solid #ccc}#bookly-tbs .daterangepicker.drop-up:after{top:initial;bottom:-6px;border-bottom:initial;border-top:6px solid #fff}#bookly-tbs .daterangepicker.single .daterangepicker .ranges,#bookly-tbs .daterangepicker.single .drp-calendar{float:none}#bookly-tbs .daterangepicker.single .drp-selected{display:none}#bookly-tbs .daterangepicker.show-calendar .drp-calendar{display:block}#bookly-tbs .daterangepicker.show-calendar .drp-calendar select{border:1px solid #ced4da;padding:0 7px}#bookly-tbs .daterangepicker.show-calendar .drp-calendar table th{text-transform:none}#bookly-tbs .daterangepicker.show-calendar .drp-buttons{display:block}#bookly-tbs .daterangepicker.auto-apply .drp-buttons{display:none}#bookly-tbs .daterangepicker .drp-calendar{display:none;max-width:270px}#bookly-tbs .daterangepicker .drp-calendar.left{padding:8px 0 8px 8px}#bookly-tbs .daterangepicker .drp-calendar.right{padding:8px}#bookly-tbs .daterangepicker .drp-calendar.single .calendar-table{border:none}#bookly-tbs .daterangepicker .calendar-table .next span,#bookly-tbs .daterangepicker .calendar-table .prev span{color:#fff;border:solid #000;border-width:0 2px 2px 0;border-radius:0;display:inline-block;padding:3px}#bookly-tbs .daterangepicker .calendar-table .next span{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}#bookly-tbs .daterangepicker .calendar-table .prev span{transform:rotate(135deg);-webkit-transform:rotate(135deg)}#bookly-tbs .daterangepicker .calendar-table td,#bookly-tbs .daterangepicker .calendar-table th{white-space:nowrap;text-align:center;vertical-align:middle;min-width:32px;width:32px;height:24px;line-height:24px;font-size:12px;border-radius:4px;border:1px solid transparent;cursor:pointer}#bookly-tbs .daterangepicker .calendar-table{border:1px solid #fff;border-radius:4px;background-color:#fff}#bookly-tbs .daterangepicker .calendar-table table{width:100%;margin:0;border-spacing:0;border-collapse:collapse}#bookly-tbs .daterangepicker td.available:hover,#bookly-tbs .daterangepicker th.available:hover{background-color:#eee;border-color:transparent;color:inherit}#bookly-tbs .daterangepicker td.week,#bookly-tbs .daterangepicker th.week{font-size:80%;color:#ccc}#bookly-tbs .daterangepicker td.off,#bookly-tbs .daterangepicker td.off.end-date,#bookly-tbs .daterangepicker td.off.in-range,#bookly-tbs .daterangepicker td.off.start-date{background-color:#fff;border-color:transparent;color:#999}#bookly-tbs .daterangepicker td.in-range{background-color:#ebf4f8;border-color:transparent;color:#000;border-radius:0}#bookly-tbs .daterangepicker td.start-date{border-radius:4px 0 0 4px}#bookly-tbs .daterangepicker td.end-date{border-radius:0 4px 4px 0}#bookly-tbs .daterangepicker td.start-date.end-date{border-radius:4px}#bookly-tbs .daterangepicker td.active,#bookly-tbs .daterangepicker td.active:hover{background-color:#357ebd;border-color:transparent;color:#fff}#bookly-tbs .daterangepicker th.month{width:auto}#bookly-tbs .daterangepicker option.disabled,#bookly-tbs .daterangepicker td.disabled{color:#999;cursor:not-allowed;text-decoration:line-through}#bookly-tbs .daterangepicker select.monthselect,#bookly-tbs .daterangepicker select.yearselect{font-size:12px;padding:1px;margin:0;cursor:default}#bookly-tbs .daterangepicker select.monthselect{margin-right:2%;width:56%}#bookly-tbs .daterangepicker select.yearselect{width:40%}#bookly-tbs .daterangepicker select.ampmselect,#bookly-tbs .daterangepicker select.hourselect,#bookly-tbs .daterangepicker select.minuteselect,#bookly-tbs .daterangepicker select.secondselect{width:50px;margin:0 auto;background:#eee;border:1px solid #eee;padding:2px;outline:0;font-size:12px}#bookly-tbs .daterangepicker .calendar-time{text-align:center;margin:4px auto 0 auto;line-height:30px;position:relative}#bookly-tbs .daterangepicker .calendar-time select.disabled{color:#ccc;cursor:not-allowed}#bookly-tbs .daterangepicker .drp-buttons{clear:both;text-align:right;padding:8px;border-top:1px solid #ddd;display:none;line-height:12px;vertical-align:middle}#bookly-tbs .daterangepicker .drp-selected{display:block;font-size:12px;padding:8px}#bookly-tbs .daterangepicker .drp-buttons .btn,#bookly-tbs .daterangepicker .drp-buttons .fc .fc-button,#bookly-tbs .fc .daterangepicker .drp-buttons .fc-button{margin-left:8px;font-size:12px;padding:4px 8px}#bookly-tbs .daterangepicker.show-ranges.single.rtl .drp-calendar.left{border-right:1px solid #ddd}#bookly-tbs .daterangepicker.show-ranges.single.ltr .drp-calendar.left{border-left:1px solid #ddd}#bookly-tbs .daterangepicker.show-ranges.rtl .drp-calendar.right{border-right:1px solid #ddd}#bookly-tbs .daterangepicker.show-calendar.show-ranges .ranges{min-height:246px;border-right:1px solid #ddd}#bookly-tbs .daterangepicker .ranges{float:none;text-align:left;margin:0}#bookly-tbs .daterangepicker .ranges ul{list-style:none;margin:0 auto;padding:0;width:100%}#bookly-tbs .daterangepicker .ranges li{font-size:12px;padding:8px 12px;cursor:pointer;border-radius:0;border:0;background-color:transparent}#bookly-tbs .daterangepicker .ranges li:first-child{border-radius:4px 4px 0 0}#bookly-tbs .daterangepicker .ranges li:last-child{border-radius:0 0 4px 4px}#bookly-tbs .daterangepicker .ranges li:hover{background-color:#f8f9fa;color:#212529}#bookly-tbs .daterangepicker .ranges li.active{background-color:#08c;color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}@media (min-width:564px){#bookly-tbs .daterangepicker{width:auto}#bookly-tbs .daterangepicker.show-calendar.show-ranges{width:646px}#bookly-tbs .daterangepicker .drp-selected{display:inline-block;padding-right:8px}#bookly-tbs .daterangepicker .ranges ul{width:140px}#bookly-tbs .daterangepicker.single .ranges ul{width:100%}#bookly-tbs .daterangepicker.single .drp-calendar.left{clear:none}#bookly-tbs .daterangepicker.single .drp-calendar,#bookly-tbs .daterangepicker.single .ranges{float:left}#bookly-tbs .daterangepicker{direction:ltr;text-align:left}#bookly-tbs .daterangepicker .drp-calendar.left{clear:left;margin-right:0}#bookly-tbs .daterangepicker .drp-calendar.left .calendar-table{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .daterangepicker .drp-calendar.right{margin-left:0}#bookly-tbs .daterangepicker .drp-calendar.right .calendar-table{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .daterangepicker .drp-calendar.left .calendar-table{padding-right:8px}#bookly-tbs .daterangepicker .drp-calendar,#bookly-tbs .daterangepicker .ranges{float:left}}@media (min-width:730px){#bookly-tbs .daterangepicker .ranges{width:auto}#bookly-tbs .daterangepicker .ranges{float:left}#bookly-tbs .daterangepicker.rtl .ranges{float:right}#bookly-tbs .daterangepicker .drp-calendar.left{clear:none!important}}#bookly-tbs .fc .fc-button-group>.fc-button.fc-agendaDay-button:not(:last-child):not(.dropdown-toggle){border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}#bookly-tbs .fc .fc-button{background-image:none;height:auto}#bookly-tbs .fc .fc-button:not(:disabled):not(.disabled).fc-state-active{color:#212529;background-color:#e6e6e6;border-color:#aab4bf;box-shadow:none}#bookly-tbs .fc .fc-toolbar .fc-today-button{margin-left:10px}#bookly-tbs .fc .fc-toolbar h2{cursor:pointer;font-size:24px;margin:6px 0 -3px}#bookly-tbs .fc .fc-toolbar h2::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}#bookly-tbs .fc .fc-toolbar h2:empty::after{margin-left:0}#bookly-tbs .fc .fc-toolbar h2::after{font-size:1rem;margin-left:.5rem}#bookly-tbs .fc .fc-toolbar h2:hover{color:#0056b3}@media (max-width:767.98px){#bookly-tbs .fc .fc-toolbar .fc-left,#bookly-tbs .fc .fc-toolbar .fc-right{float:none;margin-bottom:10px}#bookly-tbs .fc .fc-toolbar .fc-left>*,#bookly-tbs .fc .fc-toolbar .fc-right>*{float:none}}#bookly-tbs .fc .fc-view{overflow:auto}#bookly-tbs .fc .fc-view>table{min-width:700px}#bookly-tbs .fc .fc-view .fc-day-header{font-weight:inherit;text-align:center}#bookly-tbs .fc .fc-view .fc-day.bookly-fc-day-active{background-color:#eafcff}#bookly-tbs .fc .fc-view .fc-axis{box-sizing:content-box;font-size:calc(1rem - 1px)}#bookly-tbs .fc .fc-view .fc-event{cursor:pointer;border:none;border-radius:0;padding:3px 2px 3px 5px}#bookly-tbs .fc .fc-view .fc-event:after{content:'';position:absolute;top:0;right:0;width:calc(100% - 2px);height:100%;background-color:rgba(255,255,255,.6)}#bookly-tbs .fc .fc-view .fc-event:hover:after{background-color:rgba(255,255,255,.7)}#bookly-tbs .fc .fc-view .fc-event .fc-time{font-size:inherit;font-weight:700}#bookly-tbs .fc .fc-view .fc-event .fc-time .bookly-fc-icon{cursor:pointer;float:right;font-size:1.2em;line-height:1.3;opacity:.8}#bookly-tbs .fc .fc-view .fc-event .fc-time .bookly-fc-icon:hover{opacity:1}#bookly-tbs .bookly-fc-loading{background-color:rgba(255,255,255,.7);bottom:0;left:0;position:absolute;right:0;top:50px;z-index:9}#bookly-tbs .bookly-fc-loading .bookly-fc-loading-icon{position:absolute;left:calc(50% - 16px);top:calc(50% - 16px);background:rgba(255,0,0,0) url(../../images/ajax_loader_32x32.gif) no-repeat scroll 50% center;width:32px;height:32px}@media (max-width:767.98px){#bookly-tbs .bookly-fc-loading{top:150px}}#bookly-tbs .jCal{width:100%;position:relative}#bookly-tbs .jCalMo{display:block;position:relative;padding:0 15px;margin-bottom:15px;white-space:nowrap}@media (min-width:576px){#bookly-tbs .jCalMo{height:257px}}#bookly-tbs .jCal .month,#bookly-tbs .jCal .monthName,#bookly-tbs .jCal .monthSelect,#bookly-tbs .jCal .monthYear{float:left}#bookly-tbs .jCal .monthName{font-weight:700;padding:.5rem 0;text-align:center;width:100%}#bookly-tbs .jCal .monthYear{float:right;text-align:left}#bookly-tbs .jCal .month{width:100%}#bookly-tbs .jCal .monthSelect{background:#f8f9fa}#bookly-tbs .jCal .monthSelector{position:absolute}#bookly-tbs .jCal .monthSelectorShadow{position:absolute;background:#adb5bd;padding:0}#bookly-tbs .jCal .monthNameHover,#bookly-tbs .jCal .monthYearHover{background:#f8f9fa;color:#adb5bd}#bookly-tbs .jCal .monthSelectHover{background:#007bff;color:#fff}#bookly-tbs .jCalMo .aday,#bookly-tbs .jCalMo .day,#bookly-tbs .jCalMo .dow,#bookly-tbs .jCalMo .invday,#bookly-tbs .jCalMo .overDay,#bookly-tbs .jCalMo .pday,#bookly-tbs .jCalMo .selectedDay{position:relative;float:left;width:calc(14.2857% + 1px);margin-right:-1px;border:1px solid #f8f9fa;border-width:0 1px 1px 1px;text-align:center;cursor:default}#bookly-tbs .jCalMo .dow{font-size:12px;line-height:30px;background:#f8f9fa;border-bottom:0}#bookly-tbs .jCalMo .day{font-size:13px;line-height:30px;cursor:pointer;background:#fff}#bookly-tbs .jCalMo .invday{color:#adb5bd;background:#f8f9fa;text-decoration:line-through}#bookly-tbs .jCalMo .aday,#bookly-tbs .jCalMo .pday{font-size:13px;line-height:30px;color:#f8f9fa;background:rgba(248,249,250,.3)}#bookly-tbs .jCalMo .overDay{color:#212529;background:rgba(0,123,255,.2)}#bookly-tbs .jCalMo .holidayDay{color:#fff;background:#ffc107}#bookly-tbs .jCalMo .holidayDay.repeatDay{color:#fff;background:#dc3545}#bookly-tbs .jCalMo .selectedDay,#bookly-tbs .jCalMo .selectedDay.repeatDay{color:#fff;background:#007bff}#bookly-tbs .jCal .left,#bookly-tbs .jCal .right{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}#bookly-tbs .jCalMask,#bookly-tbs .jCalMove{position:absolute;overflow:hidden;width:700px;height:930px}@media (max-width:991.98px){#bookly-tbs .jCalMo{float:left;width:50%}}@media (min-width:992px){#bookly-tbs .jCalMo{float:left;width:33.33333333%}}#bookly-tbs .intl-tel-input{display:block}#bookly-tbs .intl-tel-input .flag-container{left:0;right:0}#bookly-tbs .intl-tel-input .flag-container ul.country-list{list-style:none;padding:0}#bookly-tbs .intl-tel-input .selected-flag{width:42px;padding:0 0 0 8px}#bookly-tbs .intl-tel-input .selected-flag .arrow{left:auto;right:4px;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid #000}#bookly-tbs .intl-tel-input .iti-flag{background-image:url(../../../../frontend/resources/images/flags.png)}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:2dppx){#bookly-tbs .intl-tel-input .iti-flag{background-image:url(../../../../frontend/resources/images/flags@2x.png)}}#bookly-tbs .intl-tel-input .form-control{padding-left:45px}#bookly-tbs .intl-tel-input .country-list{max-width:100%}#bookly-tbs .bookly-thumb{display:block;position:relative;width:106px;height:106px;border:1px solid #ced4da;border-radius:.25rem;background-color:#e9ecef;background-image:url(../../images/sprite.png);background-repeat:no-repeat;background-position:0 0;overflow:hidden}#bookly-tbs .bookly-thumb.w-100{background-image:none}#bookly-tbs .bookly-thumb .bookly-thumb-delete{position:absolute;top:.25rem;right:0;text-decoration:none}#bookly-tbs .bookly-thumb .bookly-thumb-edit{position:absolute;left:0;right:0;bottom:0;background-color:rgba(173,181,189,.5)}#bookly-tbs .bookly-thumb .bookly-thumb-edit:hover{background-color:rgba(173,181,189,.8)}#bookly-tbs .bookly-thumb .bookly-thumb-edit .bookly-thumb-edit-btn{width:100%;padding:0 3px;margin:0;text-align:center;color:#fff;font-size:13px;line-height:25px}#bookly-tbs .select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}#bookly-tbs .select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}#bookly-tbs .select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .select2-container .select2-selection--single .select2-selection__clear{position:relative}#bookly-tbs .select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}#bookly-tbs .select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}#bookly-tbs .select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .select2-container .select2-search--inline{float:left}#bookly-tbs .select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}#bookly-tbs .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}#bookly-tbs .select2-dropdown{background-color:#fff;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}#bookly-tbs .select2-results{display:block}#bookly-tbs .select2-results__options{list-style:none;margin:0;padding:0}#bookly-tbs .select2-results__option{padding:6px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}#bookly-tbs .select2-results__option[aria-selected]{cursor:pointer}#bookly-tbs .select2-container--open .select2-dropdown{left:0}#bookly-tbs .select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}#bookly-tbs .select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .select2-search--dropdown{display:block;padding:4px}#bookly-tbs .select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}#bookly-tbs .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}#bookly-tbs .select2-search--dropdown.select2-search--hide{display:none}#bookly-tbs .select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff}#bookly-tbs .select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}#bookly-tbs .select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}#bookly-tbs .select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}#bookly-tbs .select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}#bookly-tbs .select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}#bookly-tbs .select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}#bookly-tbs .select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}#bookly-tbs .select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}#bookly-tbs .select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}#bookly-tbs .select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}#bookly-tbs .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}#bookly-tbs .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}#bookly-tbs .select2-container--default .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text}#bookly-tbs .select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}#bookly-tbs .select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}#bookly-tbs .select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px;padding:1px}#bookly-tbs .select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}#bookly-tbs .select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}#bookly-tbs .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}#bookly-tbs .select2-container--default[dir=rtl] .select2-selection--multiple .select2-search--inline,#bookly-tbs .select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right}#bookly-tbs .select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}#bookly-tbs .select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}#bookly-tbs .select2-container--default.select2-container--focus .select2-selection--multiple{border:solid #000 1px;outline:0}#bookly-tbs .select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}#bookly-tbs .select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}#bookly-tbs .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,#bookly-tbs .select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,#bookly-tbs .select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}#bookly-tbs .select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}#bookly-tbs .select2-container--default .select2-search--inline .select2-search__field{background:0 0;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}#bookly-tbs .select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}#bookly-tbs .select2-container--default .select2-results__option[role=group]{padding:0}#bookly-tbs .select2-container--default .select2-results__option[aria-disabled=true]{color:#999}#bookly-tbs .select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option{padding-left:1em}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}#bookly-tbs .select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:#fff}#bookly-tbs .select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}#bookly-tbs .select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #dee2e6;border-radius:.25rem;outline:0;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,#fff),to(#eee));background-image:linear-gradient(to bottom,#fff 50%,#eee 100%);background-repeat:repeat-x}#bookly-tbs .select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}#bookly-tbs .select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}#bookly-tbs .select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-right:10px}#bookly-tbs .select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}#bookly-tbs .select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #dee2e6;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,#eee),to(#ccc));background-image:linear-gradient(to bottom,#eee 50%,#ccc 100%);background-repeat:repeat-x}#bookly-tbs .select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}#bookly-tbs .select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}#bookly-tbs .select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #dee2e6;border-radius:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;left:1px;right:auto}#bookly-tbs .select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}#bookly-tbs .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:0 0;border:none}#bookly-tbs .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}#bookly-tbs .select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-gradient(linear,left top,left bottom,from(white),color-stop(50%,#eee));background-image:linear-gradient(to bottom,#fff 0,#eee 50%);background-repeat:repeat-x}#bookly-tbs .select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,#eee),to(white));background-image:linear-gradient(to bottom,#eee 50%,#fff 100%);background-repeat:repeat-x}#bookly-tbs .select2-container--classic .select2-selection--multiple{background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;cursor:text;outline:0}#bookly-tbs .select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}#bookly-tbs .select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}#bookly-tbs .select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}#bookly-tbs .select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #dee2e6;border-radius:.25rem;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}#bookly-tbs .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}#bookly-tbs .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}#bookly-tbs .select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}#bookly-tbs .select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}#bookly-tbs .select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}#bookly-tbs .select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}#bookly-tbs .select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #dee2e6;outline:0}#bookly-tbs .select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}#bookly-tbs .select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}#bookly-tbs .select2-container--classic .select2-dropdown--above{border-bottom:none}#bookly-tbs .select2-container--classic .select2-dropdown--below{border-top:none}#bookly-tbs .select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}#bookly-tbs .select2-container--classic .select2-results__option[role=group]{padding:0}#bookly-tbs .select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}#bookly-tbs .select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}#bookly-tbs .select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}#bookly-tbs .select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}#bookly-tbs .select2-container--bootstrap4 .select2-selection--single{height:calc(1.5em + .75rem + 2px)!important}#bookly-tbs .select2-container--bootstrap4 .select2-selection--single .select2-selection__placeholder{color:#757575;line-height:calc(1.5em + .75rem)}#bookly-tbs .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow{position:absolute;top:50%;right:3px;width:20px}#bookly-tbs .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow b{top:60%;border-color:#343a40 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;width:0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute}#bookly-tbs .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered{line-height:calc(1.5em + .75rem)}#bookly-tbs .select2-search--dropdown .select2-search__field{border:1px solid #ced4da;border-radius:.25rem}#bookly-tbs .select2-results__message{color:#6c757d}#bookly-tbs .select2-container--bootstrap4 .select2-selection--multiple{min-height:calc(1.5em + .75rem + 2px)!important}#bookly-tbs .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}#bookly-tbs .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice{color:#343a40;border:1px solid #bdc6d0;border-radius:.2rem;padding:0;padding-right:5px;cursor:pointer;float:left;margin-top:.3em;margin-right:5px}#bookly-tbs .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice__remove{color:#bdc6d0;font-weight:700;margin-left:3px;margin-right:1px;padding-right:3px;padding-left:3px;float:left}#bookly-tbs .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice__remove:hover{color:#343a40}#bookly-tbs .select2-container{display:block}#bookly-tbs .select2-container :focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .input-group .select2-container--bootstrap4{-webkit-box-flex:1;flex-grow:1}#bookly-tbs .input-group-prepend~.select2-container--bootstrap4 .select2-selection{border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .input-group>.select2-container--bootstrap4:not(:last-child) .select2-selection{border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .select2-container--bootstrap4 .select2-selection{background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){#bookly-tbs .select2-container--bootstrap4 .select2-selection{-webkit-transition:none;transition:none}}#bookly-tbs .select2-container--bootstrap4.select2-container--focus .select2-selection{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .select2-container--bootstrap4.select2-container--focus.select2-container--open .select2-selection{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}#bookly-tbs .select2-container--bootstrap4.select2-container--disabled .select2-selection,#bookly-tbs .select2-container--bootstrap4.select2-container--disabled.select2-container--focus .select2-selection{background-color:#e9ecef;cursor:not-allowed;border-color:#ced4da;box-shadow:none}#bookly-tbs .select2-container--bootstrap4.select2-container--disabled .select2-search__field,#bookly-tbs .select2-container--bootstrap4.select2-container--disabled.select2-container--focus .select2-search__field{background-color:transparent}form.was-validated select:invalid~#bookly-tbs .select2-container--bootstrap4 .select2-selection,select.is-invalid~#bookly-tbs .select2-container--bootstrap4 .select2-selection{border-color:#dc3545}form.was-validated select:valid~#bookly-tbs .select2-container--bootstrap4 .select2-selection,select.is-valid~#bookly-tbs .select2-container--bootstrap4 .select2-selection{border-color:#28a745}#bookly-tbs .select2-container--bootstrap4 .select2-dropdown{border-color:#ced4da;border-top:none;border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .select2-container--bootstrap4 .select2-dropdown.select2-dropdown--above{border-top:1px solid #ced4da;border-top-left-radius:.25rem;border-top-right-radius:.25rem}#bookly-tbs .select2-container--bootstrap4 .select2-dropdown .select2-results__option[aria-selected=true]{background-color:#e9ecef}#bookly-tbs .select2-container--bootstrap4 .select2-dropdown .select2-results__option:empty{padding:0}#bookly-tbs .select2-container--bootstrap4 .select2-results__option--highlighted,#bookly-tbs .select2-container--bootstrap4 .select2-results__option--highlighted.select2-results__option[aria-selected=true]{background-color:#007bff;color:#f8f9fa}#bookly-tbs .select2-container--bootstrap4 .select2-results__option[role=group]{padding:0}#bookly-tbs .select2-container--bootstrap4 .select2-results>.select2-results__options{max-height:15em;overflow-y:auto}#bookly-tbs .select2-container--bootstrap4 .select2-results__group{padding:6px;display:list-item;color:#6c757d}#bookly-tbs .select2-container--bootstrap4 .select2-selection__clear{width:1.2em;height:1.2em;line-height:1.15em;padding-left:.3em;margin-top:.5em;color:#6c757d;font-weight:700;float:right;margin-right:.3em}#bookly-tbs .select2-container--bootstrap4 .select2-selection__clear:hover{color:#343a40}#bookly-tbs #bookly-appointment-dialog .select2 .select2-selection,#bookly-tbs #bookly-coupon-modal .select2 .select2-selection,#bookly-tbs #bookly-package-dialog .select2 .select2-selection{height:38px;box-shadow:none}#bookly-tbs #bookly-appointment-dialog .select2 .select2-selection__choice,#bookly-tbs #bookly-coupon-modal .select2 .select2-selection__choice,#bookly-tbs #bookly-package-dialog .select2 .select2-selection__choice{display:none}#bookly-tbs #bookly-appointment-dialog .select2 .select2-selection ul,#bookly-tbs #bookly-coupon-modal .select2 .select2-selection ul,#bookly-tbs #bookly-package-dialog .select2 .select2-selection ul{margin-bottom:0}#bookly-tbs #bookly-appointment-dialog .select2.select2-container--focus,#bookly-tbs #bookly-coupon-modal .select2.select2-container--focus,#bookly-tbs #bookly-package-dialog .select2.select2-container--focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.25);border-radius:.25rem}#bookly-tbs #bookly-appointment-dialog .select2 .select2-search,#bookly-tbs #bookly-coupon-modal .select2 .select2-search,#bookly-tbs #bookly-package-dialog .select2 .select2-search{float:none;margin:3px 0;padding-left:8px;border-radius:.25rem}#bookly-tbs #bookly-appointment-dialog .select2 .select2-search__field,#bookly-tbs #bookly-coupon-modal .select2 .select2-search__field,#bookly-tbs #bookly-package-dialog .select2 .select2-search__field{min-width:50%!important;box-shadow:none;margin:0;padding:0;border:0}#bookly-tbs #select2-bookly-appointment-dialog-select2-results .select2-results__option[aria-selected=true]{background-color:#fff;color:#212529}.rtl #bookly-tbs *{text-align:right}.rtl #bookly-tbs .card-footer>button{margin:.25rem}.rtl #bookly-tbs .close{float:left}.rtl #bookly-tbs i.far,.rtl #bookly-tbs i.fas{margin-left:.5rem}.rtl #bookly-tbs .daterangepicker .calendar-table{text-align:center}.rtl #bookly-tbs .daterangepicker .drp-calendar{max-width:315px}.rtl #bookly-tbs .daterangepicker.show-calendar.show-ranges{width:774px}.rtl #bookly-tbs .fc-center h2{position:absolute;right:50%;top:0}.rtl #bookly-tbs .fc-icon{text-align:center}.rtl #bookly-tbs .input-group .select2-selection{border-radius:0 5px 5px 0!important}.rtl #bookly-tbs .input-group .form-control{border-radius:0 5px 5px 0;right:1px}.rtl #bookly-tbs .fc .input-group .input-group-append .fc-button,.rtl #bookly-tbs .input-group .input-group-append .btn,.rtl #bookly-tbs .input-group .input-group-append .fc .fc-button,.rtl #bookly-tbs .input-group .input-group-append .input-group-text{border-radius:5px 0 0 5px;border-top-left-radius:5px;border-bottom-left-radius:5px}.rtl #bookly-tbs .input-group .input-group-prepend{margin-left:-1px}.rtl #bookly-tbs .input-group .input-group-prepend .input-group-text{border-radius:0 5px 5px 0}.rtl #bookly-tbs #bookly-customer-information-fields .input-group .input-group-append:nth-child(2)>*{border-radius:0!important}.rtl #bookly-tbs .select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:20px;padding-left:8px}.rtl #bookly-tbs .btn-group>:first-child,.rtl #bookly-tbs .fc .fc-button-group>:first-child{border-radius:0 3px 3px 0!important}.rtl #bookly-tbs .btn-group>.dropdown-toggle,.rtl #bookly-tbs .btn-group>:last-child,.rtl #bookly-tbs .fc .fc-button-group>.dropdown-toggle,.rtl #bookly-tbs .fc .fc-button-group>:last-child{border-radius:3px 0 0 3px!important;margin-right:0!important}.rtl #bookly-tbs .intl-tel-input .selected-flag{padding:0 16px 0 0}.rtl #bookly-tbs .intl-tel-input .country-list .flag-box{margin-left:6px}.rtl #bookly-tbs .intl-tel-input .form-control{padding-right:45px;padding-left:.75rem}.rtl #bookly-tbs .modal-header button.close{position:absolute;left:0}.rtl #bookly-tbs .custom-control.custom-checkbox{padding-left:0}.rtl #bookly-tbs label.custom-control-label{position:relative;padding-right:1.5rem}.rtl #bookly-tbs label.custom-control-label::after,.rtl #bookly-tbs label.custom-control-label::before{right:0;left:auto}
3
  * Copyright 2011-2019 The Bootstrap Authors
4
  * Copyright 2011-2019 Twitter, Inc.
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
+ */#bookly-tbs{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:transparent}#bookly-tbs *,#bookly-tbs ::after,#bookly-tbs ::before{box-sizing:border-box}#bookly-tbs html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}#bookly-tbs article,#bookly-tbs aside,#bookly-tbs figcaption,#bookly-tbs figure,#bookly-tbs footer,#bookly-tbs header,#bookly-tbs hgroup,#bookly-tbs main,#bookly-tbs nav,#bookly-tbs section{display:block}#bookly-tbs body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}#bookly-tbs [tabindex="-1"]:focus:not(:focus-visible){outline:0!important}#bookly-tbs hr{box-sizing:content-box;height:0;overflow:visible}#bookly-tbs h1,#bookly-tbs h2,#bookly-tbs h3,#bookly-tbs h4,#bookly-tbs h5,#bookly-tbs h6{margin-top:0;margin-bottom:.5rem}#bookly-tbs p{margin-top:0;margin-bottom:1rem}#bookly-tbs abbr[data-original-title],#bookly-tbs abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}#bookly-tbs address{margin-bottom:1rem;font-style:normal;line-height:inherit}#bookly-tbs dl,#bookly-tbs ol,#bookly-tbs ul{margin-top:0;margin-bottom:1rem}#bookly-tbs ol ol,#bookly-tbs ol ul,#bookly-tbs ul ol,#bookly-tbs ul ul{margin-bottom:0}#bookly-tbs dt{font-weight:700}#bookly-tbs dd{margin-bottom:.5rem;margin-left:0}#bookly-tbs blockquote{margin:0 0 1rem}#bookly-tbs b,#bookly-tbs strong{font-weight:bolder}#bookly-tbs small{font-size:80%}#bookly-tbs sub,#bookly-tbs sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}#bookly-tbs sub{bottom:-.25em}#bookly-tbs sup{top:-.5em}#bookly-tbs a{color:#007bff;text-decoration:none;background-color:transparent}#bookly-tbs a:hover{color:#0056b3;text-decoration:underline}#bookly-tbs a:not([href]){color:inherit;text-decoration:none}#bookly-tbs a:not([href]):hover{color:inherit;text-decoration:none}#bookly-tbs code,#bookly-tbs kbd,#bookly-tbs pre,#bookly-tbs samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}#bookly-tbs pre{margin-top:0;margin-bottom:1rem;overflow:auto}#bookly-tbs figure{margin:0 0 1rem}#bookly-tbs img{vertical-align:middle;border-style:none}#bookly-tbs svg{overflow:hidden;vertical-align:middle}#bookly-tbs table{border-collapse:collapse}#bookly-tbs caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}#bookly-tbs th{text-align:inherit}#bookly-tbs label{display:inline-block;margin-bottom:.5rem}#bookly-tbs button{border-radius:0}#bookly-tbs button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}#bookly-tbs button,#bookly-tbs input,#bookly-tbs optgroup,#bookly-tbs select,#bookly-tbs textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}#bookly-tbs button,#bookly-tbs input{overflow:visible}#bookly-tbs button,#bookly-tbs select{text-transform:none}#bookly-tbs select{word-wrap:normal}#bookly-tbs [type=button],#bookly-tbs [type=reset],#bookly-tbs [type=submit],#bookly-tbs button{-webkit-appearance:button}#bookly-tbs [type=button]:not(:disabled),#bookly-tbs [type=reset]:not(:disabled),#bookly-tbs [type=submit]:not(:disabled),#bookly-tbs button:not(:disabled){cursor:pointer}#bookly-tbs [type=button]::-moz-focus-inner,#bookly-tbs [type=reset]::-moz-focus-inner,#bookly-tbs [type=submit]::-moz-focus-inner,#bookly-tbs button::-moz-focus-inner{padding:0;border-style:none}#bookly-tbs input[type=checkbox],#bookly-tbs input[type=radio]{box-sizing:border-box;padding:0}#bookly-tbs input[type=date],#bookly-tbs input[type=datetime-local],#bookly-tbs input[type=month],#bookly-tbs input[type=time]{-webkit-appearance:listbox}#bookly-tbs textarea{overflow:auto;resize:vertical}#bookly-tbs fieldset{min-width:0;padding:0;margin:0;border:0}#bookly-tbs legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}#bookly-tbs progress{vertical-align:baseline}#bookly-tbs [type=number]::-webkit-inner-spin-button,#bookly-tbs [type=number]::-webkit-outer-spin-button{height:auto}#bookly-tbs [type=search]{outline-offset:-2px;-webkit-appearance:none}#bookly-tbs [type=search]::-webkit-search-decoration{-webkit-appearance:none}#bookly-tbs ::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}#bookly-tbs output{display:inline-block}#bookly-tbs summary{display:list-item;cursor:pointer}#bookly-tbs template{display:none}#bookly-tbs [hidden]{display:none!important}#bookly-tbs .h1,#bookly-tbs .h2,#bookly-tbs .h3,#bookly-tbs .h4,#bookly-tbs .h5,#bookly-tbs .h6,#bookly-tbs h1,#bookly-tbs h2,#bookly-tbs h3,#bookly-tbs h4,#bookly-tbs h5,#bookly-tbs h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}#bookly-tbs .h1,#bookly-tbs h1{font-size:2.5rem}#bookly-tbs .h2,#bookly-tbs h2{font-size:2rem}#bookly-tbs .h3,#bookly-tbs h3{font-size:1.75rem}#bookly-tbs .h4,#bookly-tbs h4{font-size:1.5rem}#bookly-tbs .h5,#bookly-tbs h5{font-size:1.25rem}#bookly-tbs .h6,#bookly-tbs h6{font-size:1rem}#bookly-tbs .lead{font-size:1.25rem;font-weight:300}#bookly-tbs .display-1{font-size:6rem;font-weight:300;line-height:1.2}#bookly-tbs .display-2{font-size:5.5rem;font-weight:300;line-height:1.2}#bookly-tbs .display-3{font-size:4.5rem;font-weight:300;line-height:1.2}#bookly-tbs .display-4{font-size:3.5rem;font-weight:300;line-height:1.2}#bookly-tbs hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}#bookly-tbs .small,#bookly-tbs small{font-size:80%;font-weight:400}#bookly-tbs .mark,#bookly-tbs mark{padding:.2em;background-color:#fcf8e3}#bookly-tbs .list-unstyled{padding-left:0;list-style:none}#bookly-tbs .list-inline{padding-left:0;list-style:none}#bookly-tbs .list-inline-item{display:inline-block}#bookly-tbs .list-inline-item:not(:last-child){margin-right:.5rem}#bookly-tbs .initialism{font-size:90%;text-transform:uppercase}#bookly-tbs .blockquote{margin-bottom:1rem;font-size:1.25rem}#bookly-tbs .blockquote-footer{display:block;font-size:80%;color:#6c757d}#bookly-tbs .blockquote-footer::before{content:"\2014\00A0"}#bookly-tbs .img-fluid{max-width:100%;height:auto}#bookly-tbs .img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}#bookly-tbs .figure{display:inline-block}#bookly-tbs .figure-img{margin-bottom:.5rem;line-height:1}#bookly-tbs .figure-caption{font-size:90%;color:#6c757d}#bookly-tbs code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>#bookly-tbs code{color:inherit}#bookly-tbs kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}#bookly-tbs kbd kbd{padding:0;font-size:100%;font-weight:700}#bookly-tbs pre{display:block;font-size:87.5%;color:#212529}#bookly-tbs pre code{font-size:inherit;color:inherit;word-break:normal}#bookly-tbs .pre-scrollable{max-height:340px;overflow-y:scroll}#bookly-tbs .container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){#bookly-tbs .container{max-width:540px}}@media (min-width:768px){#bookly-tbs .container{max-width:720px}}@media (min-width:992px){#bookly-tbs .container{max-width:960px}}@media (min-width:1200px){#bookly-tbs .container{max-width:1140px}}#bookly-tbs .container-fluid,#bookly-tbs .container-lg,#bookly-tbs .container-md,#bookly-tbs .container-sm,#bookly-tbs .container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){#bookly-tbs .container,#bookly-tbs .container-sm{max-width:540px}}@media (min-width:768px){#bookly-tbs .container,#bookly-tbs .container-md,#bookly-tbs .container-sm{max-width:720px}}@media (min-width:992px){#bookly-tbs .container,#bookly-tbs .container-lg,#bookly-tbs .container-md,#bookly-tbs .container-sm{max-width:960px}}@media (min-width:1200px){#bookly-tbs .container,#bookly-tbs .container-lg,#bookly-tbs .container-md,#bookly-tbs .container-sm,#bookly-tbs .container-xl{max-width:1140px}}#bookly-tbs .jCal-wrap,#bookly-tbs .row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}#bookly-tbs .no-gutters{margin-right:0;margin-left:0}#bookly-tbs .no-gutters>.col,#bookly-tbs .no-gutters>[class*=col-]{padding-right:0;padding-left:0}#bookly-tbs .col,#bookly-tbs .col-1,#bookly-tbs .col-10,#bookly-tbs .col-11,#bookly-tbs .col-12,#bookly-tbs .col-2,#bookly-tbs .col-3,#bookly-tbs .col-4,#bookly-tbs .col-5,#bookly-tbs .col-6,#bookly-tbs .col-7,#bookly-tbs .col-8,#bookly-tbs .col-9,#bookly-tbs .col-auto,#bookly-tbs .col-lg,#bookly-tbs .col-lg-1,#bookly-tbs .col-lg-10,#bookly-tbs .col-lg-11,#bookly-tbs .col-lg-12,#bookly-tbs .col-lg-2,#bookly-tbs .col-lg-3,#bookly-tbs .col-lg-4,#bookly-tbs .col-lg-5,#bookly-tbs .col-lg-6,#bookly-tbs .col-lg-7,#bookly-tbs .col-lg-8,#bookly-tbs .col-lg-9,#bookly-tbs .col-lg-auto,#bookly-tbs .col-md,#bookly-tbs .col-md-1,#bookly-tbs .col-md-10,#bookly-tbs .col-md-11,#bookly-tbs .col-md-12,#bookly-tbs .col-md-2,#bookly-tbs .col-md-3,#bookly-tbs .col-md-4,#bookly-tbs .col-md-5,#bookly-tbs .col-md-6,#bookly-tbs .col-md-7,#bookly-tbs .col-md-8,#bookly-tbs .col-md-9,#bookly-tbs .col-md-auto,#bookly-tbs .col-sm,#bookly-tbs .col-sm-1,#bookly-tbs .col-sm-10,#bookly-tbs .col-sm-11,#bookly-tbs .col-sm-12,#bookly-tbs .col-sm-2,#bookly-tbs .col-sm-3,#bookly-tbs .col-sm-4,#bookly-tbs .col-sm-5,#bookly-tbs .col-sm-6,#bookly-tbs .col-sm-7,#bookly-tbs .col-sm-8,#bookly-tbs .col-sm-9,#bookly-tbs .col-sm-auto,#bookly-tbs .col-xl,#bookly-tbs .col-xl-1,#bookly-tbs .col-xl-10,#bookly-tbs .col-xl-11,#bookly-tbs .col-xl-12,#bookly-tbs .col-xl-2,#bookly-tbs .col-xl-3,#bookly-tbs .col-xl-4,#bookly-tbs .col-xl-5,#bookly-tbs .col-xl-6,#bookly-tbs .col-xl-7,#bookly-tbs .col-xl-8,#bookly-tbs .col-xl-9,#bookly-tbs .col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}#bookly-tbs .col{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}#bookly-tbs .row-cols-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .row-cols-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .row-cols-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .row-cols-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .row-cols-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}#bookly-tbs .row-cols-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}#bookly-tbs .col-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}#bookly-tbs .col-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .col-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .col-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}#bookly-tbs .col-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .col-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}#bookly-tbs .col-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}#bookly-tbs .col-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}#bookly-tbs .col-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}#bookly-tbs .col-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}#bookly-tbs .col-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .order-first{-webkit-box-ordinal-group:0;order:-1}#bookly-tbs .order-last{-webkit-box-ordinal-group:14;order:13}#bookly-tbs .order-0{-webkit-box-ordinal-group:1;order:0}#bookly-tbs .order-1{-webkit-box-ordinal-group:2;order:1}#bookly-tbs .order-2{-webkit-box-ordinal-group:3;order:2}#bookly-tbs .order-3{-webkit-box-ordinal-group:4;order:3}#bookly-tbs .order-4{-webkit-box-ordinal-group:5;order:4}#bookly-tbs .order-5{-webkit-box-ordinal-group:6;order:5}#bookly-tbs .order-6{-webkit-box-ordinal-group:7;order:6}#bookly-tbs .order-7{-webkit-box-ordinal-group:8;order:7}#bookly-tbs .order-8{-webkit-box-ordinal-group:9;order:8}#bookly-tbs .order-9{-webkit-box-ordinal-group:10;order:9}#bookly-tbs .order-10{-webkit-box-ordinal-group:11;order:10}#bookly-tbs .order-11{-webkit-box-ordinal-group:12;order:11}#bookly-tbs .order-12{-webkit-box-ordinal-group:13;order:12}#bookly-tbs .offset-1{margin-left:8.333333%}#bookly-tbs .offset-2{margin-left:16.666667%}#bookly-tbs .offset-3{margin-left:25%}#bookly-tbs .offset-4{margin-left:33.333333%}#bookly-tbs .offset-5{margin-left:41.666667%}#bookly-tbs .offset-6{margin-left:50%}#bookly-tbs .offset-7{margin-left:58.333333%}#bookly-tbs .offset-8{margin-left:66.666667%}#bookly-tbs .offset-9{margin-left:75%}#bookly-tbs .offset-10{margin-left:83.333333%}#bookly-tbs .offset-11{margin-left:91.666667%}@media (min-width:576px){#bookly-tbs .col-sm{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}#bookly-tbs .row-cols-sm-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .row-cols-sm-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .row-cols-sm-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .row-cols-sm-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .row-cols-sm-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}#bookly-tbs .row-cols-sm-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-sm-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}#bookly-tbs .col-sm-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}#bookly-tbs .col-sm-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-sm-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .col-sm-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .col-sm-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}#bookly-tbs .col-sm-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .col-sm-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}#bookly-tbs .col-sm-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}#bookly-tbs .col-sm-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}#bookly-tbs .col-sm-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}#bookly-tbs .col-sm-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}#bookly-tbs .col-sm-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .order-sm-first{-webkit-box-ordinal-group:0;order:-1}#bookly-tbs .order-sm-last{-webkit-box-ordinal-group:14;order:13}#bookly-tbs .order-sm-0{-webkit-box-ordinal-group:1;order:0}#bookly-tbs .order-sm-1{-webkit-box-ordinal-group:2;order:1}#bookly-tbs .order-sm-2{-webkit-box-ordinal-group:3;order:2}#bookly-tbs .order-sm-3{-webkit-box-ordinal-group:4;order:3}#bookly-tbs .order-sm-4{-webkit-box-ordinal-group:5;order:4}#bookly-tbs .order-sm-5{-webkit-box-ordinal-group:6;order:5}#bookly-tbs .order-sm-6{-webkit-box-ordinal-group:7;order:6}#bookly-tbs .order-sm-7{-webkit-box-ordinal-group:8;order:7}#bookly-tbs .order-sm-8{-webkit-box-ordinal-group:9;order:8}#bookly-tbs .order-sm-9{-webkit-box-ordinal-group:10;order:9}#bookly-tbs .order-sm-10{-webkit-box-ordinal-group:11;order:10}#bookly-tbs .order-sm-11{-webkit-box-ordinal-group:12;order:11}#bookly-tbs .order-sm-12{-webkit-box-ordinal-group:13;order:12}#bookly-tbs .offset-sm-0{margin-left:0}#bookly-tbs .offset-sm-1{margin-left:8.333333%}#bookly-tbs .offset-sm-2{margin-left:16.666667%}#bookly-tbs .offset-sm-3{margin-left:25%}#bookly-tbs .offset-sm-4{margin-left:33.333333%}#bookly-tbs .offset-sm-5{margin-left:41.666667%}#bookly-tbs .offset-sm-6{margin-left:50%}#bookly-tbs .offset-sm-7{margin-left:58.333333%}#bookly-tbs .offset-sm-8{margin-left:66.666667%}#bookly-tbs .offset-sm-9{margin-left:75%}#bookly-tbs .offset-sm-10{margin-left:83.333333%}#bookly-tbs .offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){#bookly-tbs .col-md{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}#bookly-tbs .row-cols-md-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .row-cols-md-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .row-cols-md-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .row-cols-md-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .row-cols-md-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}#bookly-tbs .row-cols-md-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-md-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}#bookly-tbs .col-md-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}#bookly-tbs .col-md-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-md-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .col-md-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .col-md-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}#bookly-tbs .col-md-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .col-md-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}#bookly-tbs .col-md-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}#bookly-tbs .col-md-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}#bookly-tbs .col-md-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}#bookly-tbs .col-md-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}#bookly-tbs .col-md-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .order-md-first{-webkit-box-ordinal-group:0;order:-1}#bookly-tbs .order-md-last{-webkit-box-ordinal-group:14;order:13}#bookly-tbs .order-md-0{-webkit-box-ordinal-group:1;order:0}#bookly-tbs .order-md-1{-webkit-box-ordinal-group:2;order:1}#bookly-tbs .order-md-2{-webkit-box-ordinal-group:3;order:2}#bookly-tbs .order-md-3{-webkit-box-ordinal-group:4;order:3}#bookly-tbs .order-md-4{-webkit-box-ordinal-group:5;order:4}#bookly-tbs .order-md-5{-webkit-box-ordinal-group:6;order:5}#bookly-tbs .order-md-6{-webkit-box-ordinal-group:7;order:6}#bookly-tbs .order-md-7{-webkit-box-ordinal-group:8;order:7}#bookly-tbs .order-md-8{-webkit-box-ordinal-group:9;order:8}#bookly-tbs .order-md-9{-webkit-box-ordinal-group:10;order:9}#bookly-tbs .order-md-10{-webkit-box-ordinal-group:11;order:10}#bookly-tbs .order-md-11{-webkit-box-ordinal-group:12;order:11}#bookly-tbs .order-md-12{-webkit-box-ordinal-group:13;order:12}#bookly-tbs .offset-md-0{margin-left:0}#bookly-tbs .offset-md-1{margin-left:8.333333%}#bookly-tbs .offset-md-2{margin-left:16.666667%}#bookly-tbs .offset-md-3{margin-left:25%}#bookly-tbs .offset-md-4{margin-left:33.333333%}#bookly-tbs .offset-md-5{margin-left:41.666667%}#bookly-tbs .offset-md-6{margin-left:50%}#bookly-tbs .offset-md-7{margin-left:58.333333%}#bookly-tbs .offset-md-8{margin-left:66.666667%}#bookly-tbs .offset-md-9{margin-left:75%}#bookly-tbs .offset-md-10{margin-left:83.333333%}#bookly-tbs .offset-md-11{margin-left:91.666667%}}@media (min-width:992px){#bookly-tbs .col-lg{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}#bookly-tbs .row-cols-lg-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .row-cols-lg-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .row-cols-lg-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .row-cols-lg-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .row-cols-lg-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}#bookly-tbs .row-cols-lg-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-lg-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}#bookly-tbs .col-lg-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}#bookly-tbs .col-lg-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-lg-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .col-lg-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .col-lg-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}#bookly-tbs .col-lg-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .col-lg-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}#bookly-tbs .col-lg-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}#bookly-tbs .col-lg-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}#bookly-tbs .col-lg-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}#bookly-tbs .col-lg-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}#bookly-tbs .col-lg-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .order-lg-first{-webkit-box-ordinal-group:0;order:-1}#bookly-tbs .order-lg-last{-webkit-box-ordinal-group:14;order:13}#bookly-tbs .order-lg-0{-webkit-box-ordinal-group:1;order:0}#bookly-tbs .order-lg-1{-webkit-box-ordinal-group:2;order:1}#bookly-tbs .order-lg-2{-webkit-box-ordinal-group:3;order:2}#bookly-tbs .order-lg-3{-webkit-box-ordinal-group:4;order:3}#bookly-tbs .order-lg-4{-webkit-box-ordinal-group:5;order:4}#bookly-tbs .order-lg-5{-webkit-box-ordinal-group:6;order:5}#bookly-tbs .order-lg-6{-webkit-box-ordinal-group:7;order:6}#bookly-tbs .order-lg-7{-webkit-box-ordinal-group:8;order:7}#bookly-tbs .order-lg-8{-webkit-box-ordinal-group:9;order:8}#bookly-tbs .order-lg-9{-webkit-box-ordinal-group:10;order:9}#bookly-tbs .order-lg-10{-webkit-box-ordinal-group:11;order:10}#bookly-tbs .order-lg-11{-webkit-box-ordinal-group:12;order:11}#bookly-tbs .order-lg-12{-webkit-box-ordinal-group:13;order:12}#bookly-tbs .offset-lg-0{margin-left:0}#bookly-tbs .offset-lg-1{margin-left:8.333333%}#bookly-tbs .offset-lg-2{margin-left:16.666667%}#bookly-tbs .offset-lg-3{margin-left:25%}#bookly-tbs .offset-lg-4{margin-left:33.333333%}#bookly-tbs .offset-lg-5{margin-left:41.666667%}#bookly-tbs .offset-lg-6{margin-left:50%}#bookly-tbs .offset-lg-7{margin-left:58.333333%}#bookly-tbs .offset-lg-8{margin-left:66.666667%}#bookly-tbs .offset-lg-9{margin-left:75%}#bookly-tbs .offset-lg-10{margin-left:83.333333%}#bookly-tbs .offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){#bookly-tbs .col-xl{flex-basis:0;-webkit-box-flex:1;flex-grow:1;max-width:100%}#bookly-tbs .row-cols-xl-1>*{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .row-cols-xl-2>*{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .row-cols-xl-3>*{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .row-cols-xl-4>*{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .row-cols-xl-5>*{-webkit-box-flex:0;flex:0 0 20%;max-width:20%}#bookly-tbs .row-cols-xl-6>*{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-xl-auto{-webkit-box-flex:0;flex:0 0 auto;width:auto;max-width:100%}#bookly-tbs .col-xl-1{-webkit-box-flex:0;flex:0 0 8.333333%;max-width:8.333333%}#bookly-tbs .col-xl-2{-webkit-box-flex:0;flex:0 0 16.666667%;max-width:16.666667%}#bookly-tbs .col-xl-3{-webkit-box-flex:0;flex:0 0 25%;max-width:25%}#bookly-tbs .col-xl-4{-webkit-box-flex:0;flex:0 0 33.333333%;max-width:33.333333%}#bookly-tbs .col-xl-5{-webkit-box-flex:0;flex:0 0 41.666667%;max-width:41.666667%}#bookly-tbs .col-xl-6{-webkit-box-flex:0;flex:0 0 50%;max-width:50%}#bookly-tbs .col-xl-7{-webkit-box-flex:0;flex:0 0 58.333333%;max-width:58.333333%}#bookly-tbs .col-xl-8{-webkit-box-flex:0;flex:0 0 66.666667%;max-width:66.666667%}#bookly-tbs .col-xl-9{-webkit-box-flex:0;flex:0 0 75%;max-width:75%}#bookly-tbs .col-xl-10{-webkit-box-flex:0;flex:0 0 83.333333%;max-width:83.333333%}#bookly-tbs .col-xl-11{-webkit-box-flex:0;flex:0 0 91.666667%;max-width:91.666667%}#bookly-tbs .col-xl-12{-webkit-box-flex:0;flex:0 0 100%;max-width:100%}#bookly-tbs .order-xl-first{-webkit-box-ordinal-group:0;order:-1}#bookly-tbs .order-xl-last{-webkit-box-ordinal-group:14;order:13}#bookly-tbs .order-xl-0{-webkit-box-ordinal-group:1;order:0}#bookly-tbs .order-xl-1{-webkit-box-ordinal-group:2;order:1}#bookly-tbs .order-xl-2{-webkit-box-ordinal-group:3;order:2}#bookly-tbs .order-xl-3{-webkit-box-ordinal-group:4;order:3}#bookly-tbs .order-xl-4{-webkit-box-ordinal-group:5;order:4}#bookly-tbs .order-xl-5{-webkit-box-ordinal-group:6;order:5}#bookly-tbs .order-xl-6{-webkit-box-ordinal-group:7;order:6}#bookly-tbs .order-xl-7{-webkit-box-ordinal-group:8;order:7}#bookly-tbs .order-xl-8{-webkit-box-ordinal-group:9;order:8}#bookly-tbs .order-xl-9{-webkit-box-ordinal-group:10;order:9}#bookly-tbs .order-xl-10{-webkit-box-ordinal-group:11;order:10}#bookly-tbs .order-xl-11{-webkit-box-ordinal-group:12;order:11}#bookly-tbs .order-xl-12{-webkit-box-ordinal-group:13;order:12}#bookly-tbs .offset-xl-0{margin-left:0}#bookly-tbs .offset-xl-1{margin-left:8.333333%}#bookly-tbs .offset-xl-2{margin-left:16.666667%}#bookly-tbs .offset-xl-3{margin-left:25%}#bookly-tbs .offset-xl-4{margin-left:33.333333%}#bookly-tbs .offset-xl-5{margin-left:41.666667%}#bookly-tbs .offset-xl-6{margin-left:50%}#bookly-tbs .offset-xl-7{margin-left:58.333333%}#bookly-tbs .offset-xl-8{margin-left:66.666667%}#bookly-tbs .offset-xl-9{margin-left:75%}#bookly-tbs .offset-xl-10{margin-left:83.333333%}#bookly-tbs .offset-xl-11{margin-left:91.666667%}}#bookly-tbs .table{width:100%;margin-bottom:1rem;color:#212529}#bookly-tbs .table td,#bookly-tbs .table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}#bookly-tbs .table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}#bookly-tbs .table tbody+tbody{border-top:2px solid #dee2e6}#bookly-tbs .table-sm td,#bookly-tbs .table-sm th{padding:.3rem}#bookly-tbs .table-bordered{border:1px solid #dee2e6}#bookly-tbs .table-bordered td,#bookly-tbs .table-bordered th{border:1px solid #dee2e6}#bookly-tbs .table-bordered thead td,#bookly-tbs .table-bordered thead th{border-bottom-width:2px}#bookly-tbs .table-borderless tbody+tbody,#bookly-tbs .table-borderless td,#bookly-tbs .table-borderless th,#bookly-tbs .table-borderless thead th{border:0}#bookly-tbs .table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}#bookly-tbs .table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}#bookly-tbs .table-primary,#bookly-tbs .table-primary>td,#bookly-tbs .table-primary>th{background-color:#b8daff}#bookly-tbs .table-primary tbody+tbody,#bookly-tbs .table-primary td,#bookly-tbs .table-primary th,#bookly-tbs .table-primary thead th{border-color:#7abaff}#bookly-tbs .table-hover .table-primary:hover{background-color:#9fcdff}#bookly-tbs .table-hover .table-primary:hover>td,#bookly-tbs .table-hover .table-primary:hover>th{background-color:#9fcdff}#bookly-tbs .table-secondary,#bookly-tbs .table-secondary>td,#bookly-tbs .table-secondary>th{background-color:#d6d8db}#bookly-tbs .table-secondary tbody+tbody,#bookly-tbs .table-secondary td,#bookly-tbs .table-secondary th,#bookly-tbs .table-secondary thead th{border-color:#b3b7bb}#bookly-tbs .table-hover .table-secondary:hover{background-color:#c8cbcf}#bookly-tbs .table-hover .table-secondary:hover>td,#bookly-tbs .table-hover .table-secondary:hover>th{background-color:#c8cbcf}#bookly-tbs .table-success,#bookly-tbs .table-success>td,#bookly-tbs .table-success>th{background-color:#c3e6cb}#bookly-tbs .table-success tbody+tbody,#bookly-tbs .table-success td,#bookly-tbs .table-success th,#bookly-tbs .table-success thead th{border-color:#8fd19e}#bookly-tbs .table-hover .table-success:hover{background-color:#b1dfbb}#bookly-tbs .table-hover .table-success:hover>td,#bookly-tbs .table-hover .table-success:hover>th{background-color:#b1dfbb}#bookly-tbs .table-info,#bookly-tbs .table-info>td,#bookly-tbs .table-info>th{background-color:#bee5eb}#bookly-tbs .table-info tbody+tbody,#bookly-tbs .table-info td,#bookly-tbs .table-info th,#bookly-tbs .table-info thead th{border-color:#86cfda}#bookly-tbs .table-hover .table-info:hover{background-color:#abdde5}#bookly-tbs .table-hover .table-info:hover>td,#bookly-tbs .table-hover .table-info:hover>th{background-color:#abdde5}#bookly-tbs .table-warning,#bookly-tbs .table-warning>td,#bookly-tbs .table-warning>th{background-color:#ffeeba}#bookly-tbs .table-warning tbody+tbody,#bookly-tbs .table-warning td,#bookly-tbs .table-warning th,#bookly-tbs .table-warning thead th{border-color:#ffdf7e}#bookly-tbs .table-hover .table-warning:hover{background-color:#ffe8a1}#bookly-tbs .table-hover .table-warning:hover>td,#bookly-tbs .table-hover .table-warning:hover>th{background-color:#ffe8a1}#bookly-tbs .table-danger,#bookly-tbs .table-danger>td,#bookly-tbs .table-danger>th{background-color:#f5c6cb}#bookly-tbs .table-danger tbody+tbody,#bookly-tbs .table-danger td,#bookly-tbs .table-danger th,#bookly-tbs .table-danger thead th{border-color:#ed969e}#bookly-tbs .table-hover .table-danger:hover{background-color:#f1b0b7}#bookly-tbs .table-hover .table-danger:hover>td,#bookly-tbs .table-hover .table-danger:hover>th{background-color:#f1b0b7}#bookly-tbs .table-light,#bookly-tbs .table-light>td,#bookly-tbs .table-light>th{background-color:#fdfdfe}#bookly-tbs .table-light tbody+tbody,#bookly-tbs .table-light td,#bookly-tbs .table-light th,#bookly-tbs .table-light thead th{border-color:#fbfcfc}#bookly-tbs .table-hover .table-light:hover{background-color:#ececf6}#bookly-tbs .table-hover .table-light:hover>td,#bookly-tbs .table-hover .table-light:hover>th{background-color:#ececf6}#bookly-tbs .table-dark,#bookly-tbs .table-dark>td,#bookly-tbs .table-dark>th{background-color:#c6c8ca}#bookly-tbs .table-dark tbody+tbody,#bookly-tbs .table-dark td,#bookly-tbs .table-dark th,#bookly-tbs .table-dark thead th{border-color:#95999c}#bookly-tbs .table-hover .table-dark:hover{background-color:#b9bbbe}#bookly-tbs .table-hover .table-dark:hover>td,#bookly-tbs .table-hover .table-dark:hover>th{background-color:#b9bbbe}#bookly-tbs .table-active,#bookly-tbs .table-active>td,#bookly-tbs .table-active>th{background-color:rgba(0,0,0,.075)}#bookly-tbs .table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}#bookly-tbs .table-hover .table-active:hover>td,#bookly-tbs .table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}#bookly-tbs .table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}#bookly-tbs .table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}#bookly-tbs .table-dark{color:#fff;background-color:#343a40}#bookly-tbs .table-dark td,#bookly-tbs .table-dark th,#bookly-tbs .table-dark thead th{border-color:#454d55}#bookly-tbs .table-dark.table-bordered{border:0}#bookly-tbs .table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}#bookly-tbs .table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){#bookly-tbs .table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}#bookly-tbs .table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){#bookly-tbs .table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}#bookly-tbs .table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){#bookly-tbs .table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}#bookly-tbs .table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){#bookly-tbs .table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}#bookly-tbs .table-responsive-xl>.table-bordered{border:0}}#bookly-tbs .table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}#bookly-tbs .table-responsive>.table-bordered{border:0}#bookly-tbs .form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){#bookly-tbs .form-control{-webkit-transition:none;transition:none}}#bookly-tbs .form-control::-ms-expand{background-color:transparent;border:0}#bookly-tbs .form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}#bookly-tbs .form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}#bookly-tbs .form-control::-moz-placeholder{color:#6c757d;opacity:1}#bookly-tbs .form-control:-ms-input-placeholder{color:#6c757d;opacity:1}#bookly-tbs .form-control::-ms-input-placeholder{color:#6c757d;opacity:1}#bookly-tbs .form-control::placeholder{color:#6c757d;opacity:1}#bookly-tbs .form-control:disabled,#bookly-tbs .form-control[readonly]{background-color:#e9ecef;opacity:1}#bookly-tbs select.form-control:focus::-ms-value{color:#495057;background-color:#fff}#bookly-tbs .form-control-file,#bookly-tbs .form-control-range{display:block;width:100%}#bookly-tbs .col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}#bookly-tbs .col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}#bookly-tbs .col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}#bookly-tbs .form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}#bookly-tbs .form-control-plaintext.form-control-lg,#bookly-tbs .form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}#bookly-tbs .form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}#bookly-tbs .form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}#bookly-tbs select.form-control[multiple],#bookly-tbs select.form-control[size]{height:auto}#bookly-tbs textarea.form-control{height:auto}#bookly-tbs .form-group{margin-bottom:1rem}#bookly-tbs .form-text{display:block;margin-top:.25rem}#bookly-tbs .form-row{display:-webkit-box;display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}#bookly-tbs .form-row>.col,#bookly-tbs .form-row>[class*=col-]{padding-right:5px;padding-left:5px}#bookly-tbs .form-check{position:relative;display:block;padding-left:1.25rem}#bookly-tbs .form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}#bookly-tbs .form-check-input:disabled~.form-check-label,#bookly-tbs .form-check-input[disabled]~.form-check-label{color:#6c757d}#bookly-tbs .form-check-label{margin-bottom:0}#bookly-tbs .form-check-inline{display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;padding-left:0;margin-right:.75rem}#bookly-tbs .form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}#bookly-tbs .valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}#bookly-tbs .valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}#bookly-tbs.is-valid~.valid-feedback,#bookly-tbs.is-valid~.valid-tooltip,.was-validated #bookly-tbs:valid~.valid-feedback,.was-validated #bookly-tbs:valid~.valid-tooltip{display:block}#bookly-tbs .form-control.is-valid,.was-validated #bookly-tbs .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}#bookly-tbs .form-control.is-valid:focus,.was-validated #bookly-tbs .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}#bookly-tbs textarea.form-control.is-valid,.was-validated #bookly-tbs textarea.form-control:valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}#bookly-tbs .custom-select.is-valid,.was-validated #bookly-tbs .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}#bookly-tbs .custom-select.is-valid:focus,.was-validated #bookly-tbs .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}#bookly-tbs .form-check-input.is-valid~.form-check-label,.was-validated #bookly-tbs .form-check-input:valid~.form-check-label{color:#28a745}#bookly-tbs .form-check-input.is-valid~.valid-feedback,#bookly-tbs .form-check-input.is-valid~.valid-tooltip,.was-validated #bookly-tbs .form-check-input:valid~.valid-feedback,.was-validated #bookly-tbs .form-check-input:valid~.valid-tooltip{display:block}#bookly-tbs .custom-control-input.is-valid~.custom-control-label,.was-validated #bookly-tbs .custom-control-input:valid~.custom-control-label{color:#28a745}#bookly-tbs .custom-control-input.is-valid~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}#bookly-tbs .custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}#bookly-tbs .custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}#bookly-tbs .custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}#bookly-tbs .custom-file-input.is-valid~.custom-file-label,.was-validated #bookly-tbs .custom-file-input:valid~.custom-file-label{border-color:#28a745}#bookly-tbs .custom-file-input.is-valid:focus~.custom-file-label,.was-validated #bookly-tbs .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}#bookly-tbs .invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}#bookly-tbs .invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}#bookly-tbs.is-invalid~.invalid-feedback,#bookly-tbs.is-invalid~.invalid-tooltip,.was-validated #bookly-tbs:invalid~.invalid-feedback,.was-validated #bookly-tbs:invalid~.invalid-tooltip{display:block}#bookly-tbs .form-control.is-invalid,.was-validated #bookly-tbs .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}#bookly-tbs .form-control.is-invalid:focus,.was-validated #bookly-tbs .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}#bookly-tbs textarea.form-control.is-invalid,.was-validated #bookly-tbs textarea.form-control:invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}#bookly-tbs .custom-select.is-invalid,.was-validated #bookly-tbs .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}#bookly-tbs .custom-select.is-invalid:focus,.was-validated #bookly-tbs .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}#bookly-tbs .form-check-input.is-invalid~.form-check-label,.was-validated #bookly-tbs .form-check-input:invalid~.form-check-label{color:#dc3545}#bookly-tbs .form-check-input.is-invalid~.invalid-feedback,#bookly-tbs .form-check-input.is-invalid~.invalid-tooltip,.was-validated #bookly-tbs .form-check-input:invalid~.invalid-feedback,.was-validated #bookly-tbs .form-check-input:invalid~.invalid-tooltip{display:block}#bookly-tbs .custom-control-input.is-invalid~.custom-control-label,.was-validated #bookly-tbs .custom-control-input:invalid~.custom-control-label{color:#dc3545}#bookly-tbs .custom-control-input.is-invalid~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}#bookly-tbs .custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}#bookly-tbs .custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}#bookly-tbs .custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated #bookly-tbs .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}#bookly-tbs .custom-file-input.is-invalid~.custom-file-label,.was-validated #bookly-tbs .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}#bookly-tbs .custom-file-input.is-invalid:focus~.custom-file-label,.was-validated #bookly-tbs .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}#bookly-tbs .form-inline{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center}#bookly-tbs .form-inline .form-check{width:100%}@media (min-width:576px){#bookly-tbs .form-inline label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;margin-bottom:0}#bookly-tbs .form-inline .form-group{display:-webkit-box;display:flex;-webkit-box-flex:0;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-align:center;align-items:center;margin-bottom:0}#bookly-tbs .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}#bookly-tbs .form-inline .form-control-plaintext{display:inline-block}#bookly-tbs .form-inline .custom-select,#bookly-tbs .form-inline .input-group{width:auto}#bookly-tbs .form-inline .form-check{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:auto;padding-left:0}#bookly-tbs .form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}#bookly-tbs .form-inline .custom-control{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}#bookly-tbs .form-inline .custom-control-label{margin-bottom:0}}#bookly-tbs .btn,#bookly-tbs .fc .fc-button{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){#bookly-tbs .btn,#bookly-tbs .fc .fc-button{-webkit-transition:none;transition:none}}#bookly-tbs .btn:hover,#bookly-tbs .fc .fc-button:hover{color:#212529;text-decoration:none}#bookly-tbs .btn.focus,#bookly-tbs .btn:focus,#bookly-tbs .fc .fc-button:focus,#bookly-tbs .fc .focus.fc-button{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .btn.disabled,#bookly-tbs .btn:disabled,#bookly-tbs .fc .disabled.fc-button,#bookly-tbs .fc .fc-button:disabled{opacity:.65}#bookly-tbs .fc a.disabled.fc-button,#bookly-tbs .fc fieldset:disabled a.fc-button,#bookly-tbs a.btn.disabled,#bookly-tbs fieldset:disabled .fc a.fc-button,#bookly-tbs fieldset:disabled a.btn{pointer-events:none}#bookly-tbs .btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}#bookly-tbs .btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}#bookly-tbs .btn-primary.focus,#bookly-tbs .btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}#bookly-tbs .btn-primary.disabled,#bookly-tbs .btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}#bookly-tbs .btn-primary:not(:disabled):not(.disabled).active,#bookly-tbs .btn-primary:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}#bookly-tbs .btn-primary:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-primary:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}#bookly-tbs .btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}#bookly-tbs .btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}#bookly-tbs .btn-secondary.focus,#bookly-tbs .btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}#bookly-tbs .btn-secondary.disabled,#bookly-tbs .btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}#bookly-tbs .btn-secondary:not(:disabled):not(.disabled).active,#bookly-tbs .btn-secondary:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}#bookly-tbs .btn-secondary:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-secondary:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}#bookly-tbs .btn-success,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary{color:#fff;background-color:#28a745;border-color:#28a745}#bookly-tbs .btn-success:hover,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:hover{color:#fff;background-color:#218838;border-color:#1e7e34}#bookly-tbs .btn-success.focus,#bookly-tbs .btn-success:focus,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:focus,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .focus.btn-primary{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}#bookly-tbs .btn-success.disabled,#bookly-tbs .btn-success:disabled,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:disabled,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .disabled.btn-primary{color:#fff;background-color:#28a745;border-color:#28a745}#bookly-tbs .btn-success:not(:disabled):not(.disabled).active,#bookly-tbs .btn-success:not(:disabled):not(.disabled):active,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:not(:disabled):not(.disabled).active,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-success.dropdown-toggle,.show>#bookly-tbs .daterangepicker.show-calendar .drp-buttons .dropdown-toggle.btn-primary{color:#fff;background-color:#1e7e34;border-color:#1c7430}#bookly-tbs .btn-success:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-success:not(:disabled):not(.disabled):active:focus,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:not(:disabled):not(.disabled).active:focus,#bookly-tbs .daterangepicker.show-calendar .drp-buttons .btn-primary:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-success.dropdown-toggle:focus,.show>#bookly-tbs .daterangepicker.show-calendar .drp-buttons .dropdown-toggle.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}#bookly-tbs .btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}#bookly-tbs .btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}#bookly-tbs .btn-info.focus,#bookly-tbs .btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}#bookly-tbs .btn-info.disabled,#bookly-tbs .btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}#bookly-tbs .btn-info:not(:disabled):not(.disabled).active,#bookly-tbs .btn-info:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}#bookly-tbs .btn-info:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-info:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}#bookly-tbs .btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}#bookly-tbs .btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}#bookly-tbs .btn-warning.focus,#bookly-tbs .btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}#bookly-tbs .btn-warning.disabled,#bookly-tbs .btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}#bookly-tbs .btn-warning:not(:disabled):not(.disabled).active,#bookly-tbs .btn-warning:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}#bookly-tbs .btn-warning:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-warning:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}#bookly-tbs .btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}#bookly-tbs .btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}#bookly-tbs .btn-danger.focus,#bookly-tbs .btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}#bookly-tbs .btn-danger.disabled,#bookly-tbs .btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}#bookly-tbs .btn-danger:not(:disabled):not(.disabled).active,#bookly-tbs .btn-danger:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}#bookly-tbs .btn-danger:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-danger:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}#bookly-tbs .btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}#bookly-tbs .btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}#bookly-tbs .btn-light.focus,#bookly-tbs .btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}#bookly-tbs .btn-light.disabled,#bookly-tbs .btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}#bookly-tbs .btn-light:not(:disabled):not(.disabled).active,#bookly-tbs .btn-light:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}#bookly-tbs .btn-light:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-light:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}#bookly-tbs .btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}#bookly-tbs .btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}#bookly-tbs .btn-dark.focus,#bookly-tbs .btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}#bookly-tbs .btn-dark.disabled,#bookly-tbs .btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}#bookly-tbs .btn-dark:not(:disabled):not(.disabled).active,#bookly-tbs .btn-dark:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}#bookly-tbs .btn-dark:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-dark:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}#bookly-tbs .btn-outline-primary{color:#007bff;border-color:#007bff}#bookly-tbs .btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}#bookly-tbs .btn-outline-primary.focus,#bookly-tbs .btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}#bookly-tbs .btn-outline-primary.disabled,#bookly-tbs .btn-outline-primary:disabled{color:#007bff;background-color:transparent}#bookly-tbs .btn-outline-primary:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-primary:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}#bookly-tbs .btn-outline-primary:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}#bookly-tbs .btn-outline-secondary{color:#6c757d;border-color:#6c757d}#bookly-tbs .btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}#bookly-tbs .btn-outline-secondary.focus,#bookly-tbs .btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}#bookly-tbs .btn-outline-secondary.disabled,#bookly-tbs .btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}#bookly-tbs .btn-outline-secondary:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-secondary:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}#bookly-tbs .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}#bookly-tbs .btn-outline-success{color:#28a745;border-color:#28a745}#bookly-tbs .btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}#bookly-tbs .btn-outline-success.focus,#bookly-tbs .btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}#bookly-tbs .btn-outline-success.disabled,#bookly-tbs .btn-outline-success:disabled{color:#28a745;background-color:transparent}#bookly-tbs .btn-outline-success:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-success:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}#bookly-tbs .btn-outline-success:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}#bookly-tbs .btn-outline-info{color:#17a2b8;border-color:#17a2b8}#bookly-tbs .btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}#bookly-tbs .btn-outline-info.focus,#bookly-tbs .btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}#bookly-tbs .btn-outline-info.disabled,#bookly-tbs .btn-outline-info:disabled{color:#17a2b8;background-color:transparent}#bookly-tbs .btn-outline-info:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-info:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}#bookly-tbs .btn-outline-info:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}#bookly-tbs .btn-outline-warning{color:#ffc107;border-color:#ffc107}#bookly-tbs .btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}#bookly-tbs .btn-outline-warning.focus,#bookly-tbs .btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}#bookly-tbs .btn-outline-warning.disabled,#bookly-tbs .btn-outline-warning:disabled{color:#ffc107;background-color:transparent}#bookly-tbs .btn-outline-warning:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-warning:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}#bookly-tbs .btn-outline-warning:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}#bookly-tbs .btn-outline-danger{color:#dc3545;border-color:#dc3545}#bookly-tbs .btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}#bookly-tbs .btn-outline-danger.focus,#bookly-tbs .btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}#bookly-tbs .btn-outline-danger.disabled,#bookly-tbs .btn-outline-danger:disabled{color:#dc3545;background-color:transparent}#bookly-tbs .btn-outline-danger:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-danger:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}#bookly-tbs .btn-outline-danger:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}#bookly-tbs .btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}#bookly-tbs .btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}#bookly-tbs .btn-outline-light.focus,#bookly-tbs .btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}#bookly-tbs .btn-outline-light.disabled,#bookly-tbs .btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}#bookly-tbs .btn-outline-light:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-light:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}#bookly-tbs .btn-outline-light:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}#bookly-tbs .btn-outline-dark{color:#343a40;border-color:#343a40}#bookly-tbs .btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}#bookly-tbs .btn-outline-dark.focus,#bookly-tbs .btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}#bookly-tbs .btn-outline-dark.disabled,#bookly-tbs .btn-outline-dark:disabled{color:#343a40;background-color:transparent}#bookly-tbs .btn-outline-dark:not(:disabled):not(.disabled).active,#bookly-tbs .btn-outline-dark:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}#bookly-tbs .btn-outline-dark:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}#bookly-tbs .btn-link{font-weight:400;color:#007bff;text-decoration:none}#bookly-tbs .btn-link:hover{color:#0056b3;text-decoration:underline}#bookly-tbs .btn-link.focus,#bookly-tbs .btn-link:focus{text-decoration:underline;box-shadow:none}#bookly-tbs .btn-link.disabled,#bookly-tbs .btn-link:disabled{color:#6c757d;pointer-events:none}#bookly-tbs .btn-group-lg>.btn,#bookly-tbs .btn-lg,#bookly-tbs .fc .btn-group-lg>.fc-button{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}#bookly-tbs .btn-group-sm>.btn,#bookly-tbs .btn-sm,#bookly-tbs .fc .btn-group-sm>.fc-button{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}#bookly-tbs .btn-block{display:block;width:100%}#bookly-tbs .btn-block+.btn-block{margin-top:.5rem}#bookly-tbs input[type=button].btn-block,#bookly-tbs input[type=reset].btn-block,#bookly-tbs input[type=submit].btn-block{width:100%}#bookly-tbs .fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){#bookly-tbs .fade{-webkit-transition:none;transition:none}}#bookly-tbs .fade:not(.show){opacity:0}#bookly-tbs .collapse:not(.show){display:none}#bookly-tbs .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media (prefers-reduced-motion:reduce){#bookly-tbs .collapsing{-webkit-transition:none;transition:none}}#bookly-tbs .dropdown,#bookly-tbs .dropleft,#bookly-tbs .dropright,#bookly-tbs .dropup{position:relative}#bookly-tbs .dropdown-toggle{white-space:nowrap}#bookly-tbs .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}#bookly-tbs .dropdown-toggle:empty::after{margin-left:0}#bookly-tbs .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}#bookly-tbs .dropdown-menu-left{right:auto;left:0}#bookly-tbs .dropdown-menu-right{right:0;left:auto}@media (min-width:576px){#bookly-tbs .dropdown-menu-sm-left{right:auto;left:0}#bookly-tbs .dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){#bookly-tbs .dropdown-menu-md-left{right:auto;left:0}#bookly-tbs .dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){#bookly-tbs .dropdown-menu-lg-left{right:auto;left:0}#bookly-tbs .dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){#bookly-tbs .dropdown-menu-xl-left{right:auto;left:0}#bookly-tbs .dropdown-menu-xl-right{right:0;left:auto}}#bookly-tbs .dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}#bookly-tbs .dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}#bookly-tbs .dropup .dropdown-toggle:empty::after{margin-left:0}#bookly-tbs .dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}#bookly-tbs .dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}#bookly-tbs .dropright .dropdown-toggle:empty::after{margin-left:0}#bookly-tbs .dropright .dropdown-toggle::after{vertical-align:0}#bookly-tbs .dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}#bookly-tbs .dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}#bookly-tbs .dropleft .dropdown-toggle::after{display:none}#bookly-tbs .dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}#bookly-tbs .dropleft .dropdown-toggle:empty::after{margin-left:0}#bookly-tbs .dropleft .dropdown-toggle::before{vertical-align:0}#bookly-tbs .dropdown-menu[x-placement^=bottom],#bookly-tbs .dropdown-menu[x-placement^=left],#bookly-tbs .dropdown-menu[x-placement^=right],#bookly-tbs .dropdown-menu[x-placement^=top]{right:auto;bottom:auto}#bookly-tbs .dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}#bookly-tbs .dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}#bookly-tbs .dropdown-item:focus,#bookly-tbs .dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}#bookly-tbs .dropdown-item.active,#bookly-tbs .dropdown-item:active{color:#16181b;text-decoration:none;background-color:#f8f9fa}#bookly-tbs .dropdown-item.disabled,#bookly-tbs .dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}#bookly-tbs .dropdown-menu.show{display:block}#bookly-tbs .dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}#bookly-tbs .dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}#bookly-tbs .btn-group,#bookly-tbs .btn-group-vertical,#bookly-tbs .fc .fc-button-group{position:relative;display:-webkit-inline-box;display:inline-flex;vertical-align:middle}#bookly-tbs .btn-group-vertical>.btn,#bookly-tbs .btn-group>.btn,#bookly-tbs .fc .btn-group-vertical>.fc-button,#bookly-tbs .fc .btn-group>.fc-button,#bookly-tbs .fc .fc-button-group>.btn,#bookly-tbs .fc .fc-button-group>.fc-button{position:relative;-webkit-box-flex:1;flex:1 1 auto}#bookly-tbs .btn-group-vertical>.btn:hover,#bookly-tbs .btn-group>.btn:hover,#bookly-tbs .fc .btn-group-vertical>.fc-button:hover,#bookly-tbs .fc .btn-group>.fc-button:hover,#bookly-tbs .fc .fc-button-group>.btn:hover,#bookly-tbs .fc .fc-button-group>.fc-button:hover{z-index:1}#bookly-tbs .btn-group-vertical>.btn.active,#bookly-tbs .btn-group-vertical>.btn:active,#bookly-tbs .btn-group-vertical>.btn:focus,#bookly-tbs .btn-group>.btn.active,#bookly-tbs .btn-group>.btn:active,#bookly-tbs .btn-group>.btn:focus,#bookly-tbs .fc .btn-group-vertical>.active.fc-button,#bookly-tbs .fc .btn-group-vertical>.fc-button:active,#bookly-tbs .fc .btn-group-vertical>.fc-button:focus,#bookly-tbs .fc .btn-group>.active.fc-button,#bookly-tbs .fc .btn-group>.fc-button:active,#bookly-tbs .fc .btn-group>.fc-button:focus,#bookly-tbs .fc .fc-button-group>.active.fc-button,#bookly-tbs .fc .fc-button-group>.btn.active,#bookly-tbs .fc .fc-button-group>.btn:active,#bookly-tbs .fc .fc-button-group>.btn:focus,#bookly-tbs .fc .fc-button-group>.fc-button:active,#bookly-tbs .fc .fc-button-group>.fc-button:focus{z-index:1}#bookly-tbs .btn-toolbar{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start}#bookly-tbs .btn-toolbar .input-group{width:auto}#bookly-tbs .btn-group>.btn-group:not(:first-child),#bookly-tbs .btn-group>.btn:not(:first-child),#bookly-tbs .fc .btn-group>.fc-button-group:not(:first-child),#bookly-tbs .fc .btn-group>.fc-button:not(:first-child),#bookly-tbs .fc .fc-button-group>.btn-group:not(:first-child),#bookly-tbs .fc .fc-button-group>.btn:not(:first-child),#bookly-tbs .fc .fc-button-group>.fc-button-group:not(:first-child),#bookly-tbs .fc .fc-button-group>.fc-button:not(:first-child){margin-left:-1px}#bookly-tbs .btn-group>.btn-group:not(:last-child)>.btn,#bookly-tbs .btn-group>.btn:not(:last-child):not(.dropdown-toggle),#bookly-tbs .fc .btn-group>.btn-group:not(:last-child)>.fc-button,#bookly-tbs .fc .btn-group>.fc-button-group:not(:last-child)>.btn,#bookly-tbs .fc .btn-group>.fc-button-group:not(:last-child)>.fc-button,#bookly-tbs .fc .btn-group>.fc-button:not(:last-child):not(.dropdown-toggle),#bookly-tbs .fc .fc-button-group>.btn-group:not(:last-child)>.btn,#bookly-tbs .fc .fc-button-group>.btn-group:not(:last-child)>.fc-button,#bookly-tbs .fc .fc-button-group>.btn:not(:last-child):not(.dropdown-toggle),#bookly-tbs .fc .fc-button-group>.fc-button-group:not(:last-child)>.btn,#bookly-tbs .fc .fc-button-group>.fc-button-group:not(:last-child)>.fc-button,#bookly-tbs .fc .fc-button-group>.fc-button:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .btn-group>.btn-group:not(:first-child)>.btn,#bookly-tbs .btn-group>.btn:not(:first-child),#bookly-tbs .fc .btn-group>.btn-group:not(:first-child)>.fc-button,#bookly-tbs .fc .btn-group>.fc-button-group:not(:first-child)>.btn,#bookly-tbs .fc .btn-group>.fc-button-group:not(:first-child)>.fc-button,#bookly-tbs .fc .btn-group>.fc-button:not(:first-child),#bookly-tbs .fc .fc-button-group>.btn-group:not(:first-child)>.btn,#bookly-tbs .fc .fc-button-group>.btn-group:not(:first-child)>.fc-button,#bookly-tbs .fc .fc-button-group>.btn:not(:first-child),#bookly-tbs .fc .fc-button-group>.fc-button-group:not(:first-child)>.btn,#bookly-tbs .fc .fc-button-group>.fc-button-group:not(:first-child)>.fc-button,#bookly-tbs .fc .fc-button-group>.fc-button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}#bookly-tbs .dropdown-toggle-split::after,.dropright #bookly-tbs .dropdown-toggle-split::after,.dropup #bookly-tbs .dropdown-toggle-split::after{margin-left:0}.dropleft #bookly-tbs .dropdown-toggle-split::before{margin-right:0}#bookly-tbs .btn-group-sm>.btn+.dropdown-toggle-split,#bookly-tbs .btn-sm+.dropdown-toggle-split,#bookly-tbs .fc .btn-group-sm>.fc-button+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}#bookly-tbs .btn-group-lg>.btn+.dropdown-toggle-split,#bookly-tbs .btn-lg+.dropdown-toggle-split,#bookly-tbs .fc .btn-group-lg>.fc-button+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}#bookly-tbs .btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:center;justify-content:center}#bookly-tbs .btn-group-vertical>.btn,#bookly-tbs .btn-group-vertical>.btn-group,#bookly-tbs .fc .btn-group-vertical>.fc-button,#bookly-tbs .fc .btn-group-vertical>.fc-button-group{width:100%}#bookly-tbs .btn-group-vertical>.btn-group:not(:first-child),#bookly-tbs .btn-group-vertical>.btn:not(:first-child),#bookly-tbs .fc .btn-group-vertical>.fc-button-group:not(:first-child),#bookly-tbs .fc .btn-group-vertical>.fc-button:not(:first-child){margin-top:-1px}#bookly-tbs .btn-group-vertical>.btn-group:not(:last-child)>.btn,#bookly-tbs .btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),#bookly-tbs .fc .btn-group-vertical>.btn-group:not(:last-child)>.fc-button,#bookly-tbs .fc .btn-group-vertical>.fc-button-group:not(:last-child)>.btn,#bookly-tbs .fc .btn-group-vertical>.fc-button-group:not(:last-child)>.fc-button,#bookly-tbs .fc .btn-group-vertical>.fc-button:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}#bookly-tbs .btn-group-vertical>.btn-group:not(:first-child)>.btn,#bookly-tbs .btn-group-vertical>.btn:not(:first-child),#bookly-tbs .fc .btn-group-vertical>.btn-group:not(:first-child)>.fc-button,#bookly-tbs .fc .btn-group-vertical>.fc-button-group:not(:first-child)>.btn,#bookly-tbs .fc .btn-group-vertical>.fc-button-group:not(:first-child)>.fc-button,#bookly-tbs .fc .btn-group-vertical>.fc-button:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .btn-group-toggle>.btn,#bookly-tbs .btn-group-toggle>.btn-group>.btn,#bookly-tbs .fc .btn-group-toggle>.btn-group>.fc-button,#bookly-tbs .fc .btn-group-toggle>.fc-button,#bookly-tbs .fc .btn-group-toggle>.fc-button-group>.btn,#bookly-tbs .fc .btn-group-toggle>.fc-button-group>.fc-button{margin-bottom:0}#bookly-tbs .btn-group-toggle>.btn input[type=checkbox],#bookly-tbs .btn-group-toggle>.btn input[type=radio],#bookly-tbs .btn-group-toggle>.btn-group>.btn input[type=checkbox],#bookly-tbs .btn-group-toggle>.btn-group>.btn input[type=radio],#bookly-tbs .fc .btn-group-toggle>.btn-group>.fc-button input[type=checkbox],#bookly-tbs .fc .btn-group-toggle>.btn-group>.fc-button input[type=radio],#bookly-tbs .fc .btn-group-toggle>.fc-button input[type=checkbox],#bookly-tbs .fc .btn-group-toggle>.fc-button input[type=radio],#bookly-tbs .fc .btn-group-toggle>.fc-button-group>.btn input[type=checkbox],#bookly-tbs .fc .btn-group-toggle>.fc-button-group>.btn input[type=radio],#bookly-tbs .fc .btn-group-toggle>.fc-button-group>.fc-button input[type=checkbox],#bookly-tbs .fc .btn-group-toggle>.fc-button-group>.fc-button input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}#bookly-tbs .input-group{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:stretch;align-items:stretch;width:100%}#bookly-tbs .input-group>.custom-file,#bookly-tbs .input-group>.custom-select,#bookly-tbs .input-group>.form-control,#bookly-tbs .input-group>.form-control-plaintext{position:relative;-webkit-box-flex:1;flex:1 1 0%;min-width:0;margin-bottom:0}#bookly-tbs .input-group>.custom-file+.custom-file,#bookly-tbs .input-group>.custom-file+.custom-select,#bookly-tbs .input-group>.custom-file+.form-control,#bookly-tbs .input-group>.custom-select+.custom-file,#bookly-tbs .input-group>.custom-select+.custom-select,#bookly-tbs .input-group>.custom-select+.form-control,#bookly-tbs .input-group>.form-control+.custom-file,#bookly-tbs .input-group>.form-control+.custom-select,#bookly-tbs .input-group>.form-control+.form-control,#bookly-tbs .input-group>.form-control-plaintext+.custom-file,#bookly-tbs .input-group>.form-control-plaintext+.custom-select,#bookly-tbs .input-group>.form-control-plaintext+.form-control{margin-left:-1px}#bookly-tbs .input-group>.custom-file .custom-file-input:focus~.custom-file-label,#bookly-tbs .input-group>.custom-select:focus,#bookly-tbs .input-group>.form-control:focus{z-index:3}#bookly-tbs .input-group>.custom-file .custom-file-input:focus{z-index:4}#bookly-tbs .input-group>.custom-select:not(:last-child),#bookly-tbs .input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .input-group>.custom-select:not(:first-child),#bookly-tbs .input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .input-group>.custom-file{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}#bookly-tbs .input-group>.custom-file:not(:last-child) .custom-file-label,#bookly-tbs .input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .input-group-append,#bookly-tbs .input-group-prepend{display:-webkit-box;display:flex}#bookly-tbs .fc .input-group-append .fc-button,#bookly-tbs .fc .input-group-prepend .fc-button,#bookly-tbs .input-group-append .btn,#bookly-tbs .input-group-append .fc .fc-button,#bookly-tbs .input-group-prepend .btn,#bookly-tbs .input-group-prepend .fc .fc-button{position:relative;z-index:2}#bookly-tbs .fc .input-group-append .fc-button:focus,#bookly-tbs .fc .input-group-prepend .fc-button:focus,#bookly-tbs .input-group-append .btn:focus,#bookly-tbs .input-group-append .fc .fc-button:focus,#bookly-tbs .input-group-prepend .btn:focus,#bookly-tbs .input-group-prepend .fc .fc-button:focus{z-index:3}#bookly-tbs .fc .input-group-append .btn+.fc-button,#bookly-tbs .fc .input-group-append .fc-button+.btn,#bookly-tbs .fc .input-group-append .fc-button+.fc-button,#bookly-tbs .fc .input-group-append .fc-button+.input-group-text,#bookly-tbs .fc .input-group-append .input-group-text+.fc-button,#bookly-tbs .fc .input-group-prepend .btn+.fc-button,#bookly-tbs .fc .input-group-prepend .fc-button+.btn,#bookly-tbs .fc .input-group-prepend .fc-button+.fc-button,#bookly-tbs .fc .input-group-prepend .fc-button+.input-group-text,#bookly-tbs .fc .input-group-prepend .input-group-text+.fc-button,#bookly-tbs .input-group-append .btn+.btn,#bookly-tbs .input-group-append .btn+.input-group-text,#bookly-tbs .input-group-append .fc .btn+.fc-button,#bookly-tbs .input-group-append .fc .fc-button+.btn,#bookly-tbs .input-group-append .fc .fc-button+.fc-button,#bookly-tbs .input-group-append .fc .fc-button+.input-group-text,#bookly-tbs .input-group-append .fc .input-group-text+.fc-button,#bookly-tbs .input-group-append .input-group-text+.btn,#bookly-tbs .input-group-append .input-group-text+.input-group-text,#bookly-tbs .input-group-prepend .btn+.btn,#bookly-tbs .input-group-prepend .btn+.input-group-text,#bookly-tbs .input-group-prepend .fc .btn+.fc-button,#bookly-tbs .input-group-prepend .fc .fc-button+.btn,#bookly-tbs .input-group-prepend .fc .fc-button+.fc-button,#bookly-tbs .input-group-prepend .fc .fc-button+.input-group-text,#bookly-tbs .input-group-prepend .fc .input-group-text+.fc-button,#bookly-tbs .input-group-prepend .input-group-text+.btn,#bookly-tbs .input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}#bookly-tbs .input-group-prepend{margin-right:-1px}#bookly-tbs .input-group-append{margin-left:-1px}#bookly-tbs .input-group-text{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}#bookly-tbs .input-group-text input[type=checkbox],#bookly-tbs .input-group-text input[type=radio]{margin-top:0}#bookly-tbs .input-group-lg>.custom-select,#bookly-tbs .input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}#bookly-tbs .fc .input-group-lg>.input-group-append>.fc-button,#bookly-tbs .fc .input-group-lg>.input-group-prepend>.fc-button,#bookly-tbs .input-group-lg>.custom-select,#bookly-tbs .input-group-lg>.form-control,#bookly-tbs .input-group-lg>.input-group-append>.btn,#bookly-tbs .input-group-lg>.input-group-append>.input-group-text,#bookly-tbs .input-group-lg>.input-group-prepend>.btn,#bookly-tbs .input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}#bookly-tbs .input-group-sm>.custom-select,#bookly-tbs .input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}#bookly-tbs .fc .input-group-sm>.input-group-append>.fc-button,#bookly-tbs .fc .input-group-sm>.input-group-prepend>.fc-button,#bookly-tbs .input-group-sm>.custom-select,#bookly-tbs .input-group-sm>.form-control,#bookly-tbs .input-group-sm>.input-group-append>.btn,#bookly-tbs .input-group-sm>.input-group-append>.input-group-text,#bookly-tbs .input-group-sm>.input-group-prepend>.btn,#bookly-tbs .input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}#bookly-tbs .input-group-lg>.custom-select,#bookly-tbs .input-group-sm>.custom-select{padding-right:1.75rem}#bookly-tbs .fc .input-group>.input-group-append:last-child>.fc-button:not(:last-child):not(.dropdown-toggle),#bookly-tbs .fc .input-group>.input-group-append:not(:last-child)>.fc-button,#bookly-tbs .fc .input-group>.input-group-prepend>.fc-button,#bookly-tbs .input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),#bookly-tbs .input-group>.input-group-append:last-child>.input-group-text:not(:last-child),#bookly-tbs .input-group>.input-group-append:not(:last-child)>.btn,#bookly-tbs .input-group>.input-group-append:not(:last-child)>.input-group-text,#bookly-tbs .input-group>.input-group-prepend>.btn,#bookly-tbs .input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .fc .input-group>.input-group-append>.fc-button,#bookly-tbs .fc .input-group>.input-group-prepend:first-child>.fc-button:not(:first-child),#bookly-tbs .fc .input-group>.input-group-prepend:not(:first-child)>.fc-button,#bookly-tbs .input-group>.input-group-append>.btn,#bookly-tbs .input-group>.input-group-append>.input-group-text,#bookly-tbs .input-group>.input-group-prepend:first-child>.btn:not(:first-child),#bookly-tbs .input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),#bookly-tbs .input-group>.input-group-prepend:not(:first-child)>.btn,#bookly-tbs .input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}#bookly-tbs .custom-control-inline{display:-webkit-inline-box;display:inline-flex;margin-right:1rem}#bookly-tbs .custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}#bookly-tbs .custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}#bookly-tbs .custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}#bookly-tbs .custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}#bookly-tbs .custom-control-input:disabled~.custom-control-label,#bookly-tbs .custom-control-input[disabled]~.custom-control-label{color:#6c757d}#bookly-tbs .custom-control-input:disabled~.custom-control-label::before,#bookly-tbs .custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}#bookly-tbs .custom-control-label{position:relative;margin-bottom:0;vertical-align:top}#bookly-tbs .custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}#bookly-tbs .custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}#bookly-tbs .custom-checkbox .custom-control-label::before{border-radius:.25rem}#bookly-tbs .custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}#bookly-tbs .custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}#bookly-tbs .custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}#bookly-tbs .custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}#bookly-tbs .custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}#bookly-tbs .custom-radio .custom-control-label::before{border-radius:50%}#bookly-tbs .custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}#bookly-tbs .custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}#bookly-tbs .custom-switch{padding-left:2.25rem}#bookly-tbs .custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}#bookly-tbs .custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){#bookly-tbs .custom-switch .custom-control-label::after{-webkit-transition:none;transition:none}}#bookly-tbs .custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}#bookly-tbs .custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}#bookly-tbs .custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}#bookly-tbs .custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .custom-select:focus::-ms-value{color:#495057;background-color:#fff}#bookly-tbs .custom-select[multiple],#bookly-tbs .custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}#bookly-tbs .custom-select:disabled{color:#6c757d;background-color:#e9ecef}#bookly-tbs .custom-select::-ms-expand{display:none}#bookly-tbs .custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}#bookly-tbs .custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}#bookly-tbs .custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}#bookly-tbs .custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}#bookly-tbs .custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}#bookly-tbs .custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .custom-file-input:disabled~.custom-file-label,#bookly-tbs .custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}#bookly-tbs .custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}#bookly-tbs .custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}#bookly-tbs .custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}#bookly-tbs .custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}#bookly-tbs .custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}#bookly-tbs .custom-range:focus{outline:0}#bookly-tbs .custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .custom-range::-moz-focus-outer{border:0}#bookly-tbs .custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){#bookly-tbs .custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}#bookly-tbs .custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}#bookly-tbs .custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}#bookly-tbs .custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){#bookly-tbs .custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}#bookly-tbs .custom-range::-moz-range-thumb:active{background-color:#b3d7ff}#bookly-tbs .custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}#bookly-tbs .custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){#bookly-tbs .custom-range::-ms-thumb{-ms-transition:none;transition:none}}#bookly-tbs .custom-range::-ms-thumb:active{background-color:#b3d7ff}#bookly-tbs .custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}#bookly-tbs .custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}#bookly-tbs .custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}#bookly-tbs .custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}#bookly-tbs .custom-range:disabled::-webkit-slider-runnable-track{cursor:default}#bookly-tbs .custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}#bookly-tbs .custom-range:disabled::-moz-range-track{cursor:default}#bookly-tbs .custom-range:disabled::-ms-thumb{background-color:#adb5bd}#bookly-tbs .custom-control-label::before,#bookly-tbs .custom-file-label,#bookly-tbs .custom-select{-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){#bookly-tbs .custom-control-label::before,#bookly-tbs .custom-file-label,#bookly-tbs .custom-select{-webkit-transition:none;transition:none}}#bookly-tbs .nav{display:-webkit-box;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}#bookly-tbs .nav-link{display:block;padding:.5rem 1rem}#bookly-tbs .nav-link:focus,#bookly-tbs .nav-link:hover{text-decoration:none}#bookly-tbs .nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}#bookly-tbs .nav-tabs{border-bottom:1px solid #dee2e6}#bookly-tbs .nav-tabs .nav-item{margin-bottom:-1px}#bookly-tbs .nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}#bookly-tbs .nav-tabs .nav-link:focus,#bookly-tbs .nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}#bookly-tbs .nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}#bookly-tbs .nav-tabs .nav-item.show .nav-link,#bookly-tbs .nav-tabs .nav-link.active{color:#343a40;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}#bookly-tbs .nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .nav-pills .nav-link{border-radius:.25rem}#bookly-tbs .nav-pills .nav-link.active,#bookly-tbs .nav-pills .show>.nav-link{color:#fff;background-color:#007bff}#bookly-tbs .nav-fill .nav-item{-webkit-box-flex:1;flex:1 1 auto;text-align:center}#bookly-tbs .nav-justified .nav-item{flex-basis:0;-webkit-box-flex:1;flex-grow:1;text-align:center}#bookly-tbs .tab-content>.tab-pane{display:none}#bookly-tbs .tab-content>.active{display:block}#bookly-tbs .navbar{position:relative;display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between;padding:.5rem 1rem}#bookly-tbs .navbar .container,#bookly-tbs .navbar .container-fluid,#bookly-tbs .navbar .container-lg,#bookly-tbs .navbar .container-md,#bookly-tbs .navbar .container-sm,#bookly-tbs .navbar .container-xl{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}#bookly-tbs .navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}#bookly-tbs .navbar-brand:focus,#bookly-tbs .navbar-brand:hover{text-decoration:none}#bookly-tbs .navbar-nav{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}#bookly-tbs .navbar-nav .nav-link{padding-right:0;padding-left:0}#bookly-tbs .navbar-nav .dropdown-menu{position:static;float:none}#bookly-tbs .navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}#bookly-tbs .navbar-collapse{flex-basis:100%;-webkit-box-flex:1;flex-grow:1;-webkit-box-align:center;align-items:center}#bookly-tbs .navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}#bookly-tbs .navbar-toggler:focus,#bookly-tbs .navbar-toggler:hover{text-decoration:none}#bookly-tbs .navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){#bookly-tbs .navbar-expand-sm>.container,#bookly-tbs .navbar-expand-sm>.container-fluid,#bookly-tbs .navbar-expand-sm>.container-lg,#bookly-tbs .navbar-expand-sm>.container-md,#bookly-tbs .navbar-expand-sm>.container-sm,#bookly-tbs .navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){#bookly-tbs .navbar-expand-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}#bookly-tbs .navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}#bookly-tbs .navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}#bookly-tbs .navbar-expand-sm>.container,#bookly-tbs .navbar-expand-sm>.container-fluid,#bookly-tbs .navbar-expand-sm>.container-lg,#bookly-tbs .navbar-expand-sm>.container-md,#bookly-tbs .navbar-expand-sm>.container-sm,#bookly-tbs .navbar-expand-sm>.container-xl{flex-wrap:nowrap}#bookly-tbs .navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}#bookly-tbs .navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){#bookly-tbs .navbar-expand-md>.container,#bookly-tbs .navbar-expand-md>.container-fluid,#bookly-tbs .navbar-expand-md>.container-lg,#bookly-tbs .navbar-expand-md>.container-md,#bookly-tbs .navbar-expand-md>.container-sm,#bookly-tbs .navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){#bookly-tbs .navbar-expand-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}#bookly-tbs .navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}#bookly-tbs .navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}#bookly-tbs .navbar-expand-md>.container,#bookly-tbs .navbar-expand-md>.container-fluid,#bookly-tbs .navbar-expand-md>.container-lg,#bookly-tbs .navbar-expand-md>.container-md,#bookly-tbs .navbar-expand-md>.container-sm,#bookly-tbs .navbar-expand-md>.container-xl{flex-wrap:nowrap}#bookly-tbs .navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}#bookly-tbs .navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){#bookly-tbs .navbar-expand-lg>.container,#bookly-tbs .navbar-expand-lg>.container-fluid,#bookly-tbs .navbar-expand-lg>.container-lg,#bookly-tbs .navbar-expand-lg>.container-md,#bookly-tbs .navbar-expand-lg>.container-sm,#bookly-tbs .navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){#bookly-tbs .navbar-expand-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}#bookly-tbs .navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}#bookly-tbs .navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}#bookly-tbs .navbar-expand-lg>.container,#bookly-tbs .navbar-expand-lg>.container-fluid,#bookly-tbs .navbar-expand-lg>.container-lg,#bookly-tbs .navbar-expand-lg>.container-md,#bookly-tbs .navbar-expand-lg>.container-sm,#bookly-tbs .navbar-expand-lg>.container-xl{flex-wrap:nowrap}#bookly-tbs .navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}#bookly-tbs .navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){#bookly-tbs .navbar-expand-xl>.container,#bookly-tbs .navbar-expand-xl>.container-fluid,#bookly-tbs .navbar-expand-xl>.container-lg,#bookly-tbs .navbar-expand-xl>.container-md,#bookly-tbs .navbar-expand-xl>.container-sm,#bookly-tbs .navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){#bookly-tbs .navbar-expand-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}#bookly-tbs .navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}#bookly-tbs .navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}#bookly-tbs .navbar-expand-xl>.container,#bookly-tbs .navbar-expand-xl>.container-fluid,#bookly-tbs .navbar-expand-xl>.container-lg,#bookly-tbs .navbar-expand-xl>.container-md,#bookly-tbs .navbar-expand-xl>.container-sm,#bookly-tbs .navbar-expand-xl>.container-xl{flex-wrap:nowrap}#bookly-tbs .navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}#bookly-tbs .navbar-expand-xl .navbar-toggler{display:none}}#bookly-tbs .navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row nowrap;-webkit-box-pack:start;justify-content:flex-start}#bookly-tbs .navbar-expand>.container,#bookly-tbs .navbar-expand>.container-fluid,#bookly-tbs .navbar-expand>.container-lg,#bookly-tbs .navbar-expand>.container-md,#bookly-tbs .navbar-expand>.container-sm,#bookly-tbs .navbar-expand>.container-xl{padding-right:0;padding-left:0}#bookly-tbs .navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .navbar-expand .navbar-nav .dropdown-menu{position:absolute}#bookly-tbs .navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}#bookly-tbs .navbar-expand>.container,#bookly-tbs .navbar-expand>.container-fluid,#bookly-tbs .navbar-expand>.container-lg,#bookly-tbs .navbar-expand>.container-md,#bookly-tbs .navbar-expand>.container-sm,#bookly-tbs .navbar-expand>.container-xl{flex-wrap:nowrap}#bookly-tbs .navbar-expand .navbar-collapse{display:-webkit-box!important;display:flex!important;flex-basis:auto}#bookly-tbs .navbar-expand .navbar-toggler{display:none}#bookly-tbs .navbar-light .navbar-brand{color:rgba(0,0,0,.9)}#bookly-tbs .navbar-light .navbar-brand:focus,#bookly-tbs .navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}#bookly-tbs .navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}#bookly-tbs .navbar-light .navbar-nav .nav-link:focus,#bookly-tbs .navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}#bookly-tbs .navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}#bookly-tbs .navbar-light .navbar-nav .active>.nav-link,#bookly-tbs .navbar-light .navbar-nav .nav-link.active,#bookly-tbs .navbar-light .navbar-nav .nav-link.show,#bookly-tbs .navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}#bookly-tbs .navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}#bookly-tbs .navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}#bookly-tbs .navbar-light .navbar-text{color:rgba(0,0,0,.5)}#bookly-tbs .navbar-light .navbar-text a{color:rgba(0,0,0,.9)}#bookly-tbs .navbar-light .navbar-text a:focus,#bookly-tbs .navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}#bookly-tbs .navbar-dark .navbar-brand{color:#fff}#bookly-tbs .navbar-dark .navbar-brand:focus,#bookly-tbs .navbar-dark .navbar-brand:hover{color:#fff}#bookly-tbs .navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}#bookly-tbs .navbar-dark .navbar-nav .nav-link:focus,#bookly-tbs .navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}#bookly-tbs .navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}#bookly-tbs .navbar-dark .navbar-nav .active>.nav-link,#bookly-tbs .navbar-dark .navbar-nav .nav-link.active,#bookly-tbs .navbar-dark .navbar-nav .nav-link.show,#bookly-tbs .navbar-dark .navbar-nav .show>.nav-link{color:#fff}#bookly-tbs .navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}#bookly-tbs .navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}#bookly-tbs .navbar-dark .navbar-text{color:rgba(255,255,255,.5)}#bookly-tbs .navbar-dark .navbar-text a{color:#fff}#bookly-tbs .navbar-dark .navbar-text a:focus,#bookly-tbs .navbar-dark .navbar-text a:hover{color:#fff}#bookly-tbs .card{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}#bookly-tbs .card>hr{margin-right:0;margin-left:0}#bookly-tbs .card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}#bookly-tbs .card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}#bookly-tbs .card-body{-webkit-box-flex:1;flex:1 1 auto;min-height:1px;padding:1.25rem}#bookly-tbs .card-title{margin-bottom:.75rem}#bookly-tbs .card-subtitle{margin-top:-.375rem;margin-bottom:0}#bookly-tbs .card-text:last-child{margin-bottom:0}#bookly-tbs .card-link:hover{text-decoration:none}#bookly-tbs .card-link+.card-link{margin-left:1.25rem}#bookly-tbs .card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}#bookly-tbs .card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}#bookly-tbs .card-header+.list-group .list-group-item:first-child{border-top:0}#bookly-tbs .card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}#bookly-tbs .card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}#bookly-tbs .card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}#bookly-tbs .card-header-pills{margin-right:-.625rem;margin-left:-.625rem}#bookly-tbs .card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}#bookly-tbs .card-img,#bookly-tbs .card-img-bottom,#bookly-tbs .card-img-top{flex-shrink:0;width:100%}#bookly-tbs .card-img,#bookly-tbs .card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}#bookly-tbs .card-img,#bookly-tbs .card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}#bookly-tbs .card-deck .card{margin-bottom:15px}@media (min-width:576px){#bookly-tbs .card-deck{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}#bookly-tbs .card-deck .card{-webkit-box-flex:1;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}#bookly-tbs .card-group>.card{margin-bottom:15px}@media (min-width:576px){#bookly-tbs .card-group{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap}#bookly-tbs .card-group>.card{-webkit-box-flex:1;flex:1 0 0%;margin-bottom:0}#bookly-tbs .card-group>.card+.card{margin-left:0;border-left:0}#bookly-tbs .card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .card-group>.card:not(:last-child) .card-header,#bookly-tbs .card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}#bookly-tbs .card-group>.card:not(:last-child) .card-footer,#bookly-tbs .card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}#bookly-tbs .card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .card-group>.card:not(:first-child) .card-header,#bookly-tbs .card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}#bookly-tbs .card-group>.card:not(:first-child) .card-footer,#bookly-tbs .card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}#bookly-tbs .card-columns .card{margin-bottom:.75rem}@media (min-width:576px){#bookly-tbs .card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}#bookly-tbs .card-columns .card{display:inline-block;width:100%}}#bookly-tbs .accordion>.card{overflow:hidden}#bookly-tbs .accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}#bookly-tbs .accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}#bookly-tbs .breadcrumb{display:-webkit-box;display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}#bookly-tbs .breadcrumb-item+.breadcrumb-item{padding-left:.5rem}#bookly-tbs .breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}#bookly-tbs .breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}#bookly-tbs .breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}#bookly-tbs .breadcrumb-item.active{color:#6c757d}#bookly-tbs .pagination{display:-webkit-box;display:flex;padding-left:0;list-style:none;border-radius:.25rem}#bookly-tbs .page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}#bookly-tbs .page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}#bookly-tbs .page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}#bookly-tbs .page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}#bookly-tbs .page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}#bookly-tbs .page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}#bookly-tbs .pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}#bookly-tbs .pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}#bookly-tbs .pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}#bookly-tbs .pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}#bookly-tbs .pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}#bookly-tbs .pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}#bookly-tbs .badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){#bookly-tbs .badge{-webkit-transition:none;transition:none}}#bookly-tbs a.badge:focus,#bookly-tbs a.badge:hover{text-decoration:none}#bookly-tbs .badge:empty{display:none}#bookly-tbs .btn .badge,#bookly-tbs .fc .fc-button .badge{position:relative;top:-1px}#bookly-tbs .badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}#bookly-tbs .badge-primary{color:#fff;background-color:#007bff}#bookly-tbs a.badge-primary:focus,#bookly-tbs a.badge-primary:hover{color:#fff;background-color:#0062cc}#bookly-tbs a.badge-primary.focus,#bookly-tbs a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}#bookly-tbs .badge-secondary{color:#fff;background-color:#6c757d}#bookly-tbs a.badge-secondary:focus,#bookly-tbs a.badge-secondary:hover{color:#fff;background-color:#545b62}#bookly-tbs a.badge-secondary.focus,#bookly-tbs a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}#bookly-tbs .badge-success{color:#fff;background-color:#28a745}#bookly-tbs a.badge-success:focus,#bookly-tbs a.badge-success:hover{color:#fff;background-color:#1e7e34}#bookly-tbs a.badge-success.focus,#bookly-tbs a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}#bookly-tbs .badge-info{color:#fff;background-color:#17a2b8}#bookly-tbs a.badge-info:focus,#bookly-tbs a.badge-info:hover{color:#fff;background-color:#117a8b}#bookly-tbs a.badge-info.focus,#bookly-tbs a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}#bookly-tbs .badge-warning{color:#212529;background-color:#ffc107}#bookly-tbs a.badge-warning:focus,#bookly-tbs a.badge-warning:hover{color:#212529;background-color:#d39e00}#bookly-tbs a.badge-warning.focus,#bookly-tbs a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}#bookly-tbs .badge-danger{color:#fff;background-color:#dc3545}#bookly-tbs a.badge-danger:focus,#bookly-tbs a.badge-danger:hover{color:#fff;background-color:#bd2130}#bookly-tbs a.badge-danger.focus,#bookly-tbs a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}#bookly-tbs .badge-light{color:#212529;background-color:#f8f9fa}#bookly-tbs a.badge-light:focus,#bookly-tbs a.badge-light:hover{color:#212529;background-color:#dae0e5}#bookly-tbs a.badge-light.focus,#bookly-tbs a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}#bookly-tbs .badge-dark{color:#fff;background-color:#343a40}#bookly-tbs a.badge-dark:focus,#bookly-tbs a.badge-dark:hover{color:#fff;background-color:#1d2124}#bookly-tbs a.badge-dark.focus,#bookly-tbs a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}#bookly-tbs .jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){#bookly-tbs .jumbotron{padding:4rem 2rem}}#bookly-tbs .jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}#bookly-tbs .alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}#bookly-tbs .alert-heading{color:inherit}#bookly-tbs .alert-link{font-weight:700}#bookly-tbs .alert-dismissible{padding-right:4rem}#bookly-tbs .alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}#bookly-tbs .alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}#bookly-tbs .alert-primary hr{border-top-color:#9fcdff}#bookly-tbs .alert-primary .alert-link{color:#002752}#bookly-tbs .alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}#bookly-tbs .alert-secondary hr{border-top-color:#c8cbcf}#bookly-tbs .alert-secondary .alert-link{color:#202326}#bookly-tbs .alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}#bookly-tbs .alert-success hr{border-top-color:#b1dfbb}#bookly-tbs .alert-success .alert-link{color:#0b2e13}#bookly-tbs .alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}#bookly-tbs .alert-info hr{border-top-color:#abdde5}#bookly-tbs .alert-info .alert-link{color:#062c33}#bookly-tbs .alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}#bookly-tbs .alert-warning hr{border-top-color:#ffe8a1}#bookly-tbs .alert-warning .alert-link{color:#533f03}#bookly-tbs .alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}#bookly-tbs .alert-danger hr{border-top-color:#f1b0b7}#bookly-tbs .alert-danger .alert-link{color:#491217}#bookly-tbs .alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}#bookly-tbs .alert-light hr{border-top-color:#ececf6}#bookly-tbs .alert-light .alert-link{color:#686868}#bookly-tbs .alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}#bookly-tbs .alert-dark hr{border-top-color:#b9bbbe}#bookly-tbs .alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}#bookly-tbs .progress{display:-webkit-box;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}#bookly-tbs .progress-bar{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;-webkit-transition:width .6s ease;transition:width .6s ease}@media (prefers-reduced-motion:reduce){#bookly-tbs .progress-bar{-webkit-transition:none;transition:none}}#bookly-tbs .progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}#bookly-tbs .progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){#bookly-tbs .progress-bar-animated{-webkit-animation:none;animation:none}}#bookly-tbs .media{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start}#bookly-tbs .media-body{-webkit-box-flex:1;flex:1}#bookly-tbs .list-group{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;padding-left:0;margin-bottom:0}#bookly-tbs .list-group-item-action{width:100%;color:#495057;text-align:inherit}#bookly-tbs .list-group-item-action:focus,#bookly-tbs .list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}#bookly-tbs .list-group-item-action:active{color:#212529;background-color:#e9ecef}#bookly-tbs .list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}#bookly-tbs .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}#bookly-tbs .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}#bookly-tbs .list-group-item.disabled,#bookly-tbs .list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}#bookly-tbs .list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}#bookly-tbs .list-group-item+#bookly-tbs .list-group-item{border-top-width:0}#bookly-tbs .list-group-item+#bookly-tbs .list-group-item.active{margin-top:-1px;border-top-width:1px}#bookly-tbs .list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}#bookly-tbs .list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}#bookly-tbs .list-group-horizontal .list-group-item.active{margin-top:0}#bookly-tbs .list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}#bookly-tbs .list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){#bookly-tbs .list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}#bookly-tbs .list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}#bookly-tbs .list-group-horizontal-sm .list-group-item.active{margin-top:0}#bookly-tbs .list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}#bookly-tbs .list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){#bookly-tbs .list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}#bookly-tbs .list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}#bookly-tbs .list-group-horizontal-md .list-group-item.active{margin-top:0}#bookly-tbs .list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}#bookly-tbs .list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){#bookly-tbs .list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}#bookly-tbs .list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}#bookly-tbs .list-group-horizontal-lg .list-group-item.active{margin-top:0}#bookly-tbs .list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}#bookly-tbs .list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){#bookly-tbs .list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}#bookly-tbs .list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}#bookly-tbs .list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}#bookly-tbs .list-group-horizontal-xl .list-group-item.active{margin-top:0}#bookly-tbs .list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}#bookly-tbs .list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}#bookly-tbs .list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}#bookly-tbs .list-group-flush .list-group-item:first-child{border-top-width:0}#bookly-tbs .list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}#bookly-tbs .list-group-item-primary{color:#004085;background-color:#b8daff}#bookly-tbs .list-group-item-primary.list-group-item-action:focus,#bookly-tbs .list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}#bookly-tbs .list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}#bookly-tbs .list-group-item-secondary{color:#383d41;background-color:#d6d8db}#bookly-tbs .list-group-item-secondary.list-group-item-action:focus,#bookly-tbs .list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}#bookly-tbs .list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}#bookly-tbs .list-group-item-success{color:#155724;background-color:#c3e6cb}#bookly-tbs .list-group-item-success.list-group-item-action:focus,#bookly-tbs .list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}#bookly-tbs .list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}#bookly-tbs .list-group-item-info{color:#0c5460;background-color:#bee5eb}#bookly-tbs .list-group-item-info.list-group-item-action:focus,#bookly-tbs .list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}#bookly-tbs .list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}#bookly-tbs .list-group-item-warning{color:#856404;background-color:#ffeeba}#bookly-tbs .list-group-item-warning.list-group-item-action:focus,#bookly-tbs .list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}#bookly-tbs .list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}#bookly-tbs .list-group-item-danger{color:#721c24;background-color:#f5c6cb}#bookly-tbs .list-group-item-danger.list-group-item-action:focus,#bookly-tbs .list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}#bookly-tbs .list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}#bookly-tbs .list-group-item-light{color:#818182;background-color:#fdfdfe}#bookly-tbs .list-group-item-light.list-group-item-action:focus,#bookly-tbs .list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}#bookly-tbs .list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}#bookly-tbs .list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}#bookly-tbs .list-group-item-dark.list-group-item-action:focus,#bookly-tbs .list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}#bookly-tbs .list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}#bookly-tbs .close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}#bookly-tbs .close:hover{color:#000;text-decoration:none}#bookly-tbs .close:not(:disabled):not(.disabled):focus,#bookly-tbs .close:not(:disabled):not(.disabled):hover{opacity:.75}#bookly-tbs button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}#bookly-tbs a.close.disabled{pointer-events:none}#bookly-tbs .toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}#bookly-tbs .toast:not(:last-child){margin-bottom:.75rem}#bookly-tbs .toast.showing{opacity:1}#bookly-tbs .toast.show{display:block;opacity:1}#bookly-tbs .toast.hide{display:none}#bookly-tbs .toast-header{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}#bookly-tbs .toast-body{padding:.75rem}.bookly-modal-open{overflow:hidden}#bookly-tbs .bookly-modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.bookly-modal-open #bookly-tbs .bookly-modal{overflow-x:hidden;overflow-y:auto}#bookly-tbs .modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}#bookly-tbs .bookly-modal.bookly-fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){#bookly-tbs .bookly-modal.bookly-fade .modal-dialog{-webkit-transition:none;transition:none}}#bookly-tbs .bookly-modal.show .modal-dialog{-webkit-transform:none;transform:none}#bookly-tbs .bookly-modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}#bookly-tbs .modal-dialog-scrollable{display:-webkit-box;display:flex;max-height:calc(100% - 1rem)}#bookly-tbs .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}#bookly-tbs .modal-dialog-scrollable .modal-footer,#bookly-tbs .modal-dialog-scrollable .modal-header{flex-shrink:0}#bookly-tbs .modal-dialog-scrollable .modal-body{overflow-y:auto}#bookly-tbs .modal-dialog-centered{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;min-height:calc(100% - 1rem)}#bookly-tbs .modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}#bookly-tbs .modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;height:100%}#bookly-tbs .modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}#bookly-tbs .modal-dialog-centered.modal-dialog-scrollable::before{content:none}#bookly-tbs .modal-content{position:relative;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.bookly-modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.bookly-modal-backdrop.bookly-fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear;opacity:0}@media (prefers-reduced-motion:reduce){.bookly-modal-backdrop.bookly-fade{-webkit-transition:none;transition:none}}.bookly-modal-backdrop.show{opacity:.5}.bookly-modal-backdrop+.bookly-modal-backdrop{display:none!important}#bookly-tbs .modal-header{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}#bookly-tbs .modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}#bookly-tbs .modal-title{margin-bottom:0;line-height:1.5}#bookly-tbs .modal-body{position:relative;-webkit-box-flex:1;flex:1 1 auto;padding:1rem}#bookly-tbs .modal-footer{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}#bookly-tbs .modal-footer>*{margin:.25rem}#bookly-tbs .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){#bookly-tbs .modal-dialog{max-width:500px;margin:3rem auto}#bookly-tbs .modal-dialog-scrollable{max-height:calc(100% - 6rem)}#bookly-tbs .modal-dialog-scrollable .modal-content{max-height:calc(100vh - 6rem)}#bookly-tbs .modal-dialog-centered{min-height:calc(100% - 6rem)}#bookly-tbs .modal-dialog-centered::before{height:calc(100vh - 6rem)}#bookly-tbs .modal-sm{max-width:300px}}@media (min-width:992px){#bookly-tbs .modal-lg,#bookly-tbs .modal-xl{max-width:800px}}@media (min-width:1200px){#bookly-tbs .modal-xl{max-width:1140px}}#bookly-tbs .modal-faded{z-index:1039!important}#bookly-tbs .tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}#bookly-tbs .tooltip.show{opacity:.9}#bookly-tbs .tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}#bookly-tbs .tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}#bookly-tbs .bs-tooltip-auto[x-placement^=top],#bookly-tbs .bs-tooltip-top{padding:.4rem 0}#bookly-tbs .bs-tooltip-auto[x-placement^=top] .arrow,#bookly-tbs .bs-tooltip-top .arrow{bottom:0}#bookly-tbs .bs-tooltip-auto[x-placement^=top] .arrow::before,#bookly-tbs .bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}#bookly-tbs .bs-tooltip-auto[x-placement^=right],#bookly-tbs .bs-tooltip-right{padding:0 .4rem}#bookly-tbs .bs-tooltip-auto[x-placement^=right] .arrow,#bookly-tbs .bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}#bookly-tbs .bs-tooltip-auto[x-placement^=right] .arrow::before,#bookly-tbs .bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}#bookly-tbs .bs-tooltip-auto[x-placement^=bottom],#bookly-tbs .bs-tooltip-bottom{padding:.4rem 0}#bookly-tbs .bs-tooltip-auto[x-placement^=bottom] .arrow,#bookly-tbs .bs-tooltip-bottom .arrow{top:0}#bookly-tbs .bs-tooltip-auto[x-placement^=bottom] .arrow::before,#bookly-tbs .bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}#bookly-tbs .bs-tooltip-auto[x-placement^=left],#bookly-tbs .bs-tooltip-left{padding:0 .4rem}#bookly-tbs .bs-tooltip-auto[x-placement^=left] .arrow,#bookly-tbs .bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}#bookly-tbs .bs-tooltip-auto[x-placement^=left] .arrow::before,#bookly-tbs .bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}#bookly-tbs .tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}#bookly-tbs [class*=bs-popover-]>.arrow{overflow:visible;left:auto;top:auto;bottom:auto;right:auto;z-index:1040}#bookly-tbs [class*=bs-popover-]>.arrow::after{left:auto;top:auto;bottom:auto;right:auto;background-color:transparent;box-shadow:none;-webkit-transform:none;transform:none;width:auto;height:auto;z-index:1040}#bookly-tbs #bookly-appearance .bookly-popover{z-index:9999!important}#bookly-tbs .bookly-popover{position:absolute;top:0;left:0;z-index:1040;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}#bookly-tbs .bookly-popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}#bookly-tbs .bookly-popover .arrow::after,#bookly-tbs .bookly-popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}#bookly-tbs .bs-popover-auto[x-placement^=top],#bookly-tbs .bs-popover-top{margin-bottom:.5rem}#bookly-tbs .bs-popover-auto[x-placement^=top]>.arrow,#bookly-tbs .bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}#bookly-tbs .bs-popover-auto[x-placement^=top]>.arrow::before,#bookly-tbs .bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}#bookly-tbs .bs-popover-auto[x-placement^=top]>.arrow::after,#bookly-tbs .bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}#bookly-tbs .bs-popover-auto[x-placement^=right],#bookly-tbs .bs-popover-right{margin-left:.5rem}#bookly-tbs .bs-popover-auto[x-placement^=right]>.arrow,#bookly-tbs .bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}#bookly-tbs .bs-popover-auto[x-placement^=right]>.arrow::before,#bookly-tbs .bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}#bookly-tbs .bs-popover-auto[x-placement^=right]>.arrow::after,#bookly-tbs .bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}#bookly-tbs .bs-popover-auto[x-placement^=bottom],#bookly-tbs .bs-popover-bottom{margin-top:.5rem}#bookly-tbs .bs-popover-auto[x-placement^=bottom]>.arrow,#bookly-tbs .bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}#bookly-tbs .bs-popover-auto[x-placement^=bottom]>.arrow::before,#bookly-tbs .bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}#bookly-tbs .bs-popover-auto[x-placement^=bottom]>.arrow::after,#bookly-tbs .bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}#bookly-tbs .bs-popover-auto[x-placement^=bottom] .popover-header::before,#bookly-tbs .bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}#bookly-tbs .bs-popover-auto[x-placement^=left],#bookly-tbs .bs-popover-left{margin-right:.5rem}#bookly-tbs .bs-popover-auto[x-placement^=left]>.arrow,#bookly-tbs .bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}#bookly-tbs .bs-popover-auto[x-placement^=left]>.arrow::before,#bookly-tbs .bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}#bookly-tbs .bs-popover-auto[x-placement^=left]>.arrow::after,#bookly-tbs .bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}#bookly-tbs .popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}#bookly-tbs .popover-header:empty{display:none}#bookly-tbs .popover-body{padding:.5rem .75rem;color:#212529}#bookly-tbs .carousel{position:relative}#bookly-tbs .carousel.pointer-event{touch-action:pan-y}#bookly-tbs .carousel-inner{position:relative;width:100%;overflow:hidden}#bookly-tbs .carousel-inner::after{display:block;clear:both;content:""}#bookly-tbs .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){#bookly-tbs .carousel-item{-webkit-transition:none;transition:none}}#bookly-tbs .carousel-item-next,#bookly-tbs .carousel-item-prev,#bookly-tbs .carousel-item.active{display:block}#bookly-tbs .active.carousel-item-right,#bookly-tbs .carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}#bookly-tbs .active.carousel-item-left,#bookly-tbs .carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}#bookly-tbs .carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}#bookly-tbs .carousel-fade .carousel-item-next.carousel-item-left,#bookly-tbs .carousel-fade .carousel-item-prev.carousel-item-right,#bookly-tbs .carousel-fade .carousel-item.active{z-index:1;opacity:1}#bookly-tbs .carousel-fade .active.carousel-item-left,#bookly-tbs .carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){#bookly-tbs .carousel-fade .active.carousel-item-left,#bookly-tbs .carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}#bookly-tbs .carousel-control-next,#bookly-tbs .carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){#bookly-tbs .carousel-control-next,#bookly-tbs .carousel-control-prev{-webkit-transition:none;transition:none}}#bookly-tbs .carousel-control-next:focus,#bookly-tbs .carousel-control-next:hover,#bookly-tbs .carousel-control-prev:focus,#bookly-tbs .carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}#bookly-tbs .carousel-control-prev{left:0}#bookly-tbs .carousel-control-next{right:0}#bookly-tbs .carousel-control-next-icon,#bookly-tbs .carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}#bookly-tbs .carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}#bookly-tbs .carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}#bookly-tbs .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}#bookly-tbs .carousel-indicators li{box-sizing:content-box;-webkit-box-flex:0;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){#bookly-tbs .carousel-indicators li{-webkit-transition:none;transition:none}}#bookly-tbs .carousel-indicators .active{opacity:1}#bookly-tbs .carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}#bookly-tbs .spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}#bookly-tbs .spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}#bookly-tbs .spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}#bookly-tbs .spinner-grow-sm{width:1rem;height:1rem}#bookly-tbs .align-baseline{vertical-align:baseline!important}#bookly-tbs .align-top{vertical-align:top!important}#bookly-tbs .align-middle{vertical-align:middle!important}#bookly-tbs .align-bottom{vertical-align:bottom!important}#bookly-tbs .align-text-bottom{vertical-align:text-bottom!important}#bookly-tbs .align-text-top{vertical-align:text-top!important}#bookly-tbs .bg-primary{background-color:#007bff!important}#bookly-tbs a.bg-primary:focus,#bookly-tbs a.bg-primary:hover,#bookly-tbs button.bg-primary:focus,#bookly-tbs button.bg-primary:hover{background-color:#0062cc!important}#bookly-tbs .bg-secondary{background-color:#6c757d!important}#bookly-tbs a.bg-secondary:focus,#bookly-tbs a.bg-secondary:hover,#bookly-tbs button.bg-secondary:focus,#bookly-tbs button.bg-secondary:hover{background-color:#545b62!important}#bookly-tbs .bg-success{background-color:#28a745!important}#bookly-tbs a.bg-success:focus,#bookly-tbs a.bg-success:hover,#bookly-tbs button.bg-success:focus,#bookly-tbs button.bg-success:hover{background-color:#1e7e34!important}#bookly-tbs .bg-info{background-color:#17a2b8!important}#bookly-tbs a.bg-info:focus,#bookly-tbs a.bg-info:hover,#bookly-tbs button.bg-info:focus,#bookly-tbs button.bg-info:hover{background-color:#117a8b!important}#bookly-tbs .bg-warning{background-color:#ffc107!important}#bookly-tbs a.bg-warning:focus,#bookly-tbs a.bg-warning:hover,#bookly-tbs button.bg-warning:focus,#bookly-tbs button.bg-warning:hover{background-color:#d39e00!important}#bookly-tbs .bg-danger{background-color:#dc3545!important}#bookly-tbs a.bg-danger:focus,#bookly-tbs a.bg-danger:hover,#bookly-tbs button.bg-danger:focus,#bookly-tbs button.bg-danger:hover{background-color:#bd2130!important}#bookly-tbs .bg-light{background-color:#f8f9fa!important}#bookly-tbs a.bg-light:focus,#bookly-tbs a.bg-light:hover,#bookly-tbs button.bg-light:focus,#bookly-tbs button.bg-light:hover{background-color:#dae0e5!important}#bookly-tbs .bg-dark{background-color:#343a40!important}#bookly-tbs a.bg-dark:focus,#bookly-tbs a.bg-dark:hover,#bookly-tbs button.bg-dark:focus,#bookly-tbs button.bg-dark:hover{background-color:#1d2124!important}#bookly-tbs .bg-white{background-color:#fff!important}#bookly-tbs .bg-transparent{background-color:transparent!important}#bookly-tbs .border{border:1px solid #dee2e6!important}#bookly-tbs .border-top{border-top:1px solid #dee2e6!important}#bookly-tbs .border-right{border-right:1px solid #dee2e6!important}#bookly-tbs .border-bottom{border-bottom:1px solid #dee2e6!important}#bookly-tbs .border-left{border-left:1px solid #dee2e6!important}#bookly-tbs .border-0{border:0!important}#bookly-tbs .border-top-0{border-top:0!important}#bookly-tbs .border-right-0{border-right:0!important}#bookly-tbs .border-bottom-0{border-bottom:0!important}#bookly-tbs .border-left-0{border-left:0!important}#bookly-tbs .border-primary{border-color:#007bff!important}#bookly-tbs .border-secondary{border-color:#6c757d!important}#bookly-tbs .border-success{border-color:#28a745!important}#bookly-tbs .border-info{border-color:#17a2b8!important}#bookly-tbs .border-warning{border-color:#ffc107!important}#bookly-tbs .border-danger{border-color:#dc3545!important}#bookly-tbs .border-light{border-color:#f8f9fa!important}#bookly-tbs .border-dark{border-color:#343a40!important}#bookly-tbs .border-white{border-color:#fff!important}#bookly-tbs .rounded-sm{border-radius:.2rem!important}#bookly-tbs .rounded{border-radius:.25rem!important}#bookly-tbs .rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}#bookly-tbs .rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}#bookly-tbs .rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}#bookly-tbs .rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}#bookly-tbs .rounded-lg{border-radius:.3rem!important}#bookly-tbs .rounded-circle{border-radius:50%!important}#bookly-tbs .rounded-pill{border-radius:50rem!important}#bookly-tbs .rounded-0{border-radius:0!important}#bookly-tbs .clearfix::after{display:block;clear:both;content:""}#bookly-tbs .d-none{display:none!important}#bookly-tbs .d-inline{display:inline!important}#bookly-tbs .d-inline-block{display:inline-block!important}#bookly-tbs .d-block{display:block!important}#bookly-tbs .d-table{display:table!important}#bookly-tbs .d-table-row{display:table-row!important}#bookly-tbs .d-table-cell{display:table-cell!important}#bookly-tbs .d-flex{display:-webkit-box!important;display:flex!important}#bookly-tbs .d-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}@media (min-width:576px){#bookly-tbs .d-sm-none{display:none!important}#bookly-tbs .d-sm-inline{display:inline!important}#bookly-tbs .d-sm-inline-block{display:inline-block!important}#bookly-tbs .d-sm-block{display:block!important}#bookly-tbs .d-sm-table{display:table!important}#bookly-tbs .d-sm-table-row{display:table-row!important}#bookly-tbs .d-sm-table-cell{display:table-cell!important}#bookly-tbs .d-sm-flex{display:-webkit-box!important;display:flex!important}#bookly-tbs .d-sm-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:768px){#bookly-tbs .d-md-none{display:none!important}#bookly-tbs .d-md-inline{display:inline!important}#bookly-tbs .d-md-inline-block{display:inline-block!important}#bookly-tbs .d-md-block{display:block!important}#bookly-tbs .d-md-table{display:table!important}#bookly-tbs .d-md-table-row{display:table-row!important}#bookly-tbs .d-md-table-cell{display:table-cell!important}#bookly-tbs .d-md-flex{display:-webkit-box!important;display:flex!important}#bookly-tbs .d-md-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:992px){#bookly-tbs .d-lg-none{display:none!important}#bookly-tbs .d-lg-inline{display:inline!important}#bookly-tbs .d-lg-inline-block{display:inline-block!important}#bookly-tbs .d-lg-block{display:block!important}#bookly-tbs .d-lg-table{display:table!important}#bookly-tbs .d-lg-table-row{display:table-row!important}#bookly-tbs .d-lg-table-cell{display:table-cell!important}#bookly-tbs .d-lg-flex{display:-webkit-box!important;display:flex!important}#bookly-tbs .d-lg-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media (min-width:1200px){#bookly-tbs .d-xl-none{display:none!important}#bookly-tbs .d-xl-inline{display:inline!important}#bookly-tbs .d-xl-inline-block{display:inline-block!important}#bookly-tbs .d-xl-block{display:block!important}#bookly-tbs .d-xl-table{display:table!important}#bookly-tbs .d-xl-table-row{display:table-row!important}#bookly-tbs .d-xl-table-cell{display:table-cell!important}#bookly-tbs .d-xl-flex{display:-webkit-box!important;display:flex!important}#bookly-tbs .d-xl-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}@media print{#bookly-tbs .d-print-none{display:none!important}#bookly-tbs .d-print-inline{display:inline!important}#bookly-tbs .d-print-inline-block{display:inline-block!important}#bookly-tbs .d-print-block{display:block!important}#bookly-tbs .d-print-table{display:table!important}#bookly-tbs .d-print-table-row{display:table-row!important}#bookly-tbs .d-print-table-cell{display:table-cell!important}#bookly-tbs .d-print-flex{display:-webkit-box!important;display:flex!important}#bookly-tbs .d-print-inline-flex{display:-webkit-inline-box!important;display:inline-flex!important}}#bookly-tbs .embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}#bookly-tbs .embed-responsive::before{display:block;content:""}#bookly-tbs .embed-responsive .embed-responsive-item,#bookly-tbs .embed-responsive embed,#bookly-tbs .embed-responsive iframe,#bookly-tbs .embed-responsive object,#bookly-tbs .embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}#bookly-tbs .embed-responsive-21by9::before{padding-top:42.857143%}#bookly-tbs .embed-responsive-16by9::before{padding-top:56.25%}#bookly-tbs .embed-responsive-4by3::before{padding-top:75%}#bookly-tbs .embed-responsive-1by1::before{padding-top:100%}#bookly-tbs .flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;flex-direction:row!important}#bookly-tbs .flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;flex-direction:column!important}#bookly-tbs .flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}#bookly-tbs .flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}#bookly-tbs .flex-wrap{flex-wrap:wrap!important}#bookly-tbs .flex-nowrap{flex-wrap:nowrap!important}#bookly-tbs .flex-wrap-reverse{flex-wrap:wrap-reverse!important}#bookly-tbs .flex-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}#bookly-tbs .flex-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}#bookly-tbs .flex-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}#bookly-tbs .flex-shrink-0{flex-shrink:0!important}#bookly-tbs .flex-shrink-1{flex-shrink:1!important}#bookly-tbs .justify-content-start{-webkit-box-pack:start!important;justify-content:flex-start!important}#bookly-tbs .justify-content-end{-webkit-box-pack:end!important;justify-content:flex-end!important}#bookly-tbs .justify-content-center{-webkit-box-pack:center!important;justify-content:center!important}#bookly-tbs .justify-content-between{-webkit-box-pack:justify!important;justify-content:space-between!important}#bookly-tbs .justify-content-around{justify-content:space-around!important}#bookly-tbs .align-items-start{-webkit-box-align:start!important;align-items:flex-start!important}#bookly-tbs .align-items-end{-webkit-box-align:end!important;align-items:flex-end!important}#bookly-tbs .align-items-center{-webkit-box-align:center!important;align-items:center!important}#bookly-tbs .align-items-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}#bookly-tbs .align-items-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}#bookly-tbs .align-content-start{align-content:flex-start!important}#bookly-tbs .align-content-end{align-content:flex-end!important}#bookly-tbs .align-content-center{align-content:center!important}#bookly-tbs .align-content-between{align-content:space-between!important}#bookly-tbs .align-content-around{align-content:space-around!important}#bookly-tbs .align-content-stretch{align-content:stretch!important}#bookly-tbs .align-self-auto{align-self:auto!important}#bookly-tbs .align-self-start{align-self:flex-start!important}#bookly-tbs .align-self-end{align-self:flex-end!important}#bookly-tbs .align-self-center{align-self:center!important}#bookly-tbs .align-self-baseline{align-self:baseline!important}#bookly-tbs .align-self-stretch{align-self:stretch!important}@media (min-width:576px){#bookly-tbs .flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;flex-direction:row!important}#bookly-tbs .flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;flex-direction:column!important}#bookly-tbs .flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}#bookly-tbs .flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}#bookly-tbs .flex-sm-wrap{flex-wrap:wrap!important}#bookly-tbs .flex-sm-nowrap{flex-wrap:nowrap!important}#bookly-tbs .flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}#bookly-tbs .flex-sm-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}#bookly-tbs .flex-sm-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}#bookly-tbs .flex-sm-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}#bookly-tbs .flex-sm-shrink-0{flex-shrink:0!important}#bookly-tbs .flex-sm-shrink-1{flex-shrink:1!important}#bookly-tbs .justify-content-sm-start{-webkit-box-pack:start!important;justify-content:flex-start!important}#bookly-tbs .justify-content-sm-end{-webkit-box-pack:end!important;justify-content:flex-end!important}#bookly-tbs .justify-content-sm-center{-webkit-box-pack:center!important;justify-content:center!important}#bookly-tbs .justify-content-sm-between{-webkit-box-pack:justify!important;justify-content:space-between!important}#bookly-tbs .justify-content-sm-around{justify-content:space-around!important}#bookly-tbs .align-items-sm-start{-webkit-box-align:start!important;align-items:flex-start!important}#bookly-tbs .align-items-sm-end{-webkit-box-align:end!important;align-items:flex-end!important}#bookly-tbs .align-items-sm-center{-webkit-box-align:center!important;align-items:center!important}#bookly-tbs .align-items-sm-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}#bookly-tbs .align-items-sm-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}#bookly-tbs .align-content-sm-start{align-content:flex-start!important}#bookly-tbs .align-content-sm-end{align-content:flex-end!important}#bookly-tbs .align-content-sm-center{align-content:center!important}#bookly-tbs .align-content-sm-between{align-content:space-between!important}#bookly-tbs .align-content-sm-around{align-content:space-around!important}#bookly-tbs .align-content-sm-stretch{align-content:stretch!important}#bookly-tbs .align-self-sm-auto{align-self:auto!important}#bookly-tbs .align-self-sm-start{align-self:flex-start!important}#bookly-tbs .align-self-sm-end{align-self:flex-end!important}#bookly-tbs .align-self-sm-center{align-self:center!important}#bookly-tbs .align-self-sm-baseline{align-self:baseline!important}#bookly-tbs .align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){#bookly-tbs .flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;flex-direction:row!important}#bookly-tbs .flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;flex-direction:column!important}#bookly-tbs .flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}#bookly-tbs .flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}#bookly-tbs .flex-md-wrap{flex-wrap:wrap!important}#bookly-tbs .flex-md-nowrap{flex-wrap:nowrap!important}#bookly-tbs .flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}#bookly-tbs .flex-md-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}#bookly-tbs .flex-md-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}#bookly-tbs .flex-md-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}#bookly-tbs .flex-md-shrink-0{flex-shrink:0!important}#bookly-tbs .flex-md-shrink-1{flex-shrink:1!important}#bookly-tbs .justify-content-md-start{-webkit-box-pack:start!important;justify-content:flex-start!important}#bookly-tbs .justify-content-md-end{-webkit-box-pack:end!important;justify-content:flex-end!important}#bookly-tbs .justify-content-md-center{-webkit-box-pack:center!important;justify-content:center!important}#bookly-tbs .justify-content-md-between{-webkit-box-pack:justify!important;justify-content:space-between!important}#bookly-tbs .justify-content-md-around{justify-content:space-around!important}#bookly-tbs .align-items-md-start{-webkit-box-align:start!important;align-items:flex-start!important}#bookly-tbs .align-items-md-end{-webkit-box-align:end!important;align-items:flex-end!important}#bookly-tbs .align-items-md-center{-webkit-box-align:center!important;align-items:center!important}#bookly-tbs .align-items-md-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}#bookly-tbs .align-items-md-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}#bookly-tbs .align-content-md-start{align-content:flex-start!important}#bookly-tbs .align-content-md-end{align-content:flex-end!important}#bookly-tbs .align-content-md-center{align-content:center!important}#bookly-tbs .align-content-md-between{align-content:space-between!important}#bookly-tbs .align-content-md-around{align-content:space-around!important}#bookly-tbs .align-content-md-stretch{align-content:stretch!important}#bookly-tbs .align-self-md-auto{align-self:auto!important}#bookly-tbs .align-self-md-start{align-self:flex-start!important}#bookly-tbs .align-self-md-end{align-self:flex-end!important}#bookly-tbs .align-self-md-center{align-self:center!important}#bookly-tbs .align-self-md-baseline{align-self:baseline!important}#bookly-tbs .align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){#bookly-tbs .flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;flex-direction:row!important}#bookly-tbs .flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;flex-direction:column!important}#bookly-tbs .flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}#bookly-tbs .flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}#bookly-tbs .flex-lg-wrap{flex-wrap:wrap!important}#bookly-tbs .flex-lg-nowrap{flex-wrap:nowrap!important}#bookly-tbs .flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}#bookly-tbs .flex-lg-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}#bookly-tbs .flex-lg-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}#bookly-tbs .flex-lg-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}#bookly-tbs .flex-lg-shrink-0{flex-shrink:0!important}#bookly-tbs .flex-lg-shrink-1{flex-shrink:1!important}#bookly-tbs .justify-content-lg-start{-webkit-box-pack:start!important;justify-content:flex-start!important}#bookly-tbs .justify-content-lg-end{-webkit-box-pack:end!important;justify-content:flex-end!important}#bookly-tbs .justify-content-lg-center{-webkit-box-pack:center!important;justify-content:center!important}#bookly-tbs .justify-content-lg-between{-webkit-box-pack:justify!important;justify-content:space-between!important}#bookly-tbs .justify-content-lg-around{justify-content:space-around!important}#bookly-tbs .align-items-lg-start{-webkit-box-align:start!important;align-items:flex-start!important}#bookly-tbs .align-items-lg-end{-webkit-box-align:end!important;align-items:flex-end!important}#bookly-tbs .align-items-lg-center{-webkit-box-align:center!important;align-items:center!important}#bookly-tbs .align-items-lg-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}#bookly-tbs .align-items-lg-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}#bookly-tbs .align-content-lg-start{align-content:flex-start!important}#bookly-tbs .align-content-lg-end{align-content:flex-end!important}#bookly-tbs .align-content-lg-center{align-content:center!important}#bookly-tbs .align-content-lg-between{align-content:space-between!important}#bookly-tbs .align-content-lg-around{align-content:space-around!important}#bookly-tbs .align-content-lg-stretch{align-content:stretch!important}#bookly-tbs .align-self-lg-auto{align-self:auto!important}#bookly-tbs .align-self-lg-start{align-self:flex-start!important}#bookly-tbs .align-self-lg-end{align-self:flex-end!important}#bookly-tbs .align-self-lg-center{align-self:center!important}#bookly-tbs .align-self-lg-baseline{align-self:baseline!important}#bookly-tbs .align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){#bookly-tbs .flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;flex-direction:row!important}#bookly-tbs .flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;flex-direction:column!important}#bookly-tbs .flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;flex-direction:row-reverse!important}#bookly-tbs .flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;flex-direction:column-reverse!important}#bookly-tbs .flex-xl-wrap{flex-wrap:wrap!important}#bookly-tbs .flex-xl-nowrap{flex-wrap:nowrap!important}#bookly-tbs .flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}#bookly-tbs .flex-xl-fill{-webkit-box-flex:1!important;flex:1 1 auto!important}#bookly-tbs .flex-xl-grow-0{-webkit-box-flex:0!important;flex-grow:0!important}#bookly-tbs .flex-xl-grow-1{-webkit-box-flex:1!important;flex-grow:1!important}#bookly-tbs .flex-xl-shrink-0{flex-shrink:0!important}#bookly-tbs .flex-xl-shrink-1{flex-shrink:1!important}#bookly-tbs .justify-content-xl-start{-webkit-box-pack:start!important;justify-content:flex-start!important}#bookly-tbs .justify-content-xl-end{-webkit-box-pack:end!important;justify-content:flex-end!important}#bookly-tbs .justify-content-xl-center{-webkit-box-pack:center!important;justify-content:center!important}#bookly-tbs .justify-content-xl-between{-webkit-box-pack:justify!important;justify-content:space-between!important}#bookly-tbs .justify-content-xl-around{justify-content:space-around!important}#bookly-tbs .align-items-xl-start{-webkit-box-align:start!important;align-items:flex-start!important}#bookly-tbs .align-items-xl-end{-webkit-box-align:end!important;align-items:flex-end!important}#bookly-tbs .align-items-xl-center{-webkit-box-align:center!important;align-items:center!important}#bookly-tbs .align-items-xl-baseline{-webkit-box-align:baseline!important;align-items:baseline!important}#bookly-tbs .align-items-xl-stretch{-webkit-box-align:stretch!important;align-items:stretch!important}#bookly-tbs .align-content-xl-start{align-content:flex-start!important}#bookly-tbs .align-content-xl-end{align-content:flex-end!important}#bookly-tbs .align-content-xl-center{align-content:center!important}#bookly-tbs .align-content-xl-between{align-content:space-between!important}#bookly-tbs .align-content-xl-around{align-content:space-around!important}#bookly-tbs .align-content-xl-stretch{align-content:stretch!important}#bookly-tbs .align-self-xl-auto{align-self:auto!important}#bookly-tbs .align-self-xl-start{align-self:flex-start!important}#bookly-tbs .align-self-xl-end{align-self:flex-end!important}#bookly-tbs .align-self-xl-center{align-self:center!important}#bookly-tbs .align-self-xl-baseline{align-self:baseline!important}#bookly-tbs .align-self-xl-stretch{align-self:stretch!important}}#bookly-tbs .float-left{float:left!important}#bookly-tbs .float-right{float:right!important}#bookly-tbs .float-none{float:none!important}@media (min-width:576px){#bookly-tbs .float-sm-left{float:left!important}#bookly-tbs .float-sm-right{float:right!important}#bookly-tbs .float-sm-none{float:none!important}}@media (min-width:768px){#bookly-tbs .float-md-left{float:left!important}#bookly-tbs .float-md-right{float:right!important}#bookly-tbs .float-md-none{float:none!important}}@media (min-width:992px){#bookly-tbs .float-lg-left{float:left!important}#bookly-tbs .float-lg-right{float:right!important}#bookly-tbs .float-lg-none{float:none!important}}@media (min-width:1200px){#bookly-tbs .float-xl-left{float:left!important}#bookly-tbs .float-xl-right{float:right!important}#bookly-tbs .float-xl-none{float:none!important}}#bookly-tbs .overflow-auto{overflow:auto!important}#bookly-tbs .overflow-hidden{overflow:hidden!important}#bookly-tbs .position-static{position:static!important}#bookly-tbs .position-relative{position:relative!important}#bookly-tbs .position-absolute{position:absolute!important}#bookly-tbs .position-fixed{position:fixed!important}#bookly-tbs .position-sticky{position:-webkit-sticky!important;position:sticky!important}#bookly-tbs .fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}#bookly-tbs .fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){#bookly-tbs .sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}#bookly-tbs .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#bookly-tbs .sr-only-focusable:active,#bookly-tbs .sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}#bookly-tbs .shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}#bookly-tbs .shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}#bookly-tbs .shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}#bookly-tbs .shadow-none{box-shadow:none!important}#bookly-tbs .w-25{width:25%!important}#bookly-tbs .w-50{width:50%!important}#bookly-tbs .w-75{width:75%!important}#bookly-tbs .w-100{width:100%!important}#bookly-tbs .w-auto{width:auto!important}#bookly-tbs .h-25{height:25%!important}#bookly-tbs .h-50{height:50%!important}#bookly-tbs .h-75{height:75%!important}#bookly-tbs .h-100{height:100%!important}#bookly-tbs .h-auto{height:auto!important}#bookly-tbs .mw-100{max-width:100%!important}#bookly-tbs .mh-100{max-height:100%!important}#bookly-tbs .min-vw-100{min-width:100vw!important}#bookly-tbs .min-vh-100{min-height:100vh!important}#bookly-tbs .vw-100{width:100vw!important}#bookly-tbs .vh-100{height:100vh!important}#bookly-tbs .stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}#bookly-tbs .m-0{margin:0!important}#bookly-tbs .mt-0,#bookly-tbs .my-0{margin-top:0!important}#bookly-tbs .mr-0,#bookly-tbs .mx-0{margin-right:0!important}#bookly-tbs .mb-0,#bookly-tbs .my-0{margin-bottom:0!important}#bookly-tbs .ml-0,#bookly-tbs .mx-0{margin-left:0!important}#bookly-tbs .m-1{margin:.25rem!important}#bookly-tbs .mt-1,#bookly-tbs .my-1{margin-top:.25rem!important}#bookly-tbs .mr-1,#bookly-tbs .mx-1{margin-right:.25rem!important}#bookly-tbs .mb-1,#bookly-tbs .my-1{margin-bottom:.25rem!important}#bookly-tbs .ml-1,#bookly-tbs .mx-1{margin-left:.25rem!important}#bookly-tbs .m-2{margin:.5rem!important}#bookly-tbs .mt-2,#bookly-tbs .my-2{margin-top:.5rem!important}#bookly-tbs .mr-2,#bookly-tbs .mx-2{margin-right:.5rem!important}#bookly-tbs .mb-2,#bookly-tbs .my-2{margin-bottom:.5rem!important}#bookly-tbs .ml-2,#bookly-tbs .mx-2{margin-left:.5rem!important}#bookly-tbs .m-3{margin:1rem!important}#bookly-tbs .mt-3,#bookly-tbs .my-3{margin-top:1rem!important}#bookly-tbs .mr-3,#bookly-tbs .mx-3{margin-right:1rem!important}#bookly-tbs .mb-3,#bookly-tbs .my-3{margin-bottom:1rem!important}#bookly-tbs .ml-3,#bookly-tbs .mx-3{margin-left:1rem!important}#bookly-tbs .m-4{margin:1.5rem!important}#bookly-tbs .mt-4,#bookly-tbs .my-4{margin-top:1.5rem!important}#bookly-tbs .mr-4,#bookly-tbs .mx-4{margin-right:1.5rem!important}#bookly-tbs .mb-4,#bookly-tbs .my-4{margin-bottom:1.5rem!important}#bookly-tbs .ml-4,#bookly-tbs .mx-4{margin-left:1.5rem!important}#bookly-tbs .m-5{margin:3rem!important}#bookly-tbs .mt-5,#bookly-tbs .my-5{margin-top:3rem!important}#bookly-tbs .mr-5,#bookly-tbs .mx-5{margin-right:3rem!important}#bookly-tbs .mb-5,#bookly-tbs .my-5{margin-bottom:3rem!important}#bookly-tbs .ml-5,#bookly-tbs .mx-5{margin-left:3rem!important}#bookly-tbs .p-0{padding:0!important}#bookly-tbs .pt-0,#bookly-tbs .py-0{padding-top:0!important}#bookly-tbs .pr-0,#bookly-tbs .px-0{padding-right:0!important}#bookly-tbs .pb-0,#bookly-tbs .py-0{padding-bottom:0!important}#bookly-tbs .pl-0,#bookly-tbs .px-0{padding-left:0!important}#bookly-tbs .p-1{padding:.25rem!important}#bookly-tbs .pt-1,#bookly-tbs .py-1{padding-top:.25rem!important}#bookly-tbs .pr-1,#bookly-tbs .px-1{padding-right:.25rem!important}#bookly-tbs .pb-1,#bookly-tbs .py-1{padding-bottom:.25rem!important}#bookly-tbs .pl-1,#bookly-tbs .px-1{padding-left:.25rem!important}#bookly-tbs .p-2{padding:.5rem!important}#bookly-tbs .pt-2,#bookly-tbs .py-2{padding-top:.5rem!important}#bookly-tbs .pr-2,#bookly-tbs .px-2{padding-right:.5rem!important}#bookly-tbs .pb-2,#bookly-tbs .py-2{padding-bottom:.5rem!important}#bookly-tbs .pl-2,#bookly-tbs .px-2{padding-left:.5rem!important}#bookly-tbs .p-3{padding:1rem!important}#bookly-tbs .pt-3,#bookly-tbs .py-3{padding-top:1rem!important}#bookly-tbs .pr-3,#bookly-tbs .px-3{padding-right:1rem!important}#bookly-tbs .pb-3,#bookly-tbs .py-3{padding-bottom:1rem!important}#bookly-tbs .pl-3,#bookly-tbs .px-3{padding-left:1rem!important}#bookly-tbs .p-4{padding:1.5rem!important}#bookly-tbs .pt-4,#bookly-tbs .py-4{padding-top:1.5rem!important}#bookly-tbs .pr-4,#bookly-tbs .px-4{padding-right:1.5rem!important}#bookly-tbs .pb-4,#bookly-tbs .py-4{padding-bottom:1.5rem!important}#bookly-tbs .pl-4,#bookly-tbs .px-4{padding-left:1.5rem!important}#bookly-tbs .p-5{padding:3rem!important}#bookly-tbs .pt-5,#bookly-tbs .py-5{padding-top:3rem!important}#bookly-tbs .pr-5,#bookly-tbs .px-5{padding-right:3rem!important}#bookly-tbs .pb-5,#bookly-tbs .py-5{padding-bottom:3rem!important}#bookly-tbs .pl-5,#bookly-tbs .px-5{padding-left:3rem!important}#bookly-tbs .m-n1{margin:-.25rem!important}#bookly-tbs .mt-n1,#bookly-tbs .my-n1{margin-top:-.25rem!important}#bookly-tbs .mr-n1,#bookly-tbs .mx-n1{margin-right:-.25rem!important}#bookly-tbs .mb-n1,#bookly-tbs .my-n1{margin-bottom:-.25rem!important}#bookly-tbs .ml-n1,#bookly-tbs .mx-n1{margin-left:-.25rem!important}#bookly-tbs .m-n2{margin:-.5rem!important}#bookly-tbs .mt-n2,#bookly-tbs .my-n2{margin-top:-.5rem!important}#bookly-tbs .mr-n2,#bookly-tbs .mx-n2{margin-right:-.5rem!important}#bookly-tbs .mb-n2,#bookly-tbs .my-n2{margin-bottom:-.5rem!important}#bookly-tbs .ml-n2,#bookly-tbs .mx-n2{margin-left:-.5rem!important}#bookly-tbs .m-n3{margin:-1rem!important}#bookly-tbs .mt-n3,#bookly-tbs .my-n3{margin-top:-1rem!important}#bookly-tbs .mr-n3,#bookly-tbs .mx-n3{margin-right:-1rem!important}#bookly-tbs .mb-n3,#bookly-tbs .my-n3{margin-bottom:-1rem!important}#bookly-tbs .ml-n3,#bookly-tbs .mx-n3{margin-left:-1rem!important}#bookly-tbs .m-n4{margin:-1.5rem!important}#bookly-tbs .mt-n4,#bookly-tbs .my-n4{margin-top:-1.5rem!important}#bookly-tbs .mr-n4,#bookly-tbs .mx-n4{margin-right:-1.5rem!important}#bookly-tbs .mb-n4,#bookly-tbs .my-n4{margin-bottom:-1.5rem!important}#bookly-tbs .ml-n4,#bookly-tbs .mx-n4{margin-left:-1.5rem!important}#bookly-tbs .m-n5{margin:-3rem!important}#bookly-tbs .mt-n5,#bookly-tbs .my-n5{margin-top:-3rem!important}#bookly-tbs .mr-n5,#bookly-tbs .mx-n5{margin-right:-3rem!important}#bookly-tbs .mb-n5,#bookly-tbs .my-n5{margin-bottom:-3rem!important}#bookly-tbs .ml-n5,#bookly-tbs .mx-n5{margin-left:-3rem!important}#bookly-tbs .m-auto{margin:auto!important}#bookly-tbs .mt-auto,#bookly-tbs .my-auto{margin-top:auto!important}#bookly-tbs .mr-auto,#bookly-tbs .mx-auto{margin-right:auto!important}#bookly-tbs .mb-auto,#bookly-tbs .my-auto{margin-bottom:auto!important}#bookly-tbs .ml-auto,#bookly-tbs .mx-auto{margin-left:auto!important}@media (min-width:576px){#bookly-tbs .m-sm-0{margin:0!important}#bookly-tbs .mt-sm-0,#bookly-tbs .my-sm-0{margin-top:0!important}#bookly-tbs .mr-sm-0,#bookly-tbs .mx-sm-0{margin-right:0!important}#bookly-tbs .mb-sm-0,#bookly-tbs .my-sm-0{margin-bottom:0!important}#bookly-tbs .ml-sm-0,#bookly-tbs .mx-sm-0{margin-left:0!important}#bookly-tbs .m-sm-1{margin:.25rem!important}#bookly-tbs .mt-sm-1,#bookly-tbs .my-sm-1{margin-top:.25rem!important}#bookly-tbs .mr-sm-1,#bookly-tbs .mx-sm-1{margin-right:.25rem!important}#bookly-tbs .mb-sm-1,#bookly-tbs .my-sm-1{margin-bottom:.25rem!important}#bookly-tbs .ml-sm-1,#bookly-tbs .mx-sm-1{margin-left:.25rem!important}#bookly-tbs .m-sm-2{margin:.5rem!important}#bookly-tbs .mt-sm-2,#bookly-tbs .my-sm-2{margin-top:.5rem!important}#bookly-tbs .mr-sm-2,#bookly-tbs .mx-sm-2{margin-right:.5rem!important}#bookly-tbs .mb-sm-2,#bookly-tbs .my-sm-2{margin-bottom:.5rem!important}#bookly-tbs .ml-sm-2,#bookly-tbs .mx-sm-2{margin-left:.5rem!important}#bookly-tbs .m-sm-3{margin:1rem!important}#bookly-tbs .mt-sm-3,#bookly-tbs .my-sm-3{margin-top:1rem!important}#bookly-tbs .mr-sm-3,#bookly-tbs .mx-sm-3{margin-right:1rem!important}#bookly-tbs .mb-sm-3,#bookly-tbs .my-sm-3{margin-bottom:1rem!important}#bookly-tbs .ml-sm-3,#bookly-tbs .mx-sm-3{margin-left:1rem!important}#bookly-tbs .m-sm-4{margin:1.5rem!important}#bookly-tbs .mt-sm-4,#bookly-tbs .my-sm-4{margin-top:1.5rem!important}#bookly-tbs .mr-sm-4,#bookly-tbs .mx-sm-4{margin-right:1.5rem!important}#bookly-tbs .mb-sm-4,#bookly-tbs .my-sm-4{margin-bottom:1.5rem!important}#bookly-tbs .ml-sm-4,#bookly-tbs .mx-sm-4{margin-left:1.5rem!important}#bookly-tbs .m-sm-5{margin:3rem!important}#bookly-tbs .mt-sm-5,#bookly-tbs .my-sm-5{margin-top:3rem!important}#bookly-tbs .mr-sm-5,#bookly-tbs .mx-sm-5{margin-right:3rem!important}#bookly-tbs .mb-sm-5,#bookly-tbs .my-sm-5{margin-bottom:3rem!important}#bookly-tbs .ml-sm-5,#bookly-tbs .mx-sm-5{margin-left:3rem!important}#bookly-tbs .p-sm-0{padding:0!important}#bookly-tbs .pt-sm-0,#bookly-tbs .py-sm-0{padding-top:0!important}#bookly-tbs .pr-sm-0,#bookly-tbs .px-sm-0{padding-right:0!important}#bookly-tbs .pb-sm-0,#bookly-tbs .py-sm-0{padding-bottom:0!important}#bookly-tbs .pl-sm-0,#bookly-tbs .px-sm-0{padding-left:0!important}#bookly-tbs .p-sm-1{padding:.25rem!important}#bookly-tbs .pt-sm-1,#bookly-tbs .py-sm-1{padding-top:.25rem!important}#bookly-tbs .pr-sm-1,#bookly-tbs .px-sm-1{padding-right:.25rem!important}#bookly-tbs .pb-sm-1,#bookly-tbs .py-sm-1{padding-bottom:.25rem!important}#bookly-tbs .pl-sm-1,#bookly-tbs .px-sm-1{padding-left:.25rem!important}#bookly-tbs .p-sm-2{padding:.5rem!important}#bookly-tbs .pt-sm-2,#bookly-tbs .py-sm-2{padding-top:.5rem!important}#bookly-tbs .pr-sm-2,#bookly-tbs .px-sm-2{padding-right:.5rem!important}#bookly-tbs .pb-sm-2,#bookly-tbs .py-sm-2{padding-bottom:.5rem!important}#bookly-tbs .pl-sm-2,#bookly-tbs .px-sm-2{padding-left:.5rem!important}#bookly-tbs .p-sm-3{padding:1rem!important}#bookly-tbs .pt-sm-3,#bookly-tbs .py-sm-3{padding-top:1rem!important}#bookly-tbs .pr-sm-3,#bookly-tbs .px-sm-3{padding-right:1rem!important}#bookly-tbs .pb-sm-3,#bookly-tbs .py-sm-3{padding-bottom:1rem!important}#bookly-tbs .pl-sm-3,#bookly-tbs .px-sm-3{padding-left:1rem!important}#bookly-tbs .p-sm-4{padding:1.5rem!important}#bookly-tbs .pt-sm-4,#bookly-tbs .py-sm-4{padding-top:1.5rem!important}#bookly-tbs .pr-sm-4,#bookly-tbs .px-sm-4{padding-right:1.5rem!important}#bookly-tbs .pb-sm-4,#bookly-tbs .py-sm-4{padding-bottom:1.5rem!important}#bookly-tbs .pl-sm-4,#bookly-tbs .px-sm-4{padding-left:1.5rem!important}#bookly-tbs .p-sm-5{padding:3rem!important}#bookly-tbs .pt-sm-5,#bookly-tbs .py-sm-5{padding-top:3rem!important}#bookly-tbs .pr-sm-5,#bookly-tbs .px-sm-5{padding-right:3rem!important}#bookly-tbs .pb-sm-5,#bookly-tbs .py-sm-5{padding-bottom:3rem!important}#bookly-tbs .pl-sm-5,#bookly-tbs .px-sm-5{padding-left:3rem!important}#bookly-tbs .m-sm-n1{margin:-.25rem!important}#bookly-tbs .mt-sm-n1,#bookly-tbs .my-sm-n1{margin-top:-.25rem!important}#bookly-tbs .mr-sm-n1,#bookly-tbs .mx-sm-n1{margin-right:-.25rem!important}#bookly-tbs .mb-sm-n1,#bookly-tbs .my-sm-n1{margin-bottom:-.25rem!important}#bookly-tbs .ml-sm-n1,#bookly-tbs .mx-sm-n1{margin-left:-.25rem!important}#bookly-tbs .m-sm-n2{margin:-.5rem!important}#bookly-tbs .mt-sm-n2,#bookly-tbs .my-sm-n2{margin-top:-.5rem!important}#bookly-tbs .mr-sm-n2,#bookly-tbs .mx-sm-n2{margin-right:-.5rem!important}#bookly-tbs .mb-sm-n2,#bookly-tbs .my-sm-n2{margin-bottom:-.5rem!important}#bookly-tbs .ml-sm-n2,#bookly-tbs .mx-sm-n2{margin-left:-.5rem!important}#bookly-tbs .m-sm-n3{margin:-1rem!important}#bookly-tbs .mt-sm-n3,#bookly-tbs .my-sm-n3{margin-top:-1rem!important}#bookly-tbs .mr-sm-n3,#bookly-tbs .mx-sm-n3{margin-right:-1rem!important}#bookly-tbs .mb-sm-n3,#bookly-tbs .my-sm-n3{margin-bottom:-1rem!important}#bookly-tbs .ml-sm-n3,#bookly-tbs .mx-sm-n3{margin-left:-1rem!important}#bookly-tbs .m-sm-n4{margin:-1.5rem!important}#bookly-tbs .mt-sm-n4,#bookly-tbs .my-sm-n4{margin-top:-1.5rem!important}#bookly-tbs .mr-sm-n4,#bookly-tbs .mx-sm-n4{margin-right:-1.5rem!important}#bookly-tbs .mb-sm-n4,#bookly-tbs .my-sm-n4{margin-bottom:-1.5rem!important}#bookly-tbs .ml-sm-n4,#bookly-tbs .mx-sm-n4{margin-left:-1.5rem!important}#bookly-tbs .m-sm-n5{margin:-3rem!important}#bookly-tbs .mt-sm-n5,#bookly-tbs .my-sm-n5{margin-top:-3rem!important}#bookly-tbs .mr-sm-n5,#bookly-tbs .mx-sm-n5{margin-right:-3rem!important}#bookly-tbs .mb-sm-n5,#bookly-tbs .my-sm-n5{margin-bottom:-3rem!important}#bookly-tbs .ml-sm-n5,#bookly-tbs .mx-sm-n5{margin-left:-3rem!important}#bookly-tbs .m-sm-auto{margin:auto!important}#bookly-tbs .mt-sm-auto,#bookly-tbs .my-sm-auto{margin-top:auto!important}#bookly-tbs .mr-sm-auto,#bookly-tbs .mx-sm-auto{margin-right:auto!important}#bookly-tbs .mb-sm-auto,#bookly-tbs .my-sm-auto{margin-bottom:auto!important}#bookly-tbs .ml-sm-auto,#bookly-tbs .mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){#bookly-tbs .m-md-0{margin:0!important}#bookly-tbs .mt-md-0,#bookly-tbs .my-md-0{margin-top:0!important}#bookly-tbs .mr-md-0,#bookly-tbs .mx-md-0{margin-right:0!important}#bookly-tbs .mb-md-0,#bookly-tbs .my-md-0{margin-bottom:0!important}#bookly-tbs .ml-md-0,#bookly-tbs .mx-md-0{margin-left:0!important}#bookly-tbs .m-md-1{margin:.25rem!important}#bookly-tbs .mt-md-1,#bookly-tbs .my-md-1{margin-top:.25rem!important}#bookly-tbs .mr-md-1,#bookly-tbs .mx-md-1{margin-right:.25rem!important}#bookly-tbs .mb-md-1,#bookly-tbs .my-md-1{margin-bottom:.25rem!important}#bookly-tbs .ml-md-1,#bookly-tbs .mx-md-1{margin-left:.25rem!important}#bookly-tbs .m-md-2{margin:.5rem!important}#bookly-tbs .mt-md-2,#bookly-tbs .my-md-2{margin-top:.5rem!important}#bookly-tbs .mr-md-2,#bookly-tbs .mx-md-2{margin-right:.5rem!important}#bookly-tbs .mb-md-2,#bookly-tbs .my-md-2{margin-bottom:.5rem!important}#bookly-tbs .ml-md-2,#bookly-tbs .mx-md-2{margin-left:.5rem!important}#bookly-tbs .m-md-3{margin:1rem!important}#bookly-tbs .mt-md-3,#bookly-tbs .my-md-3{margin-top:1rem!important}#bookly-tbs .mr-md-3,#bookly-tbs .mx-md-3{margin-right:1rem!important}#bookly-tbs .mb-md-3,#bookly-tbs .my-md-3{margin-bottom:1rem!important}#bookly-tbs .ml-md-3,#bookly-tbs .mx-md-3{margin-left:1rem!important}#bookly-tbs .m-md-4{margin:1.5rem!important}#bookly-tbs .mt-md-4,#bookly-tbs .my-md-4{margin-top:1.5rem!important}#bookly-tbs .mr-md-4,#bookly-tbs .mx-md-4{margin-right:1.5rem!important}#bookly-tbs .mb-md-4,#bookly-tbs .my-md-4{margin-bottom:1.5rem!important}#bookly-tbs .ml-md-4,#bookly-tbs .mx-md-4{margin-left:1.5rem!important}#bookly-tbs .m-md-5{margin:3rem!important}#bookly-tbs .mt-md-5,#bookly-tbs .my-md-5{margin-top:3rem!important}#bookly-tbs .mr-md-5,#bookly-tbs .mx-md-5{margin-right:3rem!important}#bookly-tbs .mb-md-5,#bookly-tbs .my-md-5{margin-bottom:3rem!important}#bookly-tbs .ml-md-5,#bookly-tbs .mx-md-5{margin-left:3rem!important}#bookly-tbs .p-md-0{padding:0!important}#bookly-tbs .pt-md-0,#bookly-tbs .py-md-0{padding-top:0!important}#bookly-tbs .pr-md-0,#bookly-tbs .px-md-0{padding-right:0!important}#bookly-tbs .pb-md-0,#bookly-tbs .py-md-0{padding-bottom:0!important}#bookly-tbs .pl-md-0,#bookly-tbs .px-md-0{padding-left:0!important}#bookly-tbs .p-md-1{padding:.25rem!important}#bookly-tbs .pt-md-1,#bookly-tbs .py-md-1{padding-top:.25rem!important}#bookly-tbs .pr-md-1,#bookly-tbs .px-md-1{padding-right:.25rem!important}#bookly-tbs .pb-md-1,#bookly-tbs .py-md-1{padding-bottom:.25rem!important}#bookly-tbs .pl-md-1,#bookly-tbs .px-md-1{padding-left:.25rem!important}#bookly-tbs .p-md-2{padding:.5rem!important}#bookly-tbs .pt-md-2,#bookly-tbs .py-md-2{padding-top:.5rem!important}#bookly-tbs .pr-md-2,#bookly-tbs .px-md-2{padding-right:.5rem!important}#bookly-tbs .pb-md-2,#bookly-tbs .py-md-2{padding-bottom:.5rem!important}#bookly-tbs .pl-md-2,#bookly-tbs .px-md-2{padding-left:.5rem!important}#bookly-tbs .p-md-3{padding:1rem!important}#bookly-tbs .pt-md-3,#bookly-tbs .py-md-3{padding-top:1rem!important}#bookly-tbs .pr-md-3,#bookly-tbs .px-md-3{padding-right:1rem!important}#bookly-tbs .pb-md-3,#bookly-tbs .py-md-3{padding-bottom:1rem!important}#bookly-tbs .pl-md-3,#bookly-tbs .px-md-3{padding-left:1rem!important}#bookly-tbs .p-md-4{padding:1.5rem!important}#bookly-tbs .pt-md-4,#bookly-tbs .py-md-4{padding-top:1.5rem!important}#bookly-tbs .pr-md-4,#bookly-tbs .px-md-4{padding-right:1.5rem!important}#bookly-tbs .pb-md-4,#bookly-tbs .py-md-4{padding-bottom:1.5rem!important}#bookly-tbs .pl-md-4,#bookly-tbs .px-md-4{padding-left:1.5rem!important}#bookly-tbs .p-md-5{padding:3rem!important}#bookly-tbs .pt-md-5,#bookly-tbs .py-md-5{padding-top:3rem!important}#bookly-tbs .pr-md-5,#bookly-tbs .px-md-5{padding-right:3rem!important}#bookly-tbs .pb-md-5,#bookly-tbs .py-md-5{padding-bottom:3rem!important}#bookly-tbs .pl-md-5,#bookly-tbs .px-md-5{padding-left:3rem!important}#bookly-tbs .m-md-n1{margin:-.25rem!important}#bookly-tbs .mt-md-n1,#bookly-tbs .my-md-n1{margin-top:-.25rem!important}#bookly-tbs .mr-md-n1,#bookly-tbs .mx-md-n1{margin-right:-.25rem!important}#bookly-tbs .mb-md-n1,#bookly-tbs .my-md-n1{margin-bottom:-.25rem!important}#bookly-tbs .ml-md-n1,#bookly-tbs .mx-md-n1{margin-left:-.25rem!important}#bookly-tbs .m-md-n2{margin:-.5rem!important}#bookly-tbs .mt-md-n2,#bookly-tbs .my-md-n2{margin-top:-.5rem!important}#bookly-tbs .mr-md-n2,#bookly-tbs .mx-md-n2{margin-right:-.5rem!important}#bookly-tbs .mb-md-n2,#bookly-tbs .my-md-n2{margin-bottom:-.5rem!important}#bookly-tbs .ml-md-n2,#bookly-tbs .mx-md-n2{margin-left:-.5rem!important}#bookly-tbs .m-md-n3{margin:-1rem!important}#bookly-tbs .mt-md-n3,#bookly-tbs .my-md-n3{margin-top:-1rem!important}#bookly-tbs .mr-md-n3,#bookly-tbs .mx-md-n3{margin-right:-1rem!important}#bookly-tbs .mb-md-n3,#bookly-tbs .my-md-n3{margin-bottom:-1rem!important}#bookly-tbs .ml-md-n3,#bookly-tbs .mx-md-n3{margin-left:-1rem!important}#bookly-tbs .m-md-n4{margin:-1.5rem!important}#bookly-tbs .mt-md-n4,#bookly-tbs .my-md-n4{margin-top:-1.5rem!important}#bookly-tbs .mr-md-n4,#bookly-tbs .mx-md-n4{margin-right:-1.5rem!important}#bookly-tbs .mb-md-n4,#bookly-tbs .my-md-n4{margin-bottom:-1.5rem!important}#bookly-tbs .ml-md-n4,#bookly-tbs .mx-md-n4{margin-left:-1.5rem!important}#bookly-tbs .m-md-n5{margin:-3rem!important}#bookly-tbs .mt-md-n5,#bookly-tbs .my-md-n5{margin-top:-3rem!important}#bookly-tbs .mr-md-n5,#bookly-tbs .mx-md-n5{margin-right:-3rem!important}#bookly-tbs .mb-md-n5,#bookly-tbs .my-md-n5{margin-bottom:-3rem!important}#bookly-tbs .ml-md-n5,#bookly-tbs .mx-md-n5{margin-left:-3rem!important}#bookly-tbs .m-md-auto{margin:auto!important}#bookly-tbs .mt-md-auto,#bookly-tbs .my-md-auto{margin-top:auto!important}#bookly-tbs .mr-md-auto,#bookly-tbs .mx-md-auto{margin-right:auto!important}#bookly-tbs .mb-md-auto,#bookly-tbs .my-md-auto{margin-bottom:auto!important}#bookly-tbs .ml-md-auto,#bookly-tbs .mx-md-auto{margin-left:auto!important}}@media (min-width:992px){#bookly-tbs .m-lg-0{margin:0!important}#bookly-tbs .mt-lg-0,#bookly-tbs .my-lg-0{margin-top:0!important}#bookly-tbs .mr-lg-0,#bookly-tbs .mx-lg-0{margin-right:0!important}#bookly-tbs .mb-lg-0,#bookly-tbs .my-lg-0{margin-bottom:0!important}#bookly-tbs .ml-lg-0,#bookly-tbs .mx-lg-0{margin-left:0!important}#bookly-tbs .m-lg-1{margin:.25rem!important}#bookly-tbs .mt-lg-1,#bookly-tbs .my-lg-1{margin-top:.25rem!important}#bookly-tbs .mr-lg-1,#bookly-tbs .mx-lg-1{margin-right:.25rem!important}#bookly-tbs .mb-lg-1,#bookly-tbs .my-lg-1{margin-bottom:.25rem!important}#bookly-tbs .ml-lg-1,#bookly-tbs .mx-lg-1{margin-left:.25rem!important}#bookly-tbs .m-lg-2{margin:.5rem!important}#bookly-tbs .mt-lg-2,#bookly-tbs .my-lg-2{margin-top:.5rem!important}#bookly-tbs .mr-lg-2,#bookly-tbs .mx-lg-2{margin-right:.5rem!important}#bookly-tbs .mb-lg-2,#bookly-tbs .my-lg-2{margin-bottom:.5rem!important}#bookly-tbs .ml-lg-2,#bookly-tbs .mx-lg-2{margin-left:.5rem!important}#bookly-tbs .m-lg-3{margin:1rem!important}#bookly-tbs .mt-lg-3,#bookly-tbs .my-lg-3{margin-top:1rem!important}#bookly-tbs .mr-lg-3,#bookly-tbs .mx-lg-3{margin-right:1rem!important}#bookly-tbs .mb-lg-3,#bookly-tbs .my-lg-3{margin-bottom:1rem!important}#bookly-tbs .ml-lg-3,#bookly-tbs .mx-lg-3{margin-left:1rem!important}#bookly-tbs .m-lg-4{margin:1.5rem!important}#bookly-tbs .mt-lg-4,#bookly-tbs .my-lg-4{margin-top:1.5rem!important}#bookly-tbs .mr-lg-4,#bookly-tbs .mx-lg-4{margin-right:1.5rem!important}#bookly-tbs .mb-lg-4,#bookly-tbs .my-lg-4{margin-bottom:1.5rem!important}#bookly-tbs .ml-lg-4,#bookly-tbs .mx-lg-4{margin-left:1.5rem!important}#bookly-tbs .m-lg-5{margin:3rem!important}#bookly-tbs .mt-lg-5,#bookly-tbs .my-lg-5{margin-top:3rem!important}#bookly-tbs .mr-lg-5,#bookly-tbs .mx-lg-5{margin-right:3rem!important}#bookly-tbs .mb-lg-5,#bookly-tbs .my-lg-5{margin-bottom:3rem!important}#bookly-tbs .ml-lg-5,#bookly-tbs .mx-lg-5{margin-left:3rem!important}#bookly-tbs .p-lg-0{padding:0!important}#bookly-tbs .pt-lg-0,#bookly-tbs .py-lg-0{padding-top:0!important}#bookly-tbs .pr-lg-0,#bookly-tbs .px-lg-0{padding-right:0!important}#bookly-tbs .pb-lg-0,#bookly-tbs .py-lg-0{padding-bottom:0!important}#bookly-tbs .pl-lg-0,#bookly-tbs .px-lg-0{padding-left:0!important}#bookly-tbs .p-lg-1{padding:.25rem!important}#bookly-tbs .pt-lg-1,#bookly-tbs .py-lg-1{padding-top:.25rem!important}#bookly-tbs .pr-lg-1,#bookly-tbs .px-lg-1{padding-right:.25rem!important}#bookly-tbs .pb-lg-1,#bookly-tbs .py-lg-1{padding-bottom:.25rem!important}#bookly-tbs .pl-lg-1,#bookly-tbs .px-lg-1{padding-left:.25rem!important}#bookly-tbs .p-lg-2{padding:.5rem!important}#bookly-tbs .pt-lg-2,#bookly-tbs .py-lg-2{padding-top:.5rem!important}#bookly-tbs .pr-lg-2,#bookly-tbs .px-lg-2{padding-right:.5rem!important}#bookly-tbs .pb-lg-2,#bookly-tbs .py-lg-2{padding-bottom:.5rem!important}#bookly-tbs .pl-lg-2,#bookly-tbs .px-lg-2{padding-left:.5rem!important}#bookly-tbs .p-lg-3{padding:1rem!important}#bookly-tbs .pt-lg-3,#bookly-tbs .py-lg-3{padding-top:1rem!important}#bookly-tbs .pr-lg-3,#bookly-tbs .px-lg-3{padding-right:1rem!important}#bookly-tbs .pb-lg-3,#bookly-tbs .py-lg-3{padding-bottom:1rem!important}#bookly-tbs .pl-lg-3,#bookly-tbs .px-lg-3{padding-left:1rem!important}#bookly-tbs .p-lg-4{padding:1.5rem!important}#bookly-tbs .pt-lg-4,#bookly-tbs .py-lg-4{padding-top:1.5rem!important}#bookly-tbs .pr-lg-4,#bookly-tbs .px-lg-4{padding-right:1.5rem!important}#bookly-tbs .pb-lg-4,#bookly-tbs .py-lg-4{padding-bottom:1.5rem!important}#bookly-tbs .pl-lg-4,#bookly-tbs .px-lg-4{padding-left:1.5rem!important}#bookly-tbs .p-lg-5{padding:3rem!important}#bookly-tbs .pt-lg-5,#bookly-tbs .py-lg-5{padding-top:3rem!important}#bookly-tbs .pr-lg-5,#bookly-tbs .px-lg-5{padding-right:3rem!important}#bookly-tbs .pb-lg-5,#bookly-tbs .py-lg-5{padding-bottom:3rem!important}#bookly-tbs .pl-lg-5,#bookly-tbs .px-lg-5{padding-left:3rem!important}#bookly-tbs .m-lg-n1{margin:-.25rem!important}#bookly-tbs .mt-lg-n1,#bookly-tbs .my-lg-n1{margin-top:-.25rem!important}#bookly-tbs .mr-lg-n1,#bookly-tbs .mx-lg-n1{margin-right:-.25rem!important}#bookly-tbs .mb-lg-n1,#bookly-tbs .my-lg-n1{margin-bottom:-.25rem!important}#bookly-tbs .ml-lg-n1,#bookly-tbs .mx-lg-n1{margin-left:-.25rem!important}#bookly-tbs .m-lg-n2{margin:-.5rem!important}#bookly-tbs .mt-lg-n2,#bookly-tbs .my-lg-n2{margin-top:-.5rem!important}#bookly-tbs .mr-lg-n2,#bookly-tbs .mx-lg-n2{margin-right:-.5rem!important}#bookly-tbs .mb-lg-n2,#bookly-tbs .my-lg-n2{margin-bottom:-.5rem!important}#bookly-tbs .ml-lg-n2,#bookly-tbs .mx-lg-n2{margin-left:-.5rem!important}#bookly-tbs .m-lg-n3{margin:-1rem!important}#bookly-tbs .mt-lg-n3,#bookly-tbs .my-lg-n3{margin-top:-1rem!important}#bookly-tbs .mr-lg-n3,#bookly-tbs .mx-lg-n3{margin-right:-1rem!important}#bookly-tbs .mb-lg-n3,#bookly-tbs .my-lg-n3{margin-bottom:-1rem!important}#bookly-tbs .ml-lg-n3,#bookly-tbs .mx-lg-n3{margin-left:-1rem!important}#bookly-tbs .m-lg-n4{margin:-1.5rem!important}#bookly-tbs .mt-lg-n4,#bookly-tbs .my-lg-n4{margin-top:-1.5rem!important}#bookly-tbs .mr-lg-n4,#bookly-tbs .mx-lg-n4{margin-right:-1.5rem!important}#bookly-tbs .mb-lg-n4,#bookly-tbs .my-lg-n4{margin-bottom:-1.5rem!important}#bookly-tbs .ml-lg-n4,#bookly-tbs .mx-lg-n4{margin-left:-1.5rem!important}#bookly-tbs .m-lg-n5{margin:-3rem!important}#bookly-tbs .mt-lg-n5,#bookly-tbs .my-lg-n5{margin-top:-3rem!important}#bookly-tbs .mr-lg-n5,#bookly-tbs .mx-lg-n5{margin-right:-3rem!important}#bookly-tbs .mb-lg-n5,#bookly-tbs .my-lg-n5{margin-bottom:-3rem!important}#bookly-tbs .ml-lg-n5,#bookly-tbs .mx-lg-n5{margin-left:-3rem!important}#bookly-tbs .m-lg-auto{margin:auto!important}#bookly-tbs .mt-lg-auto,#bookly-tbs .my-lg-auto{margin-top:auto!important}#bookly-tbs .mr-lg-auto,#bookly-tbs .mx-lg-auto{margin-right:auto!important}#bookly-tbs .mb-lg-auto,#bookly-tbs .my-lg-auto{margin-bottom:auto!important}#bookly-tbs .ml-lg-auto,#bookly-tbs .mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){#bookly-tbs .m-xl-0{margin:0!important}#bookly-tbs .mt-xl-0,#bookly-tbs .my-xl-0{margin-top:0!important}#bookly-tbs .mr-xl-0,#bookly-tbs .mx-xl-0{margin-right:0!important}#bookly-tbs .mb-xl-0,#bookly-tbs .my-xl-0{margin-bottom:0!important}#bookly-tbs .ml-xl-0,#bookly-tbs .mx-xl-0{margin-left:0!important}#bookly-tbs .m-xl-1{margin:.25rem!important}#bookly-tbs .mt-xl-1,#bookly-tbs .my-xl-1{margin-top:.25rem!important}#bookly-tbs .mr-xl-1,#bookly-tbs .mx-xl-1{margin-right:.25rem!important}#bookly-tbs .mb-xl-1,#bookly-tbs .my-xl-1{margin-bottom:.25rem!important}#bookly-tbs .ml-xl-1,#bookly-tbs .mx-xl-1{margin-left:.25rem!important}#bookly-tbs .m-xl-2{margin:.5rem!important}#bookly-tbs .mt-xl-2,#bookly-tbs .my-xl-2{margin-top:.5rem!important}#bookly-tbs .mr-xl-2,#bookly-tbs .mx-xl-2{margin-right:.5rem!important}#bookly-tbs .mb-xl-2,#bookly-tbs .my-xl-2{margin-bottom:.5rem!important}#bookly-tbs .ml-xl-2,#bookly-tbs .mx-xl-2{margin-left:.5rem!important}#bookly-tbs .m-xl-3{margin:1rem!important}#bookly-tbs .mt-xl-3,#bookly-tbs .my-xl-3{margin-top:1rem!important}#bookly-tbs .mr-xl-3,#bookly-tbs .mx-xl-3{margin-right:1rem!important}#bookly-tbs .mb-xl-3,#bookly-tbs .my-xl-3{margin-bottom:1rem!important}#bookly-tbs .ml-xl-3,#bookly-tbs .mx-xl-3{margin-left:1rem!important}#bookly-tbs .m-xl-4{margin:1.5rem!important}#bookly-tbs .mt-xl-4,#bookly-tbs .my-xl-4{margin-top:1.5rem!important}#bookly-tbs .mr-xl-4,#bookly-tbs .mx-xl-4{margin-right:1.5rem!important}#bookly-tbs .mb-xl-4,#bookly-tbs .my-xl-4{margin-bottom:1.5rem!important}#bookly-tbs .ml-xl-4,#bookly-tbs .mx-xl-4{margin-left:1.5rem!important}#bookly-tbs .m-xl-5{margin:3rem!important}#bookly-tbs .mt-xl-5,#bookly-tbs .my-xl-5{margin-top:3rem!important}#bookly-tbs .mr-xl-5,#bookly-tbs .mx-xl-5{margin-right:3rem!important}#bookly-tbs .mb-xl-5,#bookly-tbs .my-xl-5{margin-bottom:3rem!important}#bookly-tbs .ml-xl-5,#bookly-tbs .mx-xl-5{margin-left:3rem!important}#bookly-tbs .p-xl-0{padding:0!important}#bookly-tbs .pt-xl-0,#bookly-tbs .py-xl-0{padding-top:0!important}#bookly-tbs .pr-xl-0,#bookly-tbs .px-xl-0{padding-right:0!important}#bookly-tbs .pb-xl-0,#bookly-tbs .py-xl-0{padding-bottom:0!important}#bookly-tbs .pl-xl-0,#bookly-tbs .px-xl-0{padding-left:0!important}#bookly-tbs .p-xl-1{padding:.25rem!important}#bookly-tbs .pt-xl-1,#bookly-tbs .py-xl-1{padding-top:.25rem!important}#bookly-tbs .pr-xl-1,#bookly-tbs .px-xl-1{padding-right:.25rem!important}#bookly-tbs .pb-xl-1,#bookly-tbs .py-xl-1{padding-bottom:.25rem!important}#bookly-tbs .pl-xl-1,#bookly-tbs .px-xl-1{padding-left:.25rem!important}#bookly-tbs .p-xl-2{padding:.5rem!important}#bookly-tbs .pt-xl-2,#bookly-tbs .py-xl-2{padding-top:.5rem!important}#bookly-tbs .pr-xl-2,#bookly-tbs .px-xl-2{padding-right:.5rem!important}#bookly-tbs .pb-xl-2,#bookly-tbs .py-xl-2{padding-bottom:.5rem!important}#bookly-tbs .pl-xl-2,#bookly-tbs .px-xl-2{padding-left:.5rem!important}#bookly-tbs .p-xl-3{padding:1rem!important}#bookly-tbs .pt-xl-3,#bookly-tbs .py-xl-3{padding-top:1rem!important}#bookly-tbs .pr-xl-3,#bookly-tbs .px-xl-3{padding-right:1rem!important}#bookly-tbs .pb-xl-3,#bookly-tbs .py-xl-3{padding-bottom:1rem!important}#bookly-tbs .pl-xl-3,#bookly-tbs .px-xl-3{padding-left:1rem!important}#bookly-tbs .p-xl-4{padding:1.5rem!important}#bookly-tbs .pt-xl-4,#bookly-tbs .py-xl-4{padding-top:1.5rem!important}#bookly-tbs .pr-xl-4,#bookly-tbs .px-xl-4{padding-right:1.5rem!important}#bookly-tbs .pb-xl-4,#bookly-tbs .py-xl-4{padding-bottom:1.5rem!important}#bookly-tbs .pl-xl-4,#bookly-tbs .px-xl-4{padding-left:1.5rem!important}#bookly-tbs .p-xl-5{padding:3rem!important}#bookly-tbs .pt-xl-5,#bookly-tbs .py-xl-5{padding-top:3rem!important}#bookly-tbs .pr-xl-5,#bookly-tbs .px-xl-5{padding-right:3rem!important}#bookly-tbs .pb-xl-5,#bookly-tbs .py-xl-5{padding-bottom:3rem!important}#bookly-tbs .pl-xl-5,#bookly-tbs .px-xl-5{padding-left:3rem!important}#bookly-tbs .m-xl-n1{margin:-.25rem!important}#bookly-tbs .mt-xl-n1,#bookly-tbs .my-xl-n1{margin-top:-.25rem!important}#bookly-tbs .mr-xl-n1,#bookly-tbs .mx-xl-n1{margin-right:-.25rem!important}#bookly-tbs .mb-xl-n1,#bookly-tbs .my-xl-n1{margin-bottom:-.25rem!important}#bookly-tbs .ml-xl-n1,#bookly-tbs .mx-xl-n1{margin-left:-.25rem!important}#bookly-tbs .m-xl-n2{margin:-.5rem!important}#bookly-tbs .mt-xl-n2,#bookly-tbs .my-xl-n2{margin-top:-.5rem!important}#bookly-tbs .mr-xl-n2,#bookly-tbs .mx-xl-n2{margin-right:-.5rem!important}#bookly-tbs .mb-xl-n2,#bookly-tbs .my-xl-n2{margin-bottom:-.5rem!important}#bookly-tbs .ml-xl-n2,#bookly-tbs .mx-xl-n2{margin-left:-.5rem!important}#bookly-tbs .m-xl-n3{margin:-1rem!important}#bookly-tbs .mt-xl-n3,#bookly-tbs .my-xl-n3{margin-top:-1rem!important}#bookly-tbs .mr-xl-n3,#bookly-tbs .mx-xl-n3{margin-right:-1rem!important}#bookly-tbs .mb-xl-n3,#bookly-tbs .my-xl-n3{margin-bottom:-1rem!important}#bookly-tbs .ml-xl-n3,#bookly-tbs .mx-xl-n3{margin-left:-1rem!important}#bookly-tbs .m-xl-n4{margin:-1.5rem!important}#bookly-tbs .mt-xl-n4,#bookly-tbs .my-xl-n4{margin-top:-1.5rem!important}#bookly-tbs .mr-xl-n4,#bookly-tbs .mx-xl-n4{margin-right:-1.5rem!important}#bookly-tbs .mb-xl-n4,#bookly-tbs .my-xl-n4{margin-bottom:-1.5rem!important}#bookly-tbs .ml-xl-n4,#bookly-tbs .mx-xl-n4{margin-left:-1.5rem!important}#bookly-tbs .m-xl-n5{margin:-3rem!important}#bookly-tbs .mt-xl-n5,#bookly-tbs .my-xl-n5{margin-top:-3rem!important}#bookly-tbs .mr-xl-n5,#bookly-tbs .mx-xl-n5{margin-right:-3rem!important}#bookly-tbs .mb-xl-n5,#bookly-tbs .my-xl-n5{margin-bottom:-3rem!important}#bookly-tbs .ml-xl-n5,#bookly-tbs .mx-xl-n5{margin-left:-3rem!important}#bookly-tbs .m-xl-auto{margin:auto!important}#bookly-tbs .mt-xl-auto,#bookly-tbs .my-xl-auto{margin-top:auto!important}#bookly-tbs .mr-xl-auto,#bookly-tbs .mx-xl-auto{margin-right:auto!important}#bookly-tbs .mb-xl-auto,#bookly-tbs .my-xl-auto{margin-bottom:auto!important}#bookly-tbs .ml-xl-auto,#bookly-tbs .mx-xl-auto{margin-left:auto!important}}#bookly-tbs .text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}#bookly-tbs .text-justify{text-align:justify!important}#bookly-tbs .text-wrap{white-space:normal!important}#bookly-tbs .text-nowrap{white-space:nowrap!important}#bookly-tbs .text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .text-left{text-align:left!important}#bookly-tbs .text-right{text-align:right!important}#bookly-tbs .text-center{text-align:center!important}@media (min-width:576px){#bookly-tbs .text-sm-left{text-align:left!important}#bookly-tbs .text-sm-right{text-align:right!important}#bookly-tbs .text-sm-center{text-align:center!important}}@media (min-width:768px){#bookly-tbs .text-md-left{text-align:left!important}#bookly-tbs .text-md-right{text-align:right!important}#bookly-tbs .text-md-center{text-align:center!important}}@media (min-width:992px){#bookly-tbs .text-lg-left{text-align:left!important}#bookly-tbs .text-lg-right{text-align:right!important}#bookly-tbs .text-lg-center{text-align:center!important}}@media (min-width:1200px){#bookly-tbs .text-xl-left{text-align:left!important}#bookly-tbs .text-xl-right{text-align:right!important}#bookly-tbs .text-xl-center{text-align:center!important}}#bookly-tbs .text-lowercase{text-transform:lowercase!important}#bookly-tbs .text-uppercase{text-transform:uppercase!important}#bookly-tbs .text-capitalize{text-transform:capitalize!important}#bookly-tbs .font-weight-light{font-weight:300!important}#bookly-tbs .font-weight-lighter{font-weight:lighter!important}#bookly-tbs .font-weight-normal{font-weight:400!important}#bookly-tbs .font-weight-bold{font-weight:700!important}#bookly-tbs .font-weight-bolder{font-weight:bolder!important}#bookly-tbs .font-italic{font-style:italic!important}#bookly-tbs .text-white{color:#fff!important}#bookly-tbs .text-primary{color:#007bff!important}#bookly-tbs a.text-primary:focus,#bookly-tbs a.text-primary:hover{color:#0056b3!important}#bookly-tbs .text-secondary{color:#6c757d!important}#bookly-tbs a.text-secondary:focus,#bookly-tbs a.text-secondary:hover{color:#494f54!important}#bookly-tbs .text-success{color:#28a745!important}#bookly-tbs a.text-success:focus,#bookly-tbs a.text-success:hover{color:#19692c!important}#bookly-tbs .text-info{color:#17a2b8!important}#bookly-tbs a.text-info:focus,#bookly-tbs a.text-info:hover{color:#0f6674!important}#bookly-tbs .text-warning{color:#ffc107!important}#bookly-tbs a.text-warning:focus,#bookly-tbs a.text-warning:hover{color:#ba8b00!important}#bookly-tbs .text-danger{color:#dc3545!important}#bookly-tbs a.text-danger:focus,#bookly-tbs a.text-danger:hover{color:#a71d2a!important}#bookly-tbs .text-light{color:#f8f9fa!important}#bookly-tbs a.text-light:focus,#bookly-tbs a.text-light:hover{color:#cbd3da!important}#bookly-tbs .text-dark{color:#343a40!important}#bookly-tbs a.text-dark:focus,#bookly-tbs a.text-dark:hover{color:#121416!important}#bookly-tbs .text-body{color:#212529!important}#bookly-tbs .text-muted{color:#6c757d!important}#bookly-tbs .text-black-50{color:rgba(0,0,0,.5)!important}#bookly-tbs .text-white-50{color:rgba(255,255,255,.5)!important}#bookly-tbs .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}#bookly-tbs .text-decoration-none{text-decoration:none!important}#bookly-tbs .text-break{word-break:break-word!important;overflow-wrap:break-word!important}#bookly-tbs .text-reset{color:inherit!important}#bookly-tbs .visible{visibility:visible!important}#bookly-tbs .invisible{visibility:hidden!important}@media print{#bookly-tbs *,#bookly-tbs ::after,#bookly-tbs ::before{text-shadow:none!important;box-shadow:none!important}#bookly-tbs a:not(.btn){text-decoration:underline}#bookly-tbs abbr[title]::after{content:" (" attr(title) ")"}#bookly-tbs pre{white-space:pre-wrap!important}#bookly-tbs blockquote,#bookly-tbs pre{border:1px solid #adb5bd;page-break-inside:avoid}#bookly-tbs thead{display:table-header-group}#bookly-tbs img,#bookly-tbs tr{page-break-inside:avoid}#bookly-tbs h2,#bookly-tbs h3,#bookly-tbs p{orphans:3;widows:3}#bookly-tbs h2,#bookly-tbs h3{page-break-after:avoid}@page{size:a3}#bookly-tbs body{min-width:992px!important}#bookly-tbs .container{min-width:992px!important}#bookly-tbs .navbar{display:none}#bookly-tbs .badge{border:1px solid #000}#bookly-tbs .table{border-collapse:collapse!important}#bookly-tbs .table td,#bookly-tbs .table th{background-color:#fff!important}#bookly-tbs .table-bordered td,#bookly-tbs .table-bordered th{border:1px solid #dee2e6!important}#bookly-tbs .table-dark{color:inherit}#bookly-tbs .table-dark tbody+tbody,#bookly-tbs .table-dark td,#bookly-tbs .table-dark th,#bookly-tbs .table-dark thead th{border-color:#dee2e6}#bookly-tbs .table .thead-dark th{color:inherit;border-color:#dee2e6}}#bookly-tbs p{font-size:1rem}#bookly-tbs ol,#bookly-tbs ul{padding:0 0 0 40px}#bookly-tbs ol{margin-left:0}#bookly-tbs ul{list-style:disc}#bookly-tbs li{margin:0}#bookly-tbs a:focus{box-shadow:none}#bookly-tbs .form-control{max-width:none}#bookly-tbs .btn,#bookly-tbs .fc .fc-button{white-space:nowrap}#bookly-tbs .btn-default,#bookly-tbs .fc .fc-button{color:#212529;background-color:#fff;border-color:#ced4da}#bookly-tbs .btn-default:hover,#bookly-tbs .fc .fc-button:hover{color:#212529;background-color:#ececec;border-color:#b1bbc4}#bookly-tbs .btn-default.focus,#bookly-tbs .btn-default:focus,#bookly-tbs .fc .fc-button:focus,#bookly-tbs .fc .focus.fc-button{color:#212529;background-color:#ececec;border-color:#b1bbc4;box-shadow:0 0 0 .2rem rgba(180,186,191,.5)}#bookly-tbs .btn-default.disabled,#bookly-tbs .btn-default:disabled,#bookly-tbs .fc .disabled.fc-button,#bookly-tbs .fc .fc-button:disabled{color:#212529;background-color:#fff;border-color:#ced4da}#bookly-tbs .btn-default:not(:disabled):not(.disabled).active,#bookly-tbs .btn-default:not(:disabled):not(.disabled):active,#bookly-tbs .fc .fc-button:not(:disabled):not(.disabled).active,#bookly-tbs .fc .fc-button:not(:disabled):not(.disabled):active,.show>#bookly-tbs .btn-default.dropdown-toggle,.show>#bookly-tbs .fc .dropdown-toggle.fc-button{color:#212529;background-color:#e6e6e6;border-color:#aab4bf}#bookly-tbs .btn-default:not(:disabled):not(.disabled).active:focus,#bookly-tbs .btn-default:not(:disabled):not(.disabled):active:focus,#bookly-tbs .fc .fc-button:not(:disabled):not(.disabled).active:focus,#bookly-tbs .fc .fc-button:not(:disabled):not(.disabled):active:focus,.show>#bookly-tbs .btn-default.dropdown-toggle:focus,.show>#bookly-tbs .fc .dropdown-toggle.fc-button:focus{box-shadow:0 0 0 .2rem rgba(180,186,191,.5)}#bookly-tbs .bookly-fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){#bookly-tbs .bookly-fade{-webkit-transition:none;transition:none}}#bookly-tbs .bookly-fade:not(.show){opacity:0}#bookly-tbs .dropdown-item:focus,#bookly-tbs .dropdown-item:hover{background-color:#fff}#bookly-tbs .dropdown-item .dropdown-item{padding:.25rem 0 .25rem 1.5rem}#bookly-tbs .dropdown-item .custom-control label{width:100%}#bookly-tbs .dropdown-item .custom-control:focus,#bookly-tbs .dropdown-item .custom-control:hover{background-color:#f8f9fa}#bookly-tbs .bookly-modal .dropdown-menu.show{overflow-y:auto;max-height:320px}#bookly-tbs .custom-checkbox .custom-control-input.bookly-checkbox-loading~.custom-control-label:before{content:'';width:16px;height:16px;background:url(../../images/ajax_loader_32x32.gif) no-repeat;background-size:contain;border:none;background-color:transparent!important}#bookly-tbs .custom-checkbox .custom-control-input:not(:checked)~.custom-control-label.bookly-toggle-label{color:#6c757d}#bookly-tbs .nav-tabs .nav-link{color:#495057}#bookly-tbs .nav-tabs .nav-link:hover{color:#343a40}#bookly-tbs .nav-tabs .nav-link:focus{box-shadow:none;outline:0}@media (max-width:575.98px){#bookly-tbs .bookly-nav-tabs-xs.nav-tabs .nav-link{background-color:#f8f9fa;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-color:#dee2e6;margin-bottom:.5rem}#bookly-tbs .bookly-nav-tabs-xs.nav-tabs .nav-link.active{background-color:#fff;border-bottom:1px solid #dee2e6}#bookly-tbs .bookly-nav-tabs-xs.nav-tabs .nav-link:hover{border-color:#343a40}}@media (max-width:767.98px){#bookly-tbs .bookly-nav-tabs-sm.nav-tabs .nav-link{background-color:#f8f9fa;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-color:#dee2e6;margin-bottom:.5rem}#bookly-tbs .bookly-nav-tabs-sm.nav-tabs .nav-link.active{background-color:#fff;border-bottom:1px solid #dee2e6}#bookly-tbs .bookly-nav-tabs-sm.nav-tabs .nav-link:hover{border-color:#343a40}}@media (max-width:991.98px){#bookly-tbs .bookly-nav-tabs-md.nav-tabs .nav-link{background-color:#f8f9fa;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-color:#dee2e6;margin-bottom:.5rem}#bookly-tbs .bookly-nav-tabs-md.nav-tabs .nav-link.active{background-color:#fff;border-bottom:1px solid #dee2e6}#bookly-tbs .bookly-nav-tabs-md.nav-tabs .nav-link:hover{border-color:#343a40}}@media (max-width:1199.98px){#bookly-tbs .bookly-nav-tabs-lg.nav-tabs .nav-link{background-color:#f8f9fa;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-color:#dee2e6;margin-bottom:.5rem}#bookly-tbs .bookly-nav-tabs-lg.nav-tabs .nav-link.active{background-color:#fff;border-bottom:1px solid #dee2e6}#bookly-tbs .bookly-nav-tabs-lg.nav-tabs .nav-link:hover{border-color:#343a40}}#bookly-tbs .bookly-nav-tabs-xl.nav-tabs .nav-link{background-color:#f8f9fa;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-color:#dee2e6;margin-bottom:.5rem}#bookly-tbs .bookly-nav-tabs-xl.nav-tabs .nav-link.active{background-color:#fff;border-bottom:1px solid #dee2e6}#bookly-tbs .bookly-nav-tabs-xl.nav-tabs .nav-link:hover{border-color:#343a40}#bookly-tbs .nav-pills .nav-link{background-color:#fff;background-clip:border-box;color:#212529;border:1px solid #ced4da}#bookly-tbs .nav-pills .nav-link:hover{color:#fff;background-color:#007bff}#bookly-tbs .nav-pills .nav-link.active,#bookly-tbs .nav-pills .nav-link:hover{border-color:transparent}#bookly-tbs .card{margin-top:0;padding:0;max-width:none;box-shadow:none}#bookly-tbs .bookly-card-highlighted{background-color:#f4e9e6}#bookly-tbs .list-group-item+.list-group-item{border-top-width:0}#bookly-tbs .list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}#bookly-tbs .list-group-item[style="display: none;"]+.list-group-item{border-top-left-radius:.25rem;border-top-right-radius:.25rem;border-top:1px solid rgba(0,0,0,.125)}#bookly-tbs .list-group-item.ui-sortable-helper,#bookly-tbs .list-group-item.ui-sortable-placeholder+.list-group-item{border-top:1px solid rgba(0,0,0,.125)}#bookly-tbs .bookly-cursor-move{cursor:move}#bookly-tbs .bookly-loading{position:relative;height:100px}#bookly-tbs .bookly-loading:before{content:'';position:absolute;left:calc(50% - 16px);top:calc(50% - 16px);width:32px;height:32px;background:url(../../images/ajax_loader_32x32.gif) no-repeat;background-size:contain}#bookly-tbs .bookly-loading.bookly-loading-sm{position:relative;display:inline-block;min-width:16px;min-height:16px;height:16px}#bookly-tbs .bookly-loading.bookly-loading-sm:before{left:0;top:2px;width:16px;height:16px}#bookly-tbs .bookly-hide-empty:empty{display:none}#bookly-tbs .text-pre-wrap{white-space:pre-wrap!important}#bookly-tbs .bookly-cursor-pointer{cursor:pointer}#bookly-tbs .bookly-alert{position:fixed;top:55px;right:13px;z-index:10000;text-align:left}@media (min-width:783px){#bookly-tbs .bookly-alert{right:21px}}#bookly-tbs .bookly-alert button{margin-left:10px}#bookly-tbs .bookly-collapse{margin-bottom:.75rem}#bookly-tbs .bookly-collapse a[data-toggle=collapse]{text-decoration:none;color:#343a40}#bookly-tbs .bookly-collapse a[data-toggle=collapse]:after{content:"\f0d8";font-family:"Font Awesome 5 Free";font-size:.875rem;font-weight:900;margin-left:.5em}#bookly-tbs .bookly-collapse a[data-toggle=collapse].collapsed{color:#495057}#bookly-tbs .bookly-collapse a[data-toggle=collapse].collapsed:hover{color:#343a40}#bookly-tbs .bookly-collapse a[data-toggle=collapse].collapsed:after{content:"\f0d7"}#bookly-tbs .bookly-color-picker{height:38px}#bookly-tbs .bookly-color-picker .wp-picker-container{position:absolute;z-index:1;padding:9px 8px 8px;margin:-8px 0 0 -8px;background-color:#fff}#bookly-tbs .bookly-color-picker .wp-picker-container *{box-sizing:content-box}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result{border-radius:.25rem;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;border:none;box-shadow:0 0 0 1px #ced4da}@media (prefers-reduced-motion:reduce){#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result{-webkit-transition:none;transition:none}}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result:hover{box-shadow:0 0 0 1px #b1bbc4}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result:hover .wp-color-result-text{color:#212529;border-color:#b1bbc4;background-color:#ececec}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result.focus,#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result:focus{box-shadow:0 0 0 .2rem rgba(180,186,191,.5)}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result.focus .wp-color-result-text,#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result:focus .wp-color-result-text{color:#212529;border-color:#b1bbc4;background-color:#ececec}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result .wp-color-result-text{margin:-1px -1px -1px 0;border:1px solid #ced4da;border-radius:0 .25rem .25rem 0;color:#212529;padding:.375rem .75rem;font-weight:400;font-size:1rem;background-color:#fff;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;line-height:1.5;max-width:130px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (prefers-reduced-motion:reduce){#bookly-tbs .bookly-color-picker .wp-picker-container .wp-color-result .wp-color-result-text{-webkit-transition:none;transition:none}}#bookly-tbs .bookly-color-picker .wp-picker-container.wp-picker-active{box-shadow:0 5px 10px rgba(0,0,0,.2)}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-picker-input-wrap{margin-left:8px}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-picker-input-wrap .wp-color-picker{margin-top:-1px;min-height:26px;border:1px solid #ced4da;border-radius:.25rem}#bookly-tbs .bookly-color-picker .wp-picker-container .wp-picker-input-wrap input.wp-picker-clear{display:none}#bookly-tbs table.dataTable{clear:both;margin-top:6px!important;margin-bottom:6px!important;max-width:none!important;border-collapse:separate!important;border-spacing:0}#bookly-tbs table.dataTable td,#bookly-tbs table.dataTable th{box-sizing:content-box}#bookly-tbs table.dataTable td.dataTables_empty,#bookly-tbs table.dataTable th.dataTables_empty{text-align:center}#bookly-tbs table.dataTable.nowrap td,#bookly-tbs table.dataTable.nowrap th{white-space:nowrap}#bookly-tbs div.dataTables_wrapper div.dataTables_length label{font-weight:400;text-align:left;white-space:nowrap}#bookly-tbs div.dataTables_wrapper div.dataTables_length select{width:auto;display:inline-block}#bookly-tbs div.dataTables_wrapper div.dataTables_filter{text-align:right}#bookly-tbs div.dataTables_wrapper div.dataTables_filter label{font-weight:400;white-space:nowrap;text-align:left}#bookly-tbs div.dataTables_wrapper div.dataTables_filter input{margin-left:.5em;display:inline-block;width:auto}#bookly-tbs div.dataTables_wrapper div.dataTables_info{padding-top:.85em;white-space:nowrap}#bookly-tbs div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}#bookly-tbs div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}#bookly-tbs div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}#bookly-tbs table.dataTable thead>tr>td.sorting,#bookly-tbs table.dataTable thead>tr>td.sorting_asc,#bookly-tbs table.dataTable thead>tr>td.sorting_desc,#bookly-tbs table.dataTable thead>tr>th.sorting,#bookly-tbs table.dataTable thead>tr>th.sorting_asc,#bookly-tbs table.dataTable thead>tr>th.sorting_desc{padding-right:30px}#bookly-tbs table.dataTable thead>tr>td:active,#bookly-tbs table.dataTable thead>tr>th:active{outline:0}#bookly-tbs table.dataTable thead .sorting,#bookly-tbs table.dataTable thead .sorting_asc,#bookly-tbs table.dataTable thead .sorting_asc_disabled,#bookly-tbs table.dataTable thead .sorting_desc,#bookly-tbs table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}#bookly-tbs table.dataTable thead .sorting:after,#bookly-tbs table.dataTable thead .sorting:before,#bookly-tbs table.dataTable thead .sorting_asc:after,#bookly-tbs table.dataTable thead .sorting_asc:before,#bookly-tbs table.dataTable thead .sorting_asc_disabled:after,#bookly-tbs table.dataTable thead .sorting_asc_disabled:before,#bookly-tbs table.dataTable thead .sorting_desc:after,#bookly-tbs table.dataTable thead .sorting_desc:before,#bookly-tbs table.dataTable thead .sorting_desc_disabled:after,#bookly-tbs table.dataTable thead .sorting_desc_disabled:before{position:absolute;bottom:.9em;display:block;opacity:.3}#bookly-tbs table.dataTable thead .sorting:before,#bookly-tbs table.dataTable thead .sorting_asc:before,#bookly-tbs table.dataTable thead .sorting_asc_disabled:before,#bookly-tbs table.dataTable thead .sorting_desc:before,#bookly-tbs table.dataTable thead .sorting_desc_disabled:before{right:1em;content:"\2191"}#bookly-tbs table.dataTable thead .sorting:after,#bookly-tbs table.dataTable thead .sorting_asc:after,#bookly-tbs table.dataTable thead .sorting_asc_disabled:after,#bookly-tbs table.dataTable thead .sorting_desc:after,#bookly-tbs table.dataTable thead .sorting_desc_disabled:after{right:.5em;content:"\2193"}#bookly-tbs table.dataTable thead .sorting_asc:before,#bookly-tbs table.dataTable thead .sorting_desc:after{opacity:1}#bookly-tbs table.dataTable thead .sorting_asc_disabled:before,#bookly-tbs table.dataTable thead .sorting_desc_disabled:after{opacity:0}#bookly-tbs div.dataTables_scrollHead table.dataTable{margin-bottom:0!important}#bookly-tbs div.dataTables_scrollBody table{border-top:none;margin-top:0!important;margin-bottom:0!important}#bookly-tbs div.dataTables_scrollBody table thead .sorting:after,#bookly-tbs div.dataTables_scrollBody table thead .sorting:before,#bookly-tbs div.dataTables_scrollBody table thead .sorting_asc:after,#bookly-tbs div.dataTables_scrollBody table thead .sorting_asc:before,#bookly-tbs div.dataTables_scrollBody table thead .sorting_desc:after,#bookly-tbs div.dataTables_scrollBody table thead .sorting_desc:before{display:none}#bookly-tbs div.dataTables_scrollBody table tbody tr:first-child td,#bookly-tbs div.dataTables_scrollBody table tbody tr:first-child th{border-top:none}#bookly-tbs div.dataTables_scrollFoot>.dataTables_scrollFootInner{box-sizing:content-box}#bookly-tbs div.dataTables_scrollFoot>.dataTables_scrollFootInner>table{margin-top:0!important;border-top:none}@media screen and (max-width:767px){#bookly-tbs div.dataTables_wrapper div.dataTables_filter,#bookly-tbs div.dataTables_wrapper div.dataTables_info,#bookly-tbs div.dataTables_wrapper div.dataTables_length,#bookly-tbs div.dataTables_wrapper div.dataTables_paginate{text-align:center}}#bookly-tbs table.dataTable.table-sm>thead>tr>th{padding-right:20px}#bookly-tbs table.dataTable.table-sm .sorting:before,#bookly-tbs table.dataTable.table-sm .sorting_asc:before,#bookly-tbs table.dataTable.table-sm .sorting_desc:before{top:5px;right:.85em}#bookly-tbs table.dataTable.table-sm .sorting:after,#bookly-tbs table.dataTable.table-sm .sorting_asc:after,#bookly-tbs table.dataTable.table-sm .sorting_desc:after{top:5px}#bookly-tbs table.table-bordered.dataTable td,#bookly-tbs table.table-bordered.dataTable th{border-left-width:0}#bookly-tbs table.table-bordered.dataTable td:last-child,#bookly-tbs table.table-bordered.dataTable th:last-child{border-right-width:0}#bookly-tbs table.table-bordered.dataTable tbody td,#bookly-tbs table.table-bordered.dataTable tbody th{border-bottom-width:0}#bookly-tbs div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}#bookly-tbs div.table-responsive>div.dataTables_wrapper>div.jCal-wrap,#bookly-tbs div.table-responsive>div.dataTables_wrapper>div.row{margin:0}#bookly-tbs div.table-responsive>div.dataTables_wrapper>div.jCal-wrap>div[class^=col-]:first-child,#bookly-tbs div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:first-child{padding-left:0}#bookly-tbs div.table-responsive>div.dataTables_wrapper>div.jCal-wrap>div[class^=col-]:last-child,#bookly-tbs div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:last-child{padding-right:0}@keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}#bookly-tbs div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:#fff;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,.3);border-radius:3px;text-align:center;z-index:21}#bookly-tbs div.dt-button-info h2{padding:.5em;margin:0;font-weight:400;border-bottom:1px solid #ddd;background-color:#f3f3f3}#bookly-tbs div.dt-button-info>div{padding:1em}#bookly-tbs div.dt-button-collection-title{text-align:center;padding:.3em 0 .5em;font-size:.9em}#bookly-tbs div.dt-button-collection-title:empty{display:none}#bookly-tbs div.dt-button-collection{position:absolute;z-index:2001}#bookly-tbs div.dt-button-collection div.dropdown-menu{display:block;z-index:2002;min-width:100%}#bookly-tbs div.dt-button-collection div.dt-button-collection-title{background-color:#fff;border:1px solid rgba(0,0,0,.15)}#bookly-tbs div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}#bookly-tbs div.dt-button-collection.fixed.two-column{margin-left:-200px}#bookly-tbs div.dt-button-collection.fixed.three-column{margin-left:-225px}#bookly-tbs div.dt-button-collection.fixed.four-column{margin-left:-300px}#bookly-tbs div.dt-button-collection>:last-child{display:block!important;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}#bookly-tbs div.dt-button-collection>:last-child>*{-webkit-column-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid}#bookly-tbs div.dt-button-collection.two-column{width:400px}#bookly-tbs div.dt-button-collection.two-column>:last-child{padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}#bookly-tbs div.dt-button-collection.three-column{width:450px}#bookly-tbs div.dt-button-collection.three-column>:last-child{padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}#bookly-tbs div.dt-button-collection.four-column{width:600px}#bookly-tbs div.dt-button-collection.four-column>:last-child{padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}#bookly-tbs div.dt-button-collection .dt-button{border-radius:0}#bookly-tbs div.dt-button-collection.fixed{max-width:none}#bookly-tbs div.dt-button-collection.fixed:after,#bookly-tbs div.dt-button-collection.fixed:before{display:none}#bookly-tbs div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:999}@media screen and (max-width:767px){#bookly-tbs div.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:.5em}#bookly-tbs .fc div.dt-buttons a.fc-button,#bookly-tbs div.dt-buttons .fc a.fc-button,#bookly-tbs div.dt-buttons a.btn{float:none}}#bookly-tbs .fc div.dt-buttons a.processing.fc-button,#bookly-tbs .fc div.dt-buttons button.processing.fc-button,#bookly-tbs .fc div.dt-buttons div.processing.fc-button,#bookly-tbs div.dt-buttons .fc a.processing.fc-button,#bookly-tbs div.dt-buttons .fc button.processing.fc-button,#bookly-tbs div.dt-buttons .fc div.processing.fc-button,#bookly-tbs div.dt-buttons a.btn.processing,#bookly-tbs div.dt-buttons button.btn.processing,#bookly-tbs div.dt-buttons div.btn.processing{color:rgba(0,0,0,.2)}#bookly-tbs .fc div.dt-buttons a.processing.fc-button:after,#bookly-tbs .fc div.dt-buttons button.processing.fc-button:after,#bookly-tbs .fc div.dt-buttons div.processing.fc-button:after,#bookly-tbs div.dt-buttons .fc a.processing.fc-button:after,#bookly-tbs div.dt-buttons .fc button.processing.fc-button:after,#bookly-tbs div.dt-buttons .fc div.processing.fc-button:after,#bookly-tbs div.dt-buttons a.btn.processing:after,#bookly-tbs div.dt-buttons button.btn.processing:after,#bookly-tbs div.dt-buttons div.btn.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1.5s infinite linear;-o-animation:dtb-spinner 1.5s infinite linear;-ms-animation:dtb-spinner 1.5s infinite linear;-webkit-animation:dtb-spinner 1.5s infinite linear;-moz-animation:dtb-spinner 1.5s infinite linear}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>th.child{cursor:default!important}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before{display:none!important}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr[role=row]>td:first-child,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr[role=row]>th:first-child{position:relative;padding-left:30px;cursor:pointer}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr[role=row]>td:first-child:before,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr[role=row]>th:first-child:before{top:16px;left:4px;height:14px;width:14px;display:block;position:absolute;color:#fff;border:2px solid #fff;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0!important;font-family:'Courier New',Courier,monospace;line-height:14px;content:'+';background-color:#0275d8}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}#bookly-tbs table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,#bookly-tbs table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}#bookly-tbs table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,#bookly-tbs table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}#bookly-tbs table.dataTable.dtr-column>tbody>tr>td.control,#bookly-tbs table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}#bookly-tbs table.dataTable.dtr-column>tbody>tr>td.control:before,#bookly-tbs table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:#fff;border:2px solid #fff;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0!important;font-family:'Courier New',Courier,monospace;line-height:14px;content:'+';background-color:#0275d8}#bookly-tbs table.dataTable.dtr-column>tbody>tr.parent td.control:before,#bookly-tbs table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}#bookly-tbs table.dataTable>tbody>tr.child{padding:.5em 1em}#bookly-tbs table.dataTable>tbody>tr.child:hover{background:0 0!important}#bookly-tbs table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}#bookly-tbs table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:.5em 0}#bookly-tbs table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}#bookly-tbs table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}#bookly-tbs table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:700}#bookly-tbs div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}#bookly-tbs div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid #000;border-radius:.5em;box-shadow:0 12px 30px rgba(0,0,0,.6)}#bookly-tbs div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}#bookly-tbs div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}#bookly-tbs div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}#bookly-tbs div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,.6)}@media screen and (max-width:767px){#bookly-tbs div.dtr-modal div.dtr-modal-display{width:95%}}#bookly-tbs div.dtr-bs-modal table.table tr:first-child td{border-top:none}#bookly-tbs table.dt-rowReorder-float{position:absolute!important;opacity:.8;table-layout:fixed;outline:2px solid #0275d8;outline-offset:-2px;z-index:2001}#bookly-tbs tr.dt-rowReorder-moving{outline:2px solid #888;outline-offset:-2px}#bookly-tbs body.dt-rowReorder-noOverflow{overflow-x:hidden}#bookly-tbs table.dataTable td.reorder{text-align:center;cursor:move}#bookly-tbs .daterangepicker{position:absolute;color:inherit;background-color:#fff;border-radius:4px;border:1px solid #ddd;width:278px;max-width:none;padding:0;margin-top:7px;top:100px;left:20px;z-index:3001;display:none;font-family:arial;font-size:15px;line-height:1em}#bookly-tbs .daterangepicker:after,#bookly-tbs .daterangepicker:before{position:absolute;display:inline-block;border-bottom-color:rgba(0,0,0,.2);content:''}#bookly-tbs .daterangepicker:before{top:-7px;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:7px solid #ccc}#bookly-tbs .daterangepicker:after{top:-6px;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent}#bookly-tbs .daterangepicker.opensleft:before{right:9px}#bookly-tbs .daterangepicker.opensleft:after{right:10px}#bookly-tbs .daterangepicker.openscenter:before{left:0;right:0;width:0;margin-left:auto;margin-right:auto}#bookly-tbs .daterangepicker.openscenter:after{left:0;right:0;width:0;margin-left:auto;margin-right:auto}#bookly-tbs .daterangepicker.opensright:before{left:9px}#bookly-tbs .daterangepicker.opensright:after{left:10px}#bookly-tbs .daterangepicker.drop-up{margin-top:-7px}#bookly-tbs .daterangepicker.drop-up:before{top:initial;bottom:-7px;border-bottom:initial;border-top:7px solid #ccc}#bookly-tbs .daterangepicker.drop-up:after{top:initial;bottom:-6px;border-bottom:initial;border-top:6px solid #fff}#bookly-tbs .daterangepicker.single .daterangepicker .ranges,#bookly-tbs .daterangepicker.single .drp-calendar{float:none}#bookly-tbs .daterangepicker.single .drp-selected{display:none}#bookly-tbs .daterangepicker.show-calendar .drp-calendar{display:block}#bookly-tbs .daterangepicker.show-calendar .drp-calendar select{border:1px solid #ced4da;padding:0 7px}#bookly-tbs .daterangepicker.show-calendar .drp-calendar table th{text-transform:none}#bookly-tbs .daterangepicker.show-calendar .drp-buttons{display:block}#bookly-tbs .daterangepicker.auto-apply .drp-buttons{display:none}#bookly-tbs .daterangepicker .drp-calendar{display:none;max-width:270px}#bookly-tbs .daterangepicker .drp-calendar.left{padding:8px 0 8px 8px}#bookly-tbs .daterangepicker .drp-calendar.right{padding:8px}#bookly-tbs .daterangepicker .drp-calendar.single .calendar-table{border:none}#bookly-tbs .daterangepicker .calendar-table .next span,#bookly-tbs .daterangepicker .calendar-table .prev span{color:#fff;border:solid #000;border-width:0 2px 2px 0;border-radius:0;display:inline-block;padding:3px}#bookly-tbs .daterangepicker .calendar-table .next span{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}#bookly-tbs .daterangepicker .calendar-table .prev span{transform:rotate(135deg);-webkit-transform:rotate(135deg)}#bookly-tbs .daterangepicker .calendar-table td,#bookly-tbs .daterangepicker .calendar-table th{white-space:nowrap;text-align:center;vertical-align:middle;min-width:32px;width:32px;height:24px;line-height:24px;font-size:12px;border-radius:4px;border:1px solid transparent;cursor:pointer}#bookly-tbs .daterangepicker .calendar-table{border:1px solid #fff;border-radius:4px;background-color:#fff}#bookly-tbs .daterangepicker .calendar-table table{width:100%;margin:0;border-spacing:0;border-collapse:collapse}#bookly-tbs .daterangepicker td.available:hover,#bookly-tbs .daterangepicker th.available:hover{background-color:#eee;border-color:transparent;color:inherit}#bookly-tbs .daterangepicker td.week,#bookly-tbs .daterangepicker th.week{font-size:80%;color:#ccc}#bookly-tbs .daterangepicker td.off,#bookly-tbs .daterangepicker td.off.end-date,#bookly-tbs .daterangepicker td.off.in-range,#bookly-tbs .daterangepicker td.off.start-date{background-color:#fff;border-color:transparent;color:#999}#bookly-tbs .daterangepicker td.in-range{background-color:#ebf4f8;border-color:transparent;color:#000;border-radius:0}#bookly-tbs .daterangepicker td.start-date{border-radius:4px 0 0 4px}#bookly-tbs .daterangepicker td.end-date{border-radius:0 4px 4px 0}#bookly-tbs .daterangepicker td.start-date.end-date{border-radius:4px}#bookly-tbs .daterangepicker td.active,#bookly-tbs .daterangepicker td.active:hover{background-color:#357ebd;border-color:transparent;color:#fff}#bookly-tbs .daterangepicker th.month{width:auto}#bookly-tbs .daterangepicker option.disabled,#bookly-tbs .daterangepicker td.disabled{color:#999;cursor:not-allowed;text-decoration:line-through}#bookly-tbs .daterangepicker select.monthselect,#bookly-tbs .daterangepicker select.yearselect{font-size:12px;padding:1px;margin:0;cursor:default}#bookly-tbs .daterangepicker select.monthselect{margin-right:2%;width:56%}#bookly-tbs .daterangepicker select.yearselect{width:40%}#bookly-tbs .daterangepicker select.ampmselect,#bookly-tbs .daterangepicker select.hourselect,#bookly-tbs .daterangepicker select.minuteselect,#bookly-tbs .daterangepicker select.secondselect{width:50px;margin:0 auto;background:#eee;border:1px solid #eee;padding:2px;outline:0;font-size:12px}#bookly-tbs .daterangepicker .calendar-time{text-align:center;margin:4px auto 0 auto;line-height:30px;position:relative}#bookly-tbs .daterangepicker .calendar-time select.disabled{color:#ccc;cursor:not-allowed}#bookly-tbs .daterangepicker .drp-buttons{clear:both;text-align:right;padding:8px;border-top:1px solid #ddd;display:none;line-height:12px;vertical-align:middle}#bookly-tbs .daterangepicker .drp-selected{display:block;font-size:12px;padding:8px}#bookly-tbs .daterangepicker .drp-buttons .btn,#bookly-tbs .daterangepicker .drp-buttons .fc .fc-button,#bookly-tbs .fc .daterangepicker .drp-buttons .fc-button{margin-left:8px;font-size:12px;padding:4px 8px}#bookly-tbs .daterangepicker.show-ranges.single.rtl .drp-calendar.left{border-right:1px solid #ddd}#bookly-tbs .daterangepicker.show-ranges.single.ltr .drp-calendar.left{border-left:1px solid #ddd}#bookly-tbs .daterangepicker.show-ranges.rtl .drp-calendar.right{border-right:1px solid #ddd}#bookly-tbs .daterangepicker.show-calendar.show-ranges .ranges{min-height:246px;border-right:1px solid #ddd}#bookly-tbs .daterangepicker .ranges{float:none;text-align:left;margin:0}#bookly-tbs .daterangepicker .ranges ul{list-style:none;margin:0 auto;padding:0;width:100%}#bookly-tbs .daterangepicker .ranges li{font-size:12px;padding:8px 12px;cursor:pointer;border-radius:0;border:0;background-color:transparent}#bookly-tbs .daterangepicker .ranges li:first-child{border-radius:4px 4px 0 0}#bookly-tbs .daterangepicker .ranges li:last-child{border-radius:0 0 4px 4px}#bookly-tbs .daterangepicker .ranges li:hover{background-color:#f8f9fa;color:#212529}#bookly-tbs .daterangepicker .ranges li.active{background-color:#08c;color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}@media (min-width:564px){#bookly-tbs .daterangepicker{width:auto}#bookly-tbs .daterangepicker.show-calendar.show-ranges{width:646px}#bookly-tbs .daterangepicker .drp-selected{display:inline-block;padding-right:8px}#bookly-tbs .daterangepicker .ranges ul{width:140px}#bookly-tbs .daterangepicker.single .ranges ul{width:100%}#bookly-tbs .daterangepicker.single .drp-calendar.left{clear:none}#bookly-tbs .daterangepicker.single .drp-calendar,#bookly-tbs .daterangepicker.single .ranges{float:left}#bookly-tbs .daterangepicker{direction:ltr;text-align:left}#bookly-tbs .daterangepicker .drp-calendar.left{clear:left;margin-right:0}#bookly-tbs .daterangepicker .drp-calendar.left .calendar-table{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .daterangepicker .drp-calendar.right{margin-left:0}#bookly-tbs .daterangepicker .drp-calendar.right .calendar-table{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .daterangepicker .drp-calendar.left .calendar-table{padding-right:8px}#bookly-tbs .daterangepicker .drp-calendar,#bookly-tbs .daterangepicker .ranges{float:left}}@media (min-width:730px){#bookly-tbs .daterangepicker .ranges{width:auto}#bookly-tbs .daterangepicker .ranges{float:left}#bookly-tbs .daterangepicker.rtl .ranges{float:right}#bookly-tbs .daterangepicker .drp-calendar.left{clear:none!important}}#bookly-tbs .fc .fc-button-group>.fc-button.fc-agendaDay-button:not(:last-child):not(.dropdown-toggle){border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}#bookly-tbs .fc .fc-button{background-image:none;height:auto}#bookly-tbs .fc .fc-button:not(:disabled):not(.disabled).fc-state-active{color:#212529;background-color:#e6e6e6;border-color:#aab4bf;box-shadow:none}#bookly-tbs .fc .fc-toolbar .fc-today-button{margin-left:10px}#bookly-tbs .fc .fc-toolbar h2{cursor:pointer;font-size:24px;margin:6px 0 -3px}#bookly-tbs .fc .fc-toolbar h2::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}#bookly-tbs .fc .fc-toolbar h2:empty::after{margin-left:0}#bookly-tbs .fc .fc-toolbar h2::after{font-size:1rem;margin-left:.5rem}#bookly-tbs .fc .fc-toolbar h2:hover{color:#0056b3}@media (max-width:767.98px){#bookly-tbs .fc .fc-toolbar .fc-left,#bookly-tbs .fc .fc-toolbar .fc-right{float:none;margin-bottom:10px}#bookly-tbs .fc .fc-toolbar .fc-left>*,#bookly-tbs .fc .fc-toolbar .fc-right>*{float:none}}#bookly-tbs .fc .fc-view{overflow:auto}#bookly-tbs .fc .fc-view>table{min-width:700px}#bookly-tbs .fc .fc-view .fc-day-header{font-weight:inherit;text-align:center}#bookly-tbs .fc .fc-view .fc-day.bookly-fc-day-active{background-color:#eafcff}#bookly-tbs .fc .fc-view .fc-axis{box-sizing:content-box;font-size:calc(1rem - 1px)}#bookly-tbs .fc .fc-view .fc-event{cursor:pointer;border:none;border-radius:0;padding:3px 2px 3px 5px}#bookly-tbs .fc .fc-view .fc-event:after{content:'';position:absolute;top:0;right:0;width:calc(100% - 2px);height:100%;background-color:rgba(255,255,255,.6)}#bookly-tbs .fc .fc-view .fc-event:hover:after{background-color:rgba(255,255,255,.7)}#bookly-tbs .fc .fc-view .fc-event .fc-time{font-size:inherit;font-weight:700}#bookly-tbs .fc .fc-view .fc-event .fc-time .bookly-fc-icon{cursor:pointer;float:right;font-size:1.2em;line-height:1.3;opacity:.8}#bookly-tbs .fc .fc-view .fc-event .fc-time .bookly-fc-icon:hover{opacity:1}#bookly-tbs .bookly-fc-loading{background-color:rgba(255,255,255,.7);bottom:0;left:0;position:absolute;right:0;top:50px;z-index:9}#bookly-tbs .bookly-fc-loading .bookly-fc-loading-icon{position:absolute;left:calc(50% - 16px);top:calc(50% - 16px);background:rgba(255,0,0,0) url(../../images/ajax_loader_32x32.gif) no-repeat scroll 50% center;width:32px;height:32px}@media (max-width:767.98px){#bookly-tbs .bookly-fc-loading{top:150px}}#bookly-tbs .jCal{width:100%;position:relative}#bookly-tbs .jCalMo{display:block;position:relative;padding:0 15px;margin-bottom:15px;white-space:nowrap}@media (min-width:576px){#bookly-tbs .jCalMo{height:257px}}#bookly-tbs .jCal .month,#bookly-tbs .jCal .monthName,#bookly-tbs .jCal .monthSelect,#bookly-tbs .jCal .monthYear{float:left}#bookly-tbs .jCal .monthName{font-weight:700;padding:.5rem 0;text-align:center;width:100%}#bookly-tbs .jCal .monthYear{float:right;text-align:left}#bookly-tbs .jCal .month{width:100%}#bookly-tbs .jCal .monthSelect{background:#f8f9fa}#bookly-tbs .jCal .monthSelector{position:absolute}#bookly-tbs .jCal .monthSelectorShadow{position:absolute;background:#adb5bd;padding:0}#bookly-tbs .jCal .monthNameHover,#bookly-tbs .jCal .monthYearHover{background:#f8f9fa;color:#adb5bd}#bookly-tbs .jCal .monthSelectHover{background:#007bff;color:#fff}#bookly-tbs .jCalMo .aday,#bookly-tbs .jCalMo .day,#bookly-tbs .jCalMo .dow,#bookly-tbs .jCalMo .invday,#bookly-tbs .jCalMo .overDay,#bookly-tbs .jCalMo .pday,#bookly-tbs .jCalMo .selectedDay{position:relative;float:left;width:calc(14.2857% + 1px);margin-right:-1px;border:1px solid #f8f9fa;border-width:0 1px 1px 1px;text-align:center;cursor:default}#bookly-tbs .jCalMo .dow{font-size:12px;line-height:30px;background:#f8f9fa;border-bottom:0}#bookly-tbs .jCalMo .day{font-size:13px;line-height:30px;cursor:pointer;background:#fff}#bookly-tbs .jCalMo .invday{color:#adb5bd;background:#f8f9fa;text-decoration:line-through}#bookly-tbs .jCalMo .aday,#bookly-tbs .jCalMo .pday{font-size:13px;line-height:30px;color:#f8f9fa;background:rgba(248,249,250,.3)}#bookly-tbs .jCalMo .overDay{color:#212529;background:rgba(0,123,255,.2)}#bookly-tbs .jCalMo .holidayDay{color:#fff;background:#ffc107}#bookly-tbs .jCalMo .holidayDay.repeatDay{color:#fff;background:#dc3545}#bookly-tbs .jCalMo .selectedDay,#bookly-tbs .jCalMo .selectedDay.repeatDay{color:#fff;background:#007bff}#bookly-tbs .jCal .left,#bookly-tbs .jCal .right{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}#bookly-tbs .jCalMask,#bookly-tbs .jCalMove{position:absolute;overflow:hidden;width:700px;height:930px}@media (max-width:991.98px){#bookly-tbs .jCalMo{float:left;width:50%}}@media (min-width:992px){#bookly-tbs .jCalMo{float:left;width:33.33333333%}}#bookly-tbs .intl-tel-input{display:block}#bookly-tbs .intl-tel-input .flag-container{left:0;right:0}#bookly-tbs .intl-tel-input .flag-container ul.country-list{list-style:none;padding:0}#bookly-tbs .intl-tel-input .selected-flag{width:42px;padding:0 0 0 8px}#bookly-tbs .intl-tel-input .selected-flag .arrow{left:auto;right:4px;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid #000}#bookly-tbs .intl-tel-input .iti-flag{background-image:url(../../../../frontend/resources/images/flags.png)}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:2dppx){#bookly-tbs .intl-tel-input .iti-flag{background-image:url(../../../../frontend/resources/images/flags@2x.png)}}#bookly-tbs .intl-tel-input .form-control{padding-left:45px}#bookly-tbs .intl-tel-input .country-list{max-width:100%}#bookly-tbs .bookly-thumb{display:block;position:relative;width:106px;height:106px;border:1px solid #ced4da;border-radius:.25rem;background-color:#e9ecef;background-image:url(../../images/sprite.png);background-repeat:no-repeat;background-position:0 0;overflow:hidden}#bookly-tbs .bookly-thumb.w-100{background-image:none}#bookly-tbs .bookly-thumb .bookly-thumb-delete{position:absolute;top:.25rem;right:0;text-decoration:none}#bookly-tbs .bookly-thumb .bookly-thumb-edit{position:absolute;left:0;right:0;bottom:0;background-color:rgba(173,181,189,.5)}#bookly-tbs .bookly-thumb .bookly-thumb-edit:hover{background-color:rgba(173,181,189,.8)}#bookly-tbs .bookly-thumb .bookly-thumb-edit .bookly-thumb-edit-btn{width:100%;padding:0 3px;margin:0;text-align:center;color:#fff;font-size:13px;line-height:25px}#bookly-tbs .select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}#bookly-tbs .select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}#bookly-tbs .select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .select2-container .select2-selection--single .select2-selection__clear{position:relative}#bookly-tbs .select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}#bookly-tbs .select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}#bookly-tbs .select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .select2-container .select2-search--inline{float:left}#bookly-tbs .select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}#bookly-tbs .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}#bookly-tbs .select2-dropdown{background-color:#fff;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}#bookly-tbs .select2-results{display:block}#bookly-tbs .select2-results__options{list-style:none;margin:0;padding:0}#bookly-tbs .select2-results__option{padding:6px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}#bookly-tbs .select2-results__option[aria-selected]{cursor:pointer}#bookly-tbs .select2-container--open .select2-dropdown{left:0}#bookly-tbs .select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}#bookly-tbs .select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .select2-search--dropdown{display:block;padding:4px}#bookly-tbs .select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}#bookly-tbs .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}#bookly-tbs .select2-search--dropdown.select2-search--hide{display:none}#bookly-tbs .select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff}#bookly-tbs .select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}#bookly-tbs .select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}#bookly-tbs .select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}#bookly-tbs .select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}#bookly-tbs .select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}#bookly-tbs .select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}#bookly-tbs .select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}#bookly-tbs .select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}#bookly-tbs .select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}#bookly-tbs .select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}#bookly-tbs .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}#bookly-tbs .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}#bookly-tbs .select2-container--default .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text}#bookly-tbs .select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}#bookly-tbs .select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}#bookly-tbs .select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px;padding:1px}#bookly-tbs .select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}#bookly-tbs .select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}#bookly-tbs .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}#bookly-tbs .select2-container--default[dir=rtl] .select2-selection--multiple .select2-search--inline,#bookly-tbs .select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right}#bookly-tbs .select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}#bookly-tbs .select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}#bookly-tbs .select2-container--default.select2-container--focus .select2-selection--multiple{border:solid #000 1px;outline:0}#bookly-tbs .select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}#bookly-tbs .select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}#bookly-tbs .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,#bookly-tbs .select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,#bookly-tbs .select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}#bookly-tbs .select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}#bookly-tbs .select2-container--default .select2-search--inline .select2-search__field{background:0 0;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}#bookly-tbs .select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}#bookly-tbs .select2-container--default .select2-results__option[role=group]{padding:0}#bookly-tbs .select2-container--default .select2-results__option[aria-disabled=true]{color:#999}#bookly-tbs .select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option{padding-left:1em}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}#bookly-tbs .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}#bookly-tbs .select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:#fff}#bookly-tbs .select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}#bookly-tbs .select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #dee2e6;border-radius:.25rem;outline:0;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,#fff),to(#eee));background-image:linear-gradient(to bottom,#fff 50%,#eee 100%);background-repeat:repeat-x}#bookly-tbs .select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}#bookly-tbs .select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}#bookly-tbs .select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-right:10px}#bookly-tbs .select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}#bookly-tbs .select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #dee2e6;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,#eee),to(#ccc));background-image:linear-gradient(to bottom,#eee 50%,#ccc 100%);background-repeat:repeat-x}#bookly-tbs .select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}#bookly-tbs .select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}#bookly-tbs .select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #dee2e6;border-radius:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;left:1px;right:auto}#bookly-tbs .select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}#bookly-tbs .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:0 0;border:none}#bookly-tbs .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}#bookly-tbs .select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-gradient(linear,left top,left bottom,from(white),color-stop(50%,#eee));background-image:linear-gradient(to bottom,#fff 0,#eee 50%);background-repeat:repeat-x}#bookly-tbs .select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,#eee),to(white));background-image:linear-gradient(to bottom,#eee 50%,#fff 100%);background-repeat:repeat-x}#bookly-tbs .select2-container--classic .select2-selection--multiple{background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;cursor:text;outline:0}#bookly-tbs .select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}#bookly-tbs .select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}#bookly-tbs .select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}#bookly-tbs .select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #dee2e6;border-radius:.25rem;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}#bookly-tbs .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}#bookly-tbs .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}#bookly-tbs .select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}#bookly-tbs .select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}#bookly-tbs .select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}#bookly-tbs .select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}#bookly-tbs .select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #dee2e6;outline:0}#bookly-tbs .select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}#bookly-tbs .select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}#bookly-tbs .select2-container--classic .select2-dropdown--above{border-bottom:none}#bookly-tbs .select2-container--classic .select2-dropdown--below{border-top:none}#bookly-tbs .select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}#bookly-tbs .select2-container--classic .select2-results__option[role=group]{padding:0}#bookly-tbs .select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}#bookly-tbs .select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}#bookly-tbs .select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}#bookly-tbs .select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}#bookly-tbs .select2-container--bootstrap4 .select2-selection--single{height:calc(1.5em + .75rem + 2px)!important}#bookly-tbs .select2-container--bootstrap4 .select2-selection--single .select2-selection__placeholder{color:#757575;line-height:calc(1.5em + .75rem)}#bookly-tbs .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow{position:absolute;top:50%;right:3px;width:20px}#bookly-tbs .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow b{top:60%;border-color:#343a40 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;width:0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute}#bookly-tbs .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered{line-height:calc(1.5em + .75rem)}#bookly-tbs .select2-search--dropdown .select2-search__field{border:1px solid #ced4da;border-radius:.25rem}#bookly-tbs .select2-results__message{color:#6c757d}#bookly-tbs .select2-container--bootstrap4 .select2-selection--multiple{min-height:calc(1.5em + .75rem + 2px)!important}#bookly-tbs .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}#bookly-tbs .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice{color:#343a40;border:1px solid #bdc6d0;border-radius:.2rem;padding:0;padding-right:5px;cursor:pointer;float:left;margin-top:.3em;margin-right:5px}#bookly-tbs .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice__remove{color:#bdc6d0;font-weight:700;margin-left:3px;margin-right:1px;padding-right:3px;padding-left:3px;float:left}#bookly-tbs .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice__remove:hover{color:#343a40}#bookly-tbs .select2-container{display:block}#bookly-tbs .select2-container :focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .input-group .select2-container--bootstrap4{-webkit-box-flex:1;flex-grow:1}#bookly-tbs .input-group-prepend~.select2-container--bootstrap4 .select2-selection{border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .input-group>.select2-container--bootstrap4:not(:last-child) .select2-selection{border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .select2-container--bootstrap4 .select2-selection{background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){#bookly-tbs .select2-container--bootstrap4 .select2-selection{-webkit-transition:none;transition:none}}#bookly-tbs .select2-container--bootstrap4.select2-container--focus .select2-selection{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}#bookly-tbs .select2-container--bootstrap4.select2-container--focus.select2-container--open .select2-selection{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}#bookly-tbs .select2-container--bootstrap4.select2-container--disabled .select2-selection,#bookly-tbs .select2-container--bootstrap4.select2-container--disabled.select2-container--focus .select2-selection{background-color:#e9ecef;cursor:not-allowed;border-color:#ced4da;box-shadow:none}#bookly-tbs .select2-container--bootstrap4.select2-container--disabled .select2-search__field,#bookly-tbs .select2-container--bootstrap4.select2-container--disabled.select2-container--focus .select2-search__field{background-color:transparent}form.was-validated select:invalid~#bookly-tbs .select2-container--bootstrap4 .select2-selection,select.is-invalid~#bookly-tbs .select2-container--bootstrap4 .select2-selection{border-color:#dc3545}form.was-validated select:valid~#bookly-tbs .select2-container--bootstrap4 .select2-selection,select.is-valid~#bookly-tbs .select2-container--bootstrap4 .select2-selection{border-color:#28a745}#bookly-tbs .select2-container--bootstrap4 .select2-dropdown{border-color:#ced4da;border-top:none;border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .select2-container--bootstrap4 .select2-dropdown.select2-dropdown--above{border-top:1px solid #ced4da;border-top-left-radius:.25rem;border-top-right-radius:.25rem}#bookly-tbs .select2-container--bootstrap4 .select2-dropdown .select2-results__option[aria-selected=true]{background-color:#e9ecef}#bookly-tbs .select2-container--bootstrap4 .select2-dropdown .select2-results__option:empty{padding:0}#bookly-tbs .select2-container--bootstrap4 .select2-results__option--highlighted,#bookly-tbs .select2-container--bootstrap4 .select2-results__option--highlighted.select2-results__option[aria-selected=true]{background-color:#007bff;color:#f8f9fa}#bookly-tbs .select2-container--bootstrap4 .select2-results__option[role=group]{padding:0}#bookly-tbs .select2-container--bootstrap4 .select2-results>.select2-results__options{max-height:15em;overflow-y:auto}#bookly-tbs .select2-container--bootstrap4 .select2-results__group{padding:6px;display:list-item;color:#6c757d}#bookly-tbs .select2-container--bootstrap4 .select2-selection__clear{width:1.2em;height:1.2em;line-height:1.15em;padding-left:.3em;margin-top:.5em;color:#6c757d;font-weight:700;float:right;margin-right:.3em}#bookly-tbs .select2-container--bootstrap4 .select2-selection__clear:hover{color:#343a40}#bookly-tbs #bookly-appointment-dialog .select2 .select2-selection,#bookly-tbs #bookly-coupon-modal .select2 .select2-selection,#bookly-tbs #bookly-package-dialog .select2 .select2-selection{height:38px;box-shadow:none}#bookly-tbs #bookly-appointment-dialog .select2 .select2-selection__choice,#bookly-tbs #bookly-coupon-modal .select2 .select2-selection__choice,#bookly-tbs #bookly-package-dialog .select2 .select2-selection__choice{display:none}#bookly-tbs #bookly-appointment-dialog .select2 .select2-selection ul,#bookly-tbs #bookly-coupon-modal .select2 .select2-selection ul,#bookly-tbs #bookly-package-dialog .select2 .select2-selection ul{margin-bottom:0}#bookly-tbs #bookly-appointment-dialog .select2.select2-container--focus,#bookly-tbs #bookly-coupon-modal .select2.select2-container--focus,#bookly-tbs #bookly-package-dialog .select2.select2-container--focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.25);border-radius:.25rem}#bookly-tbs #bookly-appointment-dialog .select2 .select2-search,#bookly-tbs #bookly-coupon-modal .select2 .select2-search,#bookly-tbs #bookly-package-dialog .select2 .select2-search{float:none;margin:3px 0;padding-left:8px;border-radius:.25rem}#bookly-tbs #bookly-appointment-dialog .select2 .select2-search__field,#bookly-tbs #bookly-coupon-modal .select2 .select2-search__field,#bookly-tbs #bookly-package-dialog .select2 .select2-search__field{min-width:50%!important;box-shadow:none;margin:0;padding:0;border:0}#bookly-tbs #select2-bookly-appointment-dialog-select2-results .select2-results__option[aria-selected=true]{background-color:#fff;color:#212529}.rtl #bookly-tbs *{text-align:right}.rtl #bookly-tbs .card-footer>button{margin:.25rem}.rtl #bookly-tbs .close{float:left}.rtl #bookly-tbs i.far,.rtl #bookly-tbs i.fas{margin-left:.5rem}.rtl #bookly-tbs .daterangepicker .calendar-table{text-align:center}.rtl #bookly-tbs .daterangepicker .drp-calendar{max-width:315px}.rtl #bookly-tbs .daterangepicker.show-calendar.show-ranges{width:774px}.rtl #bookly-tbs .fc-center h2{position:absolute;right:50%;top:0}.rtl #bookly-tbs .fc-icon{text-align:center}.rtl #bookly-tbs .input-group .select2-selection{border-radius:0 5px 5px 0!important}.rtl #bookly-tbs .input-group .form-control{border-radius:0 5px 5px 0;right:1px}.rtl #bookly-tbs .fc .input-group .input-group-append .fc-button,.rtl #bookly-tbs .input-group .input-group-append .btn,.rtl #bookly-tbs .input-group .input-group-append .fc .fc-button,.rtl #bookly-tbs .input-group .input-group-append .input-group-text{border-radius:5px 0 0 5px;border-top-left-radius:5px;border-bottom-left-radius:5px}.rtl #bookly-tbs .input-group .input-group-prepend{margin-left:-1px}.rtl #bookly-tbs .input-group .input-group-prepend .input-group-text{border-radius:0 5px 5px 0}.rtl #bookly-tbs #bookly-customer-information-fields .input-group .input-group-append:nth-child(2)>*{border-radius:0!important}.rtl #bookly-tbs .select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:20px;padding-left:8px}.rtl #bookly-tbs .btn-group>:first-child,.rtl #bookly-tbs .fc .fc-button-group>:first-child{border-radius:0 3px 3px 0!important}.rtl #bookly-tbs .btn-group>.dropdown-toggle,.rtl #bookly-tbs .btn-group>:last-child,.rtl #bookly-tbs .fc .fc-button-group>.dropdown-toggle,.rtl #bookly-tbs .fc .fc-button-group>:last-child{border-radius:3px 0 0 3px!important;margin-right:0!important}.rtl #bookly-tbs .intl-tel-input .selected-flag{padding:0 16px 0 0}.rtl #bookly-tbs .intl-tel-input .country-list .flag-box{margin-left:6px}.rtl #bookly-tbs .intl-tel-input .form-control{padding-right:45px;padding-left:.75rem}.rtl #bookly-tbs .modal-header button.close{position:absolute;left:0}.rtl #bookly-tbs .custom-control.custom-checkbox{padding-left:0}.rtl #bookly-tbs label.custom-control-label{position:relative;padding-right:1.5rem}.rtl #bookly-tbs label.custom-control-label::after,.rtl #bookly-tbs label.custom-control-label::before{right:0;left:auto}
backend/resources/images/buy10.png DELETED
Binary file
backend/resources/images/buy100.png DELETED
Binary file
backend/resources/images/buy25.png DELETED
Binary file
backend/resources/images/buy50.png DELETED
Binary file
backend/resources/images/calendar.png ADDED
Binary file
frontend/components/booking/InfoText.php CHANGED
@@ -196,12 +196,14 @@ class InfoText
196
  $data['appointment_time'][] = $slots[0][2] !== null ? ( $cart_item->getUnits() * $cart_item->getService()->getDuration() >= DAY_IN_SECONDS ? $service->getStartTimeInfo() : $service_dp->formatI18nTime() ) : __( 'N/A', 'bookly' );
197
  $data['service_duration'][] = Lib\Utils\DateTime::secondsToInterval( $cart_item->getUnits() * $cart_item->getService()->getDuration() );
198
  }
199
- $data['staff_info'][] = $cart_item->getStaff()->getTranslatedInfo();
200
- $data['staff_name'][] = $cart_item->getStaff()->getTranslatedName();
201
- if ( $cart_item->getStaff()->getAttachmentId() && $img = wp_get_attachment_image_src( $cart_item->getStaff()->getAttachmentId(), 'full' ) ) {
202
- $data['staff_photo'][] = '<img src="' . $img[0] . '"/>';
 
 
203
  } else {
204
- $data['staff_photo'][] = '';
205
  }
206
 
207
  // If appointment exists, prepare some additional data.
196
  $data['appointment_time'][] = $slots[0][2] !== null ? ( $cart_item->getUnits() * $cart_item->getService()->getDuration() >= DAY_IN_SECONDS ? $service->getStartTimeInfo() : $service_dp->formatI18nTime() ) : __( 'N/A', 'bookly' );
197
  $data['service_duration'][] = Lib\Utils\DateTime::secondsToInterval( $cart_item->getUnits() * $cart_item->getService()->getDuration() );
198
  }
199
+ // For Task when time step can be skipped, staff can be false
200
+ $staff = $cart_item->getStaff();
201
+ $data['staff_info'][] = $staff ? $staff->getTranslatedInfo() : '';
202
+ $data['staff_name'][] = $staff ? $staff->getTranslatedName() : '';
203
+ if ( $staff && $staff->getAttachmentId() && $img = wp_get_attachment_image_src( $staff->getAttachmentId(), 'full' ) ) {
204
+ $data['staff_photo'][] = '<img src="' . $img[0] . '"/>';
205
  } else {
206
+ $data['staff_photo'][] = '';
207
  }
208
 
209
  // If appointment exists, prepare some additional data.
frontend/modules/booking/Ajax.php CHANGED
@@ -1135,10 +1135,11 @@ class Ajax extends Lib\Base\Ajax
1135
  $defaults = Lib\Session::getFormVar( self::parameter( 'form_id' ), 'defaults' );
1136
  $service_id = $defaults['service_id'];
1137
  if ( $defaults['staff_id'] == 0 ) {
1138
- $service = Lib\Entities\Service::find( $defaults['service_id'] );
1139
- $service_id = ( $service && $service->withSubServices() )
1140
- ? reset( $service->getSubServices() )->getId()
1141
- : $service_id;
 
1142
  $staff_ids = Lib\Entities\StaffService::query()
1143
  ->where( 'service_id', $service_id )
1144
  ->fetchCol( 'staff_id' );
1135
  $defaults = Lib\Session::getFormVar( self::parameter( 'form_id' ), 'defaults' );
1136
  $service_id = $defaults['service_id'];
1137
  if ( $defaults['staff_id'] == 0 ) {
1138
+ $service = Lib\Entities\Service::find( $defaults['service_id'] );
1139
+ if ( $service && $service->withSubServices() ) {
1140
+ $sub_services = $service->getSubServices();
1141
+ $service_id = reset( $sub_services )->getId();
1142
+ }
1143
  $staff_ids = Lib\Entities\StaffService::query()
1144
  ->where( 'service_id', $service_id )
1145
  ->fetchCol( 'staff_id' );
languages/bookly-ar.mo CHANGED
Binary file
languages/bookly-ar.po CHANGED
@@ -2332,7 +2332,7 @@ msgid ""
2332
  "booking."
2333
  msgstr "أنت تحاول استخدام الخدمة كثيرًا. يرجى الاتصال بنا لإجراء حجز."
2334
 
2335
- msgid "Your payment has been accepted for processing."
2336
  msgstr "تم قبول عملية الدفع الخاص بك للمعالجة."
2337
 
2338
  msgid ""
@@ -3704,7 +3704,7 @@ msgstr "طول الفترة الزمنية كمدة الخدمة"
3704
  msgid ""
3705
  "The time interval which is used as a step when building all time slots for "
3706
  "the service at the Time step. The setting overrides global settings in "
3707
- "Settings General. Use Default to apply global settings."
3708
  msgstr ""
3709
  "الفاصل الزمني الذي يتم استخدامه كخطوة عند إنشاء جميع فترات الوقت للخدمة في "
3710
  "خطوة الوقت. يتجاوز الإعداد الإعدادات العامة في الإعدادات العامة. استخدم "
@@ -5888,7 +5888,7 @@ msgstr ""
5888
  msgid ""
5889
  "If this setting is enabled then online meetings will be created for new "
5890
  "appointments with the selected online meeting provider. Make sure that the "
5891
- "provider is configured properly in Settings <a href=\"%s\">Online "
5892
  "Meetings</a>"
5893
  msgstr ""
5894
 
@@ -5958,7 +5958,7 @@ msgstr "كل سنة"
5958
  msgid ""
5959
  "This setting allows you to limit the number of appointments that can be "
5960
  "booked by a customer in any given period. Restriction may end after a fixed "
5961
- "period or with the beginning of the next calendar period new day, week, "
5962
  "month, etc."
5963
  msgstr ""
5964
  "يتيح لك هذا الإعداد تحديد عدد المواعيد التي يمكن حجزها من قبل العميل في أي "
2332
  "booking."
2333
  msgstr "أنت تحاول استخدام الخدمة كثيرًا. يرجى الاتصال بنا لإجراء حجز."
2334
 
2335
+ msgid "Your payment has been accepted for processing"
2336
  msgstr "تم قبول عملية الدفع الخاص بك للمعالجة."
2337
 
2338
  msgid ""
3704
  msgid ""
3705
  "The time interval which is used as a step when building all time slots for "
3706
  "the service at the Time step. The setting overrides global settings in "
3707
+ "Settings > General. Use Default to apply global settings."
3708
  msgstr ""
3709
  "الفاصل الزمني الذي يتم استخدامه كخطوة عند إنشاء جميع فترات الوقت للخدمة في "
3710
  "خطوة الوقت. يتجاوز الإعداد الإعدادات العامة في الإعدادات العامة. استخدم "
5888
  msgid ""
5889
  "If this setting is enabled then online meetings will be created for new "
5890
  "appointments with the selected online meeting provider. Make sure that the "
5891
+ "provider is configured properly in Settings > <a href=\"%s\">Online "
5892
  "Meetings</a>"
5893
  msgstr ""
5894
 
5958
  msgid ""
5959
  "This setting allows you to limit the number of appointments that can be "
5960
  "booked by a customer in any given period. Restriction may end after a fixed "
5961
+ "period or with the beginning of the next calendar period - new day, week, "
5962
  "month, etc."
5963
  msgstr ""
5964
  "يتيح لك هذا الإعداد تحديد عدد المواعيد التي يمكن حجزها من قبل العميل في أي "
languages/bookly-cs_CZ.po CHANGED
@@ -2025,8 +2025,8 @@ msgstr ""
2025
  "Snažíte se službu používat příliš často. Prosím, kontaktujte nás pro "
2026
  "vytvoření rezervace."
2027
 
2028
- msgid "Your payment has been accepted for processing."
2029
- msgstr "Vaše platba byla přijata ke zpracování."
2030
 
2031
  msgid ""
2032
  "You selected a booking for {service_name} by {staff_name} at "
@@ -3388,7 +3388,7 @@ msgstr ""
3388
  msgid ""
3389
  "The time interval which is used as a step when building all time slots for "
3390
  "the service at the Time step. The setting overrides global settings in "
3391
- "Settings General. Use Default to apply global settings."
3392
  msgstr ""
3393
 
3394
  msgid "You must select at least one repeat option for recurring services."
@@ -5437,7 +5437,7 @@ msgstr ""
5437
  msgid ""
5438
  "If this setting is enabled then online meetings will be created for new "
5439
  "appointments with the selected online meeting provider. Make sure that the "
5440
- "provider is configured properly in Settings <a href=\"%s\">Online "
5441
  "Meetings</a>"
5442
  msgstr ""
5443
 
@@ -5507,7 +5507,7 @@ msgstr "za rok"
5507
  msgid ""
5508
  "This setting allows you to limit the number of appointments that can be "
5509
  "booked by a customer in any given period. Restriction may end after a fixed "
5510
- "period or with the beginning of the next calendar period new day, week, "
5511
  "month, etc."
5512
  msgstr ""
5513
 
2025
  "Snažíte se službu používat příliš často. Prosím, kontaktujte nás pro "
2026
  "vytvoření rezervace."
2027
 
2028
+ msgid "Your payment has been accepted for processing"
2029
+ msgstr "Vaše platba byla přijata ke zpracování"
2030
 
2031
  msgid ""
2032
  "You selected a booking for {service_name} by {staff_name} at "
3388
  msgid ""
3389
  "The time interval which is used as a step when building all time slots for "
3390
  "the service at the Time step. The setting overrides global settings in "
3391
+ "Settings > General. Use Default to apply global settings."
3392
  msgstr ""
3393
 
3394
  msgid "You must select at least one repeat option for recurring services."
5437
  msgid ""
5438
  "If this setting is enabled then online meetings will be created for new "
5439
  "appointments with the selected online meeting provider. Make sure that the "
5440
+ "provider is configured properly in Settings > <a href=\"%s\">Online "
5441
  "Meetings</a>"
5442
  msgstr ""
5443
 
5507
  msgid ""
5508
  "This setting allows you to limit the number of appointments that can be "
5509
  "booked by a customer in any given period. Restriction may end after a fixed "
5510
+ "period or with the beginning of the next calendar period - new day, week, "
5511
  "month, etc."
5512
  msgstr ""
5513
 
languages/bookly-de_DE.mo CHANGED
Binary file
languages/bookly-de_DE.po CHANGED
@@ -8,8 +8,8 @@ msgstr ""
8
  "Language: de_DE\n"
9
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2020-04-19 10:01+0000\n"
12
- "PO-Revision-Date: 2020-04-19 16:17+0000\n"
13
  "Last-Translator: support@bookly.info\n"
14
  "Language-Team: German\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
@@ -1428,7 +1428,7 @@ msgstr "Löschen"
1428
 
1429
  # Speichern wrong
1430
  msgid "Apply"
1431
- msgstr "Anmeldung"
1432
 
1433
  # Ein weiteres Zeitfenster wurde auf den Seiten angeboten wrong
1434
  msgid "Another time was offered on pages"
@@ -1609,6 +1609,13 @@ msgstr "Mitarbeitereinsatzplan hinzufügen"
1609
  msgid "Add Staff Days Off"
1610
  msgstr "Freie Tage des Mitarbeiters hinzufügen"
1611
 
 
 
 
 
 
 
 
1612
  # Unsichtbare Felder ausblenden wrong
1613
  msgid "Hide visibility field"
1614
  msgstr "Sichtbarkeitsfeld ausblenden"
@@ -1669,6 +1676,9 @@ msgstr ""
1669
  msgid "Capacity"
1670
  msgstr "Kapazität"
1671
 
 
 
 
1672
  msgid "Special hours"
1673
  msgstr "Sondertage"
1674
 
@@ -2111,7 +2121,7 @@ msgid "Staff"
2111
  msgstr "Mitarbeiter"
2112
 
2113
  msgid "Cancel"
2114
- msgstr "Abbrechen"
2115
 
2116
  # Neu planen wrong
2117
  msgid "Reschedule"
@@ -2628,7 +2638,7 @@ msgstr ""
2628
  "uns, um eine Buchung vorzunehmen."
2629
 
2630
  msgid "Your payment has been accepted for processing."
2631
- msgstr "Ihre Zahlung wurde zur Verarbeitung übernommen."
2632
 
2633
  msgid ""
2634
  "You selected a booking for {service_name} by {staff_name} at "
@@ -3034,9 +3044,6 @@ msgstr "Regulärer Preis"
3034
  msgid "Price with custom Sender ID"
3035
  msgstr "Preis mit benutzerdefinierter Absender-ID"
3036
 
3037
- msgid "Order"
3038
- msgstr "Bestellen"
3039
-
3040
  # Gewünscht ID wrong
3041
  msgid "Requested ID"
3042
  msgstr "Angeforderte ID"
@@ -3345,6 +3352,9 @@ msgstr "Ungültige E-Mail."
3345
  msgid "Pending sender ID already exists."
3346
  msgstr "Ausstehende Absender-ID bereits vorhanden."
3347
 
 
 
 
3348
  msgid "Recovery code expired."
3349
  msgstr "Wiederherstellungscode abgelaufen."
3350
 
@@ -3424,78 +3434,63 @@ msgstr "Anhänge"
3424
  msgid "Archived"
3425
  msgstr "Archiviert"
3426
 
3427
- msgid "Send invoice"
3428
- msgstr "Rechnung schicken"
3429
-
3430
- msgid "Company name"
3431
- msgstr "Firmenname"
3432
-
3433
- # Achtung: die Rechnung wird Ihnen an Ihre Paypal E-Mail Adresse geschickt. wrong
3434
- msgid "Note: invoice will be sent to your PayPal email address"
3435
- msgstr "Hinweis: Die Rechnung wird an Ihre PayPal-E-Mail-Adresse gesendet."
3436
-
3437
- msgid "Company address"
3438
- msgstr "Firmenadresse"
3439
-
3440
- # Kopieren Sie die Rechnung in weitere E-Mails wrong
3441
- msgid "Copy invoice to another email(s)"
3442
- msgstr "Kopieren der Rechnung in eine andere E-Mail(s)"
3443
 
3444
- msgid "Enter one or more email addresses separated by commas."
 
 
3445
  msgstr ""
3446
- "Geben Sie eine oder mehrere E-Mail Adressen ein, getrennt durch Kommas.\n"
3447
- "\n"
 
3448
 
3449
- # Firmenadresse Reihe 2 wrong
3450
- msgid "Company address line 2"
3451
- msgstr "Firmenadresse Zeile 2"
 
 
 
 
 
3452
 
3453
- msgid "VAT"
3454
- msgstr "MWST"
 
 
 
 
 
3455
 
3456
- # Its that the Code for registration? if not use Buchungskreis
3457
- msgid "Company code"
3458
- msgstr "Firmen Code"
3459
 
3460
- # Zusätzlicher Text, der in die Rechnung aufgenommen werden soll wrong
3461
- msgid "Additional text to include into invoice"
3462
- msgstr "Zusätzlicher Text zur Aufnahme in die Rechnung"
3463
 
3464
  msgid "SMS Notifications"
3465
  msgstr "SMS Benachrichtigungen"
3466
 
3467
- msgid "Your balance"
3468
- msgstr "Ihr Guthaben"
3469
-
3470
- msgid "Send email notification to administrators at low balance"
3471
- msgstr ""
3472
- "Senden von E-Mail-Benachrichtigung an die Administratoren bei niedrigen "
3473
- "Guthaben"
3474
-
3475
- msgid "Send weekly summary to administrators"
3476
- msgstr "Senden wöchentliche Zusammenfassung für Administratoren"
3477
-
3478
- msgid "Change"
3479
- msgstr "Ändern"
3480
-
3481
  # Zugelassen bei wrong
3482
  msgid "Approved at"
3483
  msgstr "Genehmigt bei"
3484
 
 
 
 
 
 
 
 
 
 
 
3485
  msgid "Log out"
3486
  msgstr "Abmelden"
3487
 
3488
  msgid "Notifications"
3489
  msgstr "Benachrichtigungen"
3490
 
3491
- # Geld hinzufügen wrong
3492
- msgid "Add money"
3493
- msgstr "Geldbetrag hinzufügen"
3494
-
3495
- # Automatische Aufladefunktion wrong
3496
- msgid "Auto-Recharge"
3497
- msgstr "Automatisches Aufladen"
3498
-
3499
  # Einkäufe wrong
3500
  msgid "Purchases"
3501
  msgstr "Bestellungen"
@@ -3601,25 +3596,6 @@ msgstr "Geben Sie den Code aus der E-Mail ein"
3601
  msgid "Repeat new password"
3602
  msgstr "Neues Passwort wiederholen"
3603
 
3604
- # Kennwort ändern wrong
3605
- msgid "Change password"
3606
- msgstr "Passwort ändern"
3607
-
3608
- msgid "Old password"
3609
- msgstr "Altes Passwort"
3610
-
3611
- msgid ""
3612
- "We will only charge your PayPal account when your balance falls below $10."
3613
- msgstr ""
3614
- "Wir belasten nur Ihr PayPal-Konto, sobald Ihr Guthaben unter $10 fällt."
3615
-
3616
- msgid "Enable Auto-Recharge"
3617
- msgstr "Aktivieren Sie Automatische Aufladefunktion"
3618
-
3619
- # Deaktivieren Sie Automatische Aufladefunktion wrong
3620
- msgid "Disable Auto-Recharge"
3621
- msgstr "Automatisches Aufladen abschalten"
3622
-
3623
  msgid ""
3624
  "If you do not see your country in the list please contact us at <a "
3625
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
@@ -3691,21 +3667,89 @@ msgstr "Anfrage abbrechen"
3691
  msgid "Can only contain letters or digits (up to 11 characters)."
3692
  msgstr "Kann nur Buchstaben oder Ziffern (bis zu 11 Zeichen) enthalten."
3693
 
3694
- msgid "Please accept terms and conditions."
3695
- msgstr "Bitte akzeptieren Sie Nutzungsbedingungen."
3696
 
3697
- msgid "Your payment has been interrupted."
3698
- msgstr "Ihre Zahlung wurde unterbrochen."
 
3699
 
3700
- # Automatische Aufladefunktion aktiviert. wrong
3701
- msgid "Auto-Recharge enabled."
3702
- msgstr "Automatisches Aufladen aktiviert."
3703
 
3704
- msgid "You declined the Auto-Recharge of your balance."
3705
- msgstr "Sie lehnten die automatische Aufladung Ihres Guthabens ab."
 
3706
 
3707
- msgid "Please enter old password."
3708
- msgstr "Bitte geben Sie Ihr altes Kennwort ein."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3709
 
3710
  msgid "Last month"
3711
  msgstr "Letzter Monat"
@@ -3720,15 +3764,12 @@ msgstr "Die Absender-ID wird auf den Standardwert zurückgesetzt."
3720
  msgid "No records for selected period."
3721
  msgstr "Keine Einträge für den ausgewählten Zeitraum."
3722
 
3723
- msgid "Invoice"
3724
- msgstr "Rechnung"
3725
-
3726
  msgid ""
3727
- "To generate an invoice you should fill in company information in Bookly > "
3728
- "SMS Notifications > Send invoice."
3729
  msgstr ""
3730
- "Um eine Rechnung zu erstellen, müssen Sie die Firmeninformationen in Bookly "
3731
- "eingeben> SMS Benachrichtigungen > Rechnung schicken."
3732
 
3733
  msgid "enable"
3734
  msgstr "Aktivieren"
@@ -3745,23 +3786,6 @@ msgstr ""
3745
  "Diese Dienstleistung ist vorübergehend nicht verfügbar. Bitte versuchen Sie "
3746
  "es später noch einmal."
3747
 
3748
- # Automatische Aufladefunktion ist fehlgeschlagen, bitte füllen Sie Ihre Guthaben direkt auf. wrong
3749
- msgid "Auto-Recharge has failed, please replenish your balance directly."
3750
- msgstr ""
3751
- "Das automatische Aufladen ist fehlgeschlagen, bitte laden Sie Ihr Guthaben "
3752
- "direkt wieder auf."
3753
-
3754
- # Automatische Aufladefunktion deaktiviert wrong
3755
- msgid "Auto-Recharge disabled"
3756
- msgstr "Automatisches Aufladen deaktiviert"
3757
-
3758
- msgid ""
3759
- "Error. Can't disable Auto-Recharge, you can perform this action in your "
3760
- "PayPal account."
3761
- msgstr ""
3762
- "Fehler. Wir können die automatische Aufladefunktion nicht deaktivieren. Sie "
3763
- "können dies in Ihrem PayPal-Konto durchführen."
3764
-
3765
  msgid "SMS has been sent successfully."
3766
  msgstr "SMS wurde erfolgreich gesendet."
3767
 
@@ -4005,6 +4029,9 @@ msgstr ""
4005
  "Buchungssystems feststellen.\n"
4006
  "\n"
4007
 
 
 
 
4008
  msgid "duration of service"
4009
  msgstr "Dienstleistungslaufzeit"
4010
 
@@ -4170,13 +4197,19 @@ msgstr "Zeitfensterlänge als Dienstleistungslaufzeit"
4170
  msgid ""
4171
  "The time interval which is used as a step when building all time slots for "
4172
  "the service at the Time step. The setting overrides global settings in "
4173
- "Settings General. Use Default to apply global settings."
4174
  msgstr ""
4175
  "Das Zeitintervall, das als Schritt verwendet wird, wenn alle Zeitfenster für "
4176
  "den Dienst im Zeitschritt erstellt werden. Die Einstellung überschreibt die "
4177
  "globalen Einstellungen in den allgemeinen Einstellungen. Verwenden Sie "
4178
  "Standardwerte, um die globalen Einstellungen anzuwenden"
4179
 
 
 
 
 
 
 
4180
  msgid "You must select at least one repeat option for recurring services."
4181
  msgstr ""
4182
  "Für wiederkehrende Leistungen müssen Sie mindestens eine Wiederholungsoption "
@@ -4191,6 +4224,25 @@ msgid_plural "%d services"
4191
  msgstr[0] "%d Dienstleistung"
4192
  msgstr[1] "%d Dienstleistungen"
4193
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4194
  msgid "Welcome to Bookly and thank you for your choice!"
4195
  msgstr "Willkommen bei Bookly und vielen Dank für Ihre Wahl!"
4196
 
@@ -4691,50 +4743,6 @@ msgstr "Bookly Buchungsformular hinzufügen"
4691
  msgid "Insert Appointment Booking Form"
4692
  msgstr "Terminreservierungsformular einfügen"
4693
 
4694
- msgid ""
4695
- "Could you please do me a BIG favor and give it a 5-star rating on WordPress?"
4696
- msgstr ""
4697
- "Könnten Sie mir bitte einen GROSSEN Gefallen tun und bei WordPress ein 5-"
4698
- "Sterne-Rating vergeben?"
4699
-
4700
- msgid "Just to help us spread the word and boost our motivation."
4701
- msgstr ""
4702
- "Einfach um uns zu helfen, die Botschaft zu verkündigen und unsere Motivation "
4703
- "zu steigern."
4704
-
4705
- msgid "Ok, you deserve it"
4706
- msgstr "Ok, Sie haben es sich verdient"
4707
-
4708
- msgid "Nope, maybe later"
4709
- msgstr "Nein, vielleicht später"
4710
-
4711
- msgid "Thank you for the {star} star rating!!!"
4712
- msgstr "Vielen Dank für die {star} Sternebewertung!!!"
4713
-
4714
- msgid "You asked to remind you"
4715
- msgstr "Sie haben darum gebeten, Sie daran zu erinnern"
4716
-
4717
- msgid "Congratulations!!!"
4718
- msgstr "Herzlichen Glückwunsch!!!"
4719
-
4720
- msgid "You just made the <b>10th Sale</b> using Bookly Plugin!"
4721
- msgstr ""
4722
- "Sie haben soeben den <b>10ten Verkauf</b>bei Verwendung des Bookly-Plugin!"
4723
-
4724
- msgid "You just made the <b>100th Sale</b> using Bookly Plugin!"
4725
- msgstr ""
4726
- "Sie haben soeben den <b>100sten Verkauf </b>bei Verwendung des Bookly-Plugin!"
4727
-
4728
- msgid "You just made the <b>1000th Sale</b> using Bookly Plugin!"
4729
- msgstr ""
4730
- "Sie haben soeben den <b>1000sten Verkauf </b>bei Verwendung des Bookly-"
4731
- "Plugin!"
4732
-
4733
- msgid "You just made the <b>10000th Sale</b> using Bookly Plugin!"
4734
- msgstr ""
4735
- "Sie haben soeben den <b>10000sten Verkauf </b>bei Verwendung des Bookly-"
4736
- "Plugin!"
4737
-
4738
  msgid "Send tax information"
4739
  msgstr "Steuerinformationen senden"
4740
 
@@ -5154,6 +5162,112 @@ msgstr "Neue E-Mail Benachrichtigung"
5154
  msgid "Edit email notification"
5155
  msgstr "E-Mail Benachrichtigung bearbeiten"
5156
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5157
  msgid "total quantity of appointments in cart"
5158
  msgstr "Gesamtmenge der Termine im Warenkorb"
5159
 
@@ -5164,6 +5278,50 @@ msgstr "Anmeldeformular"
5164
  msgid "total price of booking"
5165
  msgstr "Gesamtpreis der Buchung"
5166
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5167
  msgid ""
5168
  "To help us improve Bookly, the plugin anonymously collects usage information."
5169
  " You can opt out of sharing the information in Settings > General."
@@ -5180,13 +5338,13 @@ msgstr ""
5180
  "Lassen Sie das Plugin anonym Nutzungsinformationen sammeln, um dem Bookly-"
5181
  "Team zu helfen, das Produkt zu verbessern."
5182
 
 
 
 
5183
  # Widersprechen wrong
5184
  msgid "Disagree"
5185
  msgstr "Nicht einverstanden"
5186
 
5187
- msgid "Agree"
5188
- msgstr "Zustimmen"
5189
-
5190
  #, php-format
5191
  msgid ""
5192
  "<b>Bookly Lite rebrands into Bookly with more features available.</b><br/>"
@@ -5203,6 +5361,31 @@ msgstr ""
5203
  "Blogbeitrag</a>.\n"
5204
  "\n"
5205
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5206
  msgid "This function is not available in the Bookly."
5207
  msgstr "Diese Funktion ist in Bookly nicht verfügbar."
5208
 
@@ -5483,7 +5666,7 @@ msgid "Notification to customer about purchased package"
5483
  msgstr "Benachrichtigung an den Kunden über das gekaufte Paket"
5484
 
5485
  msgid "Your package at {company_name}"
5486
- msgstr "ihr Paket bei {company_name}"
5487
 
5488
  # Danke, dass Sie sich für unser Angebot entschieden haben.
5489
  # wrong
@@ -6700,7 +6883,7 @@ msgstr "Online-Besprechungen erstellen"
6700
  msgid ""
6701
  "If this setting is enabled then online meetings will be created for new "
6702
  "appointments with the selected online meeting provider. Make sure that the "
6703
- "provider is configured properly in Settings <a href=\"%s\">Online "
6704
  "Meetings</a>"
6705
  msgstr ""
6706
  "Wenn diese Einstellung aktiviert ist, werden Online-Besprechungen für neue "
@@ -6747,6 +6930,18 @@ msgstr ""
6747
  "Berechnung der Belegung der Anbieter berücksichtigt werden sollen. 0 "
6748
  "bedeutet den Tag der Buchung."
6749
 
 
 
 
 
 
 
 
 
 
 
 
 
6750
  # Anzahl Termine pro Kunde wrong
6751
  msgid "Limit appointments per customer"
6752
  msgstr "Termine pro Kunde begrenzen"
@@ -6782,7 +6977,7 @@ msgstr "Pro Jahr"
6782
  msgid ""
6783
  "This setting allows you to limit the number of appointments that can be "
6784
  "booked by a customer in any given period. Restriction may end after a fixed "
6785
- "period or with the beginning of the next calendar period new day, week, "
6786
  "month, etc."
6787
  msgstr ""
6788
  "Mit dieser Einstellung können Sie die Anzahl der Termine begrenzen, die von "
@@ -7532,9 +7727,6 @@ msgstr "Kunden begrenzen "
7532
  msgid "Create another coupon"
7533
  msgstr "Einen weiteren Gutschein erstellen"
7534
 
7535
- msgid "Duplicate"
7536
- msgstr "Duplikat"
7537
-
7538
  msgid "No coupons found."
7539
  msgstr "Keine Gutscheine gefunden."
7540
 
@@ -7555,6 +7747,9 @@ msgstr "Die Mindestanzahl der Termine sollte größer als Null sein."
7555
  msgid "Max appointments should be greater than zero."
7556
  msgstr "Maximale Termine sollten größer als Null sein."
7557
 
 
 
 
7558
  # Bitte geben Sie eine nicht-leere Maske ein. wrong
7559
  msgid "Please enter a non empty mask."
7560
  msgstr "Bitte geben Sie eine unausgefüllte Maske ein."
@@ -8354,5 +8549,19 @@ msgstr ""
8354
  "Bookly Termine kopiert. Wenn deaktiviert, wird standardmäßig der Titel "
8355
  "\"Google Kalender Ereignis\" genutzt."
8356
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8357
  msgid "Synchronize with Google Calendar"
8358
  msgstr "Mit Google Kalender synchronisieren"
8
  "Language: de_DE\n"
9
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
10
  "Report-Msgid-Bugs-To: \n"
11
+ "POT-Creation-Date: 2020-06-08 11:37+0000\n"
12
+ "PO-Revision-Date: 2020-06-08 11:47+0000\n"
13
  "Last-Translator: support@bookly.info\n"
14
  "Language-Team: German\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
1428
 
1429
  # Speichern wrong
1430
  msgid "Apply"
1431
+ msgstr "Anwenden"
1432
 
1433
  # Ein weiteres Zeitfenster wurde auf den Seiten angeboten wrong
1434
  msgid "Another time was offered on pages"
1609
  msgid "Add Staff Days Off"
1610
  msgstr "Freie Tage des Mitarbeiters hinzufügen"
1611
 
1612
+ msgid ""
1613
+ "Hide this field if you want to hide the list of WP users from your staff "
1614
+ "members."
1615
+ msgstr ""
1616
+ "Blenden Sie dieses Feld aus, wenn Sie die Liste der WP-Benutzer vor Ihren "
1617
+ "Mitarbeitern verbergen möchten."
1618
+
1619
  # Unsichtbare Felder ausblenden wrong
1620
  msgid "Hide visibility field"
1621
  msgstr "Sichtbarkeitsfeld ausblenden"
1676
  msgid "Capacity"
1677
  msgstr "Kapazität"
1678
 
1679
+ msgid "Hide WordPress users"
1680
+ msgstr "WordPress-Benutzer ausblenden"
1681
+
1682
  msgid "Special hours"
1683
  msgstr "Sondertage"
1684
 
2121
  msgstr "Mitarbeiter"
2122
 
2123
  msgid "Cancel"
2124
+ msgstr "Stornieren"
2125
 
2126
  # Neu planen wrong
2127
  msgid "Reschedule"
2638
  "uns, um eine Buchung vorzunehmen."
2639
 
2640
  msgid "Your payment has been accepted for processing."
2641
+ msgstr "Ihre Zahlung wurde zur Bearbeitung angenommen."
2642
 
2643
  msgid ""
2644
  "You selected a booking for {service_name} by {staff_name} at "
3044
  msgid "Price with custom Sender ID"
3045
  msgstr "Preis mit benutzerdefinierter Absender-ID"
3046
 
 
 
 
3047
  # Gewünscht ID wrong
3048
  msgid "Requested ID"
3049
  msgstr "Angeforderte ID"
3352
  msgid "Pending sender ID already exists."
3353
  msgstr "Ausstehende Absender-ID bereits vorhanden."
3354
 
3355
+ msgid "Recharge not available."
3356
+ msgstr "Aufladen nicht verfügbar."
3357
+
3358
  msgid "Recovery code expired."
3359
  msgstr "Wiederherstellungscode abgelaufen."
3360
 
3434
  msgid "Archived"
3435
  msgstr "Archiviert"
3436
 
3437
+ msgid "Setup your country"
3438
+ msgstr "Ihr Land konfigurieren."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3439
 
3440
+ msgid ""
3441
+ "Please spend a minute to setup your country. This will help us provide you "
3442
+ "with appropriate payment methods when replenishing your account."
3443
  msgstr ""
3444
+ "Bitte nehmen Sie sich eine Minute Zeit, um Ihr Land einzurichten. Dadurch "
3445
+ "können wir Ihnen bei der Auffüllung Ihres Kontos geeignete Zahlungsmethoden "
3446
+ "anbieten."
3447
 
3448
+ msgid ""
3449
+ "The country will also be displayed in the invoice on a separate line below "
3450
+ "the company address. Make sure the other fields in the invoice do not "
3451
+ "contain the name of the country."
3452
+ msgstr ""
3453
+ "Das Land wird auch in der Rechnung in einer separaten Position unterhalb der "
3454
+ "Firmenadresse angezeigt. Stellen Sie sicher, dass die anderen Felder in der "
3455
+ "Rechnung nicht den Namen des Landes enthalten."
3456
 
3457
+ msgid ""
3458
+ "Your country is the location from where you consume Bookly SMS services and "
3459
+ "is used to provide you with the payment methods available in that country"
3460
+ msgstr ""
3461
+ "Ihr Land ist der Standort, von dem aus Sie die SMS-Dienste von Bookly "
3462
+ "konsumieren und dient dazu, Ihnen die in diesem Land verfügbaren "
3463
+ "Zahlungsmethoden zur Verfügung zu stellen."
3464
 
3465
+ msgid "Set country"
3466
+ msgstr "Land festlegen"
 
3467
 
3468
+ msgid "I'll do it later"
3469
+ msgstr "Ich werde es später durchführen."
 
3470
 
3471
  msgid "SMS Notifications"
3472
  msgstr "SMS Benachrichtigungen"
3473
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3474
  # Zugelassen bei wrong
3475
  msgid "Approved at"
3476
  msgstr "Genehmigt bei"
3477
 
3478
+ msgid "Change the sender's name to your phone number or any other name"
3479
+ msgstr ""
3480
+ "Ändern Sie den Namen des Absenders in Ihre Telefonnummer oder einen anderen "
3481
+ "Namen"
3482
+
3483
+ msgid "Click this button to access your Bookly SMS account settings"
3484
+ msgstr ""
3485
+ "Klicken Sie auf diese Schaltfläche, um auf Ihre Bookly SMS-"
3486
+ "Kontoeinstellungen zuzugreifen"
3487
+
3488
  msgid "Log out"
3489
  msgstr "Abmelden"
3490
 
3491
  msgid "Notifications"
3492
  msgstr "Benachrichtigungen"
3493
 
 
 
 
 
 
 
 
 
3494
  # Einkäufe wrong
3495
  msgid "Purchases"
3496
  msgstr "Bestellungen"
3596
  msgid "Repeat new password"
3597
  msgstr "Neues Passwort wiederholen"
3598
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3599
  msgid ""
3600
  "If you do not see your country in the list please contact us at <a "
3601
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3667
  msgid "Can only contain letters or digits (up to 11 characters)."
3668
  msgstr "Kann nur Buchstaben oder Ziffern (bis zu 11 Zeichen) enthalten."
3669
 
3670
+ msgid "Account settings"
3671
+ msgstr "Konto-Einstellungen"
3672
 
3673
+ # Automatische Aufladefunktion wrong
3674
+ msgid "Auto-Recharge"
3675
+ msgstr "Automatisches Aufladen"
3676
 
3677
+ msgid "Invoice"
3678
+ msgstr "Rechnung"
 
3679
 
3680
+ # Kennwort ändern wrong
3681
+ msgid "Change password"
3682
+ msgstr "Passwort ändern"
3683
 
3684
+ #, php-format
3685
+ msgid "We will only charge you when your balance falls bellow %s"
3686
+ msgstr "Wir berechnen Ihnen nur dann Gebühren, wenn Ihr Saldo unter %s fällt"
3687
+
3688
+ msgid "Company name"
3689
+ msgstr "Firmenname"
3690
+
3691
+ msgid "Company address"
3692
+ msgstr "Firmenadresse"
3693
+
3694
+ # Firmenadresse Reihe 2 wrong
3695
+ msgid "Company address line 2"
3696
+ msgstr "Firmenadresse Zeile 2"
3697
+
3698
+ msgid "You can change the country <a href=\"#\">here</a>"
3699
+ msgstr "Sie können das Land <a href=\"#\">hier</a> ändern."
3700
+
3701
+ msgid "Company number"
3702
+ msgstr "Firmennummer"
3703
+
3704
+ msgid "VAT / Tax number"
3705
+ msgstr "Umsatzsteuer-/Steuernummer"
3706
+
3707
+ msgid "Additional text to include in invoice"
3708
+ msgstr "Zusätzlicher Text zur Berücksichtigung in der Rechnung"
3709
+
3710
+ #, php-format
3711
+ msgid "The invoice will be sent to <a href=\"mailto:%1$s\">%1$s</a>"
3712
+ msgstr "Die Rechnung wird an <a href=\"mailto:%1$s\">%1$s</a> gesendet."
3713
+
3714
+ # Kopieren Sie die Rechnung in weitere E-Mails wrong
3715
+ msgid "Copy invoice to another email(s)"
3716
+ msgstr "Kopieren der Rechnung in eine andere E-Mail(s)"
3717
+
3718
+ msgid "Enter one or more email addresses separated by commas."
3719
+ msgstr ""
3720
+ "Geben Sie eine oder mehrere E-Mail Adressen ein, getrennt durch Kommas.\n"
3721
+ "\n"
3722
+
3723
+ msgid "Save invoice settings"
3724
+ msgstr "Rechnungseinstellungen speichern"
3725
+
3726
+ msgid "Send email notification to administrators at low balance"
3727
+ msgstr ""
3728
+ "Senden von E-Mail-Benachrichtigung an die Administratoren bei niedrigen "
3729
+ "Guthaben"
3730
+
3731
+ msgid "Send weekly summary to administrators"
3732
+ msgstr "Senden wöchentliche Zusammenfassung für Administratoren"
3733
+
3734
+ msgid ""
3735
+ "Your country is the location from where you consume Bookly SMS services and "
3736
+ "is used to provide you with the payment methods available in that country."
3737
+ msgstr ""
3738
+ "Ihr Land ist der Standort, von dem aus Sie die SMS-Dienste von Bookly in "
3739
+ "Anspruch nehmen und dient dazu, Ihnen die in diesem Land verfügbaren "
3740
+ "Zahlungsmethoden zur Verfügung zu stellen."
3741
+
3742
+ msgid "Update country"
3743
+ msgstr "Land aktualisieren"
3744
+
3745
+ msgid "Old password"
3746
+ msgstr "Altes Passwort"
3747
+
3748
+ msgid "Please accept terms and conditions."
3749
+ msgstr "Bitte akzeptieren Sie Nutzungsbedingungen."
3750
+
3751
+ msgid "Passwords don't match"
3752
+ msgstr "Passwörter stimmen nicht überein"
3753
 
3754
  msgid "Last month"
3755
  msgstr "Letzter Monat"
3764
  msgid "No records for selected period."
3765
  msgstr "Keine Einträge für den ausgewählten Zeitraum."
3766
 
 
 
 
3767
  msgid ""
3768
+ "To generate an invoice you should fill in company information in Bookly SMS "
3769
+ "Account settings -> Invoice"
3770
  msgstr ""
3771
+ "Um eine Rechnung zu erstellen, müssen Sie Firmeninformationen in den Bookly "
3772
+ "SMS Kontoeinstellungen -> Rechnung eingeben."
3773
 
3774
  msgid "enable"
3775
  msgstr "Aktivieren"
3786
  "Diese Dienstleistung ist vorübergehend nicht verfügbar. Bitte versuchen Sie "
3787
  "es später noch einmal."
3788
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3789
  msgid "SMS has been sent successfully."
3790
  msgstr "SMS wurde erfolgreich gesendet."
3791
 
4029
  "Buchungssystems feststellen.\n"
4030
  "\n"
4031
 
4032
+ msgid "internal note"
4033
+ msgstr "Interne Notiz"
4034
+
4035
  msgid "duration of service"
4036
  msgstr "Dienstleistungslaufzeit"
4037
 
4197
  msgid ""
4198
  "The time interval which is used as a step when building all time slots for "
4199
  "the service at the Time step. The setting overrides global settings in "
4200
+ "Settings > General. Use Default to apply global settings."
4201
  msgstr ""
4202
  "Das Zeitintervall, das als Schritt verwendet wird, wenn alle Zeitfenster für "
4203
  "den Dienst im Zeitschritt erstellt werden. Die Einstellung überschreibt die "
4204
  "globalen Einstellungen in den allgemeinen Einstellungen. Verwenden Sie "
4205
  "Standardwerte, um die globalen Einstellungen anzuwenden"
4206
 
4207
+ msgid "The service will be created with the visibility of Private."
4208
+ msgstr "Die Dienstleistung wird als Privat dargestellt werden."
4209
+
4210
+ msgid "Duplicate"
4211
+ msgstr "Duplikat"
4212
+
4213
  msgid "You must select at least one repeat option for recurring services."
4214
  msgstr ""
4215
  "Für wiederkehrende Leistungen müssen Sie mindestens eine Wiederholungsoption "
4224
  msgstr[0] "%d Dienstleistung"
4225
  msgstr[1] "%d Dienstleistungen"
4226
 
4227
+ #, php-format
4228
+ msgid "Copy of %s"
4229
+ msgstr "Kopie von %s"
4230
+
4231
+ msgid "Auto-refresh Calendar"
4232
+ msgstr "Automatisches Neuladen des Kalenders"
4233
+
4234
+ msgid "Every 1 minute"
4235
+ msgstr "Jede 1te Minute"
4236
+
4237
+ msgid "Every 5 minutes"
4238
+ msgstr "Alle 5 Minuten"
4239
+
4240
+ msgid "Every 15 minutes"
4241
+ msgstr "Alle 15 Minuten"
4242
+
4243
+ msgid "Disable"
4244
+ msgstr "Deaktivieren "
4245
+
4246
  msgid "Welcome to Bookly and thank you for your choice!"
4247
  msgstr "Willkommen bei Bookly und vielen Dank für Ihre Wahl!"
4248
 
4743
  msgid "Insert Appointment Booking Form"
4744
  msgstr "Terminreservierungsformular einfügen"
4745
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4746
  msgid "Send tax information"
4747
  msgstr "Steuerinformationen senden"
4748
 
5162
  msgid "Edit email notification"
5163
  msgstr "E-Mail Benachrichtigung bearbeiten"
5164
 
5165
+ msgid "Thank you"
5166
+ msgstr "Vielen Dank."
5167
+
5168
+ msgid "Your payment has been accepted for processing"
5169
+ msgstr "Ihre Zahlung wurde zur Verarbeitung übernommen"
5170
+
5171
+ msgid "Back to the list of amounts"
5172
+ msgstr "Zurück zur Liste der Betragsangaben"
5173
+
5174
+ msgid "Please select a payment method"
5175
+ msgstr "Bitte wählen Sie eine Zahlungsmethode"
5176
+
5177
+ msgid "Credit card"
5178
+ msgstr "Kreditkarte"
5179
+
5180
+ msgid "Account recharge"
5181
+ msgstr "Konto aufladen"
5182
+
5183
+ msgid "Oops"
5184
+ msgstr "Ups"
5185
+
5186
+ msgid "Your payment has been cancelled"
5187
+ msgstr "Ihre Zahlung wurde storniert"
5188
+
5189
+ msgid "Please select an amount and recharge your account"
5190
+ msgstr "Bitte wählen Sie einen Betrag und laden Sie Ihr Konto auf"
5191
+
5192
+ msgid "Pay using"
5193
+ msgstr "Bezahlen über"
5194
+
5195
+ msgid "Continue with"
5196
+ msgstr "Fahren Sie fort mit"
5197
+
5198
+ msgid "Auto-Recharge has been enabled"
5199
+ msgstr "Automatisches Aufladen wurde aktiviert"
5200
+
5201
+ msgid "Auto-Recharge has been cancelled"
5202
+ msgstr "Das automatische Aufladen wurde abgebrochen"
5203
+
5204
+ msgid "current<br/>balance"
5205
+ msgstr "aktueller<br/>Kontostand"
5206
+
5207
+ msgid "Recharge"
5208
+ msgstr "Aufladen"
5209
+
5210
+ msgid "users choice"
5211
+ msgstr "Benutzer-Auswahl"
5212
+
5213
+ msgid "Buy now"
5214
+ msgstr "Jetzt kaufen!"
5215
+
5216
+ msgid "Best offer"
5217
+ msgstr "Bestes Angebot"
5218
+
5219
+ msgid "Users choice"
5220
+ msgstr "Auswahl für Benutzer"
5221
+
5222
+ msgid "Other options"
5223
+ msgstr "Andere Optionen"
5224
+
5225
+ msgid "best offer"
5226
+ msgstr "bestes Angebot"
5227
+
5228
+ msgid "Select amount of Auto-Recharge"
5229
+ msgstr "Betrag für das automatische Aufladen auswählen"
5230
+
5231
+ msgid "Enable"
5232
+ msgstr "Aktivieren "
5233
+
5234
+ # Deaktivieren Sie Automatische Aufladefunktion wrong
5235
+ msgid "Disable Auto-Recharge"
5236
+ msgstr "Automatisches Aufladen abschalten"
5237
+
5238
+ msgid "Are you sure you want to disable Auto-Recharge?"
5239
+ msgstr ""
5240
+ "Sind Sie sicher, daß Sie das automatische Aufladen deaktivieren wollen?"
5241
+
5242
+ msgid "Turn on Auto-Recharge and get even more"
5243
+ msgstr "Aktivieren Sie die automatische Aufladung und erhalten Sie noch mehr"
5244
+
5245
+ # Automatische Aufladefunktion deaktiviert wrong
5246
+ msgid "Auto-Recharge disabled"
5247
+ msgstr "Automatisches Aufladen deaktiviert"
5248
+
5249
+ #, php-format
5250
+ msgid "Can't disable Auto-Recharge, please contact us at %s"
5251
+ msgstr ""
5252
+ "Das automatische Aufladen kann nicht deaktiviert werden, bitte kontaktieren "
5253
+ "Sie uns unter %s"
5254
+
5255
+ # Automatische Aufladefunktion ist fehlgeschlagen, bitte füllen Sie Ihre Guthaben direkt auf. wrong
5256
+ msgid "Auto-Recharge has failed, please replenish your balance directly."
5257
+ msgstr ""
5258
+ "Das automatische Aufladen ist fehlgeschlagen, bitte laden Sie Ihr Guthaben "
5259
+ "direkt wieder auf."
5260
+
5261
+ msgid "Card payment has failed, please use another payment option"
5262
+ msgstr ""
5263
+ "Die Kartenzahlung ist fehlgeschlagen, bitte verwenden Sie eine andere "
5264
+ "Zahlungsoption"
5265
+
5266
+ msgid "Payment has failed, please use another payment option"
5267
+ msgstr ""
5268
+ "Die Zahlung ist fehlgeschlagen, bitte verwenden Sie eine andere "
5269
+ "Zahlungsoption"
5270
+
5271
  msgid "total quantity of appointments in cart"
5272
  msgstr "Gesamtmenge der Termine im Warenkorb"
5273
 
5278
  msgid "total price of booking"
5279
  msgstr "Gesamtpreis der Buchung"
5280
 
5281
+ msgid ""
5282
+ "Could you please do me a BIG favor and give it a 5-star rating on WordPress?"
5283
+ msgstr ""
5284
+ "Könnten Sie mir bitte einen GROSSEN Gefallen tun und bei WordPress ein 5-"
5285
+ "Sterne-Rating vergeben?"
5286
+
5287
+ msgid "Just to help us spread the word and boost our motivation."
5288
+ msgstr ""
5289
+ "Einfach um uns zu helfen, die Botschaft zu verkündigen und unsere Motivation "
5290
+ "zu steigern."
5291
+
5292
+ msgid "Ok, you deserve it"
5293
+ msgstr "Ok, Sie haben es sich verdient"
5294
+
5295
+ msgid "Nope, maybe later"
5296
+ msgstr "Nein, vielleicht später"
5297
+
5298
+ msgid "Thank you for the {star} star rating!!!"
5299
+ msgstr "Vielen Dank für die {star} Sternebewertung!!!"
5300
+
5301
+ msgid "You asked to remind you"
5302
+ msgstr "Sie haben darum gebeten, Sie daran zu erinnern"
5303
+
5304
+ msgid "Congratulations!!!"
5305
+ msgstr "Herzlichen Glückwunsch!!!"
5306
+
5307
+ msgid "You just made the <b>10th Sale</b> using Bookly Plugin!"
5308
+ msgstr ""
5309
+ "Sie haben soeben den <b>10ten Verkauf</b>bei Verwendung des Bookly-Plugin!"
5310
+
5311
+ msgid "You just made the <b>100th Sale</b> using Bookly Plugin!"
5312
+ msgstr ""
5313
+ "Sie haben soeben den <b>100sten Verkauf </b>bei Verwendung des Bookly-Plugin!"
5314
+
5315
+ msgid "You just made the <b>1000th Sale</b> using Bookly Plugin!"
5316
+ msgstr ""
5317
+ "Sie haben soeben den <b>1000sten Verkauf </b>bei Verwendung des Bookly-"
5318
+ "Plugin!"
5319
+
5320
+ msgid "You just made the <b>10000th Sale</b> using Bookly Plugin!"
5321
+ msgstr ""
5322
+ "Sie haben soeben den <b>10000sten Verkauf </b>bei Verwendung des Bookly-"
5323
+ "Plugin!"
5324
+
5325
  msgid ""
5326
  "To help us improve Bookly, the plugin anonymously collects usage information."
5327
  " You can opt out of sharing the information in Settings > General."
5338
  "Lassen Sie das Plugin anonym Nutzungsinformationen sammeln, um dem Bookly-"
5339
  "Team zu helfen, das Produkt zu verbessern."
5340
 
5341
+ msgid "Agree"
5342
+ msgstr "Zustimmen"
5343
+
5344
  # Widersprechen wrong
5345
  msgid "Disagree"
5346
  msgstr "Nicht einverstanden"
5347
 
 
 
 
5348
  #, php-format
5349
  msgid ""
5350
  "<b>Bookly Lite rebrands into Bookly with more features available.</b><br/>"
5361
  "Blogbeitrag</a>.\n"
5362
  "\n"
5363
 
5364
+ #, php-format
5365
+ msgid "Recharge your account and get up to %s extra."
5366
+ msgstr "Laden Sie Ihr Konto auf und erhalten Sie bis zu %s extra."
5367
+
5368
+ msgid ""
5369
+ "Send SMS notifications to your customers, increasing their loyalty and "
5370
+ "involvement."
5371
+ msgstr ""
5372
+ "Senden Sie SMS-Benachrichtigungen an Ihre Kunden und erhöhen Sie so deren "
5373
+ "Loyalität und Involvierung."
5374
+
5375
+ #, php-format
5376
+ msgid "Enable Auto-Recharge and get up to %s extra."
5377
+ msgstr ""
5378
+ "Aktivieren Sie die automatische Aufladung und erhalten Sie bis zu %s extra."
5379
+
5380
+ msgid ""
5381
+ "Let your clients receive notifications on time - don't let the service stop."
5382
+ msgstr ""
5383
+ "Ermöglichen Sie es Ihren Kunden, Benachrichtigungen rechtzeitig zu erhalten -"
5384
+ " damit der Service nicht aufhört."
5385
+
5386
+ msgid "Remind me later"
5387
+ msgstr "Erinnern Sie mich später daran"
5388
+
5389
  msgid "This function is not available in the Bookly."
5390
  msgstr "Diese Funktion ist in Bookly nicht verfügbar."
5391
 
5666
  msgstr "Benachrichtigung an den Kunden über das gekaufte Paket"
5667
 
5668
  msgid "Your package at {company_name}"
5669
+ msgstr "Ihr Paket bei {company_name}"
5670
 
5671
  # Danke, dass Sie sich für unser Angebot entschieden haben.
5672
  # wrong
6883
  msgid ""
6884
  "If this setting is enabled then online meetings will be created for new "
6885
  "appointments with the selected online meeting provider. Make sure that the "
6886
+ "provider is configured properly in Settings > <a href=\"%s\">Online "
6887
  "Meetings</a>"
6888
  msgstr ""
6889
  "Wenn diese Einstellung aktiviert ist, werden Online-Besprechungen für neue "
6930
  "Berechnung der Belegung der Anbieter berücksichtigt werden sollen. 0 "
6931
  "bedeutet den Tag der Buchung."
6932
 
6933
+ msgid "Pick random staff member in case of uncertainty"
6934
+ msgstr "Wählen Sie einen zufälligen Mitarbeiter im Falle von Unklarheit aus"
6935
+
6936
+ msgid ""
6937
+ "Enable this option to pick a random staff member if both meet the criteria "
6938
+ "chosen in \"Providers preference for ANY\". Otherwise the selection order is "
6939
+ "unknown."
6940
+ msgstr ""
6941
+ "Aktivieren Sie diese Option, um einen Mitarbeiter nach dem Zufallsprinzip "
6942
+ "auszuwählen, wenn beide die unter \"Anbieter bevorzugt für JEDEN\" gewählten "
6943
+ "Kriterien erfüllen. Andernfalls ist die Reihenfolge der Auswahl unbekannt."
6944
+
6945
  # Anzahl Termine pro Kunde wrong
6946
  msgid "Limit appointments per customer"
6947
  msgstr "Termine pro Kunde begrenzen"
6977
  msgid ""
6978
  "This setting allows you to limit the number of appointments that can be "
6979
  "booked by a customer in any given period. Restriction may end after a fixed "
6980
+ "period or with the beginning of the next calendar period - new day, week, "
6981
  "month, etc."
6982
  msgstr ""
6983
  "Mit dieser Einstellung können Sie die Anzahl der Termine begrenzen, die von "
7727
  msgid "Create another coupon"
7728
  msgstr "Einen weiteren Gutschein erstellen"
7729
 
 
 
 
7730
  msgid "No coupons found."
7731
  msgstr "Keine Gutscheine gefunden."
7732
 
7747
  msgid "Max appointments should be greater than zero."
7748
  msgstr "Maximale Termine sollten größer als Null sein."
7749
 
7750
+ msgid "The code already exists"
7751
+ msgstr "Der Code existiert bereits"
7752
+
7753
  # Bitte geben Sie eine nicht-leere Maske ein. wrong
7754
  msgid "Please enter a non empty mask."
7755
  msgstr "Bitte geben Sie eine unausgefüllte Maske ein."
8549
  "Bookly Termine kopiert. Wenn deaktiviert, wird standardmäßig der Titel "
8550
  "\"Google Kalender Ereignis\" genutzt."
8551
 
8552
+ msgid "Overwrite the description of the original Google Calendar events"
8553
+ msgstr ""
8554
+ "Überschreiben Sie die Beschreibung der ursprünglichen Google Kalender-"
8555
+ "Veranstaltungen."
8556
+
8557
+ msgid ""
8558
+ "If enabled then the description of the Google Calendar events originally "
8559
+ "copied to Bookly will be overwritten by the Bookly appointment data after "
8560
+ "they have been edited in Bookly Calendar"
8561
+ msgstr ""
8562
+ "Wenn diese Option aktiviert ist, wird die Beschreibung der Google Kalender-"
8563
+ "Termine, die ursprünglich in Bookly kopiert wurden, durch die Termindaten "
8564
+ "von Bookly überschrieben, nachdem sie in Bookly Kalender bearbeitet wurden."
8565
+
8566
  msgid "Synchronize with Google Calendar"
8567
  msgstr "Mit Google Kalender synchronisieren"
languages/bookly-es_ES.mo CHANGED
Binary file
languages/bookly-es_ES.po CHANGED
@@ -8,8 +8,8 @@ msgstr ""
8
  "Language: es_ES\n"
9
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2020-04-15 16:58+0000\n"
12
- "PO-Revision-Date: 2020-04-16 18:16+0000\n"
13
  "Last-Translator: support@bookly.info\n"
14
  "Language-Team: Spanish (Spain)\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
@@ -1488,6 +1488,13 @@ msgstr "Agregar Horario del Personal"
1488
  msgid "Add Staff Days Off"
1489
  msgstr "Añadir Días Libres del Personal"
1490
 
 
 
 
 
 
 
 
1491
  msgid "Hide visibility field"
1492
  msgstr "Ocultar campo de visibilidad"
1493
 
@@ -1536,6 +1543,9 @@ msgstr "Un bloque personalizado para mostrar los días libres del personal"
1536
  msgid "Capacity"
1537
  msgstr "Capacidad"
1538
 
 
 
 
1539
  msgid "Special hours"
1540
  msgstr "Horas especiales"
1541
 
@@ -2811,9 +2821,6 @@ msgstr "Precio regular"
2811
  msgid "Price with custom Sender ID"
2812
  msgstr "Precio con el ID del remitente personalizado"
2813
 
2814
- msgid "Order"
2815
- msgstr "Orden"
2816
-
2817
  msgid "Requested ID"
2818
  msgstr "ID solicitado"
2819
 
@@ -3104,6 +3111,9 @@ msgstr "Email inválido."
3104
  msgid "Pending sender ID already exists."
3105
  msgstr "A la espera de ID del remitente ya existe."
3106
 
 
 
 
3107
  msgid "Recovery code expired."
3108
  msgstr "Código de Recuperación expiró."
3109
 
@@ -3179,57 +3189,53 @@ msgstr "Archivos adjuntos"
3179
  msgid "Archived"
3180
  msgstr "Archivado"
3181
 
3182
- msgid "Send invoice"
3183
- msgstr "Enviar factura"
3184
-
3185
- msgid "Company name"
3186
- msgstr "Nombre de la compañía"
3187
 
3188
- msgid "Note: invoice will be sent to your PayPal email address"
 
 
3189
  msgstr ""
3190
- "Nota: la factura será enviada a tu dirección de correo electrónico de PayPal"
 
3191
 
3192
- msgid "Company address"
3193
- msgstr "Dirección de la empresa"
3194
-
3195
- msgid "Copy invoice to another email(s)"
3196
- msgstr "Copiar factura a otro/s correo/s electrónico/s"
3197
-
3198
- msgid "Enter one or more email addresses separated by commas."
3199
  msgstr ""
3200
- "Introduzca una o más direcciones de correo electrónico separadas por comas."
 
 
3201
 
3202
- msgid "Company address line 2"
3203
- msgstr "Línea 2 de la dirección de la empresa"
3204
-
3205
- msgid "VAT"
3206
- msgstr "C.I.F."
 
3207
 
3208
- msgid "Company code"
3209
- msgstr "Codigo de la empresa"
3210
 
3211
- msgid "Additional text to include into invoice"
3212
- msgstr "Texto adicional para incluir en la factura"
3213
 
3214
  msgid "SMS Notifications"
3215
  msgstr "Notificaciones de SMS"
3216
 
3217
- msgid "Your balance"
3218
- msgstr "Tu saldo"
3219
 
3220
- msgid "Send email notification to administrators at low balance"
3221
  msgstr ""
3222
- "Enviar notificación por correo electrónico a los administradores a baja "
3223
- "equilibrio"
3224
-
3225
- msgid "Send weekly summary to administrators"
3226
- msgstr "Enviar resumen semanal para los administradores"
3227
 
3228
- msgid "Change"
3229
- msgstr "Cambiar"
3230
-
3231
- msgid "Approved at"
3232
- msgstr "Aprobada en"
3233
 
3234
  msgid "Log out"
3235
  msgstr "Cerrar sesión"
@@ -3237,12 +3243,6 @@ msgstr "Cerrar sesión"
3237
  msgid "Notifications"
3238
  msgstr "Notificaciones"
3239
 
3240
- msgid "Add money"
3241
- msgstr "Añadir dinero"
3242
-
3243
- msgid "Auto-Recharge"
3244
- msgstr "Auto-Recarga"
3245
-
3246
  msgid "Purchases"
3247
  msgstr "Las compras"
3248
 
@@ -3341,22 +3341,6 @@ msgstr "Introduzca el código de correo electrónico"
3341
  msgid "Repeat new password"
3342
  msgstr "Repita la nueva contraseña"
3343
 
3344
- msgid "Change password"
3345
- msgstr "Cambiar la contraseña"
3346
-
3347
- msgid "Old password"
3348
- msgstr "Contraseña anterior"
3349
-
3350
- msgid ""
3351
- "We will only charge your PayPal account when your balance falls below $10."
3352
- msgstr "Sólo se cargará en su cuenta PayPal cuando su saldo es inferior a $10."
3353
-
3354
- msgid "Enable Auto-Recharge"
3355
- msgstr "Activar Auto-Recarga"
3356
-
3357
- msgid "Disable Auto-Recharge"
3358
- msgstr "Desactivar Auto-Recarga"
3359
-
3360
  msgid ""
3361
  "If you do not see your country in the list please contact us at <a "
3362
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
@@ -3425,20 +3409,83 @@ msgstr "Cancelar petición"
3425
  msgid "Can only contain letters or digits (up to 11 characters)."
3426
  msgstr "Sólo puede contener letras o dígitos (hasta 11 caracteres)."
3427
 
3428
- msgid "Please accept terms and conditions."
3429
- msgstr "Por favor, acepte los términos y condiciones."
3430
 
3431
- msgid "Your payment has been interrupted."
3432
- msgstr "Su pago se ha interrumpido."
3433
 
3434
- msgid "Auto-Recharge enabled."
3435
- msgstr "Activar Auto-Recarga."
3436
 
3437
- msgid "You declined the Auto-Recharge of your balance."
3438
- msgstr "Usted declinó la Auto-Recarga de su saldo."
3439
 
3440
- msgid "Please enter old password."
3441
- msgstr "Introduzca la contraseña anterior."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3442
 
3443
  msgid "Last month"
3444
  msgstr "El mes pasado"
@@ -3452,15 +3499,12 @@ msgstr "ID del remitente se restablece a los valores predeterminados."
3452
  msgid "No records for selected period."
3453
  msgstr "No hay registros para el período seleccionado."
3454
 
3455
- msgid "Invoice"
3456
- msgstr "Factura"
3457
-
3458
  msgid ""
3459
- "To generate an invoice you should fill in company information in Bookly > "
3460
- "SMS Notifications > Send invoice."
3461
  msgstr ""
3462
- "Para generar una factura, debe completar la información de la compañía en "
3463
- "Bookly> Notificaciones por SMS> Enviar factura."
3464
 
3465
  msgid "enable"
3466
  msgstr "habilitar"
@@ -3476,19 +3520,6 @@ msgstr ""
3476
  "El servicio no está disponible temporalmente. Por favor, inténtelo de nuevo "
3477
  "más tarde."
3478
 
3479
- msgid "Auto-Recharge has failed, please replenish your balance directly."
3480
- msgstr "Auto-Recarga ha fallado, por favor reponer el equilibrio directamente."
3481
-
3482
- msgid "Auto-Recharge disabled"
3483
- msgstr "Auto-Recarga deshabilitado"
3484
-
3485
- msgid ""
3486
- "Error. Can't disable Auto-Recharge, you can perform this action in your "
3487
- "PayPal account."
3488
- msgstr ""
3489
- "Error. No se puede deshabilitar la Recarga Automática, puede realizar esta "
3490
- "acción en su cuenta PayPal."
3491
-
3492
  msgid "SMS has been sent successfully."
3493
  msgstr "SMS ha sido enviado con éxito."
3494
 
@@ -3703,6 +3734,9 @@ msgstr ""
3703
  "Asegúrese de revisar el horario de sus miembros del personal si tiene algún "
3704
  "comportamiento inesperado del sistema de reservas."
3705
 
 
 
 
3706
  msgid "duration of service"
3707
  msgstr "duración del servicio"
3708
 
@@ -3860,13 +3894,19 @@ msgstr "Longitud de la franja como duración del servicio"
3860
  msgid ""
3861
  "The time interval which is used as a step when building all time slots for "
3862
  "the service at the Time step. The setting overrides global settings in "
3863
- "Settings General. Use Default to apply global settings."
3864
  msgstr ""
3865
  "Intervalo de tiempo que se utiliza como paso al crear todas las franjas "
3866
  "horarias para el servicio en el paso Tiempo. La configuración invalida la "
3867
  "configuración global en Configuración General. Utiliza Predeterminado para "
3868
  "aplicar la configuración global."
3869
 
 
 
 
 
 
 
3870
  msgid "You must select at least one repeat option for recurring services."
3871
  msgstr ""
3872
  "Debe seleccionar al menos una opción de repetición para servicios "
@@ -3881,6 +3921,25 @@ msgid_plural "%d services"
3881
  msgstr[0] "%d servicio"
3882
  msgstr[1] "%d servicios"
3883
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3884
  msgid "Welcome to Bookly and thank you for your choice!"
3885
  msgstr "¡Bienvenido a Bookly y gracias por tu elección!"
3886
 
@@ -4332,45 +4391,6 @@ msgstr "Añadir formulario de cita Bookly"
4332
  msgid "Insert Appointment Booking Form"
4333
  msgstr "Inserte formulario de reserva de cita"
4334
 
4335
- msgid ""
4336
- "Could you please do me a BIG favor and give it a 5-star rating on WordPress?"
4337
- msgstr ""
4338
- "¿Podría hacerme un GRAN favor y darle una calificación de 5 estrellas en "
4339
- "WordPress?"
4340
-
4341
- msgid "Just to help us spread the word and boost our motivation."
4342
- msgstr "Solo para ayudarnos a correr la voz y aumentar nuestra motivación."
4343
-
4344
- msgid "Ok, you deserve it"
4345
- msgstr "Ok, usted lo ha pedido"
4346
-
4347
- msgid "Nope, maybe later"
4348
- msgstr "No, tal vez más tarde"
4349
-
4350
- msgid "Thank you for the {star} star rating!!!"
4351
- msgstr "¡Gracias por la calificación de estrellas {star}!"
4352
-
4353
- msgid "You asked to remind you"
4354
- msgstr "Ha pedido que se le recuerde"
4355
-
4356
- msgid "Congratulations!!!"
4357
- msgstr "¡¡¡Felicidades!!!"
4358
-
4359
- msgid "You just made the <b>10th Sale</b> using Bookly Plugin!"
4360
- msgstr "¡Acaba de hacer la<b>Venta número 10</b> usando el complemento Bookly!"
4361
-
4362
- msgid "You just made the <b>100th Sale</b> using Bookly Plugin!"
4363
- msgstr ""
4364
- "¡Acaba de hacer la<b>Venta número 100</b> usando el complemento Bookly!"
4365
-
4366
- msgid "You just made the <b>1000th Sale</b> using Bookly Plugin!"
4367
- msgstr ""
4368
- "¡Acaba de hacer la<b>Venta número 1.000</b> usando el complemento Bookly!"
4369
-
4370
- msgid "You just made the <b>10000th Sale</b> using Bookly Plugin!"
4371
- msgstr ""
4372
- "¡Acaba de hacer la<b>Venta número 10.000</b> usando el complemento Bookly!"
4373
-
4374
  msgid "Send tax information"
4375
  msgstr "Enviar información fiscal"
4376
 
@@ -4747,6 +4767,101 @@ msgstr "Notificación de nuevo correo electrónico"
4747
  msgid "Edit email notification"
4748
  msgstr "Editar notificación de correo electrónico"
4749
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4750
  msgid "total quantity of appointments in cart"
4751
  msgstr "cantidad total de citas en el carrito"
4752
 
@@ -4756,6 +4871,45 @@ msgstr "formulario de acceso"
4756
  msgid "total price of booking"
4757
  msgstr "precio total de la reserva"
4758
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4759
  msgid ""
4760
  "To help us improve Bookly, the plugin anonymously collects usage information."
4761
  " You can opt out of sharing the information in Settings > General."
@@ -4771,12 +4925,12 @@ msgstr ""
4771
  "Deje que el complemento recopile de forma anónima información de uso para "
4772
  "ayudar al equipo de Bookly a mejorar el producto."
4773
 
4774
- msgid "Disagree"
4775
- msgstr "Disentir"
4776
-
4777
  msgid "Agree"
4778
  msgstr "Aprobar"
4779
 
 
 
 
4780
  #, php-format
4781
  msgid ""
4782
  "<b>Bookly Lite rebrands into Bookly with more features available.</b><br/>"
@@ -4792,6 +4946,30 @@ msgstr ""
4792
  "importante actualización de Bookly, consulte nuestra <a href=\"%s\" "
4793
  "target=\"_blank\">entrada del blog</a>."
4794
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4795
  msgid "This function is not available in the Bookly."
4796
  msgstr "Esta función no está disponible en Bookly."
4797
 
@@ -6148,7 +6326,7 @@ msgstr "Crear reuniones en línea"
6148
  msgid ""
6149
  "If this setting is enabled then online meetings will be created for new "
6150
  "appointments with the selected online meeting provider. Make sure that the "
6151
- "provider is configured properly in Settings <a href=\"%s\">Online "
6152
  "Meetings</a>"
6153
  msgstr ""
6154
  "Si esta configuración está habilitada, se crearán reuniones en línea para "
@@ -6191,6 +6369,18 @@ msgstr ""
6191
  "cuenta al calcular la ocupación de los proveedores. 0 significa el día de la "
6192
  "reserva."
6193
 
 
 
 
 
 
 
 
 
 
 
 
 
6194
  msgid "Limit appointments per customer"
6195
  msgstr "Limitar citas por cliente"
6196
 
@@ -6224,7 +6414,7 @@ msgstr "por año"
6224
  msgid ""
6225
  "This setting allows you to limit the number of appointments that can be "
6226
  "booked by a customer in any given period. Restriction may end after a fixed "
6227
- "period or with the beginning of the next calendar period new day, week, "
6228
  "month, etc."
6229
  msgstr ""
6230
  "Esta configuración te permite limitar el número de citas que un cliente "
@@ -6899,9 +7089,6 @@ msgstr "Límite a los clientes"
6899
  msgid "Create another coupon"
6900
  msgstr "Crear otro cupón"
6901
 
6902
- msgid "Duplicate"
6903
- msgstr "Duplicar"
6904
-
6905
  msgid "No coupons found."
6906
  msgstr "No se encontraron cupones."
6907
 
@@ -6920,6 +7107,9 @@ msgstr "Las citas mínimas deben ser mayores que cero."
6920
  msgid "Max appointments should be greater than zero."
6921
  msgstr "Las citas máximas deben ser mayores que cero."
6922
 
 
 
 
6923
  msgid "Please enter a non empty mask."
6924
  msgstr "Por favor, ingrese una máscara que no esté vacía."
6925
 
@@ -7643,5 +7833,19 @@ msgstr ""
7643
  "copiarán en las citas de Bookly. Si está desactivado, se usará un título "
7644
  "estándar \"Evento del Calendario de Google\"."
7645
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7646
  msgid "Synchronize with Google Calendar"
7647
  msgstr "Sincronizar con el Calendario de Google"
8
  "Language: es_ES\n"
9
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
10
  "Report-Msgid-Bugs-To: \n"
11
+ "POT-Creation-Date: 2020-06-03 15:11+0000\n"
12
+ "PO-Revision-Date: 2020-06-07 17:16+0000\n"
13
  "Last-Translator: support@bookly.info\n"
14
  "Language-Team: Spanish (Spain)\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
1488
  msgid "Add Staff Days Off"
1489
  msgstr "Añadir Días Libres del Personal"
1490
 
1491
+ msgid ""
1492
+ "Hide this field if you want to hide the list of WP users from your staff "
1493
+ "members."
1494
+ msgstr ""
1495
+ "Oculte este campo si desea ocultar la lista de usuarios de WP de los "
1496
+ "miembros de su personal."
1497
+
1498
  msgid "Hide visibility field"
1499
  msgstr "Ocultar campo de visibilidad"
1500
 
1543
  msgid "Capacity"
1544
  msgstr "Capacidad"
1545
 
1546
+ msgid "Hide WordPress users"
1547
+ msgstr "Ocultar usuarios de WordPress"
1548
+
1549
  msgid "Special hours"
1550
  msgstr "Horas especiales"
1551
 
2821
  msgid "Price with custom Sender ID"
2822
  msgstr "Precio con el ID del remitente personalizado"
2823
 
 
 
 
2824
  msgid "Requested ID"
2825
  msgstr "ID solicitado"
2826
 
3111
  msgid "Pending sender ID already exists."
3112
  msgstr "A la espera de ID del remitente ya existe."
3113
 
3114
+ msgid "Recharge not available."
3115
+ msgstr "Recarga no disponible."
3116
+
3117
  msgid "Recovery code expired."
3118
  msgstr "Código de Recuperación expiró."
3119
 
3189
  msgid "Archived"
3190
  msgstr "Archivado"
3191
 
3192
+ msgid "Setup your country"
3193
+ msgstr "Establezca su país"
 
 
 
3194
 
3195
+ msgid ""
3196
+ "Please spend a minute to setup your country. This will help us provide you "
3197
+ "with appropriate payment methods when replenishing your account."
3198
  msgstr ""
3199
+ "Dedique un minuto a configurar su país. Esto nos ayudará a proporcionarle "
3200
+ "los métodos de pago adecuados al recargar su cuenta."
3201
 
3202
+ msgid ""
3203
+ "The country will also be displayed in the invoice on a separate line below "
3204
+ "the company address. Make sure the other fields in the invoice do not "
3205
+ "contain the name of the country."
 
 
 
3206
  msgstr ""
3207
+ "El país también se mostrará en la factura en una línea separada debajo de la "
3208
+ "dirección de la empresa. Asegúrese de que los otros campos en la factura no "
3209
+ "contengan el nombre del país."
3210
 
3211
+ msgid ""
3212
+ "Your country is the location from where you consume Bookly SMS services and "
3213
+ "is used to provide you with the payment methods available in that country"
3214
+ msgstr ""
3215
+ "Su país es la ubicación desde donde utiliza los servicios de Bookly SMS y se "
3216
+ "usa para proporcionarle los métodos de pago disponibles en ese país."
3217
 
3218
+ msgid "Set country"
3219
+ msgstr "Establecer país"
3220
 
3221
+ msgid "I'll do it later"
3222
+ msgstr "lo haré después"
3223
 
3224
  msgid "SMS Notifications"
3225
  msgstr "Notificaciones de SMS"
3226
 
3227
+ msgid "Approved at"
3228
+ msgstr "Aprobada en"
3229
 
3230
+ msgid "Change the sender's name to your phone number or any other name"
3231
  msgstr ""
3232
+ "Cambie el nombre del remitente con su número de teléfono o cualquier otro "
3233
+ "nombre"
 
 
 
3234
 
3235
+ msgid "Click this button to access your Bookly SMS account settings"
3236
+ msgstr ""
3237
+ "Haga clic en este botón para acceder a la configuración de su cuenta Bookly "
3238
+ "SMS"
 
3239
 
3240
  msgid "Log out"
3241
  msgstr "Cerrar sesión"
3243
  msgid "Notifications"
3244
  msgstr "Notificaciones"
3245
 
 
 
 
 
 
 
3246
  msgid "Purchases"
3247
  msgstr "Las compras"
3248
 
3341
  msgid "Repeat new password"
3342
  msgstr "Repita la nueva contraseña"
3343
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3344
  msgid ""
3345
  "If you do not see your country in the list please contact us at <a "
3346
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3409
  msgid "Can only contain letters or digits (up to 11 characters)."
3410
  msgstr "Sólo puede contener letras o dígitos (hasta 11 caracteres)."
3411
 
3412
+ msgid "Account settings"
3413
+ msgstr "Configuraciones de la cuenta"
3414
 
3415
+ msgid "Auto-Recharge"
3416
+ msgstr "Auto-Recarga"
3417
 
3418
+ msgid "Invoice"
3419
+ msgstr "Factura"
3420
 
3421
+ msgid "Change password"
3422
+ msgstr "Cambiar la contraseña"
3423
 
3424
+ #, php-format
3425
+ msgid "We will only charge you when your balance falls bellow %s"
3426
+ msgstr "Solo le cargaremos cuando su saldo sea inferior a %s"
3427
+
3428
+ msgid "Company name"
3429
+ msgstr "Nombre de la compañía"
3430
+
3431
+ msgid "Company address"
3432
+ msgstr "Dirección de la empresa"
3433
+
3434
+ msgid "Company address line 2"
3435
+ msgstr "Línea 2 de la dirección de la empresa"
3436
+
3437
+ msgid "You can change the country <a href=\"#\">here</a>"
3438
+ msgstr "Puede cambiar el pais<a href=\"#\">aquí</a>"
3439
+
3440
+ msgid "Company number"
3441
+ msgstr "Numero de la empresa"
3442
+
3443
+ msgid "VAT / Tax number"
3444
+ msgstr "Número de Identificación Fiscal"
3445
+
3446
+ msgid "Additional text to include in invoice"
3447
+ msgstr "Texto adicional para incluir en la factura"
3448
+
3449
+ #, php-format
3450
+ msgid "The invoice will be sent to <a href=\"mailto:%1$s\">%1$s</a>"
3451
+ msgstr "La factura se enviará a <a href=\"mailto:%1$s\">%1$s</a>"
3452
+
3453
+ msgid "Copy invoice to another email(s)"
3454
+ msgstr "Copiar factura a otro/s correo/s electrónico/s"
3455
+
3456
+ msgid "Enter one or more email addresses separated by commas."
3457
+ msgstr ""
3458
+ "Introduzca una o más direcciones de correo electrónico separadas por comas."
3459
+
3460
+ msgid "Save invoice settings"
3461
+ msgstr "Guardar configuración de factura"
3462
+
3463
+ msgid "Send email notification to administrators at low balance"
3464
+ msgstr ""
3465
+ "Enviar notificación por correo electrónico a los administradores a baja "
3466
+ "equilibrio"
3467
+
3468
+ msgid "Send weekly summary to administrators"
3469
+ msgstr "Enviar resumen semanal para los administradores"
3470
+
3471
+ msgid ""
3472
+ "Your country is the location from where you consume Bookly SMS services and "
3473
+ "is used to provide you with the payment methods available in that country."
3474
+ msgstr ""
3475
+ "Su país es la ubicación desde donde utiliza los servicios de Bookly SMS y se "
3476
+ "usa para proporcionarle los métodos de pago disponibles en ese país."
3477
+
3478
+ msgid "Update country"
3479
+ msgstr "Actualizar país"
3480
+
3481
+ msgid "Old password"
3482
+ msgstr "Contraseña anterior"
3483
+
3484
+ msgid "Please accept terms and conditions."
3485
+ msgstr "Por favor, acepte los términos y condiciones."
3486
+
3487
+ msgid "Passwords don't match"
3488
+ msgstr "Las contraseñas no coinciden"
3489
 
3490
  msgid "Last month"
3491
  msgstr "El mes pasado"
3499
  msgid "No records for selected period."
3500
  msgstr "No hay registros para el período seleccionado."
3501
 
 
 
 
3502
  msgid ""
3503
+ "To generate an invoice you should fill in company information in Bookly SMS "
3504
+ "Account settings -> Invoice"
3505
  msgstr ""
3506
+ "Para generar una factura, debe completar la información de la empresa en la "
3507
+ "configuración de la cuenta de Bookly SMS -> Factura"
3508
 
3509
  msgid "enable"
3510
  msgstr "habilitar"
3520
  "El servicio no está disponible temporalmente. Por favor, inténtelo de nuevo "
3521
  "más tarde."
3522
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3523
  msgid "SMS has been sent successfully."
3524
  msgstr "SMS ha sido enviado con éxito."
3525
 
3734
  "Asegúrese de revisar el horario de sus miembros del personal si tiene algún "
3735
  "comportamiento inesperado del sistema de reservas."
3736
 
3737
+ msgid "internal note"
3738
+ msgstr "nota interna"
3739
+
3740
  msgid "duration of service"
3741
  msgstr "duración del servicio"
3742
 
3894
  msgid ""
3895
  "The time interval which is used as a step when building all time slots for "
3896
  "the service at the Time step. The setting overrides global settings in "
3897
+ "Settings > General. Use Default to apply global settings."
3898
  msgstr ""
3899
  "Intervalo de tiempo que se utiliza como paso al crear todas las franjas "
3900
  "horarias para el servicio en el paso Tiempo. La configuración invalida la "
3901
  "configuración global en Configuración General. Utiliza Predeterminado para "
3902
  "aplicar la configuración global."
3903
 
3904
+ msgid "The service will be created with the visibility of Private."
3905
+ msgstr "El servicio se creará con la visibilidad de Privado."
3906
+
3907
+ msgid "Duplicate"
3908
+ msgstr "Duplicar"
3909
+
3910
  msgid "You must select at least one repeat option for recurring services."
3911
  msgstr ""
3912
  "Debe seleccionar al menos una opción de repetición para servicios "
3921
  msgstr[0] "%d servicio"
3922
  msgstr[1] "%d servicios"
3923
 
3924
+ #, php-format
3925
+ msgid "Copy of %s"
3926
+ msgstr "Copia de %s"
3927
+
3928
+ msgid "Auto-refresh Calendar"
3929
+ msgstr "Calendario de actualización automática"
3930
+
3931
+ msgid "Every 1 minute"
3932
+ msgstr "Cada 1 minuto"
3933
+
3934
+ msgid "Every 5 minutes"
3935
+ msgstr "Cada 5 minutos"
3936
+
3937
+ msgid "Every 15 minutes"
3938
+ msgstr "Cada 15 minutos"
3939
+
3940
+ msgid "Disable"
3941
+ msgstr "Inhabilitar"
3942
+
3943
  msgid "Welcome to Bookly and thank you for your choice!"
3944
  msgstr "¡Bienvenido a Bookly y gracias por tu elección!"
3945
 
4391
  msgid "Insert Appointment Booking Form"
4392
  msgstr "Inserte formulario de reserva de cita"
4393
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4394
  msgid "Send tax information"
4395
  msgstr "Enviar información fiscal"
4396
 
4767
  msgid "Edit email notification"
4768
  msgstr "Editar notificación de correo electrónico"
4769
 
4770
+ msgid "Thank you"
4771
+ msgstr "Gracias"
4772
+
4773
+ msgid "Your payment has been accepted for processing"
4774
+ msgstr "Su pago ha sido aceptado para su procesamiento"
4775
+
4776
+ msgid "Back to the list of amounts"
4777
+ msgstr "Volver a la lista de importes"
4778
+
4779
+ msgid "Please select a payment method"
4780
+ msgstr "Por favor seleccione un método de pago"
4781
+
4782
+ msgid "Credit card"
4783
+ msgstr "Tarjeta de crédito"
4784
+
4785
+ msgid "Account recharge"
4786
+ msgstr "Recarga de la cuenta"
4787
+
4788
+ msgid "Oops"
4789
+ msgstr "Ups"
4790
+
4791
+ msgid "Your payment has been cancelled"
4792
+ msgstr "Su pago ha sido cancelado"
4793
+
4794
+ msgid "Please select an amount and recharge your account"
4795
+ msgstr "Seleccione un importe y recargue su cuenta"
4796
+
4797
+ msgid "Pay using"
4798
+ msgstr "Pague usando"
4799
+
4800
+ msgid "Continue with"
4801
+ msgstr "Continuar con"
4802
+
4803
+ msgid "Auto-Recharge has been enabled"
4804
+ msgstr "La recarga automática ha sido habilitada"
4805
+
4806
+ msgid "Auto-Recharge has been cancelled"
4807
+ msgstr "La recarga automática ha sido cancelada"
4808
+
4809
+ msgid "current<br/>balance"
4810
+ msgstr "balance<br/>actual"
4811
+
4812
+ msgid "Recharge"
4813
+ msgstr "Recargar"
4814
+
4815
+ msgid "users choice"
4816
+ msgstr "elección de los usuarios"
4817
+
4818
+ msgid "Buy now"
4819
+ msgstr "Comprar ahora"
4820
+
4821
+ msgid "Best offer"
4822
+ msgstr "Mejor oferta"
4823
+
4824
+ msgid "Users choice"
4825
+ msgstr "Elección de los usuarios"
4826
+
4827
+ msgid "Other options"
4828
+ msgstr "Otras opciones"
4829
+
4830
+ msgid "best offer"
4831
+ msgstr "mejor oferta"
4832
+
4833
+ msgid "Select amount of Auto-Recharge"
4834
+ msgstr "Seleccione la cantidad de recarga automática"
4835
+
4836
+ msgid "Enable"
4837
+ msgstr "Habilitar"
4838
+
4839
+ msgid "Disable Auto-Recharge"
4840
+ msgstr "Desactivar Auto-Recarga"
4841
+
4842
+ msgid "Are you sure you want to disable Auto-Recharge?"
4843
+ msgstr "¿Está seguro de que desea desactivar la recarga automática?"
4844
+
4845
+ msgid "Turn on Auto-Recharge and get even more"
4846
+ msgstr "Active la recarga automática y obtenga aún más"
4847
+
4848
+ msgid "Auto-Recharge disabled"
4849
+ msgstr "Auto-Recarga deshabilitado"
4850
+
4851
+ #, php-format
4852
+ msgid "Can't disable Auto-Recharge, please contact us at %s"
4853
+ msgstr ""
4854
+ "No se puede desactivar la recarga automática, contáctenos a través de %s"
4855
+
4856
+ msgid "Auto-Recharge has failed, please replenish your balance directly."
4857
+ msgstr "Auto-Recarga ha fallado, por favor reponer el equilibrio directamente."
4858
+
4859
+ msgid "Card payment has failed, please use another payment option"
4860
+ msgstr "El pago con tarjeta no ha sido posible, utilice otra opción de pago"
4861
+
4862
+ msgid "Payment has failed, please use another payment option"
4863
+ msgstr "El pago no ha sido posible, utilice otra opción de pago"
4864
+
4865
  msgid "total quantity of appointments in cart"
4866
  msgstr "cantidad total de citas en el carrito"
4867
 
4871
  msgid "total price of booking"
4872
  msgstr "precio total de la reserva"
4873
 
4874
+ msgid ""
4875
+ "Could you please do me a BIG favor and give it a 5-star rating on WordPress?"
4876
+ msgstr ""
4877
+ "¿Podría hacerme un GRAN favor y darle una calificación de 5 estrellas en "
4878
+ "WordPress?"
4879
+
4880
+ msgid "Just to help us spread the word and boost our motivation."
4881
+ msgstr "Solo para ayudarnos a correr la voz y aumentar nuestra motivación."
4882
+
4883
+ msgid "Ok, you deserve it"
4884
+ msgstr "Ok, usted lo ha pedido"
4885
+
4886
+ msgid "Nope, maybe later"
4887
+ msgstr "No, tal vez más tarde"
4888
+
4889
+ msgid "Thank you for the {star} star rating!!!"
4890
+ msgstr "¡Gracias por la calificación de estrellas {star}!"
4891
+
4892
+ msgid "You asked to remind you"
4893
+ msgstr "Ha pedido que se le recuerde"
4894
+
4895
+ msgid "Congratulations!!!"
4896
+ msgstr "¡¡¡Felicidades!!!"
4897
+
4898
+ msgid "You just made the <b>10th Sale</b> using Bookly Plugin!"
4899
+ msgstr "¡Acaba de hacer la<b>Venta número 10</b> usando el complemento Bookly!"
4900
+
4901
+ msgid "You just made the <b>100th Sale</b> using Bookly Plugin!"
4902
+ msgstr ""
4903
+ "¡Acaba de hacer la<b>Venta número 100</b> usando el complemento Bookly!"
4904
+
4905
+ msgid "You just made the <b>1000th Sale</b> using Bookly Plugin!"
4906
+ msgstr ""
4907
+ "¡Acaba de hacer la<b>Venta número 1.000</b> usando el complemento Bookly!"
4908
+
4909
+ msgid "You just made the <b>10000th Sale</b> using Bookly Plugin!"
4910
+ msgstr ""
4911
+ "¡Acaba de hacer la<b>Venta número 10.000</b> usando el complemento Bookly!"
4912
+
4913
  msgid ""
4914
  "To help us improve Bookly, the plugin anonymously collects usage information."
4915
  " You can opt out of sharing the information in Settings > General."
4925
  "Deje que el complemento recopile de forma anónima información de uso para "
4926
  "ayudar al equipo de Bookly a mejorar el producto."
4927
 
 
 
 
4928
  msgid "Agree"
4929
  msgstr "Aprobar"
4930
 
4931
+ msgid "Disagree"
4932
+ msgstr "Disentir"
4933
+
4934
  #, php-format
4935
  msgid ""
4936
  "<b>Bookly Lite rebrands into Bookly with more features available.</b><br/>"
4946
  "importante actualización de Bookly, consulte nuestra <a href=\"%s\" "
4947
  "target=\"_blank\">entrada del blog</a>."
4948
 
4949
+ #, php-format
4950
+ msgid "Recharge your account and get up to %s extra."
4951
+ msgstr "Recargue su cuenta y obtenga hasta %s extra."
4952
+
4953
+ msgid ""
4954
+ "Send SMS notifications to your customers, increasing their loyalty and "
4955
+ "involvement."
4956
+ msgstr ""
4957
+ "Envíe notificaciones por SMS a sus clientes, aumentando su fidelidad y "
4958
+ "participación."
4959
+
4960
+ #, php-format
4961
+ msgid "Enable Auto-Recharge and get up to %s extra."
4962
+ msgstr "Habilite la recarga automática y obtenga hasta %s extra."
4963
+
4964
+ msgid ""
4965
+ "Let your clients receive notifications on time - don't let the service stop."
4966
+ msgstr ""
4967
+ "Permita que sus clientes reciban notificaciones a tiempo, no deje que el "
4968
+ "servicio se detenga."
4969
+
4970
+ msgid "Remind me later"
4971
+ msgstr "Recuérdemelo más tarde"
4972
+
4973
  msgid "This function is not available in the Bookly."
4974
  msgstr "Esta función no está disponible en Bookly."
4975
 
6326
  msgid ""
6327
  "If this setting is enabled then online meetings will be created for new "
6328
  "appointments with the selected online meeting provider. Make sure that the "
6329
+ "provider is configured properly in Settings > <a href=\"%s\">Online "
6330
  "Meetings</a>"
6331
  msgstr ""
6332
  "Si esta configuración está habilitada, se crearán reuniones en línea para "
6369
  "cuenta al calcular la ocupación de los proveedores. 0 significa el día de la "
6370
  "reserva."
6371
 
6372
+ msgid "Pick random staff member in case of uncertainty"
6373
+ msgstr "Elija un miembro del personal al azar en caso de incertidumbre"
6374
+
6375
+ msgid ""
6376
+ "Enable this option to pick a random staff member if both meet the criteria "
6377
+ "chosen in \"Providers preference for ANY\". Otherwise the selection order is "
6378
+ "unknown."
6379
+ msgstr ""
6380
+ "Habilite esta opción para elegir un miembro del personal al azar si ambos "
6381
+ "cumplen los criterios elegidos en \"Preferencia de proveedores para "
6382
+ "CUALQUIERA\". De lo contrario, el orden de selección será desconocido."
6383
+
6384
  msgid "Limit appointments per customer"
6385
  msgstr "Limitar citas por cliente"
6386
 
6414
  msgid ""
6415
  "This setting allows you to limit the number of appointments that can be "
6416
  "booked by a customer in any given period. Restriction may end after a fixed "
6417
+ "period or with the beginning of the next calendar period - new day, week, "
6418
  "month, etc."
6419
  msgstr ""
6420
  "Esta configuración te permite limitar el número de citas que un cliente "
7089
  msgid "Create another coupon"
7090
  msgstr "Crear otro cupón"
7091
 
 
 
 
7092
  msgid "No coupons found."
7093
  msgstr "No se encontraron cupones."
7094
 
7107
  msgid "Max appointments should be greater than zero."
7108
  msgstr "Las citas máximas deben ser mayores que cero."
7109
 
7110
+ msgid "The code already exists"
7111
+ msgstr "El código ya existe"
7112
+
7113
  msgid "Please enter a non empty mask."
7114
  msgstr "Por favor, ingrese una máscara que no esté vacía."
7115
 
7833
  "copiarán en las citas de Bookly. Si está desactivado, se usará un título "
7834
  "estándar \"Evento del Calendario de Google\"."
7835
 
7836
+ msgid "Overwrite the description of the original Google Calendar events"
7837
+ msgstr ""
7838
+ "Sobrescriba la descripción de los eventos originales del Calendario de "
7839
+ "Google "
7840
+
7841
+ msgid ""
7842
+ "If enabled then the description of the Google Calendar events originally "
7843
+ "copied to Bookly will be overwritten by the Bookly appointment data after "
7844
+ "they have been edited in Bookly Calendar"
7845
+ msgstr ""
7846
+ "Si está habilitado, la descripción de los eventos del Calendario de Google "
7847
+ "copiados originalmente en Bookly se sobrescribirá con los datos de la cita "
7848
+ "de Bookly después de haber sido editados en el Calendario de Bookly "
7849
+
7850
  msgid "Synchronize with Google Calendar"
7851
  msgstr "Sincronizar con el Calendario de Google"
languages/bookly-fr_FR.mo CHANGED
Binary file
languages/bookly-fr_FR.po CHANGED
@@ -8,9 +8,9 @@ msgstr ""
8
  "Language: fr_FR\n"
9
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2020-04-15 17:07+0000\n"
12
- "PO-Revision-Date: 2020-04-19 17:52+0000\n"
13
- "Last-Translator: support@bookly.info\n"
14
  "Language-Team: French (France)\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
16
 
@@ -1475,6 +1475,13 @@ msgstr "Ajouter Planning Équipe"
1475
  msgid "Add Staff Days Off"
1476
  msgstr "Ajouter Jours de Congé Équipe"
1477
 
 
 
 
 
 
 
 
1478
  msgid "Hide visibility field"
1479
  msgstr "Cacher champ visibilité"
1480
 
@@ -1523,6 +1530,9 @@ msgstr "Bloc personnalisé pour l'affichage des jours de congé de l'équipe"
1523
  msgid "Capacity"
1524
  msgstr "Capacité"
1525
 
 
 
 
1526
  msgid "Special hours"
1527
  msgstr "Heures spéciales"
1528
 
@@ -2422,7 +2432,7 @@ msgstr ""
2422
  "pour effectuer une réservation."
2423
 
2424
  msgid "Your payment has been accepted for processing."
2425
- msgstr "Votre paiement a été accepté."
2426
 
2427
  msgid ""
2428
  "You selected a booking for {service_name} by {staff_name} at "
@@ -2788,9 +2798,6 @@ msgstr "Prix normal"
2788
  msgid "Price with custom Sender ID"
2789
  msgstr "Prix avec ID émetteur personnalisé"
2790
 
2791
- msgid "Order"
2792
- msgstr "Commande"
2793
-
2794
  msgid "Requested ID"
2795
  msgstr "ID demandé"
2796
 
@@ -3083,6 +3090,9 @@ msgstr "E-mail Invalide."
3083
  msgid "Pending sender ID already exists."
3084
  msgstr "L'ID Émetteur en attente existe déjà."
3085
 
 
 
 
3086
  msgid "Recovery code expired."
3087
  msgstr "Code de récupération expiré."
3088
 
@@ -3158,55 +3168,53 @@ msgstr "Attachements"
3158
  msgid "Archived"
3159
  msgstr "Archivé"
3160
 
3161
- msgid "Send invoice"
3162
- msgstr "Envoyer facture"
3163
-
3164
- msgid "Company name"
3165
- msgstr "Nom de la société"
3166
-
3167
- msgid "Note: invoice will be sent to your PayPal email address"
3168
- msgstr "Note: la facture sera envoyée à votre adresse e-mail PayPal"
3169
 
3170
- msgid "Company address"
3171
- msgstr "Adresse de la société"
3172
-
3173
- msgid "Copy invoice to another email(s)"
3174
- msgstr "Envoyer copie de la facture à d'autres e-mails"
3175
-
3176
- msgid "Enter one or more email addresses separated by commas."
3177
- msgstr "Entrer une ou plusieurs adresses e-mail séparées par des virgules."
3178
 
3179
- msgid "Company address line 2"
3180
- msgstr "Adresse de la société ligne 2"
 
 
 
 
 
 
3181
 
3182
- msgid "VAT"
3183
- msgstr "TVA"
 
 
 
 
 
3184
 
3185
- msgid "Company code"
3186
- msgstr "Code société"
3187
 
3188
- msgid "Additional text to include into invoice"
3189
- msgstr "Texte supplémentaire à inclure dans la facture"
3190
 
3191
  msgid "SMS Notifications"
3192
  msgstr "Notifications SMS"
3193
 
3194
- msgid "Your balance"
3195
- msgstr "Votre crédit"
3196
 
3197
- msgid "Send email notification to administrators at low balance"
3198
  msgstr ""
3199
- "Envoyer un e-mail de notification aux administrateur quand le crédit est "
3200
- "faible"
3201
-
3202
- msgid "Send weekly summary to administrators"
3203
- msgstr "Envoyer rapport hebdomadaire aux administrateurs"
3204
 
3205
- msgid "Change"
3206
- msgstr "Change"
3207
-
3208
- msgid "Approved at"
3209
- msgstr "Accepté à"
3210
 
3211
  msgid "Log out"
3212
  msgstr "Déconnexion"
@@ -3214,12 +3222,6 @@ msgstr "Déconnexion"
3214
  msgid "Notifications"
3215
  msgstr "Notifications"
3216
 
3217
- msgid "Add money"
3218
- msgstr "Ajouter argent"
3219
-
3220
- msgid "Auto-Recharge"
3221
- msgstr "Recharge automatique"
3222
-
3223
  msgid "Purchases"
3224
  msgstr "Achats"
3225
 
@@ -3317,23 +3319,6 @@ msgstr "Entrer le code de l'e-mail"
3317
  msgid "Repeat new password"
3318
  msgstr "Répéter nouveau mot de passe"
3319
 
3320
- msgid "Change password"
3321
- msgstr "Changer mot de passe"
3322
-
3323
- msgid "Old password"
3324
- msgstr "Ancien mot de passe"
3325
-
3326
- msgid ""
3327
- "We will only charge your PayPal account when your balance falls below $10."
3328
- msgstr ""
3329
- "Nous ne débitons votre compte PayPal que si votre crédit descend sous $10."
3330
-
3331
- msgid "Enable Auto-Recharge"
3332
- msgstr "Activer Recharge Automatique"
3333
-
3334
- msgid "Disable Auto-Recharge"
3335
- msgstr "Désactiver Recharger Automatique"
3336
-
3337
  msgid ""
3338
  "If you do not see your country in the list please contact us at <a "
3339
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
@@ -3402,20 +3387,83 @@ msgstr "Annuler requête"
3402
  msgid "Can only contain letters or digits (up to 11 characters)."
3403
  msgstr "Ne peut contenir que des lettres ou chiffres (jusqu'à 11 caract.)"
3404
 
3405
- msgid "Please accept terms and conditions."
3406
- msgstr "Veuillez accepter les Termes et Conditions."
 
 
 
 
 
 
 
 
 
 
 
 
 
3407
 
3408
- msgid "Your payment has been interrupted."
3409
- msgstr "Votre paiement a été interrompu."
 
 
 
 
 
 
 
 
 
3410
 
3411
- msgid "Auto-Recharge enabled."
3412
- msgstr "Activer le Rechargement Automatique."
3413
 
3414
- msgid "You declined the Auto-Recharge of your balance."
3415
- msgstr "Vous avez refusé le rechargement automatique de votre crédit."
3416
 
3417
- msgid "Please enter old password."
3418
- msgstr "Veuillez entrer l'ancien mot de passe."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3419
 
3420
  msgid "Last month"
3421
  msgstr "Mois dernier"
@@ -3429,15 +3477,12 @@ msgstr "L'ID Émetteur est réinitialisé."
3429
  msgid "No records for selected period."
3430
  msgstr "Pas d'enregistrements pour cette période."
3431
 
3432
- msgid "Invoice"
3433
- msgstr "Facture"
3434
-
3435
  msgid ""
3436
- "To generate an invoice you should fill in company information in Bookly > "
3437
- "SMS Notifications > Send invoice."
3438
  msgstr ""
3439
- "Pour créer une facture, vous devez les information de la société dans Bookly "
3440
- "> Notifications SMS > Envoyer facture"
3441
 
3442
  msgid "enable"
3443
  msgstr "activer"
@@ -3452,21 +3497,6 @@ msgid "Service is temporarily unavailable. Please try again later."
3452
  msgstr ""
3453
  "Le service est temporairement indisponible. Veuillez réessayer plus tard."
3454
 
3455
- msgid "Auto-Recharge has failed, please replenish your balance directly."
3456
- msgstr ""
3457
- "La recharge automatique n'a pas réussi. Veuillez compléter votre crédit "
3458
- "manuellement."
3459
-
3460
- msgid "Auto-Recharge disabled"
3461
- msgstr "Recharge automatique désactivée"
3462
-
3463
- msgid ""
3464
- "Error. Can't disable Auto-Recharge, you can perform this action in your "
3465
- "PayPal account."
3466
- msgstr ""
3467
- "Erreur. Impossible de désactiver la recharge automatique, vous pouvez le "
3468
- "faire dans votre compte PayPal."
3469
-
3470
  msgid "SMS has been sent successfully."
3471
  msgstr "Le SMS a été envoyé avec succès."
3472
 
@@ -3682,6 +3712,9 @@ msgstr ""
3682
  "horaires de travail de la société. Vérifiez bien les horaires de vos membres "
3683
  "d'équipe si vous avez un comportement innatendu du système de réservation."
3684
 
 
 
 
3685
  msgid "duration of service"
3686
  msgstr "durée de service"
3687
 
@@ -3840,13 +3873,19 @@ msgstr "Durée du créneau comme durée du service"
3840
  msgid ""
3841
  "The time interval which is used as a step when building all time slots for "
3842
  "the service at the Time step. The setting overrides global settings in "
3843
- "Settings General. Use Default to apply global settings."
3844
  msgstr ""
3845
  "L'intervalle de temps utilisé comme une étape lors de la définition des "
3846
  "crénaux du service dans l'étape Time. Ce paramètre a priorité sur les "
3847
  "paramétrages globaux dans Paramètres généraux. Utilisez Défaut pour "
3848
  "appliquer les paramètres globaux."
3849
 
 
 
 
 
 
 
3850
  msgid "You must select at least one repeat option for recurring services."
3851
  msgstr ""
3852
  "Vous devez sélectionner au moins une option de répétition pour les services "
@@ -3861,6 +3900,25 @@ msgid_plural "%d services"
3861
  msgstr[0] "%d service"
3862
  msgstr[1] "%d services"
3863
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3864
  msgid "Welcome to Bookly and thank you for your choice!"
3865
  msgstr "Bienvenu à Bookly et merci de votre choix !"
3866
 
@@ -4307,42 +4365,6 @@ msgstr "Ajouter le formulaire de réservation Bookly"
4307
  msgid "Insert Appointment Booking Form"
4308
  msgstr "Insérer un formulaire de réservation"
4309
 
4310
- msgid ""
4311
- "Could you please do me a BIG favor and give it a 5-star rating on WordPress?"
4312
- msgstr ""
4313
- "Pouvez-vous me faire une GRANDE faveur et donner une classification 5 "
4314
- "étoiles dans WordPress ?"
4315
-
4316
- msgid "Just to help us spread the word and boost our motivation."
4317
- msgstr "Juste pour passer le mot et et stimuler votre motivation"
4318
-
4319
- msgid "Ok, you deserve it"
4320
- msgstr "Ok, vous l'avez mérité"
4321
-
4322
- msgid "Nope, maybe later"
4323
- msgstr "Non, peut-être plus tard"
4324
-
4325
- msgid "Thank you for the {star} star rating!!!"
4326
- msgstr "Merci pour la classification {star} étoiles !!!!"
4327
-
4328
- msgid "You asked to remind you"
4329
- msgstr "Vous avez demandé un rappel"
4330
-
4331
- msgid "Congratulations!!!"
4332
- msgstr "Félicitations !!!"
4333
-
4334
- msgid "You just made the <b>10th Sale</b> using Bookly Plugin!"
4335
- msgstr "Vous venez de faire la <b>10ème Vente</b> avec le Plugin Bookly !"
4336
-
4337
- msgid "You just made the <b>100th Sale</b> using Bookly Plugin!"
4338
- msgstr "Vous venez de faire la <b>100ème Vente</b> avec le Plugin Bookly !"
4339
-
4340
- msgid "You just made the <b>1000th Sale</b> using Bookly Plugin!"
4341
- msgstr "Vous venez de faire la <b>1000ème Vente</b> avec le Plugin Bookly !"
4342
-
4343
- msgid "You just made the <b>10000th Sale</b> using Bookly Plugin!"
4344
- msgstr "Vous venez de faire la <b>10000ème Vente</b> avec le Plugin Bookly !"
4345
-
4346
  msgid "Send tax information"
4347
  msgstr "Envoyer information taxe"
4348
 
@@ -4720,6 +4742,105 @@ msgstr "Nouvelle notification e-mail"
4720
  msgid "Edit email notification"
4721
  msgstr "Modifier notification e-mail"
4722
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4723
  msgid "total quantity of appointments in cart"
4724
  msgstr "quantité totale de réservations dans le panier"
4725
 
@@ -4729,6 +4850,42 @@ msgstr "formulaire de login"
4729
  msgid "total price of booking"
4730
  msgstr "prix total de la réservation"
4731
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4732
  msgid ""
4733
  "To help us improve Bookly, the plugin anonymously collects usage information."
4734
  " You can opt out of sharing the information in Settings > General."
@@ -4744,12 +4901,12 @@ msgstr ""
4744
  "Autoriser le plugin à collecter des informations d'utilisation anonymes pour "
4745
  "aider l'équipe Bookly à améliorer le produit."
4746
 
4747
- msgid "Disagree"
4748
- msgstr "Refuser"
4749
-
4750
  msgid "Agree"
4751
  msgstr "Accepter"
4752
 
 
 
 
4753
  #, php-format
4754
  msgid ""
4755
  "<b>Bookly Lite rebrands into Bookly with more features available.</b><br/>"
@@ -4765,6 +4922,30 @@ msgstr ""
4765
  "jour majeure de Bookly, consultez notre <a href=\"%s\" target=\"_blank\">"
4766
  "post de blog</a>.\n"
4767
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4768
  msgid "This function is not available in the Bookly."
4769
  msgstr "Cette fonction n'est pas disponible dans Bookly."
4770
 
@@ -6115,7 +6296,7 @@ msgstr "Créer des réunions online"
6115
  msgid ""
6116
  "If this setting is enabled then online meetings will be created for new "
6117
  "appointments with the selected online meeting provider. Make sure that the "
6118
- "provider is configured properly in Settings <a href=\"%s\">Online "
6119
  "Meetings</a>"
6120
  msgstr ""
6121
  "Si ce paramètre est activé, des réunions en ligne seront créées pour les "
@@ -6159,6 +6340,18 @@ msgstr ""
6159
  "compte pour le calcul de l'occupation d'un fournisseur. 0 correspond au jour "
6160
  "de la réservation."
6161
 
 
 
 
 
 
 
 
 
 
 
 
 
6162
  msgid "Limit appointments per customer"
6163
  msgstr "Limite de rendez-vous par client"
6164
 
@@ -6192,7 +6385,7 @@ msgstr "par année"
6192
  msgid ""
6193
  "This setting allows you to limit the number of appointments that can be "
6194
  "booked by a customer in any given period. Restriction may end after a fixed "
6195
- "period or with the beginning of the next calendar period new day, week, "
6196
  "month, etc."
6197
  msgstr ""
6198
  "Ce paramètre permet de limiter le nombre de rendez-vous qui réservés par un "
@@ -6864,9 +7057,6 @@ msgstr "Limite client"
6864
  msgid "Create another coupon"
6865
  msgstr "Créer nouveau code promo"
6866
 
6867
- msgid "Duplicate"
6868
- msgstr "Dupliquer"
6869
-
6870
  msgid "No coupons found."
6871
  msgstr "Pas de code promo trouvé."
6872
 
@@ -6885,6 +7075,9 @@ msgstr "Min. rendez-vous doit être supérieur à 0."
6885
  msgid "Max appointments should be greater than zero."
6886
  msgstr "Max. rendez-vous doit être supérieur à 0."
6887
 
 
 
 
6888
  msgid "Please enter a non empty mask."
6889
  msgstr "Veuillez entrer un masque."
6890
 
@@ -7602,5 +7795,17 @@ msgstr ""
7602
  "rendez-vous Bookly. Si désactivé, un titre générique \"Événement Google "
7603
  "Calendar\" sera utilisé."
7604
 
 
 
 
 
 
 
 
 
 
 
 
 
7605
  msgid "Synchronize with Google Calendar"
7606
  msgstr "Synchroniser avec Google Calendar"
8
  "Language: fr_FR\n"
9
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
10
  "Report-Msgid-Bugs-To: \n"
11
+ "POT-Creation-Date: 2020-06-05 05:28+0000\n"
12
+ "PO-Revision-Date: 2020-06-05 07:46+0000\n"
13
+ "Last-Translator: Claire Bustany <claire.bustany@gmail.com>\n"
14
  "Language-Team: French (France)\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
16
 
1475
  msgid "Add Staff Days Off"
1476
  msgstr "Ajouter Jours de Congé Équipe"
1477
 
1478
+ msgid ""
1479
+ "Hide this field if you want to hide the list of WP users from your staff "
1480
+ "members."
1481
+ msgstr ""
1482
+ "Cachez ce champ si vous voulez cacher la liste des utilisateurs de WordPress "
1483
+ "aux membres de votre personnel."
1484
+
1485
  msgid "Hide visibility field"
1486
  msgstr "Cacher champ visibilité"
1487
 
1530
  msgid "Capacity"
1531
  msgstr "Capacité"
1532
 
1533
+ msgid "Hide WordPress users"
1534
+ msgstr "Cacher les utilisateurs de WordPress"
1535
+
1536
  msgid "Special hours"
1537
  msgstr "Heures spéciales"
1538
 
2432
  "pour effectuer une réservation."
2433
 
2434
  msgid "Your payment has been accepted for processing."
2435
+ msgstr "Votre paiement a été accepté et est en cours de traitement."
2436
 
2437
  msgid ""
2438
  "You selected a booking for {service_name} by {staff_name} at "
2798
  msgid "Price with custom Sender ID"
2799
  msgstr "Prix avec ID émetteur personnalisé"
2800
 
 
 
 
2801
  msgid "Requested ID"
2802
  msgstr "ID demandé"
2803
 
3090
  msgid "Pending sender ID already exists."
3091
  msgstr "L'ID Émetteur en attente existe déjà."
3092
 
3093
+ msgid "Recharge not available."
3094
+ msgstr "Recharge non disponible."
3095
+
3096
  msgid "Recovery code expired."
3097
  msgstr "Code de récupération expiré."
3098
 
3168
  msgid "Archived"
3169
  msgstr "Archivé"
3170
 
3171
+ msgid "Setup your country"
3172
+ msgstr "Définissez votre pays"
 
 
 
 
 
 
3173
 
3174
+ msgid ""
3175
+ "Please spend a minute to setup your country. This will help us provide you "
3176
+ "with appropriate payment methods when replenishing your account."
3177
+ msgstr ""
3178
+ "Veuillez consacrer une minute à la sélection de votre pays. Cela nous aidera "
3179
+ "à vous fournir les méthodes de paiement appropriées lors du "
3180
+ "réapprovisionnement de votre compte."
 
3181
 
3182
+ msgid ""
3183
+ "The country will also be displayed in the invoice on a separate line below "
3184
+ "the company address. Make sure the other fields in the invoice do not "
3185
+ "contain the name of the country."
3186
+ msgstr ""
3187
+ "Le pays sera également indiqué dans la facture sur une ligne distincte sous "
3188
+ "l'adresse de l’entreprise. Assurez-vous que les autres champs de la facture "
3189
+ "ne contiennent pas le nom du pays."
3190
 
3191
+ msgid ""
3192
+ "Your country is the location from where you consume Bookly SMS services and "
3193
+ "is used to provide you with the payment methods available in that country"
3194
+ msgstr ""
3195
+ "Votre pays est le lieu à partir duquel vous consommez les services Bookly "
3196
+ "SMS et est utilisé pour vous fournir les méthodes de paiement disponibles "
3197
+ "dans ce pays."
3198
 
3199
+ msgid "Set country"
3200
+ msgstr "Définir le pays"
3201
 
3202
+ msgid "I'll do it later"
3203
+ msgstr "Je le ferai plus tard"
3204
 
3205
  msgid "SMS Notifications"
3206
  msgstr "Notifications SMS"
3207
 
3208
+ msgid "Approved at"
3209
+ msgstr "Accepté à"
3210
 
3211
+ msgid "Change the sender's name to your phone number or any other name"
3212
  msgstr ""
3213
+ "Changez le numéro de l’expéditeur ou tout autre nom sur votre téléphone "
 
 
 
 
3214
 
3215
+ msgid "Click this button to access your Bookly SMS account settings"
3216
+ msgstr ""
3217
+ "Cliquez sur ce bouton pour accéder aux paramètres de votre compte Bookly SMS"
 
 
3218
 
3219
  msgid "Log out"
3220
  msgstr "Déconnexion"
3222
  msgid "Notifications"
3223
  msgstr "Notifications"
3224
 
 
 
 
 
 
 
3225
  msgid "Purchases"
3226
  msgstr "Achats"
3227
 
3319
  msgid "Repeat new password"
3320
  msgstr "Répéter nouveau mot de passe"
3321
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3322
  msgid ""
3323
  "If you do not see your country in the list please contact us at <a "
3324
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3387
  msgid "Can only contain letters or digits (up to 11 characters)."
3388
  msgstr "Ne peut contenir que des lettres ou chiffres (jusqu'à 11 caract.)"
3389
 
3390
+ msgid "Account settings"
3391
+ msgstr "Paramètres du compte"
3392
+
3393
+ msgid "Auto-Recharge"
3394
+ msgstr "Recharge automatique"
3395
+
3396
+ msgid "Invoice"
3397
+ msgstr "Facture"
3398
+
3399
+ msgid "Change password"
3400
+ msgstr "Changer mot de passe"
3401
+
3402
+ #, php-format
3403
+ msgid "We will only charge you when your balance falls bellow %s"
3404
+ msgstr "Nous ne vous facturerons que si votre solde tombe en dessous de %s"
3405
 
3406
+ msgid "Company name"
3407
+ msgstr "Nom de la société"
3408
+
3409
+ msgid "Company address"
3410
+ msgstr "Adresse de la société"
3411
+
3412
+ msgid "Company address line 2"
3413
+ msgstr "Adresse de la société ligne 2"
3414
+
3415
+ msgid "You can change the country <a href=\"#\">here</a>"
3416
+ msgstr "Vous pouvez changer le pays <a href=\"#\">here</a>"
3417
 
3418
+ msgid "Company number"
3419
+ msgstr "Numéro d’entreprise"
3420
 
3421
+ msgid "VAT / Tax number"
3422
+ msgstr "TVA / Numéro fiscal "
3423
 
3424
+ msgid "Additional text to include in invoice"
3425
+ msgstr "Texte supplémentaire à inclure dans la facture"
3426
+
3427
+ #, php-format
3428
+ msgid "The invoice will be sent to <a href=\"mailto:%1$s\">%1$s</a>"
3429
+ msgstr "La facture sera envoyée à <a href=\"mailto:%1$s\">%1$s</a>"
3430
+
3431
+ msgid "Copy invoice to another email(s)"
3432
+ msgstr "Envoyer copie de la facture à d'autres e-mails"
3433
+
3434
+ msgid "Enter one or more email addresses separated by commas."
3435
+ msgstr "Entrer une ou plusieurs adresses e-mail séparées par des virgules."
3436
+
3437
+ msgid "Save invoice settings"
3438
+ msgstr "Sauvegarder les paramètres de la facture"
3439
+
3440
+ msgid "Send email notification to administrators at low balance"
3441
+ msgstr ""
3442
+ "Envoyer un e-mail de notification aux administrateur quand le crédit est "
3443
+ "faible"
3444
+
3445
+ msgid "Send weekly summary to administrators"
3446
+ msgstr "Envoyer rapport hebdomadaire aux administrateurs"
3447
+
3448
+ msgid ""
3449
+ "Your country is the location from where you consume Bookly SMS services and "
3450
+ "is used to provide you with the payment methods available in that country."
3451
+ msgstr ""
3452
+ "Votre pays est le lieu à partir duquel vous consommez les services Bookly "
3453
+ "SMS et est utilisé pour vous fournir les méthodes de paiement disponibles "
3454
+ "dans ce pays."
3455
+
3456
+ msgid "Update country"
3457
+ msgstr "Mise à jour du pays"
3458
+
3459
+ msgid "Old password"
3460
+ msgstr "Ancien mot de passe"
3461
+
3462
+ msgid "Please accept terms and conditions."
3463
+ msgstr "Veuillez accepter les Termes et Conditions."
3464
+
3465
+ msgid "Passwords don't match"
3466
+ msgstr "Les mots de passe ne correspondent pas"
3467
 
3468
  msgid "Last month"
3469
  msgstr "Mois dernier"
3477
  msgid "No records for selected period."
3478
  msgstr "Pas d'enregistrements pour cette période."
3479
 
 
 
 
3480
  msgid ""
3481
+ "To generate an invoice you should fill in company information in Bookly SMS "
3482
+ "Account settings -> Invoice"
3483
  msgstr ""
3484
+ "Pour générer une facture, vous devez remplir les informations sur "
3485
+ "l'entreprise dans les paramètres du compte SMS Bookly -> Facture"
3486
 
3487
  msgid "enable"
3488
  msgstr "activer"
3497
  msgstr ""
3498
  "Le service est temporairement indisponible. Veuillez réessayer plus tard."
3499
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3500
  msgid "SMS has been sent successfully."
3501
  msgstr "Le SMS a été envoyé avec succès."
3502
 
3712
  "horaires de travail de la société. Vérifiez bien les horaires de vos membres "
3713
  "d'équipe si vous avez un comportement innatendu du système de réservation."
3714
 
3715
+ msgid "internal note"
3716
+ msgstr "note interne"
3717
+
3718
  msgid "duration of service"
3719
  msgstr "durée de service"
3720
 
3873
  msgid ""
3874
  "The time interval which is used as a step when building all time slots for "
3875
  "the service at the Time step. The setting overrides global settings in "
3876
+ "Settings > General. Use Default to apply global settings."
3877
  msgstr ""
3878
  "L'intervalle de temps utilisé comme une étape lors de la définition des "
3879
  "crénaux du service dans l'étape Time. Ce paramètre a priorité sur les "
3880
  "paramétrages globaux dans Paramètres généraux. Utilisez Défaut pour "
3881
  "appliquer les paramètres globaux."
3882
 
3883
+ msgid "The service will be created with the visibility of Private."
3884
+ msgstr "Le service sera créé avec la visibilité de Privé."
3885
+
3886
+ msgid "Duplicate"
3887
+ msgstr "Dupliquer"
3888
+
3889
  msgid "You must select at least one repeat option for recurring services."
3890
  msgstr ""
3891
  "Vous devez sélectionner au moins une option de répétition pour les services "
3900
  msgstr[0] "%d service"
3901
  msgstr[1] "%d services"
3902
 
3903
+ #, php-format
3904
+ msgid "Copy of %s"
3905
+ msgstr "Copie de %s"
3906
+
3907
+ msgid "Auto-refresh Calendar"
3908
+ msgstr "Rafraîchissement automatique du calendrier "
3909
+
3910
+ msgid "Every 1 minute"
3911
+ msgstr "Toutes les minutes"
3912
+
3913
+ msgid "Every 5 minutes"
3914
+ msgstr "Toutes les 5 minutes"
3915
+
3916
+ msgid "Every 15 minutes"
3917
+ msgstr "Toutes les 15 minutes"
3918
+
3919
+ msgid "Disable"
3920
+ msgstr "Désactiver"
3921
+
3922
  msgid "Welcome to Bookly and thank you for your choice!"
3923
  msgstr "Bienvenu à Bookly et merci de votre choix !"
3924
 
4365
  msgid "Insert Appointment Booking Form"
4366
  msgstr "Insérer un formulaire de réservation"
4367
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4368
  msgid "Send tax information"
4369
  msgstr "Envoyer information taxe"
4370
 
4742
  msgid "Edit email notification"
4743
  msgstr "Modifier notification e-mail"
4744
 
4745
+ msgid "Thank you"
4746
+ msgstr "Merci"
4747
+
4748
+ msgid "Your payment has been accepted for processing"
4749
+ msgstr "Votre paiement a été accepté"
4750
+
4751
+ msgid "Back to the list of amounts"
4752
+ msgstr "Retour à la liste des montants"
4753
+
4754
+ msgid "Please select a payment method"
4755
+ msgstr "Merci de bien vouloir sélectionner une méthode de paiement "
4756
+
4757
+ msgid "Credit card"
4758
+ msgstr "Carte de crédit"
4759
+
4760
+ msgid "Account recharge"
4761
+ msgstr "Rechargement du compte"
4762
+
4763
+ msgid "Oops"
4764
+ msgstr "Oups"
4765
+
4766
+ msgid "Your payment has been cancelled"
4767
+ msgstr "Votre paiement a été annulé "
4768
+
4769
+ msgid "Please select an amount and recharge your account"
4770
+ msgstr "Veuillez sélectionner un montant et recharger votre compte"
4771
+
4772
+ msgid "Pay using"
4773
+ msgstr "Payer avec"
4774
+
4775
+ msgid "Continue with"
4776
+ msgstr "Continuez avec"
4777
+
4778
+ msgid "Auto-Recharge has been enabled"
4779
+ msgstr "La recharge automatique a été activée"
4780
+
4781
+ msgid "Auto-Recharge has been cancelled"
4782
+ msgstr "La recharge automatique a été annulée"
4783
+
4784
+ msgid "current<br/>balance"
4785
+ msgstr "solde<br/>actuel"
4786
+
4787
+ msgid "Recharge"
4788
+ msgstr "Recharge"
4789
+
4790
+ msgid "users choice"
4791
+ msgstr "choix des utilisateurs"
4792
+
4793
+ msgid "Buy now"
4794
+ msgstr "Acheter maintenant"
4795
+
4796
+ msgid "Best offer"
4797
+ msgstr "Meilleure offre"
4798
+
4799
+ msgid "Users choice"
4800
+ msgstr "Choix des utilisateurs"
4801
+
4802
+ msgid "Other options"
4803
+ msgstr "Autres options"
4804
+
4805
+ msgid "best offer"
4806
+ msgstr "meilleure offre"
4807
+
4808
+ msgid "Select amount of Auto-Recharge"
4809
+ msgstr "Sélectionnez le montant de la recharge automatique"
4810
+
4811
+ msgid "Enable"
4812
+ msgstr "Activer"
4813
+
4814
+ msgid "Disable Auto-Recharge"
4815
+ msgstr "Désactiver Recharger Automatique"
4816
+
4817
+ msgid "Are you sure you want to disable Auto-Recharge?"
4818
+ msgstr "Etes-vous certain de vouloir désactiver la recharge automatique ?"
4819
+
4820
+ msgid "Turn on Auto-Recharge and get even more"
4821
+ msgstr "Activez la recharge automatique et obtenez encore plus"
4822
+
4823
+ msgid "Auto-Recharge disabled"
4824
+ msgstr "Recharge automatique désactivée"
4825
+
4826
+ #, php-format
4827
+ msgid "Can't disable Auto-Recharge, please contact us at %s"
4828
+ msgstr ""
4829
+ "Si vous ne parvenez pas à désactiver la recharge automatique, veuillez nous "
4830
+ "contacter à l'adresse suivante %s"
4831
+
4832
+ msgid "Auto-Recharge has failed, please replenish your balance directly."
4833
+ msgstr ""
4834
+ "La recharge automatique n'a pas réussi. Veuillez compléter votre crédit "
4835
+ "manuellement."
4836
+
4837
+ msgid "Card payment has failed, please use another payment option"
4838
+ msgstr ""
4839
+ "Le paiement par carte a échoué, veuillez utiliser un autre moyen de paiement"
4840
+
4841
+ msgid "Payment has failed, please use another payment option"
4842
+ msgstr "Le paiement a échoué, veuillez utiliser un autre mode de paiement"
4843
+
4844
  msgid "total quantity of appointments in cart"
4845
  msgstr "quantité totale de réservations dans le panier"
4846
 
4850
  msgid "total price of booking"
4851
  msgstr "prix total de la réservation"
4852
 
4853
+ msgid ""
4854
+ "Could you please do me a BIG favor and give it a 5-star rating on WordPress?"
4855
+ msgstr ""
4856
+ "Pouvez-vous me faire une GRANDE faveur et donner une classification 5 "
4857
+ "étoiles dans WordPress ?"
4858
+
4859
+ msgid "Just to help us spread the word and boost our motivation."
4860
+ msgstr "Juste pour passer le mot et et stimuler votre motivation"
4861
+
4862
+ msgid "Ok, you deserve it"
4863
+ msgstr "Ok, vous l'avez mérité"
4864
+
4865
+ msgid "Nope, maybe later"
4866
+ msgstr "Non, peut-être plus tard"
4867
+
4868
+ msgid "Thank you for the {star} star rating!!!"
4869
+ msgstr "Merci pour la classification {star} étoiles !!!!"
4870
+
4871
+ msgid "You asked to remind you"
4872
+ msgstr "Vous avez demandé un rappel"
4873
+
4874
+ msgid "Congratulations!!!"
4875
+ msgstr "Félicitations !!!"
4876
+
4877
+ msgid "You just made the <b>10th Sale</b> using Bookly Plugin!"
4878
+ msgstr "Vous venez de faire la <b>10ème Vente</b> avec le Plugin Bookly !"
4879
+
4880
+ msgid "You just made the <b>100th Sale</b> using Bookly Plugin!"
4881
+ msgstr "Vous venez de faire la <b>100ème Vente</b> avec le Plugin Bookly !"
4882
+
4883
+ msgid "You just made the <b>1000th Sale</b> using Bookly Plugin!"
4884
+ msgstr "Vous venez de faire la <b>1000ème Vente</b> avec le Plugin Bookly !"
4885
+
4886
+ msgid "You just made the <b>10000th Sale</b> using Bookly Plugin!"
4887
+ msgstr "Vous venez de faire la <b>10000ème Vente</b> avec le Plugin Bookly !"
4888
+
4889
  msgid ""
4890
  "To help us improve Bookly, the plugin anonymously collects usage information."
4891
  " You can opt out of sharing the information in Settings > General."
4901
  "Autoriser le plugin à collecter des informations d'utilisation anonymes pour "
4902
  "aider l'équipe Bookly à améliorer le produit."
4903
 
 
 
 
4904
  msgid "Agree"
4905
  msgstr "Accepter"
4906
 
4907
+ msgid "Disagree"
4908
+ msgstr "Refuser"
4909
+
4910
  #, php-format
4911
  msgid ""
4912
  "<b>Bookly Lite rebrands into Bookly with more features available.</b><br/>"
4922
  "jour majeure de Bookly, consultez notre <a href=\"%s\" target=\"_blank\">"
4923
  "post de blog</a>.\n"
4924
 
4925
+ #, php-format
4926
+ msgid "Recharge your account and get up to %s extra."
4927
+ msgstr "Rechargez votre compte et obtenez jusqu’à %s supplémentaire."
4928
+
4929
+ msgid ""
4930
+ "Send SMS notifications to your customers, increasing their loyalty and "
4931
+ "involvement."
4932
+ msgstr ""
4933
+ "Envoyez des notifications par SMS à vos clients, ce qui accroît leur "
4934
+ "fidélité et leur implication."
4935
+
4936
+ #, php-format
4937
+ msgid "Enable Auto-Recharge and get up to %s extra."
4938
+ msgstr "Activez la recharge automatique et obtenez jusqu'à %s supplémentaires."
4939
+
4940
+ msgid ""
4941
+ "Let your clients receive notifications on time - don't let the service stop."
4942
+ msgstr ""
4943
+ "Faites en sorte que vos clients reçoivent les notifications à temps - ne "
4944
+ "laissez pas le service s'arrêter."
4945
+
4946
+ msgid "Remind me later"
4947
+ msgstr "Me le rappeler ultérieurement "
4948
+
4949
  msgid "This function is not available in the Bookly."
4950
  msgstr "Cette fonction n'est pas disponible dans Bookly."
4951
 
6296
  msgid ""
6297
  "If this setting is enabled then online meetings will be created for new "
6298
  "appointments with the selected online meeting provider. Make sure that the "
6299
+ "provider is configured properly in Settings > <a href=\"%s\">Online "
6300
  "Meetings</a>"
6301
  msgstr ""
6302
  "Si ce paramètre est activé, des réunions en ligne seront créées pour les "
6340
  "compte pour le calcul de l'occupation d'un fournisseur. 0 correspond au jour "
6341
  "de la réservation."
6342
 
6343
+ msgid "Pick random staff member in case of uncertainty"
6344
+ msgstr "Choisir un membre du personnel au hasard en cas d'incertitude "
6345
+
6346
+ msgid ""
6347
+ "Enable this option to pick a random staff member if both meet the criteria "
6348
+ "chosen in \"Providers preference for ANY\". Otherwise the selection order is "
6349
+ "unknown."
6350
+ msgstr ""
6351
+ "Activez cette option pour choisir un membre du personnel au hasard si tous "
6352
+ "deux répondent aux critères choisis dans \"Préférence des fournisseurs pour "
6353
+ "TOUT\". Autrement, l'ordre de sélection est inconnu."
6354
+
6355
  msgid "Limit appointments per customer"
6356
  msgstr "Limite de rendez-vous par client"
6357
 
6385
  msgid ""
6386
  "This setting allows you to limit the number of appointments that can be "
6387
  "booked by a customer in any given period. Restriction may end after a fixed "
6388
+ "period or with the beginning of the next calendar period - new day, week, "
6389
  "month, etc."
6390
  msgstr ""
6391
  "Ce paramètre permet de limiter le nombre de rendez-vous qui réservés par un "
7057
  msgid "Create another coupon"
7058
  msgstr "Créer nouveau code promo"
7059
 
 
 
 
7060
  msgid "No coupons found."
7061
  msgstr "Pas de code promo trouvé."
7062
 
7075
  msgid "Max appointments should be greater than zero."
7076
  msgstr "Max. rendez-vous doit être supérieur à 0."
7077
 
7078
+ msgid "The code already exists"
7079
+ msgstr "Le code existe déjà "
7080
+
7081
  msgid "Please enter a non empty mask."
7082
  msgstr "Veuillez entrer un masque."
7083
 
7795
  "rendez-vous Bookly. Si désactivé, un titre générique \"Événement Google "
7796
  "Calendar\" sera utilisé."
7797
 
7798
+ msgid "Overwrite the description of the original Google Calendar events"
7799
+ msgstr "Remplacer la description des événements originaux de Google Agenda"
7800
+
7801
+ msgid ""
7802
+ "If enabled then the description of the Google Calendar events originally "
7803
+ "copied to Bookly will be overwritten by the Bookly appointment data after "
7804
+ "they have been edited in Bookly Calendar"
7805
+ msgstr ""
7806
+ "Si cette option est activée, la description des événements de Google Agenda "
7807
+ "initialement copiée dans Bookly sera remplacée par les données de rendez-"
7808
+ "vous de Bookly après leur modification dans Bookly Calendar"
7809
+
7810
  msgid "Synchronize with Google Calendar"
7811
  msgstr "Synchroniser avec Google Calendar"
languages/bookly-it_IT.po CHANGED
@@ -2016,8 +2016,8 @@ msgid ""
2016
  "booking."
2017
  msgstr ""
2018
 
2019
- msgid "Your payment has been accepted for processing."
2020
- msgstr "Il pagamento è stato accettato per l'elaborazione."
2021
 
2022
  msgid ""
2023
  "You selected a booking for {service_name} by {staff_name} at "
@@ -3370,7 +3370,7 @@ msgstr ""
3370
  msgid ""
3371
  "The time interval which is used as a step when building all time slots for "
3372
  "the service at the Time step. The setting overrides global settings in "
3373
- "Settings General. Use Default to apply global settings."
3374
  msgstr ""
3375
 
3376
  msgid "You must select at least one repeat option for recurring services."
@@ -5392,7 +5392,7 @@ msgstr ""
5392
  msgid ""
5393
  "If this setting is enabled then online meetings will be created for new "
5394
  "appointments with the selected online meeting provider. Make sure that the "
5395
- "provider is configured properly in Settings <a href=\"%s\">Online "
5396
  "Meetings</a>"
5397
  msgstr ""
5398
 
@@ -5462,7 +5462,7 @@ msgstr ""
5462
  msgid ""
5463
  "This setting allows you to limit the number of appointments that can be "
5464
  "booked by a customer in any given period. Restriction may end after a fixed "
5465
- "period or with the beginning of the next calendar period new day, week, "
5466
  "month, etc."
5467
  msgstr ""
5468
 
2016
  "booking."
2017
  msgstr ""
2018
 
2019
+ msgid "Your payment has been accepted for processing"
2020
+ msgstr "Il pagamento è stato accettato per l'elaborazione"
2021
 
2022
  msgid ""
2023
  "You selected a booking for {service_name} by {staff_name} at "
3370
  msgid ""
3371
  "The time interval which is used as a step when building all time slots for "
3372
  "the service at the Time step. The setting overrides global settings in "
3373
+ "Settings > General. Use Default to apply global settings."
3374
  msgstr ""
3375
 
3376
  msgid "You must select at least one repeat option for recurring services."
5392
  msgid ""
5393
  "If this setting is enabled then online meetings will be created for new "
5394
  "appointments with the selected online meeting provider. Make sure that the "
5395
+ "provider is configured properly in Settings > <a href=\"%s\">Online "
5396
  "Meetings</a>"
5397
  msgstr ""
5398
 
5462
  msgid ""
5463
  "This setting allows you to limit the number of appointments that can be "
5464
  "booked by a customer in any given period. Restriction may end after a fixed "
5465
+ "period or with the beginning of the next calendar period - new day, week, "
5466
  "month, etc."
5467
  msgstr ""
5468
 
languages/bookly-ja.mo CHANGED
Binary file
languages/bookly-ja.po CHANGED
@@ -2270,7 +2270,7 @@ msgid ""
2270
  "booking."
2271
  msgstr "あなたはサービスを頻繁に使用しすぎています。 予約をするには私達に連絡してください。"
2272
 
2273
- msgid "Your payment has been accepted for processing."
2274
  msgstr "お支払い手続きが承認されました"
2275
 
2276
  msgid ""
@@ -3545,7 +3545,7 @@ msgstr ""
3545
  msgid ""
3546
  "The time interval which is used as a step when building all time slots for "
3547
  "the service at the Time step. The setting overrides global settings in "
3548
- "Settings General. Use Default to apply global settings."
3549
  msgstr ""
3550
  "タイム•インターバルは、タイムステップでサービスのすべてのタイムスロットを構築するときのステップとして使用されます。この設定は、[設定] "
3551
  "項目にある{一般]のグローバル設定よりも優先されます。 デフォルトを使用してグローバル設定を適用してください。"
@@ -5542,7 +5542,7 @@ msgstr "顧客あたりの面会予約を制限する"
5542
  msgid ""
5543
  "This setting allows you to limit the number of appointments that can be "
5544
  "booked by a customer in any given period. Restriction may end after a fixed "
5545
- "period or with the beginning of the next calendar period new day, week, "
5546
  "month, etc."
5547
  msgstr ""
5548
  "  この設定では、任意の期間に顧客が予約可能な面会予定の数を制限することができます。 "
2270
  "booking."
2271
  msgstr "あなたはサービスを頻繁に使用しすぎています。 予約をするには私達に連絡してください。"
2272
 
2273
+ msgid "Your payment has been accepted for processing"
2274
  msgstr "お支払い手続きが承認されました"
2275
 
2276
  msgid ""
3545
  msgid ""
3546
  "The time interval which is used as a step when building all time slots for "
3547
  "the service at the Time step. The setting overrides global settings in "
3548
+ "Settings > General. Use Default to apply global settings."
3549
  msgstr ""
3550
  "タイム•インターバルは、タイムステップでサービスのすべてのタイムスロットを構築するときのステップとして使用されます。この設定は、[設定] "
3551
  "項目にある{一般]のグローバル設定よりも優先されます。 デフォルトを使用してグローバル設定を適用してください。"
5542
  msgid ""
5543
  "This setting allows you to limit the number of appointments that can be "
5544
  "booked by a customer in any given period. Restriction may end after a fixed "
5545
+ "period or with the beginning of the next calendar period - new day, week, "
5546
  "month, etc."
5547
  msgstr ""
5548
  "  この設定では、任意の期間に顧客が予約可能な面会予定の数を制限することができます。 "
languages/bookly-nl_NL.mo CHANGED
Binary file
languages/bookly-nl_NL.po CHANGED
@@ -8,8 +8,8 @@ msgstr ""
8
  "Language: nl_NL\n"
9
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2020-04-16 11:40+0000\n"
12
- "PO-Revision-Date: 2020-04-16 11:59+0000\n"
13
  "Last-Translator: support@bookly.info\n"
14
  "Language-Team: Dutch\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
@@ -1467,6 +1467,13 @@ msgstr "Voeg Personeelsplanning toe"
1467
  msgid "Add Staff Days Off"
1468
  msgstr "Voeg personeel vrije dag toe"
1469
 
 
 
 
 
 
 
 
1470
  msgid "Hide visibility field"
1471
  msgstr "Verberg zichtbaarheidsveld"
1472
 
@@ -1521,6 +1528,9 @@ msgstr ""
1521
  msgid "Capacity"
1522
  msgstr "Capaciteit"
1523
 
 
 
 
1524
  msgid "Special hours"
1525
  msgstr "Speciale uren"
1526
 
@@ -2416,7 +2426,7 @@ msgstr ""
2416
  "boeking uit te voeren."
2417
 
2418
  msgid "Your payment has been accepted for processing."
2419
- msgstr "Uw betaling wordt verwerkt."
2420
 
2421
  msgid ""
2422
  "You selected a booking for {service_name} by {staff_name} at "
@@ -2781,9 +2791,6 @@ msgstr "Normale prijs"
2781
  msgid "Price with custom Sender ID"
2782
  msgstr "Prijs met aangepaste Afzender ID"
2783
 
2784
- msgid "Order"
2785
- msgstr "Volgorde"
2786
-
2787
  msgid "Requested ID"
2788
  msgstr "Aangevraagde ID"
2789
 
@@ -3072,6 +3079,9 @@ msgstr "Ongeldig e-mailadres."
3072
  msgid "Pending sender ID already exists."
3073
  msgstr "In afwachting van de afzender ID bestaat al."
3074
 
 
 
 
3075
  msgid "Recovery code expired."
3076
  msgstr "Herstelcode verlopen."
3077
 
@@ -3147,66 +3157,58 @@ msgstr "Bijlagen"
3147
  msgid "Archived"
3148
  msgstr "Gearchiveerd"
3149
 
3150
- msgid "Send invoice"
3151
- msgstr "Stuur factuur"
3152
-
3153
- msgid "Company name"
3154
- msgstr "Bedrijfsnaam"
3155
 
3156
- msgid "Note: invoice will be sent to your PayPal email address"
3157
- msgstr "Opmerking: factuur zal naar uw Paypal e-mailadres worden verstuurd"
3158
-
3159
- msgid "Company address"
3160
- msgstr "Adres bedrijf"
3161
-
3162
- msgid "Copy invoice to another email(s)"
3163
- msgstr "Kopieer factuur naar andere e-mail(s)"
3164
-
3165
- msgid "Enter one or more email addresses separated by commas."
3166
- msgstr "Vul een of mesrdere e-mailadressen in, gescheiden door komma's."
3167
 
3168
- msgid "Company address line 2"
3169
- msgstr "Adres bedrijf regel 2"
 
 
 
 
 
 
3170
 
3171
- msgid "VAT"
3172
- msgstr "VAT"
 
 
 
 
 
3173
 
3174
- msgid "Company code"
3175
- msgstr "Bedrijfscode"
3176
 
3177
- msgid "Additional text to include into invoice"
3178
- msgstr "Extra tekst om op te nemen in de factuur"
3179
 
3180
  msgid "SMS Notifications"
3181
  msgstr "SMS-meldingen"
3182
 
3183
- msgid "Your balance"
3184
- msgstr "Uw saldo"
3185
-
3186
- msgid "Send email notification to administrators at low balance"
3187
- msgstr "Stuur e-mail notificatie aan beheerders bij lage balans"
3188
-
3189
- msgid "Send weekly summary to administrators"
3190
- msgstr "Stuur wekelijkse samenvatting naar beheerders"
3191
-
3192
- msgid "Change"
3193
- msgstr "Wijzigen"
3194
-
3195
  msgid "Approved at"
3196
  msgstr "Goedgekeurd op"
3197
 
 
 
 
 
 
 
 
3198
  msgid "Log out"
3199
  msgstr "Uitloggen"
3200
 
3201
  msgid "Notifications"
3202
  msgstr "Meldingen"
3203
 
3204
- msgid "Add money"
3205
- msgstr "Geld toevoegen"
3206
-
3207
- msgid "Auto-Recharge"
3208
- msgstr "Auto-Opladen"
3209
-
3210
  msgid "Purchases"
3211
  msgstr "Aankopen"
3212
 
@@ -3302,24 +3304,6 @@ msgstr "Voer de per e-mail toegestuurde code in"
3302
  msgid "Repeat new password"
3303
  msgstr "Herhaal nieuw wachtwoord"
3304
 
3305
- msgid "Change password"
3306
- msgstr "Verander wachtwoord"
3307
-
3308
- msgid "Old password"
3309
- msgstr "Oude wachtwoord"
3310
-
3311
- msgid ""
3312
- "We will only charge your PayPal account when your balance falls below $10."
3313
- msgstr ""
3314
- "We zullen alleen uw PayPal-rekening belasten wanneer uw saldo daalt tot "
3315
- "onder $10."
3316
-
3317
- msgid "Enable Auto-Recharge"
3318
- msgstr "Inschakelen Auto-Opladen"
3319
-
3320
- msgid "Disable Auto-Recharge"
3321
- msgstr "Uitschakelen Auto-Opladen"
3322
-
3323
  msgid ""
3324
  "If you do not see your country in the list please contact us at <a "
3325
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
@@ -3388,20 +3372,81 @@ msgstr "Annuleer verzoek"
3388
  msgid "Can only contain letters or digits (up to 11 characters)."
3389
  msgstr "Kan alleen letters of cijfers bevatten (maximaal 11 tekens)."
3390
 
3391
- msgid "Please accept terms and conditions."
3392
- msgstr "Accepteer alstublieft onze algemene voorwaarden."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3393
 
3394
- msgid "Your payment has been interrupted."
3395
- msgstr "Uw betaling is onderbroken."
 
 
 
3396
 
3397
- msgid "Auto-Recharge enabled."
3398
- msgstr "Auto-Opladen ingeschakeld."
3399
 
3400
- msgid "You declined the Auto-Recharge of your balance."
3401
- msgstr "U wees Auto-Opladen van uw saldo af."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3402
 
3403
- msgid "Please enter old password."
3404
- msgstr "Vul het oude wachtwoord in."
3405
 
3406
  msgid "Last month"
3407
  msgstr "Afgelopen maand"
@@ -3415,15 +3460,12 @@ msgstr "Afzender ID is teruggezet naar de standaardinstelling."
3415
  msgid "No records for selected period."
3416
  msgstr "Geen records voor de geselecteerde periode."
3417
 
3418
- msgid "Invoice"
3419
- msgstr "Factuur"
3420
-
3421
  msgid ""
3422
- "To generate an invoice you should fill in company information in Bookly > "
3423
- "SMS Notifications > Send invoice."
3424
  msgstr ""
3425
- "Om een factuur te genereren moet u bedrijfsinformatie invullen in Bookly > "
3426
- "SMS Meldingen > Factuur versturen."
3427
 
3428
  msgid "enable"
3429
  msgstr "inschakelen"
@@ -3437,19 +3479,6 @@ msgstr "De e-mail is nogmaals verzonden"
3437
  msgid "Service is temporarily unavailable. Please try again later."
3438
  msgstr "Service is tijdelijk niet beschikbaar. Probeer het later nogmaals."
3439
 
3440
- msgid "Auto-Recharge has failed, please replenish your balance directly."
3441
- msgstr "Auto-Opladen is mislukt, vult uw saldo direct aan."
3442
-
3443
- msgid "Auto-Recharge disabled"
3444
- msgstr "Auto-Opladen uitgeschakeld"
3445
-
3446
- msgid ""
3447
- "Error. Can't disable Auto-Recharge, you can perform this action in your "
3448
- "PayPal account."
3449
- msgstr ""
3450
- "Fout. Kan Auto-Opladen niet uitschakelen, u kunt deze actie uitvoeren in uw "
3451
- "PayPal-rekening."
3452
-
3453
  msgid "SMS has been sent successfully."
3454
  msgstr "SMS is met succes verstuurd."
3455
 
@@ -3668,6 +3697,9 @@ msgstr ""
3668
  "kantooruren van het bedrijf. Zorg ervoor om de planning van uw medewerkers "
3669
  "te controleren als u onverwacht gedrag van de reserveringssysteem heeft."
3670
 
 
 
 
3671
  msgid "duration of service"
3672
  msgstr "duur van de dienstverlening"
3673
 
@@ -3822,13 +3854,19 @@ msgstr "Lengte vak als service tijdsduur"
3822
  msgid ""
3823
  "The time interval which is used as a step when building all time slots for "
3824
  "the service at the Time step. The setting overrides global settings in "
3825
- "Settings General. Use Default to apply global settings."
3826
  msgstr ""
3827
  "De tijdsinterval die wordt gebruikt als een stap bij het bouwen van alle "
3828
  "tijdvakken voor de service in de Tijd stap. De instelling gaat voor de "
3829
  "algemene instellingen in de Instellingen Algemeen. Gebruik Standaard om "
3830
  "algemene instellingen toe te passen."
3831
 
 
 
 
 
 
 
3832
  msgid "You must select at least one repeat option for recurring services."
3833
  msgstr ""
3834
  "Je moet ten minste één herhaaloptie selecteren voor terugkerende services."
@@ -3842,6 +3880,25 @@ msgid_plural "%d services"
3842
  msgstr[0] "%d dienst"
3843
  msgstr[1] "%d diensten"
3844
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3845
  msgid "Welcome to Bookly and thank you for your choice!"
3846
  msgstr "Welkom bij Bookly en bedankt voor uw keuze!"
3847
 
@@ -4288,44 +4345,6 @@ msgstr "Bookly boekingsformulier toevoegen"
4288
  msgid "Insert Appointment Booking Form"
4289
  msgstr "Boekingsformulier Invoegen"
4290
 
4291
- msgid ""
4292
- "Could you please do me a BIG favor and give it a 5-star rating on WordPress?"
4293
- msgstr ""
4294
- "Kun je me alsjeblieft een GROTE gunst bewijzen en een 5-sterrenbeoordeling "
4295
- "geven op WordPress?"
4296
-
4297
- msgid "Just to help us spread the word and boost our motivation."
4298
- msgstr ""
4299
- "Gewoon om ons te helpen de boodschap te verspreiden en onze motivatie te "
4300
- "vergroten."
4301
-
4302
- msgid "Ok, you deserve it"
4303
- msgstr "Ok, je verdient het"
4304
-
4305
- msgid "Nope, maybe later"
4306
- msgstr "Nee, misschien later"
4307
-
4308
- msgid "Thank you for the {star} star rating!!!"
4309
- msgstr "Bedankt voor de {star} sterren beoordeling!!!"
4310
-
4311
- msgid "You asked to remind you"
4312
- msgstr "Je hebt gevraagd je eraan te herinneren"
4313
-
4314
- msgid "Congratulations!!!"
4315
- msgstr "Gefeliciteerd!!!"
4316
-
4317
- msgid "You just made the <b>10th Sale</b> using Bookly Plugin!"
4318
- msgstr "Je hebt zojuist de <b>10e Verkoop</b> gedaan met de Bookly Plug-in!"
4319
-
4320
- msgid "You just made the <b>100th Sale</b> using Bookly Plugin!"
4321
- msgstr "Je hebt zojuist de <b>100e Verkoop</b> gedaan met de Bookly Plug-in!"
4322
-
4323
- msgid "You just made the <b>1000th Sale</b> using Bookly Plugin!"
4324
- msgstr "Je hebt zojuist de <b>1000e Verkoop</b> gedaan met de Bookly Plug-in!"
4325
-
4326
- msgid "You just made the <b>10000th Sale</b> using Bookly Plugin!"
4327
- msgstr "Je hebt zojuist de <b>10000e Verkoop</b> gedaan met de Bookly Plug-in!"
4328
-
4329
  msgid "Send tax information"
4330
  msgstr "Verzend belasting informatie"
4331
 
@@ -4699,6 +4718,101 @@ msgstr "Nieuwe e-mail melding"
4699
  msgid "Edit email notification"
4700
  msgstr "Bewerk e-mail melding"
4701
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4702
  msgid "total quantity of appointments in cart"
4703
  msgstr "aantal afspraken in het winkelmandje"
4704
 
@@ -4708,6 +4822,44 @@ msgstr "inlogformulier"
4708
  msgid "total price of booking"
4709
  msgstr "totale prijs van de reservering"
4710
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4711
  msgid ""
4712
  "To help us improve Bookly, the plugin anonymously collects usage information."
4713
  " You can opt out of sharing the information in Settings > General."
@@ -4723,12 +4875,12 @@ msgstr ""
4723
  "Laat de plug-in anoniem gebruiksinformatie verzamelen om het Bookly team te "
4724
  "helpen het product te verbeteren."
4725
 
4726
- msgid "Disagree"
4727
- msgstr "Oneens"
4728
-
4729
  msgid "Agree"
4730
  msgstr "Eens"
4731
 
 
 
 
4732
  #, php-format
4733
  msgid ""
4734
  "<b>Bookly Lite rebrands into Bookly with more features available.</b><br/>"
@@ -4744,6 +4896,29 @@ msgstr ""
4744
  "over de grote Bookly update, lees dan ons <a href=\"%s\" target=\"_blank\">"
4745
  "blogbericht</a>."
4746
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4747
  msgid "This function is not available in the Bookly."
4748
  msgstr "Deze functie is niet beschikbaar in Bookly."
4749
 
@@ -6090,7 +6265,7 @@ msgstr "Maak online vergaderingen"
6090
  msgid ""
6091
  "If this setting is enabled then online meetings will be created for new "
6092
  "appointments with the selected online meeting provider. Make sure that the "
6093
- "provider is configured properly in Settings <a href=\"%s\">Online "
6094
  "Meetings</a>"
6095
  msgstr ""
6096
  "Als deze instelling is ingeschakeld, worden er online vergaderingen gemaakt "
@@ -6133,6 +6308,18 @@ msgstr ""
6133
  "gehouden bij het bereken van de bezetting van leveranciers. 0 betekent de "
6134
  "dag van boeking."
6135
 
 
 
 
 
 
 
 
 
 
 
 
 
6136
  msgid "Limit appointments per customer"
6137
  msgstr "Limiet afspraken per klant"
6138
 
@@ -6166,7 +6353,7 @@ msgstr "per jaar"
6166
  msgid ""
6167
  "This setting allows you to limit the number of appointments that can be "
6168
  "booked by a customer in any given period. Restriction may end after a fixed "
6169
- "period or with the beginning of the next calendar period new day, week, "
6170
  "month, etc."
6171
  msgstr ""
6172
  "Met deze instelling kunt u het aantal afspraken beperken dat door een klant "
@@ -6836,9 +7023,6 @@ msgstr "Limiet voor klanten"
6836
  msgid "Create another coupon"
6837
  msgstr "Maak nog een kortingsbon"
6838
 
6839
- msgid "Duplicate"
6840
- msgstr "Dupliceer"
6841
-
6842
  msgid "No coupons found."
6843
  msgstr "Geen kortingsbonnen gevonden."
6844
 
@@ -6857,6 +7041,9 @@ msgstr "Min afspraken moet groter zijn dan nul."
6857
  msgid "Max appointments should be greater than zero."
6858
  msgstr "Max afspraken moet groter zijn dan nul."
6859
 
 
 
 
6860
  msgid "Please enter a non empty mask."
6861
  msgstr "Voer een niet leeg masker in."
6862
 
@@ -7568,5 +7755,18 @@ msgstr ""
7568
  "gekopieerd naar Bookly afspraken. Indien uitgeschakeld zal een standaard "
7569
  "titel \"Google Kalender evenement\" worden gebruikt."
7570
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7571
  msgid "Synchronize with Google Calendar"
7572
  msgstr "Synchroniseer met Google Kalender"
8
  "Language: nl_NL\n"
9
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
10
  "Report-Msgid-Bugs-To: \n"
11
+ "POT-Creation-Date: 2020-06-03 19:02+0000\n"
12
+ "PO-Revision-Date: 2020-06-03 19:22+0000\n"
13
  "Last-Translator: support@bookly.info\n"
14
  "Language-Team: Dutch\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
1467
  msgid "Add Staff Days Off"
1468
  msgstr "Voeg personeel vrije dag toe"
1469
 
1470
+ msgid ""
1471
+ "Hide this field if you want to hide the list of WP users from your staff "
1472
+ "members."
1473
+ msgstr ""
1474
+ "Verberg dit veld als u de lijst met WP-gebruikers voor uw medewerkers wilt "
1475
+ "verbergen."
1476
+
1477
  msgid "Hide visibility field"
1478
  msgstr "Verberg zichtbaarheidsveld"
1479
 
1528
  msgid "Capacity"
1529
  msgstr "Capaciteit"
1530
 
1531
+ msgid "Hide WordPress users"
1532
+ msgstr "Verberg Wordpress gebruikers"
1533
+
1534
  msgid "Special hours"
1535
  msgstr "Speciale uren"
1536
 
2426
  "boeking uit te voeren."
2427
 
2428
  msgid "Your payment has been accepted for processing."
2429
+ msgstr "Uw betaling is geaccepteerd voor verwerking."
2430
 
2431
  msgid ""
2432
  "You selected a booking for {service_name} by {staff_name} at "
2791
  msgid "Price with custom Sender ID"
2792
  msgstr "Prijs met aangepaste Afzender ID"
2793
 
 
 
 
2794
  msgid "Requested ID"
2795
  msgstr "Aangevraagde ID"
2796
 
3079
  msgid "Pending sender ID already exists."
3080
  msgstr "In afwachting van de afzender ID bestaat al."
3081
 
3082
+ msgid "Recharge not available."
3083
+ msgstr "Herladen niet beschikbaar."
3084
+
3085
  msgid "Recovery code expired."
3086
  msgstr "Herstelcode verlopen."
3087
 
3157
  msgid "Archived"
3158
  msgstr "Gearchiveerd"
3159
 
3160
+ msgid "Setup your country"
3161
+ msgstr "Stel uw land in"
 
 
 
3162
 
3163
+ msgid ""
3164
+ "Please spend a minute to setup your country. This will help us provide you "
3165
+ "with appropriate payment methods when replenishing your account."
3166
+ msgstr ""
3167
+ "Neem even de tijd om uw land in te stellen. Dit helpt ons om u de juiste "
3168
+ "betalingsmethoden te bieden bij het aanvullen van uw account."
 
 
 
 
 
3169
 
3170
+ msgid ""
3171
+ "The country will also be displayed in the invoice on a separate line below "
3172
+ "the company address. Make sure the other fields in the invoice do not "
3173
+ "contain the name of the country."
3174
+ msgstr ""
3175
+ "Het land wordt ook weergegeven op de factuur op een aparte regel onder het "
3176
+ "bedrijfsadres. Zorg ervoor dat de andere velden op de factuur niet de naam "
3177
+ "van het land bevatten."
3178
 
3179
+ msgid ""
3180
+ "Your country is the location from where you consume Bookly SMS services and "
3181
+ "is used to provide you with the payment methods available in that country"
3182
+ msgstr ""
3183
+ "Uw land is de locatie waar u de SMS-diensten van Bookly gebruikt en wordt "
3184
+ "gebruikt om u te voorzien van de betalingsmethoden die in dat land "
3185
+ "beschikbaar zijn"
3186
 
3187
+ msgid "Set country"
3188
+ msgstr "Stel land in"
3189
 
3190
+ msgid "I'll do it later"
3191
+ msgstr "Ik doe het later"
3192
 
3193
  msgid "SMS Notifications"
3194
  msgstr "SMS-meldingen"
3195
 
 
 
 
 
 
 
 
 
 
 
 
 
3196
  msgid "Approved at"
3197
  msgstr "Goedgekeurd op"
3198
 
3199
+ msgid "Change the sender's name to your phone number or any other name"
3200
+ msgstr "Wijzig de naam van de afzender in uw telefoonnummer of een andere naam"
3201
+
3202
+ msgid "Click this button to access your Bookly SMS account settings"
3203
+ msgstr ""
3204
+ "Klik op deze knop om toegang te krijgen tot uw Bookly SMS-accountinstellingen"
3205
+
3206
  msgid "Log out"
3207
  msgstr "Uitloggen"
3208
 
3209
  msgid "Notifications"
3210
  msgstr "Meldingen"
3211
 
 
 
 
 
 
 
3212
  msgid "Purchases"
3213
  msgstr "Aankopen"
3214
 
3304
  msgid "Repeat new password"
3305
  msgstr "Herhaal nieuw wachtwoord"
3306
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3307
  msgid ""
3308
  "If you do not see your country in the list please contact us at <a "
3309
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3372
  msgid "Can only contain letters or digits (up to 11 characters)."
3373
  msgstr "Kan alleen letters of cijfers bevatten (maximaal 11 tekens)."
3374
 
3375
+ msgid "Account settings"
3376
+ msgstr "Accountinstellingen"
3377
+
3378
+ msgid "Auto-Recharge"
3379
+ msgstr "Auto-Opladen"
3380
+
3381
+ msgid "Invoice"
3382
+ msgstr "Factuur"
3383
+
3384
+ msgid "Change password"
3385
+ msgstr "Verander wachtwoord"
3386
+
3387
+ #, php-format
3388
+ msgid "We will only charge you when your balance falls bellow %s"
3389
+ msgstr "We brengen alleen kosten in rekening als uw saldo onder %s daalt"
3390
+
3391
+ msgid "Company name"
3392
+ msgstr "Bedrijfsnaam"
3393
+
3394
+ msgid "Company address"
3395
+ msgstr "Adres bedrijf"
3396
+
3397
+ msgid "Company address line 2"
3398
+ msgstr "Adres bedrijf regel 2"
3399
+
3400
+ msgid "You can change the country <a href=\"#\">here</a>"
3401
+ msgstr "U kunt het land <a href=\"#\">hier</a> wijzigen"
3402
+
3403
+ msgid "Company number"
3404
+ msgstr "Bedrijfsnummer"
3405
+
3406
+ msgid "VAT / Tax number"
3407
+ msgstr "BTW-nummer"
3408
+
3409
+ msgid "Additional text to include in invoice"
3410
+ msgstr "Extra tekst voor op de factuur"
3411
+
3412
+ #, php-format
3413
+ msgid "The invoice will be sent to <a href=\"mailto:%1$s\">%1$s</a>"
3414
+ msgstr "De factuur zal worden verzonden naar <a href=\"mailto:%1$s\">%1$s</a>"
3415
+
3416
+ msgid "Copy invoice to another email(s)"
3417
+ msgstr "Kopieer factuur naar andere e-mail(s)"
3418
 
3419
+ msgid "Enter one or more email addresses separated by commas."
3420
+ msgstr "Vul een of mesrdere e-mailadressen in, gescheiden door komma's."
3421
+
3422
+ msgid "Save invoice settings"
3423
+ msgstr "Bewaar factuur instellingen"
3424
 
3425
+ msgid "Send email notification to administrators at low balance"
3426
+ msgstr "Stuur e-mail notificatie aan beheerders bij lage balans"
3427
 
3428
+ msgid "Send weekly summary to administrators"
3429
+ msgstr "Stuur wekelijkse samenvatting naar beheerders"
3430
+
3431
+ msgid ""
3432
+ "Your country is the location from where you consume Bookly SMS services and "
3433
+ "is used to provide you with the payment methods available in that country."
3434
+ msgstr ""
3435
+ "Uw land is de locatie waar u de SMS-diensten van Bookly gebruikt en wordt "
3436
+ "gebruikt om u te voorzien van de betalingsmethoden die in dat land "
3437
+ "beschikbaar zijn."
3438
+
3439
+ msgid "Update country"
3440
+ msgstr "Land bijwerken"
3441
+
3442
+ msgid "Old password"
3443
+ msgstr "Oude wachtwoord"
3444
+
3445
+ msgid "Please accept terms and conditions."
3446
+ msgstr "Accepteer alstublieft onze algemene voorwaarden."
3447
 
3448
+ msgid "Passwords don't match"
3449
+ msgstr "Wachtwoorden komen niet overeen"
3450
 
3451
  msgid "Last month"
3452
  msgstr "Afgelopen maand"
3460
  msgid "No records for selected period."
3461
  msgstr "Geen records voor de geselecteerde periode."
3462
 
 
 
 
3463
  msgid ""
3464
+ "To generate an invoice you should fill in company information in Bookly SMS "
3465
+ "Account settings -> Invoice"
3466
  msgstr ""
3467
+ "Om een factuur te genereren, moet u bedrijfsinformatie invullen in de "
3468
+ "instellingen van Bookly SMS Accountinstellingen -> Factuur"
3469
 
3470
  msgid "enable"
3471
  msgstr "inschakelen"
3479
  msgid "Service is temporarily unavailable. Please try again later."
3480
  msgstr "Service is tijdelijk niet beschikbaar. Probeer het later nogmaals."
3481
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3482
  msgid "SMS has been sent successfully."
3483
  msgstr "SMS is met succes verstuurd."
3484
 
3697
  "kantooruren van het bedrijf. Zorg ervoor om de planning van uw medewerkers "
3698
  "te controleren als u onverwacht gedrag van de reserveringssysteem heeft."
3699
 
3700
+ msgid "internal note"
3701
+ msgstr "interne notitie"
3702
+
3703
  msgid "duration of service"
3704
  msgstr "duur van de dienstverlening"
3705
 
3854
  msgid ""
3855
  "The time interval which is used as a step when building all time slots for "
3856
  "the service at the Time step. The setting overrides global settings in "
3857
+ "Settings > General. Use Default to apply global settings."
3858
  msgstr ""
3859
  "De tijdsinterval die wordt gebruikt als een stap bij het bouwen van alle "
3860
  "tijdvakken voor de service in de Tijd stap. De instelling gaat voor de "
3861
  "algemene instellingen in de Instellingen Algemeen. Gebruik Standaard om "
3862
  "algemene instellingen toe te passen."
3863
 
3864
+ msgid "The service will be created with the visibility of Private."
3865
+ msgstr "De service wordt gemaakt met de zichtbaarheid van Privé."
3866
+
3867
+ msgid "Duplicate"
3868
+ msgstr "Dupliceer"
3869
+
3870
  msgid "You must select at least one repeat option for recurring services."
3871
  msgstr ""
3872
  "Je moet ten minste één herhaaloptie selecteren voor terugkerende services."
3880
  msgstr[0] "%d dienst"
3881
  msgstr[1] "%d diensten"
3882
 
3883
+ #, php-format
3884
+ msgid "Copy of %s"
3885
+ msgstr "Kopie van %s"
3886
+
3887
+ msgid "Auto-refresh Calendar"
3888
+ msgstr "Automatisch verversen Kalender"
3889
+
3890
+ msgid "Every 1 minute"
3891
+ msgstr "Iedere 1 minuut"
3892
+
3893
+ msgid "Every 5 minutes"
3894
+ msgstr "Iedere 5 minuten"
3895
+
3896
+ msgid "Every 15 minutes"
3897
+ msgstr "Iedere 15 minuten"
3898
+
3899
+ msgid "Disable"
3900
+ msgstr "Uitschakelen"
3901
+
3902
  msgid "Welcome to Bookly and thank you for your choice!"
3903
  msgstr "Welkom bij Bookly en bedankt voor uw keuze!"
3904
 
4345
  msgid "Insert Appointment Booking Form"
4346
  msgstr "Boekingsformulier Invoegen"
4347
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4348
  msgid "Send tax information"
4349
  msgstr "Verzend belasting informatie"
4350
 
4718
  msgid "Edit email notification"
4719
  msgstr "Bewerk e-mail melding"
4720
 
4721
+ msgid "Thank you"
4722
+ msgstr "Bedankt"
4723
+
4724
+ msgid "Your payment has been accepted for processing"
4725
+ msgstr "Uw betaling wordt verwerkt"
4726
+
4727
+ msgid "Back to the list of amounts"
4728
+ msgstr "Terug naar de lijst van bedragen"
4729
+
4730
+ msgid "Please select a payment method"
4731
+ msgstr "Selecteer een betalingsmethode"
4732
+
4733
+ msgid "Credit card"
4734
+ msgstr "Creditkaart"
4735
+
4736
+ msgid "Account recharge"
4737
+ msgstr "Account opnieuw opladen"
4738
+
4739
+ msgid "Oops"
4740
+ msgstr "Oeps"
4741
+
4742
+ msgid "Your payment has been cancelled"
4743
+ msgstr "Uw betaling is geannuleerd"
4744
+
4745
+ msgid "Please select an amount and recharge your account"
4746
+ msgstr "Selecteer een bedrag en herlaad uw account"
4747
+
4748
+ msgid "Pay using"
4749
+ msgstr "Betaal met"
4750
+
4751
+ msgid "Continue with"
4752
+ msgstr "Doorgaan met"
4753
+
4754
+ msgid "Auto-Recharge has been enabled"
4755
+ msgstr "Automatisch herladen is ingeschakeld"
4756
+
4757
+ msgid "Auto-Recharge has been cancelled"
4758
+ msgstr "Automatisch herladen is geannuleerd"
4759
+
4760
+ msgid "current<br/>balance"
4761
+ msgstr "huidigsaldo"
4762
+
4763
+ msgid "Recharge"
4764
+ msgstr "Herladen"
4765
+
4766
+ msgid "users choice"
4767
+ msgstr "gebruikerskeuze"
4768
+
4769
+ msgid "Buy now"
4770
+ msgstr "Nu kopen"
4771
+
4772
+ msgid "Best offer"
4773
+ msgstr "Beste aanbieding"
4774
+
4775
+ msgid "Users choice"
4776
+ msgstr "Gebruikerskeuze"
4777
+
4778
+ msgid "Other options"
4779
+ msgstr "Andere opties"
4780
+
4781
+ msgid "best offer"
4782
+ msgstr "beste aanbieding"
4783
+
4784
+ msgid "Select amount of Auto-Recharge"
4785
+ msgstr "Selecteer bedrag voor Automatisch herladen"
4786
+
4787
+ msgid "Enable"
4788
+ msgstr "Inschakelen"
4789
+
4790
+ msgid "Disable Auto-Recharge"
4791
+ msgstr "Uitschakelen Auto-Opladen"
4792
+
4793
+ msgid "Are you sure you want to disable Auto-Recharge?"
4794
+ msgstr "Weet u zeker dat u Automatisch herladen wilt uitschakelen?"
4795
+
4796
+ msgid "Turn on Auto-Recharge and get even more"
4797
+ msgstr "Schakel Automatisch herladen in en ontvang zelfs nog meer"
4798
+
4799
+ msgid "Auto-Recharge disabled"
4800
+ msgstr "Auto-Opladen uitgeschakeld"
4801
+
4802
+ #, php-format
4803
+ msgid "Can't disable Auto-Recharge, please contact us at %s"
4804
+ msgstr ""
4805
+ "Kan Automatisch herladen niet uitschakelen, neem contact met ons op via %s"
4806
+
4807
+ msgid "Auto-Recharge has failed, please replenish your balance directly."
4808
+ msgstr "Auto-Opladen is mislukt, vult uw saldo direct aan."
4809
+
4810
+ msgid "Card payment has failed, please use another payment option"
4811
+ msgstr "Kaart betaling is mislukt, gebruik een andere betalingsmethode"
4812
+
4813
+ msgid "Payment has failed, please use another payment option"
4814
+ msgstr "Betaling is mislukt, gebruik een andere betalingsmethode"
4815
+
4816
  msgid "total quantity of appointments in cart"
4817
  msgstr "aantal afspraken in het winkelmandje"
4818
 
4822
  msgid "total price of booking"
4823
  msgstr "totale prijs van de reservering"
4824
 
4825
+ msgid ""
4826
+ "Could you please do me a BIG favor and give it a 5-star rating on WordPress?"
4827
+ msgstr ""
4828
+ "Kun je me alsjeblieft een GROTE gunst bewijzen en een 5-sterrenbeoordeling "
4829
+ "geven op WordPress?"
4830
+
4831
+ msgid "Just to help us spread the word and boost our motivation."
4832
+ msgstr ""
4833
+ "Gewoon om ons te helpen de boodschap te verspreiden en onze motivatie te "
4834
+ "vergroten."
4835
+
4836
+ msgid "Ok, you deserve it"
4837
+ msgstr "Ok, je verdient het"
4838
+
4839
+ msgid "Nope, maybe later"
4840
+ msgstr "Nee, misschien later"
4841
+
4842
+ msgid "Thank you for the {star} star rating!!!"
4843
+ msgstr "Bedankt voor de {star} sterren beoordeling!!!"
4844
+
4845
+ msgid "You asked to remind you"
4846
+ msgstr "Je hebt gevraagd je eraan te herinneren"
4847
+
4848
+ msgid "Congratulations!!!"
4849
+ msgstr "Gefeliciteerd!!!"
4850
+
4851
+ msgid "You just made the <b>10th Sale</b> using Bookly Plugin!"
4852
+ msgstr "Je hebt zojuist de <b>10e Verkoop</b> gedaan met de Bookly Plug-in!"
4853
+
4854
+ msgid "You just made the <b>100th Sale</b> using Bookly Plugin!"
4855
+ msgstr "Je hebt zojuist de <b>100e Verkoop</b> gedaan met de Bookly Plug-in!"
4856
+
4857
+ msgid "You just made the <b>1000th Sale</b> using Bookly Plugin!"
4858
+ msgstr "Je hebt zojuist de <b>1000e Verkoop</b> gedaan met de Bookly Plug-in!"
4859
+
4860
+ msgid "You just made the <b>10000th Sale</b> using Bookly Plugin!"
4861
+ msgstr "Je hebt zojuist de <b>10000e Verkoop</b> gedaan met de Bookly Plug-in!"
4862
+
4863
  msgid ""
4864
  "To help us improve Bookly, the plugin anonymously collects usage information."
4865
  " You can opt out of sharing the information in Settings > General."
4875
  "Laat de plug-in anoniem gebruiksinformatie verzamelen om het Bookly team te "
4876
  "helpen het product te verbeteren."
4877
 
 
 
 
4878
  msgid "Agree"
4879
  msgstr "Eens"
4880
 
4881
+ msgid "Disagree"
4882
+ msgstr "Oneens"
4883
+
4884
  #, php-format
4885
  msgid ""
4886
  "<b>Bookly Lite rebrands into Bookly with more features available.</b><br/>"
4896
  "over de grote Bookly update, lees dan ons <a href=\"%s\" target=\"_blank\">"
4897
  "blogbericht</a>."
4898
 
4899
+ #, php-format
4900
+ msgid "Recharge your account and get up to %s extra."
4901
+ msgstr "Herlaad uw account en ontvang tot %s extra."
4902
+
4903
+ msgid ""
4904
+ "Send SMS notifications to your customers, increasing their loyalty and "
4905
+ "involvement."
4906
+ msgstr ""
4907
+ "Stuur sms-meldingen naar uw klanten en vergroot hun loyaliteit en "
4908
+ "betrokkenheid."
4909
+
4910
+ #, php-format
4911
+ msgid "Enable Auto-Recharge and get up to %s extra."
4912
+ msgstr "Schakel Automatisch herladen in en ontvang tot %s extra."
4913
+
4914
+ msgid ""
4915
+ "Let your clients receive notifications on time - don't let the service stop."
4916
+ msgstr ""
4917
+ "Laat uw klanten op tijd meldingen ontvangen - laat de service niet stoppen."
4918
+
4919
+ msgid "Remind me later"
4920
+ msgstr "Herinner me later"
4921
+
4922
  msgid "This function is not available in the Bookly."
4923
  msgstr "Deze functie is niet beschikbaar in Bookly."
4924
 
6265
  msgid ""
6266
  "If this setting is enabled then online meetings will be created for new "
6267
  "appointments with the selected online meeting provider. Make sure that the "
6268
+ "provider is configured properly in Settings > <a href=\"%s\">Online "
6269
  "Meetings</a>"
6270
  msgstr ""
6271
  "Als deze instelling is ingeschakeld, worden er online vergaderingen gemaakt "
6308
  "gehouden bij het bereken van de bezetting van leveranciers. 0 betekent de "
6309
  "dag van boeking."
6310
 
6311
+ msgid "Pick random staff member in case of uncertainty"
6312
+ msgstr "Kies een willekeurige medewerker in geval van onzekerheid"
6313
+
6314
+ msgid ""
6315
+ "Enable this option to pick a random staff member if both meet the criteria "
6316
+ "chosen in \"Providers preference for ANY\". Otherwise the selection order is "
6317
+ "unknown."
6318
+ msgstr ""
6319
+ "Schakel deze optie in om een willekeurige medewerker te kiezen als beide "
6320
+ "voldoen aan de criteria die zijn gekozen in \"Provider voorkeur voor ELKE\". "
6321
+ "Anders is de selectievolgorde onbekend."
6322
+
6323
  msgid "Limit appointments per customer"
6324
  msgstr "Limiet afspraken per klant"
6325
 
6353
  msgid ""
6354
  "This setting allows you to limit the number of appointments that can be "
6355
  "booked by a customer in any given period. Restriction may end after a fixed "
6356
+ "period or with the beginning of the next calendar period - new day, week, "
6357
  "month, etc."
6358
  msgstr ""
6359
  "Met deze instelling kunt u het aantal afspraken beperken dat door een klant "
7023
  msgid "Create another coupon"
7024
  msgstr "Maak nog een kortingsbon"
7025
 
 
 
 
7026
  msgid "No coupons found."
7027
  msgstr "Geen kortingsbonnen gevonden."
7028
 
7041
  msgid "Max appointments should be greater than zero."
7042
  msgstr "Max afspraken moet groter zijn dan nul."
7043
 
7044
+ msgid "The code already exists"
7045
+ msgstr "De code bestaat reeds"
7046
+
7047
  msgid "Please enter a non empty mask."
7048
  msgstr "Voer een niet leeg masker in."
7049
 
7755
  "gekopieerd naar Bookly afspraken. Indien uitgeschakeld zal een standaard "
7756
  "titel \"Google Kalender evenement\" worden gebruikt."
7757
 
7758
+ msgid "Overwrite the description of the original Google Calendar events"
7759
+ msgstr ""
7760
+ "Overschrijf de beschrijving van de originele Google Calendar-evenementen"
7761
+
7762
+ msgid ""
7763
+ "If enabled then the description of the Google Calendar events originally "
7764
+ "copied to Bookly will be overwritten by the Bookly appointment data after "
7765
+ "they have been edited in Bookly Calendar"
7766
+ msgstr ""
7767
+ "Indien ingeschakeld, wordt de beschrijving van de Google Calendar-"
7768
+ "evenementen die oorspronkelijk naar Bookly zijn gekopieerd, overschreven "
7769
+ "door de afspraakgegevens van Bookly nadat ze zijn bewerkt in Bookly Calendar"
7770
+
7771
  msgid "Synchronize with Google Calendar"
7772
  msgstr "Synchroniseer met Google Kalender"
languages/bookly-pt_BR.mo CHANGED
Binary file
languages/bookly-pt_BR.po CHANGED
@@ -8,8 +8,8 @@ msgstr ""
8
  "Language: pt_BR\n"
9
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2020-04-19 23:00+0000\n"
12
- "PO-Revision-Date: 2020-04-20 01:44+0000\n"
13
  "Last-Translator: support@bookly.info\n"
14
  "Language-Team: Portuguese (Brazil)\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
@@ -1471,6 +1471,11 @@ msgstr "Adicionar horário do funcionário"
1471
  msgid "Add Staff Days Off"
1472
  msgstr "Adicionar dias de folga do funcionário"
1473
 
 
 
 
 
 
1474
  msgid "Hide visibility field"
1475
  msgstr "Ocultar campo de visibilidade"
1476
 
@@ -1519,6 +1524,9 @@ msgstr "Bloco personalizado para exibição dos dias de folga do funcionário"
1519
  msgid "Capacity"
1520
  msgstr "Capacidade"
1521
 
 
 
 
1522
  msgid "Special hours"
1523
  msgstr "Horas especiais"
1524
 
@@ -2416,7 +2424,7 @@ msgstr ""
2416
  "contato conosco para fazer uma reserva."
2417
 
2418
  msgid "Your payment has been accepted for processing."
2419
- msgstr "Seu pagamento foi aceito para processamento."
2420
 
2421
  msgid ""
2422
  "You selected a booking for {service_name} by {staff_name} at "
@@ -2789,9 +2797,6 @@ msgstr "Preço regular"
2789
  msgid "Price with custom Sender ID"
2790
  msgstr "Preço com ID do remetente personalizada"
2791
 
2792
- msgid "Order"
2793
- msgstr "Pedido"
2794
-
2795
  msgid "Requested ID"
2796
  msgstr "ID solicitada"
2797
 
@@ -3080,6 +3085,9 @@ msgstr "E-mail inválido."
3080
  msgid "Pending sender ID already exists."
3081
  msgstr "ID do remetente pendente já existe"
3082
 
 
 
 
3083
  msgid "Recovery code expired."
3084
  msgstr "Código de recuperação expirado."
3085
 
@@ -3155,66 +3163,49 @@ msgstr "Anexos"
3155
  msgid "Archived"
3156
  msgstr "Arquivado"
3157
 
3158
- msgid "Send invoice"
3159
- msgstr "Enviar fatura"
3160
-
3161
- msgid "Company name"
3162
- msgstr "Nome da empresa"
3163
-
3164
- msgid "Note: invoice will be sent to your PayPal email address"
3165
- msgstr "Nota: a fatura será enviada ao seu endereço e-mail PayPal"
3166
-
3167
- msgid "Company address"
3168
- msgstr "Endereço da empresa"
3169
-
3170
- msgid "Copy invoice to another email(s)"
3171
- msgstr "Copiar fatura paro outro(s) e-mail(s)."
3172
 
3173
- msgid "Enter one or more email addresses separated by commas."
3174
- msgstr "Entrar um ou mais endereços de e-mail separados por virgulas."
 
 
3175
 
3176
- msgid "Company address line 2"
3177
- msgstr "Endereço da empresa linha 2"
 
 
 
3178
 
3179
- msgid "VAT"
3180
- msgstr "IVA"
 
 
3181
 
3182
- msgid "Company code"
3183
- msgstr "Código da empresa"
3184
 
3185
- msgid "Additional text to include into invoice"
3186
- msgstr "texto adicional para incluir na fatura"
3187
 
3188
  msgid "SMS Notifications"
3189
  msgstr "Notificações por SMS"
3190
 
3191
- msgid "Your balance"
3192
- msgstr "Seu saldo"
3193
-
3194
- msgid "Send email notification to administrators at low balance"
3195
- msgstr "Enviar notificação por email para os administradores com saldo baixo"
3196
-
3197
- msgid "Send weekly summary to administrators"
3198
- msgstr "Enviar resumo semanal para os administradores"
3199
-
3200
- msgid "Change"
3201
- msgstr "Alterar"
3202
-
3203
  msgid "Approved at"
3204
  msgstr "Aprovado em"
3205
 
 
 
 
 
 
 
3206
  msgid "Log out"
3207
  msgstr "Sair"
3208
 
3209
  msgid "Notifications"
3210
  msgstr "Notificações"
3211
 
3212
- msgid "Add money"
3213
- msgstr "Adicionar dinheiro"
3214
-
3215
- msgid "Auto-Recharge"
3216
- msgstr "Auto-Recharge"
3217
-
3218
  msgid "Purchases"
3219
  msgstr "Compras"
3220
 
@@ -3311,23 +3302,6 @@ msgstr "Digite o código recebido no e-mail"
3311
  msgid "Repeat new password"
3312
  msgstr "Repita a nova senha"
3313
 
3314
- msgid "Change password"
3315
- msgstr "Alterar a senha"
3316
-
3317
- msgid "Old password"
3318
- msgstr "Senha antiga"
3319
-
3320
- msgid ""
3321
- "We will only charge your PayPal account when your balance falls below $10."
3322
- msgstr ""
3323
- "Só debitamos de sua conta PayPal quando seu saldo estiver abaixo de $10."
3324
-
3325
- msgid "Enable Auto-Recharge"
3326
- msgstr "Ativar Auto-Recharge"
3327
-
3328
- msgid "Disable Auto-Recharge"
3329
- msgstr "Desativar Auto-Recharge"
3330
-
3331
  msgid ""
3332
  "If you do not see your country in the list please contact us at <a "
3333
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
@@ -3397,20 +3371,78 @@ msgstr "Cancelar solicitação"
3397
  msgid "Can only contain letters or digits (up to 11 characters)."
3398
  msgstr "Só pode conter letras ou dígitos (até 11 caracteres)."
3399
 
3400
- msgid "Please accept terms and conditions."
3401
- msgstr "Por favor, aceite os termos e condições."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3402
 
3403
- msgid "Your payment has been interrupted."
3404
- msgstr "Seu pagamento foi interrompido."
3405
 
3406
- msgid "Auto-Recharge enabled."
3407
- msgstr "Auto-Recharge ativado."
3408
 
3409
- msgid "You declined the Auto-Recharge of your balance."
3410
- msgstr "Você recusou o Auto-Recharge do seu saldo."
3411
 
3412
- msgid "Please enter old password."
3413
- msgstr "Digite a senha antiga."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3414
 
3415
  msgid "Last month"
3416
  msgstr "Último mês"
@@ -3424,15 +3456,10 @@ msgstr "ID do remetente foi redefinido para o padrão."
3424
  msgid "No records for selected period."
3425
  msgstr "Não há registros para o período selecionado."
3426
 
3427
- msgid "Invoice"
3428
- msgstr "Fatura"
3429
-
3430
  msgid ""
3431
- "To generate an invoice you should fill in company information in Bookly > "
3432
- "SMS Notifications > Send invoice."
3433
  msgstr ""
3434
- "Para gerar uma fatura, você deve preencher as informações da empresa em "
3435
- "Bookly > Notificações por SMS> Enviar fatura."
3436
 
3437
  msgid "enable"
3438
  msgstr "ativar"
@@ -3448,19 +3475,6 @@ msgstr ""
3448
  "O serviço está temporariamente indisponível. Por favor, tente novamente mais "
3449
  "tarde."
3450
 
3451
- msgid "Auto-Recharge has failed, please replenish your balance directly."
3452
- msgstr "O Auto-Recharge falhou. Por favor, recarregue o seu saldo diretamente."
3453
-
3454
- msgid "Auto-Recharge disabled"
3455
- msgstr "Auto-Recharge desativado"
3456
-
3457
- msgid ""
3458
- "Error. Can't disable Auto-Recharge, you can perform this action in your "
3459
- "PayPal account."
3460
- msgstr ""
3461
- "Erro. Não é possível desativar o Auto-Recharge. Você pode executar esta ação "
3462
- "em sua conta PayPal."
3463
-
3464
  msgid "SMS has been sent successfully."
3465
  msgstr "SMS foi enviada com sucesso."
3466
 
@@ -3678,6 +3692,9 @@ msgstr ""
3678
  "o horário dos seus funcionários se você notar algum comportamento inesperado "
3679
  "do sistema de reserva."
3680
 
 
 
 
3681
  msgid "duration of service"
3682
  msgstr "duração do serviço"
3683
 
@@ -3835,12 +3852,18 @@ msgstr "Intervalo de tempo igual à duração do serviço."
3835
  msgid ""
3836
  "The time interval which is used as a step when building all time slots for "
3837
  "the service at the Time step. The setting overrides global settings in "
3838
- "Settings General. Use Default to apply global settings."
3839
  msgstr ""
3840
  "A duração usada como etapa na construção de todos intervalos de tempo do "
3841
  "serviço na etapa Time. A definição substitui as definições globais en "
3842
  "Settings General. Use Default para aplicar as definições globais."
3843
 
 
 
 
 
 
 
3844
  msgid "You must select at least one repeat option for recurring services."
3845
  msgstr ""
3846
  "É necessário selecionar pelo menos uma opção de repetição para serviços "
@@ -3855,6 +3878,25 @@ msgid_plural "%d services"
3855
  msgstr[0] "%d serviço"
3856
  msgstr[1] "%d serviços"
3857
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3858
  msgid "Welcome to Bookly and thank you for your choice!"
3859
  msgstr "Bem-vindo ao Bookly e obrigado pela sua escolha!"
3860
 
@@ -4305,42 +4347,6 @@ msgstr "Adicionar formulário de reserva no Bookly "
4305
  msgid "Insert Appointment Booking Form"
4306
  msgstr "Insira formulário de reserva de compromissos"
4307
 
4308
- msgid ""
4309
- "Could you please do me a BIG favor and give it a 5-star rating on WordPress?"
4310
- msgstr ""
4311
- "Pode nos fazer um GRANDE favor e nos dar uma classificação de 5 estrelas no "
4312
- "WordPress ?"
4313
-
4314
- msgid "Just to help us spread the word and boost our motivation."
4315
- msgstr "É só para passar a palavra e estimular sua motivação."
4316
-
4317
- msgid "Ok, you deserve it"
4318
- msgstr "OK, você o mereceu"
4319
-
4320
- msgid "Nope, maybe later"
4321
- msgstr "Não, talvez posteriormente"
4322
-
4323
- msgid "Thank you for the {star} star rating!!!"
4324
- msgstr "Obrigado pela classificação de {star} estrelas"
4325
-
4326
- msgid "You asked to remind you"
4327
- msgstr "Você pediu para relembrar"
4328
-
4329
- msgid "Congratulations!!!"
4330
- msgstr "Felicitações !!!!"
4331
-
4332
- msgid "You just made the <b>10th Sale</b> using Bookly Plugin!"
4333
- msgstr "Acabou de fazer sua 10.a venda usando o plugin Bookly !"
4334
-
4335
- msgid "You just made the <b>100th Sale</b> using Bookly Plugin!"
4336
- msgstr "Acabou de fazer sua 100.a venda usando o plugin Bookly !"
4337
-
4338
- msgid "You just made the <b>1000th Sale</b> using Bookly Plugin!"
4339
- msgstr "Acabou de fazer sua 1000.a venda usando o plugin Bookly !"
4340
-
4341
- msgid "You just made the <b>10000th Sale</b> using Bookly Plugin!"
4342
- msgstr "Acabou de fazer sua 10000.a venda usando o plugin Bookly !"
4343
-
4344
  msgid "Send tax information"
4345
  msgstr "Enviar informações de tributação"
4346
 
@@ -4713,6 +4719,100 @@ msgstr "Notificação de novo email"
4713
  msgid "Edit email notification"
4714
  msgstr "Editar notificação de email"
4715
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4716
  msgid "total quantity of appointments in cart"
4717
  msgstr "quantidade total de compromissos no carrinho"
4718
 
@@ -4722,6 +4822,42 @@ msgstr "formulário de login"
4722
  msgid "total price of booking"
4723
  msgstr "preço total da reserva"
4724
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4725
  msgid ""
4726
  "To help us improve Bookly, the plugin anonymously collects usage information."
4727
  " You can opt out of sharing the information in Settings > General."
@@ -4737,12 +4873,12 @@ msgstr ""
4737
  "Permitir que o plugin colete informações de uso anonimamente para ajudar a "
4738
  "equipe Bookly a aprimorar o produto."
4739
 
4740
- msgid "Disagree"
4741
- msgstr "Discordo"
4742
-
4743
  msgid "Agree"
4744
  msgstr "Concordo"
4745
 
 
 
 
4746
  #, php-format
4747
  msgid ""
4748
  "<b>Bookly Lite rebrands into Bookly with more features available.</b><br/>"
@@ -4757,6 +4893,26 @@ msgstr ""
4757
  "novo Bookly gratuito. Para saber mais sobre essa grande atualização do "
4758
  "Bookly, confira no nosso <a href=\"%s\" target=\"_blank\">post do blog</a>."
4759
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4760
  msgid "This function is not available in the Bookly."
4761
  msgstr "Esta função não está disponível no Bookly."
4762
 
@@ -6103,7 +6259,7 @@ msgstr "Criar reuniões on-line"
6103
  msgid ""
6104
  "If this setting is enabled then online meetings will be created for new "
6105
  "appointments with the selected online meeting provider. Make sure that the "
6106
- "provider is configured properly in Settings <a href=\"%s\">Online "
6107
  "Meetings</a>"
6108
  msgstr ""
6109
  "Se esta configuração estiver ativada, as reuniões on-line serão criadas para "
@@ -6147,6 +6303,15 @@ msgstr ""
6147
  "consideração ao calcular a ocupação dos fornecedores. 0 significa o dia da "
6148
  "reserva."
6149
 
 
 
 
 
 
 
 
 
 
6150
  msgid "Limit appointments per customer"
6151
  msgstr "Limite de compromissos por cliente"
6152
 
@@ -6180,7 +6345,7 @@ msgstr "por ano"
6180
  msgid ""
6181
  "This setting allows you to limit the number of appointments that can be "
6182
  "booked by a customer in any given period. Restriction may end after a fixed "
6183
- "period or with the beginning of the next calendar period new day, week, "
6184
  "month, etc."
6185
  msgstr ""
6186
  "Esta configuração permite limitar o número de compromissos que podem ser "
@@ -6854,9 +7019,6 @@ msgstr "Limitar aos clientes"
6854
  msgid "Create another coupon"
6855
  msgstr "Criar outro cupom"
6856
 
6857
- msgid "Duplicate"
6858
- msgstr "Duplicata"
6859
-
6860
  msgid "No coupons found."
6861
  msgstr "Nenhum cupom encontrado."
6862
 
@@ -6875,6 +7037,9 @@ msgstr "O mínimo de compromissos deve ser maior que zero."
6875
  msgid "Max appointments should be greater than zero."
6876
  msgstr "O máximo de compromissos deve ser maior que zero."
6877
 
 
 
 
6878
  msgid "Please enter a non empty mask."
6879
  msgstr "Por favor, insira uma máscara não-vazia."
6880
 
@@ -7580,5 +7745,14 @@ msgstr ""
7580
  "reservas do Bookly. Se desativada, o título padrão \"Evento do Google "
7581
  "Agenda\" será usado."
7582
 
 
 
 
 
 
 
 
 
 
7583
  msgid "Synchronize with Google Calendar"
7584
  msgstr "Sincronizar com o Google Agenda"
8
  "Language: pt_BR\n"
9
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
10
  "Report-Msgid-Bugs-To: \n"
11
+ "POT-Creation-Date: 2020-06-03 15:11+0000\n"
12
+ "PO-Revision-Date: 2020-06-03 15:11+0000\n"
13
  "Last-Translator: support@bookly.info\n"
14
  "Language-Team: Portuguese (Brazil)\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
1471
  msgid "Add Staff Days Off"
1472
  msgstr "Adicionar dias de folga do funcionário"
1473
 
1474
+ msgid ""
1475
+ "Hide this field if you want to hide the list of WP users from your staff "
1476
+ "members."
1477
+ msgstr ""
1478
+
1479
  msgid "Hide visibility field"
1480
  msgstr "Ocultar campo de visibilidade"
1481
 
1524
  msgid "Capacity"
1525
  msgstr "Capacidade"
1526
 
1527
+ msgid "Hide WordPress users"
1528
+ msgstr ""
1529
+
1530
  msgid "Special hours"
1531
  msgstr "Horas especiais"
1532
 
2424
  "contato conosco para fazer uma reserva."
2425
 
2426
  msgid "Your payment has been accepted for processing."
2427
+ msgstr ""
2428
 
2429
  msgid ""
2430
  "You selected a booking for {service_name} by {staff_name} at "
2797
  msgid "Price with custom Sender ID"
2798
  msgstr "Preço com ID do remetente personalizada"
2799
 
 
 
 
2800
  msgid "Requested ID"
2801
  msgstr "ID solicitada"
2802
 
3085
  msgid "Pending sender ID already exists."
3086
  msgstr "ID do remetente pendente já existe"
3087
 
3088
+ msgid "Recharge not available."
3089
+ msgstr ""
3090
+
3091
  msgid "Recovery code expired."
3092
  msgstr "Código de recuperação expirado."
3093
 
3163
  msgid "Archived"
3164
  msgstr "Arquivado"
3165
 
3166
+ msgid "Setup your country"
3167
+ msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
3168
 
3169
+ msgid ""
3170
+ "Please spend a minute to setup your country. This will help us provide you "
3171
+ "with appropriate payment methods when replenishing your account."
3172
+ msgstr ""
3173
 
3174
+ msgid ""
3175
+ "The country will also be displayed in the invoice on a separate line below "
3176
+ "the company address. Make sure the other fields in the invoice do not "
3177
+ "contain the name of the country."
3178
+ msgstr ""
3179
 
3180
+ msgid ""
3181
+ "Your country is the location from where you consume Bookly SMS services and "
3182
+ "is used to provide you with the payment methods available in that country"
3183
+ msgstr ""
3184
 
3185
+ msgid "Set country"
3186
+ msgstr ""
3187
 
3188
+ msgid "I'll do it later"
3189
+ msgstr ""
3190
 
3191
  msgid "SMS Notifications"
3192
  msgstr "Notificações por SMS"
3193
 
 
 
 
 
 
 
 
 
 
 
 
 
3194
  msgid "Approved at"
3195
  msgstr "Aprovado em"
3196
 
3197
+ msgid "Change the sender's name to your phone number or any other name"
3198
+ msgstr ""
3199
+
3200
+ msgid "Click this button to access your Bookly SMS account settings"
3201
+ msgstr ""
3202
+
3203
  msgid "Log out"
3204
  msgstr "Sair"
3205
 
3206
  msgid "Notifications"
3207
  msgstr "Notificações"
3208
 
 
 
 
 
 
 
3209
  msgid "Purchases"
3210
  msgstr "Compras"
3211
 
3302
  msgid "Repeat new password"
3303
  msgstr "Repita a nova senha"
3304
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3305
  msgid ""
3306
  "If you do not see your country in the list please contact us at <a "
3307
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3371
  msgid "Can only contain letters or digits (up to 11 characters)."
3372
  msgstr "Só pode conter letras ou dígitos (até 11 caracteres)."
3373
 
3374
+ msgid "Account settings"
3375
+ msgstr ""
3376
+
3377
+ msgid "Auto-Recharge"
3378
+ msgstr "Auto-Recharge"
3379
+
3380
+ msgid "Invoice"
3381
+ msgstr "Fatura"
3382
+
3383
+ msgid "Change password"
3384
+ msgstr "Alterar a senha"
3385
+
3386
+ #, php-format
3387
+ msgid "We will only charge you when your balance falls bellow %s"
3388
+ msgstr ""
3389
+
3390
+ msgid "Company name"
3391
+ msgstr "Nome da empresa"
3392
+
3393
+ msgid "Company address"
3394
+ msgstr "Endereço da empresa"
3395
 
3396
+ msgid "Company address line 2"
3397
+ msgstr "Endereço da empresa linha 2"
3398
 
3399
+ msgid "You can change the country <a href=\"#\">here</a>"
3400
+ msgstr ""
3401
 
3402
+ msgid "Company number"
3403
+ msgstr ""
3404
 
3405
+ msgid "VAT / Tax number"
3406
+ msgstr ""
3407
+
3408
+ msgid "Additional text to include in invoice"
3409
+ msgstr ""
3410
+
3411
+ #, php-format
3412
+ msgid "The invoice will be sent to <a href=\"mailto:%1$s\">%1$s</a>"
3413
+ msgstr ""
3414
+
3415
+ msgid "Copy invoice to another email(s)"
3416
+ msgstr "Copiar fatura paro outro(s) e-mail(s)."
3417
+
3418
+ msgid "Enter one or more email addresses separated by commas."
3419
+ msgstr "Entrar um ou mais endereços de e-mail separados por virgulas."
3420
+
3421
+ msgid "Save invoice settings"
3422
+ msgstr ""
3423
+
3424
+ msgid "Send email notification to administrators at low balance"
3425
+ msgstr "Enviar notificação por email para os administradores com saldo baixo"
3426
+
3427
+ msgid "Send weekly summary to administrators"
3428
+ msgstr "Enviar resumo semanal para os administradores"
3429
+
3430
+ msgid ""
3431
+ "Your country is the location from where you consume Bookly SMS services and "
3432
+ "is used to provide you with the payment methods available in that country."
3433
+ msgstr ""
3434
+
3435
+ msgid "Update country"
3436
+ msgstr ""
3437
+
3438
+ msgid "Old password"
3439
+ msgstr "Senha antiga"
3440
+
3441
+ msgid "Please accept terms and conditions."
3442
+ msgstr "Por favor, aceite os termos e condições."
3443
+
3444
+ msgid "Passwords don't match"
3445
+ msgstr ""
3446
 
3447
  msgid "Last month"
3448
  msgstr "Último mês"
3456
  msgid "No records for selected period."
3457
  msgstr "Não há registros para o período selecionado."
3458
 
 
 
 
3459
  msgid ""
3460
+ "To generate an invoice you should fill in company information in Bookly SMS "
3461
+ "Account settings -> Invoice"
3462
  msgstr ""
 
 
3463
 
3464
  msgid "enable"
3465
  msgstr "ativar"
3475
  "O serviço está temporariamente indisponível. Por favor, tente novamente mais "
3476
  "tarde."
3477
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3478
  msgid "SMS has been sent successfully."
3479
  msgstr "SMS foi enviada com sucesso."
3480
 
3692
  "o horário dos seus funcionários se você notar algum comportamento inesperado "
3693
  "do sistema de reserva."
3694
 
3695
+ msgid "internal note"
3696
+ msgstr ""
3697
+
3698
  msgid "duration of service"
3699
  msgstr "duração do serviço"
3700
 
3852
  msgid ""
3853
  "The time interval which is used as a step when building all time slots for "
3854
  "the service at the Time step. The setting overrides global settings in "
3855
+ "Settings > General. Use Default to apply global settings."
3856
  msgstr ""
3857
  "A duração usada como etapa na construção de todos intervalos de tempo do "
3858
  "serviço na etapa Time. A definição substitui as definições globais en "
3859
  "Settings General. Use Default para aplicar as definições globais."
3860
 
3861
+ msgid "The service will be created with the visibility of Private."
3862
+ msgstr ""
3863
+
3864
+ msgid "Duplicate"
3865
+ msgstr "Duplicata"
3866
+
3867
  msgid "You must select at least one repeat option for recurring services."
3868
  msgstr ""
3869
  "É necessário selecionar pelo menos uma opção de repetição para serviços "
3878
  msgstr[0] "%d serviço"
3879
  msgstr[1] "%d serviços"
3880
 
3881
+ #, php-format
3882
+ msgid "Copy of %s"
3883
+ msgstr ""
3884
+
3885
+ msgid "Auto-refresh Calendar"
3886
+ msgstr ""
3887
+
3888
+ msgid "Every 1 minute"
3889
+ msgstr ""
3890
+
3891
+ msgid "Every 5 minutes"
3892
+ msgstr ""
3893
+
3894
+ msgid "Every 15 minutes"
3895
+ msgstr ""
3896
+
3897
+ msgid "Disable"
3898
+ msgstr ""
3899
+
3900
  msgid "Welcome to Bookly and thank you for your choice!"
3901
  msgstr "Bem-vindo ao Bookly e obrigado pela sua escolha!"
3902
 
4347
  msgid "Insert Appointment Booking Form"
4348
  msgstr "Insira formulário de reserva de compromissos"
4349
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4350
  msgid "Send tax information"
4351
  msgstr "Enviar informações de tributação"
4352
 
4719
  msgid "Edit email notification"
4720
  msgstr "Editar notificação de email"
4721
 
4722
+ msgid "Thank you"
4723
+ msgstr ""
4724
+
4725
+ msgid "Your payment has been accepted for processing"
4726
+ msgstr "Seu pagamento foi aceito para processamento"
4727
+
4728
+ msgid "Back to the list of amounts"
4729
+ msgstr ""
4730
+
4731
+ msgid "Please select a payment method"
4732
+ msgstr ""
4733
+
4734
+ msgid "Credit card"
4735
+ msgstr ""
4736
+
4737
+ msgid "Account recharge"
4738
+ msgstr ""
4739
+
4740
+ msgid "Oops"
4741
+ msgstr ""
4742
+
4743
+ msgid "Your payment has been cancelled"
4744
+ msgstr ""
4745
+
4746
+ msgid "Please select an amount and recharge your account"
4747
+ msgstr ""
4748
+
4749
+ msgid "Pay using"
4750
+ msgstr ""
4751
+
4752
+ msgid "Continue with"
4753
+ msgstr ""
4754
+
4755
+ msgid "Auto-Recharge has been enabled"
4756
+ msgstr ""
4757
+
4758
+ msgid "Auto-Recharge has been cancelled"
4759
+ msgstr ""
4760
+
4761
+ msgid "current<br/>balance"
4762
+ msgstr ""
4763
+
4764
+ msgid "Recharge"
4765
+ msgstr ""
4766
+
4767
+ msgid "users choice"
4768
+ msgstr ""
4769
+
4770
+ msgid "Buy now"
4771
+ msgstr ""
4772
+
4773
+ msgid "Best offer"
4774
+ msgstr ""
4775
+
4776
+ msgid "Users choice"
4777
+ msgstr ""
4778
+
4779
+ msgid "Other options"
4780
+ msgstr ""
4781
+
4782
+ msgid "best offer"
4783
+ msgstr ""
4784
+
4785
+ msgid "Select amount of Auto-Recharge"
4786
+ msgstr ""
4787
+
4788
+ msgid "Enable"
4789
+ msgstr ""
4790
+
4791
+ msgid "Disable Auto-Recharge"
4792
+ msgstr "Desativar Auto-Recharge"
4793
+
4794
+ msgid "Are you sure you want to disable Auto-Recharge?"
4795
+ msgstr ""
4796
+
4797
+ msgid "Turn on Auto-Recharge and get even more"
4798
+ msgstr ""
4799
+
4800
+ msgid "Auto-Recharge disabled"
4801
+ msgstr "Auto-Recharge desativado"
4802
+
4803
+ #, php-format
4804
+ msgid "Can't disable Auto-Recharge, please contact us at %s"
4805
+ msgstr ""
4806
+
4807
+ msgid "Auto-Recharge has failed, please replenish your balance directly."
4808
+ msgstr "O Auto-Recharge falhou. Por favor, recarregue o seu saldo diretamente."
4809
+
4810
+ msgid "Card payment has failed, please use another payment option"
4811
+ msgstr ""
4812
+
4813
+ msgid "Payment has failed, please use another payment option"
4814
+ msgstr ""
4815
+
4816
  msgid "total quantity of appointments in cart"
4817
  msgstr "quantidade total de compromissos no carrinho"
4818
 
4822
  msgid "total price of booking"
4823
  msgstr "preço total da reserva"
4824
 
4825
+ msgid ""
4826
+ "Could you please do me a BIG favor and give it a 5-star rating on WordPress?"
4827
+ msgstr ""
4828
+ "Pode nos fazer um GRANDE favor e nos dar uma classificação de 5 estrelas no "
4829
+ "WordPress ?"
4830
+
4831
+ msgid "Just to help us spread the word and boost our motivation."
4832
+ msgstr "É só para passar a palavra e estimular sua motivação."
4833
+
4834
+ msgid "Ok, you deserve it"
4835
+ msgstr "OK, você o mereceu"
4836
+
4837
+ msgid "Nope, maybe later"
4838
+ msgstr "Não, talvez posteriormente"
4839
+
4840
+ msgid "Thank you for the {star} star rating!!!"
4841
+ msgstr "Obrigado pela classificação de {star} estrelas"
4842
+
4843
+ msgid "You asked to remind you"
4844
+ msgstr "Você pediu para relembrar"
4845
+
4846
+ msgid "Congratulations!!!"
4847
+ msgstr "Felicitações !!!!"
4848
+
4849
+ msgid "You just made the <b>10th Sale</b> using Bookly Plugin!"
4850
+ msgstr "Acabou de fazer sua 10.a venda usando o plugin Bookly !"
4851
+
4852
+ msgid "You just made the <b>100th Sale</b> using Bookly Plugin!"
4853
+ msgstr "Acabou de fazer sua 100.a venda usando o plugin Bookly !"
4854
+
4855
+ msgid "You just made the <b>1000th Sale</b> using Bookly Plugin!"
4856
+ msgstr "Acabou de fazer sua 1000.a venda usando o plugin Bookly !"
4857
+
4858
+ msgid "You just made the <b>10000th Sale</b> using Bookly Plugin!"
4859
+ msgstr "Acabou de fazer sua 10000.a venda usando o plugin Bookly !"
4860
+
4861
  msgid ""
4862
  "To help us improve Bookly, the plugin anonymously collects usage information."
4863
  " You can opt out of sharing the information in Settings > General."
4873
  "Permitir que o plugin colete informações de uso anonimamente para ajudar a "
4874
  "equipe Bookly a aprimorar o produto."
4875
 
 
 
 
4876
  msgid "Agree"
4877
  msgstr "Concordo"
4878
 
4879
+ msgid "Disagree"
4880
+ msgstr "Discordo"
4881
+
4882
  #, php-format
4883
  msgid ""
4884
  "<b>Bookly Lite rebrands into Bookly with more features available.</b><br/>"
4893
  "novo Bookly gratuito. Para saber mais sobre essa grande atualização do "
4894
  "Bookly, confira no nosso <a href=\"%s\" target=\"_blank\">post do blog</a>."
4895
 
4896
+ #, php-format
4897
+ msgid "Recharge your account and get up to %s extra."
4898
+ msgstr ""
4899
+
4900
+ msgid ""
4901
+ "Send SMS notifications to your customers, increasing their loyalty and "
4902
+ "involvement."
4903
+ msgstr ""
4904
+
4905
+ #, php-format
4906
+ msgid "Enable Auto-Recharge and get up to %s extra."
4907
+ msgstr ""
4908
+
4909
+ msgid ""
4910
+ "Let your clients receive notifications on time - don't let the service stop."
4911
+ msgstr ""
4912
+
4913
+ msgid "Remind me later"
4914
+ msgstr ""
4915
+
4916
  msgid "This function is not available in the Bookly."
4917
  msgstr "Esta função não está disponível no Bookly."
4918
 
6259
  msgid ""
6260
  "If this setting is enabled then online meetings will be created for new "
6261
  "appointments with the selected online meeting provider. Make sure that the "
6262
+ "provider is configured properly in Settings > <a href=\"%s\">Online "
6263
  "Meetings</a>"
6264
  msgstr ""
6265
  "Se esta configuração estiver ativada, as reuniões on-line serão criadas para "
6303
  "consideração ao calcular a ocupação dos fornecedores. 0 significa o dia da "
6304
  "reserva."
6305
 
6306
+ msgid "Pick random staff member in case of uncertainty"
6307
+ msgstr ""
6308
+
6309
+ msgid ""
6310
+ "Enable this option to pick a random staff member if both meet the criteria "
6311
+ "chosen in \"Providers preference for ANY\". Otherwise the selection order is "
6312
+ "unknown."
6313
+ msgstr ""
6314
+
6315
  msgid "Limit appointments per customer"
6316
  msgstr "Limite de compromissos por cliente"
6317
 
6345
  msgid ""
6346
  "This setting allows you to limit the number of appointments that can be "
6347
  "booked by a customer in any given period. Restriction may end after a fixed "
6348
+ "period or with the beginning of the next calendar period - new day, week, "
6349
  "month, etc."
6350
  msgstr ""
6351
  "Esta configuração permite limitar o número de compromissos que podem ser "
7019
  msgid "Create another coupon"
7020
  msgstr "Criar outro cupom"
7021
 
 
 
 
7022
  msgid "No coupons found."
7023
  msgstr "Nenhum cupom encontrado."
7024
 
7037
  msgid "Max appointments should be greater than zero."
7038
  msgstr "O máximo de compromissos deve ser maior que zero."
7039
 
7040
+ msgid "The code already exists"
7041
+ msgstr ""
7042
+
7043
  msgid "Please enter a non empty mask."
7044
  msgstr "Por favor, insira uma máscara não-vazia."
7045
 
7745
  "reservas do Bookly. Se desativada, o título padrão \"Evento do Google "
7746
  "Agenda\" será usado."
7747
 
7748
+ msgid "Overwrite the description of the original Google Calendar events"
7749
+ msgstr ""
7750
+
7751
+ msgid ""
7752
+ "If enabled then the description of the Google Calendar events originally "
7753
+ "copied to Bookly will be overwritten by the Bookly appointment data after "
7754
+ "they have been edited in Bookly Calendar"
7755
+ msgstr ""
7756
+
7757
  msgid "Synchronize with Google Calendar"
7758
  msgstr "Sincronizar com o Google Agenda"
languages/bookly-pt_PT.mo CHANGED
Binary file
languages/bookly-pt_PT.po CHANGED
@@ -8,14 +8,14 @@ msgstr ""
8
  "Language: pt_PT\n"
9
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2020-04-15 17:07+0000\n"
12
- "PO-Revision-Date: 2020-04-20 01:49+0000\n"
13
- "Last-Translator: support@bookly.info\n"
14
  "Language-Team: Portuguese (Portugal)\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
16
 
17
  msgid "Invoice #{invoice_number} for your appointment"
18
- msgstr "Fatura #{invoice_number) do seu compromisso"
19
 
20
  msgid ""
21
  "Dear {client_name}.\n"
@@ -30,7 +30,7 @@ msgid ""
30
  msgstr ""
31
  "Prezado {nome_do_cliente}.\n"
32
  "\n"
33
- "Em anexo encontra-se a fatura #{número_da fatura} do seu compromisso.\n"
34
  "\n"
35
  "Obrigado por escolher a nossa empresa.\n"
36
  "\n"
@@ -49,9 +49,9 @@ msgid ""
49
  msgstr ""
50
  "Olá,\n"
51
  "\n"
52
- "Você tem uma nova fatura #{número_da fatura} para um compromisso\n"
53
  "marcado por {primeiro_nome_do cliente} {sobrenome_do cliente}.\n"
54
- "Por favor, baixe a fatura aqui: {link_da fatura}"
55
 
56
  msgid "BILL TO"
57
  msgstr "CONTA PARA"
@@ -106,7 +106,7 @@ msgid "Settings saved."
106
  msgstr "Definições guardadas."
107
 
108
  msgid "Download invoices"
109
- msgstr "Baixar faturas"
110
 
111
  msgid "invoice creation date"
112
  msgstr "Data de criação da fatura"
@@ -158,10 +158,10 @@ msgid "Subtotal"
158
  msgstr "Subtotal"
159
 
160
  msgid "Coupon discount"
161
- msgstr "Cumpo de sconto"
162
 
163
  msgid "Group discount"
164
- msgstr "Desconto em grupo"
165
 
166
  msgid "Total"
167
  msgstr "Total"
@@ -170,13 +170,13 @@ msgid "Paid"
170
  msgstr "Pago"
171
 
172
  msgid "Due"
173
- msgstr "Devido"
174
 
175
  msgid "Discount"
176
  msgstr "Desconto"
177
 
178
  msgid "Outlook Calendar event"
179
- msgstr "Evento Outlook Calendar"
180
 
181
  msgid "Name"
182
  msgstr "Nome"
@@ -188,7 +188,7 @@ msgid "Phone"
188
  msgstr "Telefone"
189
 
190
  msgid "Outlook Calendar integration"
191
- msgstr "Integração Outlook Calendar"
192
 
193
  msgid "Connect"
194
  msgstr "Conectar"
@@ -196,8 +196,8 @@ msgstr "Conectar"
196
  #, php-format
197
  msgid "Please configure Outlook Calendar <a href=\"%s\">settings</a> first"
198
  msgstr ""
199
- "Por favor, configure o Outlook Calendar primeiro <a href=\"%s\">"
200
- "configurações</a> primeiro"
201
 
202
  msgid "Connected"
203
  msgstr "Conectado"
@@ -206,25 +206,26 @@ msgid "disconnect"
206
  msgstr "desconectar"
207
 
208
  msgid "Synchronize staff member appointments with Outlook Calendar."
209
- msgstr "Sincronizar os compromissos do membro da equipe com o Outlook Calendar"
 
210
 
211
  msgid "Calendar"
212
  msgstr "Calendário"
213
 
214
  msgid "-- Select calendar --"
215
- msgstr "-- Selecionar calendário --"
216
 
217
  msgid ""
218
  "When you connect a calendar all future and past events will be synchronized "
219
  "according to the selected synchronization mode. This may take a few minutes. "
220
  "Please wait."
221
  msgstr ""
222
- "Quando você conecta uma agenda, todos os eventos passados e futuros serão "
223
- "sincronizados de acordo com o modo de sincronização selecionado. Isso pode "
224
- "demorar alguns minutos. Por favor, espere."
225
 
226
  msgid "Can't change calendar for archived staff"
227
- msgstr "Impossível mudar calendário para funcionários arquivados"
228
 
229
  msgid "Instructions"
230
  msgstr "Instruções"
@@ -234,21 +235,20 @@ msgid ""
234
  "not work with your website if there is no valid SSL certificate installed on "
235
  "your web server."
236
  msgstr ""
237
- "Importante: seu site deve usar <b>HTTPS</b>. A API do Outlook Calendar não "
238
- "funcionará com o seu site se não houver um certificado SSL válido instalado "
239
- "em seu servidor da web."
240
 
241
  msgid "To find your Application ID and Application Secret, do the following:"
242
  msgstr ""
243
- "Para encontrar seu Application ID e Application secret, proceda com o "
244
- "seguinte:"
245
 
246
  #, php-format
247
  msgid ""
248
  "Sign in to the <a href=\"%s\" target=\"_blank\">Azure portal</a> using "
249
  "either a work or school account or a personal Microsoft account."
250
  msgstr ""
251
- "Faça login no <a href=\"%s\" target=\"_blank\">Azure portal</a> usando uma "
252
  "conta profissional ou educacional, ou uma conta pessoal Microsoft."
253
 
254
  msgid ""
@@ -256,9 +256,9 @@ msgid ""
256
  "account in the top right corner, and set your portal session to the Azure AD "
257
  "tenant that you want."
258
  msgstr ""
259
- "Se a sua conta acesso a mais de um aplicativo, selecione a sua conta no "
260
- "canto superior direito e defina a sessão do portal para o aplicativo Azure "
261
- "AD que pretende."
262
 
263
  msgid ""
264
  "In the left-hand navigation pane, select the <b>Azure Active Directory</b> "
@@ -275,24 +275,25 @@ msgid ""
275
  "any organizational directory and personal Microsoft accounts</b>. When "
276
  "finished, select <b>Register</b>."
277
  msgstr ""
278
- "Quando a página <b>Register an application</b> é exibida, insira o <b>"
279
- "Nome</b> de sua App e o <b>Redirect URI</b> encontrado em baixo desta página."
280
- " Assegure-se que <b>Supported account types</b> está definido para <b>"
281
- "Accounts in any organizational directory and personal Microsoft accounts</b>."
282
- " Para terminar, selecione <b>Register</b>."
283
 
284
  msgid ""
285
  "Azure AD assigns a unique application (client) ID to your app, and you're "
286
  "taken to your application's <b>Overview</b> page."
287
  msgstr ""
288
- "Azure AD atribui um ID de aplicativo (cliente) único ao seu app., de seguida "
289
- "a página <b>Overview</b> do aplicativo é exibida."
290
 
291
  msgid ""
292
  "Copy the <b>Application (client) ID</b> and insert it into the form below on "
293
  "this page."
294
  msgstr ""
295
- "Copie o Application (client) ID e digite-o no formulário abaixo nesta página."
 
296
 
297
  msgid ""
298
  "Under <b>Certificates &amp; secrets</b>, choose <b>New client secret</b>, "
@@ -300,10 +301,10 @@ msgid ""
300
  "from the <b>Client secrets</b> list before leaving the page. Insert the "
301
  "secret into the form below on this page."
302
  msgstr ""
303
- "Em <b>Certificates &amp; secrets</b>, escolha <b>New client secret</b>, "
304
- "defina <b>Expires</b> a <b>Nunca</b> e clique <b>Add</b>. Copie o "
305
- "Application Secret a partir da lista de <b>Client secrets</b> antes de sair "
306
- "da página. Insira o segredo no formulá em baixo desta página.."
307
 
308
  msgid ""
309
  "Under <b>API permissions</b>, choose <b>Add a permission</b>, and select <b>"
@@ -311,35 +312,35 @@ msgid ""
311
  "find <b>Calendars.ReadWrite</b>, select it and click <b>Add permissions</b> "
312
  "button."
313
  msgstr ""
314
- "Em <b>API permissions</b>, escolha <b>Add a permission</b>, e selecione <b>"
315
- "Microsoft Graph &gt; Delegated permissions</b>. Em <b>Select permissions</b> "
316
- "procure <b>Calendars.ReadWrite</b>, selecione e clique no botão <b>Add "
317
- "permissions</b>."
318
 
319
  msgid "<b>Save</b> your changes."
320
- msgstr "<b>Guardar</b> suas definições"
321
 
322
  msgid ""
323
  "Go to Staff Members, select a staff member and click <b>Connect</b> which is "
324
  "located at the bottom of the page."
325
  msgstr ""
326
- "Vá para Funcionários, selecione um funcionário e clique em <b>Connect</b>, "
327
  "que está localizado na parte inferior da página."
328
 
329
  msgid "Application ID"
330
- msgstr "Application ID"
331
 
332
  msgid "The Application ID obtained from the Microsoft App Registration Portal."
333
- msgstr "O Application ID obtido no Microsoft App Registration Portal."
334
 
335
  msgid "Application secret"
336
- msgstr "Application Secret"
337
 
338
  msgid ""
339
  "The Application Secret password obtained from the Microsoft App Registration "
340
  "Portal."
341
  msgstr ""
342
- "O password Application Secret obtido no Microsoft App Registration Portal.\n"
343
 
344
  msgid "Redirect URI"
345
  msgstr "URI de redirecionamento"
@@ -347,8 +348,8 @@ msgstr "URI de redirecionamento"
347
  msgid ""
348
  "Enter this URL as a Redirect URLs in the Microsoft App Registration Portal."
349
  msgstr ""
350
- "Insira este URL como um redirecionamento de URL no Microsoft App "
351
- "Registration Portal."
352
 
353
  msgid "Synchronization mode"
354
  msgstr "Modo de sincronização"
@@ -362,77 +363,77 @@ msgid ""
362
  "way\" sync all bookings created in Bookly Calendar will be automatically "
363
  "copied to Outlook Calendar and vice versa."
364
  msgstr ""
365
- "Com a sincronização de uma via, o Bookly encaminha novos compromissos e "
366
- "quaisquer outras mudanças para o Google Agenda. Com a sincronização de duas "
367
- "vias exclusiva do frontend, o Bookly vai além disso, buscar eventos do "
368
- "Google Agenda e vai remover os espaços de tempo correspondentes antes de "
369
- "exibir o intervalo de tempo do formulário de reserva (isto pode levar a "
370
- "atrasos quando os usuários clicam em Seguinte para obterem o intervalo de "
371
- "tempo). Com a sincronização em duas vias, todas as reservas criadas no "
372
- "Bookly Calendar serão automaticamente copiadas para o Google Agenda e vice-"
373
- "versa."
374
 
375
  msgid "One-way"
376
  msgstr "Uma via"
377
 
378
  msgid "Two-way front-end only"
379
- msgstr "Duas vias exclusiva do front-end"
380
 
381
  msgid "Two-way"
382
  msgstr "Duas vias"
383
 
384
  msgid "Sync appointments history"
385
- msgstr "Sincronizar histórico de compromissos"
386
 
387
  msgid ""
388
  "Specify how many days of past calendar data you wish to sync at the time of "
389
  "initial sync. If you enter 0, synchronization of past events will not be "
390
  "performed."
391
  msgstr ""
392
- "Especificar quantos dados de datas antigas na sua agenda você vai querer "
393
- "sincronizar no momento da sincronização inicial. Se você inserir 0, a "
394
- "sincronização de eventos passados não será realizada."
395
 
396
  msgid "Copy Outlook Calendar event titles"
397
- msgstr "Copiar os títulos dos eventos Outlook Calendar"
398
 
399
  msgid ""
400
  "If enabled then titles of Outlook Calendar events will be copied to Bookly "
401
  "appointments. If disabled, a standard title \"Outlook Calendar event\" will "
402
  "be used."
403
  msgstr ""
404
- "Se ativado, os títulos dos eventos do Outlook Calendar serão copiados para "
405
- "os compromissos do Bookly. Se desativado, um título padrão \"Evento do "
406
- "Outlook Calendar\" será usado."
407
 
408
  msgid "Limit number of fetched events"
409
- msgstr "Limitar o número de eventos obtidos"
410
 
411
  msgid ""
412
  "If there is a lot of events in Outlook Calendar sometimes this leads to a "
413
  "lack of memory in PHP when Bookly tries to fetch all events. You can limit "
414
  "the number of fetched events here."
415
  msgstr ""
416
- "Se houver muitos eventos no Outlook Calendar, às vezes, isso leva a uma "
417
- "falta de memória no PHP quando o Bookly tenta buscar todos os eventos. Você "
418
- "pode limitar o número de eventos buscados aqui."
419
 
420
  msgid "Template for event title"
421
- msgstr "Modelo para o título do evento"
422
 
423
  msgid ""
424
  "Configure what information should be placed in the title of Outlook Calendar "
425
  "event. Available codes are {service_name}, {staff_name} and {client_names}."
426
  msgstr ""
427
- "Configure quais informações devem ser colocadas no título do evento do "
428
- "Outlook Calendar. Os códigos disponíveis são {service_name}, {staff_name} e "
429
- "{client_names}."
430
 
431
  msgid "Appointment section"
432
- msgstr "Secção do compromisso"
433
 
434
  msgid "This section describes information that is displayed about appointment."
435
- msgstr "Esta seção descreve informações exibidas sobre o compromisso."
436
 
437
  msgid "Customer section"
438
  msgstr "Secção do cliente"
@@ -441,11 +442,11 @@ msgid ""
441
  "This section describes information that is displayed about each participant "
442
  "of the appointment."
443
  msgstr ""
444
- "Esta seção descreve informações exibidas sobre cada participante do "
445
- "compromisso."
446
 
447
  msgid "customer notes for appointment"
448
- msgstr "observações do cliente para o compromisso"
449
 
450
  msgid "email of client"
451
  msgstr "e-mail do cliente"
@@ -469,18 +470,18 @@ msgid "payment type"
469
  msgstr "tipo de pagamento"
470
 
471
  msgid "status of appointment"
472
- msgstr "status do compromisso"
473
 
474
  msgid "total price of booking (sum of all cart items after applying coupon)"
475
  msgstr ""
476
  "preço total da reserva (soma de todos os itens do carrinho após a aplicação "
477
- "do cupom)"
478
 
479
  msgid "date of appointment"
480
- msgstr "data do compromisso"
481
 
482
  msgid "time of appointment"
483
- msgstr "hora do compromisso"
484
 
485
  msgid "booking number"
486
  msgstr "número de reserva"
@@ -522,13 +523,13 @@ msgid "phone of staff"
522
  msgstr "telefone do funcionário"
523
 
524
  msgid "Outlook Calendar"
525
- msgstr " Outlook Calendar"
526
 
527
  msgid "Disabled"
528
  msgstr "Desativado"
529
 
530
  msgid "Synchronize with Outlook Calendar"
531
- msgstr "Sincronizar com Outlook Calendar"
532
 
533
  msgid "Calendars synchronized successfully."
534
  msgstr "Calendários sincronizados com sucesso."
@@ -552,12 +553,12 @@ msgid ""
552
  "When this setting is enabled you will be able to create service specific "
553
  "custom fields."
554
  msgstr ""
555
- "Quando esta configuração estiver ativada, você será capaz de criar campos "
556
  "personalizados de serviços específicos."
557
 
558
  msgid "Merge repeating custom fields for multiple bookings of the service"
559
  msgstr ""
560
- "Mesclar campos personalizados repetidos para múltiplas reservas do serviço"
561
 
562
  msgid ""
563
  "If enabled, customers will see custom fields for unique appointments while "
@@ -565,10 +566,10 @@ msgid ""
565
  "merged (collapsed) into one field. If disabled, customers will see custom "
566
  "fields for each appointment in the set of bookings."
567
  msgstr ""
568
- "Se ativada, os clientes verão campos personalizados para compromissos únicos,"
569
  " enquanto reservam múltiplas instâncias do serviço. Campos personalizados "
570
- "repetidos são mesclados (colapsados) em um campo. Se desativada, os clientes "
571
- "verão campos personalizados para cada compromisso no conjunto das reservas."
572
 
573
  msgid "Text Field"
574
  msgstr "Campo do texto"
@@ -583,7 +584,7 @@ msgid "Checkbox Group"
583
  msgstr "Grupo das caixas de seleção"
584
 
585
  msgid "Radio Button Group"
586
- msgstr "Grupo dos botões radio"
587
 
588
  msgid "Drop Down"
589
  msgstr "Seleção flutuante"
@@ -604,13 +605,13 @@ msgid "Required field"
604
  msgstr "Campo obrigatório"
605
 
606
  msgid "Enter a content"
607
- msgstr "Inserir um conteúdo"
608
 
609
  msgid "Checkbox"
610
  msgstr "Caixa de seleção"
611
 
612
  msgid "Radio Button"
613
- msgstr "Botão radio"
614
 
615
  msgid "Option"
616
  msgstr "Opção"
@@ -628,21 +629,20 @@ msgid "Show custom fields"
628
  msgstr "Exibir campos personalizados"
629
 
630
  msgid "extended staff agenda for next day"
631
- msgstr "agenda estendida da equipe para o dia seguinte"
632
 
633
  msgid "combined values of all custom fields (formatted in 2 columns)"
634
  msgstr ""
635
- "valores combinados de todos os campos personalizados (formatado em duas "
636
- "colunas)"
637
 
638
  msgid "Another code"
639
  msgstr "Outro código"
640
 
641
  msgid "Notification to customer about approved recurring appointment"
642
- msgstr "Notificação ao cliente sobre o compromisso recorrente aprovado"
643
 
644
  msgid "Your appointment information"
645
- msgstr "Suas informações de compromissos"
646
 
647
  msgid ""
648
  "Dear {client_name}.\n"
@@ -699,9 +699,9 @@ msgid ""
699
  msgstr ""
700
  "Olá.\n"
701
  "\n"
702
- "Você tem uma nova reserva.\n"
703
  "\n"
704
- "Serviço: {service_name} (x {recorring_count})\n"
705
  "Horário:\n"
706
  "{appointment_schedule}\n"
707
  "Nome do cliente: {client_name}\n"
@@ -709,7 +709,7 @@ msgstr ""
709
  "E-mail do cliente: {client_email}"
710
 
711
  msgid "Notification to customer about cancelled recurring appointment"
712
- msgstr "Notificação ao cliente sobre compromisso recorrente cancelado"
713
 
714
  msgid "Booking cancellation"
715
  msgstr "Cancelamento da reserva"
@@ -733,7 +733,7 @@ msgid ""
733
  msgstr ""
734
  "Prezado {client_name}.\n"
735
  "\n"
736
- "A sua reserva de {service_name} (x {recorring_count}) foi cancelada.\n"
737
  "\n"
738
  "Motivo: {cancellation_reason}\n"
739
  "\n"
@@ -749,7 +749,7 @@ msgstr ""
749
 
750
  msgid "Notification to staff member about cancelled recurring appointment"
751
  msgstr ""
752
- "Notificação aos funcionários sobre anulação de compromissos recorrentes"
753
 
754
  msgid ""
755
  "Hello.\n"
@@ -779,10 +779,10 @@ msgstr ""
779
  "E-mail do cliente: {client_email}"
780
 
781
  msgid "Notification to customer about rejected recurring appointment"
782
- msgstr "Notificação ao cliente sobre compromisso recorrente rejeitado"
783
 
784
  msgid "Booking rejection"
785
- msgstr "Rejeição de reserva"
786
 
787
  msgid ""
788
  "Dear {client_name}.\n"
@@ -807,7 +807,7 @@ msgstr ""
807
  "\n"
808
  "Motivo: {cancellation_reason}\n"
809
  "\n"
810
- "Por favor, encontre o horário da sua reserva abaixo.:\n"
811
  "\n"
812
  "{appointment_schedule}\n"
813
  "\n"
@@ -818,7 +818,7 @@ msgstr ""
818
  "{company_website}"
819
 
820
  msgid "Notification to staff member about rejected recurring appointment "
821
- msgstr "Notificação ao funcionário sobre o compromisso recorrente rejeitado"
822
 
823
  msgid ""
824
  "Hello.\n"
@@ -851,11 +851,11 @@ msgid ""
851
  "Notification to customer about placing on waiting list for recurring "
852
  "appointment"
853
  msgstr ""
854
- "Notificação ao cliente sobre o posicionamento na lista de espera para "
855
- "compromisso recorrente"
856
 
857
  msgid "You have been added to waiting list for appointment"
858
- msgstr "Você foi adicionado à lista de espera para o compromisso"
859
 
860
  msgid ""
861
  "Dear {client_name}.\n"
@@ -875,10 +875,10 @@ msgid ""
875
  msgstr ""
876
  "Prezado {client_name}.\n"
877
  "\n"
878
- "Esta é uma confirmação de que você foi adicionado à lista de espera para "
879
  "{service_name} (x {recorring_count}).\n"
880
  "\n"
881
- "Por favor, encontre o horário de serviço abaixo.\n"
882
  "\n"
883
  "{appointment_schedule}\n"
884
  "\n"
@@ -892,8 +892,8 @@ msgid ""
892
  "Notification to staff member about placing on waiting list for recurring "
893
  "appointment "
894
  msgstr ""
895
- "Notificação ao funcionário sobre o posiocionamento na lista de espera para "
896
- "compromisso recorrente"
897
 
898
  msgid "New waiting list information"
899
  msgstr "Nova informação da lista de espera"
@@ -912,7 +912,7 @@ msgid ""
912
  msgstr ""
913
  "Olá.\n"
914
  "\n"
915
- "Você tem um novo cliente na lista de espera.\n"
916
  "\n"
917
  "Serviço: {service_name} (x {recorring_count})\n"
918
  "Horário:\n"
@@ -935,12 +935,12 @@ msgid ""
935
  "{company_website}"
936
  msgstr ""
937
  "Prezado {client_name}.\n"
938
- "Esta é uma confirmação de que você reservou {service_name} (x "
939
- "{recorring_count}).\n"
940
- "Por favor, encontre o horário da sua reserva abaixo.\n"
941
  "{appointment_schedule}\n"
942
  "\n"
943
- "Estamos o esperando em {company_address}.\n"
944
  "Obrigado por escolher a nossa empresa.\n"
945
  "{company_name}\n"
946
  "{company_phone}\n"
@@ -957,7 +957,7 @@ msgid ""
957
  "Client email: {client_email}"
958
  msgstr ""
959
  "Olá.\n"
960
- "Você tem uma nova reserva.\n"
961
  "Serviço: {service_name} (x {recorring_count})\n"
962
  "Horário:\n"
963
  "{appointment_schedule}\n"
@@ -979,14 +979,14 @@ msgstr ""
979
  "Prezado {client_name}.\n"
980
  "A sua reserva de {service_name} (x {recorring_count}) foi cancelada.\n"
981
  "Motivo: {cancellation_reason}\n"
982
- "Por favor, encontre o horário da sua reserva abaixo: {appointment_schedule}\n"
983
  "Obrigado por escolher a nossa empresa.\n"
984
  "{company_name}\n"
985
  "{company_phone}\n"
986
  "{company_website}"
987
 
988
  msgid "Notification to staff member about cancelled recurring appointment "
989
- msgstr "Notificação ao funcionário sobre compromisso recorrente cancelado"
990
 
991
  msgid ""
992
  "Hello.\n"
@@ -1062,9 +1062,9 @@ msgid ""
1062
  "{company_website}"
1063
  msgstr ""
1064
  "Prezado {client_name}.\n"
1065
- "Esta é uma confirmação de que você foi adicionado à lista de espera para "
1066
  "{service_name} (x {recorring_count}).\n"
1067
- "Por favor, encontre o horário de serviço abaixo.\n"
1068
  "{appointment_schedule}\n"
1069
  "Obrigado por escolher a nossa empresa.\n"
1070
  "{company_name}\n"
@@ -1082,7 +1082,7 @@ msgid ""
1082
  "Client email: {client_email}"
1083
  msgstr ""
1084
  "Olá.\n"
1085
- "Você tem um novo cliente na lista de espera.\n"
1086
  "Serviço: {service_name} (x {recorring_count})\n"
1087
  "Horário:\n"
1088
  "{appointment_schedule}\n"
@@ -1102,10 +1102,10 @@ msgid ""
1102
  "please check the box below and set appropriate parameters. Otherwise press "
1103
  "Next button below."
1104
  msgstr ""
1105
- "Você selecionou uma reserva para {service_name} às {appointment_time} no dia "
1106
- "{appointment_date}. Se você quiser tornar este compromisso recorrente, "
1107
- "marque a caixa abaixo e defina os parâmetros apropriados. Caso contrário, "
1108
- "pressione o botão Próximo abaixo."
1109
 
1110
  msgid "Another time"
1111
  msgstr "Outra hora"
@@ -1123,7 +1123,7 @@ msgid "day(s)"
1123
  msgstr "dia(s)"
1124
 
1125
  msgid "Deleted"
1126
- msgstr "Deletado"
1127
 
1128
  msgid "every"
1129
  msgstr "cada"
@@ -1132,14 +1132,14 @@ msgid ""
1132
  "The first recurring appointment was added to cart. You will be invoiced for "
1133
  "the remaining appointments later."
1134
  msgstr ""
1135
- "O primeiro compromisso recorrente foi adicionado ao carrinho. Você será "
1136
- "faturado para os compromissos restantes mais tarde."
1137
 
1138
  msgid "Monthly"
1139
  msgstr "Mensal"
1140
 
1141
  msgid "There are no available time slots for this day"
1142
- msgstr "Não há slots de tempo disponíveis para este dia"
1143
 
1144
  msgid "On"
1145
  msgstr "Em"
@@ -1157,15 +1157,15 @@ msgid ""
1157
  "Some of the desired time slots are busy. System offers the nearest time slot "
1158
  "instead. Click the Edit button to select another time if needed."
1159
  msgstr ""
1160
- "Alguns dos intervalos de tempo desejados estão ocupados. O sistema oferece o "
1161
- "intervalo de tempo mais próximo. Clique no botão Editar para selecionar "
1162
- "outra hora, se necessário."
1163
 
1164
  msgid "Specific day"
1165
  msgstr "Dia específico"
1166
 
1167
  msgid "Repeat this appointment"
1168
- msgstr "Repita este compromisso"
1169
 
1170
  msgid "Until"
1171
  msgstr "Até"
@@ -1195,23 +1195,23 @@ msgid "time(s)"
1195
  msgstr "hora(s)"
1196
 
1197
  msgid "Notification to customer about pending recurring appointment"
1198
- msgstr "Notificação ao cliente sobre compromisso recorrente pendente"
1199
 
1200
  msgid "Notification to staff member about pending recurring appointment"
1201
- msgstr "Notificação ao funcionário sobre compromisso recorrente pendente"
1202
 
1203
  msgid ""
1204
  "Notification to staff member about placing on waiting list for recurring "
1205
  "appointment"
1206
  msgstr ""
1207
- "Notificação ao funcionário sobre a colocação em lista de espera de um "
1208
- "compromisso recorrente"
1209
 
1210
  msgid "New recurring booking notification"
1211
- msgstr "Notificação de novo compromisso recorrente"
1212
 
1213
  msgid "Notification about recurring appointment status changes"
1214
- msgstr "Notificação de mudança de status de compromisso recorrente"
1215
 
1216
  msgid "at"
1217
  msgstr "às"
@@ -1220,49 +1220,49 @@ msgid "Online Payments"
1220
  msgstr "Pagamentos on-line"
1221
 
1222
  msgid "Customers must pay only for the 1st appointment"
1223
- msgstr "Os clientes devem pagar apenas para o 1º compromisso"
1224
 
1225
  msgid "Customers must pay for all appointments in series"
1226
- msgstr "Os clientes devem pagar todos os compromissos em série"
1227
 
1228
  msgid "Group appointments"
1229
- msgstr "Compromissos de grupo"
1230
 
1231
  msgid "Create new appointment for every recurring booking"
1232
- msgstr "Criar novo compromisso para cade reserva recorrente"
1233
 
1234
  msgid "Add customer to available group bookings"
1235
- msgstr "Adicionar cliente às reservas de grupo disponíveis "
1236
 
1237
  msgid "Recurring Appointments"
1238
- msgstr "Compromissos Recorrentes"
1239
 
1240
  msgid "Approve recurring appointment URL (success)"
1241
- msgstr "Aprovar a URL do compromisso recorrente (sucesso)"
1242
 
1243
  msgid ""
1244
  "Set the URL of a page that is shown to staff after they successfully "
1245
  "approved recurring appointment."
1246
  msgstr ""
1247
- "Definir a URL de uma página que será mostrada aos funcionários depois que "
1248
- "eles aprovarem o compromisso recorrente."
1249
 
1250
  msgid "Approve recurring appointment URL (denied)"
1251
- msgstr "Aprovar a URL do compromisso recorrente (negado)"
1252
 
1253
  msgid ""
1254
  "Set the URL of a page that is shown to staff when the approval of recurring "
1255
  "appointment cannot be done (changed status, etc.)."
1256
  msgstr ""
1257
  "Defina a URL de uma página que será mostrada aos funcionários quando a "
1258
- "aprovação do compromisso recorrente não puderser feita (status alterado, etc."
1259
- ")."
1260
 
1261
  msgid "Enabled"
1262
  msgstr "Ativado"
1263
 
1264
  msgid "Allow this service to have recurring appointments."
1265
- msgstr "Permitir que este serviço tenha compromissos recorrentes."
1266
 
1267
  msgid "Frequencies"
1268
  msgstr "Frequências"
@@ -1289,16 +1289,16 @@ msgid "Show Repeat step"
1289
  msgstr "Exibir o passo Repetir"
1290
 
1291
  msgid "recurring appointments schedule"
1292
- msgstr "lista de compromisso recorrentes"
1293
 
1294
  msgid "recurring appointments schedule with cancel"
1295
- msgstr "lista de compromissos recorrentes com cancelamento"
1296
 
1297
  msgid "URL for approving the whole schedule"
1298
  msgstr "URL para aprovar todo o horário"
1299
 
1300
  msgid "recurring appointments"
1301
- msgstr "compromissos recorrentes"
1302
 
1303
  msgid "Every"
1304
  msgstr "Cada"
@@ -1316,16 +1316,16 @@ msgid "Another time was offered on pages"
1316
  msgstr "Outro horário foi oferecido nas páginas"
1317
 
1318
  msgid "Delete Appointment"
1319
- msgstr "Deletar compromisso"
1320
 
1321
  msgid "Delete only this appointment"
1322
- msgstr "Deletar apenas este compromisso"
1323
 
1324
  msgid "Delete this and the following appointments"
1325
- msgstr "Deletar este e os seguintes compromissos"
1326
 
1327
  msgid "Delete all appointments in series"
1328
- msgstr "Deletar todos os compromissos em série"
1329
 
1330
  msgid "Send notifications"
1331
  msgstr "Enviar notificações"
@@ -1334,7 +1334,7 @@ msgid "Cancellation reason (optional)"
1334
  msgstr "Motivo de cancelamento (opcional)"
1335
 
1336
  msgid "Recurring appointments"
1337
- msgstr "Compromissos recorrentes"
1338
 
1339
  msgid "Close"
1340
  msgstr "Fechar"
@@ -1343,7 +1343,7 @@ msgid "Save"
1343
  msgstr "Guardar"
1344
 
1345
  msgid "I will pay now with Credit Card"
1346
- msgstr "Vou pagar agora com cartão de crédito"
1347
 
1348
  msgid "Sandbox Mode"
1349
  msgstr "Modo Sandbox"
@@ -1369,11 +1369,11 @@ msgid ""
1369
  "\"Unit Price\" field specify the cost of 1 unit, so the total cost of the "
1370
  "service will increase linearly with the increase of its duration."
1371
  msgstr ""
1372
- "Definir a duração do serviço. Se você selecionar Customizar, um cliente "
1373
- "enquanto faz a reserva terá que escolher a duração do serviço entre várias "
1374
- "unidades de tempo. No campo \"Preço da unidade\" especifique o custo de 1 "
1375
- "unidade, para que o custo total do serviço aumente linearmente com o "
1376
- "incremento de sua duração."
1377
 
1378
  msgid "Unit duration"
1379
  msgstr "Duração da unidade"
@@ -1391,7 +1391,7 @@ msgid "Custom"
1391
  msgstr "Customizar"
1392
 
1393
  msgid "Show service price next to duration"
1394
- msgstr "Exibir o preço do serviço próximo da duração"
1395
 
1396
  msgid "Hide this field"
1397
  msgstr "Ocultar este campo"
@@ -1471,6 +1471,13 @@ msgstr "Adicionar horário do funcionário"
1471
  msgid "Add Staff Days Off"
1472
  msgstr "Adicionar dias de folga do funcionário"
1473
 
 
 
 
 
 
 
 
1474
  msgid "Hide visibility field"
1475
  msgstr "Ocultar campo de visibilidade"
1476
 
@@ -1484,7 +1491,7 @@ msgid "Insert"
1484
  msgstr "Inserir"
1485
 
1486
  msgid "Add Staff Cabinet"
1487
- msgstr "Adicionar gaveta dos funcionários"
1488
 
1489
  msgid "A custom block for displaying staff calendar"
1490
  msgstr "Bloco personalizado para exibição do calendário do funcionário"
@@ -1519,6 +1526,9 @@ msgstr "Bloco personalizado para exibição dos dias de folga do funcionário"
1519
  msgid "Capacity"
1520
  msgstr "Capacidade"
1521
 
 
 
 
1522
  msgid "Special hours"
1523
  msgstr "Horas especiais"
1524
 
@@ -1526,16 +1536,16 @@ msgid "Fields"
1526
  msgstr "Campos"
1527
 
1528
  msgid "read only"
1529
- msgstr "somente leitura"
1530
 
1531
  msgid "Repeat every year"
1532
  msgstr "Repetir todos os anos"
1533
 
1534
  msgid "We are not working on this day"
1535
- msgstr "Não estamos trabalhando neste dia"
1536
 
1537
  msgid "Min capacity should not be greater than max capacity."
1538
- msgstr "A capacidade mínima não deve ser maior que a capacidade máxima."
1539
 
1540
  msgid "Export to CSV"
1541
  msgstr "Exportar para CSV"
@@ -1617,7 +1627,7 @@ msgid ""
1617
  "If you want to become invisible to your customers set the visibility to "
1618
  "\"Private\"."
1619
  msgstr ""
1620
- "Se você quer ficar invisível para os seus clientes, defina a visibilidade "
1621
  "para \"Privado\"."
1622
 
1623
  msgid "Public"
@@ -1633,13 +1643,13 @@ msgid "No locations selected"
1633
  msgstr "Nenhum local selecionado"
1634
 
1635
  msgid "You don't have permissions to view this content."
1636
- msgstr "Você não tem permissões para ver este conteúdo."
1637
 
1638
  msgid ""
1639
  "Your account has been disabled. Contact your website administrator to "
1640
  "continue."
1641
  msgstr ""
1642
- "Sua conta foi desativada. Entre em contato com o administrador do seu site "
1643
  "para continuar."
1644
 
1645
  msgid "API Login ID"
@@ -1649,7 +1659,7 @@ msgid "API Transaction Key"
1649
  msgstr "Chave de transação do API"
1650
 
1651
  msgid "Title"
1652
- msgstr "Título"
1653
 
1654
  msgid "Rate"
1655
  msgstr "Taxa"
@@ -1700,7 +1710,7 @@ msgstr "taxa da tributação de serviço"
1700
 
1701
  msgid "total tax included in the appointment (summary for all items)"
1702
  msgstr ""
1703
- "total de tributações incluídas no compromisso (sumário para todos os itens)"
1704
 
1705
  msgid "total price without tax"
1706
  msgstr "preço total sem tributação"
@@ -1712,10 +1722,10 @@ msgid ""
1712
  "additional amount to the cost. If you need to report the exact tax amount to "
1713
  "the payment system, do not use additional charge."
1714
  msgstr ""
1715
- "Essa configuração afeta o custo da reserva de acordo com o gateway de "
1716
- "pagamento usado. Especifique uma porcentagem ou quantia fixa. Use sinal de "
1717
  "menos (\"-\") para diminuir / desconto. Observe que o imposto não será "
1718
- "calculado para o valor adicional ao custo. Se você precisar informar o valor "
1719
  "exato do imposto ao sistema de pagamento, não use cobranças adicionais."
1720
 
1721
  msgid "Customer Information"
@@ -1731,11 +1741,11 @@ msgid ""
1731
  "To receive REST API credentials, in <b>My Apps & Credentials</b> of your "
1732
  "PayPal account do the following steps:"
1733
  msgstr ""
1734
- "Para receber os credenciais REST API, em <b>My Apps & Credentials</b> da sua "
1735
- "conta Paypal siga os seguintes passos:"
1736
 
1737
  msgid "Click <b>Create App</b> and enter application details."
1738
- msgstr "Clicar em <b>Create App</b> e digitar as informações do aplicativo."
1739
 
1740
  msgid ""
1741
  "Once created, copy <b>Client ID</b> and <b>Secret</b> and use them in the "
@@ -1760,7 +1770,7 @@ msgid "Mollie error."
1760
  msgstr "Erro do Mollie."
1761
 
1762
  msgid "I will pay now with Mollie"
1763
- msgstr "Vou pagar agora com Mollie"
1764
 
1765
  msgid "API Key"
1766
  msgstr "Chave do API"
@@ -1774,7 +1784,7 @@ msgid ""
1774
  "a scheduled cron job."
1775
  msgstr ""
1776
  "Esta configuração determina o tempo limite o qual o pagamento feito através "
1777
- "do gateway de pagamento é considerado incompleto. Essa funcionalidade requer "
1778
  "um trabalho cron agendado."
1779
 
1780
  msgid "Persons"
@@ -1784,7 +1794,7 @@ msgid "Number of persons"
1784
  msgstr "Número de pessoas"
1785
 
1786
  msgid "Capacity (min and max)"
1787
- msgstr "Capacidade (min e max)"
1788
 
1789
  msgid "Group bookings information format"
1790
  msgstr "Agrupar o formato das informações de reserva"
@@ -1792,7 +1802,7 @@ msgstr "Agrupar o formato das informações de reserva"
1792
  msgid ""
1793
  "Select format for displaying the time slot occupancy for group bookings."
1794
  msgstr ""
1795
- "Selecionar o formato para a exibição da ocupação do intervalo de tempo para "
1796
  "reservas de grupo."
1797
 
1798
  msgid "[Booked/Max capacity]"
@@ -1802,7 +1812,7 @@ msgid "[Available left]"
1802
  msgstr "[Restantes]"
1803
 
1804
  msgid "Group Booking"
1805
- msgstr "Reserva em grupo"
1806
 
1807
  msgid "number of persons"
1808
  msgstr "número de pessoas"
@@ -1818,7 +1828,7 @@ msgid ""
1818
  "the certain time period."
1819
  msgstr ""
1820
  "Número mínimo e máximo de clientes autorizados a reservar o serviço durante "
1821
- "o período determinado."
1822
 
1823
  msgid "One booking per time slot"
1824
  msgstr "Uma reserva por intervalo de tempo"
@@ -1840,7 +1850,7 @@ msgid "Address"
1840
  msgstr "Endereço"
1841
 
1842
  msgid "Follow these steps to get an API key:"
1843
- msgstr "Siga esses passos para obter uma chave API:"
1844
 
1845
  msgid ""
1846
  "Go to the <a href=\"https://console.developers.google.com/flows/enableapi?"
@@ -1854,7 +1864,7 @@ msgstr ""
1854
 
1855
  msgid "Create or select a project. Click <b>Continue</b> to enable the API."
1856
  msgstr ""
1857
- "Criar ou selecionar um projeto. Clique em <b>Continuar</b> para ativar a API."
1858
 
1859
  msgid ""
1860
  "On the <b>Credentials</b> page, get an <b>API key</b> (and set the API key "
@@ -1862,15 +1872,15 @@ msgid ""
1862
  "with server restrictions, you may use that key."
1863
  msgstr ""
1864
  "Na página <b>Credenciais</b>, obtenha a <b>chave API</b> (e defina as "
1865
- "restrições da chave API). Observação: Se você tem um chave API não restrita "
1866
- "ou uma chave com restrições de servidor, você pode usar essa chave."
1867
 
1868
  msgid ""
1869
  "Click <b>Library</b> on the left sidebar menu. Select Google Maps JavaScript "
1870
  "API and make sure it's enabled."
1871
  msgstr ""
1872
  "Clique em <b>Library</b> no menu lateral da esquerda. Selecione Google Maps "
1873
- "JavaScript API e certifique-se de ela esteja ativada."
1874
 
1875
  msgid "Use your <b>API key</b> in the form below."
1876
  msgstr "Use your <b>chave API</b> no formulário abaixo."
@@ -1879,8 +1889,8 @@ msgid ""
1879
  "Enter a Google API key that you got after registering your app project on "
1880
  "the Google API Console."
1881
  msgstr ""
1882
- "Insira a chave API da Google que você obteve depois de registar seu projeto "
1883
- "de app no Google API Console."
1884
 
1885
  msgid "Google Maps"
1886
  msgstr "Google Maps"
@@ -1907,7 +1917,7 @@ msgid "Part of collaborative service"
1907
  msgstr "Parte de um serviço colaborativo"
1908
 
1909
  msgid "Customer cabinet (all services displayed in tabs)"
1910
- msgstr "Gaveta do cliente (todos os serviços exibidos em abas)"
1911
 
1912
  msgid "Appointment management"
1913
  msgstr "Gestão de compromissos"
@@ -1940,16 +1950,16 @@ msgid "Wordpress password"
1940
  msgstr "Senha do Wordpress"
1941
 
1942
  msgid "Delete account"
1943
- msgstr "Deletar conta"
1944
 
1945
  msgid "Add Customer Cabinet"
1946
- msgstr "Adicionar gaveta de clientes"
1947
 
1948
  msgid "Customer cabinet"
1949
- msgstr "Gaveta de clientes"
1950
 
1951
  msgid "A custom block for displaying customer cabinet"
1952
- msgstr "Bloco personalizado para exibição de gaveta de clientes"
1953
 
1954
  msgid "show"
1955
  msgstr "mostrar"
@@ -1976,7 +1986,7 @@ msgid "Profile"
1976
  msgstr "Perfil"
1977
 
1978
  msgid "WP user"
1979
- msgstr "Usuário WP"
1980
 
1981
  msgid "Current password"
1982
  msgstr "Senha atual"
@@ -1988,7 +1998,7 @@ msgid "Confirm password"
1988
  msgstr "Confirmar senha"
1989
 
1990
  msgid "No appointments."
1991
- msgstr "Nenhum compromisso"
1992
 
1993
  msgid "Expired"
1994
  msgstr "Expirado"
@@ -1997,7 +2007,7 @@ msgid "Not allowed"
1997
  msgstr "Não permitido"
1998
 
1999
  msgid "There are no time slots for selected date."
2000
- msgstr "Não há intervalos de tempo para a data selecionada."
2001
 
2002
  msgid "Profile updated successfully."
2003
  msgstr "Perfil atualizado com sucesso."
@@ -2006,8 +2016,8 @@ msgid ""
2006
  "Unfortunately, you're not able to cancel the appointment because the "
2007
  "required time limit prior to canceling has expired."
2008
  msgstr ""
2009
- "Infelizmente você não pode cancelar o compromisso porque o limite de tempo "
2010
- "necessário antes do cancelamento expirou."
2011
 
2012
  msgid ""
2013
  "The selected time is not available anymore. Please, choose another time slot."
@@ -2022,28 +2032,28 @@ msgid "Wrong current password"
2022
  msgstr "Senha atual incorreta"
2023
 
2024
  msgid "Passwords mismatch"
2025
- msgstr "As senhas não conferem"
2026
 
2027
  msgid "Cancel Appointment"
2028
- msgstr "Cancelar compromisso"
2029
 
2030
  msgid "You are going to cancel a scheduled appointment. Are you sure?"
2031
- msgstr "Você vai cancelar um compromisso marcado. Você tem certeza?"
2032
 
2033
  msgid ""
2034
  "You are going to delete your account and all information associated with it. "
2035
  "Click Confirm to continue or Cancel to cancel the action."
2036
  msgstr ""
2037
- "Você vai deletar sua conta com todas as informações associadas a ela. Clique "
2038
- "em confirmar para continuar ou em Cancelar para cancelar a ação."
2039
 
2040
  msgid ""
2041
  "This account cannot be deleted because it is associated with scheduled "
2042
  "appointments. Please cancel bookings or contact the service provider."
2043
  msgstr ""
2044
- "Esta conta não pode ser deletada porque está associada com compromissos "
2045
- "agendados. Por favor, cancele as reservas ou entre em contacto com o "
2046
- "prestador de serviços."
2047
 
2048
  msgid "Confirm"
2049
  msgstr "Confirmar"
@@ -2054,11 +2064,11 @@ msgstr "OK"
2054
  #, php-format
2055
  msgid " and %d more item"
2056
  msgid_plural " and %d more items"
2057
- msgstr[0] " e %d outros itens"
2058
  msgstr[1] " e %d mais itens"
2059
 
2060
  msgid "Notification to customer about approved appointment"
2061
- msgstr "Notificação ao cliente sobre o compromisso aprovado"
2062
 
2063
  msgid ""
2064
  "Dear {client_name}.\n"
@@ -2078,7 +2088,7 @@ msgstr ""
2078
  "\n"
2079
  "Esta é uma confirmação de que você reservou {service_name}.\n"
2080
  "\n"
2081
- "Aguardamos você em {company_address} no dia {appointment_date} às "
2082
  "{appointment_time} .\n"
2083
  "\n"
2084
  "Obrigado por escolher nossos serviços.\n"
@@ -2088,7 +2098,7 @@ msgstr ""
2088
  "{company_website}"
2089
 
2090
  msgid "Notification to staff member about approved appointment"
2091
- msgstr "Notificação ao funcionário sobre o compromisso aprovado"
2092
 
2093
  msgid ""
2094
  "Hello.\n"
@@ -2104,7 +2114,7 @@ msgid ""
2104
  msgstr ""
2105
  "Olá.\n"
2106
  "\n"
2107
- "Você tem uma nova reserva.\n"
2108
  "\n"
2109
  "Serviço: {service_name}\n"
2110
  "Data: {appointment_date}\n"
@@ -2114,7 +2124,7 @@ msgstr ""
2114
  "E-mail do cliente: {client_email}"
2115
 
2116
  msgid "Notification to customer about cancelled appointment"
2117
- msgstr "Notificação ao cliente sobre o compromisso cancelado"
2118
 
2119
  msgid ""
2120
  "Dear {client_name}.\n"
@@ -2140,7 +2150,7 @@ msgstr ""
2140
  "{company_website}"
2141
 
2142
  msgid "Notification to staff member about cancelled appointment"
2143
- msgstr "Notificação ao funcionário sobre o compromisso cancelado"
2144
 
2145
  msgid ""
2146
  "Hello.\n"
@@ -2166,7 +2176,7 @@ msgstr ""
2166
  "E-mail do cliente: {client_email}"
2167
 
2168
  msgid "Notification to customer about rejected appointment"
2169
- msgstr "Notificação ao cliente sobre o compromisso rejeitado"
2170
 
2171
  msgid ""
2172
  "Dear {client_name}.\n"
@@ -2196,7 +2206,7 @@ msgstr ""
2196
  "{company_website}"
2197
 
2198
  msgid "Notification to staff member about rejected appointment"
2199
- msgstr "Notificação ao funcionário sobre o compromisso rejeitado"
2200
 
2201
  msgid ""
2202
  "Hello.\n"
@@ -2236,7 +2246,7 @@ msgid ""
2236
  "{company_website}"
2237
  msgstr ""
2238
  "Prezado {client_name},\n"
2239
- "Esta é uma confirmação de que você reservou {service_name}.\n"
2240
  "Aguardamos você em {company_address} no dia {appointment_date} às "
2241
  "{appointment_time} .\n"
2242
  "Obrigado por escolher nossos serviços.\n"
@@ -2255,7 +2265,7 @@ msgid ""
2255
  "Client email: {client_email}"
2256
  msgstr ""
2257
  "Olá,\n"
2258
- "Você tem uma nova reserva.\n"
2259
  "Serviço: {service_name}\n"
2260
  "Data: {appointment_date}\n"
2261
  "Hora: {appointment_time}\n"
@@ -2273,7 +2283,7 @@ msgid ""
2273
  "{company_website}"
2274
  msgstr ""
2275
  "Prezado {client_name}.\n"
2276
- "Cancelou o compromisso de {service_name} no dia {appointment_date} às "
2277
  "{appointment_time}.\n"
2278
  "Obrigado por escolher nossos serviços.\n"
2279
  "{company_name}\n"
@@ -2342,7 +2352,7 @@ msgstr ""
2342
  msgid ""
2343
  "Evening reminder to customer about next day appointment (requires cron setup)"
2344
  msgstr ""
2345
- "Lembrete noturno ao cliente sobre o compromisso do dia seguinte (requer "
2346
  "configuração do cron)"
2347
 
2348
  msgid ""
@@ -2356,7 +2366,7 @@ msgid ""
2356
  msgstr ""
2357
  "Prezado {client_name}.\n"
2358
  "Gostariamos de relembrar que você reservou {service_name} amanhã às "
2359
- "{appointment_time}. Aguardamos você em {company_address}.\n"
2360
  "Obrigado por escolher nossos serviços.\n"
2361
  "{company_name}\n"
2362
  "{company_phone}\n"
@@ -2365,7 +2375,7 @@ msgstr ""
2365
  msgid ""
2366
  "Follow-up message in the same day after appointment (requires cron setup)"
2367
  msgstr ""
2368
- "Mensagem complementar no mesmo dia depois do compromisso (requer "
2369
  "configuração do cron)"
2370
 
2371
  msgid ""
@@ -2406,17 +2416,17 @@ msgid ""
2406
  "has been sent to you."
2407
  msgstr ""
2408
  "Muito obrigado! O processo de reserva está completo. Um e-mail com os seus "
2409
- "detalhes da reserva foi enviado para você."
2410
 
2411
  msgid ""
2412
  "You are trying to use the service too often. Please contact us to make a "
2413
  "booking."
2414
  msgstr ""
2415
- "Você está tentando usar o serviço com muita frequência. Por favor, entre em "
2416
- "contato conosco para fazer uma reserva."
2417
 
2418
  msgid "Your payment has been accepted for processing."
2419
- msgstr "Seu pagamento foi aceito para processamento."
2420
 
2421
  msgid ""
2422
  "You selected a booking for {service_name} by {staff_name} at "
@@ -2424,8 +2434,8 @@ msgid ""
2424
  "{service_price}.\n"
2425
  "Please provide your details in the form below to proceed with booking."
2426
  msgstr ""
2427
- "Você escolheu uma reserva para {service_name} com {staff_name} às "
2428
- "{appointment_time} em {appointment_date}. O preço para este serviço é de "
2429
  "{service_price}.\n"
2430
  "Por favor, forneça os seus detalhes no formulário abaixo para proceder com a "
2431
  "reserva."
@@ -2441,15 +2451,15 @@ msgid ""
2441
  "{staff_name}.\n"
2442
  "Click on a time slot to proceed with booking."
2443
  msgstr ""
2444
- "Você pode encontrar abaixo uma lista dos intervalos disponíveis para "
2445
- "{service_name} com {staff_name}.\n"
2446
  "Clique no horário para prosseguir com a marcação."
2447
 
2448
  msgid "Confirm email"
2449
  msgstr "Confirmar e-mail"
2450
 
2451
  msgid "Finish by"
2452
- msgstr "Até"
2453
 
2454
  msgid "First name"
2455
  msgstr "Primeiro nome"
@@ -2467,16 +2477,16 @@ msgid "I'm available on or after"
2467
  msgstr "Estou disponível em ou depois de"
2468
 
2469
  msgid "Start from"
2470
- msgstr "De"
2471
 
2472
  msgid "Select category"
2473
- msgstr "Escolher categoria"
2474
 
2475
  msgid "Any"
2476
  msgstr "Qualquer"
2477
 
2478
  msgid "Select service"
2479
- msgstr "Escolher serviço"
2480
 
2481
  msgid "Select day"
2482
  msgstr "Selecione um dia"
@@ -2494,7 +2504,7 @@ msgid "Email confirmation doesn't match"
2494
  msgstr "E-mail de confirmação não coincide"
2495
 
2496
  msgid "Please select an employee"
2497
- msgstr "Por favor, selecione um empregado"
2498
 
2499
  msgid "Please tell us your name"
2500
  msgstr "Por favor, informe o seu nome"
@@ -2512,7 +2522,7 @@ msgid "Please select a service"
2512
  msgstr "Por favor, selecione um serviço"
2513
 
2514
  msgid "Login"
2515
- msgstr "Entrar"
2516
 
2517
  msgid "Done"
2518
  msgstr "Concluir"
@@ -2524,46 +2534,46 @@ msgid "Custom notification"
2524
  msgstr "Notificação personalizada"
2525
 
2526
  msgid "Appointment reminder"
2527
- msgstr "Lembrete de compromisso"
2528
 
2529
  msgid "New booking"
2530
  msgstr "Nova reserva"
2531
 
2532
  msgid "Notification about customer's appointment status change"
2533
- msgstr "Notificação de modificação de status de compromisso cliente"
2534
 
2535
  msgid "Customer birthday greeting (requires cron setup)"
2536
  msgstr "Cumprimento do aniversário do cliente (requer configuração do cron)"
2537
 
2538
  msgid "Notification to customer about pending appointment"
2539
- msgstr "Notificação ao cliente sobre o compromisso pendente"
2540
 
2541
  msgid ""
2542
  "1st reminder to customer about upcoming appointment (requires cron setup)"
2543
  msgstr ""
2544
- "1º lembrete para o cliente sobre o compromisso futuro (requer configuração "
2545
- "do cron)"
2546
 
2547
  msgid ""
2548
  "2nd reminder to customer about upcoming appointment (requires cron setup)"
2549
  msgstr ""
2550
- "2º lembrete para o cliente sobre o compromisso futuro (requer configuração "
2551
- "do cron)"
2552
 
2553
  msgid ""
2554
  "3rd reminder to customer about upcoming appointment (requires cron setup)"
2555
  msgstr ""
2556
- "3º lembrete para o cliente sobre o compromisso futuro (requer configuração "
2557
- "do cron)"
2558
 
2559
  msgid "Last client's appointment"
2560
- msgstr "Compromisso do último cliente"
2561
 
2562
  msgid "Full day agenda"
2563
  msgstr "Agenda do dia inteiro"
2564
 
2565
  msgid "Notification to staff member about pending appointment"
2566
- msgstr "Notificação ao funcionário sobre o compromisso pendente"
2567
 
2568
  msgid "Invalid day"
2569
  msgstr "Dia inválido"
@@ -2584,7 +2594,7 @@ msgid "State/Region"
2584
  msgstr "Estado/Região"
2585
 
2586
  msgid "Postal Code"
2587
- msgstr "CEP"
2588
 
2589
  msgid "City"
2590
  msgstr "Cidade"
@@ -2602,7 +2612,7 @@ msgid "State is required"
2602
  msgstr "É necessário informar o estado"
2603
 
2604
  msgid "Postcode is required"
2605
- msgstr "É necessário informar o CEP"
2606
 
2607
  msgid "City is required"
2608
  msgstr "É necessário informar a cidade"
@@ -2617,8 +2627,7 @@ msgid ""
2617
  "The highlighted time is not available anymore. Please, choose another time "
2618
  "slot."
2619
  msgstr ""
2620
- "A hora destacada não está mais disponível. Por favor, escolha outro "
2621
- "intervalo de tempo."
2622
 
2623
  msgid "Happy Birthday!"
2624
  msgstr "Feliz Aniversário!"
@@ -2639,8 +2648,8 @@ msgstr ""
2639
  "Prezado {client_name},\n"
2640
  "\n"
2641
  "Feliz Aniversário!\n"
2642
- "Desejamos a você tudo de melhor.\n"
2643
- "Que você e sua família sejam felizes e saudáveis.\n"
2644
  "\n"
2645
  "Obrigado por escolher nossa empresa.\n"
2646
  "\n"
@@ -2660,8 +2669,8 @@ msgid ""
2660
  msgstr ""
2661
  "Prezado {client_name},\n"
2662
  "Feliz Aniversário!\n"
2663
- "Desejamos-lhe tudo de melhor.\n"
2664
- "Que você e sua família sejam felizes e saudáveis.\n"
2665
  "Obrigado por escolher nossa empresa.\n"
2666
  "{company_name}\n"
2667
  "{company_phone}\n"
@@ -2730,7 +2739,7 @@ msgid "No."
2730
  msgstr "Núm."
2731
 
2732
  msgid "Appointment date"
2733
- msgstr "Data do compromisso"
2734
 
2735
  msgid "Customer name"
2736
  msgstr "Nome do Cliente"
@@ -2745,13 +2754,13 @@ msgid "Created"
2745
  msgstr "Criado"
2746
 
2747
  msgid "User"
2748
- msgstr "Usuário"
2749
 
2750
  msgid "Last appointment"
2751
- msgstr "Último compromisso"
2752
 
2753
  msgid "Total appointments"
2754
- msgstr "Total de compromissos"
2755
 
2756
  msgid "Payments"
2757
  msgstr "Pagamentos"
@@ -2784,16 +2793,13 @@ msgid "Code"
2784
  msgstr "Código"
2785
 
2786
  msgid "Regular price"
2787
- msgstr "Preço regular"
2788
 
2789
  msgid "Price with custom Sender ID"
2790
- msgstr "Preço com ID do remetente personalizada"
2791
-
2792
- msgid "Order"
2793
- msgstr "Pedido"
2794
 
2795
  msgid "Requested ID"
2796
- msgstr "ID solicitada"
2797
 
2798
  msgid "Status date"
2799
  msgstr "Data do status"
@@ -2808,7 +2814,7 @@ msgstr ""
2808
 
2809
  #, php-format
2810
  msgid "View %1$s version %2$s details"
2811
- msgstr "Ver detalhes de %1$s versão %2$s"
2812
 
2813
  msgid "Important"
2814
  msgstr "Importante"
@@ -2819,10 +2825,11 @@ msgid ""
2819
  "properly on all WordPress configurations and completely protect it from the "
2820
  "influence of other plugins."
2821
  msgstr ""
2822
- "Cada versão do Bookly é cuidadosamente verificada com as maiores normas de "
2823
- "qualidade antes da instalação, no entanto não podemos garantir que depois de "
2824
- "uma atualização, o plugin funcione com todas as configurações do WordPress, "
2825
- "e esteja totalmente protegido das influencias dos outros plugins."
 
2826
 
2827
  #, php-format
2828
  msgid ""
@@ -2830,10 +2837,10 @@ msgid ""
2830
  "the plugin. Please note that, according to %1$s Envato rules %2$s, we will "
2831
  "be able to help you only if you have active item support period."
2832
  msgstr ""
2833
- "Há um pequeno risco de que alguns problemas possam aparecer como resultado "
2834
- "da atualização do plugin. Por favor note que, de acordo com as regras de "
2835
- "%1$s de Envato %2$s, só seremos capazes de ajudá-lo apenas se você tiver um "
2836
- "período de suporte ativo do item."
2837
 
2838
  #, php-format
2839
  msgid ""
@@ -2842,13 +2849,13 @@ msgid ""
2842
  msgstr "Pode renovar o suporte %1$s aqui ou %2$s Já renovei o suporte. %3$s"
2843
 
2844
  msgid "Bookly updater"
2845
- msgstr "Atualização de Bookly"
2846
 
2847
  msgid ""
2848
  "Please wait, we are checking updates for {checked}/{total} Bookly add-ons"
2849
  msgstr ""
2850
- "Um momento de espera, estamos a verificar as atualizações de {checked}"
2851
- "/{total} add-ons Bookly"
2852
 
2853
  msgid "No updates available"
2854
  msgstr "Nenhuma atualização disponível"
@@ -2875,25 +2882,25 @@ msgid "Cancelled"
2875
  msgstr "Cancelada"
2876
 
2877
  msgid "Untitled"
2878
- msgstr "Sem título"
2879
 
2880
  msgid "Unknown"
2881
  msgstr "Desconhecido"
2882
 
2883
  msgid "New booking notification"
2884
- msgstr "Nova reserva combinada"
2885
 
2886
  msgid "New booking combined notification"
2887
  msgstr "Nova notificação de reserva combinada"
2888
 
2889
  msgid "New customer's WordPress user login details"
2890
- msgstr "Detalhes do Wordpress user login de novo cliente"
2891
 
2892
  msgid "Customer's birthday greeting"
2893
  msgstr "Cumprimento do aniversário do cliente"
2894
 
2895
  msgid "Customer's last appointment notification"
2896
- msgstr "Notificação do último compromisso do cliente"
2897
 
2898
  msgid "Staff full day agenda"
2899
  msgstr "Agenda do funcionário para o dia "
@@ -2926,8 +2933,8 @@ msgid ""
2926
  "should update your user data, or press Cancel to edit entered data."
2927
  msgstr ""
2928
  "Seu %s: %s já está associado com outro %s.<br/>clique em Atualizar se "
2929
- "devemos atualizar seus dados de usuário ou clique em Cancelar para editar os "
2930
- "dados inseridos."
2931
 
2932
  msgid "sent to our system"
2933
  msgstr "enviado para o nosso sistema"
@@ -2945,7 +2952,7 @@ msgid ""
2945
  "Thank you for using Bookly SMS. We wish you a lucky week!\n"
2946
  "Bookly SMS Team"
2947
  msgstr ""
2948
- "Esperamos que teve um bom fim de semana! Apresentamos um sumário das "
2949
  "mensagens enviadas na semana passada:\n"
2950
  "{notification_list}\n"
2951
  "\n"
@@ -2954,7 +2961,7 @@ msgstr ""
2954
  "O custo de envio de {total} mensagens foi {amount}. O saldo corrente de "
2955
  "Bookly SMS é {balance}.\n"
2956
  "\n"
2957
- "Obrigado por usar Bookly SMS. Esperamos que tenha uma boa semana!\n"
2958
  "Equipe Bookly SMS"
2959
 
2960
  msgid "more"
@@ -2973,25 +2980,24 @@ msgid ""
2973
  "To view the details of these appointments, please contact your website "
2974
  "administrator in order to verify Bookly Pro license."
2975
  msgstr ""
2976
- "Para visualizar os detalhes desses compromissos, por favor, entre em "
2977
- "contacto com o administrador do seu website para verificar a licença do "
2978
- "Bookly Pro."
2979
 
2980
  msgid "Admins"
2981
  msgstr "Admins"
2982
 
2983
  msgid "Passwords must be the same."
2984
- msgstr "As senhas devem ser as mesmas."
2985
 
2986
  msgid ""
2987
  "Your don't have enough Bookly SMS credits to send this message. Please add "
2988
  "funds to your balance and try again."
2989
  msgstr ""
2990
- "Você não tem créditos Bookly SMS suficientes para enviar esta mensagem. Por "
2991
- "favor, adicione fundos ao seu saldo e tente de novo."
2992
 
2993
  msgid "Failed to send SMS."
2994
- msgstr "Não foi possível enviar SMS."
2995
 
2996
  msgid "Phone number is empty."
2997
  msgstr "Número de telefone está vazio."
@@ -3043,11 +3049,11 @@ msgid ""
3043
  "settings <a href='%s'>here</a>."
3044
  msgstr ""
3045
  "Prezado cliente Bookly SMS.\n"
3046
- "Gostaríamos de informá-lo que o seu saldo Bookly SMS está menor que 5 USD. "
3047
- "Para usar nosso serviço sem interrupções recarregue seu saldo, visitando a "
3048
  "página do Bookly SMS <a href='%s'>aqui</a>.\n"
3049
  "\n"
3050
- "Se quiser parar de receber estas notificações, por favor, atualize suas "
3051
  "configurações <a href='%s'>aqui</a>."
3052
 
3053
  msgid "Bookly SMS - Low Balance"
@@ -3080,6 +3086,10 @@ msgstr "E-mail inválido."
3080
  msgid "Pending sender ID already exists."
3081
  msgstr "ID do remetente pendente já existe"
3082
 
 
 
 
 
3083
  msgid "Recovery code expired."
3084
  msgstr "Código de recuperação expirado."
3085
 
@@ -3087,13 +3097,13 @@ msgid "Error sending email."
3087
  msgstr "Erro ao enviar e-mail."
3088
 
3089
  msgid "User not found."
3090
- msgstr "Usuário não encontrado."
3091
 
3092
  msgid "Email already in use."
3093
  msgstr "Email já está em uso."
3094
 
3095
  msgid "Dashboard"
3096
- msgstr "Painel do App"
3097
 
3098
  msgid "Staff Members"
3099
  msgstr "Funcionários"
@@ -3138,10 +3148,10 @@ msgid "Created at any time"
3138
  msgstr "Criado em qualquer data"
3139
 
3140
  msgid "Any time"
3141
- msgstr "Qualquer data"
3142
 
3143
  msgid "No appointments for selected period."
3144
- msgstr "Sem compromissos para o período selecionado."
3145
 
3146
  msgid "No result found"
3147
  msgstr "Nenhum resultado encontrado"
@@ -3155,66 +3165,62 @@ msgstr "Anexos"
3155
  msgid "Archived"
3156
  msgstr "Arquivado"
3157
 
3158
- msgid "Send invoice"
3159
- msgstr "Enviar fatura"
3160
-
3161
- msgid "Company name"
3162
- msgstr "Nome da empresa"
3163
-
3164
- msgid "Note: invoice will be sent to your PayPal email address"
3165
- msgstr "Nota: a fatura será enviada ao seu endereço e-mail PayPal"
3166
-
3167
- msgid "Company address"
3168
- msgstr "Endereço da empresa"
3169
-
3170
- msgid "Copy invoice to another email(s)"
3171
- msgstr "Copiar fatura paro outro(s) e-mail(s)."
3172
 
3173
- msgid "Enter one or more email addresses separated by commas."
3174
- msgstr "Entrar um ou mais endereços de e-mail separados por virgulas."
 
 
 
 
 
3175
 
3176
- msgid "Company address line 2"
3177
- msgstr "Endereço da empresa linha 2"
 
 
 
 
 
 
3178
 
3179
- msgid "VAT"
3180
- msgstr "IVA"
 
 
 
 
3181
 
3182
- msgid "Company code"
3183
- msgstr "Código da empresa"
 
3184
 
3185
- msgid "Additional text to include into invoice"
3186
- msgstr "texto adicional para incluir na fatura"
 
3187
 
3188
  msgid "SMS Notifications"
3189
- msgstr "Notificações por SMS"
3190
-
3191
- msgid "Your balance"
3192
- msgstr "Seu saldo"
3193
-
3194
- msgid "Send email notification to administrators at low balance"
3195
- msgstr "Enviar notificação por email para os administradores com saldo baixo"
3196
-
3197
- msgid "Send weekly summary to administrators"
3198
- msgstr "Enviar resumo semanal para os administradores"
3199
-
3200
- msgid "Change"
3201
- msgstr "Alterar"
3202
 
3203
  msgid "Approved at"
3204
  msgstr "Aprovado em"
3205
 
 
 
 
 
 
 
 
 
3206
  msgid "Log out"
3207
  msgstr "Sair"
3208
 
3209
  msgid "Notifications"
3210
  msgstr "Notificações"
3211
 
3212
- msgid "Add money"
3213
- msgstr "Adicionar dinheiro"
3214
-
3215
- msgid "Auto-Recharge"
3216
- msgstr "Auto-Recharge"
3217
-
3218
  msgid "Purchases"
3219
  msgstr "Compras"
3220
 
@@ -3228,9 +3234,8 @@ msgid ""
3228
  "SMS Notifications (or \"Bookly SMS\") is a service for notifying your "
3229
  "customers via text messages which are sent to mobile phones."
3230
  msgstr ""
3231
- "Notificações de SMS (ou \"Bookly SMS\") é um serviço para notificar os seus "
3232
- "clientes através de mensagens de texto que são enviadas para telefones "
3233
- "móveis."
3234
 
3235
  msgid "It is necessary to register in order to start using this service."
3236
  msgstr "É necessário registrar-se para começar a utilizar este serviço."
@@ -3239,11 +3244,11 @@ msgid ""
3239
  "After registration you will need to configure notification messages and top "
3240
  "up your balance in order to start sending SMS."
3241
  msgstr ""
3242
- "Após o registro, você precisará configurar mensagens de notificação e "
3243
- "completar o seu saldo, a fim de iniciar o envio de SMS."
3244
 
3245
  msgid "Thank you for registration."
3246
- msgstr "Obrigado por ter registrado"
3247
 
3248
  msgid "You're almost ready to get started with Bookly SMS Service."
3249
  msgstr "Está quase pronto para começar a usar o Serviço Bookly SMS."
@@ -3266,73 +3271,56 @@ msgstr "Não recebeu o email ?"
3266
 
3267
  #, php-format
3268
  msgid "Is %s the correct email?"
3269
- msgstr "%s é o email correto ?"
3270
 
3271
  #, php-format
3272
  msgid "If not, you can %s restart the registration process%s."
3273
- msgstr "Caso contrário, pode %s recomeçar o processo de registro%s."
3274
 
3275
  msgid "Check your spam folder."
3276
  msgstr "Verifique sua pasta de spams."
3277
 
3278
  #, php-format
3279
  msgid "Click %s here %s to resend the email."
3280
- msgstr "Clicar %s aqui %s para enviar de novo o email."
3281
 
3282
  msgid "Password"
3283
- msgstr "Senha"
3284
 
3285
  msgid "Log In"
3286
  msgstr "Entrar"
3287
 
3288
  msgid "Registration"
3289
- msgstr "Registro"
3290
 
3291
  msgid "Forgot password"
3292
- msgstr "Esqueceu sua senha"
3293
 
3294
  msgid "Repeat password"
3295
- msgstr "Repita a senha"
3296
 
3297
  #, php-format
3298
  msgid ""
3299
  "I accept <a href=\"%1$s\" target=\"_blank\">Service Terms</a> and <a "
3300
  "href=\"%2$s\" target=\"_blank\">Privacy Policy</a>"
3301
  msgstr ""
3302
- "Eu aceito <a href=\"%1$s\" target=\"_blank\">os Termos de Serviço</a> and <a "
3303
- "href=\"%2$s\" target=\"_blank\">e a Política de Privacidade</a>"
3304
 
3305
  msgid "Register"
3306
- msgstr "Registrar"
3307
 
3308
  msgid "Enter code from email"
3309
  msgstr "Digite o código recebido no e-mail"
3310
 
3311
  msgid "Repeat new password"
3312
- msgstr "Repita a nova senha"
3313
-
3314
- msgid "Change password"
3315
- msgstr "Alterar a senha"
3316
-
3317
- msgid "Old password"
3318
- msgstr "Senha antiga"
3319
-
3320
- msgid ""
3321
- "We will only charge your PayPal account when your balance falls below $10."
3322
- msgstr ""
3323
- "Só debitamos de sua conta PayPal quando seu saldo estiver abaixo de $10."
3324
-
3325
- msgid "Enable Auto-Recharge"
3326
- msgstr "Ativar Auto-Recharge"
3327
-
3328
- msgid "Disable Auto-Recharge"
3329
- msgstr "Desativar Auto-Recharge"
3330
 
3331
  msgid ""
3332
  "If you do not see your country in the list please contact us at <a "
3333
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3334
  msgstr ""
3335
- "Se não vê seu pais nesta lista, Por favor, entre em contato conosco <a "
3336
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3337
 
3338
  msgid "Administrator phone"
@@ -3342,7 +3330,7 @@ msgid "Send test SMS"
3342
  msgstr "Enviar SMS de teste"
3343
 
3344
  msgid "Save administrator phone"
3345
- msgstr "Guardar telefone do administrador"
3346
 
3347
  msgid ""
3348
  "Enter a phone number in international format. E.g. for the United States a "
@@ -3359,7 +3347,7 @@ msgid ""
3359
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
3360
  "Multisite</a> add-on <a href=\"%2$s\">message</a>."
3361
  msgstr ""
3362
- "Para enviar notificações agendadas consulte o addon <a href=\"%1$s\">Bookly "
3363
  "Multisite</a> <a href=\"%2$s\">mensagem</a>."
3364
 
3365
  msgid ""
@@ -3375,12 +3363,12 @@ msgid ""
3375
  "our price list. Also please note that prices for messages with custom sender "
3376
  "ID are usually 20% - 25% higher than normal message price."
3377
  msgstr ""
3378
- "Por favor, leve em conta que nem todos os países, por lei, permitem ID "
3379
  "personalizado de remetente de SMS. Por favor, verifique se determinado país "
3380
- "permite costume ID personalizado de remetente na nossa lista de preços. "
3381
- "Também vale lembrar que os preços de mensagens com ID personalizado de "
3382
- "remetente são geralmente 20% - 25% maiores que o preço de uma mensagem "
3383
- "normal."
3384
 
3385
  msgid "Request Sender ID"
3386
  msgstr "Solicitar ID de remetente"
@@ -3397,20 +3385,83 @@ msgstr "Cancelar solicitação"
3397
  msgid "Can only contain letters or digits (up to 11 characters)."
3398
  msgstr "Só pode conter letras ou dígitos (até 11 caracteres)."
3399
 
3400
- msgid "Please accept terms and conditions."
3401
- msgstr "Por favor, aceite os termos e condições."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3402
 
3403
- msgid "Your payment has been interrupted."
3404
- msgstr "Seu pagamento foi interrompido."
3405
 
3406
- msgid "Auto-Recharge enabled."
3407
- msgstr "Auto-Recharge ativado."
 
 
 
 
 
 
 
 
 
 
 
3408
 
3409
- msgid "You declined the Auto-Recharge of your balance."
3410
- msgstr "Você recusou o Auto-Recharge do seu saldo."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3411
 
3412
- msgid "Please enter old password."
3413
- msgstr "Digite a senha antiga."
 
3414
 
3415
  msgid "Last month"
3416
  msgstr "Último mês"
@@ -3424,15 +3475,12 @@ msgstr "ID do remetente foi redefinido para o padrão."
3424
  msgid "No records for selected period."
3425
  msgstr "Não há registros para o período selecionado."
3426
 
3427
- msgid "Invoice"
3428
- msgstr "Fatura"
3429
-
3430
  msgid ""
3431
- "To generate an invoice you should fill in company information in Bookly > "
3432
- "SMS Notifications > Send invoice."
3433
  msgstr ""
3434
- "Para gerar uma fatura, você deve preencher as informações da empresa em "
3435
- "Bookly > Notificações por SMS> Enviar fatura."
3436
 
3437
  msgid "enable"
3438
  msgstr "ativar"
@@ -3448,19 +3496,6 @@ msgstr ""
3448
  "O serviço está temporariamente indisponível. Por favor, tente novamente mais "
3449
  "tarde."
3450
 
3451
- msgid "Auto-Recharge has failed, please replenish your balance directly."
3452
- msgstr "O Auto-Recharge falhou. Por favor, recarregue o seu saldo diretamente."
3453
-
3454
- msgid "Auto-Recharge disabled"
3455
- msgstr "Auto-Recharge desativado"
3456
-
3457
- msgid ""
3458
- "Error. Can't disable Auto-Recharge, you can perform this action in your "
3459
- "PayPal account."
3460
- msgstr ""
3461
- "Erro. Não é possível desativar o Auto-Recharge. Você pode executar esta ação "
3462
- "em sua conta PayPal."
3463
-
3464
  msgid "SMS has been sent successfully."
3465
  msgstr "SMS foi enviada com sucesso."
3466
 
@@ -3468,10 +3503,10 @@ msgid "Staff members order"
3468
  msgstr "Ordem dos funcionários"
3469
 
3470
  msgid "Add staff"
3471
- msgstr "Adicionar Equipe"
3472
 
3473
  msgid "Quick search staff"
3474
- msgstr "Pesquisa rápida equipe"
3475
 
3476
  msgid "Categories"
3477
  msgstr "Categorias"
@@ -3499,7 +3534,7 @@ msgstr ""
3499
  "os intervalos de tempo no sistema."
3500
 
3501
  msgid "Set slot length as service duration"
3502
- msgstr "Definir duração do intervalo de tempo como duração do serviço"
3503
 
3504
  msgid ""
3505
  "Enable this option to make slot length equal to service duration at the Time "
@@ -3512,20 +3547,20 @@ msgid "Default appointment status"
3512
  msgstr "Status padrão do compromisso"
3513
 
3514
  msgid "Select status for newly booked appointments."
3515
- msgstr "Selecione um status para os compromissos recém-reservado."
3516
 
3517
  msgid "Number of days available for booking"
3518
  msgstr "Número de dias disponíveis para reservas"
3519
 
3520
  msgid "Set how far in the future the clients can book appointments."
3521
  msgstr ""
3522
- "Definir o quão longe no futuro os clientes podem reservar compromissos."
3523
 
3524
  msgid "Display available time slots in client's time zone"
3525
  msgstr "Exibir intervalos de tempo disponíveis no fuso horário do cliente"
3526
 
3527
  msgid "The value is taken from client's browser."
3528
- msgstr "O valor "
3529
 
3530
  msgid "Allow staff members to edit their profiles"
3531
  msgstr "Permitir que os funcionários editem os seus perfis"
@@ -3536,8 +3571,8 @@ msgid ""
3536
  "and days off."
3537
  msgstr ""
3538
  "Se esta opção estiver ativada, todos os funcionários que estão associados "
3539
- "com os usuários do WordPress serão capazes de editar seus próprios perfis, "
3540
- "serviços, horário e dias de folga."
3541
 
3542
  msgid "Method to include Bookly JavaScript and CSS files on the page"
3543
  msgstr "Método para incluir o Bookly JavaScript e arquivos CSS na página"
@@ -3556,16 +3591,16 @@ msgstr ""
3556
 
3557
  msgid "Help us improve Bookly by sending anonymous usage stats"
3558
  msgstr ""
3559
- "Ajude-nos a melhorar o Bookly enviando estatísticas de utilização anônimas"
3560
 
3561
  msgid ""
3562
  "Allow the plugin to set a Powered by Bookly notice on the booking widget to "
3563
  "spread information about the plugin. This will allow the team to improve the "
3564
  "product and enhance its functionality"
3565
  msgstr ""
3566
- "Permitir que o plugin exiba a informação Criado por Bookly no widget de "
3567
- "reservas e propague a informação através do plugin. Isto vai ajudar a equipe "
3568
- "a aprimorar o produto e melhorar suas funcionalidades"
3569
 
3570
  msgid "Caching of pages with booking form"
3571
  msgstr "Páginas em cache com formulário de reserva."
@@ -3576,7 +3611,7 @@ msgid ""
3576
  "form."
3577
  msgstr ""
3578
  "Selecione \"Impedir\" se quiser que Bookly evite cache por plugins de cache "
3579
- "de terceiros, adicionando uma constante DONOTCACHEPAGE em páginas com "
3580
  "formulário de reserva."
3581
 
3582
  msgid "Allow"
@@ -3598,71 +3633,71 @@ msgid "Company"
3598
  msgstr "Empresa"
3599
 
3600
  msgid "Business Hours"
3601
- msgstr "Horário comercial"
3602
 
3603
  msgid "Holidays"
3604
  msgstr "Feriados"
3605
 
3606
  msgid "Approve appointment URL (success)"
3607
- msgstr "URL de aprovação do compromisso (sucesso)"
3608
 
3609
  msgid ""
3610
  "Set the URL of a page that is shown to staff after they successfully "
3611
  "approved the appointment."
3612
  msgstr ""
3613
- "Definir a URL de uma página que é exibida para os funcionários depois de "
3614
- "aprovarem o compromisso com êxito."
3615
 
3616
  msgid "Approve appointment URL (denied)"
3617
- msgstr "URL de aprovação do compromisso (negada)"
3618
 
3619
  msgid ""
3620
  "Set the URL of a page that is shown to staff when the approval of "
3621
  "appointment cannot be done (due to capacity, changed status, etc.)."
3622
  msgstr ""
3623
- "Defina a URL de uma página que é exibida para o funcionário quando a "
3624
- "aprovação do compromisso não pode ser feita (por causa da capacidade, status "
3625
- "alterado, etc.)."
3626
 
3627
  msgid "Cancel appointment URL (success)"
3628
- msgstr "URL de cancelamento de compromisso (sucesso)"
3629
 
3630
  msgid ""
3631
  "Set the URL of a page that is shown to clients after they successfully "
3632
  "cancelled their appointment."
3633
  msgstr ""
3634
- "Defina a URL de uma página que é exibida aos clientes após eles cancelarem o "
3635
- "compromisso com êxito."
3636
 
3637
  msgid "Cancel appointment URL (denied)"
3638
- msgstr "URL para cancelamento do compromisso (negado)"
3639
 
3640
  msgid ""
3641
  "Set the URL of a page that is shown to clients when the cancellation of "
3642
  "appointment is not available anymore."
3643
  msgstr ""
3644
- "Defina a URL de uma página que é exibida para aos clientes quando o "
3645
- "cancelamento do compromisso não está mais disponível."
3646
 
3647
  msgid "Reject appointment URL (success)"
3648
- msgstr "URL de compromisso rejeitado (sucesso)"
3649
 
3650
  msgid ""
3651
  "Set the URL of a page that is shown to staff after they successfully "
3652
  "rejected the appointment."
3653
  msgstr ""
3654
- "Definir a URL de uma página exibida para os funcionários depois deles "
3655
- "rejeitarem um compromisso com êxito."
3656
 
3657
  msgid "Reject appointment URL (denied)"
3658
- msgstr "URL de compromisso rejeitado (negado)"
3659
 
3660
  msgid ""
3661
  "Set the URL of a page that is shown to staff when the rejection of "
3662
  "appointment cannot be done (due to changed status, etc.)."
3663
  msgstr ""
3664
- "Definir a URL de uma página exibida para os funcionários quando a rejeição "
3665
- "do compromisso não pode ser feita (devido a status alterado, etc.)."
3666
 
3667
  msgid ""
3668
  "Please note, the business hours below work as a template for all new staff "
@@ -3671,21 +3706,25 @@ msgid ""
3671
  "sure to check the schedule of your staff members if you have some unexpected "
3672
  "behavior of the booking system."
3673
  msgstr ""
3674
- "Por favor, observe que o horário comercial abaixo funciona como um modelo "
3675
- "para todos os novos funcionários. Para renderizar uma lista de intervalos de "
3676
- "tempo disponíveis, o sistema leva em conta apenas a programação dos "
3677
- "funcionários, não o horário comercial da empresa. Certifique-se de verificar "
3678
- "o horário dos seus funcionários se você notar algum comportamento inesperado "
3679
- "do sistema de reserva."
 
 
 
 
3680
 
3681
  msgid "duration of service"
3682
  msgstr "duração do serviço"
3683
 
3684
  msgid "Appointment with one participant"
3685
- msgstr "Compromisso com um participante"
3686
 
3687
  msgid "Appointment with many participants"
3688
- msgstr "Compromisso com muitos participantes"
3689
 
3690
  msgid "Set order of the fields in calendar"
3691
  msgstr "Definir a ordem dos campos no calendário"
@@ -3694,7 +3733,7 @@ msgid "Currency"
3694
  msgstr "Moeda"
3695
 
3696
  msgid "Price format"
3697
- msgstr "Formato de preço"
3698
 
3699
  msgid "Phone field default country"
3700
  msgstr "País padrão do campo de telefone"
@@ -3705,11 +3744,11 @@ msgid ""
3705
  "client."
3706
  msgstr ""
3707
  "Selecione um país padrão para o campo de telefone no passo \"Detalhes\" da "
3708
- "reserva. Você também pode deixar o Bookly determinar o país com base no "
3709
  "endereço IP do cliente."
3710
 
3711
  msgid "Guess country by user's IP address"
3712
- msgstr "Adivinhar país por endereço IP do usuário"
3713
 
3714
  msgid "Default country code"
3715
  msgstr "Código padrão de país"
@@ -3722,25 +3761,25 @@ msgid ""
3722
  "client enters their phone as \"(600) 555-2222\" the resulting phone number "
3723
  "to send the SMS to will be \"+1600555222\"."
3724
  msgstr ""
3725
- "Seus clientes devem ter seus números de telefone em formato internacional, a "
3726
- "fim de receberem mensagens de texto. No entanto, você pode especificar um "
3727
- "código de país padrão que será utilizado como um prefixo para todos os "
3728
- "números de telefone que não começam com \"+\" ou \"00\". Por exemplo, se "
3729
- "você digitar \"1\" como o código do país e um cliente digitar seu telefone "
3730
- "como \"(600) 555-2222\", o número de telefone resultante para enviar o SMS "
3731
- "será \"+1600555222\"."
3732
 
3733
  msgid "Remember personal information in cookies"
3734
- msgstr "Lembrar de informações pessoais em cookies"
3735
 
3736
  msgid ""
3737
  "If this setting is enabled then returning customers will have their personal "
3738
  "information fields filled in at the Details step with the data previously "
3739
  "saved in cookies."
3740
  msgstr ""
3741
- "Se esta configuração estiver ativada, os clientes que retornarem terão seus "
3742
- "campos de informações pessoais preenchidos na etapa Detalhes com os dados "
3743
- "salvos anteriormente nos cookies."
3744
 
3745
  msgid "Allow duplicate customers"
3746
  msgstr "Permitir clientes duplicados"
@@ -3749,8 +3788,8 @@ msgid ""
3749
  "If enabled, a new user will be created if any of the registration data "
3750
  "during the booking is different."
3751
  msgstr ""
3752
- "Se ativado, um novo usuário será criado se quaisquer dados de registo "
3753
- "durante a reserva estiverem diferentes."
3754
 
3755
  msgid "Show confirmation dialog before updating customer's data"
3756
  msgstr ""
@@ -3771,13 +3810,13 @@ msgid ""
3771
  "correct this problem."
3772
  msgstr ""
3773
  "O carrinho do WooCommerce não está configurado. Siga o <a href=\"%s\">"
3774
- "link</a> para corrigir esse problema."
3775
 
3776
  msgid "Services order"
3777
  msgstr "Ordem dos serviços"
3778
 
3779
  msgid "Add service"
3780
- msgstr "Adicionar serviço"
3781
 
3782
  msgid "Quick search services"
3783
  msgstr "Pesquisa rápida serviços"
@@ -3790,12 +3829,12 @@ msgid ""
3790
  "separately for each staff member. Do you want to update it in staff settings "
3791
  "too?"
3792
  msgstr ""
3793
- "Você está prestes a mudar uma definição de serviço que também é configurada "
3794
- "separadamente para cada funcionário. Você quer atualizá-la nas definições "
3795
- "dos funcionários também?"
3796
 
3797
  msgid "Remember my choice"
3798
- msgstr "Lembrar da minha escolha"
3799
 
3800
  msgid "No, update just here in services"
3801
  msgstr "Não, apenas atualizar aqui em serviços"
@@ -3814,32 +3853,40 @@ msgstr "Nenhum funcionário escolhido"
3814
 
3815
  #, php-format
3816
  msgid "This text can be inserted into notifications with %s code."
3817
- msgstr "Este texto pode ser inserido com notificações com o código %s."
3818
 
3819
  msgid "Start and end times of the appointment"
3820
- msgstr "Horas de início e término do compromisso"
3821
 
3822
  msgid ""
3823
  "Allows to set the start and end times for an appointment for services with "
3824
  "the duration of 1 day or longer. This time will be displayed in "
3825
  "notifications to customers, backend calendar and codes for booking form."
3826
  msgstr ""
3827
- "Permite definir os horários de início e término de um compromisso para "
3828
- "serviços com a duração de 1 dia ou mais. Esse horário será exibido nas "
3829
- "notificações para os clientes, no calendário do backend e nos códigos para o "
3830
- "formulário de reserva."
3831
 
3832
  msgid "Slot length as service duration"
3833
- msgstr "Intervalo de tempo igual à duração do serviço."
3834
 
3835
  msgid ""
3836
  "The time interval which is used as a step when building all time slots for "
3837
  "the service at the Time step. The setting overrides global settings in "
3838
- "Settings General. Use Default to apply global settings."
3839
  msgstr ""
3840
- "A duração usada como etapa na construção de todos intervalos de tempo do "
3841
- "serviço na etapa Time. A definição substitui as definições globais en "
3842
- "Settings General. Use Default para aplicar as definições globais."
 
 
 
 
 
 
 
 
3843
 
3844
  msgid "You must select at least one repeat option for recurring services."
3845
  msgstr ""
@@ -3855,6 +3902,29 @@ msgid_plural "%d services"
3855
  msgstr[0] "%d serviço"
3856
  msgstr[1] "%d serviços"
3857
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3858
  msgid "Welcome to Bookly and thank you for your choice!"
3859
  msgstr "Bem-vindo ao Bookly e obrigado pela sua escolha!"
3860
 
@@ -3864,38 +3934,38 @@ msgid ""
3864
  "Bookly your clients can see your availability, pick the services you provide,"
3865
  " book them online and much more."
3866
  msgstr ""
3867
- "O Bookly simplificará o processo de reservas para seus clientes. Este plugin "
3868
- "cria outro ponto de contato para converter seus visitantes em clientes. Com "
3869
- "o Bookly, seus clientes podem ver sua disponibilidade, escolher o serviços "
3870
- "que você fornece, reservá-los online e muito mais."
3871
 
3872
  msgid ""
3873
  "To start using Bookly, you need to set up the services you provide and "
3874
  "specify the staff members who will provide those services."
3875
  msgstr ""
3876
- "Para começar a usar o Bookly, você precisa definir os serviços que você "
3877
- "fornece e especificar os funcionários que fornecerão esses serviços."
3878
 
3879
  msgid ""
3880
  "Add a staff member (you can add only one service provider with a free "
3881
  "version of Bookly)."
3882
  msgstr ""
3883
- "Adicionar um funcionário (você pode adicionar somente um prestador de "
3884
  "serviço com a versão gratuita do Bookly)."
3885
 
3886
  msgid ""
3887
  "Add services you provide (up to five with a free version of Bookly) and "
3888
  "assign them to a staff member."
3889
  msgstr ""
3890
- "Adicionar os serviços que você fornece (até cinco com a versão gratuita do "
3891
- "Bookly) e atribuí-los a um funcionário."
3892
 
3893
  msgid ""
3894
  "Go to Posts/Pages and click on the Add Bookly booking form button in the "
3895
  "page editor to publish the booking form on your website."
3896
  msgstr ""
3897
- "Vá para Posts/Páginas e clique no botão Adicionar formulário de reserva "
3898
- "Bookly no editor de págia para publicar o formulário no seu website."
3899
 
3900
  #, php-format
3901
  msgid ""
@@ -3906,18 +3976,18 @@ msgid ""
3906
  "install other add-ons for Bookly, and includes six months of customer "
3907
  "support."
3908
  msgstr ""
3909
- "O Bookly pode impulsionar as suas vendas e crescer junto com o seu negócio. "
3910
- "Tenha acesso a mais opções e remova os limites ao atualizar para a versão "
3911
- "paga com o <a href=\"%s\" target=\"_blank\">add-on Bookly Pro</a>, que "
3912
- "permite que você use um enorme número de opções adicionais e configurações "
3913
- "para os serviços de reservas, instalar outros add-ons para o Bookly e ainda "
3914
- "inclui seis meses de suporte ao cliente."
3915
 
3916
  msgid "Add Staff Members"
3917
- msgstr "Adicionar funcionários"
3918
 
3919
  msgid "Add Services"
3920
- msgstr "Adicionar serviços"
3921
 
3922
  msgid "Try Bookly Pro add-on"
3923
  msgstr "Experimente o add-on Bookly Pro"
@@ -3929,13 +3999,13 @@ msgid "See details for more items"
3929
  msgstr "Ver detalhes para mais itens"
3930
 
3931
  msgid "Edit custom CSS"
3932
- msgstr "Editar CSS personalizado"
3933
 
3934
  msgid "Set up your custom CSS styles"
3935
- msgstr "Configure seus estilos CSS personalizados"
3936
 
3937
  msgid "Show form progress tracker"
3938
- msgstr "Ver processo de progresso no formulário"
3939
 
3940
  msgid "Align buttons to the left"
3941
  msgstr "Alinhar os botões à esquerda"
@@ -3952,9 +4022,9 @@ msgid ""
3952
  "like to keep or remove from the booking form. Click Insert, and the booking "
3953
  "form will be added to the page."
3954
  msgstr ""
3955
- "Abra a página em que você deseja adicionar o formulário de reserva no modo "
3956
- "de edição de página e clique no botão \"Adicionar formulário de reserva "
3957
- "Bookly\". Escolha quais campos você quer manter ou remover do formulário de "
3958
  "reserva. Clique em Inserir e o formulário de reserva será adicionado à "
3959
  "página."
3960
 
@@ -3965,7 +4035,7 @@ msgid "Make selecting employee required"
3965
  msgstr "Tornar a seleção dos empregados obrigatória"
3966
 
3967
  msgid "Show service price next to employee name"
3968
- msgstr "Mostrar preço do serviço ao lado do nome do empregado"
3969
 
3970
  msgid "Show service duration next to service name"
3971
  msgstr "Mostrar a duração do serviço ao lado do nome do serviço"
@@ -3974,10 +4044,10 @@ msgid "Show calendar"
3974
  msgstr "Mostrar calendário"
3975
 
3976
  msgid "Show blocked timeslots"
3977
- msgstr "Mostrar intervalos de tempo bloqueados"
3978
 
3979
  msgid "Show each day in one column"
3980
- msgstr "Mostrar cada dia em uma coluna"
3981
 
3982
  msgid "Phone field required"
3983
  msgstr "O campo de telefone é necessário"
@@ -3993,7 +4063,8 @@ msgstr "Exibir botão de Login"
3993
 
3994
  msgid "Do not forget to update your email and SMS codes for customer names"
3995
  msgstr ""
3996
- "Não esqueça de atualizar seu e-mail e códigos SMS para os nomes dos clientes"
 
3997
 
3998
  msgid "Use first and last name instead of full name"
3999
  msgstr "Use o primeiro e o último nome ao invés do nome completo"
@@ -4002,7 +4073,7 @@ msgid "Email confirmation field"
4002
  msgstr "Campo de confirmação de e-mail"
4003
 
4004
  msgid "Show notes field"
4005
- msgstr "Exibir campo de observações"
4006
 
4007
  msgid ""
4008
  "The booking form on this step may have different set or states of its "
@@ -4011,7 +4082,7 @@ msgid ""
4011
  "and click on the underlined text to edit."
4012
  msgstr ""
4013
  "O formulário de reserva nesta etapa pode ter diferentes conjuntos ou estados "
4014
- "de seus elementos. Depende de várias condições, tais como add-ons "
4015
  "instalados/ativados, configuração de definições ou escolhas feitas nos "
4016
  "passos anteriores. Selecione a opção e clique no texto sublinhado para "
4017
  "editar."
@@ -4024,48 +4095,48 @@ msgstr "Visualização do formulário caso o número das reservas exceda o limit
4024
 
4025
  msgid "Form view in case of payment has been accepted for processing"
4026
  msgstr ""
4027
- "Visualização do formulário caso o pagamento seja aceito para processamento"
4028
 
4029
  msgid "Visible when the chosen time slot has been already booked"
4030
  msgstr "Visível quando o intervalo de tempo escolhido já foi reservado"
4031
 
4032
  msgid "Visible to non-logged in customers only"
4033
- msgstr "Visível apenas para clientes anônimos"
4034
 
4035
  msgid "Previous month"
4036
  msgstr "Mês anterior"
4037
 
4038
  msgid "Your custom CSS was saved. Please refresh the page to see your changes."
4039
  msgstr ""
4040
- "Seu CSS personalizado foi guardado. Atualize a página para ver suas "
4041
  "alterações."
4042
 
4043
  msgid "New customer"
4044
  msgstr "Novo cliente"
4045
 
4046
  msgid "Merge with"
4047
- msgstr "Mesclar com"
4048
 
4049
  msgid "Select for merge"
4050
- msgstr "Selecionar para mesclar"
4051
 
4052
  msgid "Merge list"
4053
- msgstr "Mesclar lista"
4054
 
4055
  msgid "Merge customers"
4056
- msgstr "Mesclar clientes"
4057
 
4058
  msgid ""
4059
  "You are about to merge customers from the merge list with the selected one. "
4060
  "This will result in losing the merged customers and moving all their "
4061
  "appointments to the selected customer. Are you sure you want to continue?"
4062
  msgstr ""
4063
- "Você está prestes a mesclar clientes da lista de clientes com o selecionado. "
4064
- "O resultado disso será perder os clientes mesclados e mover todos seus "
4065
- "compromissos para o cliente selecionado. Você tem certeza que quer continuar?"
4066
 
4067
  msgid "Merge"
4068
- msgstr "Mesclar"
4069
 
4070
  msgid "No customers found."
4071
  msgstr "Nenhum cliente encontrado."
@@ -4128,14 +4199,13 @@ msgstr "Tudo certo."
4128
  msgid ""
4129
  "See the number of appointments and total revenue for the selected period"
4130
  msgstr ""
4131
- "Consultar o número de compromissos e a receita total para o período "
4132
- "selecionado"
4133
 
4134
  msgid "end date of appointment"
4135
- msgstr "data final do compromisso"
4136
 
4137
  msgid "end time of appointment"
4138
- msgstr "hora final do compromisso"
4139
 
4140
  msgid "cart information"
4141
  msgstr "informações do carrinho"
@@ -4150,8 +4220,7 @@ msgid "time zone of client"
4150
  msgstr "fuso horário do cliente"
4151
 
4152
  msgid "URL of approve appointment link (to use inside <a> tag)"
4153
- msgstr ""
4154
- "URL para o link da aprovação de compromisso (para usar dentro da tag <a>)"
4155
 
4156
  msgid ""
4157
  "URL of cancel appointment link with confirmation (to use inside <a> tag)"
@@ -4160,19 +4229,19 @@ msgstr ""
4160
 
4161
  msgid "URL of cancel appointment link (to use inside <a> tag)"
4162
  msgstr ""
4163
- "URL para o link de cancelamento de compromisso (para usar dentro da tag <a>)"
4164
 
4165
  msgid "reason you mentioned while deleting appointment"
4166
- msgstr "motivo que você mencionou durante a exclusão do compromisso"
4167
 
4168
  msgid ""
4169
  "URL for adding event to client's Google Calendar (to use inside <a> tag)"
4170
  msgstr ""
4171
- "URL para a adição de eventos para o Google Agenda do cliente (para usar "
4172
  "dentro da tag <a>)"
4173
 
4174
  msgid "URL of reject appointment link (to use inside <a> tag)"
4175
- msgstr "URL do link do compromisso rejeitado (usar dentro de uma tag <a>)"
4176
 
4177
  msgid "payment status"
4178
  msgstr "status de pagamento"
@@ -4187,10 +4256,10 @@ msgid "date of next day"
4187
  msgstr "data do dia seguinte"
4188
 
4189
  msgid "customer new password"
4190
- msgstr "nova senha do cliente"
4191
 
4192
  msgid "customer new username"
4193
- msgstr "novo nome de usuário do cliente"
4194
 
4195
  msgid "site address"
4196
  msgstr "endereço do site"
@@ -4199,7 +4268,7 @@ msgid "company logo"
4199
  msgstr "logotipo da empresa"
4200
 
4201
  msgid "cancel appointment link"
4202
- msgstr "link para cancelamento de compromisso"
4203
 
4204
  msgid "photo of staff"
4205
  msgstr "foto do funcionário"
@@ -4208,21 +4277,20 @@ msgid "General settings"
4208
  msgstr "Configurações Gerais"
4209
 
4210
  msgid "Scheduled notifications retry period"
4211
- msgstr "Período de nova tentativa de notificações agendadas"
4212
 
4213
  msgid ""
4214
  "Set period of time when system will attempt to deliver notification to user. "
4215
  "Notification will be discarded after period expiration."
4216
  msgstr ""
4217
- "Definir um período de tempo para quando o sistema vai tentar entregar a "
4218
- "notificação ao usuário. A notificação será descartada depois do período de "
4219
- "expiração."
4220
 
4221
  msgid "Save settings"
4222
  msgstr "Guardar definições"
4223
 
4224
  msgid "Test email notifications"
4225
- msgstr "Teste de notificações por email"
4226
 
4227
  msgid "To email"
4228
  msgstr "Para o e-mail"
@@ -4237,7 +4305,7 @@ msgid "Send"
4237
  msgstr "Enviar"
4238
 
4239
  msgid "Email notifications"
4240
- msgstr "Notificações por email"
4241
 
4242
  msgid "Sender name"
4243
  msgstr "Nome do remetente"
@@ -4253,7 +4321,7 @@ msgid ""
4253
  "use Text mode of rich-text editors below. On some servers only text emails "
4254
  "are sent successfully."
4255
  msgstr ""
4256
- "HTML permite formatação, cores, fontes, posicionamento, etc. Com Texto você "
4257
  "deve usar o modo Texto de editores rich-text abaixo. Em alguns servidores "
4258
  "apenas e-mails de texto são enviados com sucesso."
4259
 
@@ -4268,8 +4336,8 @@ msgid ""
4268
  "a sender email address for notifications sent to staff members and "
4269
  "administrators."
4270
  msgstr ""
4271
- "Se essa opção for ativada, o endereço de e-mail do cliente é usado como um "
4272
- "endereço de e-mail do remetente para notificações enviadas para os "
4273
  "funcionários e administradores."
4274
 
4275
  msgid "Sent successfully."
@@ -4286,12 +4354,12 @@ msgid ""
4286
  "you choose to hide this field, please be sure to select a default value for "
4287
  "it"
4288
  msgstr ""
4289
- "Lembre-se que um valor neste campo é obrigatório na interface. Se você optar "
4290
- "por ocultar este campo, por favor, certifique-se de selecionar um valor "
4291
- "padrão para ele"
4292
 
4293
  msgid "Default value for employee select"
4294
- msgstr "Valor padrão do empregado escolhido"
4295
 
4296
  msgid "Week days"
4297
  msgstr "Dias da semana"
@@ -4300,47 +4368,11 @@ msgid "Time range"
4300
  msgstr "Intervalo de tempo"
4301
 
4302
  msgid "Add Bookly booking form"
4303
- msgstr "Adicionar formulário de reserva no Bookly "
4304
 
4305
  msgid "Insert Appointment Booking Form"
4306
  msgstr "Insira formulário de reserva de compromissos"
4307
 
4308
- msgid ""
4309
- "Could you please do me a BIG favor and give it a 5-star rating on WordPress?"
4310
- msgstr ""
4311
- "Pode fazer-nos um GRANDE favor e dar-nos uma classificação de 5 estrelas no "
4312
- "WordPress ?"
4313
-
4314
- msgid "Just to help us spread the word and boost our motivation."
4315
- msgstr "É só para passar a palavra e estimular a sua motivação."
4316
-
4317
- msgid "Ok, you deserve it"
4318
- msgstr "OK, você o mereceu"
4319
-
4320
- msgid "Nope, maybe later"
4321
- msgstr "Não, talvez posteriormente"
4322
-
4323
- msgid "Thank you for the {star} star rating!!!"
4324
- msgstr "Obrigado pela classificação de {star} estrelas"
4325
-
4326
- msgid "You asked to remind you"
4327
- msgstr "Você pediu para relembrar"
4328
-
4329
- msgid "Congratulations!!!"
4330
- msgstr "Parabéns !!!!"
4331
-
4332
- msgid "You just made the <b>10th Sale</b> using Bookly Plugin!"
4333
- msgstr "Acabou de fazer sua 10.a venda usando o plugin Bookly !"
4334
-
4335
- msgid "You just made the <b>100th Sale</b> using Bookly Plugin!"
4336
- msgstr "Acabou de fazer sua 100.a venda usando o plugin Bookly !"
4337
-
4338
- msgid "You just made the <b>1000th Sale</b> using Bookly Plugin!"
4339
- msgstr "Acabou de fazer sua 1000.a venda usando o plugin Bookly !"
4340
-
4341
- msgid "You just made the <b>10000th Sale</b> using Bookly Plugin!"
4342
- msgstr "Acabou de fazer sua 10000.a venda usando o plugin Bookly !"
4343
-
4344
  msgid "Send tax information"
4345
  msgstr "Enviar informações de tributação"
4346
 
@@ -4358,9 +4390,9 @@ msgid ""
4358
  "gateway used. Specify a percentage or fixed amount. Use minus (\"-\") sign "
4359
  "for decrease/discount."
4360
  msgstr ""
4361
- "Essa configuração afeta o custo da reserva de acordo com o gateway de "
4362
- "pagamento usado. Especifique uma porcentagem ou quantia fixa. Use sinal de "
4363
- "menos (\"-\") para diminuir / desconto."
4364
 
4365
  msgid "Enter a value"
4366
  msgstr "Digite um valor"
@@ -4369,7 +4401,7 @@ msgid "Add"
4369
  msgstr "Adicionar"
4370
 
4371
  msgid "Reset"
4372
- msgstr "Resetar"
4373
 
4374
  msgid "Notification settings"
4375
  msgstr "Definições de notificações"
@@ -4382,7 +4414,7 @@ msgid ""
4382
  "disabled and no messages are sent until you activate the notification."
4383
  msgstr ""
4384
  "Escolha se a notificação está ativada e as mensagens são enviadas ou se está "
4385
- "desativada e nenhuma mensagem será enviada até que você ative a notificação."
4386
 
4387
  msgid "Recipients"
4388
  msgstr "Destinatários"
@@ -4409,8 +4441,8 @@ msgid ""
4409
  "This notification is sent once for a booking made by a customer and includes "
4410
  "all cart items."
4411
  msgstr ""
4412
- "Esta notificação é enviada uma vez para uma reserva feita por um cliente "
4413
- "e inclui todos os itens do carrinho."
4414
 
4415
  msgid "Save notification"
4416
  msgstr "Salvar notificação"
@@ -4419,13 +4451,13 @@ msgid "Codes"
4419
  msgstr "Códigos"
4420
 
4421
  msgid "Appointment status"
4422
- msgstr "Status compromisso"
4423
 
4424
  msgid ""
4425
  "Select what status an appointment should have for the notification to be "
4426
  "sent."
4427
  msgstr ""
4428
- "Selecione o status que um compromisso deve ter para que a notificação seja "
4429
  "enviada."
4430
 
4431
  msgid ""
@@ -4465,29 +4497,29 @@ msgid "New notification"
4465
  msgstr "Nova notificação"
4466
 
4467
  msgid "Select from WP users"
4468
- msgstr "Selecionar a partir dos usuários WP"
4469
 
4470
  msgid ""
4471
  "If this staff member requires separate login to access personal calendar, a "
4472
  "regular WP user needs to be created for this purpose."
4473
  msgstr ""
4474
- "Se este funcionário solicitar um login separado para acessar o calendário "
4475
- "pessoal, um usuário normal do WP precisa ser criado para este propósito."
4476
 
4477
  msgid ""
4478
  "User with \"Administrator\" role will have access to calendars and settings "
4479
  "of all staff members, user with another role will have access only to "
4480
  "personal calendar and settings."
4481
  msgstr ""
4482
- "Um usuário com a função de \"Administrador\" terá acesso aos calendários e "
4483
- "definições de todos os funcionários. Um usuário com outra função terá acesso "
4484
- "apenas ao calendário pessoal e suas definições."
4485
 
4486
  msgid ""
4487
  "If you leave this field blank, this staff member will not be able to access "
4488
  "personal calendar using WP backend."
4489
  msgstr ""
4490
- "Se deixar este campo vazio, o funcionário não será capaz de acessar o "
4491
  "calendário pessoal através da área de administração do WP."
4492
 
4493
  msgid "Archive"
@@ -4504,7 +4536,7 @@ msgid "No services found. Please add services."
4504
  msgstr "Nenhum serviço encontrado. Por favor adicione serviços."
4505
 
4506
  msgid "Add Service"
4507
- msgstr "Adicionar Serviço"
4508
 
4509
  msgid "Days Off"
4510
  msgstr "Dias de folga"
@@ -4513,7 +4545,7 @@ msgid "The date has already passed."
4513
  msgstr "A data já passou."
4514
 
4515
  msgid "Create staff"
4516
- msgstr "Criar equipe"
4517
 
4518
  msgid "Edit staff"
4519
  msgstr "Editar funcionário"
@@ -4525,10 +4557,10 @@ msgid "Error adding the break interval"
4525
  msgstr "Erro ao adicionar o intervalo da folga"
4526
 
4527
  msgid "Adjust the order of staff members in your booking form"
4528
- msgstr "Definir a ordem dos funcionários no formulário de reservas"
4529
 
4530
  msgid "Complete payment"
4531
- msgstr "Completar o pagamento"
4532
 
4533
  msgid "Bind payment"
4534
  msgstr "Vincular pagametno"
@@ -4546,7 +4578,7 @@ msgid "Selected period doesn't match service duration"
4546
  msgstr "A duração do período selecionado não coincide com a duração do serviço"
4547
 
4548
  msgid "The selected period is occupied by another appointment"
4549
- msgstr "O período selecionado está ocupado por outro compromisso"
4550
 
4551
  msgid "Selected period doesn't match provider's schedule"
4552
  msgstr "O período selecionado não é igual ao horário do fornecedor"
@@ -4555,10 +4587,10 @@ msgid "Selected period doesn't match service schedule"
4555
  msgstr "O período selecionado não é igual ao horário do serviço"
4556
 
4557
  msgid "Booking exceeds the working hours limit for staff member"
4558
- msgstr "As reservas excedem o limite de horas trabalhadas dos funcionários."
4559
 
4560
  msgid "Booking exceeds your working hours limit"
4561
- msgstr "As reservas excedem o limite de suas horas trabalhadas"
4562
 
4563
  msgid "Selected / maximum"
4564
  msgstr "Selecionado / máximo"
@@ -4585,7 +4617,7 @@ msgid "Internal note"
4585
  msgstr "Observação interna"
4586
 
4587
  msgid "Send if new or status changed"
4588
- msgstr "Enviar se for novo ou status alterado"
4589
 
4590
  msgid "Send as for new"
4591
  msgstr "Enviar como novo"
@@ -4598,16 +4630,15 @@ msgid ""
4598
  "You can also send notifications as if all customers were added as new by "
4599
  "selecting \"Send as for new\"."
4600
  msgstr ""
4601
- "Se adicionou um novo cliente a este compromisso ou alterou o status do "
4602
- "compromisso para um cliente existente, e para esses registros deseja que o e-"
4603
- "mail correspondente ou notificações SMS sejam enviadas para seus "
4604
- "destinatários, selecione a opção \"Enviar se novo ou status alterado\" antes "
4605
- "de clicar em Enviar. Também pode enviar notificações como se todos os "
4606
- "clientes fossem adicionados como novos clientes selecionando \"Enviar como "
4607
- "para novos\"."
4608
 
4609
  msgid "Edit appointment"
4610
- msgstr "Editar compromisso"
4611
 
4612
  msgid "Start time must not be empty"
4613
  msgstr "Hora de início não pode estar vazia"
@@ -4623,7 +4654,7 @@ msgid "The number of customers should not be more than %d"
4623
  msgstr "O número de clientes não deve ser maior que %d"
4624
 
4625
  msgid "Could not save appointment in database."
4626
- msgstr "Não foi possível guardar o compromisso no banco de dados."
4627
 
4628
  #, php-format
4629
  msgid "%s has reached the limit of bookings for this service"
@@ -4633,46 +4664,45 @@ msgid ""
4633
  "You are going to delete appointment(s). Notifications will be sent in "
4634
  "accordance with your settings."
4635
  msgstr ""
4636
- "Você esta para deletar o(s) compromisso(s). Notificações serão enviadas de "
4637
- "acordo com suas configurações."
4638
 
4639
  msgid "New Customer"
4640
  msgstr "Novo Cliente"
4641
 
4642
  msgid "Delete customers"
4643
- msgstr "Deletar clientes"
4644
 
4645
  msgid ""
4646
  "You are going to delete customers with existing bookings. Notifications will "
4647
  "not be sent to them."
4648
  msgstr ""
4649
- "Você vai deletar clientes com reservas existentes. As notificações não serão "
4650
- "enviadas para eles."
4651
 
4652
  msgid "You are going to delete customers, are you sure?"
4653
- msgstr "Você vai deletar clientes, tem certeza?"
4654
 
4655
  msgid "Delete customers with existing bookings"
4656
- msgstr "Delatar clientes com reservas existentes"
4657
 
4658
  msgid "Delete customers' WordPress accounts if there are any"
4659
- msgstr "Delatar as contas WordPress dos clientes, se houver"
4660
 
4661
  msgid "Deleted Customer"
4662
- msgstr "Cliente deletado"
4663
 
4664
  msgid ""
4665
  "You are going to delete item which is involved in upcoming appointments. All "
4666
  "related appointments will be deleted. Please double check and edit "
4667
  "appointments before this item deletion if needed."
4668
  msgstr ""
4669
- "Você está para deletar um item que está envolvido em compromissos futuros. "
4670
- "Todos os compromissos relacionados serão deletados. Por favor, cheque "
4671
- "novamente e edite os compromissos antes de deletar este item, caso "
4672
- "necessário."
4673
 
4674
  msgid "Edit appointments"
4675
- msgstr "Editar compromissos"
4676
 
4677
  msgid "All unsaved changes will be lost."
4678
  msgstr "Todas as mudanças não guardadas serão perdidas."
@@ -4681,10 +4711,10 @@ msgid "Don't save"
4681
  msgstr "Não guardar"
4682
 
4683
  msgid "Create service"
4684
- msgstr "Criar serviço"
4685
 
4686
  msgid "Edit service"
4687
- msgstr "Editar serviço"
4688
 
4689
  msgid "Advanced"
4690
  msgstr "Avançado"
@@ -4693,10 +4723,10 @@ msgid "Adjust the order of services in your booking form"
4693
  msgstr "Definir a ordem dos serviços no formulário de reservas"
4694
 
4695
  msgid "Add category"
4696
- msgstr "Adicionar categoria"
4697
 
4698
  msgid "Adjust the order of categories in your booking form"
4699
- msgstr "Definir a ordem das categorias no formulário de reservas"
4700
 
4701
  msgid "Table settings"
4702
  msgstr "Configurações da tabela"
@@ -4713,6 +4743,116 @@ msgstr "Notificação de novo email"
4713
  msgid "Edit email notification"
4714
  msgstr "Editar notificação de email"
4715
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4716
  msgid "total quantity of appointments in cart"
4717
  msgstr "quantidade total de compromissos no carrinho"
4718
 
@@ -4722,12 +4862,48 @@ msgstr "formulário de login"
4722
  msgid "total price of booking"
4723
  msgstr "preço total da reserva"
4724
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4725
  msgid ""
4726
  "To help us improve Bookly, the plugin anonymously collects usage information."
4727
  " You can opt out of sharing the information in Settings > General."
4728
  msgstr ""
4729
  "Para nos ajudar a aprimorar o Bookly, o plugin coleta informações de uso "
4730
- "anonimamente. Você pode optar por não compartilhar as informações em "
4731
  "Configurações > Geral."
4732
 
4733
  msgid ""
@@ -4737,12 +4913,12 @@ msgstr ""
4737
  "Permitir que o plugin colete informações de uso anonimamente para ajudar a "
4738
  "equipe Bookly a aprimorar o produto."
4739
 
4740
- msgid "Disagree"
4741
- msgstr "Discordo"
4742
-
4743
  msgid "Agree"
4744
  msgstr "Concordo"
4745
 
 
 
 
4746
  #, php-format
4747
  msgid ""
4748
  "<b>Bookly Lite rebrands into Bookly with more features available.</b><br/>"
@@ -4751,11 +4927,40 @@ msgid ""
4751
  "free Bookly. To learn more about the major Bookly update, check our <a "
4752
  "href=\"%s\" target=\"_blank\">blog post</a>."
4753
  msgstr ""
4754
- "<b>O Bookly Lite se reformula no Bookly com mais opções disponíveis.</b><br/>"
4755
- "<br/>Nós mudamos a arquitetura do Bookly Lite e do Bookly para otimizar o "
4756
  "desenvolvimento de ambas as versões do plugin e adicionar mais opções ao "
4757
  "novo Bookly gratuito. Para saber mais sobre essa grande atualização do "
4758
- "Bookly, confira no nosso <a href=\"%s\" target=\"_blank\">post do blog</a>."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4759
 
4760
  msgid "This function is not available in the Bookly."
4761
  msgstr "Esta função não está disponível no Bookly."
@@ -4764,13 +4969,13 @@ msgid ""
4764
  "To get access to all Bookly features, lifetime free updates and 24/7 support,"
4765
  " please upgrade to the Pro version of Bookly.<br>For more information visit"
4766
  msgstr ""
4767
- "Para obter acesso a todas as opções do Bookly, atualizações vitalícias e "
4768
- "suporte 24/7, por favor, faça o upgrade para a versão Pro do Bookly. <br>"
4769
- "Para mais informaçoões visite"
4770
 
4771
  msgid "Subscribe to monthly emails about Bookly improvements and new releases."
4772
  msgstr ""
4773
- "Inscrever-se para e-mails mensais sobre melhorias no Bookly e novos "
4774
  "lançamentos."
4775
 
4776
  msgid ""
@@ -4778,38 +4983,38 @@ msgid ""
4778
  "spread information about the plugin. This will allow the team to improve the "
4779
  "product and enhance its functionality."
4780
  msgstr ""
4781
- "Permitir que o plugin exiba a informação Criado por Bookly no widget de "
4782
- "reservas e propague a informação através do plugin. Isto vai ajudar a equipe "
4783
- "a aprimorar o produto e melhorar suas funcionalidades"
4784
 
4785
  msgid ""
4786
  "How likely is it that you would recommend Bookly to a friend or colleague?"
4787
- msgstr "Quais as chances de você recomendar o Bookly a um amigo ou colega?"
4788
 
4789
  msgid "What do you think should be improved?"
4790
- msgstr "O que você acha que deveria ser melhorado?"
4791
 
4792
  msgid "Please enter your email (optional)"
4793
- msgstr "Digite seu e-mail (opcional)"
4794
 
4795
  msgid "Please, check your email to confirm the subscription. Thank you!"
4796
  msgstr ""
4797
  "Por favor, verifique seu e-mail para confirmar a subscrição. Obrigado !"
4798
 
4799
  msgid "Given email address is already subscribed, thank you!"
4800
- msgstr "O endereço e-amil entrado foi registrado. Obrigado ! "
4801
 
4802
  msgid "This email address is not valid."
4803
- msgstr "endereço e-mail inválido."
4804
 
4805
  msgid "Revenue"
4806
  msgstr "Receita"
4807
 
4808
  msgid "Approved appointments"
4809
- msgstr "Compromissos aprovados"
4810
 
4811
  msgid "Pending appointments"
4812
- msgstr "Compromissos pendentes"
4813
 
4814
  msgid "All fields marked with an asterisk (*) are required."
4815
  msgstr "Todos os campos marcados com um asterisco (*) são obrigatórios."
@@ -4835,8 +5040,8 @@ msgid ""
4835
  "most suitable configuration according to your business needs."
4836
  msgstr ""
4837
  "A demonstração é uma versão do Bookly Pro com todos os add-ons instalados, "
4838
- "para que você possa experimentar todos os recursos e capacidades do sistema "
4839
- "e, em seguida, escolher a configuração mais adequada de acordo com as "
4840
  "necessidades do seu negócio."
4841
 
4842
  msgid "don't show this notification again"
@@ -4858,7 +5063,7 @@ msgid "Leave us a message"
4858
  msgstr "Deixe uma mensagem"
4859
 
4860
  msgid "Your name"
4861
- msgstr "Seu nome"
4862
 
4863
  msgid "Email address"
4864
  msgstr "Endereço de e-mail"
@@ -4873,15 +5078,15 @@ msgid ""
4873
  "In the Feature Requests section of our Community, you can make suggestions "
4874
  "about what you'd like to see in our future releases."
4875
  msgstr ""
4876
- "Na secçãio Pedido de Funcionalidades da nossa comunidade, pode fazer "
4877
- "sugestões sobre o que gostaria ver nos nossos próximos lançamentos. "
4878
 
4879
  msgid ""
4880
  "Before you post, please check if the same suggestion has already been made. "
4881
  "If so, vote for ideas you like and add a comment with the details about your "
4882
  "situation."
4883
  msgstr ""
4884
- "Antes de postar, por favor verifique se uma sugestão equivalente já foi "
4885
  "feita. Se for o caso, vote pelas ideias que gosta mais, e faça comentários "
4886
  "com explicações
8
  "Language: pt_PT\n"
9
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
10
  "Report-Msgid-Bugs-To: \n"
11
+ "POT-Creation-Date: 2020-06-05 06:59+0000\n"
12
+ "PO-Revision-Date: 2020-06-05 07:02+0000\n"
13
+ "Last-Translator: Isabel Andrade <estgf_nemo@hotmail.com>\n"
14
  "Language-Team: Portuguese (Portugal)\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
16
 
17
  msgid "Invoice #{invoice_number} for your appointment"
18
+ msgstr "Fatura #{invoice_number) da sua marcação"
19
 
20
  msgid ""
21
  "Dear {client_name}.\n"
30
  msgstr ""
31
  "Prezado {nome_do_cliente}.\n"
32
  "\n"
33
+ "Em anexo encontra-se a fatura #{número_da fatura} para a sua marcação.\n"
34
  "\n"
35
  "Obrigado por escolher a nossa empresa.\n"
36
  "\n"
49
  msgstr ""
50
  "Olá,\n"
51
  "\n"
52
+ "Tem uma nova fatura #{número_da fatura} para um compromisso\n"
53
  "marcado por {primeiro_nome_do cliente} {sobrenome_do cliente}.\n"
54
+ "Por favor, faça o download da fatura aqui: {link_da fatura}"
55
 
56
  msgid "BILL TO"
57
  msgstr "CONTA PARA"
106
  msgstr "Definições guardadas."
107
 
108
  msgid "Download invoices"
109
+ msgstr "Faça o download das faturas"
110
 
111
  msgid "invoice creation date"
112
  msgstr "Data de criação da fatura"
158
  msgstr "Subtotal"
159
 
160
  msgid "Coupon discount"
161
+ msgstr "Cupão de desconto"
162
 
163
  msgid "Group discount"
164
+ msgstr "Desconto de grupo"
165
 
166
  msgid "Total"
167
  msgstr "Total"
170
  msgstr "Pago"
171
 
172
  msgid "Due"
173
+ msgstr "Vencido"
174
 
175
  msgid "Discount"
176
  msgstr "Desconto"
177
 
178
  msgid "Outlook Calendar event"
179
+ msgstr "Evento Calendário do Outlook"
180
 
181
  msgid "Name"
182
  msgstr "Nome"
188
  msgstr "Telefone"
189
 
190
  msgid "Outlook Calendar integration"
191
+ msgstr "Integração do Calendário do Outlook"
192
 
193
  msgid "Connect"
194
  msgstr "Conectar"
196
  #, php-format
197
  msgid "Please configure Outlook Calendar <a href=\"%s\">settings</a> first"
198
  msgstr ""
199
+ "Por favor, configure o Calendário do Outlook <a href=\"%s\">configurações</a>"
200
+ " primeiro"
201
 
202
  msgid "Connected"
203
  msgstr "Conectado"
206
  msgstr "desconectar"
207
 
208
  msgid "Synchronize staff member appointments with Outlook Calendar."
209
+ msgstr ""
210
+ "Sincronizar os compromissos do membro da equipa com o Calendário do Outlook."
211
 
212
  msgid "Calendar"
213
  msgstr "Calendário"
214
 
215
  msgid "-- Select calendar --"
216
+ msgstr "-- Selecionar o calendário --"
217
 
218
  msgid ""
219
  "When you connect a calendar all future and past events will be synchronized "
220
  "according to the selected synchronization mode. This may take a few minutes. "
221
  "Please wait."
222
  msgstr ""
223
+ "Quando conecta um calendário, todos os eventos passados e futuros serão "
224
+ "sincronizados de acordo com o modo de sincronização selecionado. Isto pode "
225
+ "demorar alguns minutos. Por favor, aguarde."
226
 
227
  msgid "Can't change calendar for archived staff"
228
+ msgstr "Impossível mudar o calendário para os funcionários arquivados"
229
 
230
  msgid "Instructions"
231
  msgstr "Instruções"
235
  "not work with your website if there is no valid SSL certificate installed on "
236
  "your web server."
237
  msgstr ""
238
+ "Importante: O seu site deve usar <b>HTTPS</b>. A API do Calendário do "
239
+ "Outlook não funcionará com o seu site se não houver um certificado SSL "
240
+ "válido instalado no seu servidor web."
241
 
242
  msgid "To find your Application ID and Application Secret, do the following:"
243
  msgstr ""
244
+ "Para encontrar o ID da Aplicação e a Aplicação Secret, faça o seguinte:"
 
245
 
246
  #, php-format
247
  msgid ""
248
  "Sign in to the <a href=\"%s\" target=\"_blank\">Azure portal</a> using "
249
  "either a work or school account or a personal Microsoft account."
250
  msgstr ""
251
+ "Faça login no <a href=\"%s\" target=\"_blank\">portal Azure</a> usando uma "
252
  "conta profissional ou educacional, ou uma conta pessoal Microsoft."
253
 
254
  msgid ""
256
  "account in the top right corner, and set your portal session to the Azure AD "
257
  "tenant that you want."
258
  msgstr ""
259
+ "Se a sua conta tiver acesso a mais do que um inquilino, selecione a sua "
260
+ "conta no canto superior direito e defina a sessão do portal para o inquilino "
261
+ "do Azure AD que pretende."
262
 
263
  msgid ""
264
  "In the left-hand navigation pane, select the <b>Azure Active Directory</b> "
275
  "any organizational directory and personal Microsoft accounts</b>. When "
276
  "finished, select <b>Register</b>."
277
  msgstr ""
278
+ "Quando a página <b>Registe uma aplicação</b> é exibida, insira o <b>Nome</b> "
279
+ "da sua aplicação e o <b>Redirect URI</b> encontrado em baixo desta página. "
280
+ "Assegure-se que <b>os tipos de conta suportada</b> está definido para <b>"
281
+ "Contas em qualquer diretório organizacional e conta pessoal da Microsoft "
282
+ "o</b>. Para terminar, selecione <b>Registo</b>."
283
 
284
  msgid ""
285
  "Azure AD assigns a unique application (client) ID to your app, and you're "
286
  "taken to your application's <b>Overview</b> page."
287
  msgstr ""
288
+ "Azure AD atribui um ID da aplicação (cliente) única à sua aplicação, de "
289
+ "seguida a página <b>Overview</b> da aplicação é exibida."
290
 
291
  msgid ""
292
  "Copy the <b>Application (client) ID</b> and insert it into the form below on "
293
  "this page."
294
  msgstr ""
295
+ "Copie o <b>ID da Aplicação (cliente)</b> e insira no formulário abaixo desta "
296
+ "página. "
297
 
298
  msgid ""
299
  "Under <b>Certificates &amp; secrets</b>, choose <b>New client secret</b>, "
301
  "from the <b>Client secrets</b> list before leaving the page. Insert the "
302
  "secret into the form below on this page."
303
  msgstr ""
304
+ "Em <b>Certificados &amp; segredos</b>, escolha <b>Novo cliente segredo</b>, "
305
+ "defina <b>Expira</b> para <b>Nunca</b> e clique <b>Adicione</b>. Copie a "
306
+ "aplicação segredo a partir da lista de <b>Clientes segredo</b> antes de sair "
307
+ "da página. Insira o segredo no formulário em baixo desta página."
308
 
309
  msgid ""
310
  "Under <b>API permissions</b>, choose <b>Add a permission</b>, and select <b>"
312
  "find <b>Calendars.ReadWrite</b>, select it and click <b>Add permissions</b> "
313
  "button."
314
  msgstr ""
315
+ "Em <b>permissões API</b>, escolha <b>adicione uma permissão</b>, e selecione "
316
+ "<b>Microsoft Graph &gt; permissões delegadas</b>. Em <b>Selecione "
317
+ "permissões</b> procure <b>Calendars.ReadWrite</b>, selecione e clique no "
318
+ "botão <b>Adicione permissões</b>."
319
 
320
  msgid "<b>Save</b> your changes."
321
+ msgstr "<b>Salve</b> as suas alterações"
322
 
323
  msgid ""
324
  "Go to Staff Members, select a staff member and click <b>Connect</b> which is "
325
  "located at the bottom of the page."
326
  msgstr ""
327
+ "Vá para Funcionários, selecione um funcionário e clique em <b>Conectar</b>, "
328
  "que está localizado na parte inferior da página."
329
 
330
  msgid "Application ID"
331
+ msgstr "ID da aplicação"
332
 
333
  msgid "The Application ID obtained from the Microsoft App Registration Portal."
334
+ msgstr "O ID da aplicação obtido do Portal de Registo do Microsoft."
335
 
336
  msgid "Application secret"
337
+ msgstr "Aplicação Segredo"
338
 
339
  msgid ""
340
  "The Application Secret password obtained from the Microsoft App Registration "
341
  "Portal."
342
  msgstr ""
343
+ "A password da Aplicação Segredo obtida do Portal de Registo do Microsoft.\n"
344
 
345
  msgid "Redirect URI"
346
  msgstr "URI de redirecionamento"
348
  msgid ""
349
  "Enter this URL as a Redirect URLs in the Microsoft App Registration Portal."
350
  msgstr ""
351
+ "Insira este URL como um redirecionamento de URL no Portal de Registo do "
352
+ "Microsoft."
353
 
354
  msgid "Synchronization mode"
355
  msgstr "Modo de sincronização"
363
  "way\" sync all bookings created in Bookly Calendar will be automatically "
364
  "copied to Outlook Calendar and vice versa."
365
  msgstr ""
366
+ "Com a sincronização de uma via, o Bookly encaminha novas marcações e "
367
+ "quaisquer outras mudanças para o Calendário do Outlook. Com a sincronização "
368
+ "de duas vias exclusiva do frontend, o Bookly vai além disso, buscar eventos "
369
+ "do Calendário do Outlook e vai remover os espaços de tempo correspondentes "
370
+ "antes de exibir o intervalo de tempo do formulário de reserva (isto pode "
371
+ "levar a atrasos quando os utilizadores clicam em Seguinte para obterem o "
372
+ "intervalo de tempo). Com a sincronização de duas vias, todas as reservas "
373
+ "criadas no calendário Bookly serão automaticamente copiadas para o "
374
+ "Calendário do Outlook e vice-versa."
375
 
376
  msgid "One-way"
377
  msgstr "Uma via"
378
 
379
  msgid "Two-way front-end only"
380
+ msgstr "Duas vias exclusiva apenas do front-end"
381
 
382
  msgid "Two-way"
383
  msgstr "Duas vias"
384
 
385
  msgid "Sync appointments history"
386
+ msgstr "Sincronizar histórico de marcações"
387
 
388
  msgid ""
389
  "Specify how many days of past calendar data you wish to sync at the time of "
390
  "initial sync. If you enter 0, synchronization of past events will not be "
391
  "performed."
392
  msgstr ""
393
+ "Especificar quantos dados de datas antigas na sua agenda deseja sincronizar "
394
+ "no momento da sincronização inicial. Se inserir 0, a sincronização de "
395
+ "eventos passados não será realizada."
396
 
397
  msgid "Copy Outlook Calendar event titles"
398
+ msgstr "Copiar os nomes dos eventos Calendário Outlook "
399
 
400
  msgid ""
401
  "If enabled then titles of Outlook Calendar events will be copied to Bookly "
402
  "appointments. If disabled, a standard title \"Outlook Calendar event\" will "
403
  "be used."
404
  msgstr ""
405
+ "Se ativado, os nomes dos eventos do Calendário Outlook serão copiados para "
406
+ "as marcações do Bookly. Se desativado, um título padrão \"Evento do "
407
+ "Calendário Outlook \" será utilizado."
408
 
409
  msgid "Limit number of fetched events"
410
+ msgstr "Limite o número de eventos obtidos"
411
 
412
  msgid ""
413
  "If there is a lot of events in Outlook Calendar sometimes this leads to a "
414
  "lack of memory in PHP when Bookly tries to fetch all events. You can limit "
415
  "the number of fetched events here."
416
  msgstr ""
417
+ "Se houver muitos eventos no Calendário do Outlook, às vezes, isso leva a uma "
418
+ "falta de memória no PHP quando o Bookly tenta obter todos os eventos. Pode "
419
+ "limitar o número de eventos obtidos aqui."
420
 
421
  msgid "Template for event title"
422
+ msgstr "Template para o nome do evento"
423
 
424
  msgid ""
425
  "Configure what information should be placed in the title of Outlook Calendar "
426
  "event. Available codes are {service_name}, {staff_name} and {client_names}."
427
  msgstr ""
428
+ "Configure que informações devem ser colocadas no nome do evento do "
429
+ "Calendário do Outlook. Os códigos disponíveis são {nome_serviço}, "
430
+ "{nome_funcionário} e {nome_cliente}."
431
 
432
  msgid "Appointment section"
433
+ msgstr "Secção da marcação"
434
 
435
  msgid "This section describes information that is displayed about appointment."
436
+ msgstr "Esta seção descreve a informação exibida acerca do compromisso."
437
 
438
  msgid "Customer section"
439
  msgstr "Secção do cliente"
442
  "This section describes information that is displayed about each participant "
443
  "of the appointment."
444
  msgstr ""
445
+ "Esta seção descreve a informação exibida acerca de cada participante da "
446
+ "marcação."
447
 
448
  msgid "customer notes for appointment"
449
+ msgstr "observações do cliente para a marcação"
450
 
451
  msgid "email of client"
452
  msgstr "e-mail do cliente"
470
  msgstr "tipo de pagamento"
471
 
472
  msgid "status of appointment"
473
+ msgstr "status da marcação"
474
 
475
  msgid "total price of booking (sum of all cart items after applying coupon)"
476
  msgstr ""
477
  "preço total da reserva (soma de todos os itens do carrinho após a aplicação "
478
+ "do cupão)"
479
 
480
  msgid "date of appointment"
481
+ msgstr "data da marcação"
482
 
483
  msgid "time of appointment"
484
+ msgstr "hora da marcação"
485
 
486
  msgid "booking number"
487
  msgstr "número de reserva"
523
  msgstr "telefone do funcionário"
524
 
525
  msgid "Outlook Calendar"
526
+ msgstr " Calendário do Outlook "
527
 
528
  msgid "Disabled"
529
  msgstr "Desativado"
530
 
531
  msgid "Synchronize with Outlook Calendar"
532
+ msgstr "Sincronizar com Calendário do Outlook "
533
 
534
  msgid "Calendars synchronized successfully."
535
  msgstr "Calendários sincronizados com sucesso."
553
  "When this setting is enabled you will be able to create service specific "
554
  "custom fields."
555
  msgstr ""
556
+ "Quando esta configuração estiver ativada, será capaz de criar campos "
557
  "personalizados de serviços específicos."
558
 
559
  msgid "Merge repeating custom fields for multiple bookings of the service"
560
  msgstr ""
561
+ "Combinar campos personalizados repetidos para múltiplas reservas do serviço"
562
 
563
  msgid ""
564
  "If enabled, customers will see custom fields for unique appointments while "
566
  "merged (collapsed) into one field. If disabled, customers will see custom "
567
  "fields for each appointment in the set of bookings."
568
  msgstr ""
569
+ "Se ativada, os clientes irão ver campos personalizados para marcações únicas,"
570
  " enquanto reservam múltiplas instâncias do serviço. Campos personalizados "
571
+ "repetidos são combinados (colapsados) num campo. Se desativada, os clientes "
572
+ "irão ver campos personalizados para cada marcação no conjunto das reservas."
573
 
574
  msgid "Text Field"
575
  msgstr "Campo do texto"
584
  msgstr "Grupo das caixas de seleção"
585
 
586
  msgid "Radio Button Group"
587
+ msgstr "Grupo dos botões de opção"
588
 
589
  msgid "Drop Down"
590
  msgstr "Seleção flutuante"
605
  msgstr "Campo obrigatório"
606
 
607
  msgid "Enter a content"
608
+ msgstr "Insira um conteúdo"
609
 
610
  msgid "Checkbox"
611
  msgstr "Caixa de seleção"
612
 
613
  msgid "Radio Button"
614
+ msgstr "Botão de opção"
615
 
616
  msgid "Option"
617
  msgstr "Opção"
629
  msgstr "Exibir campos personalizados"
630
 
631
  msgid "extended staff agenda for next day"
632
+ msgstr "agenda estendida da equipa para o dia seguinte"
633
 
634
  msgid "combined values of all custom fields (formatted in 2 columns)"
635
  msgstr ""
636
+ "valores combinados de todos os campos personalizados (formatado em 2 colunas)"
 
637
 
638
  msgid "Another code"
639
  msgstr "Outro código"
640
 
641
  msgid "Notification to customer about approved recurring appointment"
642
+ msgstr "Notificação ao cliente sobre a marcação recorrente aprovada"
643
 
644
  msgid "Your appointment information"
645
+ msgstr "A informação da sua marcação"
646
 
647
  msgid ""
648
  "Dear {client_name}.\n"
699
  msgstr ""
700
  "Olá.\n"
701
  "\n"
702
+ "Tem uma nova reserva.\n"
703
  "\n"
704
+ "Serviço: {service_name} (x {recurring_count})\n"
705
  "Horário:\n"
706
  "{appointment_schedule}\n"
707
  "Nome do cliente: {client_name}\n"
709
  "E-mail do cliente: {client_email}"
710
 
711
  msgid "Notification to customer about cancelled recurring appointment"
712
+ msgstr "Notificação ao cliente acerca de um compromisso recorrente cancelado"
713
 
714
  msgid "Booking cancellation"
715
  msgstr "Cancelamento da reserva"
733
  msgstr ""
734
  "Prezado {client_name}.\n"
735
  "\n"
736
+ "A sua reserva de {service_name} (x {recurring_count}) foi cancelada.\n"
737
  "\n"
738
  "Motivo: {cancellation_reason}\n"
739
  "\n"
749
 
750
  msgid "Notification to staff member about cancelled recurring appointment"
751
  msgstr ""
752
+ "Notificação aos funcionários sobre o cancelamento de reservas recorrentes"
753
 
754
  msgid ""
755
  "Hello.\n"
779
  "E-mail do cliente: {client_email}"
780
 
781
  msgid "Notification to customer about rejected recurring appointment"
782
+ msgstr "Notificação ao cliente sobre uma reserva recorrente rejeitada"
783
 
784
  msgid "Booking rejection"
785
+ msgstr "Rejeição da reserva"
786
 
787
  msgid ""
788
  "Dear {client_name}.\n"
807
  "\n"
808
  "Motivo: {cancellation_reason}\n"
809
  "\n"
810
+ "Por favor, consulte o horário da sua reserva abaixo.:\n"
811
  "\n"
812
  "{appointment_schedule}\n"
813
  "\n"
818
  "{company_website}"
819
 
820
  msgid "Notification to staff member about rejected recurring appointment "
821
+ msgstr "Notificação ao funcionário sobre a reserva recorrente rejeitada"
822
 
823
  msgid ""
824
  "Hello.\n"
851
  "Notification to customer about placing on waiting list for recurring "
852
  "appointment"
853
  msgstr ""
854
+ "Notificação ao cliente sobre o posicionamento na lista de espera para a "
855
+ "reserva recorrente"
856
 
857
  msgid "You have been added to waiting list for appointment"
858
+ msgstr "Foi adicionado à lista de espera para a reserva"
859
 
860
  msgid ""
861
  "Dear {client_name}.\n"
875
  msgstr ""
876
  "Prezado {client_name}.\n"
877
  "\n"
878
+ "Esta é uma confirmação de que foi adicionado à lista de espera para "
879
  "{service_name} (x {recorring_count}).\n"
880
  "\n"
881
+ "Por favor, consulte o horário de serviço abaixo.\n"
882
  "\n"
883
  "{appointment_schedule}\n"
884
  "\n"
892
  "Notification to staff member about placing on waiting list for recurring "
893
  "appointment "
894
  msgstr ""
895
+ "Notificação ao funcionário sobre o posicionamento na lista de espera para "
896
+ "reserva recorrente"
897
 
898
  msgid "New waiting list information"
899
  msgstr "Nova informação da lista de espera"
912
  msgstr ""
913
  "Olá.\n"
914
  "\n"
915
+ "Tem um novo cliente na lista de espera.\n"
916
  "\n"
917
  "Serviço: {service_name} (x {recorring_count})\n"
918
  "Horário:\n"
935
  "{company_website}"
936
  msgstr ""
937
  "Prezado {client_name}.\n"
938
+ "Esta é uma confirmação de que reservou {service_name} (x {recorring_count})."
939
+ "\n"
940
+ "Por favor, consulte o horário da sua reserva abaixo.\n"
941
  "{appointment_schedule}\n"
942
  "\n"
943
+ "Estamos à sua espera na {company_address}.\n"
944
  "Obrigado por escolher a nossa empresa.\n"
945
  "{company_name}\n"
946
  "{company_phone}\n"
957
  "Client email: {client_email}"
958
  msgstr ""
959
  "Olá.\n"
960
+ "Tem uma nova reserva.\n"
961
  "Serviço: {service_name} (x {recorring_count})\n"
962
  "Horário:\n"
963
  "{appointment_schedule}\n"
979
  "Prezado {client_name}.\n"
980
  "A sua reserva de {service_name} (x {recorring_count}) foi cancelada.\n"
981
  "Motivo: {cancellation_reason}\n"
982
+ "Por favor, consulte o horário da sua reserva abaixo: {appointment_schedule}\n"
983
  "Obrigado por escolher a nossa empresa.\n"
984
  "{company_name}\n"
985
  "{company_phone}\n"
986
  "{company_website}"
987
 
988
  msgid "Notification to staff member about cancelled recurring appointment "
989
+ msgstr "Notificação ao funcionário sobre a reserva recorrente cancelada"
990
 
991
  msgid ""
992
  "Hello.\n"
1062
  "{company_website}"
1063
  msgstr ""
1064
  "Prezado {client_name}.\n"
1065
+ "Esta é uma confirmação de que foi adicionado à lista de espera para "
1066
  "{service_name} (x {recorring_count}).\n"
1067
+ "Por favor, consulte o horário de serviço abaixo.\n"
1068
  "{appointment_schedule}\n"
1069
  "Obrigado por escolher a nossa empresa.\n"
1070
  "{company_name}\n"
1082
  "Client email: {client_email}"
1083
  msgstr ""
1084
  "Olá.\n"
1085
+ "Tem um novo cliente na lista de espera.\n"
1086
  "Serviço: {service_name} (x {recorring_count})\n"
1087
  "Horário:\n"
1088
  "{appointment_schedule}\n"
1102
  "please check the box below and set appropriate parameters. Otherwise press "
1103
  "Next button below."
1104
  msgstr ""
1105
+ "Selecionou uma reserva para {service_name} às {appointment_time} no dia "
1106
+ "{appointment_date}. Se quiser que este compromisso seja recorrente, marque a "
1107
+ "caixa abaixo e defina os parâmetros apropriados. Caso contrário, pressione o "
1108
+ "botão Próximo abaixo."
1109
 
1110
  msgid "Another time"
1111
  msgstr "Outra hora"
1123
  msgstr "dia(s)"
1124
 
1125
  msgid "Deleted"
1126
+ msgstr "Apagado"
1127
 
1128
  msgid "every"
1129
  msgstr "cada"
1132
  "The first recurring appointment was added to cart. You will be invoiced for "
1133
  "the remaining appointments later."
1134
  msgstr ""
1135
+ "A primeira reserva recorrente foi adicionada ao carrinho. Irá receber uma "
1136
+ "fatura para as restantes reservas mais tarde."
1137
 
1138
  msgid "Monthly"
1139
  msgstr "Mensal"
1140
 
1141
  msgid "There are no available time slots for this day"
1142
+ msgstr "Não há horário disponível para este dia"
1143
 
1144
  msgid "On"
1145
  msgstr "Em"
1157
  "Some of the desired time slots are busy. System offers the nearest time slot "
1158
  "instead. Click the Edit button to select another time if needed."
1159
  msgstr ""
1160
+ "Alguns dos horários desejados estão ocupados. Como alternativa, o sistema "
1161
+ "oferece o horário mais próximo. Clique no botão Editar para selecionar outra "
1162
+ "hora, se necessário."
1163
 
1164
  msgid "Specific day"
1165
  msgstr "Dia específico"
1166
 
1167
  msgid "Repeat this appointment"
1168
+ msgstr "Repita esta reserva"
1169
 
1170
  msgid "Until"
1171
  msgstr "Até"
1195
  msgstr "hora(s)"
1196
 
1197
  msgid "Notification to customer about pending recurring appointment"
1198
+ msgstr "Notificação ao cliente sobre a reserva recorrente pendente"
1199
 
1200
  msgid "Notification to staff member about pending recurring appointment"
1201
+ msgstr "Notificação ao funcionário sobre a reserva recorrente pendente"
1202
 
1203
  msgid ""
1204
  "Notification to staff member about placing on waiting list for recurring "
1205
  "appointment"
1206
  msgstr ""
1207
+ "Notificação ao funcionário sobre a colocação em lista de espera de uma "
1208
+ "reserva recorrente"
1209
 
1210
  msgid "New recurring booking notification"
1211
+ msgstr "Notificação de uma nova reserva recorrente"
1212
 
1213
  msgid "Notification about recurring appointment status changes"
1214
+ msgstr "Notificação de mudança de status de uma reserva recorrente"
1215
 
1216
  msgid "at"
1217
  msgstr "às"
1220
  msgstr "Pagamentos on-line"
1221
 
1222
  msgid "Customers must pay only for the 1st appointment"
1223
+ msgstr "Os clientes devem pagar apenas para a 1ª reserva"
1224
 
1225
  msgid "Customers must pay for all appointments in series"
1226
+ msgstr "Os clientes devem pagar todas as reservas em série"
1227
 
1228
  msgid "Group appointments"
1229
+ msgstr "Reservas de grupo"
1230
 
1231
  msgid "Create new appointment for every recurring booking"
1232
+ msgstr "Crie uma nova reserva para cada reserva recorrente"
1233
 
1234
  msgid "Add customer to available group bookings"
1235
+ msgstr "Adicione um cliente às reservas de grupo disponíveis "
1236
 
1237
  msgid "Recurring Appointments"
1238
+ msgstr "Reservas Recorrentes"
1239
 
1240
  msgid "Approve recurring appointment URL (success)"
1241
+ msgstr "Aprovar a URL da reserva recorrente (sucesso)"
1242
 
1243
  msgid ""
1244
  "Set the URL of a page that is shown to staff after they successfully "
1245
  "approved recurring appointment."
1246
  msgstr ""
1247
+ "Definir a URL de uma página que será mostrada aos funcionários depois de "
1248
+ "estes aprovarem a reserva recorrente."
1249
 
1250
  msgid "Approve recurring appointment URL (denied)"
1251
+ msgstr "Aprovar a URL da reserva recorrente (negado)"
1252
 
1253
  msgid ""
1254
  "Set the URL of a page that is shown to staff when the approval of recurring "
1255
  "appointment cannot be done (changed status, etc.)."
1256
  msgstr ""
1257
  "Defina a URL de uma página que será mostrada aos funcionários quando a "
1258
+ "aprovação de uma reserva recorrente não puder ser feita (status alterado, "
1259
+ "etc.)."
1260
 
1261
  msgid "Enabled"
1262
  msgstr "Ativado"
1263
 
1264
  msgid "Allow this service to have recurring appointments."
1265
+ msgstr "Permitir que este serviço tenha reservas recorrentes."
1266
 
1267
  msgid "Frequencies"
1268
  msgstr "Frequências"
1289
  msgstr "Exibir o passo Repetir"
1290
 
1291
  msgid "recurring appointments schedule"
1292
+ msgstr "lista de reserva recorrentes"
1293
 
1294
  msgid "recurring appointments schedule with cancel"
1295
+ msgstr "lista de reserva recorrentes com cancelamento"
1296
 
1297
  msgid "URL for approving the whole schedule"
1298
  msgstr "URL para aprovar todo o horário"
1299
 
1300
  msgid "recurring appointments"
1301
+ msgstr "reserva recorrentes"
1302
 
1303
  msgid "Every"
1304
  msgstr "Cada"
1316
  msgstr "Outro horário foi oferecido nas páginas"
1317
 
1318
  msgid "Delete Appointment"
1319
+ msgstr "Apagar a reserva"
1320
 
1321
  msgid "Delete only this appointment"
1322
+ msgstr "Apagar apenas esta reserva"
1323
 
1324
  msgid "Delete this and the following appointments"
1325
+ msgstr "Apagar esta e as seguintes reservas"
1326
 
1327
  msgid "Delete all appointments in series"
1328
+ msgstr "Apagar todas as reservas em série"
1329
 
1330
  msgid "Send notifications"
1331
  msgstr "Enviar notificações"
1334
  msgstr "Motivo de cancelamento (opcional)"
1335
 
1336
  msgid "Recurring appointments"
1337
+ msgstr "Reservas recorrentes"
1338
 
1339
  msgid "Close"
1340
  msgstr "Fechar"
1343
  msgstr "Guardar"
1344
 
1345
  msgid "I will pay now with Credit Card"
1346
+ msgstr "Vou pagar com cartão de crédito"
1347
 
1348
  msgid "Sandbox Mode"
1349
  msgstr "Modo Sandbox"
1369
  "\"Unit Price\" field specify the cost of 1 unit, so the total cost of the "
1370
  "service will increase linearly with the increase of its duration."
1371
  msgstr ""
1372
+ "Definir a duração do serviço. Se selecionar Customizar, um cliente enquanto "
1373
+ "faz a reserva terá que escolher a duração do serviço entre várias unidades "
1374
+ "de tempo. No campo \"Preço da unidade\" especifique o custo de 1 unidade, "
1375
+ "para que o custo total do serviço aumente linearmente com o incremento da "
1376
+ "sua duração."
1377
 
1378
  msgid "Unit duration"
1379
  msgstr "Duração da unidade"
1391
  msgstr "Customizar"
1392
 
1393
  msgid "Show service price next to duration"
1394
+ msgstr "Exibir o preço do serviço ao lado da duração"
1395
 
1396
  msgid "Hide this field"
1397
  msgstr "Ocultar este campo"
1471
  msgid "Add Staff Days Off"
1472
  msgstr "Adicionar dias de folga do funcionário"
1473
 
1474
+ msgid ""
1475
+ "Hide this field if you want to hide the list of WP users from your staff "
1476
+ "members."
1477
+ msgstr ""
1478
+ "Oculte este campo se quiser ocultar a lista de utilizadores WP dos seus "
1479
+ "funcionários.\n"
1480
+
1481
  msgid "Hide visibility field"
1482
  msgstr "Ocultar campo de visibilidade"
1483
 
1491
  msgstr "Inserir"
1492
 
1493
  msgid "Add Staff Cabinet"
1494
+ msgstr "Adicione Staff Cabinet"
1495
 
1496
  msgid "A custom block for displaying staff calendar"
1497
  msgstr "Bloco personalizado para exibição do calendário do funcionário"
1526
  msgid "Capacity"
1527
  msgstr "Capacidade"
1528
 
1529
+ msgid "Hide WordPress users"
1530
+ msgstr "Oculte utilizadores WordPress"
1531
+
1532
  msgid "Special hours"
1533
  msgstr "Horas especiais"
1534
 
1536
  msgstr "Campos"
1537
 
1538
  msgid "read only"
1539
+ msgstr "somente de leitura"
1540
 
1541
  msgid "Repeat every year"
1542
  msgstr "Repetir todos os anos"
1543
 
1544
  msgid "We are not working on this day"
1545
+ msgstr "Não estamos abertos nesse dia"
1546
 
1547
  msgid "Min capacity should not be greater than max capacity."
1548
+ msgstr "A capacidade mínima não deve ser superior que a capacidade máxima."
1549
 
1550
  msgid "Export to CSV"
1551
  msgstr "Exportar para CSV"
1627
  "If you want to become invisible to your customers set the visibility to "
1628
  "\"Private\"."
1629
  msgstr ""
1630
+ "Se pretende ficar invisível para os seus clientes, defina a visibilidade "
1631
  "para \"Privado\"."
1632
 
1633
  msgid "Public"
1643
  msgstr "Nenhum local selecionado"
1644
 
1645
  msgid "You don't have permissions to view this content."
1646
+ msgstr "Não tem permissões para ver este conteúdo."
1647
 
1648
  msgid ""
1649
  "Your account has been disabled. Contact your website administrator to "
1650
  "continue."
1651
  msgstr ""
1652
+ "A sua conta foi desativada. Entre em contato com o administrador do seu site "
1653
  "para continuar."
1654
 
1655
  msgid "API Login ID"
1659
  msgstr "Chave de transação do API"
1660
 
1661
  msgid "Title"
1662
+ msgstr "Nome"
1663
 
1664
  msgid "Rate"
1665
  msgstr "Taxa"
1710
 
1711
  msgid "total tax included in the appointment (summary for all items)"
1712
  msgstr ""
1713
+ "total de tributações incluídas na reserva (sumário para todos os itens)"
1714
 
1715
  msgid "total price without tax"
1716
  msgstr "preço total sem tributação"
1722
  "additional amount to the cost. If you need to report the exact tax amount to "
1723
  "the payment system, do not use additional charge."
1724
  msgstr ""
1725
+ "Esta configuração afeta o custo da reserva de acordo com o gateway de "
1726
+ "pagamento usado. Especifique uma percentagem ou quantia fixa. Use o sinal "
1727
  "menos (\"-\") para diminuir / desconto. Observe que o imposto não será "
1728
+ "calculado para o valor adicional ao custo. Se precisar de informar o valor "
1729
  "exato do imposto ao sistema de pagamento, não use cobranças adicionais."
1730
 
1731
  msgid "Customer Information"
1741
  "To receive REST API credentials, in <b>My Apps & Credentials</b> of your "
1742
  "PayPal account do the following steps:"
1743
  msgstr ""
1744
+ "Para receber os credenciais REST API, em <b>As minhas Aplicações & "
1745
+ "Credenciais</b> da sua conta Paypal siga os seguintes passos:"
1746
 
1747
  msgid "Click <b>Create App</b> and enter application details."
1748
+ msgstr "Clique em <b>Create App</b> e digite as informações da aplicação."
1749
 
1750
  msgid ""
1751
  "Once created, copy <b>Client ID</b> and <b>Secret</b> and use them in the "
1770
  msgstr "Erro do Mollie."
1771
 
1772
  msgid "I will pay now with Mollie"
1773
+ msgstr "Vou pagar com Mollie"
1774
 
1775
  msgid "API Key"
1776
  msgstr "Chave do API"
1784
  "a scheduled cron job."
1785
  msgstr ""
1786
  "Esta configuração determina o tempo limite o qual o pagamento feito através "
1787
+ "do gateway de pagamento é considerado incompleto. Esta funcionalidade requer "
1788
  "um trabalho cron agendado."
1789
 
1790
  msgid "Persons"
1794
  msgstr "Número de pessoas"
1795
 
1796
  msgid "Capacity (min and max)"
1797
+ msgstr "Capacidade (mín e máx)"
1798
 
1799
  msgid "Group bookings information format"
1800
  msgstr "Agrupar o formato das informações de reserva"
1802
  msgid ""
1803
  "Select format for displaying the time slot occupancy for group bookings."
1804
  msgstr ""
1805
+ "Selecione o formato para a exibição da ocupação do intervalo de tempo para "
1806
  "reservas de grupo."
1807
 
1808
  msgid "[Booked/Max capacity]"
1812
  msgstr "[Restantes]"
1813
 
1814
  msgid "Group Booking"
1815
+ msgstr "Reserva de grupo"
1816
 
1817
  msgid "number of persons"
1818
  msgstr "número de pessoas"
1828
  "the certain time period."
1829
  msgstr ""
1830
  "Número mínimo e máximo de clientes autorizados a reservar o serviço durante "
1831
+ "um determinado período."
1832
 
1833
  msgid "One booking per time slot"
1834
  msgstr "Uma reserva por intervalo de tempo"
1850
  msgstr "Endereço"
1851
 
1852
  msgid "Follow these steps to get an API key:"
1853
+ msgstr "Siga estes passos para obter uma chave API:"
1854
 
1855
  msgid ""
1856
  "Go to the <a href=\"https://console.developers.google.com/flows/enableapi?"
1864
 
1865
  msgid "Create or select a project. Click <b>Continue</b> to enable the API."
1866
  msgstr ""
1867
+ "Crie ou selecione um projeto. Clique em <b>Continuar</b> para ativar a API."
1868
 
1869
  msgid ""
1870
  "On the <b>Credentials</b> page, get an <b>API key</b> (and set the API key "
1872
  "with server restrictions, you may use that key."
1873
  msgstr ""
1874
  "Na página <b>Credenciais</b>, obtenha a <b>chave API</b> (e defina as "
1875
+ "restrições da chave API). Observação: Se tem um chave API não restrita ou "
1876
+ "uma chave com restrições de servidor, pode usar essa chave."
1877
 
1878
  msgid ""
1879
  "Click <b>Library</b> on the left sidebar menu. Select Google Maps JavaScript "
1880
  "API and make sure it's enabled."
1881
  msgstr ""
1882
  "Clique em <b>Library</b> no menu lateral da esquerda. Selecione Google Maps "
1883
+ "JavaScript API e certifique-se de que esta está ativada."
1884
 
1885
  msgid "Use your <b>API key</b> in the form below."
1886
  msgstr "Use your <b>chave API</b> no formulário abaixo."
1889
  "Enter a Google API key that you got after registering your app project on "
1890
  "the Google API Console."
1891
  msgstr ""
1892
+ "Insira a chave API da Google que obteve depois de registar seu projeto da "
1893
+ "aplicação na Google API Console."
1894
 
1895
  msgid "Google Maps"
1896
  msgstr "Google Maps"
1917
  msgstr "Parte de um serviço colaborativo"
1918
 
1919
  msgid "Customer cabinet (all services displayed in tabs)"
1920
+ msgstr "Cabinet do cliente (todos os serviços exibidos em abas)"
1921
 
1922
  msgid "Appointment management"
1923
  msgstr "Gestão de compromissos"
1950
  msgstr "Senha do Wordpress"
1951
 
1952
  msgid "Delete account"
1953
+ msgstr "Apagar conta"
1954
 
1955
  msgid "Add Customer Cabinet"
1956
+ msgstr "Adicionar Cabinet de clientes"
1957
 
1958
  msgid "Customer cabinet"
1959
+ msgstr "Cabinet de clientes"
1960
 
1961
  msgid "A custom block for displaying customer cabinet"
1962
+ msgstr "Bloco personalizado para exibição de Cabinet de clientes"
1963
 
1964
  msgid "show"
1965
  msgstr "mostrar"
1986
  msgstr "Perfil"
1987
 
1988
  msgid "WP user"
1989
+ msgstr "Utilizador WP"
1990
 
1991
  msgid "Current password"
1992
  msgstr "Senha atual"
1998
  msgstr "Confirmar senha"
1999
 
2000
  msgid "No appointments."
2001
+ msgstr "Nenhuma reserva"
2002
 
2003
  msgid "Expired"
2004
  msgstr "Expirado"
2007
  msgstr "Não permitido"
2008
 
2009
  msgid "There are no time slots for selected date."
2010
+ msgstr "Não há horários disponíveis para a data selecionada."
2011
 
2012
  msgid "Profile updated successfully."
2013
  msgstr "Perfil atualizado com sucesso."
2016
  "Unfortunately, you're not able to cancel the appointment because the "
2017
  "required time limit prior to canceling has expired."
2018
  msgstr ""
2019
+ "Infelizmente não pode cancelar a reserva porque o limite de tempo necessário "
2020
+ "antes do cancelamento expirou."
2021
 
2022
  msgid ""
2023
  "The selected time is not available anymore. Please, choose another time slot."
2032
  msgstr "Senha atual incorreta"
2033
 
2034
  msgid "Passwords mismatch"
2035
+ msgstr "As senhas não estão corretas"
2036
 
2037
  msgid "Cancel Appointment"
2038
+ msgstr "Cancelar reserva"
2039
 
2040
  msgid "You are going to cancel a scheduled appointment. Are you sure?"
2041
+ msgstr "Vai cancelar uma reserva marcada. Tem certeza?"
2042
 
2043
  msgid ""
2044
  "You are going to delete your account and all information associated with it. "
2045
  "Click Confirm to continue or Cancel to cancel the action."
2046
  msgstr ""
2047
+ "Vai apagar a sua conta com todas as informações associadas a esta. Clique em "
2048
+ "confirmar para continuar ou em Cancelar para cancelar a ação."
2049
 
2050
  msgid ""
2051
  "This account cannot be deleted because it is associated with scheduled "
2052
  "appointments. Please cancel bookings or contact the service provider."
2053
  msgstr ""
2054
+ "Esta conta não pode ser apagada porque está associada a reservas agendadas. "
2055
+ "Por favor, cancele as reservas ou entre em contacto com o prestador de "
2056
+ "serviços."
2057
 
2058
  msgid "Confirm"
2059
  msgstr "Confirmar"
2064
  #, php-format
2065
  msgid " and %d more item"
2066
  msgid_plural " and %d more items"
2067
+ msgstr[0] " e %d outro item"
2068
  msgstr[1] " e %d mais itens"
2069
 
2070
  msgid "Notification to customer about approved appointment"
2071
+ msgstr "Notificação ao cliente sobre a reserva aprovada"
2072
 
2073
  msgid ""
2074
  "Dear {client_name}.\n"
2088
  "\n"
2089
  "Esta é uma confirmação de que você reservou {service_name}.\n"
2090
  "\n"
2091
+ "Esperamos por si em {company_address} no dia {appointment_date} às "
2092
  "{appointment_time} .\n"
2093
  "\n"
2094
  "Obrigado por escolher nossos serviços.\n"
2098
  "{company_website}"
2099
 
2100
  msgid "Notification to staff member about approved appointment"
2101
+ msgstr "Notificação ao funcionário sobre a reserva aprovada"
2102
 
2103
  msgid ""
2104
  "Hello.\n"
2114
  msgstr ""
2115
  "Olá.\n"
2116
  "\n"
2117
+ "Tem uma nova reserva.\n"
2118
  "\n"
2119
  "Serviço: {service_name}\n"
2120
  "Data: {appointment_date}\n"
2124
  "E-mail do cliente: {client_email}"
2125
 
2126
  msgid "Notification to customer about cancelled appointment"
2127
+ msgstr "Notificação ao cliente sobre a reserva cancelada"
2128
 
2129
  msgid ""
2130
  "Dear {client_name}.\n"
2150
  "{company_website}"
2151
 
2152
  msgid "Notification to staff member about cancelled appointment"
2153
+ msgstr "Notificação ao funcionário sobre a reserva cancelada"
2154
 
2155
  msgid ""
2156
  "Hello.\n"
2176
  "E-mail do cliente: {client_email}"
2177
 
2178
  msgid "Notification to customer about rejected appointment"
2179
+ msgstr "Notificação ao cliente sobre a reserva rejeitada"
2180
 
2181
  msgid ""
2182
  "Dear {client_name}.\n"
2206
  "{company_website}"
2207
 
2208
  msgid "Notification to staff member about rejected appointment"
2209
+ msgstr "Notificação ao funcionário sobre a reserva rejeitada"
2210
 
2211
  msgid ""
2212
  "Hello.\n"
2246
  "{company_website}"
2247
  msgstr ""
2248
  "Prezado {client_name},\n"
2249
+ "Esta é uma confirmação de que reservou {service_name}.\n"
2250
  "Aguardamos você em {company_address} no dia {appointment_date} às "
2251
  "{appointment_time} .\n"
2252
  "Obrigado por escolher nossos serviços.\n"
2265
  "Client email: {client_email}"
2266
  msgstr ""
2267
  "Olá,\n"
2268
+ "Você uma nova reserva.\n"
2269
  "Serviço: {service_name}\n"
2270
  "Data: {appointment_date}\n"
2271
  "Hora: {appointment_time}\n"
2283
  "{company_website}"
2284
  msgstr ""
2285
  "Prezado {client_name}.\n"
2286
+ "Cancelou a reserva de {service_name} no dia {appointment_date} às "
2287
  "{appointment_time}.\n"
2288
  "Obrigado por escolher nossos serviços.\n"
2289
  "{company_name}\n"
2352
  msgid ""
2353
  "Evening reminder to customer about next day appointment (requires cron setup)"
2354
  msgstr ""
2355
+ "Lembrete noturno ao cliente sobre a reserva do dia seguinte (requer "
2356
  "configuração do cron)"
2357
 
2358
  msgid ""
2366
  msgstr ""
2367
  "Prezado {client_name}.\n"
2368
  "Gostariamos de relembrar que você reservou {service_name} amanhã às "
2369
+ "{appointment_time}. Esperamos por si em {company_address}.\n"
2370
  "Obrigado por escolher nossos serviços.\n"
2371
  "{company_name}\n"
2372
  "{company_phone}\n"
2375
  msgid ""
2376
  "Follow-up message in the same day after appointment (requires cron setup)"
2377
  msgstr ""
2378
+ "Mensagem de acompanhamento no mesmo dia depois da reserva (requer "
2379
  "configuração do cron)"
2380
 
2381
  msgid ""
2416
  "has been sent to you."
2417
  msgstr ""
2418
  "Muito obrigado! O processo de reserva está completo. Um e-mail com os seus "
2419
+ "detalhes da reserva foi enviado para si."
2420
 
2421
  msgid ""
2422
  "You are trying to use the service too often. Please contact us to make a "
2423
  "booking."
2424
  msgstr ""
2425
+ "Está a usar o serviço com muita frequência. Por favor, entre em contato "
2426
+ "connosco para fazer uma reserva."
2427
 
2428
  msgid "Your payment has been accepted for processing."
2429
+ msgstr "O seu pagamento foi aceite para processamento."
2430
 
2431
  msgid ""
2432
  "You selected a booking for {service_name} by {staff_name} at "
2434
  "{service_price}.\n"
2435
  "Please provide your details in the form below to proceed with booking."
2436
  msgstr ""
2437
+ "Escolheu uma reserva para {service_name} com {staff_name} às "
2438
+ "{appointment_time} em {appointment_date}. O preço deste serviço é de "
2439
  "{service_price}.\n"
2440
  "Por favor, forneça os seus detalhes no formulário abaixo para proceder com a "
2441
  "reserva."
2451
  "{staff_name}.\n"
2452
  "Click on a time slot to proceed with booking."
2453
  msgstr ""
2454
+ "Pode encontrar abaixo uma lista dos horários disponíveis para {service_name} "
2455
+ "com {staff_name}.\n"
2456
  "Clique no horário para prosseguir com a marcação."
2457
 
2458
  msgid "Confirm email"
2459
  msgstr "Confirmar e-mail"
2460
 
2461
  msgid "Finish by"
2462
+ msgstr "Acabar às"
2463
 
2464
  msgid "First name"
2465
  msgstr "Primeiro nome"
2477
  msgstr "Estou disponível em ou depois de"
2478
 
2479
  msgid "Start from"
2480
+ msgstr "Começar de"
2481
 
2482
  msgid "Select category"
2483
+ msgstr "Selecione categoria"
2484
 
2485
  msgid "Any"
2486
  msgstr "Qualquer"
2487
 
2488
  msgid "Select service"
2489
+ msgstr "Selecione serviço"
2490
 
2491
  msgid "Select day"
2492
  msgstr "Selecione um dia"
2504
  msgstr "E-mail de confirmação não coincide"
2505
 
2506
  msgid "Please select an employee"
2507
+ msgstr "Por favor, selecione um funcionário"
2508
 
2509
  msgid "Please tell us your name"
2510
  msgstr "Por favor, informe o seu nome"
2522
  msgstr "Por favor, selecione um serviço"
2523
 
2524
  msgid "Login"
2525
+ msgstr "Login"
2526
 
2527
  msgid "Done"
2528
  msgstr "Concluir"
2534
  msgstr "Notificação personalizada"
2535
 
2536
  msgid "Appointment reminder"
2537
+ msgstr "Lembrete de reserva"
2538
 
2539
  msgid "New booking"
2540
  msgstr "Nova reserva"
2541
 
2542
  msgid "Notification about customer's appointment status change"
2543
+ msgstr "Notificação de modificação de status da reserva de cliente"
2544
 
2545
  msgid "Customer birthday greeting (requires cron setup)"
2546
  msgstr "Cumprimento do aniversário do cliente (requer configuração do cron)"
2547
 
2548
  msgid "Notification to customer about pending appointment"
2549
+ msgstr "Notificação ao cliente sobre a reserva pendente"
2550
 
2551
  msgid ""
2552
  "1st reminder to customer about upcoming appointment (requires cron setup)"
2553
  msgstr ""
2554
+ "1º lembrete para o cliente sobre a reserva futura (requer configuração do "
2555
+ "cron)"
2556
 
2557
  msgid ""
2558
  "2nd reminder to customer about upcoming appointment (requires cron setup)"
2559
  msgstr ""
2560
+ "2º lembrete para o cliente sobre a reserva futura (requer configuração do "
2561
+ "cron)"
2562
 
2563
  msgid ""
2564
  "3rd reminder to customer about upcoming appointment (requires cron setup)"
2565
  msgstr ""
2566
+ "3º lembrete para o cliente sobre a reserva futura (requer configuração do "
2567
+ "cron)"
2568
 
2569
  msgid "Last client's appointment"
2570
+ msgstr "Reserva do último cliente"
2571
 
2572
  msgid "Full day agenda"
2573
  msgstr "Agenda do dia inteiro"
2574
 
2575
  msgid "Notification to staff member about pending appointment"
2576
+ msgstr "Notificação ao funcionário sobre a reserva pendente"
2577
 
2578
  msgid "Invalid day"
2579
  msgstr "Dia inválido"
2594
  msgstr "Estado/Região"
2595
 
2596
  msgid "Postal Code"
2597
+ msgstr "Código Postal"
2598
 
2599
  msgid "City"
2600
  msgstr "Cidade"
2612
  msgstr "É necessário informar o estado"
2613
 
2614
  msgid "Postcode is required"
2615
+ msgstr "É necessário informar o Código Postal"
2616
 
2617
  msgid "City is required"
2618
  msgstr "É necessário informar a cidade"
2627
  "The highlighted time is not available anymore. Please, choose another time "
2628
  "slot."
2629
  msgstr ""
2630
+ "A hora destacada não está mais disponível. Por favor, escolha outro horário."
 
2631
 
2632
  msgid "Happy Birthday!"
2633
  msgstr "Feliz Aniversário!"
2648
  "Prezado {client_name},\n"
2649
  "\n"
2650
  "Feliz Aniversário!\n"
2651
+ "Desejamos-lhe muitas felicidades.\n"
2652
+ "Que você e os seus sejam muito felizes e saudáveis.\n"
2653
  "\n"
2654
  "Obrigado por escolher nossa empresa.\n"
2655
  "\n"
2669
  msgstr ""
2670
  "Prezado {client_name},\n"
2671
  "Feliz Aniversário!\n"
2672
+ "Desejamos-lhe muitas felicidades.\n"
2673
+ "Que você e os seus sejam muito felizes e saudáveis.\n"
2674
  "Obrigado por escolher nossa empresa.\n"
2675
  "{company_name}\n"
2676
  "{company_phone}\n"
2739
  msgstr "Núm."
2740
 
2741
  msgid "Appointment date"
2742
+ msgstr "Data da reserva"
2743
 
2744
  msgid "Customer name"
2745
  msgstr "Nome do Cliente"
2754
  msgstr "Criado"
2755
 
2756
  msgid "User"
2757
+ msgstr "Utilizador"
2758
 
2759
  msgid "Last appointment"
2760
+ msgstr "Última reserva"
2761
 
2762
  msgid "Total appointments"
2763
+ msgstr "Total de reservas"
2764
 
2765
  msgid "Payments"
2766
  msgstr "Pagamentos"
2793
  msgstr "Código"
2794
 
2795
  msgid "Regular price"
2796
+ msgstr "Preço normal"
2797
 
2798
  msgid "Price with custom Sender ID"
2799
+ msgstr "Preço com ID do remetente personalizado"
 
 
 
2800
 
2801
  msgid "Requested ID"
2802
+ msgstr "ID solicitado"
2803
 
2804
  msgid "Status date"
2805
  msgstr "Data do status"
2814
 
2815
  #, php-format
2816
  msgid "View %1$s version %2$s details"
2817
+ msgstr "Ver detalhes da %1$s versão %2$s"
2818
 
2819
  msgid "Important"
2820
  msgstr "Importante"
2825
  "properly on all WordPress configurations and completely protect it from the "
2826
  "influence of other plugins."
2827
  msgstr ""
2828
+ "Cada versão do Bookly é rigorosamente verificada de acordo com as normas de "
2829
+ "qualidade antes da instalação, no entanto, não podemos garantir que depois "
2830
+ "de uma atualização, o plugin funcione corretamente em todas as configurações "
2831
+ "do WordPress, e esteja totalmente protegido das influências de outros "
2832
+ "plugins."
2833
 
2834
  #, php-format
2835
  msgid ""
2837
  "the plugin. Please note that, according to %1$s Envato rules %2$s, we will "
2838
  "be able to help you only if you have active item support period."
2839
  msgstr ""
2840
+ "Há um pequeno risco de que possam ocorrer alguns problemas como resultado da "
2841
+ "atualização do plugin. Por favor note que, de acordo com as regras de %1$s "
2842
+ "de Envato %2$s, só seremos capazes de ajudá-lo se tiver ativo o período de "
2843
+ "suporte."
2844
 
2845
  #, php-format
2846
  msgid ""
2849
  msgstr "Pode renovar o suporte %1$s aqui ou %2$s Já renovei o suporte. %3$s"
2850
 
2851
  msgid "Bookly updater"
2852
+ msgstr "Atualização do Bookly"
2853
 
2854
  msgid ""
2855
  "Please wait, we are checking updates for {checked}/{total} Bookly add-ons"
2856
  msgstr ""
2857
+ "Por favor aguarde, estamos a verificar as atualizações do {checked}/{total} "
2858
+ "add-ons Bookly"
2859
 
2860
  msgid "No updates available"
2861
  msgstr "Nenhuma atualização disponível"
2882
  msgstr "Cancelada"
2883
 
2884
  msgid "Untitled"
2885
+ msgstr "Sem nome"
2886
 
2887
  msgid "Unknown"
2888
  msgstr "Desconhecido"
2889
 
2890
  msgid "New booking notification"
2891
+ msgstr "Nova notificação de reserva"
2892
 
2893
  msgid "New booking combined notification"
2894
  msgstr "Nova notificação de reserva combinada"
2895
 
2896
  msgid "New customer's WordPress user login details"
2897
+ msgstr "Detalhes do login do utilizador WordPress do novo cliente"
2898
 
2899
  msgid "Customer's birthday greeting"
2900
  msgstr "Cumprimento do aniversário do cliente"
2901
 
2902
  msgid "Customer's last appointment notification"
2903
+ msgstr "Notificação da última reserva do cliente"
2904
 
2905
  msgid "Staff full day agenda"
2906
  msgstr "Agenda do funcionário para o dia "
2933
  "should update your user data, or press Cancel to edit entered data."
2934
  msgstr ""
2935
  "Seu %s: %s já está associado com outro %s.<br/>clique em Atualizar se "
2936
+ "devemos atualizar os seus dados de utilizador ou clique em Cancelar para "
2937
+ "editar os dados inseridos."
2938
 
2939
  msgid "sent to our system"
2940
  msgstr "enviado para o nosso sistema"
2952
  "Thank you for using Bookly SMS. We wish you a lucky week!\n"
2953
  "Bookly SMS Team"
2954
  msgstr ""
2955
+ "Esperamos que tenha tido um bom fim de semana! Aqui está um resumo das "
2956
  "mensagens enviadas na semana passada:\n"
2957
  "{notification_list}\n"
2958
  "\n"
2961
  "O custo de envio de {total} mensagens foi {amount}. O saldo corrente de "
2962
  "Bookly SMS é {balance}.\n"
2963
  "\n"
2964
+ "Obrigado por usar Bookly SMS. Desejamos-lhe uma boa semana!\n"
2965
  "Equipe Bookly SMS"
2966
 
2967
  msgid "more"
2980
  "To view the details of these appointments, please contact your website "
2981
  "administrator in order to verify Bookly Pro license."
2982
  msgstr ""
2983
+ "Para visualizar os detalhes destas reservas, por favor, entre em contacto "
2984
+ "com o administrador do seu website para verificar a licença do Bookly Pro."
 
2985
 
2986
  msgid "Admins"
2987
  msgstr "Admins"
2988
 
2989
  msgid "Passwords must be the same."
2990
+ msgstr "As palavras-passe devem ser as mesmas."
2991
 
2992
  msgid ""
2993
  "Your don't have enough Bookly SMS credits to send this message. Please add "
2994
  "funds to your balance and try again."
2995
  msgstr ""
2996
+ "Não tem créditos Bookly SMS suficientes para enviar esta mensagem. Por favor,"
2997
+ " adicione fundos ao seu saldo e tente de novo."
2998
 
2999
  msgid "Failed to send SMS."
3000
+ msgstr "Não foi possível enviar a SMS."
3001
 
3002
  msgid "Phone number is empty."
3003
  msgstr "Número de telefone está vazio."
3049
  "settings <a href='%s'>here</a>."
3050
  msgstr ""
3051
  "Prezado cliente Bookly SMS.\n"
3052
+ "Gostaríamos de informá-lo que o seu saldo Bookly SMS é inferior a 5 USD. "
3053
+ "Para usar nosso serviço sem interrupções recarregue seu saldo, visite a "
3054
  "página do Bookly SMS <a href='%s'>aqui</a>.\n"
3055
  "\n"
3056
+ "Se quiser parar de receber estas notificações, por favor, atualize as suas "
3057
  "configurações <a href='%s'>aqui</a>."
3058
 
3059
  msgid "Bookly SMS - Low Balance"
3086
  msgid "Pending sender ID already exists."
3087
  msgstr "ID do remetente pendente já existe"
3088
 
3089
+ msgid "Recharge not available."
3090
+ msgstr ""
3091
+ "Carregamento não disponível\n"
3092
+
3093
  msgid "Recovery code expired."
3094
  msgstr "Código de recuperação expirado."
3095
 
3097
  msgstr "Erro ao enviar e-mail."
3098
 
3099
  msgid "User not found."
3100
+ msgstr "Utilizador não encontrado."
3101
 
3102
  msgid "Email already in use."
3103
  msgstr "Email já está em uso."
3104
 
3105
  msgid "Dashboard"
3106
+ msgstr "Painel "
3107
 
3108
  msgid "Staff Members"
3109
  msgstr "Funcionários"
3148
  msgstr "Criado em qualquer data"
3149
 
3150
  msgid "Any time"
3151
+ msgstr "A qualquer momento"
3152
 
3153
  msgid "No appointments for selected period."
3154
+ msgstr "Sem reservas para o período selecionado."
3155
 
3156
  msgid "No result found"
3157
  msgstr "Nenhum resultado encontrado"
3165
  msgid "Archived"
3166
  msgstr "Arquivado"
3167
 
3168
+ msgid "Setup your country"
3169
+ msgstr ""
3170
+ "Configure o seu país\n"
 
 
 
 
 
 
 
 
 
 
 
3171
 
3172
+ msgid ""
3173
+ "Please spend a minute to setup your country. This will help us provide you "
3174
+ "with appropriate payment methods when replenishing your account."
3175
+ msgstr ""
3176
+ "Por favor disponha de alguns minutos para configurar o seu país. Isto irá "
3177
+ "nos ajudar a providenciar-lhe os métodos de pagamento mais apropriados ao "
3178
+ "repor a sua conta.\n"
3179
 
3180
+ msgid ""
3181
+ "The country will also be displayed in the invoice on a separate line below "
3182
+ "the company address. Make sure the other fields in the invoice do not "
3183
+ "contain the name of the country."
3184
+ msgstr ""
3185
+ "O país também será exibido na fatura numa linha separada abaixo do endereço "
3186
+ "da empresa. Assegure-se de que os outros campos da fatura não contêm o nome "
3187
+ "do país.\n"
3188
 
3189
+ msgid ""
3190
+ "Your country is the location from where you consume Bookly SMS services and "
3191
+ "is used to provide you with the payment methods available in that country"
3192
+ msgstr ""
3193
+ "O seu país é o local onde utiliza os serviços SMS Bookly e é usado para "
3194
+ "fornecer as formas de pagamento disponíveis naquele país."
3195
 
3196
+ msgid "Set country"
3197
+ msgstr ""
3198
+ "Defina o país\n"
3199
 
3200
+ msgid "I'll do it later"
3201
+ msgstr ""
3202
+ "Faço isso mais tarde\n"
3203
 
3204
  msgid "SMS Notifications"
3205
+ msgstr "Notificações SMS"
 
 
 
 
 
 
 
 
 
 
 
 
3206
 
3207
  msgid "Approved at"
3208
  msgstr "Aprovado em"
3209
 
3210
+ msgid "Change the sender's name to your phone number or any other name"
3211
+ msgstr ""
3212
+ "Altere o nome do emissor para o seu número de telefone ou outro nome qualquer"
3213
+
3214
+ msgid "Click this button to access your Bookly SMS account settings"
3215
+ msgstr ""
3216
+ "Clique neste botão para aceder às definições de conta do seu Bookly SMS\n"
3217
+
3218
  msgid "Log out"
3219
  msgstr "Sair"
3220
 
3221
  msgid "Notifications"
3222
  msgstr "Notificações"
3223
 
 
 
 
 
 
 
3224
  msgid "Purchases"
3225
  msgstr "Compras"
3226
 
3234
  "SMS Notifications (or \"Bookly SMS\") is a service for notifying your "
3235
  "customers via text messages which are sent to mobile phones."
3236
  msgstr ""
3237
+ "Notificações SMS (ou \"Bookly SMS\") é um serviço para notificar os seus "
3238
+ "clientes através de mensagens de texto que são enviadas para telemóveis. "
 
3239
 
3240
  msgid "It is necessary to register in order to start using this service."
3241
  msgstr "É necessário registrar-se para começar a utilizar este serviço."
3244
  "After registration you will need to configure notification messages and top "
3245
  "up your balance in order to start sending SMS."
3246
  msgstr ""
3247
+ "Após o registo, precisa de configurar as mensagens de notificação e "
3248
+ "adicionar crédito ao seu saldo, para iniciar o envio de SMS."
3249
 
3250
  msgid "Thank you for registration."
3251
+ msgstr "Obrigado por se ter registado"
3252
 
3253
  msgid "You're almost ready to get started with Bookly SMS Service."
3254
  msgstr "Está quase pronto para começar a usar o Serviço Bookly SMS."
3271
 
3272
  #, php-format
3273
  msgid "Is %s the correct email?"
3274
+ msgstr "%s este é o email correto ?"
3275
 
3276
  #, php-format
3277
  msgid "If not, you can %s restart the registration process%s."
3278
+ msgstr "Caso contrário, pode %s recomeçar o processo de registo%s."
3279
 
3280
  msgid "Check your spam folder."
3281
  msgstr "Verifique sua pasta de spams."
3282
 
3283
  #, php-format
3284
  msgid "Click %s here %s to resend the email."
3285
+ msgstr "Clicar %s aqui %s para reenviar o email."
3286
 
3287
  msgid "Password"
3288
+ msgstr "Palavra-passe"
3289
 
3290
  msgid "Log In"
3291
  msgstr "Entrar"
3292
 
3293
  msgid "Registration"
3294
+ msgstr "Registo"
3295
 
3296
  msgid "Forgot password"
3297
+ msgstr "Esqueceu a sua palavra-passe"
3298
 
3299
  msgid "Repeat password"
3300
+ msgstr "Repita a palavra-passe"
3301
 
3302
  #, php-format
3303
  msgid ""
3304
  "I accept <a href=\"%1$s\" target=\"_blank\">Service Terms</a> and <a "
3305
  "href=\"%2$s\" target=\"_blank\">Privacy Policy</a>"
3306
  msgstr ""
3307
+ "Eu aceito <a href=\"%1$s\" target=\"_blank\">os Termos de Serviço</a> e <a "
3308
+ "href=\"%2$s\" target=\"_blank\"> a Política de Privacidade</a>"
3309
 
3310
  msgid "Register"
3311
+ msgstr "Registar"
3312
 
3313
  msgid "Enter code from email"
3314
  msgstr "Digite o código recebido no e-mail"
3315
 
3316
  msgid "Repeat new password"
3317
+ msgstr "Repita a nova palavra-passe"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3318
 
3319
  msgid ""
3320
  "If you do not see your country in the list please contact us at <a "
3321
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3322
  msgstr ""
3323
+ "Se não vê seu pais nesta lista, Por favor, entre em contato connosco <a "
3324
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3325
 
3326
  msgid "Administrator phone"
3330
  msgstr "Enviar SMS de teste"
3331
 
3332
  msgid "Save administrator phone"
3333
+ msgstr "Guardar o telefone do administrador"
3334
 
3335
  msgid ""
3336
  "Enter a phone number in international format. E.g. for the United States a "
3347
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
3348
  "Multisite</a> add-on <a href=\"%2$s\">message</a>."
3349
  msgstr ""
3350
+ "Para enviar notificações agendadas consulte o add-on <a href=\"%1$s\">Bookly "
3351
  "Multisite</a> <a href=\"%2$s\">mensagem</a>."
3352
 
3353
  msgid ""
3363
  "our price list. Also please note that prices for messages with custom sender "
3364
  "ID are usually 20% - 25% higher than normal message price."
3365
  msgstr ""
3366
+ "Por favor, tenha conta que nem todos os países, por lei, permitem ID "
3367
  "personalizado de remetente de SMS. Por favor, verifique se determinado país "
3368
+ "permite ID do remetente personalizado na nossa lista de preços. É importante "
3369
+ "saber que os preços de mensagens com ID personalizado de remetente são "
3370
+ "geralmente 20% - 25% superiores quando comparados com o preço de uma "
3371
+ "mensagem normal."
3372
 
3373
  msgid "Request Sender ID"
3374
  msgstr "Solicitar ID de remetente"
3385
  msgid "Can only contain letters or digits (up to 11 characters)."
3386
  msgstr "Só pode conter letras ou dígitos (até 11 caracteres)."
3387
 
3388
+ msgid "Account settings"
3389
+ msgstr "Configurações da conta"
3390
+
3391
+ msgid "Auto-Recharge"
3392
+ msgstr "Recarga Automática "
3393
+
3394
+ msgid "Invoice"
3395
+ msgstr "Fatura"
3396
+
3397
+ msgid "Change password"
3398
+ msgstr "Alterar a palavra-passe"
3399
+
3400
+ #, php-format
3401
+ msgid "We will only charge you when your balance falls bellow %s"
3402
+ msgstr "Apenas iremos cobrar-lhe quando o seu saldo for inferior a %s"
3403
+
3404
+ msgid "Company name"
3405
+ msgstr "Nome da empresa"
3406
+
3407
+ msgid "Company address"
3408
+ msgstr "Endereço da empresa"
3409
+
3410
+ msgid "Company address line 2"
3411
+ msgstr "Endereço da empresa linha 2"
3412
 
3413
+ msgid "You can change the country <a href=\"#\">here</a>"
3414
+ msgstr "Pode mudar o país <a href=\"#\">aqui</a>"
3415
 
3416
+ msgid "Company number"
3417
+ msgstr ""
3418
+ "Número da empresa\n"
3419
+
3420
+ msgid "VAT / Tax number"
3421
+ msgstr "IVA / Identificação fiscal"
3422
+
3423
+ msgid "Additional text to include in invoice"
3424
+ msgstr "Incluir na fatura informação adicional"
3425
+
3426
+ #, php-format
3427
+ msgid "The invoice will be sent to <a href=\"mailto:%1$s\">%1$s</a>"
3428
+ msgstr "A fatura será enviada para <a href=\"mailto:%1$s\">%1$s</a>"
3429
 
3430
+ msgid "Copy invoice to another email(s)"
3431
+ msgstr "Copiar fatura paro outro(s) e-mail(s)."
3432
+
3433
+ msgid "Enter one or more email addresses separated by commas."
3434
+ msgstr "Digite um ou mais endereços de e-mail separados por virgulas."
3435
+
3436
+ msgid "Save invoice settings"
3437
+ msgstr "Salvar as definições de fatura"
3438
+
3439
+ msgid "Send email notification to administrators at low balance"
3440
+ msgstr "Enviar notificação via email para os administradores com saldo baixo"
3441
+
3442
+ msgid "Send weekly summary to administrators"
3443
+ msgstr "Enviar resumo semanal para os administradores"
3444
+
3445
+ msgid ""
3446
+ "Your country is the location from where you consume Bookly SMS services and "
3447
+ "is used to provide you with the payment methods available in that country."
3448
+ msgstr ""
3449
+ "O seu país é o local onde utiliza os serviços SMS Bookly e é usado para "
3450
+ "fornecer as formas de pagamento disponíveis naquele país."
3451
+
3452
+ msgid "Update country"
3453
+ msgstr ""
3454
+ "Atualização o País\n"
3455
+
3456
+ msgid "Old password"
3457
+ msgstr "Palavra-passe antiga"
3458
+
3459
+ msgid "Please accept terms and conditions."
3460
+ msgstr "Por favor, aceite os termos e condições."
3461
 
3462
+ msgid "Passwords don't match"
3463
+ msgstr ""
3464
+ "As palavras-passe não coincidem\n"
3465
 
3466
  msgid "Last month"
3467
  msgstr "Último mês"
3475
  msgid "No records for selected period."
3476
  msgstr "Não há registros para o período selecionado."
3477
 
 
 
 
3478
  msgid ""
3479
+ "To generate an invoice you should fill in company information in Bookly SMS "
3480
+ "Account settings -> Invoice"
3481
  msgstr ""
3482
+ "Para gerar uma fatura, deve preencher as informações da empresa nas "
3483
+ "configurações da Conta SMS Bookly -> Fatura\n"
3484
 
3485
  msgid "enable"
3486
  msgstr "ativar"
3496
  "O serviço está temporariamente indisponível. Por favor, tente novamente mais "
3497
  "tarde."
3498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3499
  msgid "SMS has been sent successfully."
3500
  msgstr "SMS foi enviada com sucesso."
3501
 
3503
  msgstr "Ordem dos funcionários"
3504
 
3505
  msgid "Add staff"
3506
+ msgstr "Adicionar funcionários"
3507
 
3508
  msgid "Quick search staff"
3509
+ msgstr "Pesquisa rápida dos funcionários"
3510
 
3511
  msgid "Categories"
3512
  msgstr "Categorias"
3534
  "os intervalos de tempo no sistema."
3535
 
3536
  msgid "Set slot length as service duration"
3537
+ msgstr "Definir a duração do intervalo de tempo como duração do serviço"
3538
 
3539
  msgid ""
3540
  "Enable this option to make slot length equal to service duration at the Time "
3547
  msgstr "Status padrão do compromisso"
3548
 
3549
  msgid "Select status for newly booked appointments."
3550
+ msgstr "Selecione um status para os compromissos recém-reservados."
3551
 
3552
  msgid "Number of days available for booking"
3553
  msgstr "Número de dias disponíveis para reservas"
3554
 
3555
  msgid "Set how far in the future the clients can book appointments."
3556
  msgstr ""
3557
+ "Definir o quão longe no futuro os clientes podem fazer as suas reservas."
3558
 
3559
  msgid "Display available time slots in client's time zone"
3560
  msgstr "Exibir intervalos de tempo disponíveis no fuso horário do cliente"
3561
 
3562
  msgid "The value is taken from client's browser."
3563
+ msgstr "O valor foi retirado do navegador do cliente."
3564
 
3565
  msgid "Allow staff members to edit their profiles"
3566
  msgstr "Permitir que os funcionários editem os seus perfis"
3571
  "and days off."
3572
  msgstr ""
3573
  "Se esta opção estiver ativada, todos os funcionários que estão associados "
3574
+ "com os utilizadores do WordPress serão capazes de editar os seus perfis, "
3575
+ "serviços, horários e dias de folga."
3576
 
3577
  msgid "Method to include Bookly JavaScript and CSS files on the page"
3578
  msgstr "Método para incluir o Bookly JavaScript e arquivos CSS na página"
3591
 
3592
  msgid "Help us improve Bookly by sending anonymous usage stats"
3593
  msgstr ""
3594
+ "Ajude-nos a melhorar o Bookly enviando estatísticas anónimas de utilização"
3595
 
3596
  msgid ""
3597
  "Allow the plugin to set a Powered by Bookly notice on the booking widget to "
3598
  "spread information about the plugin. This will allow the team to improve the "
3599
  "product and enhance its functionality"
3600
  msgstr ""
3601
+ "Permita que o plugin exiba a informação Criada pelo Bookly no widget de "
3602
+ "reservas e divulgue a informação acerca do plugin. Isto vai ajudar a equipa "
3603
+ "a aperfeiçoar o produto e melhorar suas funcionalidades"
3604
 
3605
  msgid "Caching of pages with booking form"
3606
  msgstr "Páginas em cache com formulário de reserva."
3611
  "form."
3612
  msgstr ""
3613
  "Selecione \"Impedir\" se quiser que Bookly evite cache por plugins de cache "
3614
+ "de terceiros, adicionando uma constante DONOTCACHEPAGE nas páginas com "
3615
  "formulário de reserva."
3616
 
3617
  msgid "Allow"
3633
  msgstr "Empresa"
3634
 
3635
  msgid "Business Hours"
3636
+ msgstr "Horário de Funcionamento "
3637
 
3638
  msgid "Holidays"
3639
  msgstr "Feriados"
3640
 
3641
  msgid "Approve appointment URL (success)"
3642
+ msgstr "URL de aprovação da reserva (sucesso)"
3643
 
3644
  msgid ""
3645
  "Set the URL of a page that is shown to staff after they successfully "
3646
  "approved the appointment."
3647
  msgstr ""
3648
+ "Defina a URL de uma página que é exibida para os funcionários depois de "
3649
+ "aprovarem a reserva com êxito."
3650
 
3651
  msgid "Approve appointment URL (denied)"
3652
+ msgstr "URL de aprovação da reserva (negada)"
3653
 
3654
  msgid ""
3655
  "Set the URL of a page that is shown to staff when the approval of "
3656
  "appointment cannot be done (due to capacity, changed status, etc.)."
3657
  msgstr ""
3658
+ "Defina a URL da página que é exibida para o funcionário quando a aprovação "
3659
+ "da reserva não pode ser feita (por causa da capacidade, status alterado, etc."
3660
+ ")."
3661
 
3662
  msgid "Cancel appointment URL (success)"
3663
+ msgstr "URL de cancelamento da reserva (sucesso)"
3664
 
3665
  msgid ""
3666
  "Set the URL of a page that is shown to clients after they successfully "
3667
  "cancelled their appointment."
3668
  msgstr ""
3669
+ "Defina a URL da página que é exibida aos clientes após estes cancelarem a da "
3670
+ "reserva com êxito."
3671
 
3672
  msgid "Cancel appointment URL (denied)"
3673
+ msgstr "URL para cancelamento da da reserva (negado)"
3674
 
3675
  msgid ""
3676
  "Set the URL of a page that is shown to clients when the cancellation of "
3677
  "appointment is not available anymore."
3678
  msgstr ""
3679
+ "Defina a URL da página que é exibida aos clientes quando o cancelamento da "
3680
+ "da reserva não está disponível."
3681
 
3682
  msgid "Reject appointment URL (success)"
3683
+ msgstr "URL da reserva rejeitada (sucesso)"
3684
 
3685
  msgid ""
3686
  "Set the URL of a page that is shown to staff after they successfully "
3687
  "rejected the appointment."
3688
  msgstr ""
3689
+ "Definir a URL da página exibida para os funcionários depois de estes "
3690
+ "rejeitarem uma reserva com êxito."
3691
 
3692
  msgid "Reject appointment URL (denied)"
3693
+ msgstr "URL da da reserva rejeitada (negado)"
3694
 
3695
  msgid ""
3696
  "Set the URL of a page that is shown to staff when the rejection of "
3697
  "appointment cannot be done (due to changed status, etc.)."
3698
  msgstr ""
3699
+ "Definir a URL da página exibida para os funcionários quando a rejeição da da "
3700
+ "reserva não pode ser feita (devido a status alterado, etc.)."
3701
 
3702
  msgid ""
3703
  "Please note, the business hours below work as a template for all new staff "
3706
  "sure to check the schedule of your staff members if you have some unexpected "
3707
  "behavior of the booking system."
3708
  msgstr ""
3709
+ "Por favor, observe que o horário de funcionamento abaixo funciona como um "
3710
+ "modelo para todos os novos funcionários. Para ver uma lista das faixas "
3711
+ "horárias disponíveis, o sistema tem em conta apenas o horário dos "
3712
+ "funcionários, e não o horário comercial da empresa. Certifique-se de "
3713
+ "verificar o horário dos seus funcionários, caso algum comportamento "
3714
+ "inesperado do sistema de reserva ocorra."
3715
+
3716
+ msgid "internal note"
3717
+ msgstr ""
3718
+ "nota interna\n"
3719
 
3720
  msgid "duration of service"
3721
  msgstr "duração do serviço"
3722
 
3723
  msgid "Appointment with one participant"
3724
+ msgstr "Reserva com um participante"
3725
 
3726
  msgid "Appointment with many participants"
3727
+ msgstr "Reserva com muitos participantes"
3728
 
3729
  msgid "Set order of the fields in calendar"
3730
  msgstr "Definir a ordem dos campos no calendário"
3733
  msgstr "Moeda"
3734
 
3735
  msgid "Price format"
3736
+ msgstr "Formato do preço"
3737
 
3738
  msgid "Phone field default country"
3739
  msgstr "País padrão do campo de telefone"
3744
  "client."
3745
  msgstr ""
3746
  "Selecione um país padrão para o campo de telefone no passo \"Detalhes\" da "
3747
+ "reserva. Também pode deixar que o Bookly determine o país com base no "
3748
  "endereço IP do cliente."
3749
 
3750
  msgid "Guess country by user's IP address"
3751
+ msgstr "Adivinhar o país por endereço IP do utilizador"
3752
 
3753
  msgid "Default country code"
3754
  msgstr "Código padrão de país"
3761
  "client enters their phone as \"(600) 555-2222\" the resulting phone number "
3762
  "to send the SMS to will be \"+1600555222\"."
3763
  msgstr ""
3764
+ "Os seus clientes devem ter os seus números de telefone no formato "
3765
+ "internacional, para receberem mensagens de texto. No entanto, pode "
3766
+ "especificar um código de país padrão que será utilizado como prefixo para "
3767
+ "todos os números de telefone que não começam com \"+\" ou \"00\". Por "
3768
+ "exemplo, se digitar \"1\" como o código do país e um cliente digitar o seu "
3769
+ "telefone como \"(600) 555-2222\", o número de telefone resultante para "
3770
+ "enviar a SMS será \"+1600555222\"."
3771
 
3772
  msgid "Remember personal information in cookies"
3773
+ msgstr "Lembrar as informações pessoais nas cookies"
3774
 
3775
  msgid ""
3776
  "If this setting is enabled then returning customers will have their personal "
3777
  "information fields filled in at the Details step with the data previously "
3778
  "saved in cookies."
3779
  msgstr ""
3780
+ "Se esta configuração estiver ativada, os clientes que retornarem terão os "
3781
+ "seus campos de informações pessoais preenchidos na etapa Detalhes com os "
3782
+ "dados salvos anteriormente nos cookies."
3783
 
3784
  msgid "Allow duplicate customers"
3785
  msgstr "Permitir clientes duplicados"
3788
  "If enabled, a new user will be created if any of the registration data "
3789
  "during the booking is different."
3790
  msgstr ""
3791
+ "Se ativado, um novo utilizador será criado se algum dos dados de registo "
3792
+ "durante a reserva for diferente."
3793
 
3794
  msgid "Show confirmation dialog before updating customer's data"
3795
  msgstr ""
3810
  "correct this problem."
3811
  msgstr ""
3812
  "O carrinho do WooCommerce não está configurado. Siga o <a href=\"%s\">"
3813
+ "link</a> para corrigir este problema."
3814
 
3815
  msgid "Services order"
3816
  msgstr "Ordem dos serviços"
3817
 
3818
  msgid "Add service"
3819
+ msgstr "Adicionar um serviço"
3820
 
3821
  msgid "Quick search services"
3822
  msgstr "Pesquisa rápida serviços"
3829
  "separately for each staff member. Do you want to update it in staff settings "
3830
  "too?"
3831
  msgstr ""
3832
+ "Está prestes a mudar uma definição de serviço que também é configurada "
3833
+ "separadamente para cada funcionário. Quer atualizá-la nas definições dos "
3834
+ "funcionários também?"
3835
 
3836
  msgid "Remember my choice"
3837
+ msgstr "Lembrar-me da minha escolha"
3838
 
3839
  msgid "No, update just here in services"
3840
  msgstr "Não, apenas atualizar aqui em serviços"
3853
 
3854
  #, php-format
3855
  msgid "This text can be inserted into notifications with %s code."
3856
+ msgstr "Este texto pode ser inserido em notificações com o código %s."
3857
 
3858
  msgid "Start and end times of the appointment"
3859
+ msgstr "Horas de início e término da reserva"
3860
 
3861
  msgid ""
3862
  "Allows to set the start and end times for an appointment for services with "
3863
  "the duration of 1 day or longer. This time will be displayed in "
3864
  "notifications to customers, backend calendar and codes for booking form."
3865
  msgstr ""
3866
+ "Permite definir os horários de início e término de uma reserva para serviços "
3867
+ "com a duração de 1 dia ou mais. Este horário será exibido nas notificações "
3868
+ "para os clientes, no calendário do backend e nos códigos para o formulário "
3869
+ "de reserva."
3870
 
3871
  msgid "Slot length as service duration"
3872
+ msgstr "Intervalo de tempo enquanto duração do serviço."
3873
 
3874
  msgid ""
3875
  "The time interval which is used as a step when building all time slots for "
3876
  "the service at the Time step. The setting overrides global settings in "
3877
+ "Settings > General. Use Default to apply global settings."
3878
  msgstr ""
3879
+ "O intervalo de tempo que é usado como uma etapa para criar todos os horários "
3880
+ "para o serviço na etapa Hora. A configuração substitui as configurações "
3881
+ "globais nas Configurações Gerais. Use Padrão para poder aplicar as "
3882
+ "configurações globais."
3883
+
3884
+ msgid "The service will be created with the visibility of Private."
3885
+ msgstr ""
3886
+ "O serviço será criado com a visibilidade de Privado.\n"
3887
+
3888
+ msgid "Duplicate"
3889
+ msgstr "Duplicar"
3890
 
3891
  msgid "You must select at least one repeat option for recurring services."
3892
  msgstr ""
3902
  msgstr[0] "%d serviço"
3903
  msgstr[1] "%d serviços"
3904
 
3905
+ #, php-format
3906
+ msgid "Copy of %s"
3907
+ msgstr "Cópia de %s"
3908
+
3909
+ msgid "Auto-refresh Calendar"
3910
+ msgstr "Atualizar automaticamente o Calendário"
3911
+
3912
+ msgid "Every 1 minute"
3913
+ msgstr ""
3914
+ "A cada 1 minuto\n"
3915
+
3916
+ msgid "Every 5 minutes"
3917
+ msgstr ""
3918
+ "A cada 5 minuto\n"
3919
+
3920
+ msgid "Every 15 minutes"
3921
+ msgstr ""
3922
+ "A cada 15 minuto\n"
3923
+
3924
+ msgid "Disable"
3925
+ msgstr ""
3926
+ "Desativar\n"
3927
+
3928
  msgid "Welcome to Bookly and thank you for your choice!"
3929
  msgstr "Bem-vindo ao Bookly e obrigado pela sua escolha!"
3930
 
3934
  "Bookly your clients can see your availability, pick the services you provide,"
3935
  " book them online and much more."
3936
  msgstr ""
3937
+ "O Bookly simplificará o processo de reservas para os seus clientes. Este "
3938
+ "plugin cria outro ponto de contato para converter os seus visitantes em "
3939
+ "clientes. Com o Bookly, os seus clientes podem ver a sua disponibilidade, "
3940
+ "escolher serviços que fornece, reservá-los online e muito mais."
3941
 
3942
  msgid ""
3943
  "To start using Bookly, you need to set up the services you provide and "
3944
  "specify the staff members who will provide those services."
3945
  msgstr ""
3946
+ "Para começar a usar o Bookly, precisa de definir os serviços que fornece e "
3947
+ "especificar os funcionários que fornecerão esses serviços."
3948
 
3949
  msgid ""
3950
  "Add a staff member (you can add only one service provider with a free "
3951
  "version of Bookly)."
3952
  msgstr ""
3953
+ "Adicione um funcionário (apenas pode adicionar somente um prestador de "
3954
  "serviço com a versão gratuita do Bookly)."
3955
 
3956
  msgid ""
3957
  "Add services you provide (up to five with a free version of Bookly) and "
3958
  "assign them to a staff member."
3959
  msgstr ""
3960
+ "Adicione os serviços que fornece (até cinco com a versão gratuita do Bookly) "
3961
+ "e atribua a um funcionário."
3962
 
3963
  msgid ""
3964
  "Go to Posts/Pages and click on the Add Bookly booking form button in the "
3965
  "page editor to publish the booking form on your website."
3966
  msgstr ""
3967
+ "Vá para Publicações/Páginas e clique no botão Adicionar formulário de "
3968
+ "reserva Bookly no editor de página para publicar o formulário no seu website."
3969
 
3970
  #, php-format
3971
  msgid ""
3976
  "install other add-ons for Bookly, and includes six months of customer "
3977
  "support."
3978
  msgstr ""
3979
+ "O Bookly pode impulsionar as suas vendas e crescer com o seu negócio. Tenha "
3980
+ "acesso a mais opções e remova os limites ao atualizar para a versão paga com "
3981
+ "o <a href=\"%s\" target=\"_blank\">add-on Bookly Pro</a>, que lhe permite "
3982
+ "utilizar um enorme número de opções adicionais e configurações para os "
3983
+ "serviços de reservas, instalar outros add-ons para o Bookly e ainda inclui "
3984
+ "seis meses de suporte ao cliente."
3985
 
3986
  msgid "Add Staff Members"
3987
+ msgstr "Adicione funcionários"
3988
 
3989
  msgid "Add Services"
3990
+ msgstr "Adicione serviços"
3991
 
3992
  msgid "Try Bookly Pro add-on"
3993
  msgstr "Experimente o add-on Bookly Pro"
3999
  msgstr "Ver detalhes para mais itens"
4000
 
4001
  msgid "Edit custom CSS"
4002
+ msgstr "Edite CSS personalizado"
4003
 
4004
  msgid "Set up your custom CSS styles"
4005
+ msgstr "Configure os seus estilos CSS personalizados"
4006
 
4007
  msgid "Show form progress tracker"
4008
+ msgstr "Ver o formulário de monitorização do progresso"
4009
 
4010
  msgid "Align buttons to the left"
4011
  msgstr "Alinhar os botões à esquerda"
4022
  "like to keep or remove from the booking form. Click Insert, and the booking "
4023
  "form will be added to the page."
4024
  msgstr ""
4025
+ "Abra a página na qual deseja adicionar o formulário de reserva no modo de "
4026
+ "edição de página e clique no botão \"Adicionar formulário de reserva "
4027
+ "Bookly\". Escolha quais campos que quer manter ou remover do formulário de "
4028
  "reserva. Clique em Inserir e o formulário de reserva será adicionado à "
4029
  "página."
4030
 
4035
  msgstr "Tornar a seleção dos empregados obrigatória"
4036
 
4037
  msgid "Show service price next to employee name"
4038
+ msgstr "Mostrar preço do serviço ao lado do nome do funcionário"
4039
 
4040
  msgid "Show service duration next to service name"
4041
  msgstr "Mostrar a duração do serviço ao lado do nome do serviço"
4044
  msgstr "Mostrar calendário"
4045
 
4046
  msgid "Show blocked timeslots"
4047
+ msgstr "Mostrar os intervalos de tempo bloqueados"
4048
 
4049
  msgid "Show each day in one column"
4050
+ msgstr "Mostrar cada dia numa coluna"
4051
 
4052
  msgid "Phone field required"
4053
  msgstr "O campo de telefone é necessário"
4063
 
4064
  msgid "Do not forget to update your email and SMS codes for customer names"
4065
  msgstr ""
4066
+ "Não se esqueça de atualizar o seu e-mail e códigos SMS para os nomes dos "
4067
+ "clientes"
4068
 
4069
  msgid "Use first and last name instead of full name"
4070
  msgstr "Use o primeiro e o último nome ao invés do nome completo"
4073
  msgstr "Campo de confirmação de e-mail"
4074
 
4075
  msgid "Show notes field"
4076
+ msgstr "Exibir o campo de observações"
4077
 
4078
  msgid ""
4079
  "The booking form on this step may have different set or states of its "
4082
  "and click on the underlined text to edit."
4083
  msgstr ""
4084
  "O formulário de reserva nesta etapa pode ter diferentes conjuntos ou estados "
4085
+ "dos seus elementos. Depende de várias condições, tais como add-ons "
4086
  "instalados/ativados, configuração de definições ou escolhas feitas nos "
4087
  "passos anteriores. Selecione a opção e clique no texto sublinhado para "
4088
  "editar."
4095
 
4096
  msgid "Form view in case of payment has been accepted for processing"
4097
  msgstr ""
4098
+ "Visualização do formulário caso o pagamento seja aceite para o processamento"
4099
 
4100
  msgid "Visible when the chosen time slot has been already booked"
4101
  msgstr "Visível quando o intervalo de tempo escolhido já foi reservado"
4102
 
4103
  msgid "Visible to non-logged in customers only"
4104
+ msgstr "Visível para os que não fizeram login apenas em clientes"
4105
 
4106
  msgid "Previous month"
4107
  msgstr "Mês anterior"
4108
 
4109
  msgid "Your custom CSS was saved. Please refresh the page to see your changes."
4110
  msgstr ""
4111
+ "O seu CSS personalizado foi guardado. Atualize a página para ver as suas "
4112
  "alterações."
4113
 
4114
  msgid "New customer"
4115
  msgstr "Novo cliente"
4116
 
4117
  msgid "Merge with"
4118
+ msgstr "Combinar com"
4119
 
4120
  msgid "Select for merge"
4121
+ msgstr "Selecionar para combinar"
4122
 
4123
  msgid "Merge list"
4124
+ msgstr "Combinar a lista"
4125
 
4126
  msgid "Merge customers"
4127
+ msgstr "Combinar clientes"
4128
 
4129
  msgid ""
4130
  "You are about to merge customers from the merge list with the selected one. "
4131
  "This will result in losing the merged customers and moving all their "
4132
  "appointments to the selected customer. Are you sure you want to continue?"
4133
  msgstr ""
4134
+ "Está prestes a combinar os clientes da lista de clientes com o selecionado. "
4135
+ "Isto vai resultar na perda dos clientes combinados e irá mover todos as suas "
4136
+ "reservas para o cliente selecionado. Tem certeza que quer continuar?"
4137
 
4138
  msgid "Merge"
4139
+ msgstr "Combinar"
4140
 
4141
  msgid "No customers found."
4142
  msgstr "Nenhum cliente encontrado."
4199
  msgid ""
4200
  "See the number of appointments and total revenue for the selected period"
4201
  msgstr ""
4202
+ "Consulte o número de reserva e a receita total para o período selecionado"
 
4203
 
4204
  msgid "end date of appointment"
4205
+ msgstr "data final da reserva"
4206
 
4207
  msgid "end time of appointment"
4208
+ msgstr "hora final da reserva"
4209
 
4210
  msgid "cart information"
4211
  msgstr "informações do carrinho"
4220
  msgstr "fuso horário do cliente"
4221
 
4222
  msgid "URL of approve appointment link (to use inside <a> tag)"
4223
+ msgstr "URL para o link da aprovação da reserva (para usar dentro da tag <a>)"
 
4224
 
4225
  msgid ""
4226
  "URL of cancel appointment link with confirmation (to use inside <a> tag)"
4229
 
4230
  msgid "URL of cancel appointment link (to use inside <a> tag)"
4231
  msgstr ""
4232
+ "URL para o link de cancelamento de reserva (para usar dentro da tag <a>)"
4233
 
4234
  msgid "reason you mentioned while deleting appointment"
4235
+ msgstr "o motivo que mencionou ao excluir a reserva"
4236
 
4237
  msgid ""
4238
  "URL for adding event to client's Google Calendar (to use inside <a> tag)"
4239
  msgstr ""
4240
+ "URL para a adição de eventos para o Calendário Google do cliente (para usar "
4241
  "dentro da tag <a>)"
4242
 
4243
  msgid "URL of reject appointment link (to use inside <a> tag)"
4244
+ msgstr "URL do link da reserva rejeitada (usar dentro de uma tag <a>)"
4245
 
4246
  msgid "payment status"
4247
  msgstr "status de pagamento"
4256
  msgstr "data do dia seguinte"
4257
 
4258
  msgid "customer new password"
4259
+ msgstr "nova palavra-passe do cliente"
4260
 
4261
  msgid "customer new username"
4262
+ msgstr "novo nome de utilizador do cliente"
4263
 
4264
  msgid "site address"
4265
  msgstr "endereço do site"
4268
  msgstr "logotipo da empresa"
4269
 
4270
  msgid "cancel appointment link"
4271
+ msgstr "link para cancelamento da reserva"
4272
 
4273
  msgid "photo of staff"
4274
  msgstr "foto do funcionário"
4277
  msgstr "Configurações Gerais"
4278
 
4279
  msgid "Scheduled notifications retry period"
4280
+ msgstr "Período da nova tentativa de notificações agendadas"
4281
 
4282
  msgid ""
4283
  "Set period of time when system will attempt to deliver notification to user. "
4284
  "Notification will be discarded after period expiration."
4285
  msgstr ""
4286
+ "Defina o período em que o sistema tentará entregar uma notificação ao "
4287
+ "utilizador. A notificação será descartada após o fim do período."
 
4288
 
4289
  msgid "Save settings"
4290
  msgstr "Guardar definições"
4291
 
4292
  msgid "Test email notifications"
4293
+ msgstr "Teste de notificações via email"
4294
 
4295
  msgid "To email"
4296
  msgstr "Para o e-mail"
4305
  msgstr "Enviar"
4306
 
4307
  msgid "Email notifications"
4308
+ msgstr "Notificações via email"
4309
 
4310
  msgid "Sender name"
4311
  msgstr "Nome do remetente"
4321
  "use Text mode of rich-text editors below. On some servers only text emails "
4322
  "are sent successfully."
4323
  msgstr ""
4324
+ "HTML permite formatação, cores, fontes, posicionamento, etc. Com o Texto "
4325
  "deve usar o modo Texto de editores rich-text abaixo. Em alguns servidores "
4326
  "apenas e-mails de texto são enviados com sucesso."
4327
 
4336
  "a sender email address for notifications sent to staff members and "
4337
  "administrators."
4338
  msgstr ""
4339
+ "Se esta opção for ativada, o endereço de e-mail do cliente é usado como um "
4340
+ "endereço de e-mail de remetente para notificações enviadas para os "
4341
  "funcionários e administradores."
4342
 
4343
  msgid "Sent successfully."
4354
  "you choose to hide this field, please be sure to select a default value for "
4355
  "it"
4356
  msgstr ""
4357
+ "Por favor, esteja ciente de que um valor neste campo é obrigatório no "
4358
+ "frontend. Caso opte por ocultar este campo, selecione um valor padrão para o "
4359
+ "mesmo\n"
4360
 
4361
  msgid "Default value for employee select"
4362
+ msgstr "Valor padrão do funcionário escolhido"
4363
 
4364
  msgid "Week days"
4365
  msgstr "Dias da semana"
4368
  msgstr "Intervalo de tempo"
4369
 
4370
  msgid "Add Bookly booking form"
4371
+ msgstr "Adicionar o formulário de reserva no Bookly "
4372
 
4373
  msgid "Insert Appointment Booking Form"
4374
  msgstr "Insira formulário de reserva de compromissos"
4375
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4376
  msgid "Send tax information"
4377
  msgstr "Enviar informações de tributação"
4378
 
4390
  "gateway used. Specify a percentage or fixed amount. Use minus (\"-\") sign "
4391
  "for decrease/discount."
4392
  msgstr ""
4393
+ "Esta configuração afeta o custo da reserva de acordo com o gateway de "
4394
+ "pagamento utilizado. Especifique uma percentagem ou uma quantia fixa. Use "
4395
+ "sinal de menos (\"-\") para diminuir / desconto."
4396
 
4397
  msgid "Enter a value"
4398
  msgstr "Digite um valor"
4401
  msgstr "Adicionar"
4402
 
4403
  msgid "Reset"
4404
+ msgstr "Recuperar"
4405
 
4406
  msgid "Notification settings"
4407
  msgstr "Definições de notificações"
4414
  "disabled and no messages are sent until you activate the notification."
4415
  msgstr ""
4416
  "Escolha se a notificação está ativada e as mensagens são enviadas ou se está "
4417
+ "desativada e nenhuma mensagem será enviada até que ative a notificação."
4418
 
4419
  msgid "Recipients"
4420
  msgstr "Destinatários"
4441
  "This notification is sent once for a booking made by a customer and includes "
4442
  "all cart items."
4443
  msgstr ""
4444
+ "Esta notificação é enviada uma única vez para uma reserva feita por um "
4445
+ "cliente e inclui todos os itens do carrinho."
4446
 
4447
  msgid "Save notification"
4448
  msgstr "Salvar notificação"
4451
  msgstr "Códigos"
4452
 
4453
  msgid "Appointment status"
4454
+ msgstr "Status da reserva"
4455
 
4456
  msgid ""
4457
  "Select what status an appointment should have for the notification to be "
4458
  "sent."
4459
  msgstr ""
4460
+ "Selecione o status que uma reserva deve ter para que a notificação seja "
4461
  "enviada."
4462
 
4463
  msgid ""
4497
  msgstr "Nova notificação"
4498
 
4499
  msgid "Select from WP users"
4500
+ msgstr "Selecione a partir dos utilizadores WP"
4501
 
4502
  msgid ""
4503
  "If this staff member requires separate login to access personal calendar, a "
4504
  "regular WP user needs to be created for this purpose."
4505
  msgstr ""
4506
+ "Se este funcionário solicitar um login separado para aceder ao calendário "
4507
+ "pessoal, um utilizador normal do WP precisa ser criado para este propósito."
4508
 
4509
  msgid ""
4510
  "User with \"Administrator\" role will have access to calendars and settings "
4511
  "of all staff members, user with another role will have access only to "
4512
  "personal calendar and settings."
4513
  msgstr ""
4514
+ "Um utilizador com a função de \"Administrador\" terá acesso aos calendários "
4515
+ "e definições de todos os funcionários. Um utilizador com outra função terá "
4516
+ "acesso apenas ao calendário pessoal e as suas definições."
4517
 
4518
  msgid ""
4519
  "If you leave this field blank, this staff member will not be able to access "
4520
  "personal calendar using WP backend."
4521
  msgstr ""
4522
+ "Se deixar este campo vazio, o funcionário não será capaz de aceder ao "
4523
  "calendário pessoal através da área de administração do WP."
4524
 
4525
  msgid "Archive"
4536
  msgstr "Nenhum serviço encontrado. Por favor adicione serviços."
4537
 
4538
  msgid "Add Service"
4539
+ msgstr "Adicione um Serviço"
4540
 
4541
  msgid "Days Off"
4542
  msgstr "Dias de folga"
4545
  msgstr "A data já passou."
4546
 
4547
  msgid "Create staff"
4548
+ msgstr "Criar equipa"
4549
 
4550
  msgid "Edit staff"
4551
  msgstr "Editar funcionário"
4557
  msgstr "Erro ao adicionar o intervalo da folga"
4558
 
4559
  msgid "Adjust the order of staff members in your booking form"
4560
+ msgstr "Ajuste a ordem dos funcionários no formulário de reservas"
4561
 
4562
  msgid "Complete payment"
4563
+ msgstr "Complete o pagamento"
4564
 
4565
  msgid "Bind payment"
4566
  msgstr "Vincular pagametno"
4578
  msgstr "A duração do período selecionado não coincide com a duração do serviço"
4579
 
4580
  msgid "The selected period is occupied by another appointment"
4581
+ msgstr "O período selecionado está ocupado com outra reserva"
4582
 
4583
  msgid "Selected period doesn't match provider's schedule"
4584
  msgstr "O período selecionado não é igual ao horário do fornecedor"
4587
  msgstr "O período selecionado não é igual ao horário do serviço"
4588
 
4589
  msgid "Booking exceeds the working hours limit for staff member"
4590
+ msgstr "A reserva excede o limite de horas de trabalho do funcionário"
4591
 
4592
  msgid "Booking exceeds your working hours limit"
4593
+ msgstr "A reserva excede o seu horário de trabalho"
4594
 
4595
  msgid "Selected / maximum"
4596
  msgstr "Selecionado / máximo"
4617
  msgstr "Observação interna"
4618
 
4619
  msgid "Send if new or status changed"
4620
+ msgstr "Enviar se for novo ou o status modificar"
4621
 
4622
  msgid "Send as for new"
4623
  msgstr "Enviar como novo"
4630
  "You can also send notifications as if all customers were added as new by "
4631
  "selecting \"Send as for new\"."
4632
  msgstr ""
4633
+ "Se adicionou um novo cliente a esta reserva ou alterou o status da reserva "
4634
+ "para um cliente existente e, para estes registros, quer que as notificações "
4635
+ "correspondentes por email ou SMS sejam enviadas aos destinatários, selecione "
4636
+ "a opção \"Enviar se novo ou o status for alterado\" antes de clicar em "
4637
+ "Enviar. Também pode enviar notificações como se todos os clientes tivessem "
4638
+ "sido adicionados como novos, selecionando \"Enviar como novo\"."
 
4639
 
4640
  msgid "Edit appointment"
4641
+ msgstr "Editar reserva"
4642
 
4643
  msgid "Start time must not be empty"
4644
  msgstr "Hora de início não pode estar vazia"
4654
  msgstr "O número de clientes não deve ser maior que %d"
4655
 
4656
  msgid "Could not save appointment in database."
4657
+ msgstr "Não foi possível guardar a reserva no banco de dados."
4658
 
4659
  #, php-format
4660
  msgid "%s has reached the limit of bookings for this service"
4664
  "You are going to delete appointment(s). Notifications will be sent in "
4665
  "accordance with your settings."
4666
  msgstr ""
4667
+ "Vai apagar a(s) reserva(s). Notificações serão enviadas de acordo com as "
4668
+ "suas configurações."
4669
 
4670
  msgid "New Customer"
4671
  msgstr "Novo Cliente"
4672
 
4673
  msgid "Delete customers"
4674
+ msgstr "Apagar clientes"
4675
 
4676
  msgid ""
4677
  "You are going to delete customers with existing bookings. Notifications will "
4678
  "not be sent to them."
4679
  msgstr ""
4680
+ "Vai apagar clientes com reservas existentes. As notificações não serão "
4681
+ "enviadas para estes."
4682
 
4683
  msgid "You are going to delete customers, are you sure?"
4684
+ msgstr "Vai apagar clientes, tem a certeza?"
4685
 
4686
  msgid "Delete customers with existing bookings"
4687
+ msgstr "Apagar clientes com reservas existentes"
4688
 
4689
  msgid "Delete customers' WordPress accounts if there are any"
4690
+ msgstr "Apagar as contas WordPress dos clientes, se houver"
4691
 
4692
  msgid "Deleted Customer"
4693
+ msgstr "Cliente apagado"
4694
 
4695
  msgid ""
4696
  "You are going to delete item which is involved in upcoming appointments. All "
4697
  "related appointments will be deleted. Please double check and edit "
4698
  "appointments before this item deletion if needed."
4699
  msgstr ""
4700
+ "Vai apagar um item que tem reservas futuras. Todos as reservas relacionados "
4701
+ "serão apagadas. Por favor, confirme novamente e edite as reservas antes de "
4702
+ "apagar este item, caso necessário."
 
4703
 
4704
  msgid "Edit appointments"
4705
+ msgstr "Editar reservas "
4706
 
4707
  msgid "All unsaved changes will be lost."
4708
  msgstr "Todas as mudanças não guardadas serão perdidas."
4711
  msgstr "Não guardar"
4712
 
4713
  msgid "Create service"
4714
+ msgstr "Criar um serviço"
4715
 
4716
  msgid "Edit service"
4717
+ msgstr "Editar um serviço"
4718
 
4719
  msgid "Advanced"
4720
  msgstr "Avançado"
4723
  msgstr "Definir a ordem dos serviços no formulário de reservas"
4724
 
4725
  msgid "Add category"
4726
+ msgstr "Adicione uma categoria"
4727
 
4728
  msgid "Adjust the order of categories in your booking form"
4729
+ msgstr "Ajustar a ordem das categorias no formulário de reservas"
4730
 
4731
  msgid "Table settings"
4732
  msgstr "Configurações da tabela"
4743
  msgid "Edit email notification"
4744
  msgstr "Editar notificação de email"
4745
 
4746
+ msgid "Thank you"
4747
+ msgstr ""
4748
+ "Obrigado\n"
4749
+
4750
+ msgid "Your payment has been accepted for processing"
4751
+ msgstr "O seu pagamento foi aceite para processamento"
4752
+
4753
+ msgid "Back to the list of amounts"
4754
+ msgstr "Voltar à lista dos montantes"
4755
+
4756
+ msgid "Please select a payment method"
4757
+ msgstr ""
4758
+ "Por favor selecione um método de pagamento\n"
4759
+
4760
+ msgid "Credit card"
4761
+ msgstr ""
4762
+ "Cartão de crédito\n"
4763
+
4764
+ msgid "Account recharge"
4765
+ msgstr "Recarregar a conta"
4766
+
4767
+ msgid "Oops"
4768
+ msgstr "Oops"
4769
+
4770
+ msgid "Your payment has been cancelled"
4771
+ msgstr "O seu pagamento foi cancelado"
4772
+
4773
+ msgid "Please select an amount and recharge your account"
4774
+ msgstr ""
4775
+ "Por favor selecione um montante e carregue a sua conta\n"
4776
+
4777
+ msgid "Pay using"
4778
+ msgstr "Pague com"
4779
+
4780
+ msgid "Continue with"
4781
+ msgstr ""
4782
+ "Continuar com\n"
4783
+
4784
+ msgid "Auto-Recharge has been enabled"
4785
+ msgstr "O carregamento automático foi ativado"
4786
+
4787
+ msgid "Auto-Recharge has been cancelled"
4788
+ msgstr "O carregamento automático foi cancelado"
4789
+
4790
+ msgid "current<br/>balance"
4791
+ msgstr "saldo<br/>atual"
4792
+
4793
+ msgid "Recharge"
4794
+ msgstr "Carregamento"
4795
+
4796
+ msgid "users choice"
4797
+ msgstr ""
4798
+ "escolha dos utilizadores\n"
4799
+
4800
+ msgid "Buy now"
4801
+ msgstr "Comprar agora"
4802
+
4803
+ msgid "Best offer"
4804
+ msgstr "Melhor oferta"
4805
+
4806
+ msgid "Users choice"
4807
+ msgstr ""
4808
+ "Escolha dos utilizadores\n"
4809
+
4810
+ msgid "Other options"
4811
+ msgstr ""
4812
+ "Outras opções\n"
4813
+
4814
+ msgid "best offer"
4815
+ msgstr "melhor oferta"
4816
+
4817
+ msgid "Select amount of Auto-Recharge"
4818
+ msgstr ""
4819
+ "Selecione o montante para o carregamento automático\n"
4820
+
4821
+ msgid "Enable"
4822
+ msgstr ""
4823
+ "Habilitar\n"
4824
+
4825
+ msgid "Disable Auto-Recharge"
4826
+ msgstr "Desativar Carregamento Automático"
4827
+
4828
+ msgid "Are you sure you want to disable Auto-Recharge?"
4829
+ msgstr "Tem a certeza que deseja desativar o carregamento automático."
4830
+
4831
+ msgid "Turn on Auto-Recharge and get even more"
4832
+ msgstr ""
4833
+ "Ative o carregamento automático e ganhe ainda mais\n"
4834
+
4835
+ msgid "Auto-Recharge disabled"
4836
+ msgstr "Carregamento Automático desativado"
4837
+
4838
+ #, php-format
4839
+ msgid "Can't disable Auto-Recharge, please contact us at %s"
4840
+ msgstr ""
4841
+ "Não é possível desativar o carregamento automático, por favor entre em "
4842
+ "contacto connosco em %s"
4843
+
4844
+ msgid "Auto-Recharge has failed, please replenish your balance directly."
4845
+ msgstr ""
4846
+ "O Carregamento Automático falhou. Por favor, recarregue o seu saldo "
4847
+ "diretamente."
4848
+
4849
+ msgid "Card payment has failed, please use another payment option"
4850
+ msgstr "Falha no pagamento com cartão, por favor use outra opção de pagamento"
4851
+
4852
+ msgid "Payment has failed, please use another payment option"
4853
+ msgstr ""
4854
+ "O pagamento falhou, por favor tente outro método de pagamento\n"
4855
+
4856
  msgid "total quantity of appointments in cart"
4857
  msgstr "quantidade total de compromissos no carrinho"
4858
 
4862
  msgid "total price of booking"
4863
  msgstr "preço total da reserva"
4864
 
4865
+ msgid ""
4866
+ "Could you please do me a BIG favor and give it a 5-star rating on WordPress?"
4867
+ msgstr ""
4868
+ "Pode fazer-nos um GRANDE favor e dar-nos uma classificação de 5 estrelas no "
4869
+ "WordPress ?"
4870
+
4871
+ msgid "Just to help us spread the word and boost our motivation."
4872
+ msgstr "É só para passar a palavra e incentivar-nos."
4873
+
4874
+ msgid "Ok, you deserve it"
4875
+ msgstr "OK, merece"
4876
+
4877
+ msgid "Nope, maybe later"
4878
+ msgstr "Não, talvez mais tarde"
4879
+
4880
+ msgid "Thank you for the {star} star rating!!!"
4881
+ msgstr "Obrigado pela sua classificação de {star} estrelas"
4882
+
4883
+ msgid "You asked to remind you"
4884
+ msgstr "Pediu para o relembrar"
4885
+
4886
+ msgid "Congratulations!!!"
4887
+ msgstr "Parabéns !!!!"
4888
+
4889
+ msgid "You just made the <b>10th Sale</b> using Bookly Plugin!"
4890
+ msgstr "Acabou de fazer a sua 10.a venda a utilizar o plugin Bookly !"
4891
+
4892
+ msgid "You just made the <b>100th Sale</b> using Bookly Plugin!"
4893
+ msgstr "Acabou de fazer a sua 100.a venda a utilizar o plugin Bookly !"
4894
+
4895
+ msgid "You just made the <b>1000th Sale</b> using Bookly Plugin!"
4896
+ msgstr "Acabou de fazer sua 1000.a venda a utilizar o plugin Bookly!"
4897
+
4898
+ msgid "You just made the <b>10000th Sale</b> using Bookly Plugin!"
4899
+ msgstr "Acabou de fazer sua 10000.a venda a utilizar o plugin Bookly !"
4900
+
4901
  msgid ""
4902
  "To help us improve Bookly, the plugin anonymously collects usage information."
4903
  " You can opt out of sharing the information in Settings > General."
4904
  msgstr ""
4905
  "Para nos ajudar a aprimorar o Bookly, o plugin coleta informações de uso "
4906
+ "anonimamente. Pode optar por não compartilhar as suas informações em "
4907
  "Configurações > Geral."
4908
 
4909
  msgid ""
4913
  "Permitir que o plugin colete informações de uso anonimamente para ajudar a "
4914
  "equipe Bookly a aprimorar o produto."
4915
 
 
 
 
4916
  msgid "Agree"
4917
  msgstr "Concordo"
4918
 
4919
+ msgid "Disagree"
4920
+ msgstr "Discordo"
4921
+
4922
  #, php-format
4923
  msgid ""
4924
  "<b>Bookly Lite rebrands into Bookly with more features available.</b><br/>"
4927
  "free Bookly. To learn more about the major Bookly update, check our <a "
4928
  "href=\"%s\" target=\"_blank\">blog post</a>."
4929
  msgstr ""
4930
+ "<b>O Bookly Lite transforma-se no Bookly com mais opções disponíveis.</b>"
4931
+ "<br/><br/>Mudamos a arquitetura do Bookly Lite e do Bookly para otimizar o "
4932
  "desenvolvimento de ambas as versões do plugin e adicionar mais opções ao "
4933
  "novo Bookly gratuito. Para saber mais sobre essa grande atualização do "
4934
+ "Bookly, visite a nossa <a href=\"%s\" target=\"_blank\">publicação do "
4935
+ "blog</a>."
4936
+
4937
+ #, php-format
4938
+ msgid "Recharge your account and get up to %s extra."
4939
+ msgstr ""
4940
+ "Carregue a sua conta e ganhe até %s extra.\n"
4941
+
4942
+ msgid ""
4943
+ "Send SMS notifications to your customers, increasing their loyalty and "
4944
+ "involvement."
4945
+ msgstr ""
4946
+ "Envie notificações para os seus clientes via SMS, para que estes sejam mais "
4947
+ "leais e comprometidos.\n"
4948
+
4949
+ #, php-format
4950
+ msgid "Enable Auto-Recharge and get up to %s extra."
4951
+ msgstr ""
4952
+ "Habilite o carregamento automático e ganhe até %s extra.\n"
4953
+ "\n"
4954
+
4955
+ msgid ""
4956
+ "Let your clients receive notifications on time - don't let the service stop."
4957
+ msgstr ""
4958
+ "Permita que os seus clientes recebam notificações a tempo - não deixe o "
4959
+ "serviço parar.\n"
4960
+
4961
+ msgid "Remind me later"
4962
+ msgstr ""
4963
+ "Lembrar-me depois\n"
4964
 
4965
  msgid "This function is not available in the Bookly."
4966
  msgstr "Esta função não está disponível no Bookly."
4969
  "To get access to all Bookly features, lifetime free updates and 24/7 support,"
4970
  " please upgrade to the Pro version of Bookly.<br>For more information visit"
4971
  msgstr ""
4972
+ "Para ter acesso a todas as opções do Bookly, atualizações vitalícias e "
4973
+ "suporte 24/7, por favor, atualize para a versão Pro do Bookly. <br>Para mais "
4974
+ "informações visite"
4975
 
4976
  msgid "Subscribe to monthly emails about Bookly improvements and new releases."
4977
  msgstr ""
4978
+ "Inscreva-se para e-mails mensais sobre as melhorias do Bookly e novos "
4979
  "lançamentos."
4980
 
4981
  msgid ""
4983
  "spread information about the plugin. This will allow the team to improve the "
4984
  "product and enhance its functionality."
4985
  msgstr ""
4986
+ "Permitir que o plugin exiba a informação com processadores Bookly no widget "
4987
+ "de reservas e divulgue a informação através do plugin. Isto vai ajudar a "
4988
+ "equipa a aprimorar o produto e melhorar as suas funcionalidades"
4989
 
4990
  msgid ""
4991
  "How likely is it that you would recommend Bookly to a friend or colleague?"
4992
+ msgstr "Qual é a probabilidade de recomendar o Bookly a um amigo ou colega?"
4993
 
4994
  msgid "What do you think should be improved?"
4995
+ msgstr "O que acha que deveria melhorar?"
4996
 
4997
  msgid "Please enter your email (optional)"
4998
+ msgstr "Por favor, digite seu e-mail (opcional)"
4999
 
5000
  msgid "Please, check your email to confirm the subscription. Thank you!"
5001
  msgstr ""
5002
  "Por favor, verifique seu e-mail para confirmar a subscrição. Obrigado !"
5003
 
5004
  msgid "Given email address is already subscribed, thank you!"
5005
+ msgstr "O endereço e-mail digitado se encontra registado. Obrigado ! "
5006
 
5007
  msgid "This email address is not valid."
5008
+ msgstr "Este endereço é e-mail inválido."
5009
 
5010
  msgid "Revenue"
5011
  msgstr "Receita"
5012
 
5013
  msgid "Approved appointments"
5014
+ msgstr "Reservas aprovadas"
5015
 
5016
  msgid "Pending appointments"
5017
+ msgstr "Reservas pendentes"
5018
 
5019
  msgid "All fields marked with an asterisk (*) are required."
5020
  msgstr "Todos os campos marcados com um asterisco (*) são obrigatórios."
5040
  "most suitable configuration according to your business needs."
5041
  msgstr ""
5042
  "A demonstração é uma versão do Bookly Pro com todos os add-ons instalados, "
5043
+ "para que possa experimentar todos os recursos e capacidades do sistema e, em "
5044
+ "seguida, possa escolher a configuração mais adequada de acordo com as "
5045
  "necessidades do seu negócio."
5046
 
5047
  msgid "don't show this notification again"
5063
  msgstr "Deixe uma mensagem"
5064
 
5065
  msgid "Your name"
5066
+ msgstr "O seu nome"
5067
 
5068
  msgid "Email address"
5069
  msgstr "Endereço de e-mail"
5078
  "In the Feature Requests section of our Community, you can make suggestions "
5079
  "about what you'd like to see in our future releases."
5080
  msgstr ""
5081
+ "Na secção Pedido de Funcionalidades da nossa comunidade, pode fazer "
5082
+ "sugestões acerca do que gostaria ver nos nossos próximos lançamentos. "
5083
 
5084
  msgid ""
5085
  "Before you post, please check if the same suggestion has already been made. "
5086
  "If so, vote for ideas you like and add a comment with the details about your "
5087
  "situation."
5088
  msgstr ""
5089
+ "Antes de publicar, por favor verifique se uma sugestão equivalente já foi "
5090
  "feita. Se for o caso, vote pelas ideias que gosta mais, e faça comentários "
5091
  "com explicações