WordPress Online Booking and Scheduling Plugin – Bookly - Version 17.8

Version Description

Download this release

Release Info

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

Code changes from version 17.7 to 17.8

Files changed (102) hide show
  1. backend/components/controls/Buttons.php +32 -1
  2. backend/components/controls/resources/js/buttons.js +5 -0
  3. backend/components/dashboard/appointments/resources/js/appointments-dashboard.js +52 -2
  4. backend/components/dialogs/appointment/edit/Ajax.php +1 -0
  5. backend/components/dialogs/appointment/edit/resources/js/ng-appointment.js +15 -3
  6. backend/components/dialogs/appointment/edit/templates/edit.php +1 -1
  7. backend/components/dialogs/customer/edit/Ajax.php +3 -1
  8. backend/components/dialogs/customer/edit/Dialog.php +2 -0
  9. backend/components/dialogs/customer/edit/resources/js/ng-customer.js +37 -20
  10. backend/components/dialogs/payment/templates/details.php +13 -3
  11. backend/components/dialogs/service/categories/resources/js/service-categories-dialog.js +1 -0
  12. backend/components/dialogs/service/create/resources/js/service-create-dialog.js +2 -0
  13. backend/components/dialogs/service/edit/resources/js/service-edit-dialog.js +6 -6
  14. backend/components/dialogs/service/order/Ajax.php +27 -0
  15. backend/components/dialogs/service/order/Dialog.php +37 -0
  16. backend/components/dialogs/service/order/resources/js/service-order-dialog.js +72 -0
  17. backend/components/dialogs/service/order/templates/dialog.php +30 -0
  18. backend/components/dialogs/sms/resources/js/notification-dialog.js +13 -0
  19. backend/components/dialogs/staff/edit/Ajax.php +1 -1
  20. backend/components/dialogs/staff/edit/Dialog.php +20 -10
  21. backend/components/dialogs/staff/edit/resources/js/staff-details.js +9 -6
  22. backend/components/dialogs/staff/edit/resources/js/staff-edit-dialog.js +13 -13
  23. backend/components/dialogs/staff/edit/resources/js/staff-schedule.js +5 -5
  24. backend/components/dialogs/staff/edit/resources/js/staff-services.js +4 -4
  25. backend/components/dialogs/staff/edit/templates/dialog.php +1 -1
  26. backend/components/dialogs/staff/order/Ajax.php +27 -0
  27. backend/components/dialogs/staff/order/Dialog.php +47 -0
  28. backend/components/dialogs/staff/order/resources/js/staff-order-dialog.js +80 -0
  29. backend/components/dialogs/staff/order/templates/dialog.php +30 -0
  30. backend/components/dialogs/table_settings/Ajax.php +73 -0
  31. backend/components/dialogs/table_settings/Dialog.php +47 -0
  32. backend/components/dialogs/table_settings/resources/js/table-settings-dialog.js +55 -0
  33. backend/components/dialogs/table_settings/templates/button.php +4 -0
  34. backend/components/dialogs/table_settings/templates/dialog.php +44 -0
  35. backend/components/notices/PoweredBy.php +1 -1
  36. backend/components/support/resources/js/support.js +2 -2
  37. backend/components/support/templates/buttons.php +2 -3
  38. backend/components/tiny_mce/Tools.php +1 -0
  39. backend/modules/appearance/templates/_custom_css.php +1 -3
  40. backend/modules/appointments/Ajax.php +2 -2
  41. backend/modules/appointments/Page.php +15 -26
  42. backend/modules/appointments/proxy/GroupBooking.php +1 -6
  43. backend/modules/appointments/proxy/Locations.php +1 -6
  44. backend/modules/appointments/proxy/Pro.php +2 -2
  45. backend/modules/appointments/proxy/Ratings.php +1 -6
  46. backend/modules/appointments/resources/js/appointments.js +162 -145
  47. backend/modules/appointments/templates/index.php +24 -39
  48. backend/modules/customers/Ajax.php +15 -10
  49. backend/modules/customers/Page.php +9 -5
  50. backend/modules/customers/proxy/CustomerGroups.php +0 -2
  51. backend/modules/customers/proxy/Pro.php +1 -2
  52. backend/modules/customers/resources/js/customers.js +111 -111
  53. backend/modules/customers/templates/index.php +14 -24
  54. backend/modules/notifications/Page.php +16 -12
  55. backend/modules/notifications/templates/index.php +17 -7
  56. backend/modules/payments/Ajax.php +4 -0
  57. backend/modules/payments/Page.php +21 -12
  58. backend/modules/payments/resources/js/payments.js +138 -68
  59. backend/modules/payments/templates/index.php +31 -28
  60. backend/modules/services/Ajax.php +74 -17
  61. backend/modules/services/Page.php +23 -13
  62. backend/modules/services/resources/js/services-list.js +128 -105
  63. backend/modules/services/templates/index.php +34 -12
  64. backend/modules/settings/Page.php +1 -1
  65. backend/modules/settings/proxy/CustomStatuses.php +15 -0
  66. backend/modules/settings/templates/index.php +1 -0
  67. backend/modules/shop/Ajax.php +1 -1
  68. backend/modules/sms/Page.php +24 -13
  69. backend/modules/sms/resources/js/notifications-list.js +112 -76
  70. backend/modules/sms/resources/js/sms.js +150 -112
  71. backend/modules/sms/templates/_notifications.php +17 -8
  72. backend/modules/sms/templates/_price.php +14 -6
  73. backend/modules/sms/templates/_purchases.php +24 -16
  74. backend/modules/sms/templates/_sender_id.php +27 -14
  75. backend/modules/sms/templates/_sms_details.php +21 -17
  76. backend/modules/sms/templates/index.php +4 -5
  77. backend/modules/staff/Ajax.php +68 -24
  78. backend/modules/staff/Page.php +17 -12
  79. backend/modules/staff/proxy/Shared.php +2 -0
  80. backend/modules/staff/resources/js/staff-list.js +97 -127
  81. backend/modules/staff/templates/index.php +37 -22
  82. backend/resources/bootstrap/css/bootstrap-theme.min.css +1 -1
  83. backend/resources/bootstrap/js/bootstrap.min.js +3 -3
  84. backend/resources/js/help.js +8 -56
  85. frontend/components/booking/InfoText.php +1 -1
  86. frontend/resources/css/bookly-main.css +4 -0
  87. languages/bookly-de_DE.mo +0 -0
  88. languages/bookly-de_DE.po +164 -135
  89. languages/bookly-es_ES.mo +0 -0
  90. languages/bookly-es_ES.po +164 -136
  91. languages/bookly-fr_FR.mo +0 -0
  92. languages/bookly-fr_FR.po +167 -139
  93. languages/bookly-nl_NL.mo +0 -0
  94. languages/bookly-nl_NL.po +163 -136
  95. languages/bookly-pt_BR.mo +0 -0
  96. languages/bookly-pt_BR.po +163 -136
  97. languages/bookly-pt_PT.mo +0 -0
  98. languages/bookly-pt_PT.po +163 -136
  99. languages/bookly-ru_RU.mo +0 -0
  100. languages/bookly-ru_RU.po +164 -137
  101. languages/bookly-zh_TW.mo +0 -0
  102. languages/bookly-zh_TW.po +2293 -2122
backend/components/controls/Buttons.php CHANGED
@@ -1,6 +1,8 @@
1
  <?php
2
  namespace Bookly\Backend\Components\Controls;
3
 
 
 
4
  /**
5
  * Class Buttons
6
  * @package Bookly\Backend\Components\Controls
@@ -38,7 +40,7 @@ class Buttons
38
  public static function renderDelete( $id = 'bookly-delete', $extra_class = null, $caption = null, array $attributes = array() )
39
  {
40
  if ( $caption === null ) {
41
- $caption = __( 'Delete...', 'bookly' );
42
  }
43
 
44
  echo self::_createButton(
@@ -109,6 +111,35 @@ class Buttons
109
  echo self::_createButton( 'submit', $id, 'btn-lg btn-success', $extra_class, esc_html( $caption ), $attributes );
110
  }
111
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  /**
113
  * Create button.
114
  *
1
  <?php
2
  namespace Bookly\Backend\Components\Controls;
3
 
4
+ use Bookly\Lib\Plugin;
5
+
6
  /**
7
  * Class Buttons
8
  * @package Bookly\Backend\Components\Controls
40
  public static function renderDelete( $id = 'bookly-delete', $extra_class = null, $caption = null, array $attributes = array() )
41
  {
42
  if ( $caption === null ) {
43
+ $caption = __( 'Delete', 'bookly' ) . '...';
44
  }
45
 
46
  echo self::_createButton(
111
  echo self::_createButton( 'submit', $id, 'btn-lg btn-success', $extra_class, esc_html( $caption ), $attributes );
112
  }
113
 
114
+ /**
115
+ * Render button for open modal window.
116
+ *
117
+ * @param string $modal_id
118
+ * @param string $class
119
+ * @param string $caption
120
+ * @param array $attributes
121
+ * @param string $caption_template
122
+ * @param string $ellipsis
123
+ */
124
+ public static function renderModalActivator( $modal_id = null, $class = null, $caption = null, array $attributes = array(), $caption_template = '{caption}', $ellipsis = '...' )
125
+ {
126
+ $attributes += array(
127
+ 'for-modal' => $modal_id,
128
+ );
129
+ if ( ! $class ) {
130
+ $class = 'btn-default';
131
+ }
132
+
133
+ wp_enqueue_script(
134
+ 'bookly-buttons',
135
+ plugins_url( '/backend/components/controls/resources/js/buttons.js', Plugin::getBasename() ),
136
+ array( 'jquery' ),
137
+ Plugin::getVersion()
138
+ );
139
+
140
+ self::renderCustom( $modal_id . '-activator', $class, $caption . $ellipsis, $attributes, $caption_template );
141
+ }
142
+
143
  /**
144
  * Create button.
145
  *
backend/components/controls/resources/js/buttons.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ jQuery(function($) {
2
+ $('[for-modal]').on('click', function () {
3
+ $('#' + $(this).attr('for-modal')).modal('show');
4
+ });
5
+ });
backend/components/dashboard/appointments/resources/js/appointments-dashboard.js CHANGED
@@ -1,6 +1,56 @@
1
  jQuery(function ($) {
2
  'use strict';
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  var $container = $('.bookly-js-dashboard-appointments'),
5
  $dateFilter = $('select#bookly-filter-date', $container),
6
  totals = {
@@ -78,7 +128,7 @@ jQuery(function ($) {
78
 
79
  $(document.body).on('bookly.dateRange.changed', {},
80
  function (event, data) {
81
- $container.parent().loading(true);
82
  $.ajax({
83
  url : ajaxurl,
84
  type : 'POST',
@@ -89,7 +139,7 @@ jQuery(function ($) {
89
  },
90
  dataType: 'json',
91
  success : function (response) {
92
- $container.parent().loading(false);
93
  revenue.data = [];
94
  total.data = [];
95
  $.each(response.data.days,function (date, item) {
1
  jQuery(function ($) {
2
  'use strict';
3
 
4
+ /**
5
+ * Loading overlay plugin
6
+ * @param busy
7
+ */
8
+ $.fn.booklyLoading = function (busy) {
9
+ var $t = $(this);
10
+ if ($t.length <= 0) return;
11
+ var key = $t.data('bookly-loading-key');
12
+ if (key === undefined) {
13
+ key = Math.random().toString(36).substr(2, 9);
14
+ $t.data('bookly-loading-key', key);
15
+ }
16
+ var $overlay = $('#bookly-js-loading-overlay-' + key);
17
+ if (busy) {
18
+ var zIndex = $t.css('z-index') === 'auto' ? 2 : parseFloat($t.css('z-index')) + 1,
19
+ $spinner = $('#bookly-js-loading-spin-' + key);
20
+ if ($overlay.length === 0) {
21
+ $spinner = $('<div/>')
22
+ .css({position: 'absolute'})
23
+ .attr('id', 'bookly-js-loading-spin-' + key)
24
+ .html('<i class="fas fa-spin fa-spinner fa-4x"></i>');
25
+ $overlay = $('<div/>')
26
+ .css({display: 'none', position: 'absolute', background: '#eee'})
27
+ .attr('id', 'bookly-js-loading-overlay-' + key)
28
+ .append($spinner);
29
+
30
+ $('body').append($overlay);
31
+ }
32
+
33
+ $overlay.css({
34
+ opacity: 0.5,
35
+ zIndex : zIndex,
36
+ top : $t.offset().top,
37
+ left : $t.offset().left,
38
+ width : $t.outerWidth(),
39
+ height : $t.outerHeight()
40
+ }).fadeIn();
41
+
42
+ var topOverlay = (($t.height() / 2) - 32);
43
+ if (topOverlay < 0) topOverlay = 0;
44
+ $spinner.css({
45
+ top : topOverlay,
46
+ left: (($t.width() / 2) - 32)
47
+ });
48
+
49
+ } else {
50
+ $overlay.fadeOut();
51
+ }
52
+ };
53
+
54
  var $container = $('.bookly-js-dashboard-appointments'),
55
  $dateFilter = $('select#bookly-filter-date', $container),
56
  totals = {
128
 
129
  $(document.body).on('bookly.dateRange.changed', {},
130
  function (event, data) {
131
+ $container.parent().booklyLoading(true);
132
  $.ajax({
133
  url : ajaxurl,
134
  type : 'POST',
139
  },
140
  dataType: 'json',
141
  success : function (response) {
142
+ $container.parent().booklyLoading(false);
143
  revenue.data = [];
144
  total.data = [];
145
  $.each(response.data.days,function (date, item) {
backend/components/dialogs/appointment/edit/Ajax.php CHANGED
@@ -60,6 +60,7 @@ class Ajax extends Lib\Base\Ajax
60
 
61
  // Staff list.
62
  $staff = Lib\Entities\Staff::query()->findOne();
 
63
  $staff_members = $staff ? Lib\Config::proActive() ? Lib\Utils\Common::isCurrentUserSupervisor() ? Lib\Entities\Staff::query()->sortBy( 'position' )->find() : Lib\Entities\Staff::query()->where( 'wp_user_id', get_current_user_id() )->find() : array( $staff ) : array();
64
  $postfix_archived = sprintf( ' (%s)', __( 'Archived', 'bookly' ) );
65
 
60
 
61
  // Staff list.
62
  $staff = Lib\Entities\Staff::query()->findOne();
63
+ /** @var Lib\Entities\Staff[] $staff_members */
64
  $staff_members = $staff ? Lib\Config::proActive() ? Lib\Utils\Common::isCurrentUserSupervisor() ? Lib\Entities\Staff::query()->sortBy( 'position' )->find() : Lib\Entities\Staff::query()->where( 'wp_user_id', get_current_user_id() )->find() : array( $staff ) : array();
65
  $postfix_archived = sprintf( ' (%s)', __( 'Archived', 'bookly' ) );
66
 
backend/components/dialogs/appointment/edit/resources/js/ng-appointment.js CHANGED
@@ -274,7 +274,7 @@
274
  start_time = moment(ds.form.start_time.value, 'HH:mm');
275
  for (var units = units_min; units <= units_max; units++) {
276
  var end_time = moment(start_time).add(units * ds.form.service.duration, 'seconds'),
277
- end_hour = moment(end_time).diff(moment('00:00', 'HH:mm')) / 3600 / 1000;
278
  jQuery.each(ds.data.end_time, function (key, item) {
279
  if (item.value == (end_hour < 10 ? '0' + end_hour : end_hour) + ':' + moment(end_time).format('mm')) {
280
  unit_item = jQuery.extend({}, item);
@@ -999,7 +999,6 @@
999
  .on('hidden.bs.modal', function () {
1000
  jQuery('body').addClass('modal-open');
1001
  });
1002
-
1003
  jQuery(document.body).trigger('bookly.edit.customer_details', [$dialog, $scope.edit_customer]);
1004
  };
1005
 
@@ -1521,4 +1520,17 @@ var showAppointmentDialog = function (appointment_id, staff_id, start_date, call
1521
  }
1522
 
1523
  $dialog.modal('show');
1524
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
274
  start_time = moment(ds.form.start_time.value, 'HH:mm');
275
  for (var units = units_min; units <= units_max; units++) {
276
  var end_time = moment(start_time).add(units * ds.form.service.duration, 'seconds'),
277
+ end_hour = Math.floor(moment(end_time).diff(moment('00:00', 'HH:mm')) / 3600 / 1000);
278
  jQuery.each(ds.data.end_time, function (key, item) {
279
  if (item.value == (end_hour < 10 ? '0' + end_hour : end_hour) + ':' + moment(end_time).format('mm')) {
280
  unit_item = jQuery.extend({}, item);
999
  .on('hidden.bs.modal', function () {
1000
  jQuery('body').addClass('modal-open');
1001
  });
 
1002
  jQuery(document.body).trigger('bookly.edit.customer_details', [$dialog, $scope.edit_customer]);
1003
  };
1004
 
1520
  }
1521
 
1522
  $dialog.modal('show');
1523
+ };
1524
+
1525
+ jQuery(function($) {
1526
+ $('#bookly-appointment-dialog')
1527
+ .on('click', '[data-action=show-payment]', function () {
1528
+ jQuery('#bookly-payment-details-modal').modal('show', this);
1529
+ })
1530
+ .on('click', '[data-action=show-collaborative]', function () {
1531
+ jQuery('#bookly-collaborative-services-dialog').modal('show', this);
1532
+ })
1533
+ .on('click', '[data-action=show-compound]', function () {
1534
+ jQuery('#bookly-compound-services-dialog').modal('show', this);
1535
+ });
1536
+ });
backend/components/dialogs/appointment/edit/templates/edit.php CHANGED
@@ -177,7 +177,7 @@ use Bookly\Lib\Entities\CustomerAppointment;
177
  <?php endforeach ?>
178
  </ul>
179
  </span>
180
- <button type="button" class="btn btn-sm btn-default bookly-margin-left-xs" data-toggle="modal" href="#bookly-payment-details-modal" data-payment_id="{{customer.payment_id}}" ng-show="customer.payment_id || customer.payment_create" popover="<?php esc_attr_e( 'Payment', 'bookly' ) ?>: {{customer.payment_title}}" ng-disabled="customer.payment_create">
181
  <span ng-class="{'bookly-js-toggle-popover fa fa-fw': true, 'fa-clipboard-check': customer.payment_type == 'full', 'fa-hourglass': customer.payment_type == 'partial'}"></span>
182
  </button>
183
 
177
  <?php endforeach ?>
178
  </ul>
179
  </span>
180
+ <button type="button" class="btn btn-sm btn-default bookly-margin-left-xs" data-action="show-payment" data-payment_id="{{customer.payment_id}}" ng-show="customer.payment_id || customer.payment_create" popover="<?php esc_attr_e( 'Payment', 'bookly' ) ?>: {{customer.payment_title}}" ng-disabled="customer.payment_create">
181
  <span ng-class="{'bookly-js-toggle-popover fa fa-fw': true, 'fa-clipboard-check': customer.payment_type == 'full', 'fa-hourglass': customer.payment_type == 'partial'}"></span>
182
  </button>
183
 
backend/components/dialogs/customer/edit/Ajax.php CHANGED
@@ -50,7 +50,9 @@ class Ajax extends Lib\Base\Ajax
50
  $params['group_id'] = null;
51
  }
52
  $params = Proxy\CustomerInformation::prepareCustomerFormData( $params );
53
- $params['info_fields'] = json_encode( $params['info_fields'] );
 
 
54
  $form = new Forms\Customer();
55
  $form->bind( $params );
56
  /** @var Lib\Entities\Customer $customer */
50
  $params['group_id'] = null;
51
  }
52
  $params = Proxy\CustomerInformation::prepareCustomerFormData( $params );
53
+ if ( isset( $params['info_fields'] ) ) {
54
+ $params['info_fields'] = json_encode( $params['info_fields'] );
55
+ }
56
  $form = new Forms\Customer();
57
  $form->bind( $params );
58
  /** @var Lib\Entities\Customer $customer */
backend/components/dialogs/customer/edit/Dialog.php CHANGED
@@ -33,6 +33,8 @@ class Dialog extends Lib\Base\Component
33
  'module' => array( 'js/ng-customer.js' => array( 'bookly-angular.min.js' ), )
34
  ) );
35
 
 
 
36
  wp_localize_script( 'bookly-ng-customer.js', 'BooklyL10nCustDialog', array(
37
  'csrf_token' => Lib\Utils\Common::getCsrfToken(),
38
  'first_last_name' => (int) Lib\Config::showFirstLastName(),
33
  'module' => array( 'js/ng-customer.js' => array( 'bookly-angular.min.js' ), )
34
  ) );
35
 
36
+ wp_add_inline_script( 'bookly-select2.full.min.js', 'delete jQuery.fn.select2;', 'before' );
37
+
38
  wp_localize_script( 'bookly-ng-customer.js', 'BooklyL10nCustDialog', array(
39
  'csrf_token' => Lib\Utils\Common::getCsrfToken(),
40
  'first_last_name' => (int) Lib\Config::showFirstLastName(),
backend/components/dialogs/customer/edit/resources/js/ng-customer.js CHANGED
@@ -65,28 +65,32 @@
65
  });
66
  }
67
 
68
- // Init select2 for wp_users.
69
  jQuery('#wp_user')
70
- .val(null)
71
- .select2({
72
- width: '100%',
73
- theme: 'bootstrap',
74
- allowClear: true,
75
- placeholder: '',
76
- language: {
77
- noResults: function () {
78
- return BooklyL10nCustDialog.noResultFound;
79
- }
80
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  });
82
-
83
- // Do stuff on modal hide.
84
- element.on('hidden.bs.modal', function () {
85
- // Fix scroll issues when another modal is shown.
86
- if (jQuery('.modal-backdrop').length) {
87
- jQuery('body').addClass('modal-open');
88
- }
89
- });
90
  scope.changeWpUser = function () {
91
  var $user = jQuery('#wp_user option:selected'),
92
  email = $user.attr('data-email') != undefined ? $user.attr('data-email') : '',
@@ -165,6 +169,20 @@
165
  };
166
  // Close the dialog.
167
  element.modal('hide');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  } else {
169
  // Set errors.
170
  jQuery.each(response.errors, function(field, errors) {
@@ -216,5 +234,4 @@
216
  }
217
  };
218
  });
219
-
220
  })();
65
  });
66
  }
67
 
 
68
  jQuery('#wp_user')
69
+ .append(jQuery('<option></option>').attr('value', ''));
70
+
71
+ // Do customer on modal hide.
72
+ element
73
+ .on('hidden.bs.modal', function () {
74
+ // Fix scroll issues when another modal is shown.
75
+ if (jQuery('.modal-backdrop').length) {
76
+ jQuery('body').addClass('modal-open');
 
 
77
  }
78
+ })
79
+ .one('shown.bs.modal', () => {
80
+ jQuery('#wp_user')
81
+ .select2({
82
+ width: '100%',
83
+ theme: 'bootstrap',
84
+ allowClear: true,
85
+ placeholder: '',
86
+ dropdownParent: jQuery('#bookly-customer-dialog'),
87
+ language: {
88
+ noResults: function () {
89
+ return BooklyL10nCustDialog.noResultFound;
90
+ }
91
+ }
92
+ });
93
  });
 
 
 
 
 
 
 
 
94
  scope.changeWpUser = function () {
95
  var $user = jQuery('#wp_user option:selected'),
96
  email = $user.attr('data-email') != undefined ? $user.attr('data-email') : '',
169
  };
170
  // Close the dialog.
171
  element.modal('hide');
172
+
173
+ // Add new customer to select2 filter
174
+ let $customersFilter = jQuery('#bookly-filter-customer');
175
+ if ($customersFilter.length) {
176
+ let option = jQuery('<option/>', {
177
+ text: response.customer.full_name,
178
+ value: response.customer.id,
179
+ data: {
180
+ search: [response.customer.full_name, response.customer.email, response.customer.phone]
181
+ }
182
+ });
183
+
184
+ $customersFilter.append(option).trigger('change');
185
+ }
186
  } else {
187
  // Set errors.
188
  jQuery.each(response.errors, function(field, errors) {
234
  }
235
  };
236
  });
 
237
  })();
backend/components/dialogs/payment/templates/details.php CHANGED
@@ -43,11 +43,11 @@ if ( ! $can_edit ) {
43
  <th><?php esc_html_e( 'Service', 'bookly' ) ?></th>
44
  <th><?php esc_html_e( 'Date', 'bookly' ) ?></th>
45
  <th><?php esc_html_e( 'Provider', 'bookly' ) ?></th>
46
- <?php if ( $show['deposit'] ): ?>
47
  <th class="text-right"><?php esc_html_e( 'Deposit', 'bookly' ) ?></th>
48
  <?php endif ?>
49
  <th class="text-right"><?php esc_html_e( 'Price', 'bookly' ) ?></th>
50
- <?php if ( $show['taxes'] ): ?>
51
  <th class="text-right"><?php esc_html_e( 'Tax', 'bookly' ) ?></th>
52
  <?php endif ?>
53
  </tr>
@@ -93,7 +93,17 @@ if ( ! $can_edit ) {
93
  <?php if ( $show['taxes'] ) : ?>
94
  <td class="text-right"><?php echo $item['service_tax'] !== null
95
  ? sprintf( $payment['tax_in_price'] === 'included' ? '(%s)' : '%s', Price::format( $item['service_tax'] ) )
96
- : '-' ?></td>
 
 
 
 
 
 
 
 
 
 
97
  <?php endif ?>
98
  </tr>
99
  <?php endforeach ?>
43
  <th><?php esc_html_e( 'Service', 'bookly' ) ?></th>
44
  <th><?php esc_html_e( 'Date', 'bookly' ) ?></th>
45
  <th><?php esc_html_e( 'Provider', 'bookly' ) ?></th>
46
+ <?php if ( $show['deposit'] ) : ?>
47
  <th class="text-right"><?php esc_html_e( 'Deposit', 'bookly' ) ?></th>
48
  <?php endif ?>
49
  <th class="text-right"><?php esc_html_e( 'Price', 'bookly' ) ?></th>
50
+ <?php if ( $show['taxes'] ) : ?>
51
  <th class="text-right"><?php esc_html_e( 'Tax', 'bookly' ) ?></th>
52
  <?php endif ?>
53
  </tr>
93
  <?php if ( $show['taxes'] ) : ?>
94
  <td class="text-right"><?php echo $item['service_tax'] !== null
95
  ? sprintf( $payment['tax_in_price'] === 'included' ? '(%s)' : '%s', Price::format( $item['service_tax'] ) )
96
+ : '-' ?>
97
+ <ul class="bookly-list">
98
+ <?php foreach ( $item['extras'] as $extra ) : ?>
99
+ <?php if ( isset( $extra['tax'] ) ) : ?>
100
+ <li>
101
+ <?php echo sprintf( $payment['tax_in_price'] === 'included' ? '(%s)' : '%s', Price::format( $extra['tax'] ) ) ?>
102
+ </li>
103
+ <?php endif ?>
104
+ <?php endforeach ?>
105
+ </ul>
106
+ </td>
107
  <?php endif ?>
108
  </tr>
109
  <?php endforeach ?>
backend/components/dialogs/service/categories/resources/js/service-categories-dialog.js CHANGED
@@ -9,6 +9,7 @@ jQuery(function ($) {
9
  $save = $('#bookly-save', $dialog),
10
  new_category_id
11
  ;
 
12
  // Add category
13
  $newCategory.on('click', function () {
14
  $categories.append(
9
  $save = $('#bookly-save', $dialog),
10
  new_category_id
11
  ;
12
+
13
  // Add category
14
  $newCategory.on('click', function () {
15
  $categories.append(
backend/components/dialogs/service/create/resources/js/service-create-dialog.js CHANGED
@@ -38,6 +38,8 @@ jQuery(function ($) {
38
  $serviceTitle.val('');
39
  $serviceType.val('simple').trigger('change');
40
  $modal.modal('hide');
 
 
41
  } else {
42
  booklyAlert({error: [response.data.message]});
43
  }
38
  $serviceTitle.val('');
39
  $serviceType.val('simple').trigger('change');
40
  $modal.modal('hide');
41
+
42
+ BooklyServiceOrderDialogL10n.services.push({id: response.data.id, title: response.data.title});
43
  } else {
44
  booklyAlert({error: [response.data.message]});
45
  }
backend/components/dialogs/service/edit/resources/js/service-edit-dialog.js CHANGED
@@ -254,12 +254,12 @@ jQuery(function ($) {
254
  }
255
 
256
  function submitServiceFrom($panel, update_staff) {
257
- $panel.find('input[name=update_staff]').val(update_staff ? 1 : 0);
258
- $panel.find('input[name=package_service_changed]').val($panel.find('[name=package_service]').data('last_value') != $panel.find('[name=package_service]').val() ? 1 : 0);
259
- var ladda = rangeTools.ladda($panel.find('#bookly-save').get(0)),
260
- data = $panel.find('form').serializeArray();
261
- $(document.body).trigger( 'service.submitForm', [ $panel, data ] );
262
- $.post(ajaxurl, data, function (response) {
263
  if (response.success) {
264
  booklyAlert(response.data.alert);
265
  if (response.data.new_extras_list) {
254
  }
255
 
256
  function submitServiceFrom($panel, update_staff) {
257
+ $('input[name=update_staff]',$panel).val(update_staff ? 1 : 0);
258
+ $('input[name=package_service_changed]',$panel).val($panel.find('[name=package_service]').data('last_value') != $panel.find('[name=package_service]').val() ? 1 : 0);
259
+ var ladda = rangeTools.ladda($('#bookly-save',$panel).get(0)),
260
+ data = $('form', $panel).serializeArray();
261
+ $(document.body).trigger('service.submitForm', [$panel, data]);
262
+ $.post(ajaxurl, data, (response) => {
263
  if (response.success) {
264
  booklyAlert(response.data.alert);
265
  if (response.data.new_extras_list) {
backend/components/dialogs/service/order/Ajax.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Service\Order;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Dialog
8
+ * @package Bookly\Backend\Components\Dialogs\Service\Order
9
+ */
10
+ class Ajax extends Lib\Base\Ajax
11
+ {
12
+ /**
13
+ * Update service positions
14
+ */
15
+ public static function updateServicePositions()
16
+ {
17
+ foreach ( (array) self::parameter( 'services' ) as $position => $service_id ) {
18
+ Lib\Entities\Service::query( 's' )
19
+ ->update()
20
+ ->set( 'position', $position )
21
+ ->where( 'id', $service_id )
22
+ ->execute();
23
+ }
24
+
25
+ wp_send_json_success( Lib\Entities\Service::query()->sortBy( 'position' )->fetchArray() );
26
+ }
27
+ }
backend/components/dialogs/service/order/Dialog.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Service\Order;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Dialog
8
+ * @package Bookly\Backend\Components\Dialogs\Service\Order
9
+ */
10
+ class Dialog extends Lib\Base\Component
11
+ {
12
+ /**
13
+ * Render create service dialog.
14
+ */
15
+ public static function render( array $services = array() )
16
+ {
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
+ 'module' => array( 'js/service-order-dialog.js' => array( 'jquery', ) ),
28
+ ) );
29
+
30
+ wp_localize_script( 'bookly-service-order-dialog.js', 'BooklyServiceOrderDialogL10n', array(
31
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
32
+ 'services' => $services,
33
+ ) );
34
+
35
+ self::renderTemplate( 'dialog' );
36
+ }
37
+ }
backend/components/dialogs/service/order/resources/js/service-order-dialog.js ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function ($) {
2
+ 'use strict';
3
+
4
+ $(document.body)
5
+ .on('service.submitForm', {},
6
+ // Bind submit handler for service saving.
7
+ function (event, $panel, data) {
8
+ let id = data.find(value => value.name === 'id').value,
9
+ title = data.find(value => value.name === 'title').value;
10
+
11
+ BooklyServiceOrderDialogL10n.services
12
+ .find(service => service.id == id).title = title;
13
+ })
14
+ .on('service.deleted', {},
15
+ function (event, services) {
16
+ BooklyServiceOrderDialogL10n.services.forEach((service, index) => {
17
+ if (services.includes(String(service.id))) {
18
+ delete BooklyServiceOrderDialogL10n.services[index];
19
+ }
20
+ });
21
+ // Remove undefined values
22
+ BooklyServiceOrderDialogL10n.services.filter(function (el) {
23
+ return el != undefined;
24
+ })
25
+ });
26
+
27
+ var $dialog = $('#bookly-service-order-modal'),
28
+ $list = $('#bookly-list', $dialog),
29
+ $template = $('#bookly-service-template'),
30
+ $table = $('#services-list'),
31
+ $save = $('#bookly-save', $dialog)
32
+ ;
33
+
34
+ // Save categories
35
+ $save.on('click', function (e) {
36
+ e.preventDefault();
37
+ var ladda = Ladda.create(this),
38
+ services = [];
39
+ ladda.start();
40
+ $list.find('li').each(function (position, category) {
41
+ services.push($(category).find('[name="id"]').val());
42
+ });
43
+ $.post(ajaxurl, {
44
+ action: 'bookly_update_service_positions',
45
+ services,
46
+ csrf_token: BooklyServiceOrderDialogL10n.csrfToken
47
+ },
48
+ function (response) {
49
+ if (response.success) {
50
+ BooklyServiceOrderDialogL10n.services = response.data;
51
+ $dialog.modal('hide');
52
+ }
53
+ ladda.stop();
54
+ });
55
+ });
56
+
57
+ $dialog.off().on('show.bs.modal', function () {
58
+ $list.html('');
59
+ BooklyServiceOrderDialogL10n.services.forEach(function (service) {
60
+ $list.append(
61
+ $template.clone().show().html()
62
+ .replace(/{{id}}/g, service.id)
63
+ .replace(/{{title}}/g, service.title)
64
+ );
65
+ });
66
+ });
67
+
68
+ $list.sortable({
69
+ axis : 'y',
70
+ handle: '.bookly-js-draghandle',
71
+ });
72
+ });
backend/components/dialogs/service/order/templates/dialog.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Controls\Buttons;
3
+ ?>
4
+ <form id="bookly-service-order-modal" class="modal fade" tabindex=-1 role="dialog">
5
+ <div class="modal-dialog">
6
+ <div class="modal-content">
7
+ <div class="modal-header">
8
+ <button type="button" class="close" data-dismiss="modal"><span>×</span></button>
9
+ <div class="modal-title h2"><?php esc_html_e( 'Services order', 'bookly' ) ?></div>
10
+ </div>
11
+ <div class="modal-body">
12
+ <ul id="bookly-list"></ul>
13
+ <p class="help-block bookly-js-without-icon"><?php esc_html_e( 'Adjust the order of services in your booking form', 'bookly' ) ?></p>
14
+ </div>
15
+ <div class="modal-footer">
16
+ <?php Buttons::renderSubmit() ?>
17
+ <?php Buttons::renderCustom( null, 'btn-lg btn-default', esc_html__( 'Close', 'bookly' ), array( 'data-dismiss' => 'modal' ) ) ?>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </form>
22
+ <div class="collapse" id="bookly-service-template">
23
+ <li class="form-group">
24
+ <div class="row"">
25
+ <input type="hidden" name="id" value="{{id}}"/>
26
+ <div class="col-xs-1"><i class="fa fa-fw fa-lg fa-bars text-muted bookly-cursor-move bookly-js-draghandle" title="<?php esc_attr_e( 'Reorder', 'bookly' ) ?>"></i></div>
27
+ <div class="col-xs-11">{{title}}</div>
28
+ </div>
29
+ </li>
30
+ </div>
backend/components/dialogs/sms/resources/js/notification-dialog.js CHANGED
@@ -266,4 +266,17 @@ jQuery(function ($) {
266
 
267
  $('.bookly-js-loading', $modalNotification).toggleClass('collapse');
268
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
269
  });
266
 
267
  $('.bookly-js-loading', $modalNotification).toggleClass('collapse');
268
  }
269
+
270
+ $(document)
271
+ // Required because Bootstrap blocks all focusin calls from elements outside the dialog
272
+ .on('focusin', function (e) {
273
+ if ($(e.target).closest(".ui-autocomplete-input").length) {
274
+ e.stopImmediatePropagation();
275
+ }
276
+ if ($(e.target).closest("#link-selector").length) {
277
+ e.stopImmediatePropagation();
278
+ }
279
+ })
280
+ // Restore class 'modal-open' because wplink on closing remove this class
281
+ .on('wplink-close', () => $(document.body).addClass('modal-open'));
282
  });
backend/components/dialogs/staff/edit/Ajax.php CHANGED
@@ -108,7 +108,7 @@ class Ajax extends Lib\Base\Ajax
108
  self::$staff->save();
109
  StaffProxy\Shared::updateStaff( self::$staff, $params );
110
 
111
- wp_send_json_success();
112
  }
113
 
114
  /**
108
  self::$staff->save();
109
  StaffProxy\Shared::updateStaff( self::$staff, $params );
110
 
111
+ wp_send_json_success( array( 'staff' => self::$staff->getFields() ) );
112
  }
113
 
114
  /**
backend/components/dialogs/staff/edit/Dialog.php CHANGED
@@ -17,7 +17,7 @@ class Dialog extends Lib\Base\Component
17
  public static function render()
18
  {
19
  /** @var \WP_Locale $wp_locale */
20
- global $wp_locale;
21
 
22
  wp_enqueue_media();
23
 
@@ -57,6 +57,14 @@ class Dialog extends Lib\Base\Component
57
  ),
58
  ) );
59
 
 
 
 
 
 
 
 
 
60
  wp_localize_script( 'bookly-staff-edit-dialog.js', 'BooklyStaffEditDialogL10n', array(
61
  'csrfToken' => Lib\Utils\Common::getCsrfToken(),
62
  'intlTelInput' => array(
@@ -69,20 +77,22 @@ class Dialog extends Lib\Base\Component
69
  'firstDay' => (int) get_option( 'start_of_week' ),
70
  'days' => array_values( $wp_locale->weekday_abbrev ),
71
  'months' => array_values( $wp_locale->month ),
72
- 'close' => __( 'Close', 'bookly' ),
73
- 'repeat' => __( 'Repeat every year', 'bookly' ),
74
- 'we_are_not_working' => __( 'We are not working on this day', 'bookly' ),
 
75
  ),
76
  'services' => array(
77
- 'capacity_error' => __( 'Min capacity should not be greater than max capacity.', 'bookly' ),
78
  ),
79
- 'createStaff' => __( 'Create staff', 'bookly' ),
80
- 'editStaff' => __( 'Edit staff', 'bookly' ),
81
- 'areYouSure' => __( 'Are you sure?', 'bookly' ),
82
- 'settingsSaved' => __( 'Settings saved.', 'bookly' ),
83
  'proRequired' => (int) ! Lib\Config::proActive(),
84
  'limitation' => Limitation::getHtml(),
85
- 'activeStaffId' => self::parameter( 'staff_id', 0 )
 
86
  ) );
87
 
88
  self::renderTemplate( 'dialog' );
17
  public static function render()
18
  {
19
  /** @var \WP_Locale $wp_locale */
20
+ global $wp_locale, $wpdb;
21
 
22
  wp_enqueue_media();
23
 
57
  ),
58
  ) );
59
 
60
+ $query = Lib\Entities\Staff::query( 's' )
61
+ ->select( 's.id, s.full_name' )
62
+ ->tableJoin( $wpdb->users, 'wpu', 'wpu.ID = s.wp_user_id' );
63
+
64
+ if ( ! Lib\Utils\Common::isCurrentUserAdmin() ) {
65
+ $query->where( 's.wp_user_id', get_current_user_id() );
66
+ }
67
+
68
  wp_localize_script( 'bookly-staff-edit-dialog.js', 'BooklyStaffEditDialogL10n', array(
69
  'csrfToken' => Lib\Utils\Common::getCsrfToken(),
70
  'intlTelInput' => array(
77
  'firstDay' => (int) get_option( 'start_of_week' ),
78
  'days' => array_values( $wp_locale->weekday_abbrev ),
79
  'months' => array_values( $wp_locale->month ),
80
+ 'close' => esc_attr__( 'Close', 'bookly' ),
81
+ 'repeat' => esc_attr__( 'Repeat every year', 'bookly' ),
82
+ 'we_are_not_working' => esc_attr__( 'We are not working on this day', 'bookly' ),
83
+ 'special_days_error' => esc_attr__( 'The date has already passed.', 'bookly' ),
84
  ),
85
  'services' => array(
86
+ 'capacity_error' => esc_attr__( 'Min capacity should not be greater than max capacity.', 'bookly' ),
87
  ),
88
+ 'createStaff' => esc_attr__( 'Create staff', 'bookly' ),
89
+ 'editStaff' => esc_attr__( 'Edit staff', 'bookly' ),
90
+ 'areYouSure' => esc_attr__( 'Are you sure?', 'bookly' ),
91
+ 'settingsSaved' => esc_attr__( 'Settings saved.', 'bookly' ),
92
  'proRequired' => (int) ! Lib\Config::proActive(),
93
  'limitation' => Limitation::getHtml(),
94
+ 'activeStaffId' => self::parameter( 'staff_id', 0 ),
95
+ 'staff' => $query->sortBy( 'position' )->fetchArray()
96
  ) );
97
 
98
  self::renderTemplate( 'dialog' );
backend/components/dialogs/staff/edit/resources/js/staff-details.js CHANGED
@@ -135,13 +135,14 @@ jQuery(function ($) {
135
 
136
  save(function (response) {
137
  if (response.success) {
138
- obj.options.savingStatus({success: [obj.options.l10n.saved]});
 
139
  $('[bookly-js-staff-name-' + obj.options.get_details.id + ']').text($('#bookly-full-name', $form).val());
140
  if (typeof obj.options.renderWpUsers === 'function') {
141
  obj.options.renderWpUsers(response.data.wp_users);
142
  }
143
  } else {
144
- obj.options.savingStatus({error: [response.data.error]});
145
  }
146
  ladda.stop();
147
  });
@@ -159,7 +160,7 @@ jQuery(function ($) {
159
  if (response.success) {
160
  window.location.href = $unsaved_changes.data('url');
161
  } else {
162
- obj.options.savingStatus({error: [response.data.error]});
163
  }
164
  ladda.stop();
165
  });
@@ -188,7 +189,6 @@ jQuery(function ($) {
188
  data.push({name: 'action', value: 'bookly_update_staff'});
189
  data.push({name: 'phone', value: phone});
190
  data.push({name: 'tab', value: phone});
191
-
192
  $.ajax({
193
  type : 'POST',
194
  url : ajaxurl,
@@ -214,8 +214,11 @@ jQuery(function ($) {
214
  csrf_token: ''
215
  },
216
  l10n : {},
217
- savingStatus : function (data) {
218
- $(document.body).trigger('staff_edit.save', [data]);
 
 
 
219
  }
220
  };
221
 
135
 
136
  save(function (response) {
137
  if (response.success) {
138
+ obj.options.saving({success: [obj.options.l10n.saved]}, response.data.staff);
139
+
140
  $('[bookly-js-staff-name-' + obj.options.get_details.id + ']').text($('#bookly-full-name', $form).val());
141
  if (typeof obj.options.renderWpUsers === 'function') {
142
  obj.options.renderWpUsers(response.data.wp_users);
143
  }
144
  } else {
145
+ obj.options.saving({error: [response.data.error]});
146
  }
147
  ladda.stop();
148
  });
160
  if (response.success) {
161
  window.location.href = $unsaved_changes.data('url');
162
  } else {
163
+ obj.options.saving({error: [response.data.error]});
164
  }
165
  ladda.stop();
166
  });
189
  data.push({name: 'action', value: 'bookly_update_staff'});
190
  data.push({name: 'phone', value: phone});
191
  data.push({name: 'tab', value: phone});
 
192
  $.ajax({
193
  type : 'POST',
194
  url : ajaxurl,
214
  csrf_token: ''
215
  },
216
  l10n : {},
217
+ saving: function (alerts, data) {
218
+ $(document.body).trigger('staff.saving', [alerts]);
219
+ if (alerts.hasOwnProperty('success')) {
220
+ $(document.body).trigger('staff.saved', ['staff-details', data]);
221
+ }
222
  }
223
  };
224
 
backend/components/dialogs/staff/edit/resources/js/staff-edit-dialog.js CHANGED
@@ -1,16 +1,16 @@
1
  jQuery(function ($) {
2
  'use strict';
3
 
4
- let $staffList = $('#staff-list'),
5
- $modal = $('#bookly-staff-edit-modal'),
6
- $modalBody = $('.modal-body', $modal),
7
- $modalTitle = $('.modal-title', $modal),
8
- $modalFooter = $('.modal-footer ', $modal),
9
- $saveBtn = $('.bookly-js-save', $modalFooter),
10
- $archiveBtn = $('.bookly-js-staff-archive', $modalFooter),
11
- $validateErrors = $('.bookly-js-errors', $modalFooter),
12
  $deleteCascadeModal = $('.bookly-js-delete-cascade-confirm'),
13
- $staffCount = $('.bookly-js-staff-count'),
14
  currentTab,
15
  staff_id,
16
  holidays
@@ -23,7 +23,7 @@ jQuery(function ($) {
23
  editStaff(staff_id);
24
  });
25
 
26
- $('#bookly-js-new-staff')
27
  .on('click', function () {
28
  if (BooklyStaffEditDialogL10n.proRequired == '1' && $staffCount.html() > 0) {
29
  booklyAlert({error: [BooklyStaffEditDialogL10n.limitation]});
@@ -147,7 +147,7 @@ jQuery(function ($) {
147
  onLoad: function () {
148
  $('.panel-footer', $container).hide();
149
  $('#bookly-services-save', $container).addClass('bookly-js-save');
150
- $(document.body).trigger('staff_edit.validation', ['staff-services', false, '']);
151
  },
152
  l10n: BooklyStaffEditDialogL10n.services,
153
  });
@@ -249,7 +249,7 @@ jQuery(function ($) {
249
  });
250
 
251
  $(document.body)
252
- .on('staff_edit.save', {},
253
  function (event, result) {
254
  if (waitResposes > 0) {
255
  if (result.hasOwnProperty('error')){
@@ -264,7 +264,7 @@ jQuery(function ($) {
264
  booklyAlert({success: [BooklyStaffEditDialogL10n.settingsSaved]})
265
  }
266
  })
267
- .on('staff_edit.validation', {},
268
  function (event, tab, has_error, info) {
269
  let id = 'tab-' + tab + '-validation',
270
  $container = $validateErrors.find('#' + id);
1
  jQuery(function ($) {
2
  'use strict';
3
 
4
+ let $staffList = $('#bookly-staff-list'),
5
+ $modal = $('#bookly-staff-edit-modal'),
6
+ $modalBody = $('.modal-body', $modal),
7
+ $modalTitle = $('.modal-title', $modal),
8
+ $modalFooter = $('.modal-footer ', $modal),
9
+ $saveBtn = $('.bookly-js-save', $modalFooter),
10
+ $archiveBtn = $('.bookly-js-staff-archive', $modalFooter),
11
+ $validateErrors = $('.bookly-js-errors', $modalFooter),
12
  $deleteCascadeModal = $('.bookly-js-delete-cascade-confirm'),
13
+ $staffCount = $('.bookly-js-staff-count'),
14
  currentTab,
15
  staff_id,
16
  holidays
23
  editStaff(staff_id);
24
  });
25
 
26
+ $('#bookly-create-staff-modal-activator')
27
  .on('click', function () {
28
  if (BooklyStaffEditDialogL10n.proRequired == '1' && $staffCount.html() > 0) {
29
  booklyAlert({error: [BooklyStaffEditDialogL10n.limitation]});
147
  onLoad: function () {
148
  $('.panel-footer', $container).hide();
149
  $('#bookly-services-save', $container).addClass('bookly-js-save');
150
+ $(document.body).trigger('staff.validation', ['staff-services', false, '']);
151
  },
152
  l10n: BooklyStaffEditDialogL10n.services,
153
  });
249
  });
250
 
251
  $(document.body)
252
+ .on('staff.saving', {},
253
  function (event, result) {
254
  if (waitResposes > 0) {
255
  if (result.hasOwnProperty('error')){
264
  booklyAlert({success: [BooklyStaffEditDialogL10n.settingsSaved]})
265
  }
266
  })
267
+ .on('staff.validation', {},
268
  function (event, tab, has_error, info) {
269
  let id = 'tab-' + tab + '-validation',
270
  $container = $validateErrors.find('#' + id);
backend/components/dialogs/staff/edit/resources/js/staff-schedule.js CHANGED
@@ -84,7 +84,7 @@ jQuery(function ($) {
84
  data['staff_id'] = options.get_staff_schedule.staff_id;
85
  $.post(ajaxurl, $.param(data), function () {
86
  ladda.stop();
87
- obj.options.savingStatus({success: [obj.options.l10n.saved]});
88
  });
89
  })
90
  // Resets initial schedule values
@@ -356,11 +356,11 @@ jQuery(function ($) {
356
  staff_id: -1,
357
  csrf_token: ''
358
  },
359
- savingStatus: function (data) {
360
- $(document.body).trigger('staff_edit.save', data);
361
  },
362
- booklyAlert: function (data) {
363
- booklyAlert(data);
364
  },
365
  onLoad: function () {},
366
  l10n: {}
84
  data['staff_id'] = options.get_staff_schedule.staff_id;
85
  $.post(ajaxurl, $.param(data), function () {
86
  ladda.stop();
87
+ obj.options.saving({success: [obj.options.l10n.saved]});
88
  });
89
  })
90
  // Resets initial schedule values
356
  staff_id: -1,
357
  csrf_token: ''
358
  },
359
+ saving: function (alerts) {
360
+ $(document.body).trigger('staff.saving', [alerts]);
361
  },
362
+ booklyAlert: function (alerts) {
363
+ booklyAlert(alerts);
364
  },
365
  onLoad: function () {},
366
  l10n: {}
backend/components/dialogs/staff/edit/resources/js/staff-services.js CHANGED
@@ -94,7 +94,7 @@ jQuery(function ($) {
94
  success : function (response) {
95
  ladda.stop();
96
  if (response.success) {
97
- obj.options.savingStatus({success: [obj.options.l10n.saved]});
98
  }
99
  }
100
  });
@@ -176,11 +176,11 @@ jQuery(function ($) {
176
  csrf_token: ''
177
  },
178
  booklyAlert: window.booklyAlert,
179
- savingStatus: function (data) {
180
- $(document.body).trigger('staff_edit.save', data);
181
  },
182
  validation: function (has_error, info) {
183
- $(document.body).trigger('staff_edit.validation', ['staff-services', has_error, info]);
184
  },
185
  onLoad: function () {},
186
  l10n: {}
94
  success : function (response) {
95
  ladda.stop();
96
  if (response.success) {
97
+ obj.options.saving({success: [obj.options.l10n.saved]});
98
  }
99
  }
100
  });
176
  csrf_token: ''
177
  },
178
  booklyAlert: window.booklyAlert,
179
+ saving: function (alerts) {
180
+ $(document.body).trigger('staff.saving', [alerts]);
181
  },
182
  validation: function (has_error, info) {
183
+ $(document.body).trigger('staff.validation', ['staff-services', has_error, info]);
184
  },
185
  onLoad: function () {},
186
  l10n: {}
backend/components/dialogs/staff/edit/templates/dialog.php CHANGED
@@ -19,7 +19,7 @@ use Bookly\Lib\Utils\Common;
19
  <?php if ( Common::isCurrentUserAdmin() ) : ?>
20
  <?php Buttons::renderDelete( 'bookly-staff-delete', 'btn-lg pull-left bookly-js-hide-on-loading' ) ?>
21
  <?php if ( Config::proActive() ) : ?>
22
- <?php Buttons::renderCustom( null, 'btn-lg btn-danger ladda-button bookly-js-staff-archive pull-left bookly-js-hide-on-loading', esc_html__( 'Archive', 'bookly' ), array(), '<i class="fa fa-archive"></i> {caption}' ) ?>
23
  <?php endif ?>
24
  <?php endif ?>
25
  <span class="bookly-js-errors text-danger" style="max-width: 353px;display: inline-grid;"></span>
19
  <?php if ( Common::isCurrentUserAdmin() ) : ?>
20
  <?php Buttons::renderDelete( 'bookly-staff-delete', 'btn-lg pull-left bookly-js-hide-on-loading' ) ?>
21
  <?php if ( Config::proActive() ) : ?>
22
+ <?php Buttons::renderCustom( null, 'btn-lg btn-danger ladda-button bookly-js-staff-archive pull-left bookly-js-hide-on-loading', esc_html__( 'Archive', 'bookly' ) . '...', array(), '<i class="fa fa-archive"></i> {caption}' ) ?>
23
  <?php endif ?>
24
  <?php endif ?>
25
  <span class="bookly-js-errors text-danger" style="max-width: 353px;display: inline-grid;"></span>
backend/components/dialogs/staff/order/Ajax.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Staff\Order;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Ajax
8
+ * @package Bookly\Backend\Components\Dialogs\Staff\Order
9
+ */
10
+ class Ajax extends Lib\Base\Ajax
11
+ {
12
+ /**
13
+ * Update staff positions
14
+ */
15
+ public static function updateStaffPositions()
16
+ {
17
+ foreach ( (array) self::parameter( 'staff' ) as $position => $staff_id ) {
18
+ Lib\Entities\Staff::query( 's' )
19
+ ->update()
20
+ ->set( 'position', $position )
21
+ ->where( 'id', $staff_id )
22
+ ->execute();
23
+ }
24
+
25
+ wp_send_json_success();
26
+ }
27
+ }
backend/components/dialogs/staff/order/Dialog.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Staff\Order;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Dialog
8
+ * @package Bookly\Backend\Components\Dialogs\Staff\Order
9
+ */
10
+ class Dialog extends Lib\Base\Component
11
+ {
12
+ /**
13
+ * Render create service dialog.
14
+ */
15
+ public static function render()
16
+ {
17
+ global $wpdb;
18
+
19
+ self::enqueueStyles( array(
20
+ 'frontend' => array( 'css/ladda.min.css', ),
21
+ 'backend' => array( 'css/fontawesome-all.min.css', 'css/select2.min.css' ),
22
+ ) );
23
+
24
+ self::enqueueScripts( array(
25
+ 'frontend' => array(
26
+ 'js/spin.min.js' => array( 'jquery', ),
27
+ 'js/ladda.min.js' => array( 'jquery', ),
28
+ ),
29
+ 'module' => array( 'js/staff-order-dialog.js' => array( 'jquery', ) ),
30
+ ) );
31
+
32
+ $query = Lib\Entities\Staff::query( 's' )
33
+ ->select( 's.id, s.full_name' )
34
+ ->tableJoin( $wpdb->users, 'wpu', 'wpu.ID = s.wp_user_id' );
35
+
36
+ if ( ! Lib\Utils\Common::isCurrentUserAdmin() ) {
37
+ $query->where( 's.wp_user_id', get_current_user_id() );
38
+ }
39
+
40
+ wp_localize_script( 'bookly-staff-order-dialog.js', 'BooklyStaffOrderDialogL10n', array(
41
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
42
+ 'staff' => $query->sortBy( 'position' )->fetchArray()
43
+ ) );
44
+
45
+ self::renderTemplate( 'dialog' );
46
+ }
47
+ }
backend/components/dialogs/staff/order/resources/js/staff-order-dialog.js ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function ($) {
2
+ 'use strict';
3
+
4
+ $(document.body)
5
+ .on('staff.saved', {},
6
+ function (event, tab, staffData) {
7
+ if (tab == 'staff-details') {
8
+ let staff = BooklyStaffOrderDialogL10n.staff
9
+ .find(s => s.id == staffData.id);
10
+
11
+ if (staff === undefined) {
12
+ BooklyStaffOrderDialogL10n.staff.push({id: staffData.id, full_name: staffData.full_name})
13
+ } else {
14
+ staff.full_name = staffData.full_name;
15
+ }
16
+ }
17
+ })
18
+ .on('staff.deleted', {},
19
+ function (event, staff) {
20
+ BooklyStaffOrderDialogL10n.staff.forEach((s, index) => {
21
+ if (staff.includes(String(s.id))) {
22
+ delete BooklyStaffOrderDialogL10n.staff[index];
23
+ }
24
+ });
25
+ // Remove undefined values
26
+ BooklyStaffOrderDialogL10n.staff.filter(function (el) {
27
+ return el != undefined;
28
+ });
29
+ });
30
+
31
+ var $dialog = $('#bookly-staff-order-modal'),
32
+ $list = $('#bookly-list', $dialog),
33
+ $template = $('#bookly-staff-template'),
34
+ $table = $('#services-list'),
35
+ $save = $('#bookly-save', $dialog)
36
+ ;
37
+
38
+ // Save categories
39
+ $save.on('click', function (e) {
40
+ e.preventDefault();
41
+ let ladda = Ladda.create(this),
42
+ staff = [],
43
+ list = [];
44
+ ladda.start();
45
+ $('li', $list).each((index, elem) => {
46
+ let id = $('[name="id"]', $(elem)).val();
47
+ staff.push(id);
48
+ list.push({id, full_name: $('.bookly-js-full_name', $(elem)).html()});
49
+ });
50
+
51
+ $.post(ajaxurl, {
52
+ action: 'bookly_update_staff_positions',
53
+ staff,
54
+ csrf_token: BooklyStaffOrderDialogL10n.csrfToken
55
+ },
56
+ function (response) {
57
+ if (response.success) {
58
+ $dialog.modal('hide');
59
+ BooklyStaffOrderDialogL10n.staff = list;
60
+ }
61
+ ladda.stop();
62
+ });
63
+ });
64
+
65
+ $dialog.off().on('show.bs.modal', function () {
66
+ $list.html('');
67
+ BooklyStaffOrderDialogL10n.staff.forEach(function (staff) {
68
+ $list.append(
69
+ $template.clone().show().html()
70
+ .replace(/{{id}}/g, staff.id)
71
+ .replace(/{{full_name}}/g, staff.full_name)
72
+ );
73
+ });
74
+ });
75
+
76
+ $list.sortable({
77
+ axis : 'y',
78
+ handle: '.bookly-js-draghandle',
79
+ });
80
+ });
backend/components/dialogs/staff/order/templates/dialog.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Controls\Buttons;
3
+ ?>
4
+ <form id="bookly-staff-order-modal" class="modal fade" tabindex=-1 role="dialog">
5
+ <div class="modal-dialog">
6
+ <div class="modal-content">
7
+ <div class="modal-header">
8
+ <button type="button" class="close" data-dismiss="modal"><span>×</span></button>
9
+ <div class="modal-title h2"><?php esc_html_e( 'Staff members order', 'bookly' ) ?></div>
10
+ </div>
11
+ <div class="modal-body">
12
+ <ul id="bookly-list"></ul>
13
+ <p class="help-block bookly-js-without-icon"><?php esc_html_e( 'Adjust the order of staff members in your booking form', 'bookly' ) ?></p>
14
+ </div>
15
+ <div class="modal-footer">
16
+ <?php Buttons::renderSubmit() ?>
17
+ <?php Buttons::renderCustom( null, 'btn-lg btn-default', esc_html__( 'Close', 'bookly' ), array( 'data-dismiss' => 'modal' ) ) ?>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </form>
22
+ <div class="collapse" id="bookly-staff-template">
23
+ <li class="form-group">
24
+ <div class="row"">
25
+ <input type="hidden" name="id" value="{{id}}"/>
26
+ <div class="col-xs-1"><i class="fa fa-fw fa-lg fa-bars text-muted bookly-cursor-move bookly-js-draghandle" title="<?php esc_attr_e( 'Reorder', 'bookly' ) ?>"></i></div>
27
+ <div class="col-xs-11 bookly-js-full_name">{{full_name}}</div>
28
+ </div>
29
+ </li>
30
+ </div>
backend/components/dialogs/table_settings/Ajax.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\TableSettings;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Ajax
8
+ * @package Bookly\Backend\Components\Dialogs\TableSettings
9
+ */
10
+ class Ajax extends Lib\Base\Ajax
11
+ {
12
+ /** @var array */
13
+ protected static $tables = array(
14
+ 'appointments',
15
+ 'coupons',
16
+ 'custom_statuses',
17
+ 'customer_groups',
18
+ 'customers',
19
+ 'email_notifications',
20
+ 'locations',
21
+ 'packages',
22
+ 'payments',
23
+ 'services',
24
+ 'staff_members',
25
+ 'taxes',
26
+ 'sms_details',
27
+ 'sms_notifications',
28
+ 'sms_prices',
29
+ 'sms_purchases',
30
+ 'sms_sender',
31
+ );
32
+
33
+ /**
34
+ * @inheritdoc
35
+ */
36
+ protected static function permissions()
37
+ {
38
+ return array( '_default' => 'user' );
39
+ }
40
+
41
+ /**
42
+ * Update table settings.
43
+ */
44
+ public static function updateTableSettings()
45
+ {
46
+ $table = self::parameter( 'table' );
47
+
48
+ $meta = get_user_meta( get_current_user_id(), 'bookly_' . $table . '_table_settings', true ) ?: array();
49
+ if ( in_array( $table, self::$tables ) ) {
50
+ $meta['columns'] = self::parameter( 'columns', array() );
51
+ array_walk( $meta['columns'], function ( &$show ) { $show = (bool) $show; } );
52
+ update_user_meta( get_current_user_id(), 'bookly_' . $table . '_table_settings', $meta );
53
+ }
54
+
55
+ wp_send_json_success();
56
+ }
57
+
58
+ /**
59
+ * Update table sorting.
60
+ */
61
+ public static function updateTableOrder()
62
+ {
63
+ $table = self::parameter( 'table' );
64
+
65
+ $meta = get_user_meta( get_current_user_id(), 'bookly_' . $table . '_table_settings', true ) ?: array();
66
+ if ( in_array( $table, self::$tables ) ) {
67
+ $meta['order'] = self::parameter( 'order', array() );
68
+ update_user_meta( get_current_user_id(), 'bookly_' . $table . '_table_settings', $meta );
69
+ }
70
+
71
+ wp_send_json_success();
72
+ }
73
+ }
backend/components/dialogs/table_settings/Dialog.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\TableSettings;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Dialog
8
+ * @package Bookly\Backend\Components\Dialogs\TableSettings
9
+ */
10
+ class Dialog extends Lib\Base\Component
11
+ {
12
+ /**
13
+ * Render notifications queue dialog.
14
+ */
15
+ public static function render()
16
+ {
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
+ 'module' => array( 'js/table-settings-dialog.js' => array( 'jquery-ui-sortable' ), ),
28
+ ) );
29
+
30
+ wp_localize_script( 'bookly-table-settings-dialog.js', 'BooklyTableSettingsDialogL10n', array(
31
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
32
+ ) );
33
+
34
+ self::renderTemplate( 'dialog' );
35
+ }
36
+
37
+ /**
38
+ * Render 'settings' button
39
+ *
40
+ * @param string $table_name
41
+ * @param string $setting_name
42
+ */
43
+ public static function renderButton( $table_name, $setting_name = 'BooklyL10n' )
44
+ {
45
+ self::renderTemplate( 'button', compact( 'table_name', 'setting_name' ) );
46
+ }
47
+ }
backend/components/dialogs/table_settings/resources/js/table-settings-dialog.js ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function ($) {
2
+ 'use strict';
3
+ var $modal = $('#bookly-table-settings-modal'),
4
+ $save_button = $('.bookly-js-table-settings-save', $modal),
5
+ $columns = $modal.find('.bookly-js-table-columns'),
6
+ $template = $('#bookly-table-settings-template');
7
+
8
+ // Save settings.
9
+ $save_button.on('click', function (e) {
10
+ e.preventDefault();
11
+ let ladda = Ladda.create(this),
12
+ columns = {};
13
+ ladda.start();
14
+ $modal.find('input[type=checkbox]').each(function () {
15
+ columns[this.name] = this.checked ? 1 : 0;
16
+ });
17
+ $.post(
18
+ ajaxurl,
19
+ {
20
+ action : 'bookly_update_table_settings',
21
+ table : $modal.find('[name="bookly-table-name"]').val(),
22
+ columns : columns,
23
+ csrf_token: BooklyTableSettingsDialogL10n.csrfToken
24
+ },
25
+ function (response) {
26
+ location.reload();
27
+ });
28
+ });
29
+
30
+ $columns.sortable({
31
+ axis : 'y',
32
+ handle: '.bookly-js-draghandle',
33
+ });
34
+
35
+ // Open table settings modal.
36
+ $('.bookly-js-table-settings').off().on('click', function () {
37
+ var table_settings = window[$(this).data('setting-name')].datatables[$(this).data('table-name')].settings,
38
+ table_titles = window[$(this).data('setting-name')].datatables[$(this).data('table-name')].titles;
39
+
40
+ $modal.find('[name="bookly-table-name"]').val($(this).data('table-name'));
41
+
42
+ // Generate columns.
43
+ $columns.html('');
44
+ $.each(table_settings.columns, function (name, show) {
45
+ $columns.append(
46
+ $template.clone().show().html()
47
+ .replace(/{{name}}/g, name)
48
+ .replace(/{{title}}/g, table_titles[name])
49
+ .replace(/{{checked}}/g, show ? 'checked' : '')
50
+ );
51
+ });
52
+
53
+ $('#bookly-table-settings-modal').modal('show');
54
+ });
55
+ });
backend/components/dialogs/table_settings/templates/button.php ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
+ <div class="form-group text-right">
3
+ <button type="button" class="btn btn-default bookly-btn-block-xs bookly-js-table-settings" data-table-name="<?php echo $table_name ?>" data-setting-name="<?php echo $setting_name ?>"><i class="fa fa-fw fa-cog"></i></button>
4
+ </div>
backend/components/dialogs/table_settings/templates/dialog.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Controls\Buttons;
3
+ /** @var string $table */
4
+ ?>
5
+ <form id="bookly-table-settings-modal" class="bookly-js-table-settings-modal modal fade" tabindex=-1 role="dialog">
6
+ <div class="modal-dialog">
7
+ <div class="modal-content">
8
+ <div class="modal-header">
9
+ <button type="button" class="close" data-dismiss="modal"><span>×</span></button>
10
+ <div class="modal-title h2"><?php esc_html_e( 'Table settings', 'bookly' ) ?></div>
11
+ </div>
12
+ <div class="modal-body">
13
+ <div class="panel panel-default bookly-panel-unborder">
14
+ <div class="panel-heading bookly-padding-horizontal-remove">
15
+ <div class="row">
16
+ <div class="col-xs-1"></div>
17
+ <div class="col-xs-9">
18
+ <div class="bookly-font-smaller bookly-color-gray"><?php esc_html_e( 'Column', 'bookly' ) ?></div>
19
+ </div>
20
+ <div class="col-xs-2">
21
+ <div class="bookly-font-smaller bookly-color-gray"><?php esc_html_e( 'Show', 'bookly' ) ?></div>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ <ul class="bookly-margin-top-md bookly-js-table-columns"></ul>
26
+ </div>
27
+ </div>
28
+ <div class="modal-footer">
29
+ <input type="hidden" name="bookly-table-name" value="">
30
+ <?php Buttons::renderCustom( null, 'bookly-js-table-settings-save btn-lg btn-success', esc_html__( 'Save', 'bookly' ) ) ?>
31
+ <?php Buttons::renderCustom( null, 'bookly-js-cancel btn-lg btn-default', esc_html__( 'Close', 'bookly' ), array( 'data-dismiss' => 'modal' ) ) ?>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </form>
36
+ <div id="bookly-table-settings-template" class="hidden">
37
+ <li class="bookly-margin-bottom-md">
38
+ <div class="row">
39
+ <div class="col-xs-1"><i class="fa fa-fw fa-lg fa-bars text-muted bookly-cursor-move bookly-js-draghandle" title="<?php esc_attr_e( 'Reorder', 'bookly' ) ?>"></i></div>
40
+ <div class="col-xs-9">{{title}}</div>
41
+ <div class="col-xs-2"><input name="{{name}}" type="checkbox" {{checked}}/></div>
42
+ </div>
43
+ </li>
44
+ </div>
backend/components/notices/PoweredBy.php CHANGED
@@ -16,7 +16,7 @@ class PoweredBy extends Lib\Base\Component
16
  {
17
  if ( Lib\Utils\Common::isCurrentUserAdmin()
18
  && ! get_option( 'bookly_app_show_powered_by' )
19
- && ! get_user_meta( get_current_user_id(), 'bookly_dismiss_powered_by_notice' )
20
  ) {
21
  self::enqueueStyles( array(
22
  'frontend' => array( 'css/ladda.min.css', ),
16
  {
17
  if ( Lib\Utils\Common::isCurrentUserAdmin()
18
  && ! get_option( 'bookly_app_show_powered_by' )
19
+ && ! get_user_meta( get_current_user_id(), 'bookly_dismiss_powered_by_notice', true )
20
  ) {
21
  self::enqueueStyles( array(
22
  'frontend' => array( 'css/ladda.min.css', ),
backend/components/support/resources/js/support.js CHANGED
@@ -1,6 +1,6 @@
1
  jQuery(function ($) {
2
- var $modal = $('#bookly-support-modal'),
3
- $btnContactUs = $('#bookly-contact-us-btn'),
4
  $btnFeedback = $('#bookly-feedback-btn')
5
  ;
6
 
1
  jQuery(function ($) {
2
+ let $modal = $('#bookly-contact-us-modal'),
3
+ $btnContactUs = $('#bookly-contact-us-modal-activator'),
4
  $btnFeedback = $('#bookly-feedback-btn')
5
  ;
6
 
backend/components/support/templates/buttons.php CHANGED
@@ -94,7 +94,7 @@ use Bookly\Lib\Utils;
94
  * Contact us
95
  */
96
  ?>
97
- <a href="#bookly-support-modal" id="bookly-contact-us-btn" class="btn btn-default-outline" title="<?php esc_attr_e( 'Contact us', 'bookly' ) ?>" data-toggle="modal"
98
  <?php if ( $show_contact_us_notice ) : ?>
99
  data-processed="false"
100
  data-trigger="manual" data-placement="bottom" data-html="1"
@@ -103,7 +103,6 @@ use Bookly\Lib\Utils;
103
  >
104
  <i class="fas fa-envelope"></i> <span class="visible-lg-inline"><?php esc_html_e( 'Contact us', 'bookly' ) ?></span>
105
  </a>
106
-
107
  <?php
108
  /**
109
  * Feature requests
@@ -163,7 +162,7 @@ use Bookly\Lib\Utils;
163
  >
164
  <i class="fas fa-comment-dots"></i> <span class="visible-lg-inline"><?php esc_html_e( 'Feedback', 'bookly' ) ?></span>
165
  </a>
166
- <div id="bookly-support-modal" class="modal fade text-left" tabindex=-1>
167
  <div class="modal-dialog">
168
  <div class="modal-content">
169
  <div class="modal-header">
94
  * Contact us
95
  */
96
  ?>
97
+ <a href="#bookly-contact-us-modal" id="bookly-contact-us-modal-activator" class="btn btn-default-outline" title="<?php esc_attr_e( 'Contact us', 'bookly' ) ?>" data-toggle="modal"
98
  <?php if ( $show_contact_us_notice ) : ?>
99
  data-processed="false"
100
  data-trigger="manual" data-placement="bottom" data-html="1"
103
  >
104
  <i class="fas fa-envelope"></i> <span class="visible-lg-inline"><?php esc_html_e( 'Contact us', 'bookly' ) ?></span>
105
  </a>
 
106
  <?php
107
  /**
108
  * Feature requests
162
  >
163
  <i class="fas fa-comment-dots"></i> <span class="visible-lg-inline"><?php esc_html_e( 'Feedback', 'bookly' ) ?></span>
164
  </a>
165
+ <div id="bookly-contact-us-modal" class="modal fade text-left" tabindex=-1>
166
  <div class="modal-dialog">
167
  <div class="modal-content">
168
  <div class="modal-header">
backend/components/tiny_mce/Tools.php CHANGED
@@ -18,6 +18,7 @@ class Tools extends Lib\Base\Component
18
  ) {
19
  add_action( 'admin_footer', array( '\Bookly\Backend\Components\TinyMce\Tools', 'renderPopup' ), 10, 0 );
20
  add_filter( 'media_buttons', array( '\Bookly\Backend\Components\TinyMce\Tools', 'addButton' ), 50, 1 );
 
21
  }
22
  }
23
 
18
  ) {
19
  add_action( 'admin_footer', array( '\Bookly\Backend\Components\TinyMce\Tools', 'renderPopup' ), 10, 0 );
20
  add_filter( 'media_buttons', array( '\Bookly\Backend\Components\TinyMce\Tools', 'addButton' ), 50, 1 );
21
+ add_action( 'elementor/editor/footer', array( '\Bookly\Backend\Components\TinyMce\Tools', 'renderPopup' ), 10, 0 );
22
  }
23
  }
24
 
backend/modules/appearance/templates/_custom_css.php CHANGED
@@ -4,9 +4,7 @@ use Bookly\Backend\Components\Controls\Buttons;
4
  ?>
5
 
6
  <div class="form-group">
7
- <button type="button" class="btn btn-default" data-toggle="modal" data-target="#bookly-custom-css-dialog">
8
- <?php _e( 'Edit custom CSS', 'bookly' ); ?>
9
- </button>
10
  </div>
11
 
12
  <div id="bookly-custom-css-dialog" class="modal fade" tabindex=-1 role="dialog">
4
  ?>
5
 
6
  <div class="form-group">
7
+ <?php Buttons::renderModalActivator( 'bookly-custom-css-dialog', null, esc_html__( 'Edit custom CSS', 'bookly' ) ) ?>
 
 
8
  </div>
9
 
10
  <div id="bookly-custom-css-dialog" class="modal fade" tabindex=-1 role="dialog">
backend/modules/appointments/Ajax.php CHANGED
@@ -23,7 +23,7 @@ class Ajax extends Lib\Base\Ajax
23
  public static function getAppointments()
24
  {
25
  $columns = self::parameter( 'columns' );
26
- $order = self::parameter( 'order' );
27
  $filter = self::parameter( 'filter' );
28
  $limits = array(
29
  'length' => self::parameter( 'length' ),
@@ -34,7 +34,7 @@ class Ajax extends Lib\Base\Ajax
34
 
35
  unset( $filter['date'] );
36
 
37
- update_user_meta( get_current_user_id(), 'bookly_filter_appointments_list', $filter );
38
 
39
  wp_send_json( array(
40
  'draw' => ( int ) self::parameter( 'draw' ),
23
  public static function getAppointments()
24
  {
25
  $columns = self::parameter( 'columns' );
26
+ $order = self::parameter( 'order', array() );
27
  $filter = self::parameter( 'filter' );
28
  $limits = array(
29
  'length' => self::parameter( 'length' ),
34
 
35
  unset( $filter['date'] );
36
 
37
+ Lib\Utils\Tables::updateSettings( 'appointments', $columns, $order, $filter );
38
 
39
  wp_send_json( array(
40
  'draw' => ( int ) self::parameter( 'draw' ),
backend/modules/appointments/Page.php CHANGED
@@ -26,10 +26,10 @@ class Page extends Lib\Base\Component
26
  self::enqueueScripts( array(
27
  'backend' => array(
28
  'bootstrap/js/bootstrap.min.js' => array( 'jquery' ),
29
- 'js/datatables.min.js' => array( 'jquery' ),
30
  'js/moment.min.js',
31
- 'js/daterangepicker.js' => array( 'jquery' ),
32
- 'js/select2.full.min.js' => array( 'jquery' ),
33
  ),
34
  'frontend' => array(
35
  'js/spin.min.js' => array( 'jquery' ),
@@ -38,16 +38,8 @@ class Page extends Lib\Base\Component
38
  'module' => array( 'js/appointments.js' => array( 'bookly-datatables.min.js' ), ),
39
  ) );
40
 
41
- // Custom fields without captcha, text content field & file.
42
- $custom_fields = $cf_columns = array();
43
- foreach ( (array) Lib\Proxy\CustomFields::getWhichHaveData() as $cf ) {
44
- if ( $cf->type != 'file' ) {
45
- $cf_columns[] = $cf->id;
46
- $custom_fields[] = $cf;
47
- }
48
- }
49
- // Show column attachments.
50
- $show_attachments = Lib\Config::filesActive() && count( Lib\Proxy\Files::getAllIds() ) > 0;
51
  wp_localize_script( 'bookly-appointments.js', 'BooklyL10n', array(
52
  'csrf_token' => Lib\Utils\Common::getCsrfToken(),
53
  'datePicker' => Lib\Utils\DateTime::datePickerOptions(),
@@ -56,30 +48,27 @@ class Page extends Lib\Base\Component
56
  'zeroRecords' => __( 'No appointments for selected period.', 'bookly' ),
57
  'processing' => __( 'Processing...', 'bookly' ),
58
  'edit' => __( 'Edit', 'bookly' ),
59
- 'add_columns' => array(
60
- 'ratings' => Lib\Config::ratingsActive(),
61
- 'number_of_persons' => Lib\Config::groupBookingActive(),
62
- 'notes' => Lib\Config::showNotes(),
63
- 'attachments' => $show_attachments,
64
- 'location' => Lib\Config::locationsActive(),
65
- ),
66
- 'cf_columns' => $cf_columns,
67
- 'filter' => (array) get_user_meta( get_current_user_id(), 'bookly_filter_appointments_list', true ),
68
  'no_result_found' => __( 'No result found', 'bookly' ),
69
  'searching' => __( 'Searching', 'bookly' ),
70
  'attachments' => __( 'Attachments', 'bookly' ),
71
- 'location' => __( 'Location', 'bookly' ),
72
  'tasks' => array(
73
  'enabled' => Lib\Config::tasksActive(),
74
  'title' => Proxy\Tasks::getFilterText(),
75
  ),
 
76
  ) );
77
 
78
  // Filters data
79
  $staff_members = Lib\Entities\Staff::query( 's' )->select( 's.id, s.full_name' )->whereNot( 'visibility', 'archive' )->fetchArray();
80
- $customers = Lib\Entities\Customer::query()->count() < Lib\Entities\Customer::REMOTE_LIMIT ? Lib\Entities\Customer::query( 'c' )->select( 'c.id, c.full_name, c.first_name, c.last_name' )->fetchArray() : false;
81
- $services = Lib\Entities\Service::query( 's' )->select( 's.id, s.title' )->where( 'type', Lib\Entities\Service::TYPE_SIMPLE )->fetchArray();
 
 
 
 
 
 
82
 
83
- self::renderTemplate( 'index', compact( 'custom_fields', 'staff_members', 'customers', 'services', 'show_attachments' ) );
84
  }
85
  }
26
  self::enqueueScripts( array(
27
  'backend' => array(
28
  'bootstrap/js/bootstrap.min.js' => array( 'jquery' ),
29
+ 'js/datatables.min.js' => array( 'jquery' ),
30
  'js/moment.min.js',
31
+ 'js/daterangepicker.js' => array( 'jquery' ),
32
+ 'js/select2.full.min.js' => array( 'jquery' ),
33
  ),
34
  'frontend' => array(
35
  'js/spin.min.js' => array( 'jquery' ),
38
  'module' => array( 'js/appointments.js' => array( 'bookly-datatables.min.js' ), ),
39
  ) );
40
 
41
+ $datatables = Lib\Utils\Tables::getSettings( 'appointments' );
42
+
 
 
 
 
 
 
 
 
43
  wp_localize_script( 'bookly-appointments.js', 'BooklyL10n', array(
44
  'csrf_token' => Lib\Utils\Common::getCsrfToken(),
45
  'datePicker' => Lib\Utils\DateTime::datePickerOptions(),
48
  'zeroRecords' => __( 'No appointments for selected period.', 'bookly' ),
49
  'processing' => __( 'Processing...', 'bookly' ),
50
  'edit' => __( 'Edit', 'bookly' ),
 
 
 
 
 
 
 
 
 
51
  'no_result_found' => __( 'No result found', 'bookly' ),
52
  'searching' => __( 'Searching', 'bookly' ),
53
  'attachments' => __( 'Attachments', 'bookly' ),
 
54
  'tasks' => array(
55
  'enabled' => Lib\Config::tasksActive(),
56
  'title' => Proxy\Tasks::getFilterText(),
57
  ),
58
+ 'datatables' => $datatables,
59
  ) );
60
 
61
  // Filters data
62
  $staff_members = Lib\Entities\Staff::query( 's' )->select( 's.id, s.full_name' )->whereNot( 'visibility', 'archive' )->fetchArray();
63
+ $customers = Lib\Entities\Customer::query()->count() < Lib\Entities\Customer::REMOTE_LIMIT
64
+ ? array_map( function ( $row ) {
65
+ unset( $row['id'] );
66
+
67
+ return $row;
68
+ }, Lib\Entities\Customer::query( 'c' )->select( 'c.id, c.full_name, c.email, c.phone' )->indexBy( 'id' )->fetchArray() )
69
+ : false;
70
+ $services = Lib\Entities\Service::query( 's' )->select( 's.id, s.title' )->where( 'type', Lib\Entities\Service::TYPE_SIMPLE )->fetchArray();
71
 
72
+ self::renderTemplate( 'index', compact( 'staff_members', 'customers', 'services', 'datatables' ) );
73
  }
74
  }
backend/modules/appointments/proxy/GroupBooking.php CHANGED
@@ -4,12 +4,7 @@ namespace Bookly\Backend\Modules\Appointments\Proxy;
4
  use Bookly\Lib;
5
 
6
  /**
7
- * Class GroupBooking
8
- * @package Bookly\Backend\Modules\Appointments\Proxy
9
- *
10
- * @method static array prepareExportTitles( array $titles ) Prepare titles for export.
11
- * @method static void renderExport() Render option title for export Appointments modal.
12
- * @method static void renderTableHeader() Render column title for Appointments table.
13
  */
14
  abstract class GroupBooking extends Lib\Base\Proxy
15
  {
4
  use Bookly\Lib;
5
 
6
  /**
7
+ * Deprecated, will be deleted in Bookly 17.9
 
 
 
 
 
8
  */
9
  abstract class GroupBooking extends Lib\Base\Proxy
10
  {
backend/modules/appointments/proxy/Locations.php CHANGED
@@ -4,12 +4,7 @@ namespace Bookly\Backend\Modules\Appointments\Proxy;
4
  use Bookly\Lib;
5
 
6
  /**
7
- * Class Locations
8
- * @package Bookly\Backend\Modules\Appointments\Proxy
9
- *
10
- * @method static array prepareExportTitles( array $titles ) Prepare titles for export.
11
- * @method static void renderExport() Render option title for export Appointments modal.
12
- * @method static void renderTableHeader() Render column title for Appointments table.
13
  */
14
  abstract class Locations extends Lib\Base\Proxy
15
  {
4
  use Bookly\Lib;
5
 
6
  /**
7
+ * Deprecated, will be deleted in Bookly 17.9
 
 
 
 
 
8
  */
9
  abstract class Locations extends Lib\Base\Proxy
10
  {
backend/modules/appointments/proxy/Pro.php CHANGED
@@ -8,9 +8,9 @@ use Bookly\Lib;
8
  * @package Bookly\Backend\Modules\Appointments\Proxy
9
  *
10
  * @method static void renderExportButton() Render export button.
11
- * @method static void renderExportDialog( array $custom_fields ) Render export dialog.
12
  * @method static void renderPrintButton() Render print button.
13
- * @method static void renderPrintDialog( array $custom_fields ) Render print dialog.
14
  */
15
  abstract class Pro extends Lib\Base\Proxy
16
  {
8
  * @package Bookly\Backend\Modules\Appointments\Proxy
9
  *
10
  * @method static void renderExportButton() Render export button.
11
+ * @method static void renderExportDialog( array $datatables ) Render export dialog.
12
  * @method static void renderPrintButton() Render print button.
13
+ * @method static void renderPrintDialog( array $datatables ) Render print dialog.
14
  */
15
  abstract class Pro extends Lib\Base\Proxy
16
  {
backend/modules/appointments/proxy/Ratings.php CHANGED
@@ -4,12 +4,7 @@ namespace Bookly\Backend\Modules\Appointments\Proxy;
4
  use Bookly\Lib;
5
 
6
  /**
7
- * Class Ratings
8
- * @package Bookly\Backend\Modules\Appointments\Proxy
9
- *
10
- * @method static array prepareExportTitles( array $titles ) Prepare titles for export.
11
- * @method static void renderExport() Render option title for export Appointments modal.
12
- * @method static void renderTableHeader() Render column title for Appointments table.
13
  */
14
  abstract class Ratings extends Lib\Base\Proxy
15
  {
4
  use Bookly\Lib;
5
 
6
  /**
7
+ * Deprecated, will be deleted in Bookly 17.9
 
 
 
 
 
8
  */
9
  abstract class Ratings extends Lib\Base\Proxy
10
  {
backend/modules/appointments/resources/js/appointments.js CHANGED
@@ -1,6 +1,6 @@
1
  jQuery(function($) {
2
 
3
- var
4
  $appointmentsList = $('#bookly-appointments-list'),
5
  $checkAllButton = $('#bookly-check-all'),
6
  $idFilter = $('#bookly-filter-id'),
@@ -18,6 +18,8 @@ jQuery(function($) {
18
  $deleteButton = $('#bookly-delete'),
19
  isMobile = false,
20
  urlParts = document.URL.split('#'),
 
 
21
  pickers = {
22
  dateFormat: 'YYYY-MM-DD',
23
  appointmentDate: {
@@ -73,7 +75,7 @@ jQuery(function($) {
73
  }
74
  });
75
  } else {
76
- $.each(BooklyL10n.filter, function (field, value) {
77
  if (value != '') {
78
  $('#bookly-filter-' + field).val(value);
79
  }
@@ -89,118 +91,131 @@ jQuery(function($) {
89
  Ladda.bind($('button[type=submit]', $exportForm).get(0), {timeout: 2000});
90
 
91
  /**
92
- * Init DataTables.
93
  */
94
- var columns = [
95
- { data: 'id', responsivePriority: 2 },
96
- { data: 'start_date', responsivePriority: 2 },
97
- { data: 'staff.name', responsivePriority: 2 },
98
- { data: 'customer.full_name', render: $.fn.dataTable.render.text(), responsivePriority: 2 },
99
- {
100
- data: 'customer.phone',
101
- responsivePriority: 3,
102
- render: function (data, type, row, meta) {
103
- if (isMobile) {
104
- return '<a href="tel:' + $.fn.dataTable.render.text().display(data) + '">' + $.fn.dataTable.render.text().display(data) + '</a>';
105
- } else {
106
- return $.fn.dataTable.render.text().display(data);
107
- }
108
- }
109
- },
110
- { data: 'customer.email', render: $.fn.dataTable.render.text(), responsivePriority: 3 }
111
- ];
112
- if (BooklyL10n.add_columns.number_of_persons) {
113
- columns.push({
114
- data: 'number_of_persons',
115
- render: $.fn.dataTable.render.text(),
116
- responsivePriority: 3
117
- });
118
- }
119
- if (BooklyL10n.add_columns.location) {
120
- columns.push({
121
- data: 'location',
122
- render: $.fn.dataTable.render.text(),
123
- responsivePriority: 3
124
- });
125
- }
126
- columns = columns.concat([
127
- {
128
- data: 'service.title',
129
- responsivePriority: 2,
130
- render: function ( data, type, row, meta ) {
131
- if (row.service.extras.length) {
132
- var extras = '<ul class="bookly-list list-dots">';
133
- $.each(row.service.extras, function (key, item) {
134
- extras += '<li><nobr>' + item.title + '</nobr></li>';
135
  });
136
- extras += '</ul>';
137
- return data + extras;
138
- }
139
- else {
140
- return data;
141
- }
142
- }
143
- },
144
- { data: 'service.duration', responsivePriority: 3 },
145
- { data: 'status', responsivePriority: 2 },
146
- {
147
- data: 'payment',
148
- responsivePriority: 2,
149
- render: function ( data, type, row, meta ) {
150
- return '<a href="#bookly-payment-details-modal" data-toggle="modal" data-payment_id="' + row.payment_id + '">' + data + '</a>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  }
152
  }
153
- ]);
154
-
155
- if (BooklyL10n.add_columns.ratings) {
156
- columns.push({
157
- data: 'rating',
158
- render: function ( data, type, row, meta ) {
159
- if (row.rating_comment == null) {
160
- return row.rating;
161
- } else {
162
- return '<a href="#" data-toggle="popover" data-trigger="focus" data-placement="bottom" data-content="' + $.fn.dataTable.render.text().display(row.rating_comment) + '">' + $.fn.dataTable.render.text().display(row.rating) + '</a>';
163
- }
164
- },
165
- responsivePriority: 1
166
- });
167
- }
168
-
169
- if (BooklyL10n.add_columns.notes) {
170
- columns.push({
171
- data: 'notes',
172
- render: $.fn.dataTable.render.text(),
173
- responsivePriority: 3
174
- });
175
- }
176
- $.each(BooklyL10n.cf_columns, function (i, cf_id) {
177
- columns.push({
178
- data: 'custom_fields.' + cf_id,
179
- render: $.fn.dataTable.render.text(),
180
- responsivePriority: 3,
181
- orderable: false
182
- });
183
  });
184
  columns.push({
185
- data: 'created_date',
186
- render: $.fn.dataTable.render.text(),
187
- responsivePriority: 3
 
 
 
 
 
 
 
 
 
188
  });
189
- if (BooklyL10n.add_columns.attachments) {
190
- columns.push({
191
- data: 'attachment',
192
- render: function (data, type, row, meta) {
193
- if (data == '1') {
194
- return '<button type="button" class="btn btn-link bookly-js-attachment" title="' + BooklyL10n.attachments + '"><span class="dashicons dashicons-paperclip"></span></button>';
195
- }
196
- return '';
197
- },
198
- responsivePriority: 1
199
- });
200
- }
201
 
 
 
 
 
 
 
 
 
 
202
  var dt = $appointmentsList.DataTable({
203
- order : [[1, 'desc']],
204
  info : false,
205
  searching : false,
206
  lengthChange: false,
@@ -232,22 +247,7 @@ jQuery(function($) {
232
  }, d);
233
  }
234
  },
235
- columns: columns.concat([
236
- {
237
- responsivePriority: 1,
238
- orderable: false,
239
- render: function ( data, type, row, meta ) {
240
- return '<button type="button" class="btn btn-default bookly-js-edit"><i class="glyphicon glyphicon-edit"></i> ' + BooklyL10n.edit + '</a>';
241
- }
242
- },
243
- {
244
- responsivePriority: 1,
245
- orderable: false,
246
- render: function ( data, type, row, meta ) {
247
- return '<input type="checkbox" value="' + row.ca_id + '" data-appointment="' + row.id + '" />';
248
- }
249
- }
250
- ]),
251
  dom: "<'row'<'col-sm-6'l><'col-sm-6'f>>" +
252
  "<'row'<'col-sm-12'tr>>" +
253
  "<'row pull-left'<'col-sm-12 bookly-margin-top-lg'p>>",
@@ -271,23 +271,6 @@ jQuery(function($) {
271
  )
272
  });
273
 
274
- /**
275
- * Edit appointment.
276
- */
277
- $appointmentsList
278
- .on('click', 'button.bookly-js-edit', function (e) {
279
- e.preventDefault();
280
- var data = dt.row($(this).closest('td')).data();
281
- showAppointmentDialog(
282
- data.id,
283
- null,
284
- null,
285
- function (event) {
286
- dt.ajax.reload();
287
- }
288
- )
289
- });
290
-
291
  /**
292
  * Export.
293
  */
@@ -335,12 +318,28 @@ jQuery(function($) {
335
  $appointmentsList.find('tbody input:checkbox').prop('checked', this.checked);
336
  });
337
 
338
- /**
339
- * On appointment select.
340
- */
341
- $appointmentsList.on('change', 'tbody input:checkbox', function () {
342
- $checkAllButton.prop('checked', $appointmentsList.find('tbody input:not(:checked)').length == 0);
343
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
344
 
345
  /**
346
  * Delete appointments.
@@ -464,7 +463,7 @@ jQuery(function($) {
464
  fromLabel : BooklyL10n.dateRange.from,
465
  toLabel : BooklyL10n.dateRange.to,
466
  customRangeLabel: BooklyL10n.dateRange.customRange,
467
- daysOfWeek : BooklyL10n.datePicker.monthNamesShort,
468
  monthNames : BooklyL10n.datePicker.monthNames,
469
  firstDay : parseInt(BooklyL10n.dateRange.firstDay),
470
  format : BooklyL10n.dateRange.dateFormat
@@ -504,6 +503,23 @@ jQuery(function($) {
504
  placeholder: '',
505
  language : {
506
  noResults: function() { return BooklyL10n.no_result_found; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
507
  }
508
  });
509
 
@@ -540,4 +556,5 @@ jQuery(function($) {
540
  $customerFilter.on('change', function () { dt.ajax.reload(); });
541
  $serviceFilter.on('change', function () { dt.ajax.reload(); });
542
  $statusFilter.on('change', function () { dt.ajax.reload(); });
 
543
  });
1
  jQuery(function($) {
2
 
3
+ let
4
  $appointmentsList = $('#bookly-appointments-list'),
5
  $checkAllButton = $('#bookly-check-all'),
6
  $idFilter = $('#bookly-filter-id'),
18
  $deleteButton = $('#bookly-delete'),
19
  isMobile = false,
20
  urlParts = document.URL.split('#'),
21
+ columns = [],
22
+ order = [],
23
  pickers = {
24
  dateFormat: 'YYYY-MM-DD',
25
  appointmentDate: {
75
  }
76
  });
77
  } else {
78
+ $.each(BooklyL10n.datatables.appointments.settings.filter, function (field, value) {
79
  if (value != '') {
80
  $('#bookly-filter-' + field).val(value);
81
  }
91
  Ladda.bind($('button[type=submit]', $exportForm).get(0), {timeout: 2000});
92
 
93
  /**
94
+ * Init table columns.
95
  */
96
+ $.each(BooklyL10n.datatables.appointments.settings.columns, function (column, show) {
97
+ if (show) {
98
+ switch (column) {
99
+ case 'customer_full_name':
100
+ columns.push({data: 'customer.full_name', render: $.fn.dataTable.render.text()});
101
+ break;
102
+ case 'customer_phone':
103
+ columns.push({
104
+ data: 'customer.phone',
105
+ render: function (data, type, row, meta) {
106
+ if (isMobile) {
107
+ return '<a href="tel:' + $.fn.dataTable.render.text().display(data) + '">' + $.fn.dataTable.render.text().display(data) + '</a>';
108
+ } else {
109
+ return $.fn.dataTable.render.text().display(data);
110
+ }
111
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  });
113
+ break;
114
+ case 'customer_email':
115
+ columns.push({data: 'customer.email', render: $.fn.dataTable.render.text()});
116
+ break;
117
+ case 'staff_name':
118
+ columns.push({data: 'staff.name'});
119
+ break;
120
+ case 'service_title':
121
+ columns.push({
122
+ data: 'service.title',
123
+ render: function ( data, type, row, meta ) {
124
+ if (row.service.extras.length) {
125
+ var extras = '<ul class="bookly-list list-dots">';
126
+ $.each(row.service.extras, function (key, item) {
127
+ extras += '<li><nobr>' + item.title + '</nobr></li>';
128
+ });
129
+ extras += '</ul>';
130
+ return data + extras;
131
+ }
132
+ else {
133
+ return data;
134
+ }
135
+ }
136
+ });
137
+ break;
138
+ case 'payment':
139
+ columns.push({
140
+ data: 'payment',
141
+ render: function ( data, type, row, meta ) {
142
+ if (row.payment_id) {
143
+ return '<a role="button" data-action="show-payment" data-payment_id="' + row.payment_id + '">' + data + '</a>';
144
+ }
145
+ return '';
146
+ }
147
+ });
148
+ break;
149
+ case 'service_duration':
150
+ columns.push({data: 'service.duration'});
151
+ break;
152
+ case 'attachments':
153
+ columns.push({
154
+ data: 'attachment',
155
+ render: function (data, type, row, meta) {
156
+ if (data == '1') {
157
+ return '<button type="button" class="btn btn-link" data-action="show-attachments" title="' + BooklyL10n.attachments + '"><span class="dashicons dashicons-paperclip"></span></button>';
158
+ }
159
+ return '';
160
+ }
161
+ });
162
+ break;
163
+ case 'rating':
164
+ columns.push({
165
+ data: 'rating',
166
+ render: function ( data, type, row, meta ) {
167
+ if (row.rating_comment == null) {
168
+ return row.rating;
169
+ } else {
170
+ return '<a href="#" data-toggle="popover" data-trigger="focus" data-placement="bottom" data-content="' + $.fn.dataTable.render.text().display(row.rating_comment) + '">' + $.fn.dataTable.render.text().display(row.rating) + '</a>';
171
+ }
172
+ },
173
+ });
174
+ break;
175
+ case 'number_of_persons':
176
+ case 'locations':
177
+ columns.push({data: column, render: $.fn.dataTable.render.text()});
178
+ break;
179
+ default:
180
+ if (column.startsWith('custom_fields_')) {
181
+ columns.push({
182
+ data: column.replace(/_([^_]*)$/, '.$1'),
183
+ render: $.fn.dataTable.render.text(),
184
+ orderable: false
185
+ });
186
+ } else {
187
+ columns.push({data: column});
188
+ }
189
+ break;
190
  }
191
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  });
193
  columns.push({
194
+ responsivePriority: 1,
195
+ orderable : false,
196
+ render : function (data, type, row, meta) {
197
+ return '<button type="button" class="btn btn-default" data-action="edit"><i class="glyphicon glyphicon-edit"></i> ' + BooklyL10n.edit + '</a>';
198
+ }
199
+ });
200
+ columns.push({
201
+ responsivePriority: 1,
202
+ orderable : false,
203
+ render : function (data, type, row, meta) {
204
+ return '<input type="checkbox" value="' + row.ca_id + '" data-appointment="' + row.id + '" />';
205
+ }
206
  });
 
 
 
 
 
 
 
 
 
 
 
 
207
 
208
+ $.each(BooklyL10n.datatables.appointments.settings.order, function (_, value) {
209
+ const index = columns.findIndex(c => c.data === value.column);
210
+ if (index !== -1) {
211
+ order.push([index, value.order]);
212
+ }
213
+ });
214
+ /**
215
+ * Init DataTables.
216
+ */
217
  var dt = $appointmentsList.DataTable({
218
+ order : order,
219
  info : false,
220
  searching : false,
221
  lengthChange: false,
247
  }, d);
248
  }
249
  },
250
+ columns: columns,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
251
  dom: "<'row'<'col-sm-6'l><'col-sm-6'f>>" +
252
  "<'row'<'col-sm-12'tr>>" +
253
  "<'row pull-left'<'col-sm-12 bookly-margin-top-lg'p>>",
271
  )
272
  });
273
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274
  /**
275
  * Export.
276
  */
318
  $appointmentsList.find('tbody input:checkbox').prop('checked', this.checked);
319
  });
320
 
321
+ $appointmentsList
322
+ // On appointment select.
323
+ .on('change', 'tbody input:checkbox', function () {
324
+ $checkAllButton.prop('checked', $appointmentsList.find('tbody input:not(:checked)').length == 0);
325
+ })
326
+ // Show payment details
327
+ .on('click', '[data-action=show-payment]', function () {
328
+ $('#bookly-payment-details-modal').modal('show', this);
329
+ })
330
+ // Edit appointment.
331
+ .on('click', '[data-action=edit]', function (e) {
332
+ e.preventDefault();
333
+ var data = dt.row($(this).closest('td')).data();
334
+ showAppointmentDialog(
335
+ data.id,
336
+ null,
337
+ null,
338
+ function (event) {
339
+ dt.ajax.reload();
340
+ }
341
+ )
342
+ });;
343
 
344
  /**
345
  * Delete appointments.
463
  fromLabel : BooklyL10n.dateRange.from,
464
  toLabel : BooklyL10n.dateRange.to,
465
  customRangeLabel: BooklyL10n.dateRange.customRange,
466
+ daysOfWeek : BooklyL10n.datePicker.dayNamesShort,
467
  monthNames : BooklyL10n.datePicker.monthNames,
468
  firstDay : parseInt(BooklyL10n.dateRange.firstDay),
469
  format : BooklyL10n.dateRange.dateFormat
503
  placeholder: '',
504
  language : {
505
  noResults: function() { return BooklyL10n.no_result_found; }
506
+ },
507
+ matcher: function (params, data) {
508
+ const term = $.trim(params.term).toLowerCase();
509
+ if (term === '' || data.text.toLowerCase().indexOf(term) !== -1) {
510
+ return data;
511
+ }
512
+
513
+ let result = null;
514
+ const search = $(data.element).data('search');
515
+ search &&
516
+ search.find((text) => {
517
+ if (result === null && text.toLowerCase().indexOf(term) !== -1) {
518
+ result = data;
519
+ }
520
+ });
521
+
522
+ return result;
523
  }
524
  });
525
 
556
  $customerFilter.on('change', function () { dt.ajax.reload(); });
557
  $serviceFilter.on('change', function () { dt.ajax.reload(); });
558
  $statusFilter.on('change', function () { dt.ajax.reload(); });
559
+
560
  });
backend/modules/appointments/templates/index.php CHANGED
@@ -3,10 +3,10 @@ use Bookly\Backend\Components\Controls;
3
  use Bookly\Backend\Components\Dialogs;
4
  use Bookly\Backend\Components\Support;
5
  use Bookly\Backend\Modules\Appointments\Proxy;
6
- use Bookly\Lib\Config;
7
  use Bookly\Lib\Entities\CustomerAppointment;
8
  use Bookly\Lib\Utils\Common;
9
  use Bookly\Lib\Utils\DateTime;
 
10
  ?>
11
  <div id="bookly-tbs" class="wrap">
12
  <div class="bookly-tbs-body">
@@ -19,18 +19,21 @@ use Bookly\Lib\Utils\DateTime;
19
  <div class="panel panel-default bookly-main">
20
  <div class="panel-body">
21
  <div class="row">
22
- <div class="form-inline bookly-margin-bottom-lg text-right">
23
- <?php Proxy\Pro::renderExportButton() ?>
24
- <?php Proxy\Pro::renderPrintButton() ?>
25
- <div class="form-group">
26
- <button type="button" class="btn btn-success bookly-btn-block-xs" id="bookly-add"><i class="glyphicon glyphicon-plus"></i> <?php _e( 'New appointment', 'bookly' ) ?></button>
 
 
 
27
  </div>
28
  </div>
29
  </div>
30
  <div class="row">
31
  <div class="col-md-3 col-lg-1">
32
  <div class="form-group">
33
- <input class="form-control" type="text" id="bookly-filter-id" placeholder="<?php esc_attr_e( 'No.', 'bookly' ) ?>" />
34
  </div>
35
  </div>
36
  <div class="col-md-3 col-lg-2">
@@ -67,8 +70,8 @@ use Bookly\Lib\Utils\DateTime;
67
  <div class="form-group">
68
  <select class="form-control <?php echo $customers === false ? 'bookly-js-select-ajax' : 'bookly-js-select' ?>" id="bookly-filter-customer" data-placeholder="<?php esc_attr_e( 'Customer', 'bookly' ) ?>" <?php echo $customers === false ? 'data-ajax--action' : 'data-action' ?>="bookly_get_customers_list">
69
  <?php if ( $customers !== false ) : ?>
70
- <?php foreach ( $customers as $customer ) : ?>
71
- <option value="<?php echo $customer['id'] ?>"><?php echo esc_html( $customer['full_name'] ) ?></option>
72
  <?php endforeach ?>
73
  <?php endif ?>
74
  </select>
@@ -94,49 +97,31 @@ use Bookly\Lib\Utils\DateTime;
94
  </div>
95
  </div>
96
  </div>
97
-
98
  <table id="bookly-appointments-list" class="table table-striped" width="100%">
99
  <thead>
100
- <tr>
101
- <th><?php esc_html_e( 'No.', 'bookly' ) ?></th>
102
- <th><?php esc_html_e( 'Appointment Date', 'bookly' ) ?></th>
103
- <th><?php echo esc_html( Common::getTranslatedOption( 'bookly_l10n_label_employee' ) ) ?></th>
104
- <th><?php esc_html_e( 'Customer Name', 'bookly' ) ?></th>
105
- <th><?php esc_html_e( 'Customer Phone', 'bookly' ) ?></th>
106
- <th><?php esc_html_e( 'Customer Email', 'bookly' ) ?></th>
107
- <?php Proxy\GroupBooking::renderTableHeader() ?>
108
- <?php Proxy\Locations::renderTableHeader() ?>
109
- <th><?php echo esc_html( Common::getTranslatedOption( 'bookly_l10n_label_service' ) ) ?></th>
110
- <th><?php esc_html_e( 'Duration', 'bookly' ) ?></th>
111
- <th><?php esc_html_e( 'Status', 'bookly' ) ?></th>
112
- <th><?php esc_html_e( 'Payment', 'bookly' ) ?></th>
113
- <?php Proxy\Ratings::renderTableHeader() ?>
114
- <?php if ( Config::showNotes() ): ?>
115
- <th><?php echo esc_html( Common::getTranslatedOption( 'bookly_l10n_label_notes' ) ) ?></th>
116
- <?php endif ?>
117
- <?php foreach ( $custom_fields as $custom_field ) : ?>
118
- <th><?php echo $custom_field->label ?></th>
119
- <?php endforeach ?>
120
- <th><?php esc_html_e( 'Created', 'bookly' ) ?></th>
121
- <?php if ( $show_attachments ) : ?>
122
- <th><?php esc_html_e( 'Attachments', 'bookly' ) ?></th>
123
  <?php endif ?>
124
- <th></th>
125
- <th width="16"><input type="checkbox" id="bookly-check-all" /></th>
126
- </tr>
 
127
  </thead>
128
  </table>
129
 
130
  <div class="text-right bookly-margin-top-lg">
131
- <?php Controls\Buttons::renderDelete( null, null, null, array( 'data-toggle' => 'modal', 'data-target'=> '#bookly-delete-dialog' ) ) ?>
132
  </div>
133
  </div>
134
  </div>
135
 
136
- <?php Proxy\Pro::renderExportDialog( $custom_fields ) ?>
137
- <?php Proxy\Pro::renderPrintDialog( $custom_fields ) ?>
138
 
139
  <?php Dialogs\Appointment\Delete\Dialog::render() ?>
 
140
  <?php Dialogs\Appointment\Edit\Dialog::render() ?>
141
  <?php Dialogs\Queue\Dialog::render() ?>
142
  <?php Proxy\Shared::renderAddOnsComponents() ?>
3
  use Bookly\Backend\Components\Dialogs;
4
  use Bookly\Backend\Components\Support;
5
  use Bookly\Backend\Modules\Appointments\Proxy;
 
6
  use Bookly\Lib\Entities\CustomerAppointment;
7
  use Bookly\Lib\Utils\Common;
8
  use Bookly\Lib\Utils\DateTime;
9
+ /** @var array $datatables */
10
  ?>
11
  <div id="bookly-tbs" class="wrap">
12
  <div class="bookly-tbs-body">
19
  <div class="panel panel-default bookly-main">
20
  <div class="panel-body">
21
  <div class="row">
22
+ <div class="col-xs-12">
23
+ <div class="form-inline bookly-margin-bottom-lg text-right">
24
+ <?php Proxy\Pro::renderExportButton() ?>
25
+ <?php Proxy\Pro::renderPrintButton() ?>
26
+ <div class="form-group">
27
+ <button type="button" class="btn btn-success bookly-btn-block-xs" id="bookly-add"><i class="glyphicon glyphicon-plus"></i> <?php esc_html_e( 'New appointment', 'bookly' ) ?>...</button>
28
+ </div>
29
+ <?php Dialogs\TableSettings\Dialog::renderButton( 'appointments' ) ?>
30
  </div>
31
  </div>
32
  </div>
33
  <div class="row">
34
  <div class="col-md-3 col-lg-1">
35
  <div class="form-group">
36
+ <input class="form-control" type="text" id="bookly-filter-id" placeholder="<?php esc_attr_e( 'No.', 'bookly' ) ?>"/>
37
  </div>
38
  </div>
39
  <div class="col-md-3 col-lg-2">
70
  <div class="form-group">
71
  <select class="form-control <?php echo $customers === false ? 'bookly-js-select-ajax' : 'bookly-js-select' ?>" id="bookly-filter-customer" data-placeholder="<?php esc_attr_e( 'Customer', 'bookly' ) ?>" <?php echo $customers === false ? 'data-ajax--action' : 'data-action' ?>="bookly_get_customers_list">
72
  <?php if ( $customers !== false ) : ?>
73
+ <?php foreach ( $customers as $customer_id => $customer ) : ?>
74
+ <option value="<?php echo $customer_id ?>" data-search='<?php echo json_encode( array_values( $customer ) ) ?>'><?php echo esc_html( $customer['full_name'] ) ?></option>
75
  <?php endforeach ?>
76
  <?php endif ?>
77
  </select>
97
  </div>
98
  </div>
99
  </div>
 
100
  <table id="bookly-appointments-list" class="table table-striped" width="100%">
101
  <thead>
102
+ <tr>
103
+ <?php foreach ( $datatables['appointments']['settings']['columns'] as $column => $show ) : ?>
104
+ <?php if ( $show ) : ?>
105
+ <th><?php echo $datatables['appointments']['titles'][ $column ] ?></th>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  <?php endif ?>
107
+ <?php endforeach ?>
108
+ <th></th>
109
+ <th width="16"><input type="checkbox" id="bookly-check-all"/></th>
110
+ </tr>
111
  </thead>
112
  </table>
113
 
114
  <div class="text-right bookly-margin-top-lg">
115
+ <?php Controls\Buttons::renderModalActivator( 'bookly-delete-dialog', 'btn-danger', esc_html__( 'Delete', 'bookly' ) ) ?>
116
  </div>
117
  </div>
118
  </div>
119
 
120
+ <?php Proxy\Pro::renderExportDialog( $datatables['appointments'] ) ?>
121
+ <?php Proxy\Pro::renderPrintDialog( $datatables['appointments'] ) ?>
122
 
123
  <?php Dialogs\Appointment\Delete\Dialog::render() ?>
124
+ <?php Dialogs\TableSettings\Dialog::render() ?>
125
  <?php Dialogs\Appointment\Edit\Dialog::render() ?>
126
  <?php Dialogs\Queue\Dialog::render() ?>
127
  <?php Proxy\Shared::renderAddOnsComponents() ?>
backend/modules/customers/Ajax.php CHANGED
@@ -25,7 +25,7 @@ class Ajax extends Lib\Base\Ajax
25
  global $wpdb;
26
 
27
  $columns = self::parameter( 'columns' );
28
- $order = self::parameter( 'order' );
29
  $filter = self::parameter( 'filter' );
30
 
31
  $query = Lib\Entities\Customer::query( 'c' );
@@ -61,13 +61,14 @@ class Ajax extends Lib\Base\Ajax
61
  $query = Proxy\CustomerGroups::prepareCustomerQuery( $query );
62
 
63
  if ( $filter != '' ) {
64
- $search_value = Lib\Query::escape( $filter );
65
- $query
66
- ->whereLike( 'c.full_name', "%{$search_value}%" )
67
- ->whereLike( 'c.phone', "%{$search_value}%", 'OR' )
68
- ->whereLike( 'c.email', "%{$search_value}%", 'OR' )
69
- ->whereLike( 'c.info_fields', "%{$search_value}%", 'OR' )
70
- ;
 
71
  }
72
 
73
  foreach ( $order as $sort_by ) {
@@ -79,7 +80,9 @@ class Ajax extends Lib\Base\Ajax
79
  $query->limit( self::parameter( 'length' ) )->offset( self::parameter( 'start' ) );
80
 
81
  $data = array();
82
- foreach ( $query->fetchArray() as $row ) {
 
 
83
 
84
  $address = Lib\Proxy\Pro::getFullAddressByCustomerData( $row );
85
 
@@ -115,10 +118,12 @@ class Ajax extends Lib\Base\Ajax
115
  $data[] = $customer_data;
116
  }
117
 
 
 
118
  wp_send_json( array(
119
  'draw' => ( int ) self::parameter( 'draw' ),
120
  'recordsTotal' => $total,
121
- 'recordsFiltered' => ( int ) $wpdb->get_var( 'SELECT FOUND_ROWS()' ),
122
  'data' => $data,
123
  ) );
124
  }
25
  global $wpdb;
26
 
27
  $columns = self::parameter( 'columns' );
28
+ $order = self::parameter( 'order', array() );
29
  $filter = self::parameter( 'filter' );
30
 
31
  $query = Lib\Entities\Customer::query( 'c' );
61
  $query = Proxy\CustomerGroups::prepareCustomerQuery( $query );
62
 
63
  if ( $filter != '' ) {
64
+ $search_value = Lib\Query::escape( $filter );
65
+ $search_columns = array( 'c.info_fields LIKE "%%%s%"' );
66
+ foreach ( $columns as $column ) {
67
+ if ( in_array( $column['data'], array( 'first_name', 'last_name', 'full_name', 'phone', 'email' ) ) ) {
68
+ $search_columns[] = 'c.' . $column['data'] . ' LIKE "%%%s%"';
69
+ }
70
+ }
71
+ $query->whereRaw( implode( ' OR ', $search_columns ), array_fill( 0, count( $search_columns ), "%{$search_value}%" ) );
72
  }
73
 
74
  foreach ( $order as $sort_by ) {
80
  $query->limit( self::parameter( 'length' ) )->offset( self::parameter( 'start' ) );
81
 
82
  $data = array();
83
+ $rows = $query->fetchArray();
84
+ $records_filtered = ( int ) $wpdb->get_var( 'SELECT FOUND_ROWS()' );
85
+ foreach ( $rows as $row ) {
86
 
87
  $address = Lib\Proxy\Pro::getFullAddressByCustomerData( $row );
88
 
118
  $data[] = $customer_data;
119
  }
120
 
121
+ Lib\Utils\Tables::updateSettings( 'customers', $columns, $order, $filter );
122
+
123
  wp_send_json( array(
124
  'draw' => ( int ) self::parameter( 'draw' ),
125
  'recordsTotal' => $total,
126
+ 'recordsFiltered' => $records_filtered,
127
  'data' => $data,
128
  ) );
129
  }
backend/modules/customers/Page.php CHANGED
@@ -37,13 +37,17 @@ class Page extends Lib\Base\Component
37
  ),
38
  ) );
39
 
40
- // Customer information fields.
 
 
 
 
 
 
41
  $info_fields = (array) Lib\Proxy\CustomerInformation::getFieldsWhichMayHaveData();
42
 
43
  wp_localize_script( 'bookly-customers.js', 'BooklyL10n', array(
44
  'csrfToken' => Lib\Utils\Common::getCsrfToken(),
45
- 'first_last_name' => (int) Lib\Config::showFirstLastName(),
46
- 'groupsActive' => (int) Lib\Config::customerGroupsActive(),
47
  'infoFields' => $info_fields,
48
  'edit' => __( 'Edit', 'bookly' ),
49
  'are_you_sure' => __( 'Are you sure?', 'bookly' ),
@@ -55,9 +59,9 @@ class Page extends Lib\Base\Component
55
  'create_customer' => __( 'Create customer', 'bookly' ),
56
  'save' => __( 'Save', 'bookly' ),
57
  'search' => __( 'Quick search customer', 'bookly' ),
58
- 'proEnabled' => (int) Lib\Config::proActive(),
59
  ) );
60
 
61
- self::renderTemplate( 'index', compact( 'info_fields' ) );
62
  }
63
  }
37
  ),
38
  ) );
39
 
40
+ $datatables = Lib\Utils\Tables::getSettings( 'customers' );
41
+ if ( ! $datatables['customers']['exist'] ) {
42
+ $datatables['customers']['settings']['columns']['full_name'] = ! Lib\Config::showFirstLastName();
43
+ $datatables['customers']['settings']['columns']['first_name'] = Lib\Config::showFirstLastName();
44
+ $datatables['customers']['settings']['columns']['last_name'] = Lib\Config::showFirstLastName();
45
+ }
46
+
47
  $info_fields = (array) Lib\Proxy\CustomerInformation::getFieldsWhichMayHaveData();
48
 
49
  wp_localize_script( 'bookly-customers.js', 'BooklyL10n', array(
50
  'csrfToken' => Lib\Utils\Common::getCsrfToken(),
 
 
51
  'infoFields' => $info_fields,
52
  'edit' => __( 'Edit', 'bookly' ),
53
  'are_you_sure' => __( 'Are you sure?', 'bookly' ),
59
  'create_customer' => __( 'Create customer', 'bookly' ),
60
  'save' => __( 'Save', 'bookly' ),
61
  'search' => __( 'Quick search customer', 'bookly' ),
62
+ 'datatables' => $datatables,
63
  ) );
64
 
65
+ self::renderTemplate( 'index', compact( 'datatables' ) );
66
  }
67
  }
backend/modules/customers/proxy/CustomerGroups.php CHANGED
@@ -11,8 +11,6 @@ use Bookly\Lib;
11
  * @method static Lib\Query prepareCustomerQuery( Lib\Query $query ) Prepare 'Customer Groups' query in customers table.
12
  * @method static string prepareCustomerSelect( string $select ) Prepare 'Customer Groups' select in customers table.
13
  * @method static array prepareExportTitles( array $titles ) Prepare 'Customer Groups' titles in customers export.
14
- * @method static void renderExportDialogRow() Render 'Customer Group' row in export customer dialog.
15
- * @method static void renderCustomerTableHeader() Render 'Customer Group' in customers table.
16
  */
17
  abstract class CustomerGroups extends Lib\Base\Proxy
18
  {
11
  * @method static Lib\Query prepareCustomerQuery( Lib\Query $query ) Prepare 'Customer Groups' query in customers table.
12
  * @method static string prepareCustomerSelect( string $select ) Prepare 'Customer Groups' select in customers table.
13
  * @method static array prepareExportTitles( array $titles ) Prepare 'Customer Groups' titles in customers export.
 
 
14
  */
15
  abstract class CustomerGroups extends Lib\Base\Proxy
16
  {
backend/modules/customers/proxy/Pro.php CHANGED
@@ -8,11 +8,10 @@ use Bookly\Lib;
8
  * @package Bookly\Backend\Modules\Customers\Proxy
9
  *
10
  * @method static void importCustomers() Import customers from CSV.
11
- * @method static void renderCustomerAddressTableHeader() Render 'address' column header.
12
  * @method static void renderImportButton() Render import button.
13
  * @method static void renderExportButton() Render export button.
14
  * @method static void renderImportDialog() Render import dialog.
15
- * @method static void renderExportDialog( array $info_fields ) Render export dialog.
16
  */
17
  abstract class Pro extends Lib\Base\Proxy
18
  {
8
  * @package Bookly\Backend\Modules\Customers\Proxy
9
  *
10
  * @method static void importCustomers() Import customers from CSV.
 
11
  * @method static void renderImportButton() Render import button.
12
  * @method static void renderExportButton() Render export button.
13
  * @method static void renderImportDialog() Render import dialog.
14
+ * @method static void renderExportDialog( array $settings, array $columns ) Render export dialog.
15
  */
16
  abstract class Pro extends Lib\Base\Proxy
17
  {
backend/modules/customers/resources/js/customers.js CHANGED
@@ -1,66 +1,72 @@
1
  jQuery(function($) {
2
  'use strict';
3
- var
4
  $customersList = $('#bookly-customers-list'),
5
  $mergeListContainer = $('#bookly-merge-list'),
6
  $mergeList = $customersList.clone().prop('id', '').find('th:last').remove().end().appendTo($mergeListContainer),
7
  $filter = $('#bookly-filter'),
8
  $checkAllButton = $('#bookly-check-all'),
9
  $customerDialog = $('#bookly-customer-dialog'),
10
- $addButton = $('#bookly-add'),
11
  $selectForMergeButton = $('#bookly-select-for-merge'),
12
- $mergeWithButton = $('#bookly-merge-with'),
13
  $mergeDialog = $('#bookly-merge-dialog'),
14
  $mergeButton = $('#bookly-merge'),
 
 
15
  row
16
  ;
17
 
18
- var columns = [
19
- {data: 'full_name', render: $.fn.dataTable.render.text(), responsivePriority: 2, visible: BooklyL10n.first_last_name == 0},
20
- {data: 'first_name', render: $.fn.dataTable.render.text(), responsivePriority: 2, visible: BooklyL10n.first_last_name == 1},
21
- {data: 'last_name', render: $.fn.dataTable.render.text(), responsivePriority: 2, visible: BooklyL10n.first_last_name == 1},
22
- {data: 'wp_user', render: $.fn.dataTable.render.text(), responsivePriority: 2}
23
- ];
24
- if (BooklyL10n.groupsActive == 1) {
25
- columns.push({data: 'group_name', render: $.fn.dataTable.render.text(), responsivePriority: 2});
26
- }
27
- columns = columns.concat([
28
- {data: 'phone', render: $.fn.dataTable.render.text(), responsivePriority: 2},
29
- {data: 'email', render: $.fn.dataTable.render.text(), responsivePriority: 2}
30
- ]);
31
- BooklyL10n.infoFields.forEach(function (field, i) {
32
- columns.push({
33
- data: 'info_fields.' + i + '.value' + (field.type === 'checkboxes' ? '[, ]' : ''),
34
- render: $.fn.dataTable.render.text(),
35
- responsivePriority: 3,
36
- orderable: false
37
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  });
39
- columns = columns.concat([
40
- {data: 'notes', render: $.fn.dataTable.render.text(), responsivePriority: 2},
41
- {data: 'last_appointment', responsivePriority: 2},
42
- {data: 'total_appointments', responsivePriority: 2},
43
- {data: 'payments', responsivePriority: 2}
44
- ]);
45
 
46
- if (BooklyL10n.proEnabled == 1){
47
- columns = columns.concat([
48
- {data: 'address', render: $.fn.dataTable.render.text(), responsivePriority: 3, orderable: false},
49
- {
50
- data: 'facebook_id',
51
- responsivePriority: 2,
52
- render: function (data, type, row, meta) {
53
- return data ? '<a href="https://www.facebook.com/app_scoped_user_id/' + data + '/" target="_blank"><span class="dashicons dashicons-facebook"></span></a>' : '';
54
- }
55
- }
56
- ]);
57
- }
58
 
59
  /**
60
  * Init DataTables.
61
  */
62
  var dt = $customersList.DataTable({
63
- order : [[0, 'asc']],
64
  info : false,
65
  searching : false,
66
  lengthChange: false,
@@ -86,7 +92,7 @@ jQuery(function($) {
86
  orderable : false,
87
  searchable : false,
88
  render : function (data, type, row, meta) {
89
- return '<button type="button" class="btn btn-default" data-toggle="modal" data-target="#bookly-customer-dialog"><i class="glyphicon glyphicon-edit"></i> ' + BooklyL10n.edit + '</button>';
90
  }
91
  },
92
  {
@@ -114,79 +120,71 @@ jQuery(function($) {
114
  $customersList.find('tbody input:checkbox').prop('checked', this.checked);
115
  });
116
 
117
- /**
118
- * On customer select.
119
- */
120
- $customersList.on('change', 'tbody input:checkbox', function () {
121
- $checkAllButton.prop('checked', $customersList.find('tbody input:not(:checked)').length == 0);
122
- $mergeWithButton.prop('disabled', $customersList.find('tbody input:checked').length != 1);
123
- });
124
-
125
- /**
126
- * Edit customer.
127
- */
128
- $customersList.on('click', 'button', function () {
129
- row = dt.row($(this).closest('td'));
130
- });
131
-
132
- /**
133
- * New customer.
134
- */
135
- $addButton.on('click', function () {
136
- row = null;
137
- });
138
 
139
  /**
140
  * On show modal.
141
  */
142
- $customerDialog.on('show.bs.modal', function () {
143
- var $title = $customerDialog.find('.modal-title');
144
- var $button = $customerDialog.find('.modal-footer button:first');
145
- var customer;
146
- if (row) {
147
- customer = $.extend(true, {}, row.data());
148
- $title.text(BooklyL10n.edit_customer);
149
- $button.text(BooklyL10n.save);
150
- } else {
151
- customer = {
152
- id : '',
153
- wp_user_id : '',
154
- group_id : '',
155
- full_name : '',
156
- first_name : '',
157
- last_name : '',
158
- phone : '',
159
- email : '',
160
- country : '',
161
- state : '',
162
- postcode : '',
163
- city : '',
164
- street : '',
165
- address : '',
166
- info_fields : [],
167
- notes : '',
168
- birthday : ''
169
- };
170
- BooklyL10n.infoFields.forEach(function (field) {
171
- customer.info_fields.push({id: field.id, value: field.type === 'checkboxes' ? [] : ''});
172
- });
173
- $title.text(BooklyL10n.new_customer);
174
- $button.text(BooklyL10n.create_customer);
175
- }
 
176
 
177
- var $scope = angular.element(this).scope();
178
- $scope.$apply(function ($scope) {
179
- $scope.customer = customer;
180
- setTimeout(function () {
181
- if (BooklyL10nCustDialog.intlTelInput.enabled) {
182
- $('#phone', $customerDialog).intlTelInput('setNumber', customer.phone);
183
- } else {
184
- $('#phone', $customerDialog).val(customer.phone);
185
- }
186
- $('#wp_user', $customerDialog).trigger('change.select2');
187
- }, 0);
188
- });
189
- });
 
190
 
191
  /**
192
  * On filters change.
@@ -233,6 +231,7 @@ jQuery(function($) {
233
  }).trigger('change');
234
  $mergeWithButton.show();
235
  $mergeListContainer.show();
 
236
  }
237
  });
238
 
@@ -286,6 +285,7 @@ jQuery(function($) {
286
  */
287
  Ladda.bind('#bookly-import-customers-dialog button[type=submit]');
288
  Ladda.bind('#bookly-export-customers-dialog button[type=submit]', {timeout: 2000});
 
289
  });
290
 
291
  (function() {
1
  jQuery(function($) {
2
  'use strict';
3
+ let
4
  $customersList = $('#bookly-customers-list'),
5
  $mergeListContainer = $('#bookly-merge-list'),
6
  $mergeList = $customersList.clone().prop('id', '').find('th:last').remove().end().appendTo($mergeListContainer),
7
  $filter = $('#bookly-filter'),
8
  $checkAllButton = $('#bookly-check-all'),
9
  $customerDialog = $('#bookly-customer-dialog'),
 
10
  $selectForMergeButton = $('#bookly-select-for-merge'),
11
+ $mergeWithButton = $('#bookly-merge-dialog-activator'),
12
  $mergeDialog = $('#bookly-merge-dialog'),
13
  $mergeButton = $('#bookly-merge'),
14
+ columns = [],
15
+ order = [],
16
  row
17
  ;
18
 
19
+ /**
20
+ * Init table columns.
21
+ */
22
+ $.each(BooklyL10n.datatables.customers.settings.columns, function (column, show) {
23
+ if (show) {
24
+ switch (column) {
25
+ case 'id':
26
+ case 'last_appointment':
27
+ case 'total_appointments':
28
+ case 'payments':
29
+ case 'wp_user':
30
+ columns.push({data: column});
31
+ break;
32
+ case 'address':
33
+ columns.push({data: column, render: $.fn.dataTable.render.text(), orderable: false});
34
+ break;
35
+ case 'facebook':
36
+ columns.push({
37
+ data: 'facebook_id',
38
+ render: function (data, type, row, meta) {
39
+ return data ? '<a href="https://www.facebook.com/app_scoped_user_id/' + data + '/" target="_blank"><span class="dashicons dashicons-facebook"></span></a>' : '';
40
+ }
41
+ });
42
+ break;
43
+ default:
44
+ if (column.startsWith('info_fields_')) {
45
+ columns.push({
46
+ data: column.replace(/_([^_]*)$/, '.$1.value'),
47
+ render: $.fn.dataTable.render.text(),
48
+ orderable: false
49
+ });
50
+ } else {
51
+ columns.push({data: column, render: $.fn.dataTable.render.text()});
52
+ }
53
+ break;
54
+ }
55
+ }
56
  });
 
 
 
 
 
 
57
 
58
+ $.each(BooklyL10n.datatables.customers.settings.order, function (_, value) {
59
+ const index = columns.findIndex(c => c.data === value.column);
60
+ if (index !== -1) {
61
+ order.push([index, value.order]);
62
+ }
63
+ });
 
 
 
 
 
 
64
 
65
  /**
66
  * Init DataTables.
67
  */
68
  var dt = $customersList.DataTable({
69
+ order : order,
70
  info : false,
71
  searching : false,
72
  lengthChange: false,
92
  orderable : false,
93
  searchable : false,
94
  render : function (data, type, row, meta) {
95
+ return '<button type="button" class="btn btn-default" data-action="edit"><i class="glyphicon glyphicon-edit"></i> ' + BooklyL10n.edit + '</button>';
96
  }
97
  },
98
  {
120
  $customersList.find('tbody input:checkbox').prop('checked', this.checked);
121
  });
122
 
123
+ $customersList
124
+ // On customer select.
125
+ .on('change', 'tbody input:checkbox', function () {
126
+ $checkAllButton.prop('checked', $customersList.find('tbody input:not(:checked)').length == 0);
127
+ $mergeWithButton.prop('disabled', $customersList.find('tbody input:checked').length != 1);
128
+ })
129
+ // Edit customer.
130
+ .on('click', '[data-action=edit]', function () {
131
+ row = dt.row($(this).closest('td'));
132
+ $customerDialog.modal('show');
133
+ });
 
 
 
 
 
 
 
 
 
 
134
 
135
  /**
136
  * On show modal.
137
  */
138
+ $customerDialog
139
+ .on('show.bs.modal', function () {
140
+ var $title = $customerDialog.find('.modal-title');
141
+ var $button = $customerDialog.find('.modal-footer button:first');
142
+ var customer;
143
+ if (row) {
144
+ customer = $.extend(true, {}, row.data());
145
+ $title.text(BooklyL10n.edit_customer);
146
+ $button.text(BooklyL10n.save);
147
+ } else {
148
+ customer = {
149
+ id: '',
150
+ wp_user_id: '',
151
+ group_id: '',
152
+ full_name: '',
153
+ first_name: '',
154
+ last_name: '',
155
+ phone: '',
156
+ email: '',
157
+ country: '',
158
+ state: '',
159
+ postcode: '',
160
+ city: '',
161
+ street: '',
162
+ address: '',
163
+ info_fields: {},
164
+ notes: '',
165
+ birthday: ''
166
+ };
167
+ BooklyL10n.infoFields.forEach(function (field) {
168
+ customer.info_fields[field.id] = {id: field.id, value: field.type === 'checkboxes' ? [] : ''};
169
+ });
170
+ $title.text(BooklyL10n.new_customer);
171
+ $button.text(BooklyL10n.create_customer);
172
+ }
173
 
174
+ var $scope = angular.element(this).scope();
175
+ $scope.$apply(function ($scope) {
176
+ $scope.customer = customer;
177
+ setTimeout(function () {
178
+ if (BooklyL10nCustDialog.intlTelInput.enabled) {
179
+ $('#phone', $customerDialog).intlTelInput('setNumber', customer.phone);
180
+ } else {
181
+ $('#phone', $customerDialog).val(customer.phone);
182
+ }
183
+ $('#wp_user', $customerDialog).trigger('change.select2');
184
+ }, 0);
185
+ });
186
+ })
187
+ .on('hidden.bs.modal', () => row = null);
188
 
189
  /**
190
  * On filters change.
231
  }).trigger('change');
232
  $mergeWithButton.show();
233
  $mergeListContainer.show();
234
+ mdt.responsive.recalc();
235
  }
236
  });
237
 
285
  */
286
  Ladda.bind('#bookly-import-customers-dialog button[type=submit]');
287
  Ladda.bind('#bookly-export-customers-dialog button[type=submit]', {timeout: 2000});
288
+
289
  });
290
 
291
  (function() {
backend/modules/customers/templates/index.php CHANGED
@@ -3,6 +3,7 @@ use Bookly\Backend\Components\Controls\Buttons;
3
  use Bookly\Backend\Components\Dialogs;
4
  use Bookly\Backend\Components\Support;
5
  use Bookly\Backend\Modules\Customers\Proxy;
 
6
  ?>
7
  <div id="bookly-tbs" class="wrap">
8
  <div class="bookly-tbs-body">
@@ -26,41 +27,29 @@ use Bookly\Backend\Modules\Customers\Proxy;
26
  Proxy\Pro::renderImportButton();
27
  ?>
28
  <div class="form-group">
29
- <button type="button" class="btn btn-success bookly-btn-block-xs" id="bookly-add" data-toggle="modal" data-target="#bookly-customer-dialog"><i class="glyphicon glyphicon-plus"></i> <?php esc_html_e( 'New customer', 'bookly' ) ?></button>
30
  </div>
 
31
  </div>
32
  </div>
33
 
34
  <table id="bookly-customers-list" class="table table-striped" width="100%">
35
  <thead>
36
- <tr>
37
- <th><?php esc_html_e( get_option( 'bookly_l10n_label_name' ) ) ?></th>
38
- <th><?php esc_html_e( get_option( 'bookly_l10n_label_first_name' ) ) ?></th>
39
- <th><?php esc_html_e( get_option( 'bookly_l10n_label_last_name' ) ) ?></th>
40
- <th><?php esc_html_e( 'User', 'bookly' ) ?></th>
41
- <?php Proxy\CustomerGroups::renderCustomerTableHeader() ?>
42
- <th><?php esc_html_e( get_option( 'bookly_l10n_label_phone' ) ) ?></th>
43
- <th><?php esc_html_e( get_option( 'bookly_l10n_label_email' ) ) ?></th>
44
- <?php foreach ( $info_fields as $field ) : ?>
45
- <th><?php echo $field->label ?></th>
46
- <?php endforeach ?>
47
- <th><?php esc_html_e( 'Notes', 'bookly' ) ?></th>
48
- <th><?php esc_html_e( 'Last appointment', 'bookly' ) ?></th>
49
- <th><?php esc_html_e( 'Total appointments', 'bookly' ) ?></th>
50
- <th><?php esc_html_e( 'Payments', 'bookly' ) ?></th>
51
- <?php Proxy\Pro::renderCustomerAddressTableHeader() ?>
52
- <?php if ( \Bookly\Lib\Config::proActive() ) : ?>
53
- <th>Facebook</th>
54
  <?php endif ?>
55
- <th></th>
56
- <th width="16"><input type="checkbox" id="bookly-check-all" /></th>
57
- </tr>
 
58
  </thead>
59
  </table>
60
 
61
  <div class="text-right form-inline bookly-margin-top-lg">
62
  <div class="form-group">
63
- <button type="button" id="bookly-merge-with" class="btn btn-default" data-toggle="modal" data-target="#bookly-merge-dialog" disabled="disabled" style="display:none"><i class="glyphicon glyphicon-road"></i> <?php esc_html_e( 'Merge with', 'bookly' ) ?></button>
64
  </div>
65
  <div class="form-group">
66
  <button type="button" id="bookly-select-for-merge" class="btn btn-default"><i class="glyphicon glyphicon-plus"></i> <?php esc_html_e( 'Select for merge', 'bookly' ) ?></button>
@@ -78,7 +67,7 @@ use Bookly\Backend\Modules\Customers\Proxy;
78
 
79
  <?php
80
  Proxy\Pro::renderImportDialog();
81
- Proxy\Pro::renderExportDialog( $info_fields );
82
  Dialogs\Customer\Delete\Dialog::render();
83
  ?>
84
 
@@ -104,5 +93,6 @@ use Bookly\Backend\Modules\Customers\Proxy;
104
  <div customer-dialog=saveCustomer(customer) customer="customer"></div>
105
  <?php Dialogs\Customer\Edit\Dialog::render() ?>
106
  </div>
 
107
  </div>
108
  </div>
3
  use Bookly\Backend\Components\Dialogs;
4
  use Bookly\Backend\Components\Support;
5
  use Bookly\Backend\Modules\Customers\Proxy;
6
+ /** @var array $datatables */
7
  ?>
8
  <div id="bookly-tbs" class="wrap">
9
  <div class="bookly-tbs-body">
27
  Proxy\Pro::renderImportButton();
28
  ?>
29
  <div class="form-group">
30
+ <?php Buttons::renderModalActivator( 'bookly-customer-dialog', 'btn-success bookly-btn-block-xs', esc_html__( 'New customer', 'bookly' ), array(), '<i class="glyphicon glyphicon-plus"></i> {caption}' ) ?>
31
  </div>
32
+ <?php Dialogs\TableSettings\Dialog::renderButton( 'customers' ) ?>
33
  </div>
34
  </div>
35
 
36
  <table id="bookly-customers-list" class="table table-striped" width="100%">
37
  <thead>
38
+ <tr>
39
+ <?php foreach ( $datatables['customers']['settings']['columns'] as $column => $show ) : ?>
40
+ <?php if ( $show ) : ?>
41
+ <th><?php echo $datatables['customers']['titles'][ $column ] ?></th>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  <?php endif ?>
43
+ <?php endforeach ?>
44
+ <th></th>
45
+ <th width="16"><input type="checkbox" id="bookly-check-all"/></th>
46
+ </tr>
47
  </thead>
48
  </table>
49
 
50
  <div class="text-right form-inline bookly-margin-top-lg">
51
  <div class="form-group">
52
+ <?php Buttons::renderModalActivator( 'bookly-merge-dialog', null, esc_html__( 'Merge with', 'bookly' ), array( 'disabled' => 'disabled', 'style' => 'display:none' ), '<i class="glyphicon glyphicon-road"></i> {caption}' ) ?>
53
  </div>
54
  <div class="form-group">
55
  <button type="button" id="bookly-select-for-merge" class="btn btn-default"><i class="glyphicon glyphicon-plus"></i> <?php esc_html_e( 'Select for merge', 'bookly' ) ?></button>
67
 
68
  <?php
69
  Proxy\Pro::renderImportDialog();
70
+ Proxy\Pro::renderExportDialog( $datatables['customers']['settings'], $datatables['customers']['titles'] );
71
  Dialogs\Customer\Delete\Dialog::render();
72
  ?>
73
 
93
  <div customer-dialog=saveCustomer(customer) customer="customer"></div>
94
  <?php Dialogs\Customer\Edit\Dialog::render() ?>
95
  </div>
96
+ <?php Dialogs\TableSettings\Dialog::render() ?>
97
  </div>
98
  </div>
backend/modules/notifications/Page.php CHANGED
@@ -32,19 +32,23 @@ class Page extends Lib\Base\Component
32
  'js/ladda.min.js' => array( 'jquery' ),
33
  )
34
  ) );
35
- $current_notification_id = null;
36
- wp_localize_script( 'bookly-alert.js', 'BooklyL10n', array(
37
- 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
 
 
38
  'sentSuccessfully' => __( 'Sent successfully.', 'bookly' ),
39
- 'settingsSaved' => __( 'Settings saved.', 'bookly' ),
40
- 'areYouSure' => __( 'Are you sure?', 'bookly' ),
41
- 'zeroRecords' => __( 'No records.', 'bookly' ),
42
- 'processing' => __( 'Processing...', 'bookly' ),
43
- 'state' => array( __( 'Disabled', 'bookly' ), __( 'Enabled', 'bookly' ) ),
44
- 'action' => array( __( 'enable', 'bookly' ), __( 'disable', 'bookly' ) ),
45
- 'edit' => __( 'Edit...', 'bookly' ),
46
- 'gateway' => 'email'
 
47
  ) );
48
- self::renderTemplate( 'index' );
 
49
  }
50
  }
32
  'js/ladda.min.js' => array( 'jquery' ),
33
  )
34
  ) );
35
+
36
+ $datatables = Lib\Utils\Tables::getSettings( 'email_notifications' );
37
+
38
+ wp_localize_script( 'bookly-alert.js', 'BooklyL10n', array(
39
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
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' ) ),
47
+ 'edit' => __( 'Edit', 'bookly' ),
48
+ 'gateway' => 'email',
49
+ 'datatables' => $datatables,
50
  ) );
51
+
52
+ self::renderTemplate( 'index', compact( 'datatables' ) );
53
  }
54
  }
backend/modules/notifications/templates/index.php CHANGED
@@ -1,10 +1,11 @@
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\Notifications;
5
  use Bookly\Backend\Components\Support;
6
  use Bookly\Lib\Utils\Common;
7
  use Bookly\Lib\Config;
 
8
  ?>
9
  <div id="bookly-tbs" class="wrap">
10
  <div class="bookly-tbs-body">
@@ -27,16 +28,24 @@ use Bookly\Lib\Config;
27
  <div class="form-group">
28
  <?php Buttons::renderCustom( 'bookly-js-settings', 'btn-default', esc_html__( 'General settings...', 'bookly' ) ) ?>
29
  </div>
30
- <?php Notifications\Dialog::renderNewNotificationButton() ?>
 
31
  </div>
32
  </div>
 
33
  <table id="bookly-js-notification-list" class="table table-striped" style="width: 100%">
34
  <thead>
35
  <tr>
36
- <th width="1"></th>
37
- <th><?php esc_html_e( 'Name', 'bookly' ) ?></th>
38
- <th><?php esc_html_e( 'State', 'bookly' ) ?></th>
39
- <th></th>
 
 
 
 
 
 
40
  <th width="16"><input type="checkbox" class="bookly-js-check-all"/></th>
41
  </tr>
42
  </thead>
@@ -72,6 +81,7 @@ use Bookly\Lib\Config;
72
 
73
  <?php $self::renderTemplate( '_test_email_modal' ) ?>
74
  <?php $self::renderTemplate( '_general_settings_modal' ) ?>
75
- <?php Notifications\Dialog::render() ?>
 
76
  </div>
77
  </div>
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;
5
  use Bookly\Backend\Components\Support;
6
  use Bookly\Lib\Utils\Common;
7
  use Bookly\Lib\Config;
8
+ /** @var array $datatables */
9
  ?>
10
  <div id="bookly-tbs" class="wrap">
11
  <div class="bookly-tbs-body">
28
  <div class="form-group">
29
  <?php Buttons::renderCustom( 'bookly-js-settings', 'btn-default', esc_html__( 'General settings...', 'bookly' ) ) ?>
30
  </div>
31
+ <?php Dialogs\Notifications\Dialog::renderNewNotificationButton() ?>
32
+ <?php Dialogs\TableSettings\Dialog::renderButton( 'email_notifications', 'BooklyL10n' ) ?>
33
  </div>
34
  </div>
35
+
36
  <table id="bookly-js-notification-list" class="table table-striped" style="width: 100%">
37
  <thead>
38
  <tr>
39
+ <?php foreach ( $datatables['email_notifications']['settings']['columns'] as $column => $show ) : ?>
40
+ <?php if ( $show ) : ?>
41
+ <?php if ( $column == 'type' ) : ?>
42
+ <th width="1"></th>
43
+ <?php else : ?>
44
+ <th><?php echo $datatables['email_notifications']['titles'][ $column ] ?></th>
45
+ <?php endif ?>
46
+ <?php endif ?>
47
+ <?php endforeach ?>
48
+ <th width="75"></th>
49
  <th width="16"><input type="checkbox" class="bookly-js-check-all"/></th>
50
  </tr>
51
  </thead>
81
 
82
  <?php $self::renderTemplate( '_test_email_modal' ) ?>
83
  <?php $self::renderTemplate( '_general_settings_modal' ) ?>
84
+ <?php Dialogs\Notifications\Dialog::render() ?>
85
+ <?php Dialogs\TableSettings\Dialog::render() ?>
86
  </div>
87
  </div>
backend/modules/payments/Ajax.php CHANGED
@@ -65,6 +65,10 @@ class Ajax extends Lib\Base\Ajax
65
 
66
  $payments = $query->fetchArray();
67
 
 
 
 
 
68
  $data = array();
69
  $total = 0;
70
  foreach ( $payments as $payment ) {
65
 
66
  $payments = $query->fetchArray();
67
 
68
+ unset( $filter['created'] );
69
+
70
+ Lib\Utils\Tables::updateSettings( 'payments', null, null, $filter );
71
+
72
  $data = array();
73
  $total = 0;
74
  foreach ( $payments as $payment ) {
backend/modules/payments/Page.php CHANGED
@@ -38,17 +38,20 @@ class Page extends Lib\Base\Component
38
  'module' => array( 'js/payments.js' => array( 'bookly-datatables.min.js', 'bookly-ng-payment_details.js', 'bookly-daterangepicker.js' ) ),
39
  ) );
40
 
 
 
41
  wp_localize_script( 'bookly-payments.js', 'BooklyL10n', array(
42
- 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
43
- 'datePicker' => Lib\Utils\DateTime::datePickerOptions(),
44
- 'dateRange' => Lib\Utils\DateTime::dateRangeOptions( array( 'lastMonth' => __( 'Last month', 'bookly' ), ) ),
45
- 'zeroRecords' => __( 'No payments for selected period and criteria.', 'bookly' ),
46
- 'processing' => __( 'Processing...', 'bookly' ),
47
- 'details' => __( 'Details', 'bookly' ),
48
- 'areYouSure' => __( 'Are you sure?', 'bookly' ),
49
- 'noResultFound' => __( 'No result found', 'bookly' ),
50
- 'searching' => __( 'Searching', 'bookly' ),
51
- 'invoice' => array(
 
52
  'enabled' => (int) Lib\Config::invoicesActive(),
53
  'button' => __( 'Invoice', 'bookly' ),
54
  ),
@@ -70,8 +73,14 @@ class Page extends Lib\Base\Component
70
 
71
  $providers = Lib\Entities\Staff::query()->select( 'id, full_name' )->sortBy( 'full_name' )->whereNot( 'visibility', 'archive' )->fetchArray();
72
  $services = Lib\Entities\Service::query()->select( 'id, title' )->sortBy( 'title' )->fetchArray();
73
- $customers = Lib\Entities\Customer::query()->count() < Lib\Entities\Customer::REMOTE_LIMIT ? Lib\Entities\Customer::query( 'c' )->select( 'c.id, c.full_name, c.first_name, c.last_name' )->fetchArray() : false;
 
 
 
 
 
 
74
 
75
- self::renderTemplate( 'index', compact( 'types', 'providers', 'services', 'customers' ) );
76
  }
77
  }
38
  'module' => array( 'js/payments.js' => array( 'bookly-datatables.min.js', 'bookly-ng-payment_details.js', 'bookly-daterangepicker.js' ) ),
39
  ) );
40
 
41
+ $datatables = Lib\Utils\Tables::getSettings( 'payments' );
42
+
43
  wp_localize_script( 'bookly-payments.js', 'BooklyL10n', array(
44
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
45
+ 'datePicker' => Lib\Utils\DateTime::datePickerOptions(),
46
+ 'dateRange' => Lib\Utils\DateTime::dateRangeOptions( array( 'lastMonth' => __( 'Last month', 'bookly' ), ) ),
47
+ 'zeroRecords' => __( 'No payments for selected period and criteria.', 'bookly' ),
48
+ 'processing' => __( 'Processing...', 'bookly' ),
49
+ 'details' => __( 'Details', 'bookly' ),
50
+ 'areYouSure' => __( 'Are you sure?', 'bookly' ),
51
+ 'noResultFound' => __( 'No result found', 'bookly' ),
52
+ 'searching' => __( 'Searching', 'bookly' ),
53
+ 'datatables' => $datatables,
54
+ 'invoice' => array(
55
  'enabled' => (int) Lib\Config::invoicesActive(),
56
  'button' => __( 'Invoice', 'bookly' ),
57
  ),
73
 
74
  $providers = Lib\Entities\Staff::query()->select( 'id, full_name' )->sortBy( 'full_name' )->whereNot( 'visibility', 'archive' )->fetchArray();
75
  $services = Lib\Entities\Service::query()->select( 'id, title' )->sortBy( 'title' )->fetchArray();
76
+ $customers = Lib\Entities\Customer::query()->count() < Lib\Entities\Customer::REMOTE_LIMIT
77
+ ? array_map( function ( $row ) {
78
+ unset( $row['id'] );
79
+
80
+ return $row;
81
+ }, Lib\Entities\Customer::query( 'c' )->select( 'c.id, c.full_name, c.email, c.phone' )->indexBy( 'id' )->fetchArray() )
82
+ : false;
83
 
84
+ self::renderTemplate( 'index', compact( 'types', 'providers', 'services', 'customers', 'datatables' ) );
85
  }
86
  }
backend/modules/payments/resources/js/payments.js CHANGED
@@ -14,6 +14,8 @@ jQuery(function($) {
14
  $delete_button = $('#bookly-delete'),
15
  $download_invoice = $('#bookly-download-invoices'),
16
  urlParts = document.URL.split('#'),
 
 
17
  pickers = {
18
  dateFormat: 'YYYY-MM-DD',
19
  creationDate: {
@@ -22,6 +24,8 @@ jQuery(function($) {
22
  },
23
  };
24
 
 
 
25
  if (urlParts.length > 1) {
26
  urlParts[1].split('&').forEach(function (part) {
27
  var params = part.split('=');
@@ -36,16 +40,48 @@ jQuery(function($) {
36
  $('#bookly-filter-' + params[0]).val(params[1]);
37
  }
38
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  }
40
 
41
- $('.bookly-js-select')
42
- .val(null)
43
- .select2({
44
  allowClear: true,
45
  placeholder: '',
46
  theme: 'bootstrap',
47
  language: {
48
  noResults: function() { return BooklyL10n.noResultFound; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  }
50
  });
51
 
@@ -78,69 +114,80 @@ jQuery(function($) {
78
  /**
79
  * Init Columns.
80
  */
81
- var columns = [
82
- { data: 'id', responsivePriority: 9 },
83
- {
84
- data: 'created',
85
- responsivePriority: 8,
86
- render: function ( data, type, row, meta ) {
87
- return row.created_format;
88
- }
89
- },
90
- { data: 'type', responsivePriority: 7 },
91
- { data: 'customer', render: $.fn.dataTable.render.text(), responsivePriority: 6 },
92
- { data: 'provider', responsivePriority: 4 },
93
- { data: 'service', responsivePriority: 3 },
94
- {
95
- data: 'start_date',
96
- responsivePriority: 2,
97
- render: function ( data, type, row, meta ) {
98
- return row.start_date_format;
 
 
 
 
 
99
  }
100
- },
101
- { data: 'paid', responsivePriority: 1 },
102
- { data: 'status', responsivePriority: 3 },
103
- {
104
- responsivePriority: 1,
105
- orderable: false,
106
- searchable: false,
107
- render: function ( data, type, row, meta ) {
108
- var buttons = '';
109
- if (BooklyL10n.invoice.enabled) {
110
- buttons += '<button type="button" class="btn btn-default bookly-margin-right-md" data-action="view-invoice" data-payment_id="' + row.id + '"><i class="dashicons dashicons-media-text"></i> ' + BooklyL10n.invoice.button + '</button>';
111
- }
112
- return buttons + '<button type="button" class="btn btn-default" data-toggle="modal" data-target="#bookly-payment-details-modal" data-payment_id="' + row.id + '"><i class="glyphicon glyphicon-list-alt"></i> ' + BooklyL10n.details + '</button>';
113
- }
114
- },
115
- {
116
- responsivePriority: 1,
117
- orderable: false,
118
- searchable: false,
119
- render: function ( data, type, row, meta ) {
120
- return '<input type="checkbox" value="' + row.id + '">';
121
  }
 
 
 
 
 
 
 
 
 
122
  }
123
- ];
 
 
 
 
 
 
 
124
 
125
  /**
126
  * Init DataTables.
127
  */
128
  var dt = $payments_list.DataTable({
129
- order: [[ 0, 'asc' ]],
130
- paging: false,
131
- info: false,
132
- searching: false,
133
  processing: true,
134
  responsive: true,
135
  serverSide: false,
136
- ajax: {
137
- url: ajaxurl,
138
- type: 'POST',
139
- data: function ( d ) {
140
- return $.extend( {}, d, {
141
- action: 'bookly_get_payments',
142
  csrf_token: BooklyL10n.csrfToken,
143
- filter: {
144
  id : $id_filter.val(),
145
  created : $creationDateFilter.data('date'),
146
  type : $type_filter.val(),
@@ -149,7 +196,7 @@ jQuery(function($) {
149
  service : $service_filter.val(),
150
  status : $status_filter.val()
151
  }
152
- } );
153
  },
154
  dataSrc: function (json) {
155
  $payment_total.html(json.total);
@@ -157,12 +204,32 @@ jQuery(function($) {
157
  return json.data;
158
  }
159
  },
160
- columns: columns,
161
- language: {
162
  zeroRecords: BooklyL10n.zeroRecords,
163
- processing: BooklyL10n.processing
164
  }
165
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
 
167
  /**
168
  * Select all coupons.
@@ -171,12 +238,19 @@ jQuery(function($) {
171
  $payments_list.find('tbody input:checkbox').prop('checked', this.checked);
172
  });
173
 
174
- /**
175
- * On coupon select.
176
- */
177
- $payments_list.on('change', 'tbody input:checkbox', function () {
178
- $check_all_button.prop('checked', $payments_list.find('tbody input:not(:checked)').length == 0);
179
- });
 
 
 
 
 
 
 
180
 
181
  /**
182
  * Init date range picker.
@@ -266,10 +340,6 @@ jQuery(function($) {
266
  }
267
  });
268
 
269
- $payments_list.on('click', '[data-action=view-invoice]', function () {
270
- window.location = $download_invoice.data('action') + '&invoices=' + $(this).data('payment_id');
271
- });
272
-
273
  $download_invoice.on('click', function () {
274
  var invoices = [];
275
  $payments_list.find('tbody input:checked').each(function () {
14
  $delete_button = $('#bookly-delete'),
15
  $download_invoice = $('#bookly-download-invoices'),
16
  urlParts = document.URL.split('#'),
17
+ columns = [],
18
+ order = [],
19
  pickers = {
20
  dateFormat: 'YYYY-MM-DD',
21
  creationDate: {
24
  },
25
  };
26
 
27
+ $('.bookly-js-select').val(null);
28
+
29
  if (urlParts.length > 1) {
30
  urlParts[1].split('&').forEach(function (part) {
31
  var params = part.split('=');
40
  $('#bookly-filter-' + params[0]).val(params[1]);
41
  }
42
  });
43
+ } else {
44
+ $.each(BooklyL10n.datatables.payments.settings.filter, function (field, value) {
45
+ if (value != '') {
46
+ let $elem = $('#bookly-filter-' + field);
47
+ if ($elem.is(':checkbox')) {
48
+ $elem.prop('checked', value == '1');
49
+ } else {
50
+ $elem.val(value);
51
+ }
52
+ }
53
+ // check if select has correct values
54
+ if ($('#bookly-filter-' + field).prop('type') == 'select-one') {
55
+ if ($('#bookly-filter-' + field + ' option[value="' + value + '"]').length == 0) {
56
+ $('#bookly-filter-' + field).val(null);
57
+ }
58
+ }
59
+ });
60
  }
61
 
62
+ $('.bookly-js-select').select2({
 
 
63
  allowClear: true,
64
  placeholder: '',
65
  theme: 'bootstrap',
66
  language: {
67
  noResults: function() { return BooklyL10n.noResultFound; }
68
+ },
69
+ matcher: function (params, data) {
70
+ const term = $.trim(params.term).toLowerCase();
71
+ if (term === '' || data.text.toLowerCase().indexOf(term) !== -1) {
72
+ return data;
73
+ }
74
+
75
+ let result = null;
76
+ const search = $(data.element).data('search');
77
+ search &&
78
+ search.find((text) => {
79
+ if (result === null && text.toLowerCase().indexOf(term) !== -1) {
80
+ result = data;
81
+ }
82
+ });
83
+
84
+ return result;
85
  }
86
  });
87
 
114
  /**
115
  * Init Columns.
116
  */
117
+ $.each(BooklyL10n.datatables.payments.settings.columns, function (column, show) {
118
+ if (show) {
119
+ switch (column) {
120
+ case 'created':
121
+ columns.push({
122
+ data: column, render: function (data, type, row, meta) {
123
+ return row.created_format;
124
+ }
125
+ });
126
+ break;
127
+ case 'start_date':
128
+ columns.push({
129
+ data: column, render: function (data, type, row, meta) {
130
+ return row.start_date_format;
131
+ }
132
+ });
133
+ break;
134
+ case 'customer':
135
+ columns.push({data: column, render: $.fn.dataTable.render.text()});
136
+ break;
137
+ default:
138
+ columns.push({data: column});
139
+ break;
140
  }
141
+ }
142
+ });
143
+ columns.push({
144
+ responsivePriority: 1,
145
+ orderable: false,
146
+ searchable: false,
147
+ width: BooklyL10n.invoice.enabled ? 180 : 90,
148
+ render: function (data, type, row, meta) {
149
+ var buttons = '<div style="white-space: nowrap;">';
150
+ if (BooklyL10n.invoice.enabled) {
151
+ buttons += '<button type="button" class="btn btn-default bookly-margin-right-md" data-action="view-invoice" data-payment_id="' + row.id + '"><i class="dashicons dashicons-media-text"></i> ' + BooklyL10n.invoice.button + '</button>';
 
 
 
 
 
 
 
 
 
 
152
  }
153
+ return buttons + '<button type="button" class="btn btn-default" data-action="show-payment" data-payment_id="' + row.id + '"><i class="glyphicon glyphicon-list-alt"></i> ' + BooklyL10n.details + '</button></div>';
154
+ }
155
+ });
156
+ columns.push({
157
+ responsivePriority: 1,
158
+ orderable: false,
159
+ searchable: false,
160
+ render: function (data, type, row, meta) {
161
+ return '<input type="checkbox" value="' + row.id + '">';
162
  }
163
+ });
164
+
165
+ $.each(BooklyL10n.datatables.payments.settings.order, function (_, value) {
166
+ const index = columns.findIndex(c => c.data === value.column);
167
+ if (index !== -1) {
168
+ order.push([index, value.order]);
169
+ }
170
+ });
171
 
172
  /**
173
  * Init DataTables.
174
  */
175
  var dt = $payments_list.DataTable({
176
+ order : order,
177
+ paging : false,
178
+ info : false,
179
+ searching : false,
180
  processing: true,
181
  responsive: true,
182
  serverSide: false,
183
+ ajax : {
184
+ url : ajaxurl,
185
+ type : 'POST',
186
+ data : function (d) {
187
+ return $.extend({}, d, {
188
+ action : 'bookly_get_payments',
189
  csrf_token: BooklyL10n.csrfToken,
190
+ filter : {
191
  id : $id_filter.val(),
192
  created : $creationDateFilter.data('date'),
193
  type : $type_filter.val(),
196
  service : $service_filter.val(),
197
  status : $status_filter.val()
198
  }
199
+ });
200
  },
201
  dataSrc: function (json) {
202
  $payment_total.html(json.total);
204
  return json.data;
205
  }
206
  },
207
+ columns : columns,
208
+ language : {
209
  zeroRecords: BooklyL10n.zeroRecords,
210
+ processing : BooklyL10n.processing
211
  }
212
  });
213
+ dt.on( 'order', function () {
214
+ let order = [];
215
+ dt.order().forEach(data => {
216
+ order.push({
217
+ column: columns[data[0]].data,
218
+ order: data[1]
219
+ });
220
+ });
221
+ $.ajax({
222
+ url : ajaxurl,
223
+ type : 'POST',
224
+ data : {
225
+ action : 'bookly_update_table_order',
226
+ table: 'payments',
227
+ csrf_token : BooklyL10n.csrfToken,
228
+ order : order
229
+ },
230
+ dataType : 'json'
231
+ });
232
+ });
233
 
234
  /**
235
  * Select all coupons.
238
  $payments_list.find('tbody input:checkbox').prop('checked', this.checked);
239
  });
240
 
241
+ $payments_list
242
+ // On coupon select.
243
+ .on('change', 'tbody input:checkbox', function () {
244
+ $check_all_button.prop('checked', $payments_list.find('tbody input:not(:checked)').length == 0);
245
+ })
246
+ // Show invoice
247
+ .on('click', '[data-action=view-invoice]', function () {
248
+ window.location = $download_invoice.data('action') + '&invoices=' + $(this).data('payment_id');
249
+ })
250
+ // show payment details
251
+ .on('click', '[data-action=show-payment]', function () {
252
+ $('#bookly-payment-details-modal').modal('show', this);
253
+ });
254
 
255
  /**
256
  * Init date range picker.
340
  }
341
  });
342
 
 
 
 
 
343
  $download_invoice.on('click', function () {
344
  var invoices = [];
345
  $payments_list.find('tbody input:checked').each(function () {
backend/modules/payments/templates/index.php CHANGED
@@ -2,6 +2,7 @@
2
  use Bookly\Lib\Entities\Payment;
3
  use Bookly\Backend\Components;
4
  use Bookly\Backend\Modules\Payments\Proxy;
 
5
  ?>
6
  <div id="bookly-tbs" class="wrap">
7
  <div class="bookly-tbs-body">
@@ -13,6 +14,7 @@ use Bookly\Backend\Modules\Payments\Proxy;
13
  </div>
14
  <div class="panel panel-default bookly-main">
15
  <div class="panel-body">
 
16
  <div class="row">
17
  <div class="col-md-1 col-lg-1">
18
  <div class="form-group">
@@ -44,8 +46,8 @@ use Bookly\Backend\Modules\Payments\Proxy;
44
  <div class="form-group">
45
  <select class="form-control <?php echo $customers === false ? 'bookly-js-select-ajax' : 'bookly-js-select' ?>" id="bookly-filter-customer" data-placeholder="<?php esc_attr_e( 'Customer', 'bookly' ) ?>" <?php echo $customers === false ? 'data-ajax--action' : 'data-action' ?>="bookly_get_customers_list">
46
  <?php if ( $customers !== false ) : ?>
47
- <?php foreach ( $customers as $customer ) : ?>
48
- <option value="<?php echo $customer['id'] ?>"><?php echo esc_html( $customer['full_name'] ) ?></option>
49
  <?php endforeach ?>
50
  <?php endif ?>
51
  </select>
@@ -82,35 +84,35 @@ use Bookly\Backend\Modules\Payments\Proxy;
82
 
83
  <table id="bookly-payments-list" class="table table-striped" width="100%">
84
  <thead>
85
- <tr>
86
- <th><?php _e( 'No.', 'bookly' ) ?></th>
87
- <th><?php _e( 'Date', 'bookly' ) ?></th>
88
- <th><?php _e( 'Type', 'bookly' ) ?></th>
89
- <th><?php _e( 'Customer', 'bookly' ) ?></th>
90
- <th><?php _e( 'Provider', 'bookly' ) ?></th>
91
- <th><?php _e( 'Service', 'bookly' ) ?></th>
92
- <th><?php _e( 'Appointment Date', 'bookly' ) ?></th>
93
- <th><?php _e( 'Amount', 'bookly' ) ?></th>
94
- <th><?php _e( 'Status', 'bookly' ) ?></th>
95
- <th></th>
96
- <th width="16"><input type="checkbox" id="bookly-check-all"></th>
97
- </tr>
98
  </thead>
99
- <tfoot>
 
100
  <tr>
101
- <th></th>
102
- <th></th>
103
- <th></th>
104
- <th></th>
105
- <th></th>
106
- <th></th>
107
- <th><div class="pull-right"><?php _e( 'Total', 'bookly' ) ?>:</div></th>
108
- <th><span id="bookly-payment-total"></span></th>
109
- <th></th>
110
- <th></th>
111
- <th></th>
 
 
112
  </tr>
113
- </tfoot>
 
114
  </table>
115
  <div class="text-right bookly-margin-top-lg">
116
  <?php Proxy\Invoices::renderDownloadButton() ?>
@@ -123,5 +125,6 @@ use Bookly\Backend\Modules\Payments\Proxy;
123
  <div payment-details-dialog></div>
124
  <?php Components\Dialogs\Payment\Dialog::render() ?>
125
  </div>
 
126
  </div>
127
  </div>
2
  use Bookly\Lib\Entities\Payment;
3
  use Bookly\Backend\Components;
4
  use Bookly\Backend\Modules\Payments\Proxy;
5
+ /** @var array $datatables */
6
  ?>
7
  <div id="bookly-tbs" class="wrap">
8
  <div class="bookly-tbs-body">
14
  </div>
15
  <div class="panel panel-default bookly-main">
16
  <div class="panel-body">
17
+ <?php Components\Dialogs\TableSettings\Dialog::renderButton( 'payments' ) ?>
18
  <div class="row">
19
  <div class="col-md-1 col-lg-1">
20
  <div class="form-group">
46
  <div class="form-group">
47
  <select class="form-control <?php echo $customers === false ? 'bookly-js-select-ajax' : 'bookly-js-select' ?>" id="bookly-filter-customer" data-placeholder="<?php esc_attr_e( 'Customer', 'bookly' ) ?>" <?php echo $customers === false ? 'data-ajax--action' : 'data-action' ?>="bookly_get_customers_list">
48
  <?php if ( $customers !== false ) : ?>
49
+ <?php foreach ( $customers as $customer_id => $customer ) : ?>
50
+ <option value="<?php echo $customer_id ?>" data-search='<?php echo json_encode( array_values( $customer ) ) ?>'><?php echo esc_html( $customer['full_name'] ) ?></option>
51
  <?php endforeach ?>
52
  <?php endif ?>
53
  </select>
84
 
85
  <table id="bookly-payments-list" class="table table-striped" width="100%">
86
  <thead>
87
+ <tr>
88
+ <?php foreach ( $datatables['payments']['settings']['columns'] as $column => $show ) : ?>
89
+ <?php if ( $show ) : ?>
90
+ <th><?php echo $datatables['payments']['titles'][ $column ] ?></th>
91
+ <?php endif ?>
92
+ <?php endforeach ?>
93
+ <th></th>
94
+ <th width="16"><input type="checkbox" id="bookly-check-all"/></th>
95
+ </tr>
 
 
 
 
96
  </thead>
97
+ <?php if ( key_exists( 'paid', $datatables['payments']['settings']['columns'] ) && $datatables['payments']['settings']['columns']['paid'] ) : ?>
98
+ <tfoot>
99
  <tr>
100
+ <?php $columns = array_filter( $datatables['payments']['settings']['columns'] ) ?>
101
+ <?php $index = array_search( 'paid', array_keys( $columns ) ) ?>
102
+ <?php for ( $column = 0; $column < count( $columns ) + 2; $column ++ ) : ?>
103
+ <?php if ( $column == $index - 1 ) : ?>
104
+ <th>
105
+ <div class="pull-right"><?php _e( 'Total', 'bookly' ) ?>:</div>
106
+ </th>
107
+ <?php elseif ( $column == $index ) : ?>
108
+ <th><span id="bookly-payment-total"></span></th>
109
+ <?php else : ?>
110
+ <th></th>
111
+ <?php endif ?>
112
+ <?php endfor ?>
113
  </tr>
114
+ </tfoot>
115
+ <?php endif ?>
116
  </table>
117
  <div class="text-right bookly-margin-top-lg">
118
  <?php Proxy\Invoices::renderDownloadButton() ?>
125
  <div payment-details-dialog></div>
126
  <?php Components\Dialogs\Payment\Dialog::render() ?>
127
  </div>
128
+ <?php Components\Dialogs\TableSettings\Dialog::render() ?>
129
  </div>
130
  </div>
backend/modules/services/Ajax.php CHANGED
@@ -16,35 +16,92 @@ class Ajax extends Page
16
  */
17
  public static function getServices()
18
  {
 
 
 
 
 
 
 
 
19
  $query = Lib\Entities\Service::query( 's' )
20
- ->whereIn( 's.type', array_keys( Proxy\Shared::prepareServiceTypes( array( Lib\Entities\Service::TYPE_SIMPLE => Lib\Entities\Service::TYPE_SIMPLE ) ) ) )
21
- ->sortBy( 'position' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
  $type_icons = Proxy\Shared::prepareServiceIcons( array( Lib\Entities\Service::TYPE_SIMPLE => 'fa-calendar-day' ) );
24
 
25
  $data = array();
26
  /** @var Lib\Entities\Service $service */
27
- foreach ( $query->find() as $service ) {
28
- $sub_services_count = count( $service->getSubServices() );
29
- $data[] = array(
30
- 'id' => $service->getId(),
31
- 'title' => $service->getTitle(),
32
- 'position' => sprintf( '%05d-%05d', $service->getPosition(), $service->getId() ),
33
- 'category' => $service->getCategoryId(),
34
- 'colors' => Proxy\Shared::prepareServiceColors( array_fill( 0, 3, $service->getColor() ), $service->getId(), $service->getType() ),
35
- 'type' => ucfirst( $service->getType() ),
36
- 'type_icon' => $type_icons[ $service->getType() ],
37
- 'price' => Lib\Utils\Price::format( $service->getPrice() ),
38
- 'duration' => in_array( $service->getType(), array(
39
  Lib\Entities\Service::TYPE_COLLABORATIVE,
40
  Lib\Entities\Service::TYPE_COMPOUND,
41
  ) )
42
  ? sprintf( _n( '%d service', '%d services', $sub_services_count, 'bookly' ), $sub_services_count )
43
- : Lib\Utils\DateTime::secondsToInterval( $service->getDuration() ),
44
  );
45
  }
46
 
47
- wp_send_json_success( $data );
 
 
 
 
 
 
 
 
 
48
  }
49
 
50
  /**
@@ -265,7 +322,7 @@ class Ajax extends Page
265
  // Update services in addons.
266
  $alert = Proxy\Shared::updateService( array( 'success' => array( __( 'Settings saved.', 'bookly' ) ) ), $service, self::postParameters() );
267
 
268
- wp_send_json_success( Proxy\Shared::prepareUpdateServiceResponse( array( 'alert' => $alert), $service, self::postParameters() ) );
269
  }
270
 
271
  /**
16
  */
17
  public static function getServices()
18
  {
19
+ $columns = self::parameter( 'columns' );
20
+ $order = self::parameter( 'order', array() );
21
+ $filter = self::parameter( 'filter' );
22
+ $limits = array(
23
+ 'length' => self::parameter( 'length' ),
24
+ 'start' => self::parameter( 'start' ),
25
+ );
26
+
27
  $query = Lib\Entities\Service::query( 's' )
28
+ ->select( 's.*, c.name AS category_name' )
29
+ ->leftJoin( 'Category', 'c', 'c.id = s.category_id' )
30
+ ->whereIn( 's.type', array_keys( Proxy\Shared::prepareServiceTypes( array( Lib\Entities\Service::TYPE_SIMPLE => Lib\Entities\Service::TYPE_SIMPLE ) ) ) );
31
+
32
+ foreach ( $order as $sort_by ) {
33
+ $query->sortBy( str_replace( '.', '_', $columns[ $sort_by['column'] ]['data'] ) )
34
+ ->order( $sort_by['dir'] == 'desc' ? Lib\Query::ORDER_DESCENDING : Lib\Query::ORDER_ASCENDING );
35
+ }
36
+
37
+ $total = $query->count();
38
+
39
+ if ( $filter['category'] != '' ) {
40
+ $query->where( 's.category_id', $filter['category'] );
41
+ }
42
+
43
+ if ( $filter['search'] != '' ) {
44
+ $fields = array();
45
+ foreach ( $columns as $column ) {
46
+ switch ( $column['data'] ) {
47
+ case 'category_name':
48
+ $fields[] = 'c.name';
49
+ break;
50
+ case 'title':
51
+ $fields[] = 's.title';
52
+ break;
53
+ }
54
+ }
55
+
56
+ $search_columns = array();
57
+ foreach ( $fields as $field ) {
58
+ $search_columns[] = $field . ' LIKE "%%%s%"';
59
+ }
60
+ if ( ! empty( $search_columns ) ) {
61
+ $query->whereRaw( implode( ' OR ', $search_columns ), array_fill( 0, count( $search_columns ), $filter['search'] ) );
62
+ }
63
+ }
64
+
65
+ $filtered = $query->count();
66
+
67
+ if ( ! empty( $limits ) ) {
68
+ $query->limit( $limits['length'] )->offset( $limits['start'] );
69
+ }
70
 
71
  $type_icons = Proxy\Shared::prepareServiceIcons( array( Lib\Entities\Service::TYPE_SIMPLE => 'fa-calendar-day' ) );
72
 
73
  $data = array();
74
  /** @var Lib\Entities\Service $service */
75
+ foreach ( $query->fetchArray() as $service ) {
76
+ $sub_services_count = count( Lib\Entities\Service::find( $service['id'] )->getSubServices() );
77
+ $data[] = array(
78
+ 'id' => $service['id'],
79
+ 'title' => $service['title'],
80
+ 'position' => sprintf( '%05d-%05d', $service['position'], $service['id'] ),
81
+ 'category_name' => $service['category_name'],
82
+ 'colors' => Proxy\Shared::prepareServiceColors( array_fill( 0, 3, $service['color'] ), $service['id'], $service['type'] ),
83
+ 'type' => ucfirst( $service['type'] ),
84
+ 'type_icon' => $type_icons[ $service['type'] ],
85
+ 'price' => Lib\Utils\Price::format( $service['price'] ),
86
+ 'duration' => in_array( $service['type'], array(
87
  Lib\Entities\Service::TYPE_COLLABORATIVE,
88
  Lib\Entities\Service::TYPE_COMPOUND,
89
  ) )
90
  ? sprintf( _n( '%d service', '%d services', $sub_services_count, 'bookly' ), $sub_services_count )
91
+ : Lib\Utils\DateTime::secondsToInterval( $service['duration'] ),
92
  );
93
  }
94
 
95
+ unset( $filter['search'] );
96
+
97
+ Lib\Utils\Tables::updateSettings( 'services', $columns, $order, $filter );
98
+
99
+ wp_send_json( array(
100
+ 'draw' => ( int ) self::parameter( 'draw' ),
101
+ 'data' => $data,
102
+ 'recordsTotal' => $total,
103
+ 'recordsFiltered' => $filtered,
104
+ ) );
105
  }
106
 
107
  /**
322
  // Update services in addons.
323
  $alert = Proxy\Shared::updateService( array( 'success' => array( __( 'Settings saved.', 'bookly' ) ) ), $service, self::postParameters() );
324
 
325
+ wp_send_json_success( Proxy\Shared::prepareUpdateServiceResponse( compact( 'alert' ), $service, self::postParameters() ) );
326
  }
327
 
328
  /**
backend/modules/services/Page.php CHANGED
@@ -19,7 +19,7 @@ class Page extends Lib\Base\Ajax
19
  self::enqueueStyles( array(
20
  'wp' => array( 'wp-color-picker' ),
21
  'frontend' => array( 'css/ladda.min.css' ),
22
- 'backend' => array( 'bootstrap/css/bootstrap-theme.min.css' ),
23
  ) );
24
 
25
  self::enqueueScripts( array(
@@ -30,6 +30,7 @@ class Page extends Lib\Base\Ajax
30
  'js/alert.js' => array( 'jquery' ),
31
  'js/dropdown.js' => array( 'jquery' ),
32
  'js/range_tools.js' => array( 'jquery' ),
 
33
  ),
34
  'module' => array( 'js/services-list.js' => array( 'jquery-ui-sortable', 'bookly-dropdown.js' ) ),
35
  'frontend' => array(
@@ -45,29 +46,36 @@ class Page extends Lib\Base\Ajax
45
  }
46
  }
47
 
 
 
 
 
 
 
 
 
48
  wp_localize_script( 'bookly-services-list.js', 'BooklyL10n', array(
49
  'csrfToken' => Lib\Utils\Common::getCsrfToken(),
50
- 'are_you_sure' => __( 'Are you sure?', 'bookly' ),
51
- 'edit' => __( 'Edit...', 'bookly' ),
52
  'reorder' => esc_attr__( 'Reorder', 'bookly' ),
53
  'staff' => $staff,
54
- 'categories' => Lib\Entities\Category::query()->sortBy( 'position' )->fetchArray(),
55
- 'uncategorized' => __( 'Uncategorized', 'bookly' ),
56
- 'capacity_error' => __( 'Min capacity should not be greater than max capacity.', 'bookly' ),
57
- 'recurrence_error' => __( 'You must select at least one repeat option for recurring services.', 'bookly' ),
 
 
58
  'show_type' => count( Proxy\Shared::prepareServiceTypes( array() ) ) > 0,
 
59
  ) );
60
 
61
  // Allow add-ons to enqueue their assets.
62
  Proxy\Shared::enqueueAssetsForServices();
63
 
64
- $services = Lib\Entities\Service::query( 's' )
65
- ->whereIn( 's.type', array_keys( Proxy\Shared::prepareServiceTypes( array( Lib\Entities\Service::TYPE_SIMPLE => Lib\Entities\Service::TYPE_SIMPLE ) ) ) )
66
- ->sortBy( 'position' )
67
- ->fetchArray();
68
  foreach ( $services as &$service ) {
69
- $service['colors'] = Proxy\Shared::prepareServiceColors( array_fill( 0, 3, $service['color'] ), $service['id'], $service['type'] );
70
- $service['sub_services'] = Lib\Entities\SubService::query()
71
  ->where( 'service_id', $service['id'] )
72
  ->sortBy( 'position' )
73
  ->fetchArray();
@@ -77,6 +85,8 @@ class Page extends Lib\Base\Ajax
77
  }
78
  $data['services'] = $services;
79
  $data['service_types'] = Proxy\Shared::prepareServiceTypes( array( Lib\Entities\Service::TYPE_SIMPLE => __( 'Simple', 'bookly' ) ) );
 
 
80
 
81
  self::renderTemplate( 'index', $data );
82
  }
19
  self::enqueueStyles( array(
20
  'wp' => array( 'wp-color-picker' ),
21
  'frontend' => array( 'css/ladda.min.css' ),
22
+ 'backend' => array( 'bootstrap/css/bootstrap-theme.min.css', 'css/select2.min.css', ),
23
  ) );
24
 
25
  self::enqueueScripts( array(
30
  'js/alert.js' => array( 'jquery' ),
31
  'js/dropdown.js' => array( 'jquery' ),
32
  'js/range_tools.js' => array( 'jquery' ),
33
+ 'js/select2.full.min.js' => array( 'jquery' ),
34
  ),
35
  'module' => array( 'js/services-list.js' => array( 'jquery-ui-sortable', 'bookly-dropdown.js' ) ),
36
  'frontend' => array(
46
  }
47
  }
48
 
49
+ $services = Lib\Entities\Service::query( 's' )
50
+ ->whereIn( 's.type', array_keys( Proxy\Shared::prepareServiceTypes( array( Lib\Entities\Service::TYPE_SIMPLE => Lib\Entities\Service::TYPE_SIMPLE ) ) ) )
51
+ ->sortBy( 'position' )
52
+ ->fetchArray();
53
+ $categories = Lib\Entities\Category::query()->sortBy( 'position' )->fetchArray();
54
+
55
+ $datatables = Lib\Utils\Tables::getSettings( 'services' );
56
+
57
  wp_localize_script( 'bookly-services-list.js', 'BooklyL10n', array(
58
  'csrfToken' => Lib\Utils\Common::getCsrfToken(),
59
+ 'are_you_sure' => esc_attr__( 'Are you sure?', 'bookly' ),
60
+ 'edit' => esc_attr__( 'Edit', 'bookly' ),
61
  'reorder' => esc_attr__( 'Reorder', 'bookly' ),
62
  'staff' => $staff,
63
+ 'categories' => $categories,
64
+ 'uncategorized' => esc_attr__( 'Uncategorized', 'bookly' ),
65
+ 'services' => $services,
66
+ 'capacity_error' => esc_attr__( 'Min capacity should not be greater than max capacity.', 'bookly' ),
67
+ 'recurrence_error' => esc_attr__( 'You must select at least one repeat option for recurring services.', 'bookly' ),
68
+ 'noResultFound' => esc_attr__( 'No result found', 'bookly' ),
69
  'show_type' => count( Proxy\Shared::prepareServiceTypes( array() ) ) > 0,
70
+ 'datatables' => $datatables,
71
  ) );
72
 
73
  // Allow add-ons to enqueue their assets.
74
  Proxy\Shared::enqueueAssetsForServices();
75
 
 
 
 
 
76
  foreach ( $services as &$service ) {
77
+ $service['colors'] = Proxy\Shared::prepareServiceColors( array_fill( 0, 3, $service['color'] ), $service['id'], $service['type'] );
78
+ $service['sub_services'] = Lib\Entities\SubService::query()
79
  ->where( 'service_id', $service['id'] )
80
  ->sortBy( 'position' )
81
  ->fetchArray();
85
  }
86
  $data['services'] = $services;
87
  $data['service_types'] = Proxy\Shared::prepareServiceTypes( array( Lib\Entities\Service::TYPE_SIMPLE => __( 'Simple', 'bookly' ) ) );
88
+ $data['categories'] = $categories;
89
+ $data['datatables'] = $datatables;
90
 
91
  self::renderTemplate( 'index', $data );
92
  }
backend/modules/services/resources/js/services-list.js CHANGED
@@ -1,100 +1,129 @@
1
  jQuery(function ($) {
2
- var $servicesList = $('#services-list'),
3
- $checkAllButton = $('.bookly-js-check-all'),
4
- $filter = $('#bookly-filter'),
 
 
 
5
  $deleteButton = $('#bookly-delete'),
6
  $deleteModal = $('.bookly-js-delete-cascade-confirm'),
7
- categories = []
 
 
8
  ;
9
- var columns = [
10
- {
11
- data : 'position',
12
- searchable: false
13
- },
14
- {
15
- render: function (data, type, row, meta) {
16
- return '<i class="bookly-icon bookly-icon-draghandle bookly-cursor-move" title="' + BooklyL10n.reorder + '"></i>';
 
 
 
 
 
17
  }
18
- },
19
- ];
 
 
 
 
 
 
 
 
 
 
20
  if (BooklyL10n.show_type) {
21
  columns.push({
22
- render : function (data, type, row, meta) {
 
 
23
  return '<i class="fa fa-fw ' + row.type_icon + '" title="' + row.type + '"></i>';
24
  },
25
- responsivePriority: 2
26
  });
27
  }
28
- columns = columns.concat([
29
- {
30
- responsivePriority: 3,
31
- render : function (data, type, row, meta) {
32
- return '<i class="fa fa-fw fa-circle" style="color:' + row.colors[0] + ';">';
33
- }
34
- },
35
- {
36
- data : 'title',
37
- responsivePriority: 2
38
- },
39
- {
40
- responsivePriority: 3,
41
- render: function (data, type, row, meta) {
42
- $.each(BooklyL10n.categories, function (key, value) {
43
- categories[value.id] = value.name;
44
- });
45
- if (row.category != null) {
46
- return categories[row.category];
47
- } else {
48
- return BooklyL10n.uncategorized;
49
- }
50
- }
51
- },
52
- {
53
- data : 'duration',
54
- responsivePriority: 4,
55
- },
56
- {
57
- data : 'price',
58
- responsivePriority: 3
59
- },
60
- {
61
- responsivePriority: 1,
62
- searchable : false,
63
- render : function (data, type, row, meta) {
64
- return '<button type="button" class="btn btn-default bookly-js-edit" data-action="edit"><i class="fa fa-fw fa-edit"></i> ' + BooklyL10n.edit + '</a>';
65
- }
66
- },
67
- {
68
- responsivePriority: 1,
69
- searchable : false,
70
- render : function (data, type, row, meta) {
71
- return '<input type="checkbox" class="bookly-js-delete" value="' + row.id + '" />';
72
  }
73
  }
74
- ]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  /**
76
- * Notification list
77
  */
78
  var dt = $servicesList.DataTable({
79
- paging : false,
80
- info : false,
81
- processing: true,
82
- responsive: true,
83
- serverSide: false,
84
- rowReorder: {
85
- update : true,
86
- dataSrc : 'position',
87
- snapX : true,
88
- selector: '.bookly-icon-draghandle'
89
- },
90
- order : [0, 'asc'],
91
- columnDefs: [
92
- {visible: false, targets: 0},
93
- {orderable: false, targets: '_all'}
94
- ],
95
- ajax : {
96
  url : ajaxurl,
97
- data: {action: 'bookly_get_services', csrf_token: BooklyL10n.csrfToken}
 
 
 
 
 
 
 
98
  },
99
  columns : columns,
100
  dom : "<'row'<'col-sm-6'<'pull-left'>><'col-sm-6'>>" +
@@ -104,35 +133,14 @@ jQuery(function ($) {
104
  zeroRecords: BooklyL10n.zeroRecords,
105
  processing : BooklyL10n.processing
106
  }
107
- }).on('row-reordered', function (e, diff, edit) {
108
- let positions = [];
109
- dt.data().each(function (item) {
110
- positions.push({position: parseInt(item.position), id: item.id});
111
- });
112
- $.ajax({
113
- url : ajaxurl,
114
- type : 'POST',
115
- data : {
116
- action : 'bookly_update_services_position',
117
- csrf_token : BooklyL10n.csrfToken,
118
- positions : (positions.sort((a, b) => a.position - b.position))
119
- .map(function (value) {
120
- return value.id;
121
- })
122
- },
123
- dataType: 'json',
124
- success : function (response) {
125
-
126
- }
127
- });
128
  });
129
 
130
  /**
131
- * On filters change.
132
  */
133
- $filter
134
  .on('keyup', function () {
135
- dt.search(this.value).draw();
136
  })
137
  .on('keydown', function (e) {
138
  if (e.keyCode == 13) {
@@ -141,6 +149,10 @@ jQuery(function ($) {
141
  }
142
  })
143
  ;
 
 
 
 
144
 
145
  /**
146
  * Select all appointments.
@@ -197,8 +209,8 @@ jQuery(function ($) {
197
  break;
198
  }
199
  } else {
200
- $(document.body).trigger('service.deleted', [services]);
201
  dt.rows($checkboxes.closest('td')).remove().draw();
 
202
  }
203
  ladda.stop();
204
  });
@@ -206,4 +218,15 @@ jQuery(function ($) {
206
 
207
  delete_services(ajaxurl, data);
208
  });
 
 
 
 
 
 
 
 
 
 
 
209
  });
1
  jQuery(function ($) {
2
+ let $servicesList = $('#services-list'),
3
+ $checkAllButton = $('#bookly-check-all'),
4
+ filters = {
5
+ category: $('#bookly-filter-category'),
6
+ search: $('#bookly-filter-search')
7
+ },
8
  $deleteButton = $('#bookly-delete'),
9
  $deleteModal = $('.bookly-js-delete-cascade-confirm'),
10
+ urlParts = document.URL.split('#'),
11
+ columns = [],
12
+ order = []
13
  ;
14
+
15
+ $('.bookly-js-select').val(null);
16
+
17
+ // Apply filter from anchor
18
+ if (urlParts.length > 1) {
19
+ urlParts[1].split('&').forEach(function (part) {
20
+ var params = part.split('=');
21
+ $('#bookly-filter-' + params[0]).val(params[1]);
22
+ });
23
+ } else {
24
+ $.each(BooklyL10n.datatables.services.settings.filter, function (field, value) {
25
+ if (value != '') {
26
+ $('#bookly-filter-' + field).val(value);
27
  }
28
+ // check if select has correct values
29
+ if ($('#bookly-filter-' + field).prop('type') == 'select-one') {
30
+ if ($('#bookly-filter-' + field + ' option[value="' + value + '"]').length == 0) {
31
+ $('#bookly-filter-' + field).val(null);
32
+ }
33
+ }
34
+ });
35
+ }
36
+
37
+ /**
38
+ * Init Columns.
39
+ */
40
  if (BooklyL10n.show_type) {
41
  columns.push({
42
+ responsivePriority: 1,
43
+ orderable: false,
44
+ render: function (data, type, row, meta) {
45
  return '<i class="fa fa-fw ' + row.type_icon + '" title="' + row.type + '"></i>';
46
  },
 
47
  });
48
  }
49
+ columns.push({
50
+ responsivePriority: 1,
51
+ orderable: false,
52
+ render: function (data, type, row, meta) {
53
+ return '<i class="fa fa-fw fa-circle" style="color:' + row.colors[0] + ';">';
54
+ }
55
+ });
56
+
57
+ $.each(BooklyL10n.datatables.services.settings.columns, function (column, show) {
58
+ if (show) {
59
+ switch (column) {
60
+ case 'category_id':
61
+ columns.push({
62
+ data: column,
63
+ render: function (data, type, row, meta) {
64
+ if (row.category != null) {
65
+ return BooklyL10n.categories.find(function (category) {
66
+ return category.id === row.category;
67
+ }).name;
68
+ } else {
69
+ return BooklyL10n.uncategorized;
70
+ }
71
+ }
72
+ });
73
+ break;
74
+ default:
75
+ columns.push({data: column});
76
+ break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  }
78
  }
79
+ });
80
+ columns.push({
81
+ responsivePriority: 1,
82
+ orderable: false,
83
+ searchable: false,
84
+ width: 90,
85
+ render: function (data, type, row, meta) {
86
+ return '<button type="button" class="btn btn-default" data-action="edit"><i class="fa fa-fw fa-edit"></i> ' + BooklyL10n.edit + '</a>';
87
+ }
88
+ });
89
+ columns.push({
90
+ responsivePriority: 1,
91
+ orderable: false,
92
+ searchable: false,
93
+ render: function (data, type, row, meta) {
94
+ return '<input type="checkbox" value="' + row.id + '">';
95
+ }
96
+ });
97
+ $.each(BooklyL10n.datatables.services.settings.order, function (_, value) {
98
+ const index = columns.findIndex(c => c.data === value.column);
99
+ if (index !== -1) {
100
+ order.push([index, value.order]);
101
+ }
102
+ });
103
+
104
  /**
105
+ * Init DataTables.
106
  */
107
  var dt = $servicesList.DataTable({
108
+ order : order,
109
+ info : false,
110
+ searching : false,
111
+ lengthChange: false,
112
+ processing : true,
113
+ responsive : true,
114
+ pageLength : 25,
115
+ pagingType : 'numbers',
116
+ serverSide : true,
117
+ ajax : {
 
 
 
 
 
 
 
118
  url : ajaxurl,
119
+ type: 'POST',
120
+ data: function (d) {
121
+ let data = $.extend({action: 'bookly_get_services', csrf_token: BooklyL10n.csrfToken, filter: {}}, d);
122
+
123
+ Object.keys(filters).map(filter => data.filter[filter] = filters[filter].val());
124
+
125
+ return data;
126
+ }
127
  },
128
  columns : columns,
129
  dom : "<'row'<'col-sm-6'<'pull-left'>><'col-sm-6'>>" +
133
  zeroRecords: BooklyL10n.zeroRecords,
134
  processing : BooklyL10n.processing
135
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  });
137
 
138
  /**
139
+ * On filter search change.
140
  */
141
+ filters.search
142
  .on('keyup', function () {
143
+ dt.ajax.reload();
144
  })
145
  .on('keydown', function (e) {
146
  if (e.keyCode == 13) {
149
  }
150
  })
151
  ;
152
+ filters.category
153
+ .on('change', function () {
154
+ dt.ajax.reload();
155
+ });
156
 
157
  /**
158
  * Select all appointments.
209
  break;
210
  }
211
  } else {
 
212
  dt.rows($checkboxes.closest('td')).remove().draw();
213
+ $(document.body).trigger('service.deleted', [service_ids]);
214
  }
215
  ladda.stop();
216
  });
218
 
219
  delete_services(ajaxurl, data);
220
  });
221
+
222
+ $('.bookly-js-select')
223
+ .select2({
224
+ width: '100%',
225
+ theme: 'bootstrap',
226
+ allowClear: true,
227
+ placeholder: '',
228
+ language : {
229
+ noResults: function() { return BooklyL10n.noResultFound; }
230
+ }
231
+ });
232
  });
backend/modules/services/templates/index.php CHANGED
@@ -3,6 +3,11 @@ use Bookly\Backend\Components\Controls;
3
  use Bookly\Backend\Components\Support;
4
  use Bookly\Backend\Modules\Services\Proxy;
5
  use Bookly\Backend\Components\Dialogs;
 
 
 
 
 
6
  ?>
7
  <div id="bookly-tbs" class="wrap">
8
  <div class="bookly-tbs-body">
@@ -15,35 +20,50 @@ use Bookly\Backend\Components\Dialogs;
15
  <div class="panel panel-default bookly-main">
16
  <div class="panel-body">
17
  <div class="row">
18
- <div class="col-md-4">
 
 
 
 
 
 
19
  <div class="form-group">
20
- <input class="form-control" type="text" id="bookly-filter" placeholder="<?php esc_attr_e( 'Quick search services', 'bookly' ) ?>" />
21
  </div>
 
22
  </div>
23
- <div class="col-md-8 form-inline bookly-margin-bottom-lg text-right">
 
 
24
  <div class="form-group">
25
- <?php Controls\Buttons::renderCustom( 'bookly-js-categories', 'btn-default', esc_html__( 'Categories...', 'bookly' ), array( 'data-toggle' => 'modal', 'data-target'=> '#bookly-service-categories-modal' ) ) ?>
26
  </div>
 
 
27
  <div class="form-group">
28
- <?php Controls\Buttons::renderAdd( 'bookly-js-new-service', 'btn-success', esc_html__( 'Add service...', 'bookly' ), array( 'data-toggle' => 'modal', 'data-target'=> '#bookly-create-service-modal' ) ) ?>
 
 
 
 
29
  </div>
30
  </div>
31
  </div>
 
32
  <table id="services-list" class="table table-striped" style="width: 100%">
33
  <thead>
34
  <tr>
35
- <th style="display: none;"></th>
36
- <th width="24"></th>
37
  <?php if ( Proxy\Shared::prepareServiceTypes( array() ) ) : ?>
38
  <th width="24"></th>
39
  <?php endif ?>
40
  <th width="24"></th>
41
- <th><?php esc_html_e( 'Title', 'bookly' ) ?></th>
42
- <th><?php esc_html_e( 'Category', 'bookly' ) ?></th>
43
- <th><?php esc_html_e( 'Duration', 'bookly' ) ?></th>
44
- <th><?php esc_html_e( 'Price', 'bookly' ) ?></th>
 
45
  <th width="75"></th>
46
- <th width="16"><input type="checkbox" class="bookly-js-check-all"/></th>
47
  </tr>
48
  </thead>
49
  </table>
@@ -57,6 +77,8 @@ use Bookly\Backend\Components\Dialogs;
57
  <?php Dialogs\Service\Create\Dialog::render() ?>
58
  <?php Dialogs\Service\Edit\Dialog::render() ?>
59
  <?php Dialogs\Service\Categories\Dialog::render() ?>
 
 
60
  <div id="bookly-update-service-settings" class="modal fade" tabindex=-1 role="dialog">
61
  <div class="modal-dialog modal-lg">
62
  <div class="modal-content">
3
  use Bookly\Backend\Components\Support;
4
  use Bookly\Backend\Modules\Services\Proxy;
5
  use Bookly\Backend\Components\Dialogs;
6
+ /**
7
+ * @var array $categories
8
+ * @var array $datatables
9
+ * @var array $services
10
+ */
11
  ?>
12
  <div id="bookly-tbs" class="wrap">
13
  <div class="bookly-tbs-body">
20
  <div class="panel panel-default bookly-main">
21
  <div class="panel-body">
22
  <div class="row">
23
+ <div class="col-md-12 form-inline bookly-margin-bottom-lg text-right">
24
+ <div class="form-group">
25
+ <?php Controls\Buttons::renderModalActivator( 'bookly-service-order-modal', 'btn-default bookly-btn-block-xs', esc_html__( 'Services order', 'bookly' ) ) ?>
26
+ </div>
27
+ <div class="form-group">
28
+ <?php Controls\Buttons::renderModalActivator( 'bookly-service-categories-modal', null, esc_html__( 'Categories', 'bookly' ) ) ?>
29
+ </div>
30
  <div class="form-group">
31
+ <?php Controls\Buttons::renderModalActivator( 'bookly-create-service-modal', 'btn-success', esc_html__( 'Add service', 'bookly' ), array(), '<i class="fa fa-fw fa-plus"></i> {caption}' ) ?>
32
  </div>
33
+ <?php Dialogs\TableSettings\Dialog::renderButton( 'services' ) ?>
34
  </div>
35
+ </div>
36
+ <div class="row">
37
+ <div class="col-md-4">
38
  <div class="form-group">
39
+ <input class="form-control" type="text" id="bookly-filter-search" placeholder="<?php esc_attr_e( 'Quick search services', 'bookly' ) ?>"/>
40
  </div>
41
+ </div>
42
+ <div class="col-md-3 col-lg-2">
43
  <div class="form-group">
44
+ <select class="form-control bookly-js-select" id="bookly-filter-category" data-placeholder="<?php esc_attr_e( 'Categories', 'bookly' ) ?>">
45
+ <?php foreach ( $categories as $category ) : ?>
46
+ <option value="<?php echo $category['id'] ?>"><?php echo esc_html( $category['name'] ) ?></option>
47
+ <?php endforeach ?>
48
+ </select>
49
  </div>
50
  </div>
51
  </div>
52
+
53
  <table id="services-list" class="table table-striped" style="width: 100%">
54
  <thead>
55
  <tr>
 
 
56
  <?php if ( Proxy\Shared::prepareServiceTypes( array() ) ) : ?>
57
  <th width="24"></th>
58
  <?php endif ?>
59
  <th width="24"></th>
60
+ <?php foreach ( $datatables['services']['settings']['columns'] as $column => $show ) : ?>
61
+ <?php if ( $show ) : ?>
62
+ <th><?php echo $datatables['services']['titles'][ $column ] ?></th>
63
+ <?php endif ?>
64
+ <?php endforeach ?>
65
  <th width="75"></th>
66
+ <th width="16"><input type="checkbox" id="bookly-check-all" /></th>
67
  </tr>
68
  </thead>
69
  </table>
77
  <?php Dialogs\Service\Create\Dialog::render() ?>
78
  <?php Dialogs\Service\Edit\Dialog::render() ?>
79
  <?php Dialogs\Service\Categories\Dialog::render() ?>
80
+ <?php Dialogs\Service\Order\Dialog::render( $services ) ?>
81
+ <?php Dialogs\TableSettings\Dialog::render() ?>
82
  <div id="bookly-update-service-settings" class="modal fade" tabindex=-1 role="dialog">
83
  <div class="modal-dialog modal-lg">
84
  <div class="modal-content">
backend/modules/settings/Page.php CHANGED
@@ -129,7 +129,7 @@ class Page extends Lib\Base\Ajax
129
 
130
  Proxy\Shared::enqueueAssets();
131
 
132
- wp_localize_script( 'bookly-settings.js', 'BooklyL10n', array(
133
  'alert' => $alert,
134
  'current_tab' => $current_tab,
135
  'csrf_token' => Lib\Utils\Common::getCsrfToken(),
129
 
130
  Proxy\Shared::enqueueAssets();
131
 
132
+ wp_localize_script( 'bookly-settings.js', 'BooklyL10n', array(
133
  'alert' => $alert,
134
  'current_tab' => $current_tab,
135
  'csrf_token' => Lib\Utils\Common::getCsrfToken(),
backend/modules/settings/proxy/CustomStatuses.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Modules\Settings\Proxy;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Pro
8
+ * @package Bookly\Backend\Modules\Settings\Proxy
9
+ *
10
+ * @method static void renderTab() Render custom statuses settings tab.
11
+ */
12
+ abstract class CustomStatuses extends Lib\Base\Proxy
13
+ {
14
+
15
+ }
backend/modules/settings/templates/index.php CHANGED
@@ -64,6 +64,7 @@ use Bookly\Backend\Components;
64
  </div>
65
  <?php Proxy\Pro::renderGoogleCalendarTab() ?>
66
  <?php Proxy\Shared::renderTab() ?>
 
67
  <div class="tab-pane" id="bookly_settings_payments">
68
  <?php include '_paymentsForm.php' ?>
69
  </div>
64
  </div>
65
  <?php Proxy\Pro::renderGoogleCalendarTab() ?>
66
  <?php Proxy\Shared::renderTab() ?>
67
+ <?php Proxy\CustomStatuses::renderTab() ?>
68
  <div class="tab-pane" id="bookly_settings_payments">
69
  <?php include '_paymentsForm.php' ?>
70
  </div>
backend/modules/shop/Ajax.php CHANGED
@@ -78,7 +78,7 @@ class Ajax extends Lib\Base\Ajax
78
  'rating_class' => (int) $plugin['rating'] ? '' : 'collapse',
79
  'rating' => $plugin['rating'],
80
  'reviews' => sprintf( _n( '%d review', '%d reviews', $plugin['reviews'], 'bookly' ), $plugin['reviews'] ),
81
- 'url_class' => $installed ? 'btn-default' : $plugin['slug'] == 'bookly-addon-pro' ? 'btn-success' : 'btn-success' . $disabled,
82
  'url_text' => $installed ? __( 'Installed', 'bookly' ) : __( 'Get it!', 'bookly' ),
83
  'url' => Lib\Utils\Common::prepareUrlReferrers( $plugin['url'] . '?ref=ladela', 'shop' ),
84
  );
78
  'rating_class' => (int) $plugin['rating'] ? '' : 'collapse',
79
  'rating' => $plugin['rating'],
80
  'reviews' => sprintf( _n( '%d review', '%d reviews', $plugin['reviews'], 'bookly' ), $plugin['reviews'] ),
81
+ 'url_class' => $installed ? 'btn-default' : ( $plugin['slug'] == 'bookly-addon-pro' ? 'btn-success' : 'btn-success' . $disabled ),
82
  'url_text' => $installed ? __( 'Installed', 'bookly' ) : __( 'Get it!', 'bookly' ),
83
  'url' => Lib\Utils\Common::prepareUrlReferrers( $plugin['url'] . '?ref=ladela', 'shop' ),
84
  );
backend/modules/sms/Page.php CHANGED
@@ -116,6 +116,16 @@ class Page extends Lib\Base\Component
116
  $alert['error'] = array_merge( $alert['error'], $sms->getErrors() );
117
  // Services in custom notifications where the recipient is client only.
118
  $only_client = Lib\Entities\Service::query()->whereIn( 'type', array( Lib\Entities\Service::TYPE_COMPOUND, Lib\Entities\Service::TYPE_COLLABORATIVE ) )->fetchCol( 'id' );
 
 
 
 
 
 
 
 
 
 
119
  wp_localize_script( 'bookly-daterangepicker.js', 'BooklyL10n',
120
  array(
121
  'csrfToken' => Lib\Utils\Common::getCsrfToken(),
@@ -134,24 +144,25 @@ class Page extends Lib\Base\Component
134
  ),
135
  'datePicker' => Lib\Utils\DateTime::datePickerOptions(),
136
  'dateRange' => Lib\Utils\DateTime::dateRangeOptions( array( 'lastMonth' => __( 'Last month', 'bookly' ), ) ),
137
- 'sender_id' => array(
138
  'sent' => __( 'Sender ID request is sent.', 'bookly' ),
139
  'set_default' => __( 'Sender ID is reset to default.', 'bookly' ),
140
  ),
141
- 'zeroRecords' => __( 'No records for selected period.', 'bookly' ),
142
- 'zeroRecords2' => __( 'No records.', 'bookly' ),
143
- 'processing' => __( 'Processing...', 'bookly' ),
144
- 'onlyClient' => $only_client,
145
- 'invoice' => array(
146
  'button' => __( 'Invoice', 'bookly' ),
147
  'alert' => __( 'To generate an invoice you should fill in company information in Bookly > SMS Notifications > Send invoice.', 'bookly' ),
148
- 'link' => $sms->getInvoiceLink()
149
  ),
150
- 'state' => array( __( 'Disabled', 'bookly' ), __( 'Enabled', 'bookly' ) ),
151
- 'action' => array( __( 'enable', 'bookly' ), __( 'disable', 'bookly' ) ),
152
- 'edit' => __( 'Edit...', 'bookly' ),
153
- 'settingsSaved' => __( 'Settings saved.', 'bookly' ),
154
- 'gateway' => 'sms'
 
155
  )
156
  );
157
  foreach ( range( 1, 23 ) as $hours ) {
@@ -161,7 +172,7 @@ class Page extends Lib\Base\Component
161
  // Number of undelivered sms.
162
  $undelivered_count = Lib\SMS::getUndeliveredSmsCount();
163
 
164
- self::renderTemplate( 'index', compact( 'sms', 'is_logged_in', 'prices', 'bookly_ntf_processing_interval_values', 'undelivered_count', 'email_confirm_required', 'show_registration_form' ) );
165
  }
166
 
167
  /**
116
  $alert['error'] = array_merge( $alert['error'], $sms->getErrors() );
117
  // Services in custom notifications where the recipient is client only.
118
  $only_client = Lib\Entities\Service::query()->whereIn( 'type', array( Lib\Entities\Service::TYPE_COMPOUND, Lib\Entities\Service::TYPE_COLLABORATIVE ) )->fetchCol( 'id' );
119
+
120
+ // Prepare tables settings.
121
+ $datatables = Lib\Utils\Tables::getSettings( array(
122
+ 'sms_notifications',
123
+ 'sms_purchases',
124
+ 'sms_details',
125
+ 'sms_prices',
126
+ 'sms_sender',
127
+ ) );
128
+
129
  wp_localize_script( 'bookly-daterangepicker.js', 'BooklyL10n',
130
  array(
131
  'csrfToken' => Lib\Utils\Common::getCsrfToken(),
144
  ),
145
  'datePicker' => Lib\Utils\DateTime::datePickerOptions(),
146
  'dateRange' => Lib\Utils\DateTime::dateRangeOptions( array( 'lastMonth' => __( 'Last month', 'bookly' ), ) ),
147
+ 'sender_id' => array(
148
  'sent' => __( 'Sender ID request is sent.', 'bookly' ),
149
  'set_default' => __( 'Sender ID is reset to default.', 'bookly' ),
150
  ),
151
+ 'zeroRecords' => __( 'No records for selected period.', 'bookly' ),
152
+ 'zeroRecords2' => __( 'No records.', 'bookly' ),
153
+ 'processing' => __( 'Processing...', 'bookly' ),
154
+ 'onlyClient' => $only_client,
155
+ 'invoice' => array(
156
  'button' => __( 'Invoice', 'bookly' ),
157
  'alert' => __( 'To generate an invoice you should fill in company information in Bookly > SMS Notifications > Send invoice.', 'bookly' ),
158
+ 'link' => $sms->getInvoiceLink(),
159
  ),
160
+ 'state' => array( __( 'Disabled', 'bookly' ), __( 'Enabled', 'bookly' ) ),
161
+ 'action' => array( __( 'enable', 'bookly' ), __( 'disable', 'bookly' ) ),
162
+ 'edit' => __( 'Edit', 'bookly' ),
163
+ 'settingsSaved' => __( 'Settings saved.', 'bookly' ),
164
+ 'gateway' => 'sms',
165
+ 'datatables' => $datatables
166
  )
167
  );
168
  foreach ( range( 1, 23 ) as $hours ) {
172
  // Number of undelivered sms.
173
  $undelivered_count = Lib\SMS::getUndeliveredSmsCount();
174
 
175
+ self::renderTemplate( 'index', compact( 'sms', 'is_logged_in', 'prices', 'bookly_ntf_processing_interval_values', 'undelivered_count', 'email_confirm_required', 'show_registration_form', 'datatables' ) );
176
  }
177
 
178
  /**
backend/modules/sms/resources/js/notifications-list.js CHANGED
@@ -8,91 +8,127 @@ jQuery(function($) {
8
  $btnTestEmail = $('#bookly-js-test-email-notifications'),
9
  $testNotificationsList = $('#bookly-js-test-notifications-list', $modalTestEmail),
10
  $btnDeleteNotifications = $('#bookly-js-delete-notifications'),
11
- $filter = $('#bookly-filter')
 
 
12
  ;
13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  /**
15
  * Notification list
16
  */
17
- var dt = $notificationList
18
- .DataTable({
19
- paging: false,
20
- info: false,
21
- processing: true,
22
- responsive: true,
23
- serverSide: false,
24
- ajax: {
25
- url: ajaxurl,
26
- data: {action: 'bookly_get_notifications', csrf_token: BooklyL10n.csrfToken, gateway: BooklyL10n.gateway}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  },
28
- order: [1, 'asc'],
29
- columns: [
30
- {
31
- data: 'order',
32
- responsivePriority: 2,
33
- render: function (data, type, row, meta) {
34
- return '<span class="hidden">' + data + '</span><i class="fa fa-fw ' + row.icon + '" title="' + row.title + '"></i>';
35
- }
36
- },
37
- {
38
- data: 'name',
39
- responsivePriority: 1
40
- },
41
- {
42
- data: 'active',
43
- responsivePriority: 2,
44
- render: function (data, type, row, meta) {
45
- return '<span class="label ' + (row.active == 1 ? 'label-success' : 'label-danger') + '">' + BooklyL10n.state[data] + '</span>' + ' (<a href="#" data-action="toggle-active">' + BooklyL10n.action[data] + '</a>)';
46
- }
47
- },
48
- {
49
- data: 'active',
50
- className: 'text-right',
51
- orderable: false,
52
- responsivePriority: 1,
53
- render: function (data, type, row, meta) {
54
- 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="glyphicon glyphicon-edit"></i> <span class="ladda-label">' + BooklyL10n.edit + '</span></a>';
55
- }
56
- },
57
- {
58
- orderable: false,
59
- responsivePriority: 1,
60
- render: function (data, type, row, meta) {
61
- return '<input type="checkbox" class="bookly-js-delete" value="' + row.id + '" />';
62
- }
63
  }
64
- ],
65
- dom: "<'row'<'col-sm-6'<'pull-left'>><'col-sm-6'>>" +
66
- "<'row'<'col-sm-12'tr>>" +
67
- "<'row pull-left'<'col-sm-12 bookly-margin-top-lg'p>>",
68
- language: {
69
- zeroRecords: BooklyL10n.zeroRecords,
70
- processing: BooklyL10n.processing
71
  }
72
- })
73
- .on('click', '[data-action=toggle-active]', function (e) {
74
- var row = dt.row($(this).closest('td')),
75
- data = row.data();
76
- e.preventDefault();
77
- data.active = data.active === '1' ? '0' : '1';
78
- $.ajax({
79
- url: ajaxurl,
80
- type: 'POST',
81
- data: {
82
- action : 'bookly_set_notification_state',
83
- csrf_token : BooklyL10n.csrfToken,
84
- id : data.id,
85
- active : data.active
86
- },
87
- dataType: 'json',
88
- success: function (response) {
89
- if (response.success) {
90
- row.data(data).draw();
91
- booklyAlert({success: [BooklyL10n.settingsSaved]});
92
- }
93
- }
94
  });
95
  });
 
 
 
 
 
 
 
 
 
 
 
 
96
 
97
  /**
98
  * On filters change.
@@ -149,7 +185,7 @@ jQuery(function($) {
149
  });
150
 
151
  /**
152
- * Delete taxes.
153
  */
154
  $btnDeleteNotifications.on('click', function () {
155
  if (confirm(BooklyL10n.areYouSure)) {
8
  $btnTestEmail = $('#bookly-js-test-email-notifications'),
9
  $testNotificationsList = $('#bookly-js-test-notifications-list', $modalTestEmail),
10
  $btnDeleteNotifications = $('#bookly-js-delete-notifications'),
11
+ $filter = $('#bookly-filter'),
12
+ columns = [],
13
+ order = []
14
  ;
15
 
16
+ /**
17
+ * Init Columns.
18
+ */
19
+ $.each(BooklyL10n.datatables[BooklyL10n.gateway + '_notifications'].settings.columns, function (column, show) {
20
+ if (show) {
21
+ switch (column) {
22
+ case 'type':
23
+ columns.push({
24
+ data: 'order',
25
+ render: function (data, type, row, meta) {
26
+ return '<span class="hidden">' + data + '</span><i class="fa fa-fw ' + row.icon + '" title="' + row.title + '"></i>';
27
+ }
28
+ });
29
+ break;
30
+ case 'active':
31
+ columns.push({
32
+ data: column,
33
+ render: function (data, type, row, meta) {
34
+ return '<span class="label ' + (row.active == 1 ? 'label-success' : 'label-danger') + '">' + BooklyL10n.state[data] + '</span>' + ' (<a href="#" data-action="toggle-active">' + BooklyL10n.action[data] + '</a>)';
35
+ }
36
+ });
37
+ break;
38
+ default:
39
+ columns.push({data: column});
40
+ break;
41
+ }
42
+ }
43
+ });
44
+ columns.push({
45
+ className: 'text-right',
46
+ orderable: false,
47
+ responsivePriority: 1,
48
+ render: function (data, type, row, meta) {
49
+ 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="glyphicon glyphicon-edit"></i> <span class="ladda-label">' + BooklyL10n.edit + '</span></a>';
50
+ }
51
+ });
52
+ columns.push({
53
+ orderable: false,
54
+ responsivePriority: 1,
55
+ render: function (data, type, row, meta) {
56
+ return '<input type="checkbox" class="bookly-js-delete" value="' + row.id + '" />';
57
+ }
58
+ });
59
+
60
+ $.each(BooklyL10n.datatables[BooklyL10n.gateway + '_notifications'].settings.order, function (_, value) {
61
+ const index = columns.findIndex(c => c.data === value.column);
62
+ if (index !== -1) {
63
+ order.push([index, value.order]);
64
+ }
65
+ });
66
+
67
  /**
68
  * Notification list
69
  */
70
+ var dt = $notificationList.DataTable({
71
+ paging : false,
72
+ info : false,
73
+ processing: true,
74
+ responsive: true,
75
+ serverSide: false,
76
+ ajax : {
77
+ url : ajaxurl,
78
+ data: {action: 'bookly_get_notifications', csrf_token: BooklyL10n.csrfToken, gateway: BooklyL10n.gateway}
79
+ },
80
+ order : order,
81
+ columns : columns,
82
+ dom : "<'row'<'col-sm-6'<'pull-left'>><'col-sm-6'>>" +
83
+ "<'row'<'col-sm-12'tr>>" +
84
+ "<'row pull-left'<'col-sm-12 bookly-margin-top-lg'p>>",
85
+ language : {
86
+ zeroRecords: BooklyL10n.zeroRecords,
87
+ processing : BooklyL10n.processing
88
+ }
89
+ }).on('click', '[data-action=toggle-active]', function (e) {
90
+ var row = dt.row($(this).closest('td')),
91
+ data = row.data();
92
+ e.preventDefault();
93
+ data.active = data.active === '1' ? '0' : '1';
94
+ $.ajax({
95
+ url : ajaxurl,
96
+ type : 'POST',
97
+ data : {
98
+ action : 'bookly_set_notification_state',
99
+ csrf_token: BooklyL10n.csrfToken,
100
+ id : data.id,
101
+ active : data.active
102
  },
103
+ dataType: 'json',
104
+ success : function (response) {
105
+ if (response.success) {
106
+ row.data(data).draw();
107
+ booklyAlert({success: [BooklyL10n.settingsSaved]});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  }
 
 
 
 
 
 
 
109
  }
110
+ });
111
+ });
112
+ dt.on( 'order', function () {
113
+ let order = [];
114
+ dt.order().forEach(data => {
115
+ order.push({
116
+ column: columns[data[0]].data,
117
+ order: data[1]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  });
119
  });
120
+ $.ajax({
121
+ url : ajaxurl,
122
+ type : 'POST',
123
+ data : {
124
+ action : 'bookly_update_table_order',
125
+ table: BooklyL10n.gateway + '_notifications',
126
+ csrf_token : BooklyL10n.csrfToken,
127
+ order : order
128
+ },
129
+ dataType : 'json'
130
+ });
131
+ });
132
 
133
  /**
134
  * On filters change.
185
  });
186
 
187
  /**
188
+ * Delete notifications.
189
  */
190
  $btnDeleteNotifications.on('click', function () {
191
  if (confirm(BooklyL10n.areYouSure)) {
backend/modules/sms/resources/js/sms.js CHANGED
@@ -307,6 +307,24 @@ jQuery(function($) {
307
  .html(start.format(BooklyL10n.dateRange.dateFormat) + ' - ' + end.format(BooklyL10n.dateRange.dateFormat));
308
  }
309
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
  var dt = $('#bookly-purchases').DataTable({
311
  ordering: false,
312
  paging: false,
@@ -325,20 +343,7 @@ jQuery(function($) {
325
  },
326
  dataSrc: 'list'
327
  },
328
- columns: [
329
- { data: "date" },
330
- { data: "time" },
331
- { data: "type" },
332
- { data: "order" },
333
- { data: "status" },
334
- { data: "amount" },
335
- {
336
- className: "text-right",
337
- render: function (data, type, row, meta) {
338
- return '<button type="button" class="btn btn-default bookly-margin-right-md" data-action="download-invoice"><i class="dashicons dashicons-media-text"></i> ' + BooklyL10n.invoice.button + '</a>';
339
- }
340
- }
341
- ],
342
  language: {
343
  zeroRecords: BooklyL10n.zeroRecords,
344
  processing: BooklyL10n.processing
@@ -380,39 +385,43 @@ jQuery(function($) {
380
  .html(start.format(BooklyL10n.dateRange.dateFormat) + ' - ' + end.format(BooklyL10n.dateRange.dateFormat));
381
  }
382
  );
383
- var dt = $('#bookly-sms').DataTable({
384
- ordering: false,
385
- paging: false,
386
- info: false,
387
- searching: false,
388
- processing: true,
389
- responsive: true,
390
- ajax: {
391
- url : ajaxurl,
392
- data: function (d) {
393
- return {
394
- action: 'bookly_get_sms_list',
395
- csrf_token: BooklyL10n.csrfToken,
396
- range: $date_range.data('date')
397
- };
398
- },
399
- dataSrc: 'list'
400
- },
401
- columns: [
402
- { data: "date" },
403
- { data: "time" },
404
- { data: "message" },
405
- { data: "phone" },
406
- { data: "sender_id" },
407
- { data: "charge" },
408
- { data: "status" },
409
- { data: "info" }
410
- ],
411
- language: {
412
- zeroRecords: BooklyL10n.zeroRecords,
413
- processing: BooklyL10n.processing
414
  }
415
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
416
 
417
  $date_range.on('apply.daterangepicker', function () { dt.ajax.reload(); });
418
  $(this).on('click', function () { dt.ajax.reload(); });
@@ -447,47 +456,69 @@ jQuery(function($) {
447
  });
448
 
449
  function fillPriceTable() {
450
- var dt = $('#bookly-prices').DataTable({
451
- ordering: false,
452
- paging: false,
453
- info: false,
454
- searching: false,
455
- processing: true,
456
- responsive: true,
457
- ajax: {
458
- url : ajaxurl,
459
- data: { action: 'bookly_get_price_list', csrf_token : BooklyL10n.csrfToken },
460
- dataSrc: 'list'
461
- },
462
- columns: [
463
- {
464
- responsivePriority: 1,
465
- render: function ( data, type, row, meta ) {
466
- return '<div class="iti-flag ' + row.country_iso_code + '"></div>';
467
- }
468
- },
469
- { data: "country_name" },
470
- { data: "phone_code" },
471
- {
472
- render: function ( data, type, row, meta ) {
473
- return '$' + row.price.replace(/0+$/, '');
474
- }
475
- },
476
- {
477
- render: function ( data, type, row, meta ) {
478
- if (row.price_alt == '') {
479
- return '-';
480
- } else {
481
- return '$' + row.price_alt.replace(/0+$/, '');
482
- }
483
- }
 
 
 
 
 
 
484
  }
485
- ],
486
- language: {
487
- zeroRecords: BooklyL10n.zeroRecords,
488
- processing: BooklyL10n.processing
489
  }
490
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
491
  }
492
 
493
  function getPhoneNumber() {
@@ -513,38 +544,45 @@ jQuery(function($) {
513
  $cancel_sender_id = $('#bookly-cancel-sender_id'),
514
  $sender_id = $('#bookly-sender-id-input');
515
 
516
- var dt = $('#bookly-sender-ids').DataTable({
517
- ordering: false,
518
- paging: false,
519
- info: false,
520
- searching: false,
521
- processing: true,
522
- responsive: true,
523
- ajax: {
524
- url: ajaxurl,
525
- data: { action: 'bookly_get_sender_ids_list', csrf_token : BooklyL10n.csrfToken },
526
- dataSrc: function (json) {
527
- if (json.pending) {
528
- $sender_id.val(json.pending);
529
- $request_sender_id.hide();
530
- $sender_id.prop('disabled',true);
531
- $cancel_sender_id.show();
532
- }
533
 
534
- return json.list;
535
- }
536
- },
537
- columns: [
538
- { data: "date" },
539
- { data: "name" },
540
- { data: "status" },
541
- { data: "status_date" }
542
- ],
543
- language: {
544
- zeroRecords: BooklyL10n.zeroRecords2,
545
- processing: BooklyL10n.processing
546
  }
547
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
548
 
549
  $request_sender_id.on('click', function () {
550
  var ladda = Ladda.create(this);
307
  .html(start.format(BooklyL10n.dateRange.dateFormat) + ' - ' + end.format(BooklyL10n.dateRange.dateFormat));
308
  }
309
  );
310
+
311
+ /**
312
+ * Init Columns.
313
+ */
314
+ let columns = [];
315
+
316
+ $.each(BooklyL10n.datatables.sms_purchases.settings.columns, function (column, show) {
317
+ if (show) {
318
+ columns.push({data: column});
319
+ }
320
+ });
321
+ columns.push({
322
+ className: "text-right",
323
+ render : function (data, type, row, meta) {
324
+ return '<button type="button" class="btn btn-default bookly-margin-right-md" data-action="download-invoice"><i class="dashicons dashicons-media-text"></i> ' + BooklyL10n.invoice.button + '</a>';
325
+ }
326
+ });
327
+
328
  var dt = $('#bookly-purchases').DataTable({
329
  ordering: false,
330
  paging: false,
343
  },
344
  dataSrc: 'list'
345
  },
346
+ columns: columns,
 
 
 
 
 
 
 
 
 
 
 
 
 
347
  language: {
348
  zeroRecords: BooklyL10n.zeroRecords,
349
  processing: BooklyL10n.processing
385
  .html(start.format(BooklyL10n.dateRange.dateFormat) + ' - ' + end.format(BooklyL10n.dateRange.dateFormat));
386
  }
387
  );
388
+
389
+ /**
390
+ * Init Columns.
391
+ */
392
+ let columns = [];
393
+
394
+ $.each(BooklyL10n.datatables.sms_details.settings.columns, function (column, show) {
395
+ if (show) {
396
+ columns.push({data: column});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
397
  }
398
  });
399
+ if (columns.length) {
400
+ var dt = $('#bookly-sms').DataTable({
401
+ ordering : false,
402
+ paging : false,
403
+ info : false,
404
+ searching : false,
405
+ processing: true,
406
+ responsive: true,
407
+ ajax : {
408
+ url : ajaxurl,
409
+ data : function (d) {
410
+ return {
411
+ action : 'bookly_get_sms_list',
412
+ csrf_token: BooklyL10n.csrfToken,
413
+ range : $date_range.data('date')
414
+ };
415
+ },
416
+ dataSrc: 'list'
417
+ },
418
+ columns : columns,
419
+ language : {
420
+ zeroRecords: BooklyL10n.zeroRecords,
421
+ processing : BooklyL10n.processing
422
+ }
423
+ });
424
+ }
425
 
426
  $date_range.on('apply.daterangepicker', function () { dt.ajax.reload(); });
427
  $(this).on('click', function () { dt.ajax.reload(); });
456
  });
457
 
458
  function fillPriceTable() {
459
+ /**
460
+ * Init Columns.
461
+ */
462
+ let columns = [];
463
+
464
+ $.each(BooklyL10n.datatables.sms_prices.settings.columns, function (column, show) {
465
+ if (show) {
466
+ switch (column) {
467
+ case 'country_iso_code':
468
+ columns.push({
469
+ data: column, render: function ( data, type, row, meta ) {
470
+ return '<div class="iti-flag ' + data + '"></div>';
471
+ }
472
+ });
473
+ break;
474
+ case 'price':
475
+ columns.push({
476
+ data: column,
477
+ className: "text-right",
478
+ render: function ( data, type, row, meta ) {
479
+ return '$' + data.replace(/0+$/, '');
480
+ }
481
+ });
482
+ break;
483
+ case 'price_alt':
484
+ columns.push({
485
+ data: column,
486
+ className: "text-right",
487
+ render: function ( data, type, row, meta ) {
488
+ if (row.price_alt == '') {
489
+ return '-';
490
+ } else {
491
+ return '$' + data.replace(/0+$/, '');
492
+ }
493
+ }
494
+ });
495
+ break;
496
+ default:
497
+ columns.push({data: column});
498
+ break;
499
  }
 
 
 
 
500
  }
501
  });
502
+ if (columns.length) {
503
+ var dt = $('#bookly-prices').DataTable({
504
+ ordering : false,
505
+ paging : false,
506
+ info : false,
507
+ searching : false,
508
+ processing: true,
509
+ responsive: true,
510
+ ajax : {
511
+ url : ajaxurl,
512
+ data : {action: 'bookly_get_price_list', csrf_token: BooklyL10n.csrfToken},
513
+ dataSrc: 'list'
514
+ },
515
+ columns : columns,
516
+ language : {
517
+ zeroRecords: BooklyL10n.zeroRecords,
518
+ processing : BooklyL10n.processing
519
+ }
520
+ });
521
+ }
522
  }
523
 
524
  function getPhoneNumber() {
544
  $cancel_sender_id = $('#bookly-cancel-sender_id'),
545
  $sender_id = $('#bookly-sender-id-input');
546
 
547
+ /**
548
+ * Init Columns.
549
+ */
550
+ let columns = [];
 
 
 
 
 
 
 
 
 
 
 
 
 
551
 
552
+ $.each(BooklyL10n.datatables.sms_sender.settings.columns, function (column, show) {
553
+ if (show) {
554
+ columns.push({data: column});
 
 
 
 
 
 
 
 
 
555
  }
556
  });
557
+ if (columns.length) {
558
+ var dt = $('#bookly-sender-ids').DataTable({
559
+ ordering : false,
560
+ paging : false,
561
+ info : false,
562
+ searching : false,
563
+ processing: true,
564
+ responsive: true,
565
+ ajax : {
566
+ url : ajaxurl,
567
+ data : {action: 'bookly_get_sender_ids_list', csrf_token: BooklyL10n.csrfToken},
568
+ dataSrc: function (json) {
569
+ if (json.pending) {
570
+ $sender_id.val(json.pending);
571
+ $request_sender_id.hide();
572
+ $sender_id.prop('disabled', true);
573
+ $cancel_sender_id.show();
574
+ }
575
+
576
+ return json.list;
577
+ }
578
+ },
579
+ columns : columns,
580
+ language : {
581
+ zeroRecords: BooklyL10n.zeroRecords2,
582
+ processing : BooklyL10n.processing
583
+ }
584
+ });
585
+ }
586
 
587
  $request_sender_id.on('click', function () {
588
  var ladda = Ladda.create(this);
backend/modules/sms/templates/_notifications.php CHANGED
@@ -2,7 +2,8 @@
2
  use Bookly\Backend\Components\Controls\Buttons;
3
  use Bookly\Lib\Utils\Common;
4
  use Bookly\Backend\Components\Controls\Inputs;
5
- use Bookly\Backend\Components\Dialogs\Sms;
 
6
  ?>
7
  <input type="hidden" name="form-notifications">
8
  <div class="form-inline bookly-margin-bottom-xlg">
@@ -38,16 +39,24 @@ use Bookly\Backend\Components\Dialogs\Sms;
38
  </div>
39
  </div>
40
  <div class="col-md-8 form-inline bookly-margin-bottom-lg text-right">
41
- <?php Sms\Dialog::renderNewNotificationButton() ?>
 
42
  </div>
43
  </div>
 
44
  <table id="bookly-js-notification-list" class="table table-striped" style="width: 100%">
45
  <thead>
46
  <tr>
47
- <th width="1"></th>
48
- <th><?php esc_html_e( 'Name', 'bookly' ) ?></th>
49
- <th><?php esc_html_e( 'State', 'bookly' ) ?></th>
50
- <th></th>
 
 
 
 
 
 
51
  <th width="16"><input type="checkbox" class="bookly-js-check-all"/></th>
52
  </tr>
53
  </thead>
@@ -55,7 +64,7 @@ use Bookly\Backend\Components\Dialogs\Sms;
55
 
56
  <div class="form-inline bookly-margin-bottom-lg text-right">
57
  <?php Inputs::renderCsrf() ?>
58
- <?php Buttons::renderCustom( 'bookly-js-delete-notifications', 'btn-danger', esc_html__( 'Delete...', 'bookly' ) ) ?>
59
  </div>
60
 
61
  <div class="alert alert-info">
@@ -71,4 +80,4 @@ use Bookly\Backend\Components\Dialogs\Sms;
71
  </div>
72
  </div>
73
  </form>
74
- <?php Sms\Dialog::render() ?>
2
  use Bookly\Backend\Components\Controls\Buttons;
3
  use Bookly\Lib\Utils\Common;
4
  use Bookly\Backend\Components\Controls\Inputs;
5
+ use Bookly\Backend\Components\Dialogs;
6
+ /** @var array $datatables */
7
  ?>
8
  <input type="hidden" name="form-notifications">
9
  <div class="form-inline bookly-margin-bottom-xlg">
39
  </div>
40
  </div>
41
  <div class="col-md-8 form-inline bookly-margin-bottom-lg text-right">
42
+ <?php Dialogs\Sms\Dialog::renderNewNotificationButton() ?>
43
+ <?php Dialogs\TableSettings\Dialog::renderButton( 'sms_notifications', 'BooklyL10n' ) ?>
44
  </div>
45
  </div>
46
+
47
  <table id="bookly-js-notification-list" class="table table-striped" style="width: 100%">
48
  <thead>
49
  <tr>
50
+ <?php foreach ( $datatables['sms_notifications']['settings']['columns'] as $column => $show ) : ?>
51
+ <?php if ( $show ) : ?>
52
+ <?php if ( $column === 'type' ) : ?>
53
+ <th width="1"></th>
54
+ <?php else : ?>
55
+ <th><?php echo $datatables['sms_notifications']['titles'][ $column ] ?></th>
56
+ <?php endif ?>
57
+ <?php endif ?>
58
+ <?php endforeach ?>
59
+ <th width="75"></th>
60
  <th width="16"><input type="checkbox" class="bookly-js-check-all"/></th>
61
  </tr>
62
  </thead>
64
 
65
  <div class="form-inline bookly-margin-bottom-lg text-right">
66
  <?php Inputs::renderCsrf() ?>
67
+ <?php Buttons::renderCustom( 'bookly-js-delete-notifications', 'btn-danger', esc_html__( 'Delete', 'bookly' ) . '...' ) ?>
68
  </div>
69
 
70
  <div class="alert alert-info">
80
  </div>
81
  </div>
82
  </form>
83
+ <?php Dialogs\Sms\Dialog::render() ?>
backend/modules/sms/templates/_price.php CHANGED
@@ -1,13 +1,21 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
 
 
 
 
 
 
 
 
2
  <div class="intl-tel-input">
3
  <table id="bookly-prices" class="table table-striped" width="100%">
4
  <thead>
5
  <tr>
6
- <th></th>
7
- <th><?php _e( 'Country', 'bookly' ) ?></th>
8
- <th><?php _e( 'Code', 'bookly' ) ?></th>
9
- <th class="text-right"><?php _e( 'Regular price', 'bookly' ) ?></th>
10
- <th class="text-right"><?php _e( 'Price with custom Sender ID', 'bookly' ) ?></th>
11
  </tr>
12
  </thead>
13
  </table>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Dialogs;
3
+ /** @var array $datatables */
4
+ ?>
5
+ <div class="row">
6
+ <div class="col-xs-12 text-right">
7
+ <?php Dialogs\TableSettings\Dialog::renderButton( 'sms_prices', 'BooklyL10n', 'prices' ) ?>
8
+ </div>
9
+ </div>
10
  <div class="intl-tel-input">
11
  <table id="bookly-prices" class="table table-striped" width="100%">
12
  <thead>
13
  <tr>
14
+ <?php foreach ( $datatables['sms_prices']['settings']['columns'] as $column => $show ) : ?>
15
+ <?php if ( $show ) : ?>
16
+ <th><?php echo $datatables['sms_prices']['titles'][ $column ] ?></th>
17
+ <?php endif ?>
18
+ <?php endforeach ?>
19
  </tr>
20
  </thead>
21
  </table>
backend/modules/sms/templates/_purchases.php CHANGED
@@ -1,25 +1,33 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
- <div class="form-inline bookly-margin-bottom-xlg bookly-relative">
3
- <div class="form-group">
4
- <button type="button" id="purchases_date_range" class="btn btn-block btn-default" data-date="<?php echo date( 'Y-m-d', strtotime( '-30 days' ) ) ?> - <?php echo date( 'Y-m-d' ) ?>">
5
- <i class="dashicons dashicons-calendar-alt"></i>
6
- <input type="hidden" name="form-purchases">
7
- <span>
8
- <?php echo \Bookly\Lib\Utils\DateTime::formatDate( '-30 days' ) ?> - <?php echo \Bookly\Lib\Utils\DateTime::formatDate( 'today' ) ?>
 
 
 
 
 
9
  </span>
10
- </button>
 
 
 
 
11
  </div>
12
  </div>
13
 
14
- <table id="bookly-purchases" class="table table-striped" width="100%">
15
  <thead>
16
  <tr>
17
- <th><?php _e( 'Date', 'bookly' ) ?></th>
18
- <th><?php _e( 'Time', 'bookly' ) ?></th>
19
- <th><?php _e( 'Type', 'bookly' ) ?></th>
20
- <th><?php _e( 'Order', 'bookly' ) ?></th>
21
- <th><?php _e( 'Status', 'bookly' ) ?></th>
22
- <th><?php _e( 'Amount', 'bookly' ) ?></th>
23
  <th></th>
24
  </tr>
25
  </thead>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Lib\Utils;
3
+ use Bookly\Backend\Components\Dialogs;
4
+ /** @var $datatables */
5
+ ?>
6
+ <div class="row">
7
+ <div class="col-md-4">
8
+ <div class="form-group">
9
+ <button type="button" id="purchases_date_range" class="btn btn-block btn-default" data-date="<?php echo date( 'Y-m-d', strtotime( '-30 days' ) ) ?> - <?php echo date( 'Y-m-d' ) ?>">
10
+ <i class="dashicons dashicons-calendar-alt"></i>
11
+ <input type="hidden" name="form-purchases">
12
+ <span>
13
+ <?php echo Utils\DateTime::formatDate( '-30 days' ) ?> - <?php echo Utils\DateTime::formatDate( 'today' ) ?>
14
  </span>
15
+ </button>
16
+ </div>
17
+ </div>
18
+ <div class="col-md-8 form-inline bookly-margin-bottom-lg text-right">
19
+ <?php Dialogs\TableSettings\Dialog::renderButton( 'sms_purchases', 'BooklyL10n', 'purchases' ) ?>
20
  </div>
21
  </div>
22
 
23
+ <table id="bookly-purchases" class="table table-striped" style="width: 100%">
24
  <thead>
25
  <tr>
26
+ <?php foreach ( $datatables['sms_purchases']['settings']['columns'] as $column => $show ) : ?>
27
+ <?php if ( $show ) : ?>
28
+ <th><?php echo $datatables['sms_purchases']['titles'][ $column ] ?></th>
29
+ <?php endif ?>
30
+ <?php endforeach ?>
 
31
  <th></th>
32
  </tr>
33
  </thead>
backend/modules/sms/templates/_sender_id.php CHANGED
@@ -1,21 +1,34 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
 
 
 
2
  <div class="alert alert-info"><?php _e( 'Please take into account that not all countries by law allow custom SMS sender ID. Please check if particular country supports custom sender ID in our price list. Also please note that prices for messages with custom sender ID are usually 20% - 25% higher than normal message price.', 'bookly' ) ?></div>
3
- <form class="form-inline bookly-margin-bottom-xlg">
4
- <div class="form-group">
5
- <label class="control-label" for="bookly-sender-id-input"><?php _e( 'Request Sender ID', 'bookly' ) ?></label> <?php if ( $sms->getSenderIdApprovalDate() ) : ?> <span class="bookly-vertical-middle"><?php _e( 'or', 'bookly' ) ?> <a href="#" id="bookly-reset-sender_id"><?php _e( 'Reset to default', 'bookly' ) ?></a></span><?php endif ?>
6
- <p class="help-block"><?php _e( 'Can only contain letters or digits (up to 11 characters).', 'bookly' ) ?></p>
7
- <input id="bookly-sender-id-input" class="form-control" type="text" maxlength="11" required="required" minlength="1" value="" />
8
- <button data-spinner-size="40" data-style="zoom-in" type="button" class="btn btn-success" id="bookly-request-sender_id"><span class="ladda-label"><?php _e( 'Request', 'bookly' ) ?></span><span class="ladda-spinner"></span></button>
9
- <button data-spinner-size="40" data-style="zoom-in" type="button" class="btn btn-danger" id="bookly-cancel-sender_id" style="display:none"><span class="ladda-label"><?php _e( 'Cancel request', 'bookly' ) ?></span><span class="ladda-spinner"></span></button>
 
 
 
 
 
10
  </div>
11
- </form>
12
- <table id="bookly-sender-ids" class="table table-striped" width="100%">
 
 
 
 
13
  <thead>
14
  <tr>
15
- <th><?php _e( 'Date', 'bookly' ) ?></th>
16
- <th><?php _e( 'Requested ID', 'bookly' ) ?></th>
17
- <th><?php _e( 'Status', 'bookly' ) ?></th>
18
- <th><?php _e( 'Status Date', 'bookly' ) ?></th>
 
19
  </tr>
20
  </thead>
21
  </table>
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Dialogs;
3
+ /** @var $datatables */
4
+ ?>
5
  <div class="alert alert-info"><?php _e( 'Please take into account that not all countries by law allow custom SMS sender ID. Please check if particular country supports custom sender ID in our price list. Also please note that prices for messages with custom sender ID are usually 20% - 25% higher than normal message price.', 'bookly' ) ?></div>
6
+
7
+ <div class="row">
8
+ <div class="col-md-11">
9
+ <form class="form-inline bookly-margin-bottom-md">
10
+ <div class="form-group">
11
+ <label class="control-label" for="bookly-sender-id-input"><?php _e( 'Request Sender ID', 'bookly' ) ?></label> <?php if ( $sms->getSenderIdApprovalDate() ) : ?> <span class="bookly-vertical-middle"><?php _e( 'or', 'bookly' ) ?> <a href="#" id="bookly-reset-sender_id"><?php _e( 'Reset to default', 'bookly' ) ?></a></span><?php endif ?>
12
+ <p class="help-block"><?php _e( 'Can only contain letters or digits (up to 11 characters).', 'bookly' ) ?></p>
13
+ <input id="bookly-sender-id-input" class="form-control" type="text" maxlength="11" required="required" minlength="1" value="" />
14
+ <button data-spinner-size="40" data-style="zoom-in" type="button" class="btn btn-success" id="bookly-request-sender_id"><span class="ladda-label"><?php _e( 'Request', 'bookly' ) ?></span><span class="ladda-spinner"></span></button>
15
+ <button data-spinner-size="40" data-style="zoom-in" type="button" class="btn btn-danger" id="bookly-cancel-sender_id" style="display:none"><span class="ladda-label"><?php _e( 'Cancel request', 'bookly' ) ?></span><span class="ladda-spinner"></span></button>
16
+ </div>
17
+ </form>
18
  </div>
19
+ <div class="col-md-1 form-inline bookly-margin-bottom-lg text-right">
20
+ <?php Dialogs\TableSettings\Dialog::renderButton( 'sms_sender', 'BooklyL10n', 'sender' ) ?>
21
+ </div>
22
+ </div>
23
+
24
+ <table id="bookly-sender-ids" class="table table-striped" style="width: 100%">
25
  <thead>
26
  <tr>
27
+ <?php foreach ( $datatables['sms_sender']['settings']['columns'] as $column => $show ) : ?>
28
+ <?php if ( $show ) : ?>
29
+ <th><?php echo $datatables['sms_sender']['titles'][ $column ] ?></th>
30
+ <?php endif ?>
31
+ <?php endforeach ?>
32
  </tr>
33
  </thead>
34
  </table>
backend/modules/sms/templates/_sms_details.php CHANGED
@@ -1,29 +1,33 @@
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
  use Bookly\Lib\Utils\DateTime;
 
 
3
  ?>
4
- <div class="form-inline bookly-margin-bottom-xlg bookly-relative">
5
- <div class="form-group">
6
- <button type="button" id="sms_date_range" class="btn btn-block btn-default" data-date="<?php echo date( 'Y-m-d', strtotime( '-30 days' ) ) ?> - <?php echo date( 'Y-m-d' ) ?>">
7
- <i class="dashicons dashicons-calendar-alt"></i>
8
- <input type="hidden" name="form-purchases">
9
- <span>
 
10
  <?php echo DateTime::formatDate( '-30 days' ) ?> - <?php echo DateTime::formatDate( 'today' ) ?>
11
  </span>
12
- </button>
 
 
 
 
13
  </div>
14
  </div>
15
 
16
- <table id="bookly-sms" class="table table-striped" width="100%">
17
  <thead>
18
  <tr>
19
- <th><?php esc_html_e( 'Date', 'bookly' ) ?></th>
20
- <th><?php esc_html_e( 'Time', 'bookly' ) ?></th>
21
- <th><?php esc_html_e( 'Text', 'bookly' ) ?></th>
22
- <th><?php esc_html_e( 'Phone', 'bookly' ) ?></th>
23
- <th><?php esc_html_e( 'Sender ID', 'bookly' ) ?></th>
24
- <th><?php esc_html_e( 'Cost', 'bookly' ) ?></th>
25
- <th><?php esc_html_e( 'Status', 'bookly' ) ?></th>
26
- <th><?php esc_html_e( 'Info', 'bookly' ) ?></th>
27
  </tr>
28
  </thead>
29
- </table>
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
  use Bookly\Lib\Utils\DateTime;
3
+ use Bookly\Backend\Components\Dialogs;
4
+ /** @var array $datatables */
5
  ?>
6
+ <div class="row">
7
+ <div class="col-md-4">
8
+ <div class="form-group">
9
+ <button type="button" id="sms_date_range" class="btn btn-block btn-default" data-date="<?php echo date( 'Y-m-d', strtotime( '-30 days' ) ) ?> - <?php echo date( 'Y-m-d' ) ?>">
10
+ <i class="dashicons dashicons-calendar-alt"></i>
11
+ <input type="hidden" name="form-purchases">
12
+ <span>
13
  <?php echo DateTime::formatDate( '-30 days' ) ?> - <?php echo DateTime::formatDate( 'today' ) ?>
14
  </span>
15
+ </button>
16
+ </div>
17
+ </div>
18
+ <div class="col-md-8 form-inline bookly-margin-bottom-lg text-right">
19
+ <?php Dialogs\TableSettings\Dialog::renderButton( 'sms_details', 'BooklyL10n', 'details' ) ?>
20
  </div>
21
  </div>
22
 
23
+ <table id="bookly-sms" class="table table-striped" style="width: 100%">
24
  <thead>
25
  <tr>
26
+ <?php foreach ( $datatables['sms_details']['settings']['columns'] as $column => $show ) : ?>
27
+ <?php if ( $show ) : ?>
28
+ <th><?php echo $datatables['sms_details']['titles'][ $column ] ?></th>
29
+ <?php endif ?>
30
+ <?php endforeach ?>
 
 
 
31
  </tr>
32
  </thead>
33
+ </table>
backend/modules/sms/templates/index.php CHANGED
@@ -2,7 +2,8 @@
2
  use Bookly\Backend\Components\Controls\Inputs;
3
  use Bookly\Backend\Components\Controls\Buttons;
4
  use Bookly\Backend\Components\Support;
5
- /** @var \Bookly\Lib\SMS $sms */
 
6
  ?>
7
  <div id="bookly-tbs" class="wrap">
8
  <div class="bookly-tbs-body">
@@ -45,10 +46,7 @@ use Bookly\Backend\Components\Support;
45
  </div>
46
  <div class="col-xs-6 col-sm-4 col-md-3">
47
  <form method="post" class="btn-group pull-right">
48
- <a class="btn btn-success" data-toggle="modal" href="#modal_change_password">
49
- <i class="dashicons dashicons-admin-users"></i>
50
- <?php echo $sms->getUserName() ?>
51
- </a>
52
  <button class="btn btn-default" type="submit" name="form-logout"><?php esc_html_e( 'Log out', 'bookly' ) ?></button>
53
  </form>
54
  </div>
@@ -207,4 +205,5 @@ use Bookly\Backend\Components\Support;
207
  </div>
208
  <?php endif ?>
209
  </div>
 
210
  </div>
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="bookly-tbs-body">
46
  </div>
47
  <div class="col-xs-6 col-sm-4 col-md-3">
48
  <form method="post" class="btn-group pull-right">
49
+ <?php Buttons::renderModalActivator( 'modal_change_password', 'btn-success', $sms->getUserName(), array(), '<i class="dashicons dashicons-admin-users"></i> {caption}', '' ) ?>
 
 
 
50
  <button class="btn btn-default" type="submit" name="form-logout"><?php esc_html_e( 'Log out', 'bookly' ) ?></button>
51
  </form>
52
  </div>
205
  </div>
206
  <?php endif ?>
207
  </div>
208
+ <?php Dialogs\TableSettings\Dialog::render() ?>
209
  </div>
backend/modules/staff/Ajax.php CHANGED
@@ -2,7 +2,6 @@
2
  namespace Bookly\Backend\Modules\Staff;
3
 
4
  use Bookly\Lib;
5
- use Bookly\Backend\Modules\Staff\Forms\Widgets\TimeChoice;
6
 
7
  /**
8
  * Class Page
@@ -30,16 +29,33 @@ class Ajax extends Lib\Base\Ajax
30
  {
31
  global $wpdb;
32
 
33
- $query = Lib\Entities\Staff::query( 's' );
34
- $total = $query->count();
35
- $query
36
- ->select( 's.id, s.category_id, s.full_name, s.visibility, s.position, email, phone, wpu.display_name AS wp_user' )
37
- ->tableJoin( $wpdb->users, 'wpu', 'wpu.ID = s.wp_user_id' )
38
- ->sortBy( 'position' );
 
 
 
 
 
 
39
  if ( ! Lib\Utils\Common::isCurrentUserAdmin() ) {
40
  $query->where( 's.wp_user_id', get_current_user_id() );
41
  }
42
- $filter = self::parameter( 'filter' );
 
 
 
 
 
 
 
 
 
 
 
43
  if ( $filter['archived'] ) {
44
  if ( $filter['visibility'] != '' ) {
45
  $query->whereRaw( 's.visibility = %s OR s.visibility = %s', array( $filter['visibility'], 'archive' ) );
@@ -49,27 +65,55 @@ class Ajax extends Lib\Base\Ajax
49
  } else {
50
  $query->whereNot( 's.visibility', 'archive' );
51
  }
52
- $list = $query->fetchArray();
53
 
54
- update_user_meta( get_current_user_id(), 'bookly_filter_staff_list', $filter );
 
 
55
 
56
- wp_send_json_success( compact( 'list', 'total' ) );
57
- }
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
- /**
60
- * Update staff position.
61
- */
62
- public static function updateStaffPosition()
63
- {
64
- $staff_sorts = self::parameter( 'positions' );
65
- foreach ( $staff_sorts as $position => $id ) {
66
- $staff = new Lib\Entities\Staff();
67
- $staff->load( $id );
68
- $staff->setPosition( $position );
69
- $staff->save();
70
  }
71
 
72
- wp_send_json_success();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  }
74
 
75
  /**
2
  namespace Bookly\Backend\Modules\Staff;
3
 
4
  use Bookly\Lib;
 
5
 
6
  /**
7
  * Class Page
29
  {
30
  global $wpdb;
31
 
32
+ $columns = self::parameter( 'columns' );
33
+ $order = self::parameter( 'order', array() );
34
+ $filter = self::parameter( 'filter' );
35
+ $limits = array(
36
+ 'length' => self::parameter( 'length' ),
37
+ 'start' => self::parameter( 'start' ),
38
+ );
39
+
40
+ $query = Lib\Entities\Staff::query( 's' )
41
+ ->select( 's.id, s.full_name' )
42
+ ->tableJoin( $wpdb->users, 'wpu', 'wpu.ID = s.wp_user_id' );
43
+
44
  if ( ! Lib\Utils\Common::isCurrentUserAdmin() ) {
45
  $query->where( 's.wp_user_id', get_current_user_id() );
46
  }
47
+
48
+ $query->addSelect( 's.category_id, s.visibility, email, phone, wpu.display_name AS wp_user' );
49
+
50
+ Proxy\Shared::prepareGetStaffQuery( $query );
51
+
52
+ foreach ( $order as $sort_by ) {
53
+ $query->sortBy( str_replace( '.', '_', $columns[ $sort_by['column'] ]['data'] ) )
54
+ ->order( $sort_by['dir'] == 'desc' ? Lib\Query::ORDER_DESCENDING : Lib\Query::ORDER_ASCENDING );
55
+ }
56
+
57
+ $total = $query->count();
58
+
59
  if ( $filter['archived'] ) {
60
  if ( $filter['visibility'] != '' ) {
61
  $query->whereRaw( 's.visibility = %s OR s.visibility = %s', array( $filter['visibility'], 'archive' ) );
65
  } else {
66
  $query->whereNot( 's.visibility', 'archive' );
67
  }
 
68
 
69
+ if ( $filter['category'] != '' ) {
70
+ $query->where( 's.category_id', $filter['category'] );
71
+ }
72
 
73
+ if ( $filter['search'] != '' ) {
74
+ $fields = array();
75
+ foreach ( $columns as $column ) {
76
+ switch ( $column['data'] ) {
77
+ case 'user':
78
+ $fields[] = 'wpu.display_name';
79
+ break;
80
+ case 'full_name':
81
+ case 'email':
82
+ case 'phone':
83
+ $fields[] = 's.' . $column['data'];
84
+ break;
85
+ }
86
+ }
87
 
88
+ $fields = Proxy\Shared::searchStaff( $fields, $columns, $query );
89
+
90
+ $search_columns = array();
91
+ foreach ( $fields as $field ) {
92
+ $search_columns[] = $field . ' LIKE "%%%s%"';
93
+ }
94
+ if ( ! empty( $search_columns ) ) {
95
+ $query->whereRaw( implode( ' OR ', $search_columns ), array_fill( 0, count( $search_columns ), $filter['search'] ) );
96
+ }
 
 
97
  }
98
 
99
+ $filtered = $query->count();
100
+
101
+ if ( ! empty( $limits ) ) {
102
+ $query->limit( $limits['length'] )->offset( $limits['start'] );
103
+ }
104
+
105
+ $data = $query->fetchArray();
106
+
107
+ unset( $filter['search'] );
108
+
109
+ Lib\Utils\Tables::updateSettings( 'staff_members', $columns, $order, $filter );
110
+
111
+ wp_send_json( array(
112
+ 'draw' => ( int ) self::parameter( 'draw' ),
113
+ 'data' => $data,
114
+ 'recordsTotal' => $total,
115
+ 'recordsFiltered' => $filtered,
116
+ ) );
117
  }
118
 
119
  /**
backend/modules/staff/Page.php CHANGED
@@ -1,7 +1,6 @@
1
  <?php
2
  namespace Bookly\Backend\Modules\Staff;
3
 
4
- use Bookly\Backend\Components\Notices\Limitation;
5
  use Bookly\Lib;
6
 
7
  /**
@@ -16,7 +15,7 @@ class Page extends Lib\Base\Component
16
  public static function render()
17
  {
18
  self::enqueueStyles( array(
19
- 'backend' => array( 'bootstrap/css/bootstrap-theme.min.css', 'css/jquery-ui-theme/jquery-ui.min.css', 'css/fontawesome-all.min.css' ),
20
  ) );
21
 
22
  self::enqueueScripts( array(
@@ -25,9 +24,10 @@ class Page extends Lib\Base\Component
25
  'js/help.js' => array( 'jquery' ),
26
  'js/alert.js' => array( 'jquery' ),
27
  'js/datatables.min.js' => array( 'jquery' ),
 
28
  ),
29
  'module' => array(
30
- 'js/staff-list.js' => array( 'jquery' ),
31
  ),
32
  ) );
33
 
@@ -36,17 +36,22 @@ class Page extends Lib\Base\Component
36
  Proxy\Shared::enqueueStaffProfileScripts();
37
  Proxy\Shared::renderStaffPage( self::parameters() );
38
 
 
 
 
 
39
  wp_localize_script( 'bookly-staff-list.js', 'BooklyL10n', array(
40
- 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
41
- 'proRequired' => (int) ! Lib\Config::proActive(),
42
- 'areYouSure' => __( 'Are you sure?', 'bookly' ),
43
- 'filter' => (array) get_user_meta( get_current_user_id(), 'bookly_filter_staff_list', true ),
44
- 'categories' => (array) Proxy\Pro::getCategoriesList(),
45
- 'uncategorized' => __( 'Uncategorized', 'bookly' ),
46
- 'edit' => __( 'Edit...', 'bookly' ),
47
- 'reorder' => esc_attr__( 'Reorder', 'bookly' ),
 
48
  ) );
49
 
50
- self::renderTemplate( 'index' );
51
  }
52
  }
1
  <?php
2
  namespace Bookly\Backend\Modules\Staff;
3
 
 
4
  use Bookly\Lib;
5
 
6
  /**
15
  public static function render()
16
  {
17
  self::enqueueStyles( array(
18
+ 'backend' => array( 'bootstrap/css/bootstrap-theme.min.css', 'css/jquery-ui-theme/jquery-ui.min.css', 'css/fontawesome-all.min.css', 'css/select2.min.css', ),
19
  ) );
20
 
21
  self::enqueueScripts( array(
24
  'js/help.js' => array( 'jquery' ),
25
  'js/alert.js' => array( 'jquery' ),
26
  'js/datatables.min.js' => array( 'jquery' ),
27
+ 'js/select2.full.min.js' => array( 'jquery' ),
28
  ),
29
  'module' => array(
30
+ 'js/staff-list.js' => array( 'jquery' ),
31
  ),
32
  ) );
33
 
36
  Proxy\Shared::enqueueStaffProfileScripts();
37
  Proxy\Shared::renderStaffPage( self::parameters() );
38
 
39
+ $categories = (array) Proxy\Pro::getCategoriesList();
40
+
41
+ $datatables = Lib\Utils\Tables::getSettings( 'staff_members' );
42
+
43
  wp_localize_script( 'bookly-staff-list.js', 'BooklyL10n', array(
44
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
45
+ 'proRequired' => (int) ! Lib\Config::proActive(),
46
+ 'areYouSure' => esc_attr__( 'Are you sure?', 'bookly' ),
47
+ 'categories' => $categories,
48
+ 'uncategorized' => esc_attr__( 'Uncategorized', 'bookly' ),
49
+ 'edit' => esc_attr__( 'Edit', 'bookly' ),
50
+ 'reorder' => esc_attr__( 'Reorder', 'bookly' ),
51
+ 'noResultFound' => esc_attr__( 'No result found', 'bookly' ),
52
+ 'datatables' => $datatables,
53
  ) );
54
 
55
+ self::renderTemplate( 'index', compact( 'categories', 'datatables' ) );
56
  }
57
  }
backend/modules/staff/proxy/Shared.php CHANGED
@@ -11,6 +11,7 @@ use Bookly\Lib;
11
  * @method static void enqueueStaffProfileScripts() Enqueue scripts for page Staff.
12
  * @method static void enqueueStaffProfileStyles() Enqueue styles for page Staff.
13
  * @method static string getAffectedAppointmentsFilter( string $filter_url, int[] $staff_id ) Get link with filter for appointments page.
 
14
  * @method static void preUpdateStaff( Lib\Entities\Staff $staff, array $params ) Do stuff before staff update.
15
  * @method static void renderStaffForm( Lib\Entities\Staff $staff ) Render Staff form tab details.
16
  * @method static int renderStaffPage( array $params ) Do stuff on staff page render.
@@ -21,6 +22,7 @@ use Bookly\Lib;
21
  * @method static void updateStaff( Lib\Entities\Staff $staff, array $params ) Update staff settings in add-ons.
22
  * @method static void updateStaffSchedule( array $_post ) Update staff schedule settings in add-ons.
23
  * @method static void updateStaffServices( array $_post ) Update staff services settings in add-ons.
 
24
  */
25
  abstract class Shared extends Lib\Base\Proxy
26
  {
11
  * @method static void enqueueStaffProfileScripts() Enqueue scripts for page Staff.
12
  * @method static void enqueueStaffProfileStyles() Enqueue styles for page Staff.
13
  * @method static string getAffectedAppointmentsFilter( string $filter_url, int[] $staff_id ) Get link with filter for appointments page.
14
+ * @method static Lib\Query prepareGetStaffQuery( Lib\Query $query ) Prepare get staff list query.
15
  * @method static void preUpdateStaff( Lib\Entities\Staff $staff, array $params ) Do stuff before staff update.
16
  * @method static void renderStaffForm( Lib\Entities\Staff $staff ) Render Staff form tab details.
17
  * @method static int renderStaffPage( array $params ) Do stuff on staff page render.
22
  * @method static void updateStaff( Lib\Entities\Staff $staff, array $params ) Update staff settings in add-ons.
23
  * @method static void updateStaffSchedule( array $_post ) Update staff schedule settings in add-ons.
24
  * @method static void updateStaffServices( array $_post ) Update staff services settings in add-ons.
25
+ * @method static array searchStaff( array $fields, array $columns, Lib\Query $query ) Search staff, prepare query and fields.
26
  */
27
  abstract class Shared extends Lib\Base\Proxy
28
  {
backend/modules/staff/resources/js/staff-list.js CHANGED
@@ -1,16 +1,22 @@
1
  jQuery(function ($) {
2
- var $staffList = $('#staff-list'),
3
- $checkAllButton = $('.bookly-js-check-all'),
4
- $filter = $('#bookly-filter'),
5
  $deleteButton = $('#bookly-delete'),
6
  $deleteModal = $('.bookly-js-delete-cascade-confirm'),
7
  $staffCount = $('.bookly-js-staff-count'),
8
- $filterVisibility = $('#bookly-filter-visibility'),
9
- $filterArchived = $('#bookly-filter-archived')
 
 
 
 
 
10
  ;
11
 
12
  $('.bookly-js-select').val(null);
13
- $.each(BooklyL10n.filter, function (field, value) {
 
14
  if (value != '') {
15
  let $elem = $('#bookly-filter-' + field);
16
  if ($elem.is(':checkbox')) {
@@ -31,100 +37,85 @@ jQuery(function ($) {
31
  .on('hidden.bs.modal', function () {
32
  jQuery('body').addClass('modal-open');
33
  });
34
- var columns = [
35
- {
36
- data : 'position',
37
- searchable: false
38
- },
39
- {
40
- render: function (data, type, row, meta) {
41
- return '<i class="bookly-icon bookly-icon-draghandle bookly-cursor-move" title="' + BooklyL10n.reorder + '"></i>';
42
- }
43
- },
44
- {
45
- data: 'full_name',
46
- responsivePriority: 2
47
- },
48
- ];
49
- if (BooklyL10n.proRequired !== "1") {
50
- columns = columns.concat([
51
- {
52
- responsivePriority: 3,
53
- render: function (data, type, row, meta) {
54
- if (row.category_id != null) {
55
- return BooklyL10n.categories.find(x => x.id === row.category_id).name;
56
- } else {
57
- return BooklyL10n.uncategorized;
58
- }
59
- }
60
- }]);
61
- } else {
62
 
63
- }
64
- columns = columns.concat([
65
- {
66
- data: 'email',
67
- responsivePriority: 2
68
- },
69
- {
70
- data: 'phone',
71
- responsivePriority: 2
72
- },
73
- {
74
- data: 'wp_user',
75
- responsivePriority: 2
76
- },
77
- {
78
- responsivePriority: 1,
79
- searchable: false,
80
- render: function (data, type, row, meta) {
81
- return '<button type="button" class="btn btn-default" data-action="edit"><i class="fa fa-fw fa-edit"></i> ' + BooklyL10n.edit + '</a>';
82
- }
83
- },
84
- {
85
- responsivePriority: 1,
86
- searchable: false,
87
- render: function (data, type, row, meta) {
88
- return '<input type="checkbox" class="bookly-js-delete" value="' + row.id + '" />';
89
  }
90
  }
91
- ]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
 
93
  /**
94
- * Notification list
95
  */
96
  var dt = $staffList.DataTable({
97
- paging : false,
98
- info : false,
99
- processing: true,
100
- responsive: true,
101
- serverSide: false,
102
- rowReorder: {
103
- update : true,
104
- dataSrc : 'position',
105
- snapX : true,
106
- selector: '.bookly-icon-draghandle'
107
- },
108
- order : [0, 'asc'],
109
- columnDefs: [
110
- {visible: false, targets: 0},
111
- {orderable: false, targets: '_all'}
112
- ],
113
- ajax : {
114
  url : ajaxurl,
115
- data: {action: '', csrf_token: BooklyL10n.csrfToken},
116
  type: 'POST',
117
  data: function (d) {
118
- return $.extend({action: 'bookly_get_staff_list', csrf_token: BooklyL10n.csrfToken}, {
119
- filter: {
120
- visibility: $filterVisibility.val(),
121
- archived : $filterArchived.prop('checked')?1:0
 
 
 
122
  }
123
- }, d);
 
 
124
  },
125
  dataSrc: function (json) {
126
- $staffCount.html(json.data.total);
127
- return json.data.list;
128
  }
129
  },
130
  columns : columns,
@@ -140,44 +131,8 @@ jQuery(function ($) {
140
  zeroRecords: BooklyL10n.zeroRecords,
141
  processing : BooklyL10n.processing
142
  }
143
- }).on('row-reordered', function (e, diff, edit) {
144
- let positions = [];
145
- dt.data().each(function (item) {
146
- positions.push({position: parseInt(item.position), id: item.id});
147
- });
148
- $.ajax({
149
- url : ajaxurl,
150
- type : 'POST',
151
- data : {
152
- action : 'bookly_update_staff_position',
153
- csrf_token : BooklyL10n.csrfToken,
154
- positions : (positions.sort((a, b) => a.position - b.position))
155
- .map(function (value) {
156
- return value.id;
157
- })
158
- },
159
- dataType: 'json',
160
- success : function (response) {
161
-
162
- }
163
- });
164
  });
165
 
166
- /**
167
- * On filters change.
168
- */
169
- $filter
170
- .on('keyup', function () {
171
- dt.search(this.value).draw();
172
- })
173
- .on('keydown', function (e) {
174
- if (e.keyCode == 13) {
175
- e.preventDefault();
176
- return false;
177
- }
178
- })
179
- ;
180
-
181
  /**
182
  * Select all appointments.
183
  */
@@ -234,9 +189,9 @@ jQuery(function ($) {
234
  break;
235
  }
236
  } else {
237
- $(document.body).trigger('service.deleted', [staff]);
238
  dt.rows($checkboxes.closest('td')).remove().draw();
239
  $staffCount.html(response.data.total);
 
240
  }
241
  ladda.stop();
242
  });
@@ -252,10 +207,25 @@ jQuery(function ($) {
252
  allowClear: true,
253
  placeholder: '',
254
  language : {
255
- noResults: function() { return BooklyL10n.no_result_found; }
256
  }
257
  });
258
 
259
- $filterVisibility.on('change', function () {dt.ajax.reload();});
260
- $filterArchived.on('change', function () {dt.ajax.reload();});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
261
  });
1
  jQuery(function ($) {
2
+ var $staffList = $('#bookly-staff-list'),
3
+ $checkAllButton = $('#bookly-check-all'),
4
+
5
  $deleteButton = $('#bookly-delete'),
6
  $deleteModal = $('.bookly-js-delete-cascade-confirm'),
7
  $staffCount = $('.bookly-js-staff-count'),
8
+ filters = {
9
+ visibility: $('#bookly-filter-visibility'),
10
+ archived : $('#bookly-filter-archived'),
11
+ category : $('#bookly-filter-category'),
12
+ search : $('#bookly-filter-search'),
13
+ },
14
+ urlParts = document.URL.split('#')
15
  ;
16
 
17
  $('.bookly-js-select').val(null);
18
+
19
+ $.each(BooklyL10n.datatables.staff_members.settings.filter, function (field, value) {
20
  if (value != '') {
21
  let $elem = $('#bookly-filter-' + field);
22
  if ($elem.is(':checkbox')) {
37
  .on('hidden.bs.modal', function () {
38
  jQuery('body').addClass('modal-open');
39
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
+ /**
42
+ * Init Columns.
43
+ */
44
+ var columns = [];
45
+
46
+ $.each(BooklyL10n.datatables.staff_members.settings.columns, function (column, show) {
47
+ if (show) {
48
+ switch (column) {
49
+ case 'category_name':
50
+ columns.push({
51
+ data: column, render: function (data, type, row, meta) {
52
+ return data !== null ? data : BooklyL10n.uncategorized;
53
+ }
54
+ });
55
+ break;
56
+ default:
57
+ columns.push({data: column});
58
+ break;
 
 
 
 
 
 
 
 
59
  }
60
  }
61
+ });
62
+ columns.push({
63
+ responsivePriority: 1,
64
+ orderable : false,
65
+ searchable : false,
66
+ width : 90,
67
+ render : function (data, type, row, meta) {
68
+ return '<button type="button" class="btn btn-default" data-action="edit"><i class="fa fa-fw fa-edit"></i> ' + BooklyL10n.edit + '</a>';
69
+ }
70
+ });
71
+ columns.push({
72
+ responsivePriority: 1,
73
+ orderable : false,
74
+ searchable : false,
75
+ render : function (data, type, row, meta) {
76
+ return '<input type="checkbox" value="' + row.id + '">';
77
+ }
78
+ });
79
+ let order = [];
80
+ $.each(BooklyL10n.datatables.staff_members.settings.order, function (key, value) {
81
+ const index = columns.findIndex(c => c.data === value.column);
82
+ if (index !== -1) {
83
+ order.push([index, value.order]);
84
+ }
85
+ });
86
 
87
  /**
88
+ * Init DataTables.
89
  */
90
  var dt = $staffList.DataTable({
91
+ order : order,
92
+ info : false,
93
+ searching : false,
94
+ lengthChange: false,
95
+ processing : true,
96
+ responsive : true,
97
+ pageLength : 25,
98
+ pagingType : 'numbers',
99
+ serverSide : true,
100
+ ajax : {
 
 
 
 
 
 
 
101
  url : ajaxurl,
 
102
  type: 'POST',
103
  data: function (d) {
104
+ let data = $.extend({action: 'bookly_get_staff_list', csrf_token: BooklyL10n.csrfToken, filter: {}}, d);
105
+
106
+ Object.keys(filters).map(filter => {
107
+ if (filter == 'archived') {
108
+ data.filter[filter] = filters[filter].prop('checked') ? 1 : 0;
109
+ } else {
110
+ data.filter[filter] = filters[filter].val();
111
  }
112
+ });
113
+
114
+ return data;
115
  },
116
  dataSrc: function (json) {
117
+ $staffCount.html(json.recordsFiltered);
118
+ return json.data;
119
  }
120
  },
121
  columns : columns,
131
  zeroRecords: BooklyL10n.zeroRecords,
132
  processing : BooklyL10n.processing
133
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
  });
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  /**
137
  * Select all appointments.
138
  */
189
  break;
190
  }
191
  } else {
 
192
  dt.rows($checkboxes.closest('td')).remove().draw();
193
  $staffCount.html(response.data.total);
194
+ $(document.body).trigger('staff.deleted', [staff_ids]);
195
  }
196
  ladda.stop();
197
  });
207
  allowClear: true,
208
  placeholder: '',
209
  language : {
210
+ noResults: function() { return BooklyL10n.noResultFound; }
211
  }
212
  });
213
 
214
+ /**
215
+ * On filters change.
216
+ */
217
+ filters.search
218
+ .on('keyup', function () {
219
+ dt.search(this.value).draw();
220
+ })
221
+ .on('keydown', function (e) {
222
+ if (e.keyCode == 13) {
223
+ e.preventDefault();
224
+ return false;
225
+ }
226
+ })
227
+ ;
228
+ filters.visibility.on('change', function () {dt.ajax.reload();});
229
+ filters.archived.on('change', function () {dt.ajax.reload();});
230
+ filters.category.on('change', function () {dt.ajax.reload();});
231
  });
backend/modules/staff/templates/index.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
  use Bookly\Backend\Components;
3
  use Bookly\Lib;
 
4
  ?>
5
  <div id="bookly-tbs" class="wrap">
6
  <div class="bookly-tbs-body">
@@ -22,10 +23,31 @@ use Bookly\Lib;
22
  <div class="panel panel-default bookly-main">
23
  <div class="panel-body">
24
  <?php if ( Lib\Utils\Common::isCurrentUserAdmin() ): ?>
 
 
 
 
 
 
 
 
 
 
 
 
25
  <div class="row">
26
  <div class="col-md-4">
27
  <div class="form-group">
28
- <input class="form-control" type="text" id="bookly-filter" placeholder="<?php esc_attr_e( 'Quick search staff', 'bookly' ) ?>"/>
 
 
 
 
 
 
 
 
 
29
  </div>
30
  </div>
31
  <div class="col-md-2">
@@ -48,33 +70,24 @@ use Bookly\Lib;
48
  </div>
49
  <?php endif ?>
50
  </div>
51
- <div class="col-md-4 form-inline bookly-margin-bottom-lg text-right">
52
- <div class="form-group">
53
- <?php Components\Dialogs\Staff\Categories\Proxy\Pro::renderAdd() ?>
54
- </div>
55
- <div class="form-group">
56
- <?php Components\Controls\Buttons::renderAdd( 'bookly-js-new-staff', 'btn-success', esc_html__( 'Add staff...', 'bookly' ), array( 'data-toggle' => 'modal', 'data-target' => '#bookly-create-staff-modal', ) ) ?>
57
- </div>
58
- </div>
59
  </div>
 
60
  <?php endif ?>
61
- <table id="staff-list" class="table table-striped" style="width: 100%">
 
62
  <thead>
63
  <tr>
64
- <th style="display: none;"></th>
65
- <th width="24"></th>
66
- <th><?php esc_html_e( 'Name', 'bookly' ) ?></th>
67
- <?php if ( Lib\Config::proActive() ): ?>
68
- <th><?php esc_html_e( 'Category', 'bookly' ) ?></th>
69
- <?php endif ?>
70
- <th><?php esc_html_e( 'Email', 'bookly' ) ?></th>
71
- <th><?php esc_html_e( 'Phone', 'bookly' ) ?></th>
72
- <th><?php esc_html_e( 'User', 'bookly' ) ?></th>
73
  <th width="75"></th>
74
- <th width="16"><input type="checkbox" class="bookly-js-check-all"/></th>
75
  </tr>
76
  </thead>
77
  </table>
 
78
  <div class="text-right bookly-margin-top-lg">
79
  <?php if ( Lib\Utils\Common::isCurrentUserAdmin() ): ?>
80
  <?php Components\Controls\Buttons::renderDelete() ?>
@@ -84,8 +97,10 @@ use Bookly\Lib;
84
  </div>
85
  </div>
86
 
87
- <?php Components\Dialogs\Staff\Edit\Dialog::render() ?>
88
- <?php Components\Dialogs\Staff\Categories\Proxy\Pro::renderDialog() ?>
89
  <?php Components\Dialogs\Common\CascadeDelete::render() ?>
90
  <?php Components\Dialogs\Common\UnsavedChanges::render() ?>
 
 
 
 
91
  </div>
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
  use Bookly\Backend\Components;
3
  use Bookly\Lib;
4
+ /** @var array $datatables */
5
  ?>
6
  <div id="bookly-tbs" class="wrap">
7
  <div class="bookly-tbs-body">
23
  <div class="panel panel-default bookly-main">
24
  <div class="panel-body">
25
  <?php if ( Lib\Utils\Common::isCurrentUserAdmin() ): ?>
26
+ <div class="row">
27
+ <div class="col-md-12 form-inline bookly-margin-bottom-lg text-right">
28
+ <div class="form-group">
29
+ <?php Components\Controls\Buttons::renderModalActivator( 'bookly-staff-order-modal', 'btn-default bookly-btn-block-xs', esc_html__( 'Staff members order', 'bookly' ) ) ?>
30
+ </div>
31
+ <?php Components\Dialogs\Staff\Categories\Proxy\Pro::renderAdd() ?>
32
+ <div class="form-group">
33
+ <?php Components\Controls\Buttons::renderModalActivator( 'bookly-create-staff-modal', 'btn-success bookly-btn-block-xs', esc_html__( 'Add staff', 'bookly' ), array(), '<i class="fa fa-fw fa-plus"></i> {caption}' ) ?>
34
+ </div>
35
+ <?php Components\Dialogs\TableSettings\Dialog::renderButton( 'staff_members' ) ?>
36
+ </div>
37
+ </div>
38
  <div class="row">
39
  <div class="col-md-4">
40
  <div class="form-group">
41
+ <input class="form-control" type="text" id="bookly-filter-search" placeholder="<?php esc_attr_e( 'Quick search staff', 'bookly' ) ?>"/>
42
+ </div>
43
+ </div>
44
+ <div class="col-md-3 col-lg-2">
45
+ <div class="form-group">
46
+ <select class="form-control bookly-js-select" id="bookly-filter-category" data-placeholder="<?php esc_attr_e( 'Categories', 'bookly' ) ?>">
47
+ <?php foreach ( $categories as $category ) : ?>
48
+ <option value="<?php echo $category['id'] ?>"><?php echo esc_html( $category['name'] ) ?></option>
49
+ <?php endforeach ?>
50
+ </select>
51
  </div>
52
  </div>
53
  <div class="col-md-2">
70
  </div>
71
  <?php endif ?>
72
  </div>
 
 
 
 
 
 
 
 
73
  </div>
74
+
75
  <?php endif ?>
76
+
77
+ <table id="bookly-staff-list" class="table table-striped" width="100%">
78
  <thead>
79
  <tr>
80
+ <?php foreach ( $datatables['staff_members']['settings']['columns'] as $column => $show ) : ?>
81
+ <?php if ( $show ) : ?>
82
+ <th><?php echo $datatables['staff_members']['titles'][ $column ] ?></th>
83
+ <?php endif ?>
84
+ <?php endforeach ?>
 
 
 
 
85
  <th width="75"></th>
86
+ <th width="16"><input type="checkbox" id="bookly-check-all"/></th>
87
  </tr>
88
  </thead>
89
  </table>
90
+
91
  <div class="text-right bookly-margin-top-lg">
92
  <?php if ( Lib\Utils\Common::isCurrentUserAdmin() ): ?>
93
  <?php Components\Controls\Buttons::renderDelete() ?>
97
  </div>
98
  </div>
99
 
 
 
100
  <?php Components\Dialogs\Common\CascadeDelete::render() ?>
101
  <?php Components\Dialogs\Common\UnsavedChanges::render() ?>
102
+ <?php Components\Dialogs\Staff\Categories\Proxy\Pro::renderDialog() ?>
103
+ <?php Components\Dialogs\Staff\Edit\Dialog::render() ?>
104
+ <?php Components\Dialogs\Staff\Order\Dialog::render() ?>
105
+ <?php Components\Dialogs\TableSettings\Dialog::render() ?>
106
  </div>
backend/resources/bootstrap/css/bootstrap-theme.min.css CHANGED
@@ -1,3 +1,3 @@
1
  #bookly-tbs{
2
 
3
- }#bookly-tbs html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}#bookly-tbs body{margin:0}#bookly-tbs article,#bookly-tbs aside,#bookly-tbs details,#bookly-tbs figcaption,#bookly-tbs figure,#bookly-tbs footer,#bookly-tbs header,#bookly-tbs hgroup,#bookly-tbs main,#bookly-tbs menu,#bookly-tbs nav,#bookly-tbs section,#bookly-tbs summary{display:block}#bookly-tbs audio,#bookly-tbs canvas,#bookly-tbs progress,#bookly-tbs video{display:inline-block;vertical-align:baseline}#bookly-tbs audio:not([controls]){display:none;height:0}#bookly-tbs [hidden],#bookly-tbs template{display:none}#bookly-tbs a{background-color:transparent}#bookly-tbs a:active,#bookly-tbs a:hover{outline:0}#bookly-tbs abbr[title]{border-bottom:1px dotted}#bookly-tbs b,#bookly-tbs strong{font-weight:700}#bookly-tbs dfn{font-style:italic}#bookly-tbs h1{margin:.67em 0;font-size:2em}#bookly-tbs mark{color:#000;background:#ff0}#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 sup{top:-.5em}#bookly-tbs sub{bottom:-.25em}#bookly-tbs img{border:0}#bookly-tbs svg:not(:root){overflow:hidden}#bookly-tbs figure{margin:1em 40px}#bookly-tbs hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}#bookly-tbs pre{overflow:auto}#bookly-tbs code,#bookly-tbs kbd,#bookly-tbs pre,#bookly-tbs samp{font-family:monospace,monospace;font-size:1em}#bookly-tbs button,#bookly-tbs input,#bookly-tbs optgroup,#bookly-tbs select,#bookly-tbs textarea{margin:0;font:inherit;color:inherit}#bookly-tbs button{overflow:visible}#bookly-tbs button,#bookly-tbs select{text-transform:none}#bookly-tbs button,#bookly-tbs html input[type=button],#bookly-tbs input[type=reset],#bookly-tbs input[type=submit]{-webkit-appearance:button;cursor:pointer}#bookly-tbs button[disabled],#bookly-tbs html input[disabled]{cursor:default}#bookly-tbs button::-moz-focus-inner,#bookly-tbs input::-moz-focus-inner{padding:0;border:0}#bookly-tbs input{line-height:normal}#bookly-tbs input[type=checkbox],#bookly-tbs input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}#bookly-tbs input[type=number]::-webkit-inner-spin-button,#bookly-tbs input[type=number]::-webkit-outer-spin-button{height:auto}#bookly-tbs input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}#bookly-tbs input[type=search]::-webkit-search-cancel-button,#bookly-tbs input[type=search]::-webkit-search-decoration{-webkit-appearance:none}#bookly-tbs fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}#bookly-tbs legend{padding:0;border:0}#bookly-tbs textarea{overflow:auto}#bookly-tbs optgroup{font-weight:700}#bookly-tbs table{border-spacing:0;border-collapse:collapse}#bookly-tbs td,#bookly-tbs th{padding:0}@media print{#bookly-tbs *,#bookly-tbs :after,#bookly-tbs :before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}#bookly-tbs a,#bookly-tbs a:visited{text-decoration:underline}#bookly-tbs a[href]:after{content:" (" attr(href) ")"}#bookly-tbs abbr[title]:after{content:" (" attr(title) ")"}#bookly-tbs a[href^="javascript:"]:after,#bookly-tbs a[href^="#"]:after{content:""}#bookly-tbs blockquote,#bookly-tbs pre{border:1px solid #999;page-break-inside:avoid}#bookly-tbs thead{display:table-header-group}#bookly-tbs img,#bookly-tbs tr{page-break-inside:avoid}#bookly-tbs img{max-width:100%!important}#bookly-tbs h2,#bookly-tbs h3,#bookly-tbs p{orphans:3;widows:3}#bookly-tbs h2,#bookly-tbs h3{page-break-after:avoid}#bookly-tbs .navbar{display:none}#bookly-tbs .btn>.caret,#bookly-tbs .dropup>.btn>.caret{border-top-color:#000!important}#bookly-tbs .label{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 #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}#bookly-tbs .glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#bookly-tbs .glyphicon-asterisk:before{content:"\002a"}#bookly-tbs .glyphicon-plus:before{content:"\002b"}#bookly-tbs .glyphicon-eur:before,#bookly-tbs .glyphicon-euro:before{content:"\20ac"}#bookly-tbs .glyphicon-minus:before{content:"\2212"}#bookly-tbs .glyphicon-cloud:before{content:"\2601"}#bookly-tbs .glyphicon-envelope:before{content:"\2709"}#bookly-tbs .glyphicon-pencil:before{content:"\270f"}#bookly-tbs .glyphicon-glass:before{content:"\e001"}#bookly-tbs .glyphicon-music:before{content:"\e002"}#bookly-tbs .glyphicon-search:before{content:"\e003"}#bookly-tbs .glyphicon-heart:before{content:"\e005"}#bookly-tbs .glyphicon-star:before{content:"\e006"}#bookly-tbs .glyphicon-star-empty:before{content:"\e007"}#bookly-tbs .glyphicon-user:before{content:"\e008"}#bookly-tbs .glyphicon-film:before{content:"\e009"}#bookly-tbs .glyphicon-th-large:before{content:"\e010"}#bookly-tbs .glyphicon-th:before{content:"\e011"}#bookly-tbs .glyphicon-th-list:before{content:"\e012"}#bookly-tbs .glyphicon-ok:before{content:"\e013"}#bookly-tbs .glyphicon-remove:before{content:"\e014"}#bookly-tbs .glyphicon-zoom-in:before{content:"\e015"}#bookly-tbs .glyphicon-zoom-out:before{content:"\e016"}#bookly-tbs .glyphicon-off:before{content:"\e017"}#bookly-tbs .glyphicon-signal:before{content:"\e018"}#bookly-tbs .glyphicon-cog:before{content:"\e019"}#bookly-tbs .glyphicon-trash:before{content:"\e020"}#bookly-tbs .glyphicon-home:before{content:"\e021"}#bookly-tbs .glyphicon-file:before{content:"\e022"}#bookly-tbs .glyphicon-time:before{content:"\e023"}#bookly-tbs .glyphicon-road:before{content:"\e024"}#bookly-tbs .glyphicon-download-alt:before{content:"\e025"}#bookly-tbs .glyphicon-download:before{content:"\e026"}#bookly-tbs .glyphicon-upload:before{content:"\e027"}#bookly-tbs .glyphicon-inbox:before{content:"\e028"}#bookly-tbs .glyphicon-play-circle:before{content:"\e029"}#bookly-tbs .glyphicon-repeat:before{content:"\e030"}#bookly-tbs .glyphicon-refresh:before{content:"\e031"}#bookly-tbs .glyphicon-list-alt:before{content:"\e032"}#bookly-tbs .glyphicon-lock:before{content:"\e033"}#bookly-tbs .glyphicon-flag:before{content:"\e034"}#bookly-tbs .glyphicon-headphones:before{content:"\e035"}#bookly-tbs .glyphicon-volume-off:before{content:"\e036"}#bookly-tbs .glyphicon-volume-down:before{content:"\e037"}#bookly-tbs .glyphicon-volume-up:before{content:"\e038"}#bookly-tbs .glyphicon-qrcode:before{content:"\e039"}#bookly-tbs .glyphicon-barcode:before{content:"\e040"}#bookly-tbs .glyphicon-tag:before{content:"\e041"}#bookly-tbs .glyphicon-tags:before{content:"\e042"}#bookly-tbs .glyphicon-book:before{content:"\e043"}#bookly-tbs .glyphicon-bookmark:before{content:"\e044"}#bookly-tbs .glyphicon-print:before{content:"\e045"}#bookly-tbs .glyphicon-camera:before{content:"\e046"}#bookly-tbs .glyphicon-font:before{content:"\e047"}#bookly-tbs .glyphicon-bold:before{content:"\e048"}#bookly-tbs .glyphicon-italic:before{content:"\e049"}#bookly-tbs .glyphicon-text-height:before{content:"\e050"}#bookly-tbs .glyphicon-text-width:before{content:"\e051"}#bookly-tbs .glyphicon-align-left:before{content:"\e052"}#bookly-tbs .glyphicon-align-center:before{content:"\e053"}#bookly-tbs .glyphicon-align-right:before{content:"\e054"}#bookly-tbs .glyphicon-align-justify:before{content:"\e055"}#bookly-tbs .glyphicon-list:before{content:"\e056"}#bookly-tbs .glyphicon-indent-left:before{content:"\e057"}#bookly-tbs .glyphicon-indent-right:before{content:"\e058"}#bookly-tbs .glyphicon-facetime-video:before{content:"\e059"}#bookly-tbs .glyphicon-picture:before{content:"\e060"}#bookly-tbs .glyphicon-map-marker:before{content:"\e062"}#bookly-tbs .glyphicon-adjust:before{content:"\e063"}#bookly-tbs .glyphicon-tint:before{content:"\e064"}#bookly-tbs .glyphicon-edit:before{content:"\e065"}#bookly-tbs .glyphicon-share:before{content:"\e066"}#bookly-tbs .glyphicon-check:before{content:"\e067"}#bookly-tbs .glyphicon-move:before{content:"\e068"}#bookly-tbs .glyphicon-step-backward:before{content:"\e069"}#bookly-tbs .glyphicon-fast-backward:before{content:"\e070"}#bookly-tbs .glyphicon-backward:before{content:"\e071"}#bookly-tbs .glyphicon-play:before{content:"\e072"}#bookly-tbs .glyphicon-pause:before{content:"\e073"}#bookly-tbs .glyphicon-stop:before{content:"\e074"}#bookly-tbs .glyphicon-forward:before{content:"\e075"}#bookly-tbs .glyphicon-fast-forward:before{content:"\e076"}#bookly-tbs .glyphicon-step-forward:before{content:"\e077"}#bookly-tbs .glyphicon-eject:before{content:"\e078"}#bookly-tbs .glyphicon-chevron-left:before{content:"\e079"}#bookly-tbs .glyphicon-chevron-right:before{content:"\e080"}#bookly-tbs .glyphicon-plus-sign:before{content:"\e081"}#bookly-tbs .glyphicon-minus-sign:before{content:"\e082"}#bookly-tbs .glyphicon-remove-sign:before{content:"\e083"}#bookly-tbs .glyphicon-ok-sign:before{content:"\e084"}#bookly-tbs .glyphicon-question-sign:before{content:"\e085"}#bookly-tbs .glyphicon-info-sign:before{content:"\e086"}#bookly-tbs .glyphicon-screenshot:before{content:"\e087"}#bookly-tbs .glyphicon-remove-circle:before{content:"\e088"}#bookly-tbs .glyphicon-ok-circle:before{content:"\e089"}#bookly-tbs .glyphicon-ban-circle:before{content:"\e090"}#bookly-tbs .glyphicon-arrow-left:before{content:"\e091"}#bookly-tbs .glyphicon-arrow-right:before{content:"\e092"}#bookly-tbs .glyphicon-arrow-up:before{content:"\e093"}#bookly-tbs .glyphicon-arrow-down:before{content:"\e094"}#bookly-tbs .glyphicon-share-alt:before{content:"\e095"}#bookly-tbs .glyphicon-resize-full:before{content:"\e096"}#bookly-tbs .glyphicon-resize-small:before{content:"\e097"}#bookly-tbs .glyphicon-exclamation-sign:before{content:"\e101"}#bookly-tbs .glyphicon-gift:before{content:"\e102"}#bookly-tbs .glyphicon-leaf:before{content:"\e103"}#bookly-tbs .glyphicon-fire:before{content:"\e104"}#bookly-tbs .glyphicon-eye-open:before{content:"\e105"}#bookly-tbs .glyphicon-eye-close:before{content:"\e106"}#bookly-tbs .glyphicon-warning-sign:before{content:"\e107"}#bookly-tbs .glyphicon-plane:before{content:"\e108"}#bookly-tbs .glyphicon-calendar:before{content:"\e109"}#bookly-tbs .glyphicon-random:before{content:"\e110"}#bookly-tbs .glyphicon-comment:before{content:"\e111"}#bookly-tbs .glyphicon-magnet:before{content:"\e112"}#bookly-tbs .glyphicon-chevron-up:before{content:"\e113"}#bookly-tbs .glyphicon-chevron-down:before{content:"\e114"}#bookly-tbs .glyphicon-retweet:before{content:"\e115"}#bookly-tbs .glyphicon-shopping-cart:before{content:"\e116"}#bookly-tbs .glyphicon-folder-close:before{content:"\e117"}#bookly-tbs .glyphicon-folder-open:before{content:"\e118"}#bookly-tbs .glyphicon-resize-vertical:before{content:"\e119"}#bookly-tbs .glyphicon-resize-horizontal:before{content:"\e120"}#bookly-tbs .glyphicon-hdd:before{content:"\e121"}#bookly-tbs .glyphicon-bullhorn:before{content:"\e122"}#bookly-tbs .glyphicon-bell:before{content:"\e123"}#bookly-tbs .glyphicon-certificate:before{content:"\e124"}#bookly-tbs .glyphicon-thumbs-up:before{content:"\e125"}#bookly-tbs .glyphicon-thumbs-down:before{content:"\e126"}#bookly-tbs .glyphicon-hand-right:before{content:"\e127"}#bookly-tbs .glyphicon-hand-left:before{content:"\e128"}#bookly-tbs .glyphicon-hand-up:before{content:"\e129"}#bookly-tbs .glyphicon-hand-down:before{content:"\e130"}#bookly-tbs .glyphicon-circle-arrow-right:before{content:"\e131"}#bookly-tbs .glyphicon-circle-arrow-left:before{content:"\e132"}#bookly-tbs .glyphicon-circle-arrow-up:before{content:"\e133"}#bookly-tbs .glyphicon-circle-arrow-down:before{content:"\e134"}#bookly-tbs .glyphicon-globe:before{content:"\e135"}#bookly-tbs .glyphicon-wrench:before{content:"\e136"}#bookly-tbs .glyphicon-tasks:before{content:"\e137"}#bookly-tbs .glyphicon-filter:before{content:"\e138"}#bookly-tbs .glyphicon-briefcase:before{content:"\e139"}#bookly-tbs .glyphicon-fullscreen:before{content:"\e140"}#bookly-tbs .glyphicon-dashboard:before{content:"\e141"}#bookly-tbs .glyphicon-paperclip:before{content:"\e142"}#bookly-tbs .glyphicon-heart-empty:before{content:"\e143"}#bookly-tbs .glyphicon-link:before{content:"\e144"}#bookly-tbs .glyphicon-phone:before{content:"\e145"}#bookly-tbs .glyphicon-pushpin:before{content:"\e146"}#bookly-tbs .glyphicon-usd:before{content:"\e148"}#bookly-tbs .glyphicon-gbp:before{content:"\e149"}#bookly-tbs .glyphicon-sort:before{content:"\e150"}#bookly-tbs .glyphicon-sort-by-alphabet:before{content:"\e151"}#bookly-tbs .glyphicon-sort-by-alphabet-alt:before{content:"\e152"}#bookly-tbs .glyphicon-sort-by-order:before{content:"\e153"}#bookly-tbs .glyphicon-sort-by-order-alt:before{content:"\e154"}#bookly-tbs .glyphicon-sort-by-attributes:before{content:"\e155"}#bookly-tbs .glyphicon-sort-by-attributes-alt:before{content:"\e156"}#bookly-tbs .glyphicon-unchecked:before{content:"\e157"}#bookly-tbs .glyphicon-expand:before{content:"\e158"}#bookly-tbs .glyphicon-collapse-down:before{content:"\e159"}#bookly-tbs .glyphicon-collapse-up:before{content:"\e160"}#bookly-tbs .glyphicon-log-in:before{content:"\e161"}#bookly-tbs .glyphicon-flash:before{content:"\e162"}#bookly-tbs .glyphicon-log-out:before{content:"\e163"}#bookly-tbs .glyphicon-new-window:before{content:"\e164"}#bookly-tbs .glyphicon-record:before{content:"\e165"}#bookly-tbs .glyphicon-save:before{content:"\e166"}#bookly-tbs .glyphicon-open:before{content:"\e167"}#bookly-tbs .glyphicon-saved:before{content:"\e168"}#bookly-tbs .glyphicon-import:before{content:"\e169"}#bookly-tbs .glyphicon-export:before{content:"\e170"}#bookly-tbs .glyphicon-send:before{content:"\e171"}#bookly-tbs .glyphicon-floppy-disk:before{content:"\e172"}#bookly-tbs .glyphicon-floppy-saved:before{content:"\e173"}#bookly-tbs .glyphicon-floppy-remove:before{content:"\e174"}#bookly-tbs .glyphicon-floppy-save:before{content:"\e175"}#bookly-tbs .glyphicon-floppy-open:before{content:"\e176"}#bookly-tbs .glyphicon-credit-card:before{content:"\e177"}#bookly-tbs .glyphicon-transfer:before{content:"\e178"}#bookly-tbs .glyphicon-cutlery:before{content:"\e179"}#bookly-tbs .glyphicon-header:before{content:"\e180"}#bookly-tbs .glyphicon-compressed:before{content:"\e181"}#bookly-tbs .glyphicon-earphone:before{content:"\e182"}#bookly-tbs .glyphicon-phone-alt:before{content:"\e183"}#bookly-tbs .glyphicon-tower:before{content:"\e184"}#bookly-tbs .glyphicon-stats:before{content:"\e185"}#bookly-tbs .glyphicon-sd-video:before{content:"\e186"}#bookly-tbs .glyphicon-hd-video:before{content:"\e187"}#bookly-tbs .glyphicon-subtitles:before{content:"\e188"}#bookly-tbs .glyphicon-sound-stereo:before{content:"\e189"}#bookly-tbs .glyphicon-sound-dolby:before{content:"\e190"}#bookly-tbs .glyphicon-sound-5-1:before{content:"\e191"}#bookly-tbs .glyphicon-sound-6-1:before{content:"\e192"}#bookly-tbs .glyphicon-sound-7-1:before{content:"\e193"}#bookly-tbs .glyphicon-copyright-mark:before{content:"\e194"}#bookly-tbs .glyphicon-registration-mark:before{content:"\e195"}#bookly-tbs .glyphicon-cloud-download:before{content:"\e197"}#bookly-tbs .glyphicon-cloud-upload:before{content:"\e198"}#bookly-tbs .glyphicon-tree-conifer:before{content:"\e199"}#bookly-tbs .glyphicon-tree-deciduous:before{content:"\e200"}#bookly-tbs .glyphicon-cd:before{content:"\e201"}#bookly-tbs .glyphicon-save-file:before{content:"\e202"}#bookly-tbs .glyphicon-open-file:before{content:"\e203"}#bookly-tbs .glyphicon-level-up:before{content:"\e204"}#bookly-tbs .glyphicon-copy:before{content:"\e205"}#bookly-tbs .glyphicon-paste:before{content:"\e206"}#bookly-tbs .glyphicon-alert:before{content:"\e209"}#bookly-tbs .glyphicon-equalizer:before{content:"\e210"}#bookly-tbs .glyphicon-king:before{content:"\e211"}#bookly-tbs .glyphicon-queen:before{content:"\e212"}#bookly-tbs .glyphicon-pawn:before{content:"\e213"}#bookly-tbs .glyphicon-bishop:before{content:"\e214"}#bookly-tbs .glyphicon-knight:before{content:"\e215"}#bookly-tbs .glyphicon-baby-formula:before{content:"\e216"}#bookly-tbs .glyphicon-tent:before{content:"\26fa"}#bookly-tbs .glyphicon-blackboard:before{content:"\e218"}#bookly-tbs .glyphicon-bed:before{content:"\e219"}#bookly-tbs .glyphicon-apple:before{content:"\f8ff"}#bookly-tbs .glyphicon-erase:before{content:"\e221"}#bookly-tbs .glyphicon-hourglass:before{content:"\231b"}#bookly-tbs .glyphicon-lamp:before{content:"\e223"}#bookly-tbs .glyphicon-duplicate:before{content:"\e224"}#bookly-tbs .glyphicon-piggy-bank:before{content:"\e225"}#bookly-tbs .glyphicon-scissors:before{content:"\e226"}#bookly-tbs .glyphicon-bitcoin:before{content:"\e227"}#bookly-tbs .glyphicon-btc:before{content:"\e227"}#bookly-tbs .glyphicon-xbt:before{content:"\e227"}#bookly-tbs .glyphicon-yen:before{content:"\00a5"}#bookly-tbs .glyphicon-jpy:before{content:"\00a5"}#bookly-tbs .glyphicon-ruble:before{content:"\20bd"}#bookly-tbs .glyphicon-rub:before{content:"\20bd"}#bookly-tbs .glyphicon-scale:before{content:"\e230"}#bookly-tbs .glyphicon-ice-lolly:before{content:"\e231"}#bookly-tbs .glyphicon-ice-lolly-tasted:before{content:"\e232"}#bookly-tbs .glyphicon-education:before{content:"\e233"}#bookly-tbs .glyphicon-option-horizontal:before{content:"\e234"}#bookly-tbs .glyphicon-option-vertical:before{content:"\e235"}#bookly-tbs .glyphicon-menu-hamburger:before{content:"\e236"}#bookly-tbs .glyphicon-modal-window:before{content:"\e237"}#bookly-tbs .glyphicon-oil:before{content:"\e238"}#bookly-tbs .glyphicon-grain:before{content:"\e239"}#bookly-tbs .glyphicon-sunglasses:before{content:"\e240"}#bookly-tbs .glyphicon-text-size:before{content:"\e241"}#bookly-tbs .glyphicon-text-color:before{content:"\e242"}#bookly-tbs .glyphicon-text-background:before{content:"\e243"}#bookly-tbs .glyphicon-object-align-top:before{content:"\e244"}#bookly-tbs .glyphicon-object-align-bottom:before{content:"\e245"}#bookly-tbs .glyphicon-object-align-horizontal:before{content:"\e246"}#bookly-tbs .glyphicon-object-align-left:before{content:"\e247"}#bookly-tbs .glyphicon-object-align-vertical:before{content:"\e248"}#bookly-tbs .glyphicon-object-align-right:before{content:"\e249"}#bookly-tbs .glyphicon-triangle-right:before{content:"\e250"}#bookly-tbs .glyphicon-triangle-left:before{content:"\e251"}#bookly-tbs .glyphicon-triangle-bottom:before{content:"\e252"}#bookly-tbs .glyphicon-triangle-top:before{content:"\e253"}#bookly-tbs .glyphicon-console:before{content:"\e254"}#bookly-tbs .glyphicon-superscript:before{content:"\e255"}#bookly-tbs .glyphicon-subscript:before{content:"\e256"}#bookly-tbs .glyphicon-menu-left:before{content:"\e257"}#bookly-tbs .glyphicon-menu-right:before{content:"\e258"}#bookly-tbs .glyphicon-menu-down:before{content:"\e259"}#bookly-tbs .glyphicon-menu-up:before{content:"\e260"}#bookly-tbs *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#bookly-tbs :after,#bookly-tbs :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#bookly-tbs .bookly-tbs-body{font-family:"open sans","helvetica neue",helvetica,arial,sans-serif;font-size:15px;line-height:1.4;color:#3e424a;background-color:transparent;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#bookly-tbs button,#bookly-tbs input,#bookly-tbs select,#bookly-tbs textarea{font-family:inherit;font-size:inherit;line-height:inherit}#bookly-tbs a{color:#08c;text-decoration:none}#bookly-tbs a:focus,#bookly-tbs a:hover{color:#005580;text-decoration:none}#bookly-tbs a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#bookly-tbs figure{margin:0}#bookly-tbs img{vertical-align:middle}#bookly-tbs .carousel-inner>.item>a>img,#bookly-tbs .carousel-inner>.item>img,#bookly-tbs .img-responsive,#bookly-tbs .thumbnail a>img,#bookly-tbs .thumbnail>img{display:block;max-width:100%;height:auto}#bookly-tbs .img-rounded{border-radius:6px}#bookly-tbs .img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.4;background-color:transparent;border:1px solid #e8ebf0;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}#bookly-tbs .img-circle{border-radius:50%}#bookly-tbs hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #d9dee4}#bookly-tbs .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}#bookly-tbs .sr-only-focusable:active,#bookly-tbs .sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}#bookly-tbs [role=button]{cursor:pointer}#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{font-family:inherit;font-weight:400;line-height:1.1;color:inherit}#bookly-tbs .h1 .small,#bookly-tbs .h1 small,#bookly-tbs .h2 .small,#bookly-tbs .h2 small,#bookly-tbs .h3 .small,#bookly-tbs .h3 small,#bookly-tbs .h4 .small,#bookly-tbs .h4 small,#bookly-tbs .h5 .small,#bookly-tbs .h5 small,#bookly-tbs .h6 .small,#bookly-tbs .h6 small,#bookly-tbs h1 .small,#bookly-tbs h1 small,#bookly-tbs h2 .small,#bookly-tbs h2 small,#bookly-tbs h3 .small,#bookly-tbs h3 small,#bookly-tbs h4 .small,#bookly-tbs h4 small,#bookly-tbs h5 .small,#bookly-tbs h5 small,#bookly-tbs h6 .small,#bookly-tbs h6 small{font-weight:400;line-height:1;color:#d9dee4}#bookly-tbs .h1,#bookly-tbs .h2,#bookly-tbs .h3,#bookly-tbs h1,#bookly-tbs h2,#bookly-tbs h3{margin-top:21px;margin-bottom:10.5px}#bookly-tbs .h1 .small,#bookly-tbs .h1 small,#bookly-tbs .h2 .small,#bookly-tbs .h2 small,#bookly-tbs .h3 .small,#bookly-tbs .h3 small,#bookly-tbs h1 .small,#bookly-tbs h1 small,#bookly-tbs h2 .small,#bookly-tbs h2 small,#bookly-tbs h3 .small,#bookly-tbs h3 small{font-size:65%}#bookly-tbs .h4,#bookly-tbs .h5,#bookly-tbs .h6,#bookly-tbs h4,#bookly-tbs h5,#bookly-tbs h6{margin-top:10.5px;margin-bottom:10.5px}#bookly-tbs .h4 .small,#bookly-tbs .h4 small,#bookly-tbs .h5 .small,#bookly-tbs .h5 small,#bookly-tbs .h6 .small,#bookly-tbs .h6 small,#bookly-tbs h4 .small,#bookly-tbs h4 small,#bookly-tbs h5 .small,#bookly-tbs h5 small,#bookly-tbs h6 .small,#bookly-tbs h6 small{font-size:75%}#bookly-tbs .h1,#bookly-tbs h1{font-size:27px}#bookly-tbs .h2,#bookly-tbs h2{font-size:24px}#bookly-tbs .h3,#bookly-tbs h3{font-size:21px}#bookly-tbs .h4,#bookly-tbs h4{font-size:18px}#bookly-tbs .h5,#bookly-tbs h5{font-size:15px}#bookly-tbs .h6,#bookly-tbs h6{font-size:13px}#bookly-tbs p{margin:0 0 10.5px}#bookly-tbs .lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){#bookly-tbs .lead{font-size:22.5px}}#bookly-tbs .small,#bookly-tbs small{font-size:86%}#bookly-tbs .mark,#bookly-tbs mark{padding:.2em;background-color:#fcf8e3}#bookly-tbs .text-left{text-align:left}#bookly-tbs .text-right{text-align:right}#bookly-tbs .text-center{text-align:center}#bookly-tbs .text-justify{text-align:justify}#bookly-tbs .text-nowrap{white-space:nowrap}#bookly-tbs .text-lowercase{text-transform:lowercase}#bookly-tbs .text-uppercase{text-transform:uppercase}#bookly-tbs .text-capitalize{text-transform:capitalize}#bookly-tbs .text-muted{color:#d9dee4}#bookly-tbs .text-primary{color:#08c}#bookly-tbs a.text-primary:focus,#bookly-tbs a.text-primary:hover{color:#069}#bookly-tbs .text-success{color:#3c763d}#bookly-tbs a.text-success:focus,#bookly-tbs a.text-success:hover{color:#2b542c}#bookly-tbs .text-info{color:#31708f}#bookly-tbs a.text-info:focus,#bookly-tbs a.text-info:hover{color:#245269}#bookly-tbs .text-warning{color:#8a6d3b}#bookly-tbs a.text-warning:focus,#bookly-tbs a.text-warning:hover{color:#66512c}#bookly-tbs .text-danger{color:#a94442}#bookly-tbs a.text-danger:focus,#bookly-tbs a.text-danger:hover{color:#843534}#bookly-tbs .bg-primary{color:#fff;background-color:#08c}#bookly-tbs a.bg-primary:focus,#bookly-tbs a.bg-primary:hover{background-color:#069}#bookly-tbs .bg-success{background-color:#dff0d8}#bookly-tbs a.bg-success:focus,#bookly-tbs a.bg-success:hover{background-color:#c1e2b3}#bookly-tbs .bg-info{background-color:#d9edf7}#bookly-tbs a.bg-info:focus,#bookly-tbs a.bg-info:hover{background-color:#afd9ee}#bookly-tbs .bg-warning{background-color:#fcf8e3}#bookly-tbs a.bg-warning:focus,#bookly-tbs a.bg-warning:hover{background-color:#f7ecb5}#bookly-tbs .bg-danger{background-color:#f2dede}#bookly-tbs a.bg-danger:focus,#bookly-tbs a.bg-danger:hover{background-color:#e4b9b9}#bookly-tbs .page-header{padding-bottom:9.5px;margin:42px 0 10.5px;border-bottom:1px solid transparent}#bookly-tbs ol,#bookly-tbs ul{margin-top:0;margin-bottom:10.5px}#bookly-tbs ol ol,#bookly-tbs ol ul,#bookly-tbs ul ol,#bookly-tbs ul ul{margin-bottom:0}#bookly-tbs .list-unstyled{padding-left:0;list-style:none}#bookly-tbs .list-inline{padding-left:0;margin-left:-5px;list-style:none}#bookly-tbs .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}#bookly-tbs dl{margin-top:0;margin-bottom:21px}#bookly-tbs dd,#bookly-tbs dt{line-height:1.4}#bookly-tbs dt{font-weight:700}#bookly-tbs dd{margin-left:0}@media (min-width:768px){#bookly-tbs .dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .dl-horizontal dd{margin-left:180px}}#bookly-tbs abbr[data-original-title],#bookly-tbs abbr[title]{cursor:help;border-bottom:1px dotted #d9dee4}#bookly-tbs .initialism{font-size:90%;text-transform:uppercase}#bookly-tbs blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #e8ebf0}#bookly-tbs blockquote ol:last-child,#bookly-tbs blockquote p:last-child,#bookly-tbs blockquote ul:last-child{margin-bottom:0}#bookly-tbs blockquote .small,#bookly-tbs blockquote footer,#bookly-tbs blockquote small{display:block;font-size:80%;line-height:1.4;color:#d9dee4}#bookly-tbs blockquote .small:before,#bookly-tbs blockquote footer:before,#bookly-tbs blockquote small:before{content:'\2014 \00A0'}#bookly-tbs .blockquote-reverse,#bookly-tbs blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #e8ebf0;border-left:0}#bookly-tbs .blockquote-reverse .small:before,#bookly-tbs .blockquote-reverse footer:before,#bookly-tbs .blockquote-reverse small:before,#bookly-tbs blockquote.pull-right .small:before,#bookly-tbs blockquote.pull-right footer:before,#bookly-tbs blockquote.pull-right small:before{content:''}#bookly-tbs .blockquote-reverse .small:after,#bookly-tbs .blockquote-reverse footer:after,#bookly-tbs .blockquote-reverse small:after,#bookly-tbs blockquote.pull-right .small:after,#bookly-tbs blockquote.pull-right footer:after,#bookly-tbs blockquote.pull-right small:after{content:'\00A0 \2014'}#bookly-tbs address{margin-bottom:21px;font-style:normal;line-height:1.4}#bookly-tbs code,#bookly-tbs kbd,#bookly-tbs pre,#bookly-tbs samp{font-family:menlo,monaco,consolas,"courier new",monospace}#bookly-tbs code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}#bookly-tbs kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}#bookly-tbs kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.4;color:#5b6470;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}#bookly-tbs pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}#bookly-tbs .pre-scrollable{max-height:340px;overflow-y:scroll}#bookly-tbs .container{padding-right:10px;padding-left:10px;margin-right:auto;margin-left:auto}@media (min-width:768px){#bookly-tbs .container{width:740px}}@media (min-width:992px){#bookly-tbs .container{width:960px}}@media (min-width:1200px){#bookly-tbs .container{width:1160px}}#bookly-tbs .container-fluid{padding-right:10px;padding-left:10px;margin-right:auto;margin-left:auto}#bookly-tbs .row{margin-right:-10px;margin-left:-10px}#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-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-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-xs-1,#bookly-tbs .col-xs-10,#bookly-tbs .col-xs-11,#bookly-tbs .col-xs-12,#bookly-tbs .col-xs-2,#bookly-tbs .col-xs-3,#bookly-tbs .col-xs-4,#bookly-tbs .col-xs-5,#bookly-tbs .col-xs-6,#bookly-tbs .col-xs-7,#bookly-tbs .col-xs-8,#bookly-tbs .col-xs-9{position:relative;min-height:1px;padding-right:10px;padding-left:10px}#bookly-tbs .col-xs-1,#bookly-tbs .col-xs-10,#bookly-tbs .col-xs-11,#bookly-tbs .col-xs-12,#bookly-tbs .col-xs-2,#bookly-tbs .col-xs-3,#bookly-tbs .col-xs-4,#bookly-tbs .col-xs-5,#bookly-tbs .col-xs-6,#bookly-tbs .col-xs-7,#bookly-tbs .col-xs-8,#bookly-tbs .col-xs-9{float:left}#bookly-tbs .col-xs-12{width:100%}#bookly-tbs .col-xs-11{width:91.66666667%}#bookly-tbs .col-xs-10{width:83.33333333%}#bookly-tbs .col-xs-9{width:75%}#bookly-tbs .col-xs-8{width:66.66666667%}#bookly-tbs .col-xs-7{width:58.33333333%}#bookly-tbs .col-xs-6{width:50%}#bookly-tbs .col-xs-5{width:41.66666667%}#bookly-tbs .col-xs-4{width:33.33333333%}#bookly-tbs .col-xs-3{width:25%}#bookly-tbs .col-xs-2{width:16.66666667%}#bookly-tbs .col-xs-1{width:8.33333333%}#bookly-tbs .col-xs-pull-12{right:100%}#bookly-tbs .col-xs-pull-11{right:91.66666667%}#bookly-tbs .col-xs-pull-10{right:83.33333333%}#bookly-tbs .col-xs-pull-9{right:75%}#bookly-tbs .col-xs-pull-8{right:66.66666667%}#bookly-tbs .col-xs-pull-7{right:58.33333333%}#bookly-tbs .col-xs-pull-6{right:50%}#bookly-tbs .col-xs-pull-5{right:41.66666667%}#bookly-tbs .col-xs-pull-4{right:33.33333333%}#bookly-tbs .col-xs-pull-3{right:25%}#bookly-tbs .col-xs-pull-2{right:16.66666667%}#bookly-tbs .col-xs-pull-1{right:8.33333333%}#bookly-tbs .col-xs-pull-0{right:auto}#bookly-tbs .col-xs-push-12{left:100%}#bookly-tbs .col-xs-push-11{left:91.66666667%}#bookly-tbs .col-xs-push-10{left:83.33333333%}#bookly-tbs .col-xs-push-9{left:75%}#bookly-tbs .col-xs-push-8{left:66.66666667%}#bookly-tbs .col-xs-push-7{left:58.33333333%}#bookly-tbs .col-xs-push-6{left:50%}#bookly-tbs .col-xs-push-5{left:41.66666667%}#bookly-tbs .col-xs-push-4{left:33.33333333%}#bookly-tbs .col-xs-push-3{left:25%}#bookly-tbs .col-xs-push-2{left:16.66666667%}#bookly-tbs .col-xs-push-1{left:8.33333333%}#bookly-tbs .col-xs-push-0{left:auto}#bookly-tbs .col-xs-offset-12{margin-left:100%}#bookly-tbs .col-xs-offset-11{margin-left:91.66666667%}#bookly-tbs .col-xs-offset-10{margin-left:83.33333333%}#bookly-tbs .col-xs-offset-9{margin-left:75%}#bookly-tbs .col-xs-offset-8{margin-left:66.66666667%}#bookly-tbs .col-xs-offset-7{margin-left:58.33333333%}#bookly-tbs .col-xs-offset-6{margin-left:50%}#bookly-tbs .col-xs-offset-5{margin-left:41.66666667%}#bookly-tbs .col-xs-offset-4{margin-left:33.33333333%}#bookly-tbs .col-xs-offset-3{margin-left:25%}#bookly-tbs .col-xs-offset-2{margin-left:16.66666667%}#bookly-tbs .col-xs-offset-1{margin-left:8.33333333%}#bookly-tbs .col-xs-offset-0{margin-left:0}@media (min-width:768px){#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{float:left}#bookly-tbs .col-sm-12{width:100%}#bookly-tbs .col-sm-11{width:91.66666667%}#bookly-tbs .col-sm-10{width:83.33333333%}#bookly-tbs .col-sm-9{width:75%}#bookly-tbs .col-sm-8{width:66.66666667%}#bookly-tbs .col-sm-7{width:58.33333333%}#bookly-tbs .col-sm-6{width:50%}#bookly-tbs .col-sm-5{width:41.66666667%}#bookly-tbs .col-sm-4{width:33.33333333%}#bookly-tbs .col-sm-3{width:25%}#bookly-tbs .col-sm-2{width:16.66666667%}#bookly-tbs .col-sm-1{width:8.33333333%}#bookly-tbs .col-sm-pull-12{right:100%}#bookly-tbs .col-sm-pull-11{right:91.66666667%}#bookly-tbs .col-sm-pull-10{right:83.33333333%}#bookly-tbs .col-sm-pull-9{right:75%}#bookly-tbs .col-sm-pull-8{right:66.66666667%}#bookly-tbs .col-sm-pull-7{right:58.33333333%}#bookly-tbs .col-sm-pull-6{right:50%}#bookly-tbs .col-sm-pull-5{right:41.66666667%}#bookly-tbs .col-sm-pull-4{right:33.33333333%}#bookly-tbs .col-sm-pull-3{right:25%}#bookly-tbs .col-sm-pull-2{right:16.66666667%}#bookly-tbs .col-sm-pull-1{right:8.33333333%}#bookly-tbs .col-sm-pull-0{right:auto}#bookly-tbs .col-sm-push-12{left:100%}#bookly-tbs .col-sm-push-11{left:91.66666667%}#bookly-tbs .col-sm-push-10{left:83.33333333%}#bookly-tbs .col-sm-push-9{left:75%}#bookly-tbs .col-sm-push-8{left:66.66666667%}#bookly-tbs .col-sm-push-7{left:58.33333333%}#bookly-tbs .col-sm-push-6{left:50%}#bookly-tbs .col-sm-push-5{left:41.66666667%}#bookly-tbs .col-sm-push-4{left:33.33333333%}#bookly-tbs .col-sm-push-3{left:25%}#bookly-tbs .col-sm-push-2{left:16.66666667%}#bookly-tbs .col-sm-push-1{left:8.33333333%}#bookly-tbs .col-sm-push-0{left:auto}#bookly-tbs .col-sm-offset-12{margin-left:100%}#bookly-tbs .col-sm-offset-11{margin-left:91.66666667%}#bookly-tbs .col-sm-offset-10{margin-left:83.33333333%}#bookly-tbs .col-sm-offset-9{margin-left:75%}#bookly-tbs .col-sm-offset-8{margin-left:66.66666667%}#bookly-tbs .col-sm-offset-7{margin-left:58.33333333%}#bookly-tbs .col-sm-offset-6{margin-left:50%}#bookly-tbs .col-sm-offset-5{margin-left:41.66666667%}#bookly-tbs .col-sm-offset-4{margin-left:33.33333333%}#bookly-tbs .col-sm-offset-3{margin-left:25%}#bookly-tbs .col-sm-offset-2{margin-left:16.66666667%}#bookly-tbs .col-sm-offset-1{margin-left:8.33333333%}#bookly-tbs .col-sm-offset-0{margin-left:0}}@media (min-width:992px){#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{float:left}#bookly-tbs .col-md-12{width:100%}#bookly-tbs .col-md-11{width:91.66666667%}#bookly-tbs .col-md-10{width:83.33333333%}#bookly-tbs .col-md-9{width:75%}#bookly-tbs .col-md-8{width:66.66666667%}#bookly-tbs .col-md-7{width:58.33333333%}#bookly-tbs .col-md-6{width:50%}#bookly-tbs .col-md-5{width:41.66666667%}#bookly-tbs .col-md-4{width:33.33333333%}#bookly-tbs .col-md-3{width:25%}#bookly-tbs .col-md-2{width:16.66666667%}#bookly-tbs .col-md-1{width:8.33333333%}#bookly-tbs .col-md-pull-12{right:100%}#bookly-tbs .col-md-pull-11{right:91.66666667%}#bookly-tbs .col-md-pull-10{right:83.33333333%}#bookly-tbs .col-md-pull-9{right:75%}#bookly-tbs .col-md-pull-8{right:66.66666667%}#bookly-tbs .col-md-pull-7{right:58.33333333%}#bookly-tbs .col-md-pull-6{right:50%}#bookly-tbs .col-md-pull-5{right:41.66666667%}#bookly-tbs .col-md-pull-4{right:33.33333333%}#bookly-tbs .col-md-pull-3{right:25%}#bookly-tbs .col-md-pull-2{right:16.66666667%}#bookly-tbs .col-md-pull-1{right:8.33333333%}#bookly-tbs .col-md-pull-0{right:auto}#bookly-tbs .col-md-push-12{left:100%}#bookly-tbs .col-md-push-11{left:91.66666667%}#bookly-tbs .col-md-push-10{left:83.33333333%}#bookly-tbs .col-md-push-9{left:75%}#bookly-tbs .col-md-push-8{left:66.66666667%}#bookly-tbs .col-md-push-7{left:58.33333333%}#bookly-tbs .col-md-push-6{left:50%}#bookly-tbs .col-md-push-5{left:41.66666667%}#bookly-tbs .col-md-push-4{left:33.33333333%}#bookly-tbs .col-md-push-3{left:25%}#bookly-tbs .col-md-push-2{left:16.66666667%}#bookly-tbs .col-md-push-1{left:8.33333333%}#bookly-tbs .col-md-push-0{left:auto}#bookly-tbs .col-md-offset-12{margin-left:100%}#bookly-tbs .col-md-offset-11{margin-left:91.66666667%}#bookly-tbs .col-md-offset-10{margin-left:83.33333333%}#bookly-tbs .col-md-offset-9{margin-left:75%}#bookly-tbs .col-md-offset-8{margin-left:66.66666667%}#bookly-tbs .col-md-offset-7{margin-left:58.33333333%}#bookly-tbs .col-md-offset-6{margin-left:50%}#bookly-tbs .col-md-offset-5{margin-left:41.66666667%}#bookly-tbs .col-md-offset-4{margin-left:33.33333333%}#bookly-tbs .col-md-offset-3{margin-left:25%}#bookly-tbs .col-md-offset-2{margin-left:16.66666667%}#bookly-tbs .col-md-offset-1{margin-left:8.33333333%}#bookly-tbs .col-md-offset-0{margin-left:0}}@media (min-width:1200px){#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{float:left}#bookly-tbs .col-lg-12{width:100%}#bookly-tbs .col-lg-11{width:91.66666667%}#bookly-tbs .col-lg-10{width:83.33333333%}#bookly-tbs .col-lg-9{width:75%}#bookly-tbs .col-lg-8{width:66.66666667%}#bookly-tbs .col-lg-7{width:58.33333333%}#bookly-tbs .col-lg-6{width:50%}#bookly-tbs .col-lg-5{width:41.66666667%}#bookly-tbs .col-lg-4{width:33.33333333%}#bookly-tbs .col-lg-3{width:25%}#bookly-tbs .col-lg-2{width:16.66666667%}#bookly-tbs .col-lg-1{width:8.33333333%}#bookly-tbs .col-lg-pull-12{right:100%}#bookly-tbs .col-lg-pull-11{right:91.66666667%}#bookly-tbs .col-lg-pull-10{right:83.33333333%}#bookly-tbs .col-lg-pull-9{right:75%}#bookly-tbs .col-lg-pull-8{right:66.66666667%}#bookly-tbs .col-lg-pull-7{right:58.33333333%}#bookly-tbs .col-lg-pull-6{right:50%}#bookly-tbs .col-lg-pull-5{right:41.66666667%}#bookly-tbs .col-lg-pull-4{right:33.33333333%}#bookly-tbs .col-lg-pull-3{right:25%}#bookly-tbs .col-lg-pull-2{right:16.66666667%}#bookly-tbs .col-lg-pull-1{right:8.33333333%}#bookly-tbs .col-lg-pull-0{right:auto}#bookly-tbs .col-lg-push-12{left:100%}#bookly-tbs .col-lg-push-11{left:91.66666667%}#bookly-tbs .col-lg-push-10{left:83.33333333%}#bookly-tbs .col-lg-push-9{left:75%}#bookly-tbs .col-lg-push-8{left:66.66666667%}#bookly-tbs .col-lg-push-7{left:58.33333333%}#bookly-tbs .col-lg-push-6{left:50%}#bookly-tbs .col-lg-push-5{left:41.66666667%}#bookly-tbs .col-lg-push-4{left:33.33333333%}#bookly-tbs .col-lg-push-3{left:25%}#bookly-tbs .col-lg-push-2{left:16.66666667%}#bookly-tbs .col-lg-push-1{left:8.33333333%}#bookly-tbs .col-lg-push-0{left:auto}#bookly-tbs .col-lg-offset-12{margin-left:100%}#bookly-tbs .col-lg-offset-11{margin-left:91.66666667%}#bookly-tbs .col-lg-offset-10{margin-left:83.33333333%}#bookly-tbs .col-lg-offset-9{margin-left:75%}#bookly-tbs .col-lg-offset-8{margin-left:66.66666667%}#bookly-tbs .col-lg-offset-7{margin-left:58.33333333%}#bookly-tbs .col-lg-offset-6{margin-left:50%}#bookly-tbs .col-lg-offset-5{margin-left:41.66666667%}#bookly-tbs .col-lg-offset-4{margin-left:33.33333333%}#bookly-tbs .col-lg-offset-3{margin-left:25%}#bookly-tbs .col-lg-offset-2{margin-left:16.66666667%}#bookly-tbs .col-lg-offset-1{margin-left:8.33333333%}#bookly-tbs .col-lg-offset-0{margin-left:0}}#bookly-tbs table{background-color:transparent}#bookly-tbs caption{padding-top:8px;padding-bottom:8px;color:#d9dee4;text-align:left}#bookly-tbs th{text-align:left}#bookly-tbs .table{width:100%;max-width:100%;margin-bottom:21px}#bookly-tbs .table>tbody>tr>td,#bookly-tbs .table>tbody>tr>th,#bookly-tbs .table>tfoot>tr>td,#bookly-tbs .table>tfoot>tr>th,#bookly-tbs .table>thead>tr>td,#bookly-tbs .table>thead>tr>th{padding:8px;line-height:1.4;vertical-align:top;border-top:1px solid #d9dee4}#bookly-tbs .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #d9dee4}#bookly-tbs .table>caption+thead>tr:first-child>td,#bookly-tbs .table>caption+thead>tr:first-child>th,#bookly-tbs .table>colgroup+thead>tr:first-child>td,#bookly-tbs .table>colgroup+thead>tr:first-child>th,#bookly-tbs .table>thead:first-child>tr:first-child>td,#bookly-tbs .table>thead:first-child>tr:first-child>th{border-top:0}#bookly-tbs .table>tbody+tbody{border-top:2px solid #d9dee4}#bookly-tbs .table .table{background-color:transparent}#bookly-tbs .table-condensed>tbody>tr>td,#bookly-tbs .table-condensed>tbody>tr>th,#bookly-tbs .table-condensed>tfoot>tr>td,#bookly-tbs .table-condensed>tfoot>tr>th,#bookly-tbs .table-condensed>thead>tr>td,#bookly-tbs .table-condensed>thead>tr>th{padding:5px}#bookly-tbs .table-bordered{border:1px solid #d9dee4}#bookly-tbs .table-bordered>tbody>tr>td,#bookly-tbs .table-bordered>tbody>tr>th,#bookly-tbs .table-bordered>tfoot>tr>td,#bookly-tbs .table-bordered>tfoot>tr>th,#bookly-tbs .table-bordered>thead>tr>td,#bookly-tbs .table-bordered>thead>tr>th{border:1px solid #d9dee4}#bookly-tbs .table-bordered>thead>tr>td,#bookly-tbs .table-bordered>thead>tr>th{border-bottom-width:2px}#bookly-tbs .table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}#bookly-tbs .table-hover>tbody>tr:hover{background-color:#f5f5f5}#bookly-tbs table col[class*=col-]{position:static;display:table-column;float:none}#bookly-tbs table td[class*=col-],#bookly-tbs table th[class*=col-]{position:static;display:table-cell;float:none}#bookly-tbs .table>tbody>tr.active>td,#bookly-tbs .table>tbody>tr.active>th,#bookly-tbs .table>tbody>tr>td.active,#bookly-tbs .table>tbody>tr>th.active,#bookly-tbs .table>tfoot>tr.active>td,#bookly-tbs .table>tfoot>tr.active>th,#bookly-tbs .table>tfoot>tr>td.active,#bookly-tbs .table>tfoot>tr>th.active,#bookly-tbs .table>thead>tr.active>td,#bookly-tbs .table>thead>tr.active>th,#bookly-tbs .table>thead>tr>td.active,#bookly-tbs .table>thead>tr>th.active{background-color:#f5f5f5}#bookly-tbs .table-hover>tbody>tr.active:hover>td,#bookly-tbs .table-hover>tbody>tr.active:hover>th,#bookly-tbs .table-hover>tbody>tr:hover>.active,#bookly-tbs .table-hover>tbody>tr>td.active:hover,#bookly-tbs .table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}#bookly-tbs .table>tbody>tr.success>td,#bookly-tbs .table>tbody>tr.success>th,#bookly-tbs .table>tbody>tr>td.success,#bookly-tbs .table>tbody>tr>th.success,#bookly-tbs .table>tfoot>tr.success>td,#bookly-tbs .table>tfoot>tr.success>th,#bookly-tbs .table>tfoot>tr>td.success,#bookly-tbs .table>tfoot>tr>th.success,#bookly-tbs .table>thead>tr.success>td,#bookly-tbs .table>thead>tr.success>th,#bookly-tbs .table>thead>tr>td.success,#bookly-tbs .table>thead>tr>th.success{background-color:#dff0d8}#bookly-tbs .table-hover>tbody>tr.success:hover>td,#bookly-tbs .table-hover>tbody>tr.success:hover>th,#bookly-tbs .table-hover>tbody>tr:hover>.success,#bookly-tbs .table-hover>tbody>tr>td.success:hover,#bookly-tbs .table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}#bookly-tbs .table>tbody>tr.info>td,#bookly-tbs .table>tbody>tr.info>th,#bookly-tbs .table>tbody>tr>td.info,#bookly-tbs .table>tbody>tr>th.info,#bookly-tbs .table>tfoot>tr.info>td,#bookly-tbs .table>tfoot>tr.info>th,#bookly-tbs .table>tfoot>tr>td.info,#bookly-tbs .table>tfoot>tr>th.info,#bookly-tbs .table>thead>tr.info>td,#bookly-tbs .table>thead>tr.info>th,#bookly-tbs .table>thead>tr>td.info,#bookly-tbs .table>thead>tr>th.info{background-color:#d9edf7}#bookly-tbs .table-hover>tbody>tr.info:hover>td,#bookly-tbs .table-hover>tbody>tr.info:hover>th,#bookly-tbs .table-hover>tbody>tr:hover>.info,#bookly-tbs .table-hover>tbody>tr>td.info:hover,#bookly-tbs .table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}#bookly-tbs .table>tbody>tr.warning>td,#bookly-tbs .table>tbody>tr.warning>th,#bookly-tbs .table>tbody>tr>td.warning,#bookly-tbs .table>tbody>tr>th.warning,#bookly-tbs .table>tfoot>tr.warning>td,#bookly-tbs .table>tfoot>tr.warning>th,#bookly-tbs .table>tfoot>tr>td.warning,#bookly-tbs .table>tfoot>tr>th.warning,#bookly-tbs .table>thead>tr.warning>td,#bookly-tbs .table>thead>tr.warning>th,#bookly-tbs .table>thead>tr>td.warning,#bookly-tbs .table>thead>tr>th.warning{background-color:#fcf8e3}#bookly-tbs .table-hover>tbody>tr.warning:hover>td,#bookly-tbs .table-hover>tbody>tr.warning:hover>th,#bookly-tbs .table-hover>tbody>tr:hover>.warning,#bookly-tbs .table-hover>tbody>tr>td.warning:hover,#bookly-tbs .table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}#bookly-tbs .table>tbody>tr.danger>td,#bookly-tbs .table>tbody>tr.danger>th,#bookly-tbs .table>tbody>tr>td.danger,#bookly-tbs .table>tbody>tr>th.danger,#bookly-tbs .table>tfoot>tr.danger>td,#bookly-tbs .table>tfoot>tr.danger>th,#bookly-tbs .table>tfoot>tr>td.danger,#bookly-tbs .table>tfoot>tr>th.danger,#bookly-tbs .table>thead>tr.danger>td,#bookly-tbs .table>thead>tr.danger>th,#bookly-tbs .table>thead>tr>td.danger,#bookly-tbs .table>thead>tr>th.danger{background-color:#f2dede}#bookly-tbs .table-hover>tbody>tr.danger:hover>td,#bookly-tbs .table-hover>tbody>tr.danger:hover>th,#bookly-tbs .table-hover>tbody>tr:hover>.danger,#bookly-tbs .table-hover>tbody>tr>td.danger:hover,#bookly-tbs .table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}#bookly-tbs .table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){#bookly-tbs .table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #d9dee4}#bookly-tbs .table-responsive>.table{margin-bottom:0}#bookly-tbs .table-responsive>.table>tbody>tr>td,#bookly-tbs .table-responsive>.table>tbody>tr>th,#bookly-tbs .table-responsive>.table>tfoot>tr>td,#bookly-tbs .table-responsive>.table>tfoot>tr>th,#bookly-tbs .table-responsive>.table>thead>tr>td,#bookly-tbs .table-responsive>.table>thead>tr>th{white-space:nowrap}#bookly-tbs .table-responsive>.table-bordered{border:0}#bookly-tbs .table-responsive>.table-bordered>tbody>tr>td:first-child,#bookly-tbs .table-responsive>.table-bordered>tbody>tr>th:first-child,#bookly-tbs .table-responsive>.table-bordered>tfoot>tr>td:first-child,#bookly-tbs .table-responsive>.table-bordered>tfoot>tr>th:first-child,#bookly-tbs .table-responsive>.table-bordered>thead>tr>td:first-child,#bookly-tbs .table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}#bookly-tbs .table-responsive>.table-bordered>tbody>tr>td:last-child,#bookly-tbs .table-responsive>.table-bordered>tbody>tr>th:last-child,#bookly-tbs .table-responsive>.table-bordered>tfoot>tr>td:last-child,#bookly-tbs .table-responsive>.table-bordered>tfoot>tr>th:last-child,#bookly-tbs .table-responsive>.table-bordered>thead>tr>td:last-child,#bookly-tbs .table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}#bookly-tbs .table-responsive>.table-bordered>tbody>tr:last-child>td,#bookly-tbs .table-responsive>.table-bordered>tbody>tr:last-child>th,#bookly-tbs .table-responsive>.table-bordered>tfoot>tr:last-child>td,#bookly-tbs .table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}#bookly-tbs fieldset{min-width:0;padding:0;margin:0;border:0}#bookly-tbs legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#5b6470;border:0;border-bottom:1px solid #e8ebf0}#bookly-tbs label{display:inline-block;max-width:100%;margin-bottom:7px;font-weight:700}#bookly-tbs input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#bookly-tbs input[type=checkbox],#bookly-tbs input[type=radio]{margin:3px 0 0;margin-top:1px\9;line-height:normal}#bookly-tbs input[type=file]{display:block}#bookly-tbs input[type=range]{display:block;width:100%}#bookly-tbs select[multiple],#bookly-tbs select[size]{height:auto}#bookly-tbs input[type=file]:focus,#bookly-tbs input[type=checkbox]:focus,#bookly-tbs input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#bookly-tbs output{display:block;padding-top:7px;font-size:15px;line-height:1.4;color:#3e424a}#bookly-tbs .form-control{display:block;width:100%;height:35px;padding:6px 12px;font-size:15px;line-height:1.4;color:#3e424a;background-color:#fff;background-image:none;border:1px solid #d9dee4;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,0);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}#bookly-tbs .form-control:focus{border-color:#08c;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0),0 0 8px rgba(0,136,204,0);box-shadow:inset 0 1px 1px rgba(0,0,0,0),0 0 8px rgba(0,136,204,0)}#bookly-tbs .form-control::-moz-placeholder{color:#8a929e;opacity:1}#bookly-tbs .form-control:-ms-input-placeholder{color:#8a929e}#bookly-tbs .form-control::-webkit-input-placeholder{color:#8a929e}#bookly-tbs .form-control::-ms-expand{background-color:transparent;border:0}#bookly-tbs .form-control[disabled],#bookly-tbs .form-control[readonly],#bookly-tbs fieldset[disabled] .form-control{background-color:rgba(232,235,240,.7);opacity:1}#bookly-tbs .form-control[disabled],#bookly-tbs fieldset[disabled] .form-control{cursor:not-allowed}#bookly-tbs textarea.form-control{height:auto}#bookly-tbs input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){#bookly-tbs input[type=date].form-control,#bookly-tbs input[type=time].form-control,#bookly-tbs input[type=datetime-local].form-control,#bookly-tbs input[type=month].form-control{line-height:35px}#bookly-tbs .input-group-sm input[type=date],#bookly-tbs .input-group-sm input[type=time],#bookly-tbs .input-group-sm input[type=datetime-local],#bookly-tbs .input-group-sm input[type=month],#bookly-tbs input[type=date].input-sm,#bookly-tbs input[type=time].input-sm,#bookly-tbs input[type=datetime-local].input-sm,#bookly-tbs input[type=month].input-sm{line-height:32px}#bookly-tbs .input-group-lg input[type=date],#bookly-tbs .input-group-lg input[type=time],#bookly-tbs .input-group-lg input[type=datetime-local],#bookly-tbs .input-group-lg input[type=month],#bookly-tbs input[type=date].input-lg,#bookly-tbs input[type=time].input-lg,#bookly-tbs input[type=datetime-local].input-lg,#bookly-tbs input[type=month].input-lg{line-height:46px}}#bookly-tbs .form-group{margin-bottom:20px}#bookly-tbs .checkbox,#bookly-tbs .radio{position:relative;display:block;margin-top:6px;margin-bottom:7px}#bookly-tbs .checkbox label,#bookly-tbs .radio label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}#bookly-tbs .checkbox input[type=checkbox],#bookly-tbs .checkbox-inline input[type=checkbox],#bookly-tbs .radio input[type=radio],#bookly-tbs .radio-inline input[type=radio]{position:absolute;margin-top:3px\9;margin-left:-20px}#bookly-tbs .checkbox+.checkbox,#bookly-tbs .radio+.radio{margin-top:-5px}#bookly-tbs .checkbox-inline,#bookly-tbs .radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}#bookly-tbs .checkbox-inline+.checkbox-inline,#bookly-tbs .radio-inline+.radio-inline{margin-top:0;margin-left:10px}#bookly-tbs fieldset[disabled] input[type=checkbox],#bookly-tbs fieldset[disabled] input[type=radio],#bookly-tbs input[type=checkbox].disabled,#bookly-tbs input[type=checkbox][disabled],#bookly-tbs input[type=radio].disabled,#bookly-tbs input[type=radio][disabled]{cursor:not-allowed}#bookly-tbs .checkbox-inline.disabled,#bookly-tbs .radio-inline.disabled,#bookly-tbs fieldset[disabled] .checkbox-inline,#bookly-tbs fieldset[disabled] .radio-inline{cursor:not-allowed}#bookly-tbs .checkbox.disabled label,#bookly-tbs .radio.disabled label,#bookly-tbs fieldset[disabled] .checkbox label,#bookly-tbs fieldset[disabled] .radio label{cursor:not-allowed}#bookly-tbs .form-control-static{min-height:36px;padding-top:7px;padding-bottom:7px;margin-bottom:0}#bookly-tbs .form-control-static.input-lg,#bookly-tbs .form-control-static.input-sm{padding-right:0;padding-left:0}#bookly-tbs .input-sm{height:32px;padding:5px 10px;font-size:13px;line-height:1.53846154;border-radius:3px}#bookly-tbs select.input-sm{height:32px;line-height:32px}#bookly-tbs select[multiple].input-sm,#bookly-tbs textarea.input-sm{height:auto}#bookly-tbs .form-group-sm .form-control{height:32px;padding:5px 10px;font-size:13px;line-height:1.53846154;border-radius:3px}#bookly-tbs .form-group-sm select.form-control{height:32px;line-height:32px}#bookly-tbs .form-group-sm select[multiple].form-control,#bookly-tbs .form-group-sm textarea.form-control{height:auto}#bookly-tbs .form-group-sm .form-control-static{height:32px;min-height:34px;padding:6px 10px;font-size:13px;line-height:1.53846154}#bookly-tbs .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}#bookly-tbs select.input-lg{height:46px;line-height:46px}#bookly-tbs select[multiple].input-lg,#bookly-tbs textarea.input-lg{height:auto}#bookly-tbs .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}#bookly-tbs .form-group-lg select.form-control{height:46px;line-height:46px}#bookly-tbs .form-group-lg select[multiple].form-control,#bookly-tbs .form-group-lg textarea.form-control{height:auto}#bookly-tbs .form-group-lg .form-control-static{height:46px;min-height:39px;padding:11px 16px;font-size:18px;line-height:1.3333333}#bookly-tbs .has-feedback{position:relative}#bookly-tbs .has-feedback .form-control{padding-right:43.75px}#bookly-tbs .form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:35px;height:35px;line-height:35px;text-align:center;pointer-events:none}#bookly-tbs .form-group-lg .form-control+.form-control-feedback,#bookly-tbs .input-group-lg+.form-control-feedback,#bookly-tbs .input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}#bookly-tbs .form-group-sm .form-control+.form-control-feedback,#bookly-tbs .input-group-sm+.form-control-feedback,#bookly-tbs .input-sm+.form-control-feedback{width:32px;height:32px;line-height:32px}#bookly-tbs .has-success .checkbox,#bookly-tbs .has-success .checkbox-inline,#bookly-tbs .has-success .control-label,#bookly-tbs .has-success .help-block,#bookly-tbs .has-success .radio,#bookly-tbs .has-success .radio-inline,#bookly-tbs .has-success.checkbox label,#bookly-tbs .has-success.checkbox-inline label,#bookly-tbs .has-success.radio label,#bookly-tbs .has-success.radio-inline label{color:#3c763d}#bookly-tbs .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}#bookly-tbs .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}#bookly-tbs .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}#bookly-tbs .has-success .form-control-feedback{color:#3c763d}#bookly-tbs .has-warning .checkbox,#bookly-tbs .has-warning .checkbox-inline,#bookly-tbs .has-warning .control-label,#bookly-tbs .has-warning .help-block,#bookly-tbs .has-warning .radio,#bookly-tbs .has-warning .radio-inline,#bookly-tbs .has-warning.checkbox label,#bookly-tbs .has-warning.checkbox-inline label,#bookly-tbs .has-warning.radio label,#bookly-tbs .has-warning.radio-inline label{color:#8a6d3b}#bookly-tbs .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}#bookly-tbs .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}#bookly-tbs .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}#bookly-tbs .has-warning .form-control-feedback{color:#8a6d3b}#bookly-tbs .has-error .checkbox,#bookly-tbs .has-error .checkbox-inline,#bookly-tbs .has-error .control-label,#bookly-tbs .has-error .help-block,#bookly-tbs .has-error .radio,#bookly-tbs .has-error .radio-inline,#bookly-tbs .has-error.checkbox label,#bookly-tbs .has-error.checkbox-inline label,#bookly-tbs .has-error.radio label,#bookly-tbs .has-error.radio-inline label{color:#a94442}#bookly-tbs .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}#bookly-tbs .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}#bookly-tbs .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}#bookly-tbs .has-error .form-control-feedback{color:#a94442}#bookly-tbs .has-feedback label~.form-control-feedback{top:26px}#bookly-tbs .has-feedback label.sr-only~.form-control-feedback{top:0}#bookly-tbs .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#8a929e}@media (min-width:768px){#bookly-tbs .form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}#bookly-tbs .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}#bookly-tbs .form-inline .form-control-static{display:inline-block}#bookly-tbs .form-inline .input-group{display:inline-table;vertical-align:middle}#bookly-tbs .form-inline .input-group .form-control,#bookly-tbs .form-inline .input-group .input-group-addon,#bookly-tbs .form-inline .input-group .input-group-btn{width:auto}#bookly-tbs .form-inline .input-group>.form-control{width:100%}#bookly-tbs .form-inline .control-label{margin-bottom:0;vertical-align:middle}#bookly-tbs .form-inline .checkbox,#bookly-tbs .form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}#bookly-tbs .form-inline .has-feedback .form-control-feedback{top:0}}#bookly-tbs .form-horizontal .checkbox,#bookly-tbs .form-horizontal .checkbox-inline,#bookly-tbs .form-horizontal .radio,#bookly-tbs .form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}#bookly-tbs .form-horizontal .checkbox,#bookly-tbs .form-horizontal .radio{min-height:28px}#bookly-tbs .form-horizontal .form-group{margin-right:-10px;margin-left:-10px}@media (min-width:768px){#bookly-tbs .form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}#bookly-tbs .form-horizontal .has-feedback .form-control-feedback{right:10px}@media (min-width:768px){#bookly-tbs .form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){#bookly-tbs .form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:13px}}#bookly-tbs .btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:15px;font-weight:400;line-height:1.4;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}#bookly-tbs .btn.active.focus,#bookly-tbs .btn.active:focus,#bookly-tbs .btn.focus,#bookly-tbs .btn:active.focus,#bookly-tbs .btn:active:focus,#bookly-tbs .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#bookly-tbs .btn.focus,#bookly-tbs .btn:focus,#bookly-tbs .btn:hover{color:#3e424a;text-decoration:none}#bookly-tbs .btn.active,#bookly-tbs .btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}#bookly-tbs .btn.disabled,#bookly-tbs .btn[disabled],#bookly-tbs fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}#bookly-tbs a.btn.disabled,#bookly-tbs fieldset[disabled] a.btn{pointer-events:none}#bookly-tbs .btn-default{color:#3e424a;background-color:#fff;border-color:#d9dee4}#bookly-tbs .btn-default.focus,#bookly-tbs .btn-default:focus{color:#3e424a;background-color:#e6e6e6;border-color:#8e9daf}#bookly-tbs .btn-default:hover{color:#3e424a;background-color:#e6e6e6;border-color:#b5bfcb}#bookly-tbs .btn-default.active,#bookly-tbs .btn-default:active,#bookly-tbs .open>.dropdown-toggle.btn-default{color:#3e424a;background-color:#e6e6e6;border-color:#b5bfcb}#bookly-tbs .btn-default.active.focus,#bookly-tbs .btn-default.active:focus,#bookly-tbs .btn-default.active:hover,#bookly-tbs .btn-default:active.focus,#bookly-tbs .btn-default:active:focus,#bookly-tbs .btn-default:active:hover,#bookly-tbs .open>.dropdown-toggle.btn-default.focus,#bookly-tbs .open>.dropdown-toggle.btn-default:focus,#bookly-tbs .open>.dropdown-toggle.btn-default:hover{color:#3e424a;background-color:#d4d4d4;border-color:#8e9daf}#bookly-tbs .btn-default.active,#bookly-tbs .btn-default:active,#bookly-tbs .open>.dropdown-toggle.btn-default{background-image:none}#bookly-tbs .btn-default.disabled.focus,#bookly-tbs .btn-default.disabled:focus,#bookly-tbs .btn-default.disabled:hover,#bookly-tbs .btn-default[disabled].focus,#bookly-tbs .btn-default[disabled]:focus,#bookly-tbs .btn-default[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-default.focus,#bookly-tbs fieldset[disabled] .btn-default:focus,#bookly-tbs fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#d9dee4}#bookly-tbs .btn-default .badge{color:#fff;background-color:#3e424a}#bookly-tbs .btn-primary{color:#fff;background-color:#08c;border-color:#08c}#bookly-tbs .btn-primary.focus,#bookly-tbs .btn-primary:focus{color:#fff;background-color:#069;border-color:#00334d}#bookly-tbs .btn-primary:hover{color:#fff;background-color:#069;border-color:#005f8f}#bookly-tbs .btn-primary.active,#bookly-tbs .btn-primary:active,#bookly-tbs .open>.dropdown-toggle.btn-primary{color:#fff;background-color:#069;border-color:#005f8f}#bookly-tbs .btn-primary.active.focus,#bookly-tbs .btn-primary.active:focus,#bookly-tbs .btn-primary.active:hover,#bookly-tbs .btn-primary:active.focus,#bookly-tbs .btn-primary:active:focus,#bookly-tbs .btn-primary:active:hover,#bookly-tbs .open>.dropdown-toggle.btn-primary.focus,#bookly-tbs .open>.dropdown-toggle.btn-primary:focus,#bookly-tbs .open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#004e75;border-color:#00334d}#bookly-tbs .btn-primary.active,#bookly-tbs .btn-primary:active,#bookly-tbs .open>.dropdown-toggle.btn-primary{background-image:none}#bookly-tbs .btn-primary.disabled.focus,#bookly-tbs .btn-primary.disabled:focus,#bookly-tbs .btn-primary.disabled:hover,#bookly-tbs .btn-primary[disabled].focus,#bookly-tbs .btn-primary[disabled]:focus,#bookly-tbs .btn-primary[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-primary.focus,#bookly-tbs fieldset[disabled] .btn-primary:focus,#bookly-tbs fieldset[disabled] .btn-primary:hover{background-color:#08c;border-color:#08c}#bookly-tbs .btn-primary .badge{color:#08c;background-color:#fff}#bookly-tbs .btn-success{color:#fff;background-color:#5cb85c;border-color:#5cb85c}#bookly-tbs .btn-success.focus,#bookly-tbs .btn-success:focus{color:#fff;background-color:#449d44;border-color:#2d672d}#bookly-tbs .btn-success:hover{color:#fff;background-color:#449d44;border-color:#419641}#bookly-tbs .btn-success.active,#bookly-tbs .btn-success:active,#bookly-tbs .open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#419641}#bookly-tbs .btn-success.active.focus,#bookly-tbs .btn-success.active:focus,#bookly-tbs .btn-success.active:hover,#bookly-tbs .btn-success:active.focus,#bookly-tbs .btn-success:active:focus,#bookly-tbs .btn-success:active:hover,#bookly-tbs .open>.dropdown-toggle.btn-success.focus,#bookly-tbs .open>.dropdown-toggle.btn-success:focus,#bookly-tbs .open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#2d672d}#bookly-tbs .btn-success.active,#bookly-tbs .btn-success:active,#bookly-tbs .open>.dropdown-toggle.btn-success{background-image:none}#bookly-tbs .btn-success.disabled.focus,#bookly-tbs .btn-success.disabled:focus,#bookly-tbs .btn-success.disabled:hover,#bookly-tbs .btn-success[disabled].focus,#bookly-tbs .btn-success[disabled]:focus,#bookly-tbs .btn-success[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-success.focus,#bookly-tbs fieldset[disabled] .btn-success:focus,#bookly-tbs fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#5cb85c}#bookly-tbs .btn-success .badge{color:#5cb85c;background-color:#fff}#bookly-tbs .btn-info{color:#fff;background-color:#5bc0de;border-color:#31b0d5}#bookly-tbs .btn-info.focus,#bookly-tbs .btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#175b70}#bookly-tbs .btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#2289a7}#bookly-tbs .btn-info.active,#bookly-tbs .btn-info:active,#bookly-tbs .open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#2289a7}#bookly-tbs .btn-info.active.focus,#bookly-tbs .btn-info.active:focus,#bookly-tbs .btn-info.active:hover,#bookly-tbs .btn-info:active.focus,#bookly-tbs .btn-info:active:focus,#bookly-tbs .btn-info:active:hover,#bookly-tbs .open>.dropdown-toggle.btn-info.focus,#bookly-tbs .open>.dropdown-toggle.btn-info:focus,#bookly-tbs .open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#175b70}#bookly-tbs .btn-info.active,#bookly-tbs .btn-info:active,#bookly-tbs .open>.dropdown-toggle.btn-info{background-image:none}#bookly-tbs .btn-info.disabled.focus,#bookly-tbs .btn-info.disabled:focus,#bookly-tbs .btn-info.disabled:hover,#bookly-tbs .btn-info[disabled].focus,#bookly-tbs .btn-info[disabled]:focus,#bookly-tbs .btn-info[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-info.focus,#bookly-tbs fieldset[disabled] .btn-info:focus,#bookly-tbs fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#31b0d5}#bookly-tbs .btn-info .badge{color:#5bc0de;background-color:#fff}#bookly-tbs .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}#bookly-tbs .btn-warning.focus,#bookly-tbs .btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#b06d0f}#bookly-tbs .btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#eb9316}#bookly-tbs .btn-warning.active,#bookly-tbs .btn-warning:active,#bookly-tbs .open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#eb9316}#bookly-tbs .btn-warning.active.focus,#bookly-tbs .btn-warning.active:focus,#bookly-tbs .btn-warning.active:hover,#bookly-tbs .btn-warning:active.focus,#bookly-tbs .btn-warning:active:focus,#bookly-tbs .btn-warning:active:hover,#bookly-tbs .open>.dropdown-toggle.btn-warning.focus,#bookly-tbs .open>.dropdown-toggle.btn-warning:focus,#bookly-tbs .open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#b06d0f}#bookly-tbs .btn-warning.active,#bookly-tbs .btn-warning:active,#bookly-tbs .open>.dropdown-toggle.btn-warning{background-image:none}#bookly-tbs .btn-warning.disabled.focus,#bookly-tbs .btn-warning.disabled:focus,#bookly-tbs .btn-warning.disabled:hover,#bookly-tbs .btn-warning[disabled].focus,#bookly-tbs .btn-warning[disabled]:focus,#bookly-tbs .btn-warning[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-warning.focus,#bookly-tbs fieldset[disabled] .btn-warning:focus,#bookly-tbs fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#f0ad4e}#bookly-tbs .btn-warning .badge{color:#f0ad4e;background-color:#fff}#bookly-tbs .btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}#bookly-tbs .btn-danger.focus,#bookly-tbs .btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#8b211e}#bookly-tbs .btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#c12e2a}#bookly-tbs .btn-danger.active,#bookly-tbs .btn-danger:active,#bookly-tbs .open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#c12e2a}#bookly-tbs .btn-danger.active.focus,#bookly-tbs .btn-danger.active:focus,#bookly-tbs .btn-danger.active:hover,#bookly-tbs .btn-danger:active.focus,#bookly-tbs .btn-danger:active:focus,#bookly-tbs .btn-danger:active:hover,#bookly-tbs .open>.dropdown-toggle.btn-danger.focus,#bookly-tbs .open>.dropdown-toggle.btn-danger:focus,#bookly-tbs .open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#8b211e}#bookly-tbs .btn-danger.active,#bookly-tbs .btn-danger:active,#bookly-tbs .open>.dropdown-toggle.btn-danger{background-image:none}#bookly-tbs .btn-danger.disabled.focus,#bookly-tbs .btn-danger.disabled:focus,#bookly-tbs .btn-danger.disabled:hover,#bookly-tbs .btn-danger[disabled].focus,#bookly-tbs .btn-danger[disabled]:focus,#bookly-tbs .btn-danger[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-danger.focus,#bookly-tbs fieldset[disabled] .btn-danger:focus,#bookly-tbs fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d9534f}#bookly-tbs .btn-danger .badge{color:#d9534f;background-color:#fff}#bookly-tbs .btn-link{font-weight:400;color:#08c;border-radius:0}#bookly-tbs .btn-link,#bookly-tbs .btn-link.active,#bookly-tbs .btn-link:active,#bookly-tbs .btn-link[disabled],#bookly-tbs fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .btn-link,#bookly-tbs .btn-link:active,#bookly-tbs .btn-link:focus,#bookly-tbs .btn-link:hover{border-color:transparent}#bookly-tbs .btn-link:focus,#bookly-tbs .btn-link:hover{color:#005580;text-decoration:none;background-color:transparent}#bookly-tbs .btn-link[disabled]:focus,#bookly-tbs .btn-link[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-link:focus,#bookly-tbs fieldset[disabled] .btn-link:hover{color:#8a929e;text-decoration:none}#bookly-tbs .btn-group-lg>.btn,#bookly-tbs .btn-lg{padding:10px 16px;font-size:15px;line-height:1.3333333;border-radius:4px}#bookly-tbs .btn-group-sm>.btn,#bookly-tbs .btn-sm{padding:5px 10px;font-size:13px;line-height:1.53846154;border-radius:3px}#bookly-tbs .btn-group-xs>.btn,#bookly-tbs .btn-xs{padding:1px 5px;font-size:13px;line-height:1.53846154;border-radius:3px}#bookly-tbs .btn-block{display:block;width:100%}#bookly-tbs .btn-block+.btn-block{margin-top:5px}#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{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}#bookly-tbs .fade.in{opacity:1}#bookly-tbs .collapse{display:none}#bookly-tbs .collapse.in{display:block}#bookly-tbs tr.collapse.in{display:table-row}#bookly-tbs tbody.collapse.in{display:table-row-group}#bookly-tbs .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}#bookly-tbs .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:5px dashed;border-top:5px solid\9;border-right:5px solid transparent;border-left:5px solid transparent}#bookly-tbs .dropdown,#bookly-tbs .dropup{position:relative}#bookly-tbs .dropdown-toggle:focus{outline:0}#bookly-tbs .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:15px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}#bookly-tbs .dropdown-menu.pull-right{right:0;left:auto}#bookly-tbs .dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}#bookly-tbs .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.4;color:#5b6470;white-space:nowrap}#bookly-tbs .dropdown-menu>li>a:focus,#bookly-tbs .dropdown-menu>li>a:hover{color:#505762;text-decoration:none;background-color:#f5f5f5}#bookly-tbs .dropdown-menu>.active>a,#bookly-tbs .dropdown-menu>.active>a:focus,#bookly-tbs .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#08c;outline:0}#bookly-tbs .dropdown-menu>.disabled>a,#bookly-tbs .dropdown-menu>.disabled>a:focus,#bookly-tbs .dropdown-menu>.disabled>a:hover{color:#d9dee4}#bookly-tbs .dropdown-menu>.disabled>a:focus,#bookly-tbs .dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}#bookly-tbs .open>.dropdown-menu{display:block}#bookly-tbs .open>a{outline:0}#bookly-tbs .dropdown-menu-right{right:0;left:auto}#bookly-tbs .dropdown-menu-left{right:auto;left:0}#bookly-tbs .dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.4;color:#d9dee4;white-space:nowrap}#bookly-tbs .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}#bookly-tbs .pull-right>.dropdown-menu{right:0;left:auto}#bookly-tbs .dropup .caret,#bookly-tbs .navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:5px dashed;border-bottom:5px solid\9}#bookly-tbs .dropup .dropdown-menu,#bookly-tbs .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){#bookly-tbs .navbar-right .dropdown-menu{right:0;left:auto}#bookly-tbs .navbar-right .dropdown-menu-left{right:auto;left:0}}#bookly-tbs .btn-group,#bookly-tbs .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}#bookly-tbs .btn-group-vertical>.btn,#bookly-tbs .btn-group>.btn{position:relative;float:left}#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-vertical>.btn:hover,#bookly-tbs .btn-group>.btn.active,#bookly-tbs .btn-group>.btn:active,#bookly-tbs .btn-group>.btn:focus,#bookly-tbs .btn-group>.btn:hover{z-index:2}#bookly-tbs .btn-group .btn+.btn,#bookly-tbs .btn-group .btn+.btn-group,#bookly-tbs .btn-group .btn-group+.btn,#bookly-tbs .btn-group .btn-group+.btn-group{margin-left:-1px}#bookly-tbs .btn-toolbar{margin-left:-5px}#bookly-tbs .btn-toolbar .btn,#bookly-tbs .btn-toolbar .btn-group,#bookly-tbs .btn-toolbar .input-group{float:left}#bookly-tbs .btn-toolbar>.btn,#bookly-tbs .btn-toolbar>.btn-group,#bookly-tbs .btn-toolbar>.input-group{margin-left:5px}#bookly-tbs .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}#bookly-tbs .btn-group>.btn:first-child{margin-left:0}#bookly-tbs .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .btn-group>.btn:last-child:not(:first-child),#bookly-tbs .btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .btn-group>.btn-group{float:left}#bookly-tbs .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}#bookly-tbs .btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,#bookly-tbs .btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .btn-group .dropdown-toggle:active,#bookly-tbs .btn-group.open .dropdown-toggle{outline:0}#bookly-tbs .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}#bookly-tbs .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}#bookly-tbs .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}#bookly-tbs .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .btn .caret{margin-left:0}#bookly-tbs .btn-lg .caret{border-width:6px 6px 0;border-bottom-width:0}#bookly-tbs .dropup .btn-lg .caret{border-width:0 6px 6px}#bookly-tbs .btn-group-vertical>.btn,#bookly-tbs .btn-group-vertical>.btn-group,#bookly-tbs .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}#bookly-tbs .btn-group-vertical>.btn-group>.btn{float:none}#bookly-tbs .btn-group-vertical>.btn+.btn,#bookly-tbs .btn-group-vertical>.btn+.btn-group,#bookly-tbs .btn-group-vertical>.btn-group+.btn,#bookly-tbs .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}#bookly-tbs .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}#bookly-tbs .btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}#bookly-tbs .btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}#bookly-tbs .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}#bookly-tbs .btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,#bookly-tbs .btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}#bookly-tbs .btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}#bookly-tbs .btn-group-justified>.btn,#bookly-tbs .btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}#bookly-tbs .btn-group-justified>.btn-group .btn{width:100%}#bookly-tbs .btn-group-justified>.btn-group .dropdown-menu{left:auto}#bookly-tbs [data-toggle=buttons]>.btn input[type=checkbox],#bookly-tbs [data-toggle=buttons]>.btn input[type=radio],#bookly-tbs [data-toggle=buttons]>.btn-group>.btn input[type=checkbox],#bookly-tbs [data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}#bookly-tbs .input-group{position:relative;display:table;border-collapse:separate}#bookly-tbs .input-group[class*=col-]{float:none;padding-right:0;padding-left:0}#bookly-tbs .input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}#bookly-tbs .input-group .form-control:focus{z-index:3}#bookly-tbs .input-group-lg>.form-control,#bookly-tbs .input-group-lg>.input-group-addon,#bookly-tbs .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}#bookly-tbs select.input-group-lg>.form-control,#bookly-tbs select.input-group-lg>.input-group-addon,#bookly-tbs select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}#bookly-tbs select[multiple].input-group-lg>.form-control,#bookly-tbs select[multiple].input-group-lg>.input-group-addon,#bookly-tbs select[multiple].input-group-lg>.input-group-btn>.btn,#bookly-tbs textarea.input-group-lg>.form-control,#bookly-tbs textarea.input-group-lg>.input-group-addon,#bookly-tbs textarea.input-group-lg>.input-group-btn>.btn{height:auto}#bookly-tbs .input-group-sm>.form-control,#bookly-tbs .input-group-sm>.input-group-addon,#bookly-tbs .input-group-sm>.input-group-btn>.btn{height:32px;padding:5px 10px;font-size:13px;line-height:1.53846154;border-radius:3px}#bookly-tbs select.input-group-sm>.form-control,#bookly-tbs select.input-group-sm>.input-group-addon,#bookly-tbs select.input-group-sm>.input-group-btn>.btn{height:32px;line-height:32px}#bookly-tbs select[multiple].input-group-sm>.form-control,#bookly-tbs select[multiple].input-group-sm>.input-group-addon,#bookly-tbs select[multiple].input-group-sm>.input-group-btn>.btn,#bookly-tbs textarea.input-group-sm>.form-control,#bookly-tbs textarea.input-group-sm>.input-group-addon,#bookly-tbs textarea.input-group-sm>.input-group-btn>.btn{height:auto}#bookly-tbs .input-group .form-control,#bookly-tbs .input-group-addon,#bookly-tbs .input-group-btn{display:table-cell}#bookly-tbs .input-group .form-control:not(:first-child):not(:last-child),#bookly-tbs .input-group-addon:not(:first-child):not(:last-child),#bookly-tbs .input-group-btn:not(:first-child):not(:last-child){border-radius:0}#bookly-tbs .input-group-addon,#bookly-tbs .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}#bookly-tbs .input-group-addon{padding:6px 12px;font-size:15px;font-weight:400;line-height:1;color:#3e424a;text-align:center;background-color:#e8ebf0;border:1px solid #d9dee4;border-radius:4px}#bookly-tbs .input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:3px}#bookly-tbs .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}#bookly-tbs .input-group-addon input[type=checkbox],#bookly-tbs .input-group-addon input[type=radio]{margin-top:0}#bookly-tbs .input-group .form-control:first-child,#bookly-tbs .input-group-addon:first-child,#bookly-tbs .input-group-btn:first-child>.btn,#bookly-tbs .input-group-btn:first-child>.btn-group>.btn,#bookly-tbs .input-group-btn:first-child>.dropdown-toggle,#bookly-tbs .input-group-btn:last-child>.btn-group:not(:last-child)>.btn,#bookly-tbs .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .input-group-addon:first-child{border-right:0}#bookly-tbs .input-group .form-control:last-child,#bookly-tbs .input-group-addon:last-child,#bookly-tbs .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,#bookly-tbs .input-group-btn:first-child>.btn:not(:first-child),#bookly-tbs .input-group-btn:last-child>.btn,#bookly-tbs .input-group-btn:last-child>.btn-group>.btn,#bookly-tbs .input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .input-group-addon:last-child{border-left:0}#bookly-tbs .input-group-btn{position:relative;font-size:0;white-space:nowrap}#bookly-tbs .input-group-btn>.btn{position:relative}#bookly-tbs .input-group-btn>.btn+.btn{margin-left:-1px}#bookly-tbs .input-group-btn>.btn:active,#bookly-tbs .input-group-btn>.btn:focus,#bookly-tbs .input-group-btn>.btn:hover{z-index:2}#bookly-tbs .input-group-btn:first-child>.btn,#bookly-tbs .input-group-btn:first-child>.btn-group{margin-right:-1px}#bookly-tbs .input-group-btn:last-child>.btn,#bookly-tbs .input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}#bookly-tbs .nav{padding-left:0;margin-bottom:0;list-style:none}#bookly-tbs .nav>li{position:relative;display:block}#bookly-tbs .nav>li>a{position:relative;display:block;padding:10px 15px}#bookly-tbs .nav>li>a:focus,#bookly-tbs .nav>li>a:hover{text-decoration:none;background-color:#e8ebf0}#bookly-tbs .nav>li.disabled>a{color:#d9dee4}#bookly-tbs .nav>li.disabled>a:focus,#bookly-tbs .nav>li.disabled>a:hover{color:#d9dee4;text-decoration:none;cursor:not-allowed;background-color:transparent}#bookly-tbs .nav .open>a,#bookly-tbs .nav .open>a:focus,#bookly-tbs .nav .open>a:hover{background-color:#e8ebf0;border-color:#08c}#bookly-tbs .nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}#bookly-tbs .nav>li>a>img{max-width:none}#bookly-tbs .nav-tabs{border-bottom:1px solid #d9dee4}#bookly-tbs .nav-tabs>li{float:left;margin-bottom:-1px}#bookly-tbs .nav-tabs>li>a{margin-right:2px;line-height:1.4;border:1px solid transparent;border-radius:4px 4px 0 0}#bookly-tbs .nav-tabs>li>a:hover{border-color:#e8ebf0 #e8ebf0 #d9dee4}#bookly-tbs .nav-tabs>li.active>a,#bookly-tbs .nav-tabs>li.active>a:focus,#bookly-tbs .nav-tabs>li.active>a:hover{color:#8a929e;cursor:default;background-color:transparent;border:1px solid transparent;border-bottom-color:transparent}#bookly-tbs .nav-tabs.nav-justified{width:100%;border-bottom:0}#bookly-tbs .nav-tabs.nav-justified>li{float:none}#bookly-tbs .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}#bookly-tbs .nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:1px){#bookly-tbs .nav-tabs.nav-justified>li{display:table-cell;width:1%}#bookly-tbs .nav-tabs.nav-justified>li>a{margin-bottom:0}}#bookly-tbs .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}#bookly-tbs .nav-tabs.nav-justified>.active>a,#bookly-tbs .nav-tabs.nav-justified>.active>a:focus,#bookly-tbs .nav-tabs.nav-justified>.active>a:hover{border:1px solid #08c}@media (min-width:768px){#bookly-tbs .nav-tabs.nav-justified>li>a{border-bottom:1px solid #d9dee4;border-radius:4px 4px 0 0}#bookly-tbs .nav-tabs.nav-justified>.active>a,#bookly-tbs .nav-tabs.nav-justified>.active>a:focus,#bookly-tbs .nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#08c}}#bookly-tbs .nav-pills>li{float:left}#bookly-tbs .nav-pills>li>a{border-radius:4px}#bookly-tbs .nav-pills>li+li{margin-left:2px}#bookly-tbs .nav-pills>li.active>a,#bookly-tbs .nav-pills>li.active>a:focus,#bookly-tbs .nav-pills>li.active>a:hover{color:#fff;background-color:#08c}#bookly-tbs .nav-stacked>li{float:none}#bookly-tbs .nav-stacked>li+li{margin-top:2px;margin-left:0}#bookly-tbs .nav-justified{width:100%}#bookly-tbs .nav-justified>li{float:none}#bookly-tbs .nav-justified>li>a{margin-bottom:5px;text-align:center}#bookly-tbs .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:1px){#bookly-tbs .nav-justified>li{display:table-cell;width:1%}#bookly-tbs .nav-justified>li>a{margin-bottom:0}}#bookly-tbs .nav-tabs-justified{border-bottom:0}#bookly-tbs .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}#bookly-tbs .nav-tabs-justified>.active>a,#bookly-tbs .nav-tabs-justified>.active>a:focus,#bookly-tbs .nav-tabs-justified>.active>a:hover{border:1px solid #08c}@media (min-width:768px){#bookly-tbs .nav-tabs-justified>li>a{border-bottom:1px solid #d9dee4;border-radius:4px 4px 0 0}#bookly-tbs .nav-tabs-justified>.active>a,#bookly-tbs .nav-tabs-justified>.active>a:focus,#bookly-tbs .nav-tabs-justified>.active>a:hover{border-bottom-color:#08c}}#bookly-tbs .tab-content>.tab-pane{display:none}#bookly-tbs .tab-content>.active{display:block}#bookly-tbs .nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .navbar{position:relative;min-height:50px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){#bookly-tbs .navbar{border-radius:4px}}@media (min-width:768px){#bookly-tbs .navbar-header{float:left}}#bookly-tbs .navbar-collapse{padding-right:10px;padding-left:10px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}#bookly-tbs .navbar-collapse.in{overflow-y:auto}@media (min-width:768px){#bookly-tbs .navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}#bookly-tbs .navbar-collapse.in{overflow-y:visible}#bookly-tbs .navbar-fixed-bottom .navbar-collapse,#bookly-tbs .navbar-fixed-top .navbar-collapse,#bookly-tbs .navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}#bookly-tbs .navbar-fixed-bottom .navbar-collapse,#bookly-tbs .navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){#bookly-tbs .navbar-fixed-bottom .navbar-collapse,#bookly-tbs .navbar-fixed-top .navbar-collapse{max-height:200px}}#bookly-tbs .container-fluid>.navbar-collapse,#bookly-tbs .container-fluid>.navbar-header,#bookly-tbs .container>.navbar-collapse,#bookly-tbs .container>.navbar-header{margin-right:-10px;margin-left:-10px}@media (min-width:768px){#bookly-tbs .container-fluid>.navbar-collapse,#bookly-tbs .container-fluid>.navbar-header,#bookly-tbs .container>.navbar-collapse,#bookly-tbs .container>.navbar-header{margin-right:0;margin-left:0}}#bookly-tbs .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){#bookly-tbs .navbar-static-top{border-radius:0}}#bookly-tbs .navbar-fixed-bottom,#bookly-tbs .navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){#bookly-tbs .navbar-fixed-bottom,#bookly-tbs .navbar-fixed-top{border-radius:0}}#bookly-tbs .navbar-fixed-top{top:0;border-width:0 0 1px}#bookly-tbs .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}#bookly-tbs .navbar-brand{float:left;height:50px;padding:14.5px 10px;font-size:18px;line-height:21px}#bookly-tbs .navbar-brand:focus,#bookly-tbs .navbar-brand:hover{text-decoration:none}#bookly-tbs .navbar-brand>img{display:block}@media (min-width:768px){#bookly-tbs .navbar>.container .navbar-brand,#bookly-tbs .navbar>.container-fluid .navbar-brand{margin-left:-10px}}#bookly-tbs .navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:10px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}#bookly-tbs .navbar-toggle:focus{outline:0}#bookly-tbs .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}#bookly-tbs .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){#bookly-tbs .navbar-toggle{display:none}}#bookly-tbs .navbar-nav{margin:7.25px -10px}#bookly-tbs .navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){#bookly-tbs .navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .navbar-nav .open .dropdown-menu .dropdown-header,#bookly-tbs .navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}#bookly-tbs .navbar-nav .open .dropdown-menu>li>a{line-height:21px}#bookly-tbs .navbar-nav .open .dropdown-menu>li>a:focus,#bookly-tbs .navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){#bookly-tbs .navbar-nav{float:left;margin:0}#bookly-tbs .navbar-nav>li{float:left}#bookly-tbs .navbar-nav>li>a{padding-top:14.5px;padding-bottom:14.5px}}#bookly-tbs .navbar-form{padding:10px 10px;margin-top:7.5px;margin-right:-10px;margin-bottom:7.5px;margin-left:-10px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){#bookly-tbs .navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}#bookly-tbs .navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}#bookly-tbs .navbar-form .form-control-static{display:inline-block}#bookly-tbs .navbar-form .input-group{display:inline-table;vertical-align:middle}#bookly-tbs .navbar-form .input-group .form-control,#bookly-tbs .navbar-form .input-group .input-group-addon,#bookly-tbs .navbar-form .input-group .input-group-btn{width:auto}#bookly-tbs .navbar-form .input-group>.form-control{width:100%}#bookly-tbs .navbar-form .control-label{margin-bottom:0;vertical-align:middle}#bookly-tbs .navbar-form .checkbox,#bookly-tbs .navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}#bookly-tbs .navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){#bookly-tbs .navbar-form .form-group{margin-bottom:5px}#bookly-tbs .navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){#bookly-tbs .navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}#bookly-tbs .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}#bookly-tbs .navbar-btn{margin-top:7.5px;margin-bottom:7.5px}#bookly-tbs .navbar-btn.btn-sm{margin-top:9px;margin-bottom:9px}#bookly-tbs .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}#bookly-tbs .navbar-text{margin-top:14.5px;margin-bottom:14.5px}@media (min-width:768px){#bookly-tbs .navbar-text{float:left;margin-right:10px;margin-left:10px}}@media (min-width:768px){#bookly-tbs .navbar-left{float:left!important}#bookly-tbs .navbar-right{float:right!important;margin-right:-10px}#bookly-tbs .navbar-right~.navbar-right{margin-right:0}}#bookly-tbs .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}#bookly-tbs .navbar-default .navbar-brand{color:#777}#bookly-tbs .navbar-default .navbar-brand:focus,#bookly-tbs .navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}#bookly-tbs .navbar-default .navbar-text{color:#777}#bookly-tbs .navbar-default .navbar-nav>li>a{color:#777}#bookly-tbs .navbar-default .navbar-nav>li>a:focus,#bookly-tbs .navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}#bookly-tbs .navbar-default .navbar-nav>.active>a,#bookly-tbs .navbar-default .navbar-nav>.active>a:focus,#bookly-tbs .navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}#bookly-tbs .navbar-default .navbar-nav>.disabled>a,#bookly-tbs .navbar-default .navbar-nav>.disabled>a:focus,#bookly-tbs .navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}#bookly-tbs .navbar-default .navbar-toggle{border-color:#e8ebf0}#bookly-tbs .navbar-default .navbar-toggle:focus,#bookly-tbs .navbar-default .navbar-toggle:hover{background-color:#e8ebf0}#bookly-tbs .navbar-default .navbar-toggle .icon-bar{background-color:#8a929e}#bookly-tbs .navbar-default .navbar-collapse,#bookly-tbs .navbar-default .navbar-form{border-color:#e7e7e7}#bookly-tbs .navbar-default .navbar-nav>.open>a,#bookly-tbs .navbar-default .navbar-nav>.open>a:focus,#bookly-tbs .navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>.active>a,#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}#bookly-tbs .navbar-default .navbar-link{color:#777}#bookly-tbs .navbar-default .navbar-link:hover{color:#333}#bookly-tbs .navbar-default .btn-link{color:#777}#bookly-tbs .navbar-default .btn-link:focus,#bookly-tbs .navbar-default .btn-link:hover{color:#333}#bookly-tbs .navbar-default .btn-link[disabled]:focus,#bookly-tbs .navbar-default .btn-link[disabled]:hover,#bookly-tbs fieldset[disabled] .navbar-default .btn-link:focus,#bookly-tbs fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}#bookly-tbs .navbar-inverse{background-color:#222;border-color:#080808}#bookly-tbs .navbar-inverse .navbar-brand{color:#fff}#bookly-tbs .navbar-inverse .navbar-brand:focus,#bookly-tbs .navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}#bookly-tbs .navbar-inverse .navbar-text{color:#fff}#bookly-tbs .navbar-inverse .navbar-nav>li>a{color:#fff}#bookly-tbs .navbar-inverse .navbar-nav>li>a:focus,#bookly-tbs .navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}#bookly-tbs .navbar-inverse .navbar-nav>.active>a,#bookly-tbs .navbar-inverse .navbar-nav>.active>a:focus,#bookly-tbs .navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}#bookly-tbs .navbar-inverse .navbar-nav>.disabled>a,#bookly-tbs .navbar-inverse .navbar-nav>.disabled>a:focus,#bookly-tbs .navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}#bookly-tbs .navbar-inverse .navbar-toggle{border-color:#333}#bookly-tbs .navbar-inverse .navbar-toggle:focus,#bookly-tbs .navbar-inverse .navbar-toggle:hover{background-color:#333}#bookly-tbs .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}#bookly-tbs .navbar-inverse .navbar-collapse,#bookly-tbs .navbar-inverse .navbar-form{border-color:#101010}#bookly-tbs .navbar-inverse .navbar-nav>.open>a,#bookly-tbs .navbar-inverse .navbar-nav>.open>a:focus,#bookly-tbs .navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#fff}#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}#bookly-tbs .navbar-inverse .navbar-link{color:#fff}#bookly-tbs .navbar-inverse .navbar-link:hover{color:#fff}#bookly-tbs .navbar-inverse .btn-link{color:#fff}#bookly-tbs .navbar-inverse .btn-link:focus,#bookly-tbs .navbar-inverse .btn-link:hover{color:#fff}#bookly-tbs .navbar-inverse .btn-link[disabled]:focus,#bookly-tbs .navbar-inverse .btn-link[disabled]:hover,#bookly-tbs fieldset[disabled] .navbar-inverse .btn-link:focus,#bookly-tbs fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}#bookly-tbs .breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:4px}#bookly-tbs .breadcrumb>li{display:inline-block}#bookly-tbs .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}#bookly-tbs .breadcrumb>.active{color:#d9dee4}#bookly-tbs .pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:4px}#bookly-tbs .pagination>li{display:inline}#bookly-tbs .pagination>li>a,#bookly-tbs .pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.4;color:#08c;text-decoration:none;background-color:#fff;border:1px solid #e8ebf0}#bookly-tbs .pagination>li:first-child>a,#bookly-tbs .pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}#bookly-tbs .pagination>li:last-child>a,#bookly-tbs .pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}#bookly-tbs .pagination>li>a:focus,#bookly-tbs .pagination>li>a:hover,#bookly-tbs .pagination>li>span:focus,#bookly-tbs .pagination>li>span:hover{z-index:2;color:#005580;background-color:#e8ebf0;border-color:#e8ebf0}#bookly-tbs .pagination>.active>a,#bookly-tbs .pagination>.active>a:focus,#bookly-tbs .pagination>.active>a:hover,#bookly-tbs .pagination>.active>span,#bookly-tbs .pagination>.active>span:focus,#bookly-tbs .pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#08c;border-color:#08c}#bookly-tbs .pagination>.disabled>a,#bookly-tbs .pagination>.disabled>a:focus,#bookly-tbs .pagination>.disabled>a:hover,#bookly-tbs .pagination>.disabled>span,#bookly-tbs .pagination>.disabled>span:focus,#bookly-tbs .pagination>.disabled>span:hover{color:#d9dee4;pointer-events:none;cursor:not-allowed;background-color:#fff;border-color:#e8ebf0}#bookly-tbs .pagination-lg>li>a,#bookly-tbs .pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}#bookly-tbs .pagination-lg>li:first-child>a,#bookly-tbs .pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}#bookly-tbs .pagination-lg>li:last-child>a,#bookly-tbs .pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}#bookly-tbs .pagination-sm>li>a,#bookly-tbs .pagination-sm>li>span{padding:5px 10px;font-size:13px;line-height:1.53846154}#bookly-tbs .pagination-sm>li:first-child>a,#bookly-tbs .pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}#bookly-tbs .pagination-sm>li:last-child>a,#bookly-tbs .pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}#bookly-tbs .pager{padding-left:0;margin:21px 0;text-align:center;list-style:none}#bookly-tbs .pager li{display:inline}#bookly-tbs .pager li>a,#bookly-tbs .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #e8ebf0;border-radius:15px}#bookly-tbs .pager li>a:focus,#bookly-tbs .pager li>a:hover{text-decoration:none;background-color:#e8ebf0}#bookly-tbs .pager .next>a,#bookly-tbs .pager .next>span{float:right}#bookly-tbs .pager .previous>a,#bookly-tbs .pager .previous>span{float:left}#bookly-tbs .pager .disabled>a,#bookly-tbs .pager .disabled>a:focus,#bookly-tbs .pager .disabled>a:hover,#bookly-tbs .pager .disabled>span{color:#d9dee4;pointer-events:none;cursor:not-allowed;background-color:#fff}#bookly-tbs .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}#bookly-tbs a.label:focus,#bookly-tbs a.label:hover{color:#fff;text-decoration:none;cursor:pointer}#bookly-tbs .label:empty{display:none}#bookly-tbs .btn .label{position:relative;top:-1px}#bookly-tbs .label-default{background-color:#d9dee4}#bookly-tbs .label-default[href]:focus,#bookly-tbs .label-default[href]:hover{background-color:#bbc4cf}#bookly-tbs .label-primary{background-color:#08c}#bookly-tbs .label-primary[href]:focus,#bookly-tbs .label-primary[href]:hover{background-color:#069}#bookly-tbs .label-success{background-color:#5cb85c}#bookly-tbs .label-success[href]:focus,#bookly-tbs .label-success[href]:hover{background-color:#449d44}#bookly-tbs .label-info{background-color:#5bc0de}#bookly-tbs .label-info[href]:focus,#bookly-tbs .label-info[href]:hover{background-color:#31b0d5}#bookly-tbs .label-warning{background-color:#f0ad4e}#bookly-tbs .label-warning[href]:focus,#bookly-tbs .label-warning[href]:hover{background-color:#ec971f}#bookly-tbs .label-danger{background-color:#d9534f}#bookly-tbs .label-danger[href]:focus,#bookly-tbs .label-danger[href]:hover{background-color:#c9302c}#bookly-tbs .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#d9dee4;border-radius:10px}#bookly-tbs .badge:empty{display:none}#bookly-tbs .btn .badge{position:relative;top:-1px}#bookly-tbs .btn-group-xs>.btn .badge,#bookly-tbs .btn-xs .badge{top:0;padding:1px 5px}#bookly-tbs a.badge:focus,#bookly-tbs a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}#bookly-tbs .list-group-item.active>.badge,#bookly-tbs .nav-pills>.active>a>.badge{color:#08c;background-color:#fff}#bookly-tbs .list-group-item>.badge{float:right}#bookly-tbs .list-group-item>.badge+.badge{margin-right:5px}#bookly-tbs .nav-pills>li>a>.badge{margin-left:3px}#bookly-tbs .jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#e8ebf0}#bookly-tbs .jumbotron .h1,#bookly-tbs .jumbotron h1{color:inherit}#bookly-tbs .jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}#bookly-tbs .jumbotron>hr{border-top-color:#c9d0dc}#bookly-tbs .container .jumbotron,#bookly-tbs .container-fluid .jumbotron{padding-right:10px;padding-left:10px;border-radius:6px}#bookly-tbs .jumbotron .container{max-width:100%}@media screen and (min-width:768px){#bookly-tbs .jumbotron{padding-top:48px;padding-bottom:48px}#bookly-tbs .container .jumbotron,#bookly-tbs .container-fluid .jumbotron{padding-right:60px;padding-left:60px}#bookly-tbs .jumbotron .h1,#bookly-tbs .jumbotron h1{font-size:68px}}#bookly-tbs .thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.4;background-color:transparent;border:1px solid #e8ebf0;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}#bookly-tbs .thumbnail a>img,#bookly-tbs .thumbnail>img{margin-right:auto;margin-left:auto}#bookly-tbs a.thumbnail.active,#bookly-tbs a.thumbnail:focus,#bookly-tbs a.thumbnail:hover{border-color:#08c}#bookly-tbs .thumbnail .caption{padding:9px;color:#3e424a}#bookly-tbs .alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:4px}#bookly-tbs .alert h4{margin-top:0;color:inherit}#bookly-tbs .alert .alert-link{font-weight:700}#bookly-tbs .alert>p,#bookly-tbs .alert>ul{margin-bottom:0}#bookly-tbs .alert>p+p{margin-top:5px}#bookly-tbs .alert-dismissable,#bookly-tbs .alert-dismissible{padding-right:35px}#bookly-tbs .alert-dismissable .close,#bookly-tbs .alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}#bookly-tbs .alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}#bookly-tbs .alert-success hr{border-top-color:#c9e2b3}#bookly-tbs .alert-success .alert-link{color:#2b542c}#bookly-tbs .alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}#bookly-tbs .alert-info hr{border-top-color:#a6e1ec}#bookly-tbs .alert-info .alert-link{color:#245269}#bookly-tbs .alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}#bookly-tbs .alert-warning hr{border-top-color:#f7e1b5}#bookly-tbs .alert-warning .alert-link{color:#66512c}#bookly-tbs .alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}#bookly-tbs .alert-danger hr{border-top-color:#e4b9c0}#bookly-tbs .alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}#bookly-tbs .progress{height:21px;margin-bottom:21px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}#bookly-tbs .progress-bar{float:left;width:0;height:100%;font-size:13px;line-height:21px;color:#fff;text-align:center;background-color:#08c;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}#bookly-tbs .progress-bar-striped,#bookly-tbs .progress-striped .progress-bar{background-image:-webkit-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-image:-o-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-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);-webkit-background-size:40px 40px;background-size:40px 40px}#bookly-tbs .progress-bar.active,#bookly-tbs .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}#bookly-tbs .progress-bar-success{background-color:#5cb85c}#bookly-tbs .progress-striped .progress-bar-success{background-image:-webkit-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-image:-o-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-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)}#bookly-tbs .progress-bar-info{background-color:#5bc0de}#bookly-tbs .progress-striped .progress-bar-info{background-image:-webkit-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-image:-o-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-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)}#bookly-tbs .progress-bar-warning{background-color:#f0ad4e}#bookly-tbs .progress-striped .progress-bar-warning{background-image:-webkit-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-image:-o-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-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)}#bookly-tbs .progress-bar-danger{background-color:#d9534f}#bookly-tbs .progress-striped .progress-bar-danger{background-image:-webkit-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-image:-o-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-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)}#bookly-tbs .media{margin-top:15px}#bookly-tbs .media:first-child{margin-top:0}#bookly-tbs .media,#bookly-tbs .media-body{overflow:hidden;zoom:1}#bookly-tbs .media-body{width:10000px}#bookly-tbs .media-object{display:block}#bookly-tbs .media-object.img-thumbnail{max-width:none}#bookly-tbs .media-right,#bookly-tbs .media>.pull-right{padding-left:10px}#bookly-tbs .media-left,#bookly-tbs .media>.pull-left{padding-right:10px}#bookly-tbs .media-body,#bookly-tbs .media-left,#bookly-tbs .media-right{display:table-cell;vertical-align:top}#bookly-tbs .media-middle{vertical-align:middle}#bookly-tbs .media-bottom{vertical-align:bottom}#bookly-tbs .media-heading{margin-top:0;margin-bottom:5px}#bookly-tbs .media-list{padding-left:0;list-style:none}#bookly-tbs .list-group{padding-left:0;margin-bottom:20px}#bookly-tbs .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #e8ebf0}#bookly-tbs .list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}#bookly-tbs .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}#bookly-tbs a.list-group-item,#bookly-tbs button.list-group-item{color:#555}#bookly-tbs a.list-group-item .list-group-item-heading,#bookly-tbs button.list-group-item .list-group-item-heading{color:#333}#bookly-tbs a.list-group-item:focus,#bookly-tbs a.list-group-item:hover,#bookly-tbs button.list-group-item:focus,#bookly-tbs button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}#bookly-tbs button.list-group-item{width:100%;text-align:left}#bookly-tbs .list-group-item.disabled,#bookly-tbs .list-group-item.disabled:focus,#bookly-tbs .list-group-item.disabled:hover{color:#d9dee4;cursor:not-allowed;background-color:#e8ebf0}#bookly-tbs .list-group-item.disabled .list-group-item-heading,#bookly-tbs .list-group-item.disabled:focus .list-group-item-heading,#bookly-tbs .list-group-item.disabled:hover .list-group-item-heading{color:inherit}#bookly-tbs .list-group-item.disabled .list-group-item-text,#bookly-tbs .list-group-item.disabled:focus .list-group-item-text,#bookly-tbs .list-group-item.disabled:hover .list-group-item-text{color:#d9dee4}#bookly-tbs .list-group-item.active,#bookly-tbs .list-group-item.active:focus,#bookly-tbs .list-group-item.active:hover{z-index:2;color:#fff;background-color:#08c;border-color:#08c}#bookly-tbs .list-group-item.active .list-group-item-heading,#bookly-tbs .list-group-item.active .list-group-item-heading>.small,#bookly-tbs .list-group-item.active .list-group-item-heading>small,#bookly-tbs .list-group-item.active:focus .list-group-item-heading,#bookly-tbs .list-group-item.active:focus .list-group-item-heading>.small,#bookly-tbs .list-group-item.active:focus .list-group-item-heading>small,#bookly-tbs .list-group-item.active:hover .list-group-item-heading,#bookly-tbs .list-group-item.active:hover .list-group-item-heading>.small,#bookly-tbs .list-group-item.active:hover .list-group-item-heading>small{color:inherit}#bookly-tbs .list-group-item.active .list-group-item-text,#bookly-tbs .list-group-item.active:focus .list-group-item-text,#bookly-tbs .list-group-item.active:hover .list-group-item-text{color:#9df}#bookly-tbs .list-group-item-success{color:#3c763d;background-color:#dff0d8}#bookly-tbs a.list-group-item-success,#bookly-tbs button.list-group-item-success{color:#3c763d}#bookly-tbs a.list-group-item-success .list-group-item-heading,#bookly-tbs button.list-group-item-success .list-group-item-heading{color:inherit}#bookly-tbs a.list-group-item-success:focus,#bookly-tbs a.list-group-item-success:hover,#bookly-tbs button.list-group-item-success:focus,#bookly-tbs button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}#bookly-tbs a.list-group-item-success.active,#bookly-tbs a.list-group-item-success.active:focus,#bookly-tbs a.list-group-item-success.active:hover,#bookly-tbs button.list-group-item-success.active,#bookly-tbs button.list-group-item-success.active:focus,#bookly-tbs button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}#bookly-tbs .list-group-item-info{color:#31708f;background-color:#d9edf7}#bookly-tbs a.list-group-item-info,#bookly-tbs button.list-group-item-info{color:#31708f}#bookly-tbs a.list-group-item-info .list-group-item-heading,#bookly-tbs button.list-group-item-info .list-group-item-heading{color:inherit}#bookly-tbs a.list-group-item-info:focus,#bookly-tbs a.list-group-item-info:hover,#bookly-tbs button.list-group-item-info:focus,#bookly-tbs button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}#bookly-tbs a.list-group-item-info.active,#bookly-tbs a.list-group-item-info.active:focus,#bookly-tbs a.list-group-item-info.active:hover,#bookly-tbs button.list-group-item-info.active,#bookly-tbs button.list-group-item-info.active:focus,#bookly-tbs button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}#bookly-tbs .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}#bookly-tbs a.list-group-item-warning,#bookly-tbs button.list-group-item-warning{color:#8a6d3b}#bookly-tbs a.list-group-item-warning .list-group-item-heading,#bookly-tbs button.list-group-item-warning .list-group-item-heading{color:inherit}#bookly-tbs a.list-group-item-warning:focus,#bookly-tbs a.list-group-item-warning:hover,#bookly-tbs button.list-group-item-warning:focus,#bookly-tbs button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}#bookly-tbs a.list-group-item-warning.active,#bookly-tbs a.list-group-item-warning.active:focus,#bookly-tbs a.list-group-item-warning.active:hover,#bookly-tbs button.list-group-item-warning.active,#bookly-tbs button.list-group-item-warning.active:focus,#bookly-tbs button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}#bookly-tbs .list-group-item-danger{color:#a94442;background-color:#f2dede}#bookly-tbs a.list-group-item-danger,#bookly-tbs button.list-group-item-danger{color:#a94442}#bookly-tbs a.list-group-item-danger .list-group-item-heading,#bookly-tbs button.list-group-item-danger .list-group-item-heading{color:inherit}#bookly-tbs a.list-group-item-danger:focus,#bookly-tbs a.list-group-item-danger:hover,#bookly-tbs button.list-group-item-danger:focus,#bookly-tbs button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}#bookly-tbs a.list-group-item-danger.active,#bookly-tbs a.list-group-item-danger.active:focus,#bookly-tbs a.list-group-item-danger.active:hover,#bookly-tbs button.list-group-item-danger.active,#bookly-tbs button.list-group-item-danger.active:focus,#bookly-tbs button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}#bookly-tbs .list-group-item-heading{margin-top:0;margin-bottom:5px}#bookly-tbs .list-group-item-text{margin-bottom:0;line-height:1.3}#bookly-tbs .panel{margin-bottom:21px;background-color:#fff;border:2px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}#bookly-tbs .panel-body{padding:15px}#bookly-tbs .panel-heading{padding:15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}#bookly-tbs .panel-heading>.dropdown .dropdown-toggle{color:inherit}#bookly-tbs .panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit}#bookly-tbs .panel-title>.small,#bookly-tbs .panel-title>.small>a,#bookly-tbs .panel-title>a,#bookly-tbs .panel-title>small,#bookly-tbs .panel-title>small>a{color:inherit}#bookly-tbs .panel-footer{padding:15px;background-color:#e8ebf0;border-top:1px solid #e8ebf0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}#bookly-tbs .panel>.list-group,#bookly-tbs .panel>.panel-collapse>.list-group{margin-bottom:0}#bookly-tbs .panel>.list-group .list-group-item,#bookly-tbs .panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}#bookly-tbs .panel>.list-group:first-child .list-group-item:first-child,#bookly-tbs .panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}#bookly-tbs .panel>.list-group:last-child .list-group-item:last-child,#bookly-tbs .panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}#bookly-tbs .panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}#bookly-tbs .list-group+.panel-footer{border-top-width:0}#bookly-tbs .panel>.panel-collapse>.table,#bookly-tbs .panel>.table,#bookly-tbs .panel>.table-responsive>.table{margin-bottom:0}#bookly-tbs .panel>.panel-collapse>.table caption,#bookly-tbs .panel>.table caption,#bookly-tbs .panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}#bookly-tbs .panel>.table-responsive:first-child>.table:first-child,#bookly-tbs .panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,#bookly-tbs .panel>.table:first-child>tbody:first-child>tr:first-child,#bookly-tbs .panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,#bookly-tbs .panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,#bookly-tbs .panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,#bookly-tbs .panel>.table:first-child>thead:first-child>tr:first-child td:first-child,#bookly-tbs .panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,#bookly-tbs .panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,#bookly-tbs .panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,#bookly-tbs .panel>.table:first-child>thead:first-child>tr:first-child td:last-child,#bookly-tbs .panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}#bookly-tbs .panel>.table-responsive:last-child>.table:last-child,#bookly-tbs .panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,#bookly-tbs .panel>.table:last-child>tbody:last-child>tr:last-child,#bookly-tbs .panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,#bookly-tbs .panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,#bookly-tbs .panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,#bookly-tbs .panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,#bookly-tbs .panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,#bookly-tbs .panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,#bookly-tbs .panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,#bookly-tbs .panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,#bookly-tbs .panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}#bookly-tbs .panel>.panel-body+.table,#bookly-tbs .panel>.panel-body+.table-responsive,#bookly-tbs .panel>.table+.panel-body,#bookly-tbs .panel>.table-responsive+.panel-body{border-top:1px solid #d9dee4}#bookly-tbs .panel>.table>tbody:first-child>tr:first-child td,#bookly-tbs .panel>.table>tbody:first-child>tr:first-child th{border-top:0}#bookly-tbs .panel>.table-bordered,#bookly-tbs .panel>.table-responsive>.table-bordered{border:0}#bookly-tbs .panel>.table-bordered>tbody>tr>td:first-child,#bookly-tbs .panel>.table-bordered>tbody>tr>th:first-child,#bookly-tbs .panel>.table-bordered>tfoot>tr>td:first-child,#bookly-tbs .panel>.table-bordered>tfoot>tr>th:first-child,#bookly-tbs .panel>.table-bordered>thead>tr>td:first-child,#bookly-tbs .panel>.table-bordered>thead>tr>th:first-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,#bookly-tbs .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,#bookly-tbs .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}#bookly-tbs .panel>.table-bordered>tbody>tr>td:last-child,#bookly-tbs .panel>.table-bordered>tbody>tr>th:last-child,#bookly-tbs .panel>.table-bordered>tfoot>tr>td:last-child,#bookly-tbs .panel>.table-bordered>tfoot>tr>th:last-child,#bookly-tbs .panel>.table-bordered>thead>tr>td:last-child,#bookly-tbs .panel>.table-bordered>thead>tr>th:last-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,#bookly-tbs .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,#bookly-tbs .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}#bookly-tbs .panel>.table-bordered>tbody>tr:first-child>td,#bookly-tbs .panel>.table-bordered>tbody>tr:first-child>th,#bookly-tbs .panel>.table-bordered>thead>tr:first-child>td,#bookly-tbs .panel>.table-bordered>thead>tr:first-child>th,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,#bookly-tbs .panel>.table-responsive>.table-bordered>thead>tr:first-child>td,#bookly-tbs .panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}#bookly-tbs .panel>.table-bordered>tbody>tr:last-child>td,#bookly-tbs .panel>.table-bordered>tbody>tr:last-child>th,#bookly-tbs .panel>.table-bordered>tfoot>tr:last-child>td,#bookly-tbs .panel>.table-bordered>tfoot>tr:last-child>th,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,#bookly-tbs .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,#bookly-tbs .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}#bookly-tbs .panel>.table-responsive{margin-bottom:0;border:0}#bookly-tbs .panel-group{margin-bottom:21px}#bookly-tbs .panel-group .panel{margin-bottom:0;border-radius:4px}#bookly-tbs .panel-group .panel+.panel{margin-top:10px}#bookly-tbs .panel-group .panel-heading{border-bottom:0}#bookly-tbs .panel-group .panel-heading+.panel-collapse>.list-group,#bookly-tbs .panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #e8ebf0}#bookly-tbs .panel-group .panel-footer{border-top:0}#bookly-tbs .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #e8ebf0}#bookly-tbs .panel-default{border-color:#e8ebf0}#bookly-tbs .panel-default>.panel-heading{color:#3e424a;background-color:#e8ebf0;border-color:#e8ebf0}#bookly-tbs .panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#e8ebf0}#bookly-tbs .panel-default>.panel-heading .badge{color:#e8ebf0;background-color:#3e424a}#bookly-tbs .panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#e8ebf0}#bookly-tbs .panel-primary{border-color:#08c}#bookly-tbs .panel-primary>.panel-heading{color:#fff;background-color:#08c;border-color:#08c}#bookly-tbs .panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#08c}#bookly-tbs .panel-primary>.panel-heading .badge{color:#08c;background-color:#fff}#bookly-tbs .panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#08c}#bookly-tbs .panel-success{border-color:#d6e9c6}#bookly-tbs .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}#bookly-tbs .panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}#bookly-tbs .panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}#bookly-tbs .panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}#bookly-tbs .panel-info{border-color:#bce8f1}#bookly-tbs .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}#bookly-tbs .panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}#bookly-tbs .panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}#bookly-tbs .panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}#bookly-tbs .panel-warning{border-color:#faebcc}#bookly-tbs .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}#bookly-tbs .panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}#bookly-tbs .panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}#bookly-tbs .panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}#bookly-tbs .panel-danger{border-color:#ebccd1}#bookly-tbs .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}#bookly-tbs .panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}#bookly-tbs .panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}#bookly-tbs .panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}#bookly-tbs .embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}#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-16by9{padding-bottom:56.25%}#bookly-tbs .embed-responsive-4by3{padding-bottom:75%}#bookly-tbs .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}#bookly-tbs .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}#bookly-tbs .well-lg{padding:24px;border-radius:6px}#bookly-tbs .well-sm{padding:9px;border-radius:3px}#bookly-tbs .close{float:right;font-size:22.5px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}#bookly-tbs .close:focus,#bookly-tbs .close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}#bookly-tbs button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}#bookly-tbs .modal-open{overflow:hidden}#bookly-tbs .modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}#bookly-tbs .modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}#bookly-tbs .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}#bookly-tbs .modal-open .modal{overflow-x:hidden;overflow-y:auto}#bookly-tbs .modal-dialog{position:relative;width:auto;margin:10px}#bookly-tbs .modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}#bookly-tbs .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}#bookly-tbs .modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}#bookly-tbs .modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}#bookly-tbs .modal-header{padding:15px;border-bottom:1px solid #e5e5e5}#bookly-tbs .modal-header .close{margin-top:-2px}#bookly-tbs .modal-title{margin:0;line-height:1.4}#bookly-tbs .modal-body{position:relative;padding:15px}#bookly-tbs .modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}#bookly-tbs .modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}#bookly-tbs .modal-footer .btn-group .btn+.btn{margin-left:-1px}#bookly-tbs .modal-footer .btn-block+.btn-block{margin-left:0}#bookly-tbs .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){#bookly-tbs .modal-dialog{width:600px;margin:30px auto}#bookly-tbs .modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}#bookly-tbs .modal-sm{width:300px}}@media (min-width:992px){#bookly-tbs .modal-lg{width:900px}}#bookly-tbs .tooltip{position:absolute;z-index:1070;display:block;font-family:"open sans","helvetica neue",helvetica,arial,sans-serif;font-size:13px;font-style:normal;font-weight:400;line-height:1.4;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}#bookly-tbs .tooltip.in{filter:alpha(opacity=90);opacity:.9}#bookly-tbs .tooltip.top{padding:5px 0;margin-top:-3px}#bookly-tbs .tooltip.right{padding:0 5px;margin-left:3px}#bookly-tbs .tooltip.bottom{padding:5px 0;margin-top:3px}#bookly-tbs .tooltip.left{padding:0 5px;margin-left:-3px}#bookly-tbs .tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}#bookly-tbs .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}#bookly-tbs .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}#bookly-tbs .tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}#bookly-tbs .tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}#bookly-tbs .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}#bookly-tbs .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}#bookly-tbs .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}#bookly-tbs .tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}#bookly-tbs .tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}#bookly-tbs .popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:600px;padding:1px;font-family:"open sans","helvetica neue",helvetica,arial,sans-serif;font-size:15px;font-style:normal;font-weight:400;line-height:1.4;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}#bookly-tbs .popover.top{margin-top:-10px}#bookly-tbs .popover.right{margin-left:10px}#bookly-tbs .popover.bottom{margin-top:10px}#bookly-tbs .popover.left{margin-left:-10px}#bookly-tbs .popover-title{padding:8px 14px;margin:0;font-size:15px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}#bookly-tbs .popover-content{padding:14px 20px}#bookly-tbs .popover>.popover-arrow,#bookly-tbs .popover>.popover-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}#bookly-tbs .popover>.popover-arrow{border-width:11px}#bookly-tbs .popover>.popover-arrow:after{content:"";border-width:10px}#bookly-tbs .popover.top>.popover-arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}#bookly-tbs .popover.top>.popover-arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}#bookly-tbs .popover.right>.popover-arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}#bookly-tbs .popover.right>.popover-arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}#bookly-tbs .popover.bottom>.popover-arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}#bookly-tbs .popover.bottom>.popover-arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}#bookly-tbs .popover.left>.popover-arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}#bookly-tbs .popover.left>.popover-arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}#bookly-tbs .carousel{position:relative}#bookly-tbs .carousel-inner{position:relative;width:100%;overflow:hidden}#bookly-tbs .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}#bookly-tbs .carousel-inner>.item>a>img,#bookly-tbs .carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){#bookly-tbs .carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}#bookly-tbs .carousel-inner>.item.active.right,#bookly-tbs .carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}#bookly-tbs .carousel-inner>.item.active.left,#bookly-tbs .carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}#bookly-tbs .carousel-inner>.item.active,#bookly-tbs .carousel-inner>.item.next.left,#bookly-tbs .carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}#bookly-tbs .carousel-inner>.active,#bookly-tbs .carousel-inner>.next,#bookly-tbs .carousel-inner>.prev{display:block}#bookly-tbs .carousel-inner>.active{left:0}#bookly-tbs .carousel-inner>.next,#bookly-tbs .carousel-inner>.prev{position:absolute;top:0;width:100%}#bookly-tbs .carousel-inner>.next{left:100%}#bookly-tbs .carousel-inner>.prev{left:-100%}#bookly-tbs .carousel-inner>.next.left,#bookly-tbs .carousel-inner>.prev.right{left:0}#bookly-tbs .carousel-inner>.active.left{left:-100%}#bookly-tbs .carousel-inner>.active.right{left:100%}#bookly-tbs .carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}#bookly-tbs .carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}#bookly-tbs .carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}#bookly-tbs .carousel-control:focus,#bookly-tbs .carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}#bookly-tbs .carousel-control .glyphicon-chevron-left,#bookly-tbs .carousel-control .glyphicon-chevron-right,#bookly-tbs .carousel-control .icon-next,#bookly-tbs .carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}#bookly-tbs .carousel-control .glyphicon-chevron-left,#bookly-tbs .carousel-control .icon-prev{left:50%;margin-left:-10px}#bookly-tbs .carousel-control .glyphicon-chevron-right,#bookly-tbs .carousel-control .icon-next{right:50%;margin-right:-10px}#bookly-tbs .carousel-control .icon-next,#bookly-tbs .carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}#bookly-tbs .carousel-control .icon-prev:before{content:'\2039'}#bookly-tbs .carousel-control .icon-next:before{content:'\203a'}#bookly-tbs .carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}#bookly-tbs .carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}#bookly-tbs .carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}#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;text-shadow:0 1px 2px rgba(0,0,0,.6)}#bookly-tbs .carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){#bookly-tbs .carousel-control .glyphicon-chevron-left,#bookly-tbs .carousel-control .glyphicon-chevron-right,#bookly-tbs .carousel-control .icon-next,#bookly-tbs .carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}#bookly-tbs .carousel-control .glyphicon-chevron-left,#bookly-tbs .carousel-control .icon-prev{margin-left:-10px}#bookly-tbs .carousel-control .glyphicon-chevron-right,#bookly-tbs .carousel-control .icon-next{margin-right:-10px}#bookly-tbs .carousel-caption{right:20%;left:20%;padding-bottom:30px}#bookly-tbs .carousel-indicators{bottom:20px}}#bookly-tbs .btn-group-vertical>.btn-group:after,#bookly-tbs .btn-group-vertical>.btn-group:before,#bookly-tbs .btn-toolbar:after,#bookly-tbs .btn-toolbar:before,#bookly-tbs .clearfix:after,#bookly-tbs .clearfix:before,#bookly-tbs .container-fluid:after,#bookly-tbs .container-fluid:before,#bookly-tbs .container:after,#bookly-tbs .container:before,#bookly-tbs .dl-horizontal dd:after,#bookly-tbs .dl-horizontal dd:before,#bookly-tbs .form-horizontal .form-group:after,#bookly-tbs .form-horizontal .form-group:before,#bookly-tbs .modal-footer:after,#bookly-tbs .modal-footer:before,#bookly-tbs .modal-header:after,#bookly-tbs .modal-header:before,#bookly-tbs .nav:after,#bookly-tbs .nav:before,#bookly-tbs .navbar-collapse:after,#bookly-tbs .navbar-collapse:before,#bookly-tbs .navbar-header:after,#bookly-tbs .navbar-header:before,#bookly-tbs .navbar:after,#bookly-tbs .navbar:before,#bookly-tbs .pager:after,#bookly-tbs .pager:before,#bookly-tbs .panel-body:after,#bookly-tbs .panel-body:before,#bookly-tbs .row:after,#bookly-tbs .row:before{display:table;content:" "}#bookly-tbs .btn-group-vertical>.btn-group:after,#bookly-tbs .btn-toolbar:after,#bookly-tbs .clearfix:after,#bookly-tbs .container-fluid:after,#bookly-tbs .container:after,#bookly-tbs .dl-horizontal dd:after,#bookly-tbs .form-horizontal .form-group:after,#bookly-tbs .modal-footer:after,#bookly-tbs .modal-header:after,#bookly-tbs .nav:after,#bookly-tbs .navbar-collapse:after,#bookly-tbs .navbar-header:after,#bookly-tbs .navbar:after,#bookly-tbs .pager:after,#bookly-tbs .panel-body:after,#bookly-tbs .row:after{clear:both}#bookly-tbs .center-block{display:block;margin-right:auto;margin-left:auto}#bookly-tbs .pull-right{float:right!important}#bookly-tbs .pull-left{float:left!important}#bookly-tbs .hide{display:none!important}#bookly-tbs .show{display:block!important}#bookly-tbs .invisible{visibility:hidden}#bookly-tbs .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}#bookly-tbs .hidden{display:none!important}#bookly-tbs .affix{position:fixed}@-ms-viewport{width:device-width}#bookly-tbs .visible-lg,#bookly-tbs .visible-md,#bookly-tbs .visible-sm,#bookly-tbs .visible-xs{display:none!important}#bookly-tbs .visible-lg-block,#bookly-tbs .visible-lg-inline,#bookly-tbs .visible-lg-inline-block,#bookly-tbs .visible-md-block,#bookly-tbs .visible-md-inline,#bookly-tbs .visible-md-inline-block,#bookly-tbs .visible-sm-block,#bookly-tbs .visible-sm-inline,#bookly-tbs .visible-sm-inline-block,#bookly-tbs .visible-xs-block,#bookly-tbs .visible-xs-inline,#bookly-tbs .visible-xs-inline-block{display:none!important}@media (max-width:767px){#bookly-tbs .visible-xs{display:block!important}#bookly-tbs table.visible-xs{display:table!important}#bookly-tbs tr.visible-xs{display:table-row!important}#bookly-tbs td.visible-xs,#bookly-tbs th.visible-xs{display:table-cell!important}}@media (max-width:767px){#bookly-tbs .visible-xs-block{display:block!important}}@media (max-width:767px){#bookly-tbs .visible-xs-inline{display:inline!important}}@media (max-width:767px){#bookly-tbs .visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){#bookly-tbs .visible-sm{display:block!important}#bookly-tbs table.visible-sm{display:table!important}#bookly-tbs tr.visible-sm{display:table-row!important}#bookly-tbs td.visible-sm,#bookly-tbs th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){#bookly-tbs .visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){#bookly-tbs .visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){#bookly-tbs .visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){#bookly-tbs .visible-md{display:block!important}#bookly-tbs table.visible-md{display:table!important}#bookly-tbs tr.visible-md{display:table-row!important}#bookly-tbs td.visible-md,#bookly-tbs th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){#bookly-tbs .visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){#bookly-tbs .visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){#bookly-tbs .visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){#bookly-tbs .visible-lg{display:block!important}#bookly-tbs table.visible-lg{display:table!important}#bookly-tbs tr.visible-lg{display:table-row!important}#bookly-tbs td.visible-lg,#bookly-tbs th.visible-lg{display:table-cell!important}}@media (min-width:1200px){#bookly-tbs .visible-lg-block{display:block!important}}@media (min-width:1200px){#bookly-tbs .visible-lg-inline{display:inline!important}}@media (min-width:1200px){#bookly-tbs .visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){#bookly-tbs .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){#bookly-tbs .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){#bookly-tbs .hidden-md{display:none!important}}@media (min-width:1200px){#bookly-tbs .hidden-lg{display:none!important}}#bookly-tbs .visible-print{display:none!important}@media print{#bookly-tbs .visible-print{display:block!important}#bookly-tbs table.visible-print{display:table!important}#bookly-tbs tr.visible-print{display:table-row!important}#bookly-tbs td.visible-print,#bookly-tbs th.visible-print{display:table-cell!important}}#bookly-tbs .visible-print-block{display:none!important}@media print{#bookly-tbs .visible-print-block{display:block!important}}#bookly-tbs .visible-print-inline{display:none!important}@media print{#bookly-tbs .visible-print-inline{display:inline!important}}#bookly-tbs .visible-print-inline-block{display:none!important}@media print{#bookly-tbs .visible-print-inline-block{display:inline-block!important}}@media print{#bookly-tbs .hidden-print{display:none!important}}#bookly-tbs [class*=block-grid-]{padding:0;margin:0;list-style:none;border:1px solid transparent;border-width:1px 0 0 1px}#bookly-tbs [class*=block-grid-]>*{display:block;float:left;height:auto;text-align:center;border:1px solid inherit;border-width:0 1px 1px 0}#bookly-tbs [class*=block-grid-]:after,#bookly-tbs [class*=block-grid-]:before{display:table;content:" "}#bookly-tbs .block-grid-16>:nth-of-type(16n+1),#bookly-tbs [class*=block-grid-]:after{clear:both}#bookly-tbs .block-grid-16>*{width:6.25%;line-height:49px}#bookly-tbs .btn-group-justified>.btn-group:not(:first-child) .btn,#bookly-tbs .btn-group-justified>.btn:not(:first-child){border-left:0}#bookly-tbs .btn-default-outline{color:#5b6470;background-color:transparent;border-color:#5b6470}#bookly-tbs .btn-default-outline.focus,#bookly-tbs .btn-default-outline:focus{color:#5b6470;background-color:rgba(0,0,0,0);border-color:#22252a}#bookly-tbs .btn-default-outline:hover{color:#5b6470;background-color:rgba(0,0,0,0);border-color:#40464e}#bookly-tbs .btn-default-outline.active,#bookly-tbs .btn-default-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-default-outline{color:#5b6470;background-color:rgba(0,0,0,0);border-color:#40464e}#bookly-tbs .btn-default-outline.active.focus,#bookly-tbs .btn-default-outline.active:focus,#bookly-tbs .btn-default-outline.active:hover,#bookly-tbs .btn-default-outline:active.focus,#bookly-tbs .btn-default-outline:active:focus,#bookly-tbs .btn-default-outline:active:hover,.open>.dropdown-toggle#bookly-tbs .btn-default-outline.focus,.open>.dropdown-toggle#bookly-tbs .btn-default-outline:focus,.open>.dropdown-toggle#bookly-tbs .btn-default-outline:hover{color:#5b6470;background-color:rgba(0,0,0,0);border-color:#22252a}#bookly-tbs .btn-default-outline.active,#bookly-tbs .btn-default-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-default-outline{background-image:none}#bookly-tbs .btn-default-outline.disabled.focus,#bookly-tbs .btn-default-outline.disabled:focus,#bookly-tbs .btn-default-outline.disabled:hover,#bookly-tbs .btn-default-outline[disabled].focus,#bookly-tbs .btn-default-outline[disabled]:focus,#bookly-tbs .btn-default-outline[disabled]:hover,fieldset[disabled] #bookly-tbs .btn-default-outline.focus,fieldset[disabled] #bookly-tbs .btn-default-outline:focus,fieldset[disabled] #bookly-tbs .btn-default-outline:hover{background-color:transparent;border-color:#5b6470}#bookly-tbs .btn-default-outline .badge{color:transparent;background-color:#5b6470}#bookly-tbs .btn-primary-outline{color:#08c;background-color:transparent;border-color:#08c}#bookly-tbs .btn-primary-outline.focus,#bookly-tbs .btn-primary-outline:focus{color:#08c;background-color:rgba(0,0,0,0);border-color:#00334d}#bookly-tbs .btn-primary-outline:hover{color:#08c;background-color:rgba(0,0,0,0);border-color:#005f8f}#bookly-tbs .btn-primary-outline.active,#bookly-tbs .btn-primary-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-primary-outline{color:#08c;background-color:rgba(0,0,0,0);border-color:#005f8f}#bookly-tbs .btn-primary-outline.active.focus,#bookly-tbs .btn-primary-outline.active:focus,#bookly-tbs .btn-primary-outline.active:hover,#bookly-tbs .btn-primary-outline:active.focus,#bookly-tbs .btn-primary-outline:active:focus,#bookly-tbs .btn-primary-outline:active:hover,.open>.dropdown-toggle#bookly-tbs .btn-primary-outline.focus,.open>.dropdown-toggle#bookly-tbs .btn-primary-outline:focus,.open>.dropdown-toggle#bookly-tbs .btn-primary-outline:hover{color:#08c;background-color:rgba(0,0,0,0);border-color:#00334d}#bookly-tbs .btn-primary-outline.active,#bookly-tbs .btn-primary-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-primary-outline{background-image:none}#bookly-tbs .btn-primary-outline.disabled.focus,#bookly-tbs .btn-primary-outline.disabled:focus,#bookly-tbs .btn-primary-outline.disabled:hover,#bookly-tbs .btn-primary-outline[disabled].focus,#bookly-tbs .btn-primary-outline[disabled]:focus,#bookly-tbs .btn-primary-outline[disabled]:hover,fieldset[disabled] #bookly-tbs .btn-primary-outline.focus,fieldset[disabled] #bookly-tbs .btn-primary-outline:focus,fieldset[disabled] #bookly-tbs .btn-primary-outline:hover{background-color:transparent;border-color:#08c}#bookly-tbs .btn-primary-outline .badge{color:transparent;background-color:#08c}#bookly-tbs .btn-success-outline{color:#5cb85c;background-color:transparent;border-color:#5cb85c}#bookly-tbs .btn-success-outline.focus,#bookly-tbs .btn-success-outline:focus{color:#5cb85c;background-color:rgba(0,0,0,0);border-color:#2d672d}#bookly-tbs .btn-success-outline:hover{color:#5cb85c;background-color:rgba(0,0,0,0);border-color:#419641}#bookly-tbs .btn-success-outline.active,#bookly-tbs .btn-success-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-success-outline{color:#5cb85c;background-color:rgba(0,0,0,0);border-color:#419641}#bookly-tbs .btn-success-outline.active.focus,#bookly-tbs .btn-success-outline.active:focus,#bookly-tbs .btn-success-outline.active:hover,#bookly-tbs .btn-success-outline:active.focus,#bookly-tbs .btn-success-outline:active:focus,#bookly-tbs .btn-success-outline:active:hover,.open>.dropdown-toggle#bookly-tbs .btn-success-outline.focus,.open>.dropdown-toggle#bookly-tbs .btn-success-outline:focus,.open>.dropdown-toggle#bookly-tbs .btn-success-outline:hover{color:#5cb85c;background-color:rgba(0,0,0,0);border-color:#2d672d}#bookly-tbs .btn-success-outline.active,#bookly-tbs .btn-success-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-success-outline{background-image:none}#bookly-tbs .btn-success-outline.disabled.focus,#bookly-tbs .btn-success-outline.disabled:focus,#bookly-tbs .btn-success-outline.disabled:hover,#bookly-tbs .btn-success-outline[disabled].focus,#bookly-tbs .btn-success-outline[disabled]:focus,#bookly-tbs .btn-success-outline[disabled]:hover,fieldset[disabled] #bookly-tbs .btn-success-outline.focus,fieldset[disabled] #bookly-tbs .btn-success-outline:focus,fieldset[disabled] #bookly-tbs .btn-success-outline:hover{background-color:transparent;border-color:#5cb85c}#bookly-tbs .btn-success-outline .badge{color:transparent;background-color:#5cb85c}#bookly-tbs .btn-info-outline{color:#5bc0de;background-color:transparent;border-color:#5bc0de}#bookly-tbs .btn-info-outline.focus,#bookly-tbs .btn-info-outline:focus{color:#5bc0de;background-color:rgba(0,0,0,0);border-color:#1f7e9a}#bookly-tbs .btn-info-outline:hover{color:#5bc0de;background-color:rgba(0,0,0,0);border-color:#2aabd2}#bookly-tbs .btn-info-outline.active,#bookly-tbs .btn-info-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-info-outline{color:#5bc0de;background-color:rgba(0,0,0,0);border-color:#2aabd2}#bookly-tbs .btn-info-outline.active.focus,#bookly-tbs .btn-info-outline.active:focus,#bookly-tbs .btn-info-outline.active:hover,#bookly-tbs .btn-info-outline:active.focus,#bookly-tbs .btn-info-outline:active:focus,#bookly-tbs .btn-info-outline:active:hover,.open>.dropdown-toggle#bookly-tbs .btn-info-outline.focus,.open>.dropdown-toggle#bookly-tbs .btn-info-outline:focus,.open>.dropdown-toggle#bookly-tbs .btn-info-outline:hover{color:#5bc0de;background-color:rgba(0,0,0,0);border-color:#1f7e9a}#bookly-tbs .btn-info-outline.active,#bookly-tbs .btn-info-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-info-outline{background-image:none}#bookly-tbs .btn-info-outline.disabled.focus,#bookly-tbs .btn-info-outline.disabled:focus,#bookly-tbs .btn-info-outline.disabled:hover,#bookly-tbs .btn-info-outline[disabled].focus,#bookly-tbs .btn-info-outline[disabled]:focus,#bookly-tbs .btn-info-outline[disabled]:hover,fieldset[disabled] #bookly-tbs .btn-info-outline.focus,fieldset[disabled] #bookly-tbs .btn-info-outline:focus,fieldset[disabled] #bookly-tbs .btn-info-outline:hover{background-color:transparent;border-color:#5bc0de}#bookly-tbs .btn-info-outline .badge{color:transparent;background-color:#5bc0de}#bookly-tbs .btn-warning-outline{color:#f0ad4e;background-color:transparent;border-color:#f0ad4e}#bookly-tbs .btn-warning-outline.focus,#bookly-tbs .btn-warning-outline:focus{color:#f0ad4e;background-color:rgba(0,0,0,0);border-color:#b06d0f}#bookly-tbs .btn-warning-outline:hover{color:#f0ad4e;background-color:rgba(0,0,0,0);border-color:#eb9316}#bookly-tbs .btn-warning-outline.active,#bookly-tbs .btn-warning-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-warning-outline{color:#f0ad4e;background-color:rgba(0,0,0,0);border-color:#eb9316}#bookly-tbs .btn-warning-outline.active.focus,#bookly-tbs .btn-warning-outline.active:focus,#bookly-tbs .btn-warning-outline.active:hover,#bookly-tbs .btn-warning-outline:active.focus,#bookly-tbs .btn-warning-outline:active:focus,#bookly-tbs .btn-warning-outline:active:hover,.open>.dropdown-toggle#bookly-tbs .btn-warning-outline.focus,.open>.dropdown-toggle#bookly-tbs .btn-warning-outline:focus,.open>.dropdown-toggle#bookly-tbs .btn-warning-outline:hover{color:#f0ad4e;background-color:rgba(0,0,0,0);border-color:#b06d0f}#bookly-tbs .btn-warning-outline.active,#bookly-tbs .btn-warning-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-warning-outline{background-image:none}#bookly-tbs .btn-warning-outline.disabled.focus,#bookly-tbs .btn-warning-outline.disabled:focus,#bookly-tbs .btn-warning-outline.disabled:hover,#bookly-tbs .btn-warning-outline[disabled].focus,#bookly-tbs .btn-warning-outline[disabled]:focus,#bookly-tbs .btn-warning-outline[disabled]:hover,fieldset[disabled] #bookly-tbs .btn-warning-outline.focus,fieldset[disabled] #bookly-tbs .btn-warning-outline:focus,fieldset[disabled] #bookly-tbs .btn-warning-outline:hover{background-color:transparent;border-color:#f0ad4e}#bookly-tbs .btn-warning-outline .badge{color:transparent;background-color:#f0ad4e}#bookly-tbs .btn-danger-outline{color:#d9534f;background-color:transparent;border-color:#d9534f}#bookly-tbs .btn-danger-outline.focus,#bookly-tbs .btn-danger-outline:focus{color:#d9534f;background-color:rgba(0,0,0,0);border-color:#8b211e}#bookly-tbs .btn-danger-outline:hover{color:#d9534f;background-color:rgba(0,0,0,0);border-color:#c12e2a}#bookly-tbs .btn-danger-outline.active,#bookly-tbs .btn-danger-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-danger-outline{color:#d9534f;background-color:rgba(0,0,0,0);border-color:#c12e2a}#bookly-tbs .btn-danger-outline.active.focus,#bookly-tbs .btn-danger-outline.active:focus,#bookly-tbs .btn-danger-outline.active:hover,#bookly-tbs .btn-danger-outline:active.focus,#bookly-tbs .btn-danger-outline:active:focus,#bookly-tbs .btn-danger-outline:active:hover,.open>.dropdown-toggle#bookly-tbs .btn-danger-outline.focus,.open>.dropdown-toggle#bookly-tbs .btn-danger-outline:focus,.open>.dropdown-toggle#bookly-tbs .btn-danger-outline:hover{color:#d9534f;background-color:rgba(0,0,0,0);border-color:#8b211e}#bookly-tbs .btn-danger-outline.active,#bookly-tbs .btn-danger-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-danger-outline{background-image:none}#bookly-tbs .btn-danger-outline.disabled.focus,#bookly-tbs .btn-danger-outline.disabled:focus,#bookly-tbs .btn-danger-outline.disabled:hover,#bookly-tbs .btn-danger-outline[disabled].focus,#bookly-tbs .btn-danger-outline[disabled]:focus,#bookly-tbs .btn-danger-outline[disabled]:hover,fieldset[disabled] #bookly-tbs .btn-danger-outline.focus,fieldset[disabled] #bookly-tbs .btn-danger-outline:focus,fieldset[disabled] #bookly-tbs .btn-danger-outline:hover{background-color:transparent;border-color:#d9534f}#bookly-tbs .btn-danger-outline .badge{color:transparent;background-color:#d9534f}#bookly-tbs .btn-xlg{padding:11px 22px;font-size:15px;line-height:1.9;border-radius:4px}#bookly-tbs .callout{padding:10px;margin:21px 0;border:1px solid #e8ebf0;border-left-width:4px;border-radius:4px}#bookly-tbs .callout .callout-heading{margin-top:0;margin-bottom:5px}#bookly-tbs .callout p:last-child{margin-bottom:0}#bookly-tbs .callout+#bookly-tbs .callout{margin-top:-5px}#bookly-tbs .callout.callout-danger{border-left-color:#d9534f}#bookly-tbs .callout.callout-danger .callout-heading{color:#a94442}#bookly-tbs .callout.callout-warning{border-left-color:#f0ad4e}#bookly-tbs .callout.callout-warning .callout-heading{color:#8a6d3b}#bookly-tbs .callout.callout-info{border-left-color:#5bc0de}#bookly-tbs .callout.callout-info .callout-heading{color:#31708f}#bookly-tbs .close{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}#bookly-tbs .caret{margin-bottom:2px}#bookly-tbs .checkbox,#bookly-tbs .radio{line-height:1.4}#bookly-tbs input[type=checkbox],#bookly-tbs input[type=radio]{width:16px;height:16px}#bookly-tbs input[type=checkbox]:checked:before{margin:-3px 0 0 -4px;font:400 21px/1 dashicons}#bookly-tbs input[type=radio]:checked:before{width:8px;height:8px;margin:3px}#bookly-tbs input[type=checkbox]:not(:checked)+.bookly-toggle-label,#bookly-tbs input[type=radio]:not(:checked)+.bookly-toggle-label{color:#8a929e}#bookly-tbs select.form-control{z-index:5;min-width:1px;height:36px;-webkit-appearance:none;padding-right:22px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDQ4IDQ4IiB3aWR0aD0iNDgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDIwbDEwIDEwIDEwLTEweiIvPjxwYXRoIGQ9Ik0wIDBoNDh2NDhoLTQ4eiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==);background-repeat:no-repeat;background-position:-webkit-calc(100% - 4px) 50%;background-position:calc(100% - 4px) 50%;-webkit-background-size:24px 24px;background-size:24px 24px;-moz-appearance:none;appearance:none}@media screen and (min-width:0\0){#bookly-tbs select.form-control{padding:5px}}#bookly-tbs select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}#bookly-tbs .form-horizontal .form-inline .checkbox-inline,#bookly-tbs .form-horizontal .form-inline .radio-inline{padding-top:0}#bookly-tbs .form-horizontal .form-group .help-block{margin-bottom:0}#bookly-tbs button:active,#bookly-tbs button:focus,#bookly-tbs button:hover,#bookly-tbs input:active,#bookly-tbs input:focus,#bookly-tbs input:hover,#bookly-tbs textarea:active,#bookly-tbs textarea:focus,#bookly-tbs textarea:hover{outline:0}#bookly-tbs .help-block{margin-top:0;font-size:13px;line-height:1.3}#bookly-tbs .bookly-pretty input[type=file]{position:absolute;top:0;left:0;z-index:-1;width:.1px;height:.1px;overflow:hidden;opacity:0}#bookly-tbs .bookly-pretty input[type=file]~.bookly-pretty-indicator{display:inline-block;font-weight:400}#bookly-tbs .input-group-btn:first-child>.btn,#bookly-tbs .input-group-btn:first-child>.btn-group{border-right:0}#bookly-tbs .input-group-btn:first-child>.btn:last-child{margin-right:-1px}#bookly-tbs .input-group-btn:last-child>.btn,#bookly-tbs .input-group-btn:last-child>.btn-group{border-left:0}#bookly-tbs .list-group-item .badge{margin-top:2px}#bookly-tbs .navbar-nav>li>.dropdown-menu{border-top-width:0}#bookly-tbs .navbar-text{line-height:21px}#bookly-tbs .nav-tabs>li{margin-bottom:0}#bookly-tbs .nav-tabs>li>a{margin-right:0;color:#8a929e;border:0}#bookly-tbs .nav-tabs>li>a:after{position:absolute;right:0;bottom:0;left:0;width:100%;height:0;content:" ";border-bottom:3px solid transparent}#bookly-tbs .nav-tabs>li>a:focus,#bookly-tbs .nav-tabs>li>a:hover{background-color:transparent;outline:0;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .nav-tabs>li>a:focus:after,#bookly-tbs .nav-tabs>li>a:hover:after{border-bottom-color:#d9dee4}#bookly-tbs .nav-tabs.nav-justified>li.active>a,#bookly-tbs .nav-tabs.nav-justified>li.active>a:focus,#bookly-tbs .nav-tabs.nav-justified>li.active>a:hover,#bookly-tbs .nav-tabs>li.active>a,#bookly-tbs .nav-tabs>li.active>a:focus,#bookly-tbs .nav-tabs>li.active>a:hover{color:#08c;border-width:0 0 1px 0}#bookly-tbs .nav-tabs.nav-justified>li.active>a:after,#bookly-tbs .nav-tabs>li.active>a:after{border-bottom-color:#08c}#bookly-tbs .nav-tabs .dropdown-menu{margin-top:0}#bookly-tbs .pager li>a,#bookly-tbs .pager li>span{line-height:1.4;color:#5b6470}#bookly-tbs .pager li>a:focus,#bookly-tbs .pager li>a:hover{color:#8a929e}#bookly-tbs .panel{-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .panel>.panel-collapse>.table td,#bookly-tbs .panel>.panel-collapse>.table th,#bookly-tbs .panel>.table td,#bookly-tbs .panel>.table th,#bookly-tbs .panel>.table-responsive>.table td,#bookly-tbs .panel>.table-responsive>.table th{border-color:#d9dee4}#bookly-tbs .panel-title{font-weight:700;line-height:1.5}#bookly-tbs .btn.btn-pill{border-radius:24px}#bookly-tbs .btn.btn-pill-left{border-top-left-radius:24px;border-bottom-left-radius:24px}#bookly-tbs .btn.btn-pill-right{border-top-right-radius:24px;border-bottom-right-radius:24px}#bookly-tbs .form-control.input-pill{border-radius:24px}#bookly-tbs .form-control.input-pill-left{border-top-left-radius:24px;border-bottom-left-radius:24px}#bookly-tbs .form-control.input-pill-right{border-top-right-radius:24px;border-bottom-right-radius:24px}#bookly-tbs .label.label-pill{border-radius:.9em}#bookly-tbs .label.label-pill-left{border-top-left-radius:.9em;border-bottom-left-radius:.9em}#bookly-tbs .label.label-pill-right{border-top-right-radius:.9em;border-bottom-right-radius:.9em}#bookly-tbs .progress-lg{height:42px;border-radius:6px}#bookly-tbs .progress-lg .progress-bar{line-height:42px}#bookly-tbs .progress-sm{height:10.5px;border-radius:3px}#bookly-tbs .progress-sm .progress-bar{line-height:10.5px}#bookly-tbs .progress-xs{height:5.25px;border-radius:3px}#bookly-tbs .progress-xs .progress-bar{line-height:5.25px}#bookly-tbs a:focus,#bookly-tbs a:hover{-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .social-behance{color:#1769ff!important}#bookly-tbs .social-fivehundredpix{color:#0a0100!important}#bookly-tbs .social-dribbble{color:#ea4c89!important}#bookly-tbs .social-dropbox{color:#1f8ce6!important}#bookly-tbs .social-email{color:#7f7f7f!important}#bookly-tbs .social-facebook{color:#3b5998!important}#bookly-tbs .social-flickr{color:#ff0084!important}#bookly-tbs .social-foursquare{color:#0072b1!important}#bookly-tbs .social-github{color:#4183c4!important}#bookly-tbs .social-google{color:#dd4b39!important}#bookly-tbs .social-instagram{color:#517fa4!important}#bookly-tbs .social-linkedin{color:#007bb6!important}#bookly-tbs .social-pinterest{color:#cb2027!important}#bookly-tbs .social-skype{color:#00aff0!important}#bookly-tbs .social-smugmug{color:#8cca1e!important}#bookly-tbs .social-tumblr{color:#32506d!important}#bookly-tbs .social-twitter{color:#00aced!important}#bookly-tbs .social-vimeo{color:#1ab7ea!important}#bookly-tbs .social-vk{color:#45668e!important}#bookly-tbs .social-youtube{color:#f33!important}#bookly-tbs .social-behance:hover{color:#4a8aff!important}#bookly-tbs .social-fivehundredpix:hover{color:#3d0600!important}#bookly-tbs .social-dribbble:hover{color:#ef7aa7!important}#bookly-tbs .social-dropbox:hover{color:#4da4eb!important}#bookly-tbs .social-email:hover{color:#999!important}#bookly-tbs .social-facebook:hover{color:#4c70ba!important}#bookly-tbs .social-flickr:hover{color:#ff339d!important}#bookly-tbs .social-foursquare:hover{color:#0093e4!important}#bookly-tbs .social-github:hover{color:#689cd0!important}#bookly-tbs .social-google:hover{color:#e47365!important}#bookly-tbs .social-instagram:hover{color:#7098b8!important}#bookly-tbs .social-linkedin:hover{color:#009de9!important}#bookly-tbs .social-pinterest:hover{color:#e03e44!important}#bookly-tbs .social-skype:hover{color:#24c4ff!important}#bookly-tbs .social-smugmug:hover{color:#a5e239!important}#bookly-tbs .social-tumblr:hover{color:#426a90!important}#bookly-tbs .social-twitter:hover{color:#21c2ff!important}#bookly-tbs .social-vimeo:hover{color:#49c6ee!important}#bookly-tbs .social-vk:hover{color:#587fae!important}#bookly-tbs .social-youtube:hover{color:#f66!important}#bookly-tbs .thumbnail{overflow:auto;-webkit-box-shadow:inset 0 0 0 2px #e8ebf0;box-shadow:inset 0 0 0 2px #e8ebf0}#bookly-tbs .thumbnail .caption p:last-child{margin-bottom:0}#bookly-tbs .thumbnail .caption .heading{margin:0 0 5px}#bookly-tbs blockquote p{font-family:georgia,"times new roman",times,serif;font-size:18px}#bookly-tbs p{font-size:15px}#bookly-tbs .bookly-letter-spacing-sm{letter-spacing:.05em}#bookly-tbs .bookly-letter-spacing-md{letter-spacing:.1em}#bookly-tbs .bookly-letter-spacing-lg{letter-spacing:.2em}#bookly-tbs .bookly-line-height-sm{line-height:1.53846154}#bookly-tbs .bookly-line-height-base{line-height:1.4}#bookly-tbs .bookly-line-height-lg{line-height:1.3333333}#bookly-tbs .bookly-line-height-computed{line-height:21px}#bookly-tbs .bookly-font-xs{font-size:12px}#bookly-tbs .bookly-font-sm{font-size:14px}#bookly-tbs .bookly-font-md{font-size:15px}#bookly-tbs .bookly-font-lg{font-size:20px}#bookly-tbs .bookly-font-smaller{font-size:13px;text-transform:uppercase}#bookly-tbs .bookly-font-lighter{font-weight:lighter}#bookly-tbs .bookly-font-normal{font-weight:400}#bookly-tbs .bookly-font-bold{font-weight:700}#bookly-tbs .bookly-font-serif{font-family:georgia,"times new roman",times,serif}#bookly-tbs .bookly-font-italic{font-style:italic}#bookly-tbs .bookly-text-wrap{word-wrap:break-word;white-space:normal}#bookly-tbs .bookly-inline{display:inline}#bookly-tbs .bookly-bl-ock{display:block}#bookly-tbs .bookly-inline-block{display:inline-block}#bookly-tbs .bookly-nowrap{white-space:nowrap}#bookly-tbs .bookly-break-word{word-wrap:break-word}#bookly-tbs .bookly-truncate{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .bookly-bottom-left,#bookly-tbs .bookly-bottom-right,#bookly-tbs .bookly-top-left,#bookly-tbs .bookly-top-right{position:absolute}#bookly-tbs .bookly-top-left,#bookly-tbs .bookly-top-right{top:0}#bookly-tbs .bookly-bottom-left,#bookly-tbs .bookly-bottom-right{bottom:0}#bookly-tbs .bookly-bottom-left,#bookly-tbs .bookly-top-left{left:0}#bookly-tbs .bookly-bottom-right,#bookly-tbs .bookly-top-right{right:0}#bookly-tbs .bookly-relative{position:relative}#bookly-tbs .bookly-fixed{position:fixed}#bookly-tbs .bookly-vertical-top{vertical-align:top}#bookly-tbs .bookly-vertical-middle{vertical-align:middle}#bookly-tbs .bookly-vertical-bottom{vertical-align:bottom}#bookly-tbs .bookly-margin-horizontal-remove,#bookly-tbs .bookly-margin-left-remove,#bookly-tbs .bookly-margin-remove{margin-left:0!important}#bookly-tbs .bookly-margin-horizontal-remove,#bookly-tbs .bookly-margin-remove,#bookly-tbs .bookly-margin-right-remove{margin-right:0!important}#bookly-tbs .bookly-margin-remove,#bookly-tbs .bookly-margin-top-remove,#bookly-tbs .bookly-margin-vertical-remove{margin-top:0!important}#bookly-tbs .bookly-margin-bottom-remove,#bookly-tbs .bookly-margin-remove,#bookly-tbs .bookly-margin-vertical-remove{margin-bottom:0!important}#bookly-tbs .bookly-margin-horizontal-xs,#bookly-tbs .bookly-margin-left-xs,#bookly-tbs .bookly-margin-xs{margin-left:5px!important}#bookly-tbs .bookly-margin-horizontal-xs,#bookly-tbs .bookly-margin-right-xs,#bookly-tbs .bookly-margin-xs{margin-right:5px!important}#bookly-tbs .bookly-margin-top-xs,#bookly-tbs .bookly-margin-vertical-xs,#bookly-tbs .bookly-margin-xs{margin-top:5px!important}#bookly-tbs .bookly-margin-bottom-xs,#bookly-tbs .bookly-margin-vertical-xs,#bookly-tbs .bookly-margin-xs{margin-bottom:5px!important}#bookly-tbs .bookly-margin-horizontal-sm,#bookly-tbs .bookly-margin-left-sm,#bookly-tbs .bookly-margin-sm{margin-left:10px!important}#bookly-tbs .bookly-margin-horizontal-sm,#bookly-tbs .bookly-margin-right-sm,#bookly-tbs .bookly-margin-sm{margin-right:10px!important}#bookly-tbs .bookly-margin-sm,#bookly-tbs .bookly-margin-top-sm,#bookly-tbs .bookly-margin-vertical-sm{margin-top:10px!important}#bookly-tbs .bookly-margin-bottom-sm,#bookly-tbs .bookly-margin-sm,#bookly-tbs .bookly-margin-vertical-sm{margin-bottom:10px!important}#bookly-tbs .bookly-margin-horizontal-md,#bookly-tbs .bookly-margin-left-md,#bookly-tbs .bookly-margin-md{margin-left:12px!important}#bookly-tbs .bookly-margin-horizontal-md,#bookly-tbs .bookly-margin-md,#bookly-tbs .bookly-margin-right-md{margin-right:12px!important}#bookly-tbs .bookly-margin-md,#bookly-tbs .bookly-margin-top-md,#bookly-tbs .bookly-margin-vertical-md{margin-top:12px!important}#bookly-tbs .bookly-margin-bottom-md,#bookly-tbs .bookly-margin-md,#bookly-tbs .bookly-margin-vertical-md{margin-bottom:12px!important}#bookly-tbs .bookly-margin-horizontal-lg,#bookly-tbs .bookly-margin-left-lg,#bookly-tbs .bookly-margin-lg{margin-left:16px!important}#bookly-tbs .bookly-margin-horizontal-lg,#bookly-tbs .bookly-margin-lg,#bookly-tbs .bookly-margin-right-lg{margin-right:16px!important}#bookly-tbs .bookly-margin-lg,#bookly-tbs .bookly-margin-top-lg,#bookly-tbs .bookly-margin-vertical-lg{margin-top:16px!important}#bookly-tbs .bookly-margin-bottom-lg,#bookly-tbs .bookly-margin-lg,#bookly-tbs .bookly-margin-vertical-lg{margin-bottom:16px!important}#bookly-tbs .bookly-margin-horizontal-xlg,#bookly-tbs .bookly-margin-left-xlg,#bookly-tbs .bookly-margin-xlg{margin-left:32px!important}#bookly-tbs .bookly-margin-horizontal-xlg,#bookly-tbs .bookly-margin-right-xlg,#bookly-tbs .bookly-margin-xlg{margin-right:32px!important}#bookly-tbs .bookly-margin-top-xlg,#bookly-tbs .bookly-margin-vertical-xlg,#bookly-tbs .bookly-margin-xlg{margin-top:32px!important}#bookly-tbs .bookly-margin-bottom-xlg,#bookly-tbs .bookly-margin-vertical-xlg,#bookly-tbs .bookly-margin-xlg{margin-bottom:32px!important}@media (max-width:767px){#bookly-tbs .bookly-margin-horizontal-screenxs-remove,#bookly-tbs .bookly-margin-left-screenxs-remove,#bookly-tbs .bookly-margin-screenxs-remove{margin-left:0!important}#bookly-tbs .bookly-margin-horizontal-screenxs-remove,#bookly-tbs .bookly-margin-right-screenxs-remove,#bookly-tbs .bookly-margin-screenxs-remove{margin-right:0!important}#bookly-tbs .bookly-margin-screenxs-remove,#bookly-tbs .bookly-margin-top-screenxs-remove,#bookly-tbs .bookly-margin-vertical-screenxs-remove{margin-top:0!important}#bookly-tbs .bookly-margin-bottom-screenxs-remove,#bookly-tbs .bookly-margin-screenxs-remove,#bookly-tbs .bookly-margin-vertical-screenxs-remove{margin-bottom:0!important}#bookly-tbs .bookly-margin-horizontal-screenxs-xs,#bookly-tbs .bookly-margin-left-screenxs-xs,#bookly-tbs .bookly-margin-screenxs-xs{margin-left:5px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-xs,#bookly-tbs .bookly-margin-right-screenxs-xs,#bookly-tbs .bookly-margin-screenxs-xs{margin-right:5px!important}#bookly-tbs .bookly-margin-screenxs-xs,#bookly-tbs .bookly-margin-top-screenxs-xs,#bookly-tbs .bookly-margin-vertical-screenxs-xs{margin-top:5px!important}#bookly-tbs .bookly-margin-bottom-screenxs-xs,#bookly-tbs .bookly-margin-screenxs-xs,#bookly-tbs .bookly-margin-vertical-screenxs-xs{margin-bottom:5px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-sm,#bookly-tbs .bookly-margin-left-screenxs-sm,#bookly-tbs .bookly-margin-screenxs-sm{margin-left:10px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-sm,#bookly-tbs .bookly-margin-right-screenxs-sm,#bookly-tbs .bookly-margin-screenxs-sm{margin-right:10px!important}#bookly-tbs .bookly-margin-screenxs-sm,#bookly-tbs .bookly-margin-top-screenxs-sm,#bookly-tbs .bookly-margin-vertical-screenxs-sm{margin-top:10px!important}#bookly-tbs .bookly-margin-bottom-screenxs-sm,#bookly-tbs .bookly-margin-screenxs-sm,#bookly-tbs .bookly-margin-vertical-screenxs-sm{margin-bottom:10px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-md,#bookly-tbs .bookly-margin-left-screenxs-md,#bookly-tbs .bookly-margin-screenxs-md{margin-left:12px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-md,#bookly-tbs .bookly-margin-right-screenxs-md,#bookly-tbs .bookly-margin-screenxs-md{margin-right:12px!important}#bookly-tbs .bookly-margin-screenxs-md,#bookly-tbs .bookly-margin-top-screenxs-md,#bookly-tbs .bookly-margin-vertical-screenxs-md{margin-top:12px!important}#bookly-tbs .bookly-margin-bottom-screenxs-md,#bookly-tbs .bookly-margin-screenxs-md,#bookly-tbs .bookly-margin-vertical-screenxs-md{margin-bottom:12px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-lg,#bookly-tbs .bookly-margin-left-screenxs-lg,#bookly-tbs .bookly-margin-screenxs-lg{margin-left:16px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-lg,#bookly-tbs .bookly-margin-right-screenxs-lg,#bookly-tbs .bookly-margin-screenxs-lg{margin-right:16px!important}#bookly-tbs .bookly-margin-screenxs-lg,#bookly-tbs .bookly-margin-top-screenxs-lg,#bookly-tbs .bookly-margin-vertical-screenxs-lg{margin-top:16px!important}#bookly-tbs .bookly-margin-bottom-screenxs-lg,#bookly-tbs .bookly-margin-screenxs-lg,#bookly-tbs .bookly-margin-vertical-screenxs-lg{margin-bottom:16px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-xlg,#bookly-tbs .bookly-margin-left-screenxs-xlg,#bookly-tbs .bookly-margin-screenxs-xlg{margin-left:32px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-xlg,#bookly-tbs .bookly-margin-right-screenxs-xlg,#bookly-tbs .bookly-margin-screenxs-xlg{margin-right:32px!important}#bookly-tbs .bookly-margin-screenxs-xlg,#bookly-tbs .bookly-margin-top-screenxs-xlg,#bookly-tbs .bookly-margin-vertical-screenxs-xlg{margin-top:32px!important}#bookly-tbs .bookly-margin-bottom-screenxs-xlg,#bookly-tbs .bookly-margin-screenxs-xlg,#bookly-tbs .bookly-margin-vertical-screenxs-xlg{margin-bottom:32px!important}}@media (min-width:768px){#bookly-tbs .bookly-margin-horizontal-screensm-remove,#bookly-tbs .bookly-margin-left-screensm-remove,#bookly-tbs .bookly-margin-screensm-remove{margin-left:0!important}#bookly-tbs .bookly-margin-horizontal-screensm-remove,#bookly-tbs .bookly-margin-right-screensm-remove,#bookly-tbs .bookly-margin-screensm-remove{margin-right:0!important}#bookly-tbs .bookly-margin-screensm-remove,#bookly-tbs .bookly-margin-top-screensm-remove,#bookly-tbs .bookly-margin-vertical-screensm-remove{margin-top:0!important}#bookly-tbs .bookly-margin-bottom-screensm-remove,#bookly-tbs .bookly-margin-screensm-remove,#bookly-tbs .bookly-margin-vertical-screensm-remove{margin-bottom:0!important}#bookly-tbs .bookly-margin-horizontal-screensm-xs,#bookly-tbs .bookly-margin-left-screensm-xs,#bookly-tbs .bookly-margin-screensm-xs{margin-left:5px!important}#bookly-tbs .bookly-margin-horizontal-screensm-xs,#bookly-tbs .bookly-margin-right-screensm-xs,#bookly-tbs .bookly-margin-screensm-xs{margin-right:5px!important}#bookly-tbs .bookly-margin-screensm-xs,#bookly-tbs .bookly-margin-top-screensm-xs,#bookly-tbs .bookly-margin-vertical-screensm-xs{margin-top:5px!important}#bookly-tbs .bookly-margin-bottom-screensm-xs,#bookly-tbs .bookly-margin-screensm-xs,#bookly-tbs .bookly-margin-vertical-screensm-xs{margin-bottom:5px!important}#bookly-tbs .bookly-margin-horizontal-screensm-sm,#bookly-tbs .bookly-margin-left-screensm-sm,#bookly-tbs .bookly-margin-screensm-sm{margin-left:10px!important}#bookly-tbs .bookly-margin-horizontal-screensm-sm,#bookly-tbs .bookly-margin-right-screensm-sm,#bookly-tbs .bookly-margin-screensm-sm{margin-right:10px!important}#bookly-tbs .bookly-margin-screensm-sm,#bookly-tbs .bookly-margin-top-screensm-sm,#bookly-tbs .bookly-margin-vertical-screensm-sm{margin-top:10px!important}#bookly-tbs .bookly-margin-bottom-screensm-sm,#bookly-tbs .bookly-margin-screensm-sm,#bookly-tbs .bookly-margin-vertical-screensm-sm{margin-bottom:10px!important}#bookly-tbs .bookly-margin-horizontal-screensm-md,#bookly-tbs .bookly-margin-left-screensm-md,#bookly-tbs .bookly-margin-screensm-md{margin-left:12px!important}#bookly-tbs .bookly-margin-horizontal-screensm-md,#bookly-tbs .bookly-margin-right-screensm-md,#bookly-tbs .bookly-margin-screensm-md{margin-right:12px!important}#bookly-tbs .bookly-margin-screensm-md,#bookly-tbs .bookly-margin-top-screensm-md,#bookly-tbs .bookly-margin-vertical-screensm-md{margin-top:12px!important}#bookly-tbs .bookly-margin-bottom-screensm-md,#bookly-tbs .bookly-margin-screensm-md,#bookly-tbs .bookly-margin-vertical-screensm-md{margin-bottom:12px!important}#bookly-tbs .bookly-margin-horizontal-screensm-lg,#bookly-tbs .bookly-margin-left-screensm-lg,#bookly-tbs .bookly-margin-screensm-lg{margin-left:16px!important}#bookly-tbs .bookly-margin-horizontal-screensm-lg,#bookly-tbs .bookly-margin-right-screensm-lg,#bookly-tbs .bookly-margin-screensm-lg{margin-right:16px!important}#bookly-tbs .bookly-margin-screensm-lg,#bookly-tbs .bookly-margin-top-screensm-lg,#bookly-tbs .bookly-margin-vertical-screensm-lg{margin-top:16px!important}#bookly-tbs .bookly-margin-bottom-screensm-lg,#bookly-tbs .bookly-margin-screensm-lg,#bookly-tbs .bookly-margin-vertical-screensm-lg{margin-bottom:16px!important}#bookly-tbs .bookly-margin-horizontal-screensm-xlg,#bookly-tbs .bookly-margin-left-screensm-xlg,#bookly-tbs .bookly-margin-screensm-xlg{margin-left:32px!important}#bookly-tbs .bookly-margin-horizontal-screensm-xlg,#bookly-tbs .bookly-margin-right-screensm-xlg,#bookly-tbs .bookly-margin-screensm-xlg{margin-right:32px!important}#bookly-tbs .bookly-margin-screensm-xlg,#bookly-tbs .bookly-margin-top-screensm-xlg,#bookly-tbs .bookly-margin-vertical-screensm-xlg{margin-top:32px!important}#bookly-tbs .bookly-margin-bottom-screensm-xlg,#bookly-tbs .bookly-margin-screensm-xlg,#bookly-tbs .bookly-margin-vertical-screensm-xlg{margin-bottom:32px!important}}@media (min-width:992px){#bookly-tbs .bookly-margin-horizontal-screenmd-remove,#bookly-tbs .bookly-margin-left-screenmd-remove,#bookly-tbs .bookly-margin-screenmd-remove{margin-left:0!important}#bookly-tbs .bookly-margin-horizontal-screenmd-remove,#bookly-tbs .bookly-margin-right-screenmd-remove,#bookly-tbs .bookly-margin-screenmd-remove{margin-right:0!important}#bookly-tbs .bookly-margin-screenmd-remove,#bookly-tbs .bookly-margin-top-screenmd-remove,#bookly-tbs .bookly-margin-vertical-screenmd-remove{margin-top:0!important}#bookly-tbs .bookly-margin-bottom-screenmd-remove,#bookly-tbs .bookly-margin-screenmd-remove,#bookly-tbs .bookly-margin-vertical-screenmd-remove{margin-bottom:0!important}#bookly-tbs .bookly-margin-horizontal-screenmd-xs,#bookly-tbs .bookly-margin-left-screenmd-xs,#bookly-tbs .bookly-margin-screenmd-xs{margin-left:5px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-xs,#bookly-tbs .bookly-margin-right-screenmd-xs,#bookly-tbs .bookly-margin-screenmd-xs{margin-right:5px!important}#bookly-tbs .bookly-margin-screenmd-xs,#bookly-tbs .bookly-margin-top-screenmd-xs,#bookly-tbs .bookly-margin-vertical-screenmd-xs{margin-top:5px!important}#bookly-tbs .bookly-margin-bottom-screenmd-xs,#bookly-tbs .bookly-margin-screenmd-xs,#bookly-tbs .bookly-margin-vertical-screenmd-xs{margin-bottom:5px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-sm,#bookly-tbs .bookly-margin-left-screenmd-sm,#bookly-tbs .bookly-margin-screenmd-sm{margin-left:10px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-sm,#bookly-tbs .bookly-margin-right-screenmd-sm,#bookly-tbs .bookly-margin-screenmd-sm{margin-right:10px!important}#bookly-tbs .bookly-margin-screenmd-sm,#bookly-tbs .bookly-margin-top-screenmd-sm,#bookly-tbs .bookly-margin-vertical-screenmd-sm{margin-top:10px!important}#bookly-tbs .bookly-margin-bottom-screenmd-sm,#bookly-tbs .bookly-margin-screenmd-sm,#bookly-tbs .bookly-margin-vertical-screenmd-sm{margin-bottom:10px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-md,#bookly-tbs .bookly-margin-left-screenmd-md,#bookly-tbs .bookly-margin-screenmd-md{margin-left:12px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-md,#bookly-tbs .bookly-margin-right-screenmd-md,#bookly-tbs .bookly-margin-screenmd-md{margin-right:12px!important}#bookly-tbs .bookly-margin-screenmd-md,#bookly-tbs .bookly-margin-top-screenmd-md,#bookly-tbs .bookly-margin-vertical-screenmd-md{margin-top:12px!important}#bookly-tbs .bookly-margin-bottom-screenmd-md,#bookly-tbs .bookly-margin-screenmd-md,#bookly-tbs .bookly-margin-vertical-screenmd-md{margin-bottom:12px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-lg,#bookly-tbs .bookly-margin-left-screenmd-lg,#bookly-tbs .bookly-margin-screenmd-lg{margin-left:16px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-lg,#bookly-tbs .bookly-margin-right-screenmd-lg,#bookly-tbs .bookly-margin-screenmd-lg{margin-right:16px!important}#bookly-tbs .bookly-margin-screenmd-lg,#bookly-tbs .bookly-margin-top-screenmd-lg,#bookly-tbs .bookly-margin-vertical-screenmd-lg{margin-top:16px!important}#bookly-tbs .bookly-margin-bottom-screenmd-lg,#bookly-tbs .bookly-margin-screenmd-lg,#bookly-tbs .bookly-margin-vertical-screenmd-lg{margin-bottom:16px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-xlg,#bookly-tbs .bookly-margin-left-screenmd-xlg,#bookly-tbs .bookly-margin-screenmd-xlg{margin-left:32px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-xlg,#bookly-tbs .bookly-margin-right-screenmd-xlg,#bookly-tbs .bookly-margin-screenmd-xlg{margin-right:32px!important}#bookly-tbs .bookly-margin-screenmd-xlg,#bookly-tbs .bookly-margin-top-screenmd-xlg,#bookly-tbs .bookly-margin-vertical-screenmd-xlg{margin-top:32px!important}#bookly-tbs .bookly-margin-bottom-screenmd-xlg,#bookly-tbs .bookly-margin-screenmd-xlg,#bookly-tbs .bookly-margin-vertical-screenmd-xlg{margin-bottom:32px!important}}#bookly-tbs .bookly-padding-horizontal-remove,#bookly-tbs .bookly-padding-left-remove,#bookly-tbs .bookly-padding-remove{padding-left:0!important}#bookly-tbs .bookly-padding-horizontal-remove,#bookly-tbs .bookly-padding-remove,#bookly-tbs .bookly-padding-right-remove{padding-right:0!important}#bookly-tbs .bookly-padding-remove,#bookly-tbs .bookly-padding-top-remove,#bookly-tbs .bookly-padding-vertical-remove{padding-top:0!important}#bookly-tbs .bookly-padding-bottom-remove,#bookly-tbs .bookly-padding-remove,#bookly-tbs .bookly-padding-vertical-remove{padding-bottom:0!important}#bookly-tbs .bookly-padding-horizontal-xs,#bookly-tbs .bookly-padding-left-xs,#bookly-tbs .bookly-padding-xs{padding-left:5px!important}#bookly-tbs .bookly-padding-horizontal-xs,#bookly-tbs .bookly-padding-right-xs,#bookly-tbs .bookly-padding-xs{padding-right:5px!important}#bookly-tbs .bookly-padding-top-xs,#bookly-tbs .bookly-padding-vertical-xs,#bookly-tbs .bookly-padding-xs{padding-top:5px!important}#bookly-tbs .bookly-padding-bottom-xs,#bookly-tbs .bookly-padding-vertical-xs,#bookly-tbs .bookly-padding-xs{padding-bottom:5px!important}#bookly-tbs .bookly-padding-horizontal-sm,#bookly-tbs .bookly-padding-left-sm,#bookly-tbs .bookly-padding-sm{padding-left:10px!important}#bookly-tbs .bookly-padding-horizontal-sm,#bookly-tbs .bookly-padding-right-sm,#bookly-tbs .bookly-padding-sm{padding-right:10px!important}#bookly-tbs .bookly-padding-sm,#bookly-tbs .bookly-padding-top-sm,#bookly-tbs .bookly-padding-vertical-sm{padding-top:10px!important}#bookly-tbs .bookly-padding-bottom-sm,#bookly-tbs .bookly-padding-sm,#bookly-tbs .bookly-padding-vertical-sm{padding-bottom:10px!important}#bookly-tbs .bookly-padding-horizontal-md,#bookly-tbs .bookly-padding-left-md,#bookly-tbs .bookly-padding-md{padding-left:12px!important}#bookly-tbs .bookly-padding-horizontal-md,#bookly-tbs .bookly-padding-md,#bookly-tbs .bookly-padding-right-md{padding-right:12px!important}#bookly-tbs .bookly-padding-md,#bookly-tbs .bookly-padding-top-md,#bookly-tbs .bookly-padding-vertical-md{padding-top:12px!important}#bookly-tbs .bookly-padding-bottom-md,#bookly-tbs .bookly-padding-md,#bookly-tbs .bookly-padding-vertical-md{padding-bottom:12px!important}#bookly-tbs .bookly-padding-horizontal-lg,#bookly-tbs .bookly-padding-left-lg,#bookly-tbs .bookly-padding-lg{padding-left:16px!important}#bookly-tbs .bookly-padding-horizontal-lg,#bookly-tbs .bookly-padding-lg,#bookly-tbs .bookly-padding-right-lg{padding-right:16px!important}#bookly-tbs .bookly-padding-lg,#bookly-tbs .bookly-padding-top-lg,#bookly-tbs .bookly-padding-vertical-lg{padding-top:16px!important}#bookly-tbs .bookly-padding-bottom-lg,#bookly-tbs .bookly-padding-lg,#bookly-tbs .bookly-padding-vertical-lg{padding-bottom:16px!important}#bookly-tbs .bookly-padding-horizontal-xlg,#bookly-tbs .bookly-padding-left-xlg,#bookly-tbs .bookly-padding-xlg{padding-left:32px!important}#bookly-tbs .bookly-padding-horizontal-xlg,#bookly-tbs .bookly-padding-right-xlg,#bookly-tbs .bookly-padding-xlg{padding-right:32px!important}#bookly-tbs .bookly-padding-top-xlg,#bookly-tbs .bookly-padding-vertical-xlg,#bookly-tbs .bookly-padding-xlg{padding-top:32px!important}#bookly-tbs .bookly-padding-bottom-xlg,#bookly-tbs .bookly-padding-vertical-xlg,#bookly-tbs .bookly-padding-xlg{padding-bottom:32px!important}#bookly-tbs .bookly-flexbox{display:table;width:100%;max-width:100%;height:100%}#bookly-tbs .bookly-flexbox .bookly-flex-row{display:table-row}#bookly-tbs .bookly-flexbox .bookly-flex-cell{display:table-cell;height:100%;word-wrap:break-word}@media (min-width:992px){#bookly-tbs .bookly-flexbox .bookly-flex-cell-sm{display:table-cell;height:100%;word-wrap:break-word}}#bookly-tbs .bookly-bg-transparent{background-color:transparent}#bookly-tbs .bookly-bg-white{background-color:#fff}#bookly-tbs .bookly-color-white{color:#fff}#bookly-tbs .bookly-bg-black{background-color:#000}#bookly-tbs .bookly-color-black{color:#000}#bookly-tbs .bookly-bg-gray{background-color:#8a929e}#bookly-tbs .bookly-color-gray{color:#8a929e}#bookly-tbs .bookly-bg-light{background-color:#d9dee4}#bookly-tbs .bookly-color-light{color:#d9dee4}#bookly-tbs .bookly-bg-brand-primary{background-color:#08c}#bookly-tbs .bookly-color-brand-primary{color:#08c}#bookly-tbs .bookly-bg-brand-success{background-color:#5cb85c}#bookly-tbs .bookly-color-brand-success{color:#5cb85c}#bookly-tbs .bookly-bg-brand-info{background-color:#5bc0de}#bookly-tbs .bookly-color-brand-info{color:#5bc0de}#bookly-tbs .bookly-bg-brand-warning{background-color:#f0ad4e}#bookly-tbs .bookly-color-brand-warning{color:#f0ad4e}#bookly-tbs .bookly-bg-brand-danger{background-color:#d9534f}#bookly-tbs .bookly-color-brand-danger{color:#d9534f}#bookly-tbs .bookly-cursor-pointer{cursor:pointer}#bookly-tbs .bookly-cursor-move{cursor:move}@media (max-width:767px){#bookly-tbs .bookly-text-xs-center{text-align:center!important}#bookly-tbs .bookly-text-xs-left{text-align:left!important}#bookly-tbs .bookly-text-xs-right{text-align:right!important}#bookly-tbs .bookly-btn-block-xs{display:block;width:100%}}#bookly-tbs table.dataTable{max-width:none!important;margin-top:6px!important;margin-bottom:6px!important;clear:both;border-collapse:separate!important}#bookly-tbs table.dataTable td,#bookly-tbs table.dataTable th{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;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{display:inline-block;width:75px}#bookly-tbs div.dataTables_wrapper div.dataTables_filter{text-align:right}#bookly-tbs div.dataTables_wrapper div.dataTables_filter label{font-weight:400;text-align:left;white-space:nowrap}#bookly-tbs div.dataTables_wrapper div.dataTables_filter input{display:inline-block;width:auto;margin-left:.5em}#bookly-tbs div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}#bookly-tbs div.dataTables_wrapper div.dataTables_paginate{margin:0;text-align:right;white-space:nowrap}#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;padding:1em 0;margin-top:-26px;margin-left:-100px;text-align:center}#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{position:relative;cursor:pointer}#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{position:absolute;right:8px;bottom:-webkit-calc(50% - 9px);bottom:calc(50% - 9px);display:block;font-family:'Glyphicons Halflings';font-size:12px;opacity:.5}#bookly-tbs table.dataTable thead .sorting:after{content:"\e150";opacity:.2}#bookly-tbs table.dataTable thead .sorting_asc:after{content:"\e155"}#bookly-tbs table.dataTable thead .sorting_desc:after{content:"\e156"}#bookly-tbs table.dataTable thead .sorting_asc_disabled:after,#bookly-tbs table.dataTable thead .sorting_desc_disabled:after{color:#eee}#bookly-tbs div.dataTables_scrollHead table.dataTable{margin-bottom:0!important}#bookly-tbs div.dataTables_scrollBody table{margin-top:0!important;margin-bottom:0!important;border-top:none}#bookly-tbs div.dataTables_scrollBody table thead .sorting:after,#bookly-tbs div.dataTables_scrollBody table thead .sorting_asc:after,#bookly-tbs div.dataTables_scrollBody table thead .sorting_desc:after{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 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-condensed>thead>tr>th{padding-right:20px}#bookly-tbs table.dataTable.table-condensed .sorting:after,#bookly-tbs table.dataTable.table-condensed .sorting_asc:after,#bookly-tbs table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}#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.row{margin:0}#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.row>div[class^=col-]:last-child{padding-right:0}#bookly-tbs div.dt-button-info{position:fixed;top:50%;left:50%;z-index:21;width:400px;margin-top:-100px;margin-left:-200px;text-align:center;background-color:#fff;border:2px solid #111;border-radius:3px;-webkit-box-shadow:3px 3px 8px rgba(0,0,0,.3);box-shadow:3px 3px 8px rgba(0,0,0,.3)}#bookly-tbs div.dt-button-info h2{padding:.5em;margin:0;font-weight:400;background-color:#f3f3f3;border-bottom:1px solid #ddd}#bookly-tbs div.dt-button-info>div{padding:1em}#bookly-tbs ul.dt-button-collection.dropdown-menu{z-index:2002;display:block;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}#bookly-tbs ul.dt-button-collection.dropdown-menu.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}#bookly-tbs ul.dt-button-collection.dropdown-menu.fixed.two-column{margin-left:-150px}#bookly-tbs ul.dt-button-collection.dropdown-menu.fixed.three-column{margin-left:-225px}#bookly-tbs ul.dt-button-collection.dropdown-menu.fixed.four-column{margin-left:-300px}#bookly-tbs ul.dt-button-collection.dropdown-menu>*{-webkit-column-break-inside:avoid;page-break-inside:avoid;break-inside:avoid}#bookly-tbs ul.dt-button-collection.dropdown-menu.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}#bookly-tbs ul.dt-button-collection.dropdown-menu.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}#bookly-tbs ul.dt-button-collection.dropdown-menu.four-column{width:600px;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-background{position:fixed;top:0;left:0;z-index:2001;width:100%;height:100%}@media screen and (max-width:767px){#bookly-tbs div.dt-buttons{float:none;width:100%;margin-bottom:.5em;text-align:center}#bookly-tbs div.dt-buttons a.btn{float:none}}#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>td:first-child,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child{position:relative;padding-left:30px;cursor:pointer}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>td:first-child:before,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child:before{position:absolute;top:9px;left:4px;display:block;width:18px;height:18px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;font-family:'Courier New',Courier,monospace;font-size:18px;font-weight:700;line-height:18px;color:#5b6470;text-align:center;content:'+';background-color:transparent;border:0;border-radius:18px;-webkit-box-shadow:0 0 2px #5b6470;box-shadow:0 0 2px #5b6470}#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:transparent}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr.child td:before{display:none}#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;width:14px;height:14px;line-height:14px;text-indent:3px;border-radius:14px}#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{position:absolute;top:50%;left:50%;display:block;width:16px;height:16px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;margin-top:-10px;margin-left:-10px;font-family:'Courier New',Courier,monospace;line-height:14px;color:#fff;text-align:center;content:'+';background-color:#337ab7;border:2px solid #fff;border-radius:14px;-webkit-box-shadow:0 0 3px #444;box-shadow:0 0 3px #444}#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{display:inline-block;width:100%;padding:0;margin:0;list-style-type:none}#bookly-tbs table.dataTable>tbody>tr.child ul li{padding:.3em 0;margin-bottom:.3em;border-bottom:1px solid #efefef}#bookly-tbs table.dataTable>tbody>tr.child ul li:first-child{padding-top:0}#bookly-tbs table.dataTable>tbody>tr.child ul 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;top:0;left:0;z-index:100;width:100%;height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:10em 1em}#bookly-tbs div.dtr-modal div.dtr-modal-display{position:absolute;top:0;right:0;bottom:0;left:0;z-index:102;width:50%;height:50%;margin:auto;overflow:auto;background-color:#f5f5f7;border:1px solid #000;border-radius:.5em;-webkit-box-shadow:0 12px 30px rgba(0,0,0,.6);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;z-index:12;width:22px;height:22px;text-align:center;cursor:pointer;background-color:#f9f9f9;border:1px solid #eaeaea;border-radius:3px}#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;right:0;bottom:0;left: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;z-index:2001;table-layout:fixed;outline:2px solid #337ab7;outline-offset:-2px;opacity:.8}#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 .jCal-wrap{margin-right:-10px;margin-left:-10px}#bookly-tbs .jCal{position:relative;width:100%}#bookly-tbs .jCalMo{position:relative;display:block;padding:0 15px;margin-bottom:15px;white-space:nowrap}@media (min-width:768px){#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{width:100%;padding:10px 0;font-weight:700;text-align:center}#bookly-tbs .jCal .monthYear{float:right;text-align:left}#bookly-tbs .jCal .month{width:100%}#bookly-tbs .jCal .monthSelect{background:#e8ebf0}#bookly-tbs .jCal .monthSelector{position:absolute}#bookly-tbs .jCal .monthSelectorShadow{position:absolute;padding:0;background:#8a929e}#bookly-tbs .jCal .monthNameHover,#bookly-tbs .jCal .monthYearHover{color:#8a929e;background:#e8ebf0}#bookly-tbs .jCal .monthSelectHover{color:#fff;background:#08c}#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:-webkit-calc(14.2857% + 1px);width:calc(14.2857% + 1px);margin-right:-1px;text-align:center;cursor:default;border:1px solid #e8ebf0;border-width:0 1px 1px 1px}#bookly-tbs .jCalMo .dow{font-size:12px;line-height:30px;background:#e8ebf0;border-bottom:0}#bookly-tbs .jCalMo .day{font-size:13px;line-height:30px;cursor:pointer;background:#fff}#bookly-tbs .jCalMo .invday{color:#8a929e;text-decoration:line-through;background:#e8ebf0}#bookly-tbs .jCalMo .aday,#bookly-tbs .jCalMo .pday{font-size:13px;line-height:30px;color:#d9dee4;background:rgba(232,235,240,.3)}#bookly-tbs .jCalMo .overDay{color:#3e424a;background:rgba(0,136,204,.2)}#bookly-tbs .jCalMo .holidayDay{color:#fff;background:#f0ad4e}#bookly-tbs .jCalMo .holidayDay.repeatDay{color:#fff;background:#d9534f}#bookly-tbs .jCalMo .selectedDay,#bookly-tbs .jCalMo .selectedDay.repeatDay{color:#fff;background:#08c}#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;width:700px;height:930px;overflow:hidden}@media (min-width:768px){#bookly-tbs .jCalMo{float:left;width:50%}}@media (min-width:1200px){#bookly-tbs .jCalMo{float:left;width:33.33333333%}}#bookly-tbs .bookly-loading{position:relative;height:100px}#bookly-tbs .bookly-loading:before{position:absolute;top:-webkit-calc(50% - 16px);top:calc(50% - 16px);left:-webkit-calc(50% - 16px);left:calc(50% - 16px);width:32px;height:32px;content:'';background:url(../../images/ajax_loader_32x32.gif) no-repeat;-webkit-background-size:contain;background-size:contain}#bookly-tbs .bookly-loading-16{position:relative;display:inline-block;min-width:16px;min-height:16px}#bookly-tbs .bookly-loading-16:before{position:absolute;top:-webkit-calc(50% - 8px);top:calc(50% - 8px);left:-webkit-calc(50% - 8px);left:calc(50% - 8px);width:16px;height:16px;content:'';background:url(../../images/loading.gif) no-repeat;-webkit-background-size:contain;background-size:contain}#bookly-tbs .select2 .select2-selection{height:35px!important;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .select2 .select2-selection__choice{display:none}#bookly-tbs .select2 .select2-selection ul{padding:0 16px;margin-bottom:0}#bookly-tbs .select2 .select2-search{float:none;margin:6px 0}#bookly-tbs .select2 .select2-search__field{width:100%!important;padding:0;margin:0;border:0;-webkit-box-shadow:none!important;box-shadow:none!important}#bookly-tbs .select2 .select2-selection__clear{top:-2px}#bookly-tbs .select2 .select2-selection__arrow{top:-4px}#bookly-tbs .bookly-no-borders,#bookly-tbs .bookly-no-borders td{border:0!important}#bookly-tbs .panel.bookly-main{border-color:#d9dee4;border-width:1px}@media (min-width:992px){#bookly-tbs .panel.bookly-main>.panel-body{padding:25px}}#bookly-tbs .panel.bookly-main .panel-body+.panel-footer{margin:0 15px 15px}@media (min-width:992px){#bookly-tbs .panel.bookly-main .panel-body+.panel-footer{margin:0 25px 25px}}#bookly-tbs .panel.bookly-panel-unborder,#bookly-tbs .panel.bookly-panel-unborder .panel-heading,#bookly-tbs .panel.bookly-panel-unborder>.list-group .list-group-item,#bookly-tbs .panel.bookly-panel-unborder>.panel-collapse>.list-group .list-group-item{border-width:0}#bookly-tbs .panel.bookly-panel-unborder .panel-heading{border-bottom-right-radius:3px;border-bottom-left-radius:3px}#bookly-tbs .panel .panel-heading .bookly-font-smaller{padding-top:4px}#bookly-tbs .panel .panel-footer{padding:21px 0 0 0;background-color:transparent}@media (min-width:768px){#bookly-tbs .panel .panel-footer{text-align:right}}@media (max-width:767px){#bookly-tbs .panel .panel-footer .btn{float:none!important}}#bookly-tbs .panel .panel-body .bookly-codes input{width:242px;border:none}#bookly-tbs .panel .panel-body #bookly-prices tr td:nth-child(4),#bookly-tbs .panel .panel-body #bookly-prices tr td:nth-child(5){text-align:right}#bookly-tbs .panel .padding-lr-none{padding-right:0;padding-left:0}#bookly-tbs .panel .panel-group .panel-footer{border-top:1px solid #e8ebf0}#bookly-tbs .bookly-collapse{margin-bottom:16px!important}#bookly-tbs .bookly-collapse a[data-toggle=collapse]{padding-right:25px;vertical-align:middle;background:url(../../../resources/images/notifications-arrow-up.png) 100% 50% no-repeat;-webkit-background-size:17px 17px!important;background-size:17px 17px!important;outline:0;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .bookly-collapse a[data-toggle=collapse].collapsed{background:url(../../../resources/images/notifications-arrow-down.png) 100% 50% no-repeat}#bookly-tbs .help-block{margin-top:-5px;margin-bottom:7px}@media (min-width:768px){#bookly-tbs .form-inline .form-group+.form-group,#bookly-tbs .modal-footer .btn+.btn,#bookly-tbs .page-header .bookly-support-panel>*+*,#bookly-tbs .page-header .popover+.btn,#bookly-tbs .panel-footer .btn+.btn:not(.bookly-btn-unborder){margin-left:12px}}#bookly-tbs .bookly-block-head{margin-bottom:20px}#bookly-tbs .intl-tel-input{display:block}#bookly-tbs .intl-tel-input .flag-container{right:0;left:0}#bookly-tbs .intl-tel-input .selected-flag{width:42px;padding:0 0 0 8px}#bookly-tbs .intl-tel-input .selected-flag .arrow{right:4px;left:auto;border-top:4px solid #000;border-right:3px solid transparent;border-left:3px solid transparent}#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 (-o-min-device-pixel-ratio:2/1),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 .form-inline label{margin-bottom:0}#bookly-tbs .form-inline .intl-tel-input{display:inline-block}#bookly-tbs .form-inline .bookly-checkbox-text{font-weight:400;vertical-align:middle}#bookly-tbs .page-header{margin-top:0}#bookly-tbs .page-header .bookly-support-panel #bookly-bell+.badge{position:absolute;top:-17px;right:7px;background-color:red}#bookly-tbs .page-header .bookly-support-panel .dropdown-menu-right{margin-top:10px;margin-right:3px}#bookly-tbs .bookly-nav-justified.nav-justified{display:table;margin-bottom:30px;table-layout:fixed}#bookly-tbs .bookly-nav-justified.nav-justified>li{display:table-cell;width:100%}#bookly-tbs .bookly-nav-justified.nav-justified>li>a{padding:15px 5px;margin-bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #d9dee4;border-radius:0}#bookly-tbs .bookly-nav-justified.nav-justified>li>.active>a,#bookly-tbs .bookly-nav-justified.nav-justified>li>.active>a:focus,#bookly-tbs .bookly-nav-justified.nav-justified>li>.active>a:hover{border-bottom:1px solid #08c}#bookly-tbs .bookly-nav-justified.nav-justified>li .bookly-icon{margin:0 3px;vertical-align:bottom}#bookly-tbs .bookly-nav-tabs-title{font-size:17px}@media (max-width:991px){#bookly-tbs .bookly-nav-tabs-title{display:none}}#bookly-tbs .bookly-thumb{position:relative;display:block;width:76px;height:76px;overflow:hidden;background-color:#e8ebf0;background-image:url(../../../../backend/resources/images/sprite.png);background-repeat:no-repeat;background-position:-106px 0;border:1px solid #d9dee4;border-radius:4px}#bookly-tbs .bookly-thumb.bookly-thumb-sm{width:36px;height:36px;background-position:-182px 0}@media (min-width:992px){#bookly-tbs .bookly-thumb.bookly-thumb-lg{width:106px;height:106px;background-position:0 0}}@media (max-width:992px){#bookly-tbs .bookly-thumb.bookly-thumb-lg{background-position:0 0}}#bookly-tbs .bookly-thumb.bookly-thumb-lg-w100{background-color:rgba(0,0,0,.05);background-image:none}@media (min-width:992px){#bookly-tbs .bookly-thumb.bookly-thumb-lg-w100{width:106px;height:106px;background-position:0 0}}@media (max-width:992px){#bookly-tbs .bookly-thumb.bookly-thumb-lg-w100{background-position:0 0}}@media (min-width:992px){#bookly-tbs .bookly-thumb.bookly-thumb-lg-w100{width:100%}}#bookly-tbs .bookly-thumb .bookly-thumb-delete{position:absolute;top:5px;right:5px}#bookly-tbs .bookly-thumb .bookly-thumb-edit{position:absolute;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.4)}#bookly-tbs .bookly-thumb .bookly-thumb-edit .bookly-thumb-edit-btn{width:100%;padding:0 3px;margin:0;overflow:hidden;font-size:13px;line-height:25px;color:#fff;text-align:center;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .bookly-staff-archived{background:rgba(232,235,240,.7)!important}#bookly-tbs .bookly-staff-archived .bookly-flex-cell{color:#d9dee4}#bookly-tbs .bookly-staff-archived .bookly-rating-right{color:#d9dee4}#bookly-tbs .btn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .btn.btn-lg{padding-right:32px;padding-left:32px}#bookly-tbs .btn.btn-xlg .dashicons,#bookly-tbs .btn.btn-xlg .dashicons-before:before{width:30px;height:30px;font-size:30px}#bookly-tbs .btn.bookly-btn-unborder{padding-right:0;padding-left:0;border-color:transparent}#bookly-tbs .bookly-nav{margin-bottom:20px;font-size:0}#bookly-tbs .bookly-nav.bookly-nav-pills .bookly-nav-item{display:inline-block;margin:6px 10px 6px 0}#bookly-tbs .bookly-nav.bookly-nav-tabs{z-index:10;border-bottom:1px solid #e8ebf0}@media (min-width:768px){#bookly-tbs .bookly-nav.bookly-nav-tabs{margin-bottom:0}}@media (min-width:768px){#bookly-tbs .bookly-nav.bookly-nav-tabs .bookly-nav-item{position:relative;display:inline-block;padding:12px 16px;margin:6px 10px -1px 0;border-bottom-right-radius:0;border-bottom-left-radius:0}}#bookly-tbs .bookly-nav .bookly-nav-item{position:relative;display:block;padding:10px 10px;margin-bottom:6px;font-size:15px;background:#fff;border:1px solid #e8ebf0;border-radius:4px}#bookly-tbs .bookly-nav .bookly-nav-item.active{color:#fff;background:#08c;border-color:#08c}#bookly-tbs .bookly-nav .bookly-nav-item.active a{color:#fff}#bookly-tbs .bookly-nav .bookly-nav-item.active a:focus,#bookly-tbs .bookly-nav .bookly-nav-item.active a:hover{color:#d9d9d9}#bookly-tbs .bookly-nav .bookly-nav-item:not(.active):focus,#bookly-tbs .bookly-nav .bookly-nav-item:not(.active):hover{cursor:pointer;background-color:#e8ebf0;border-color:#8a929e;-webkit-box-shadow:0 0 5px rgba(0,0,0,.2);box-shadow:0 0 5px rgba(0,0,0,.2)}#bookly-tbs .board-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.5)}#bookly-tbs .board-backdrop .bookly-board{width:50%;padding:20px;margin:10% 25%;background-color:#fefefe;border:1px solid rgba(0,0,0,.2)}@media (max-width:991px){#bookly-tbs .board-backdrop .bookly-board{width:90%;margin:10% 5%}}#bookly-tbs .board-backdrop .bookly-board .btn-group-vertical.align-left .btn{padding-left:6px;text-align:left}#bookly-tbs .board-backdrop .bookly-board ul{margin-left:15px!important;list-style:inside!important}#bookly-tbs .bookly-dropdown-menu>li:first-child{margin-left:0}#bookly-tbs .bookly-dropdown-menu li{margin-left:20px}#bookly-tbs .bookly-dropdown-menu ul>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.4;color:#5b6470;white-space:nowrap}#bookly-tbs .bookly-dropdown-menu ul>li>a:focus,#bookly-tbs .bookly-dropdown-menu ul>li>a:hover{color:#505762;text-decoration:none;background-color:#f5f5f5}#bookly-tbs .bookly-dropdown-block{display:block;width:100%;height:36px;line-height:1.4}#bookly-tbs .bookly-dropdown-block .bookly-flex-cell:last-child{position:absolute;top:7px;left:-webkit-calc(100% - 32px);left:calc(100% - 32px)}#bookly-tbs .bookly-service-color{display:inline-block;width:21px;height:21px;margin-left:-25px;border:2px solid #fff;border-radius:50%}#bookly-tbs .bookly-vertical-colors .bookly-service-color{position:absolute}#bookly-tbs .bookly-vertical-colors .bookly-service-color:nth-child(1){margin-top:-15px}#bookly-tbs .bookly-vertical-colors .bookly-service-color:nth-child(2){margin-top:-5px}#bookly-tbs .bookly-max-height-xs{max-height:200px!important;overflow:auto}#bookly-tbs .bookly-max-height-sm{max-height:300px!important;overflow:auto}#bookly-tbs .bookly-max-height-md{max-height:400px!important;overflow:auto}#bookly-tbs .bookly-max-height-lg{max-height:500px!important;overflow:auto}#bookly-tbs .bookly-holidays-nav{display:block;width:200px;margin:0 auto}#bookly-tbs .bookly-holidays-nav .btn-default,#bookly-tbs .bookly-holidays-nav .form-control{background-color:#eff1f4;border-color:transparent}#bookly-tbs .modal-body textarea.wp-editor-area{width:-webkit-calc(100% - 20px);width:calc(100% - 20px)}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-day{cursor:pointer}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-day.bookly-fc-day-active{background-color:#eafcff}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group{position:relative;display:inline-block;vertical-align:middle}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group .fc-button+.fc-button{margin-left:-1px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group>.fc-button:not(.fc-corner-left):not(.fc-corner-right){border-radius:0}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group>.fc-button:first-child{margin-left:0}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group>.fc-button:first-child:not(.fc-corner-right){border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group>.fc-button:not(.fc-corner-left){border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group:not(:last-child){margin-right:16px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button{display:inline-block;height:auto;padding:6px 12px;margin-bottom:0;overflow:hidden;font-size:15px;font-weight:400;line-height:1.4;text-align:center;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.btn-pill{border-radius:24px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.btn-pill-left{border-top-left-radius:24px;border-bottom-left-radius:24px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.btn-pill-right{border-top-right-radius:24px;border-bottom-right-radius:24px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.btn-lg{padding-right:32px;padding-left:32px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.btn-xlg .dashicons,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.btn-xlg .dashicons-before:before{width:30px;height:30px;font-size:30px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.bookly-btn-unborder{padding-right:0;padding-left:0;border-color:transparent}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default{color:#3e424a;text-shadow:none;background-color:#fff;background-image:none;border-color:#d9dee4;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:focus{color:#3e424a;background-color:#e6e6e6;border-color:#8e9daf}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:hover{color:#3e424a;background-color:#e6e6e6;border-color:#b5bfcb}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.active,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:active,.open>.dropdown-toggle#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default{color:#3e424a;background-color:#e6e6e6;border-color:#b5bfcb}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.active.focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.active:focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.active:hover,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:active.focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:active:focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:active:hover,.open>.dropdown-toggle#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.focus,.open>.dropdown-toggle#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:focus,.open>.dropdown-toggle#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:hover{color:#3e424a;background-color:#d4d4d4;border-color:#8e9daf}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.active,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:active,.open>.dropdown-toggle#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default{background-image:none}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.disabled.focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.disabled:focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.disabled:hover,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default[disabled].focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default[disabled]:focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default[disabled]:hover,fieldset[disabled] #bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.focus,fieldset[disabled] #bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:focus,fieldset[disabled] #bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:hover{background-color:#fff;border-color:#d9dee4}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default .badge{color:#fff;background-color:#3e424a}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.fc-state-active{z-index:1;color:#3e424a;background-color:#e6e6e6;background-image:none;border-color:#b5bfcb;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.fc-state-active.focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.fc-state-active:focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.fc-state-active:hover{color:#3e424a;background-color:#d4d4d4;border-color:#8e9daf}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar h2{position:relative;margin:0;font-size:20px;line-height:32px;cursor:pointer}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar h2:hover{color:#005580}@media (min-width:768px){#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar h2{font-size:24px}}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar h2:after{display:inline-block;width:0;height:0;margin-left:12px;vertical-align:middle;content:" ";border-top:5px dashed;border-top:5px solid\9;border-right:5px solid transparent;border-left:5px solid transparent}@media (max-width:767px){#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-left,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-right{display:inline-block;float:none;margin:0 12px 6px 12px}}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-head{background-color:#e8ebf0}#bookly-tbs .bookly-fc-inner .bookly-calendar th.fc-widget-header{padding:10px 0}#bookly-tbs .bookly-fc-inner .bookly-calendar th.fc-day-header{text-align:center}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc .fc-axis{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;padding:0 4px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-view{min-height:.01%;overflow-x:auto}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-view>table{min-width:768px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-event{padding:3px 2px 3px 5px;margin-right:0;margin-left:0;color:#3e424a;cursor:pointer;border-width:0;border-radius:0}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-event:after{position:absolute;top:0;right:0;width:-webkit-calc(100% - 2px);width:calc(100% - 2px);height:100%;content:'';background-color:rgba(255,255,255,.6);border-bottom:1px solid rgba(255,255,255,.4)}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-event:hover:after{background-color:rgba(255,255,255,.7)}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-time{font-size:inherit;font-weight:700}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-time .bookly-fc-icon{float:right;color:#3e424a;opacity:.8}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-time .bookly-fc-icon:hover{cursor:pointer;opacity:1}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-title{display:block;margin-top:3px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-ltr .fc-time-grid .fc-event-container,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-rtl .fc-time-grid .fc-event-container{margin:0}#bookly-tbs .bookly-fc-inner .fc-loading-inner{position:absolute;top:50px;right:0;bottom:0;left:0;z-index:9;background-color:rgba(255,255,255,.7)}#bookly-tbs .bookly-fc-inner .fc-loading-inner .fc-loading{position:absolute;top:50%;left:50%;width:auto;height:32px;padding-left:64px;background:rgba(255,0,0,0) url(../../images/ajax_loader_32x32.gif) no-repeat scroll 50% center}#bookly-tbs .bookly-fc-inner .bookly-margin-top-xlg{position:relative;min-height:.01%;overflow:visible}@media (min-width:768px){#bookly-tbs .daterangepicker.dropdown-menu.show-calendar{min-width:718px}}#bookly-tbs .daterangepicker .daterangepicker_input{margin-bottom:6px}#bookly-tbs .daterangepicker .daterangepicker_input .glyphicon{position:absolute;top:8px}#bookly-tbs .wp-editor-wrap *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}#bookly-tbs .wp-switch-editor+.wp-switch-editor{margin-left:5px}#bookly-tbs .editable-container.popover{z-index:9999}#bookly-tbs .editable-input,#bookly-tbs .editable-input .form-control{width:100%}#bookly-tbs .editable-input textarea{resize:both}#bookly-tbs .editable-buttons{display:block;margin:6px 0;text-align:right}#bookly-tbs .editable-clear-x,#bookly-tbs .editable-click{cursor:pointer}#bookly-tbs .table>thead>tr>th{padding:16px 8px;background-color:#e8ebf0}#bookly-tbs .bookly-table-sortable.table>thead>tr>th{position:relative;padding-left:16px!important}#bookly-tbs .bookly-table-sortable.table>thead>tr>th[ng-class],#bookly-tbs .bookly-table-sortable.table>thead>tr>th[order-by]{cursor:pointer}#bookly-tbs .bookly-table-sortable.table>thead>tr>th[ng-class]:after,#bookly-tbs .bookly-table-sortable.table>thead>tr>th[order-by]:after{position:absolute;bottom:22px;left:-4px;width:24px;height:15px;content:"";background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDQ4IDQ4IiB3aWR0aD0iNDgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDIwbDEwIDEwIDEwLTEweiIvPjxwYXRoIGQ9Ik0wIDBoNDh2NDhoLTQ4eiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==);background-repeat:no-repeat;background-position:0 -webkit-calc(50% + 2px);background-position:0 calc(50% + 2px);-webkit-background-size:24px 24px;background-size:24px 24px;opacity:.1}#bookly-tbs .bookly-table-sortable.table>thead>tr>th[ng-class].desc:after,#bookly-tbs .bookly-table-sortable.table>thead>tr>th[order-by].desc:after{opacity:1;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}#bookly-tbs .bookly-table-sortable.table>thead>tr>th[ng-class].asc:after,#bookly-tbs .bookly-table-sortable.table>thead>tr>th[order-by].asc:after{opacity:1}#bookly-tbs .table thead>tr>th{vertical-align:middle}#bookly-tbs .table thead>tr>th:not(:first-child){border-left:1px solid #d9dee4}#bookly-tbs .table td>input[type=checkbox],#bookly-tbs .table th>input[type=checkbox]{margin:0}#bookly-tbs .table td ul.bookly-list,#bookly-tbs .table th ul.bookly-list{padding-left:13px;margin:0!important}#bookly-tbs .table td ul.bookly-list.list-dots,#bookly-tbs .table th ul.bookly-list.list-dots{list-style:disc outside!important}#bookly-tbs .table td ul.bookly-list li,#bookly-tbs .table th ul.bookly-list li{margin:0}#bookly-tbs .bookly-color-picker-wrapper{position:relative;min-height:35px}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container{position:absolute;z-index:10;padding:6px;margin-left:-6px;background-color:#fff}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container,#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container.wp-picker-active{-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container .wp-color-result{height:auto}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container .wp-color-result .wp-color-result-text{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container .wp-picker-input-wrap{float:right}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container .wp-picker-input-wrap input[type=button]{display:none}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container .wp-picker-input-wrap .wp-color-picker{padding:4px}#bookly-tbs .page-header .bookly-page-title{float:left;font-size:24px;line-height:38px}@media (max-width:767px){#bookly-tbs .page-header .bookly-page-title{font-size:22px}#bookly-tbs h3{font-size:18px}}#bookly-tbs .modal{top:46px!important;font-size:15px}#bookly-tbs .modal table{font-family:Arial,Helvetica,sans-serif}#bookly-tbs .modal table th{word-break:normal}#bookly-tbs .modal table td{word-break:normal}#bookly-tbs .modal .bookly-codes input{width:242px;border:none}#bookly-tbs .modal-header .close{margin-top:4px}@media (max-width:767px){#bookly-tbs .bookly-form .bookly-progress-tracker{display:none!important}}#bookly-tbs .bookly-form .picker__nav--next,#bookly-tbs .bookly-form .picker__nav--prev{width:26px;height:26px}@media (max-width:991px){#bookly-tbs .bookly-form .bookly-user-coupon{width:135px}}#bookly-tbs .bookly-form .bookly-box{padding-bottom:1px}#bookly-tbs .bookly-form input[type=checkbox],#bookly-tbs .bookly-form input[type=radio]{width:16px!important;height:16px!important}#bookly-tbs .bookly-icon{display:inline-block;width:24px;height:24px;vertical-align:middle;background-color:transparent;background-image:url(../../../../backend/resources/images/sprite.png);background-repeat:no-repeat}#bookly-tbs .bookly-icon.bookly-icon-draghandle{background-position:-154px -82px}#bookly-tbs .has-feedback .alert-icon{display:inline-block;width:24px;height:24px;margin:4px 6px 0 0;vertical-align:middle;background-color:transparent;background-image:url(../../../../backend/resources/images/sprite.png);background-repeat:no-repeat}#bookly-tbs .has-feedback.has-success .alert-icon{background-position:-24px -113px}#bookly-tbs .has-feedback.has-error .alert-icon{background-position:-48px -113px}#bookly-tbs .has-feedback.has-warning .alert-icon{background-position:-72px -113px}#bookly-tbs .has-feedback.has-ajax .alert-icon{background-position:-72px -113px;-webkit-animation:spin 3s infinite;-o-animation:spin 3s infinite;animation:spin 3s infinite}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes spin{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}#bookly-tbs .alert{margin-top:30px}#bookly-tbs .alert .alert-icon,#bookly-tbs .alert .close{display:inline-block;width:24px;height:24px;vertical-align:top;background-color:transparent;background-image:url(../../../../backend/resources/images/sprite.png);background-repeat:no-repeat}#bookly-tbs .alert .close{margin-top:-2px}#bookly-tbs .alert.alert-info .alert-icon{background-position:0 -113px}#bookly-tbs .alert.alert-success .alert-icon{background-position:-24px -113px}#bookly-tbs .alert.alert-danger .alert-icon{background-position:-48px -113px}#bookly-tbs .alert.alert-warning .alert-icon{background-position:-72px -113px}#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 .pagination .next,#bookly-tbs .pagination .prev{position:inherit;width:inherit;height:inherit;padding:inherit}#bookly-tbs .pagination .next:before,#bookly-tbs .pagination .prev:before{position:inherit;width:inherit;height:inherit;padding:inherit;content:""}#bookly-tbs #bookly-appointments-list .popover .arrow{display:none}#bookly-tbs .bookly-rating-right{float:right}#bookly-tbs .bookly-rating-left{margin-left:10px}#bookly-tbs .bookly-rating-left i{margin-top:3px}#bookly-tbs .table.table-striped{border:1px solid #f4f4f4}#bookly-tbs .table.table-striped thead>tr>th{background-color:transparent;border-top:1px solid #f4f4f4}#bookly-tbs .table.table-striped thead>tr>th:not(:first-child){border-left:1px solid #f4f4f4}#bookly-tbs .table.table-striped thead>tr>th{border-bottom:none}#bookly-tbs .table.table-striped tbody>tr>td{border-top:1px solid #f4f4f4}#bookly-tbs .modal.fade.show{opacity:1}#bookly-tbs .modal .modal-header{display:block}#bookly-tbs ul{list-style:none}#bookly-tbs .modal.show .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}#bookly-tbs h2:before{content:none}#bookly-tbs .dataTables_wrapper{display:block}#bookly-tbs input[type=search]{min-height:21px}#bookly-tbs input[type=radio]{-webkit-appearance:radio}#bookly-tbs select{max-width:unset}#bookly-tbs ol{margin-left:2em}#bookly-tbs table{margin:0;overflow:unset}body.mobile.modal-open #wpwrap{position:inherit!important}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-backdrop+.modal-backdrop{display:none!important}.modal-open{overflow:hidden!important}.modal-open .modal{overflow-x:hidden!important;overflow-y:auto!important}.select2-container--bootstrap{display:block}.select2-container--bootstrap .select2-selection{font-size:15px;color:#3e424a;background-color:#fff;border:1px solid #d9dee4;border-radius:4px;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.select2-container--bootstrap .select2-selection.form-control{border-radius:4px}.select2-container--bootstrap .select2-search--dropdown .select2-search__field{font-size:15px;color:#3e424a;background-color:#fff;border:1px solid #d9dee4;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.select2-container--bootstrap .select2-search__field{outline:0}.select2-container--bootstrap .select2-search__field::-webkit-input-placeholder{color:#8a929e}.select2-container--bootstrap .select2-search__field:-moz-placeholder{color:#8a929e}.select2-container--bootstrap .select2-search__field::-moz-placeholder{color:#8a929e;opacity:1}.select2-container--bootstrap .select2-search__field:-ms-input-placeholder{color:#8a929e}.select2-container--bootstrap .select2-results__option{padding:6px 12px}.select2-container--bootstrap .select2-results__option[role=group]{padding:0}.select2-container--bootstrap .select2-results__option[aria-disabled=true]{color:#d9dee4;cursor:not-allowed}.select2-container--bootstrap .select2-results__option[aria-selected=true]{color:#505762;background-color:#f5f5f5}.select2-container--bootstrap .select2-results__option--highlighted[aria-selected]{color:#fff;background-color:#08c}.select2-container--bootstrap .select2-results__option .select2-results__option{padding:6px 12px}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option{padding-left:24px;margin-left:-12px}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option{padding-left:36px;margin-left:-24px}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{padding-left:48px;margin-left:-36px}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{padding-left:60px;margin-left:-48px}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{padding-left:72px;margin-left:-60px}.select2-container--bootstrap .select2-results__group{display:block;padding:6px 12px;font-size:13px;line-height:1.4;color:#d9dee4;white-space:nowrap}.select2-container--bootstrap.select2-container--focus .select2-selection,.select2-container--bootstrap.select2-container--open .select2-selection{border-color:#08c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,136,204,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,136,204,.6);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.select2-container--bootstrap.select2-container--open .select2-selection .select2-selection__arrow b{border-color:transparent transparent #8a929e transparent;border-width:0 5px 5px 5px}.select2-container--bootstrap.select2-container--open.select2-container--below .select2-selection{border-bottom-color:transparent;border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container--bootstrap.select2-container--open.select2-container--above .select2-selection{border-top-color:transparent;border-top-left-radius:0;border-top-right-radius:0}.select2-container--bootstrap .select2-selection__clear{float:right;margin-right:10px;font-weight:700;color:#8a929e;cursor:pointer}.select2-container--bootstrap .select2-selection__clear:hover{color:#3e424a}.select2-container--bootstrap.select2-container--disabled .select2-selection{border-color:#d9dee4;-webkit-box-shadow:none;box-shadow:none}.select2-container--bootstrap.select2-container--disabled .select2-search__field,.select2-container--bootstrap.select2-container--disabled .select2-selection{cursor:not-allowed}.select2-container--bootstrap.select2-container--disabled .select2-selection,.select2-container--bootstrap.select2-container--disabled .select2-selection--multiple .select2-selection__choice{background-color:rgba(232,235,240,.7)}.select2-container--bootstrap.select2-container--disabled .select2-selection--multiple .select2-selection__choice__remove,.select2-container--bootstrap.select2-container--disabled .select2-selection__clear{display:none}.select2-container--bootstrap .select2-dropdown{margin-top:-1px;overflow-x:hidden;border-color:#08c;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.select2-container--bootstrap .select2-dropdown--above{margin-top:1px;-webkit-box-shadow:0 -6px 12px rgba(0,0,0,.175);box-shadow:0 -6px 12px rgba(0,0,0,.175)}.select2-container--bootstrap .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--bootstrap .select2-selection--single{height:35px;padding:6px 27px 6px 12px;line-height:1.4}.select2-container--bootstrap .select2-selection--single .select2-selection__arrow{position:absolute;top:0;right:12px;bottom:0;width:5px}.select2-container--bootstrap .select2-selection--single .select2-selection__arrow b{position:absolute;top:50%;left:0;width:0;height:0;margin-top:-2.5px;margin-left:-5px;border-color:#8a929e transparent transparent transparent;border-style:solid;border-width:5px 5px 0 5px}.select2-container--bootstrap .select2-selection--single .select2-selection__rendered{padding:0;color:#3e424a}.select2-container--bootstrap .select2-selection--single .select2-selection__placeholder{color:#8a929e}.select2-container--bootstrap .select2-selection--multiple{height:auto;min-height:35px;padding:0}.select2-container--bootstrap .select2-selection--multiple .select2-selection__rendered{display:block;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin:0;overflow:hidden;line-height:1.4;text-overflow:ellipsis;white-space:nowrap;list-style:none}.select2-container--bootstrap .select2-selection--multiple .select2-selection__placeholder{float:left;margin-top:5px;color:#8a929e}.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice{float:left;padding:0 6px;margin:5px 0 0 6px;color:#3e424a;cursor:default;background:#fff;border:1px solid #d9dee4;border-radius:4px}.select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field{min-width:5em;height:21px;padding:0 12px;margin-top:0;line-height:1.4;background:0 0}.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove{display:inline-block;margin-right:3px;font-weight:700;color:#8a929e;cursor:pointer}.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove:hover{color:#3e424a}.select2-container--bootstrap .select2-selection--multiple .select2-selection__clear{margin-top:6px}.form-group-sm .select2-container--bootstrap .select2-selection--single,.input-group-sm .select2-container--bootstrap .select2-selection--single,.select2-container--bootstrap .select2-selection--single.input-sm{height:32px;padding:5px 25px 5px 10px;font-size:13px;line-height:1.53846154;border-radius:3px}.form-group-sm .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b,.input-group-sm .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b,.select2-container--bootstrap .select2-selection--single.input-sm .select2-selection__arrow b{margin-left:-5px}.form-group-sm .select2-container--bootstrap .select2-selection--multiple,.input-group-sm .select2-container--bootstrap .select2-selection--multiple,.select2-container--bootstrap .select2-selection--multiple.input-sm{min-height:32px;border-radius:3px}.form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice,.input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice,.select2-container--bootstrap .select2-selection--multiple.input-sm .select2-selection__choice{padding:0 5px;margin:4px 0 0 5px;font-size:13px;line-height:1.53846154}.form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field,.input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field,.select2-container--bootstrap .select2-selection--multiple.input-sm .select2-search--inline .select2-search__field{height:30px;padding:0 10px;font-size:13px;line-height:1.53846154}.form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear,.input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear,.select2-container--bootstrap .select2-selection--multiple.input-sm .select2-selection__clear{margin-top:5px}.form-group-lg .select2-container--bootstrap .select2-selection--single,.input-group-lg .select2-container--bootstrap .select2-selection--single,.select2-container--bootstrap .select2-selection--single.input-lg{height:46px;padding:10px 34px 10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow,.input-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow,.select2-container--bootstrap .select2-selection--single.input-lg .select2-selection__arrow{width:6px}.form-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b,.input-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b,.select2-container--bootstrap .select2-selection--single.input-lg .select2-selection__arrow b{margin-top:-3px;margin-left:-10px;border-width:6px 6px 0 6px}.form-group-lg .select2-container--bootstrap .select2-selection--multiple,.input-group-lg .select2-container--bootstrap .select2-selection--multiple,.select2-container--bootstrap .select2-selection--multiple.input-lg{min-height:46px;border-radius:6px}.form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice,.input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice,.select2-container--bootstrap .select2-selection--multiple.input-lg .select2-selection__choice{padding:0 10px;margin:9px 0 0 8px;font-size:18px;line-height:1.3333333;border-radius:4px}.form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field,.input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field,.select2-container--bootstrap .select2-selection--multiple.input-lg .select2-search--inline .select2-search__field{height:44px;padding:0 16px;font-size:18px;line-height:1.3333333}.form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear,.input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear,.select2-container--bootstrap .select2-selection--multiple.input-lg .select2-selection__clear{margin-top:10px}.select2-container--bootstrap .select2-selection.input-lg.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #8a929e transparent;border-width:0 6px 6px 6px}.input-group-lg .select2-container--bootstrap .select2-selection.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #8a929e transparent;border-width:0 6px 6px 6px}.select2-container--bootstrap[dir=rtl] .select2-selection--single{padding-right:12px;padding-left:27px}.select2-container--bootstrap[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:0;padding-left:0;text-align:right}.select2-container--bootstrap[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--bootstrap[dir=rtl] .select2-selection--single .select2-selection__arrow{right:auto;left:12px}.select2-container--bootstrap[dir=rtl] .select2-selection--single .select2-selection__arrow b{margin-left:0}.select2-container--bootstrap[dir=rtl] .select2-selection--multiple .select2-search--inline,.select2-container--bootstrap[dir=rtl] .select2-selection--multiple .select2-selection__choice,.select2-container--bootstrap[dir=rtl] .select2-selection--multiple .select2-selection__placeholder{float:right}.select2-container--bootstrap[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-right:6px;margin-left:0}.select2-container--bootstrap[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-right:auto;margin-left:2px}.has-warning .select2-dropdown,.has-warning .select2-selection{border-color:#8a6d3b}.has-warning .select2-container--focus .select2-selection,.has-warning .select2-container--open .select2-selection{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning.select2-drop-active{border-color:#66512c}.has-warning.select2-drop-active.select2-drop.select2-drop-above{border-top-color:#66512c}.has-error .select2-dropdown,.has-error .select2-selection{border-color:#a94442}.has-error .select2-container--focus .select2-selection,.has-error .select2-container--open .select2-selection{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error.select2-drop-active{border-color:#843534}.has-error.select2-drop-active.select2-drop.select2-drop-above{border-top-color:#843534}.has-success .select2-dropdown,.has-success .select2-selection{border-color:#3c763d}.has-success .select2-container--focus .select2-selection,.has-success .select2-container--open .select2-selection{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success.select2-drop-active{border-color:#2b542c}.has-success.select2-drop-active.select2-drop.select2-drop-above{border-top-color:#2b542c}.input-group>.select2-hidden-accessible:first-child+.select2-container--bootstrap>.selection>.select2-selection,.input-group>.select2-hidden-accessible:first-child+.select2-container--bootstrap>.selection>.select2-selection.form-control{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.select2-hidden-accessible:not(:first-child)+.select2-container--bootstrap:not(:last-child)>.selection>.select2-selection,.input-group>.select2-hidden-accessible:not(:first-child)+.select2-container--bootstrap:not(:last-child)>.selection>.select2-selection.form-control{border-radius:0}.input-group>.select2-hidden-accessible:not(:first-child):not(:last-child)+.select2-container--bootstrap:last-child>.selection>.select2-selection,.input-group>.select2-hidden-accessible:not(:first-child):not(:last-child)+.select2-container--bootstrap:last-child>.selection>.select2-selection.form-control{border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.select2-container--bootstrap{position:relative;z-index:2;display:table;width:100%;margin-bottom:0;table-layout:fixed}.input-group>.select2-container--bootstrap>.selection>.select2-selection.form-control{float:none}.input-group>.select2-container--bootstrap.select2-container--focus,.input-group>.select2-container--bootstrap.select2-container--open{z-index:3}.input-group>.select2-container--bootstrap,.input-group>.select2-container--bootstrap .input-group-btn,.input-group>.select2-container--bootstrap .input-group-btn .btn{vertical-align:top}.form-control.select2-hidden-accessible{position:absolute!important;width:1px!important}@media (min-width:768px){.form-inline .select2-container--bootstrap{display:inline-block}}.select2-results__option{padding:7px 12px;margin-bottom:1px!important}.select2-results__option[aria-selected=true]{color:#8a929e!important;background-color:inherit!important}.select2-container--bootstrap .select2-results>.select2-results__options{max-height:400px}.select2-container--bootstrap .select2-results>.select2-results__options .select2-results__option{padding:2px 12px;margin-bottom:1px!important;font-size:15px;line-height:1.4em}.select2-container--bootstrap .select2-results>.select2-results__options .select2-results__option i{margin-right:5px}.select2-container--bootstrap .select2-results>.select2-results__options .select2-results__group{font-size:16px;color:#000}#select2-bookly-appointment-dialog-select2-results .select2-results__option[aria-selected=true]{color:#444!important}table.dt-rowReorder-float{position:absolute!important;outline:2px solid #888}table td{text-align:unset}ol,ul{margin:unset}input[type=search]{height:unset}
1
  #bookly-tbs{
2
 
3
+ }#bookly-tbs html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}#bookly-tbs body{margin:0}#bookly-tbs article,#bookly-tbs aside,#bookly-tbs details,#bookly-tbs figcaption,#bookly-tbs figure,#bookly-tbs footer,#bookly-tbs header,#bookly-tbs hgroup,#bookly-tbs main,#bookly-tbs menu,#bookly-tbs nav,#bookly-tbs section,#bookly-tbs summary{display:block}#bookly-tbs audio,#bookly-tbs canvas,#bookly-tbs progress,#bookly-tbs video{display:inline-block;vertical-align:baseline}#bookly-tbs audio:not([controls]){display:none;height:0}#bookly-tbs [hidden],#bookly-tbs template{display:none}#bookly-tbs a{background-color:transparent}#bookly-tbs a:active,#bookly-tbs a:hover{outline:0}#bookly-tbs abbr[title]{border-bottom:1px dotted}#bookly-tbs b,#bookly-tbs strong{font-weight:700}#bookly-tbs dfn{font-style:italic}#bookly-tbs h1{margin:.67em 0;font-size:2em}#bookly-tbs mark{color:#000;background:#ff0}#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 sup{top:-.5em}#bookly-tbs sub{bottom:-.25em}#bookly-tbs img{border:0}#bookly-tbs svg:not(:root){overflow:hidden}#bookly-tbs figure{margin:1em 40px}#bookly-tbs hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}#bookly-tbs pre{overflow:auto}#bookly-tbs code,#bookly-tbs kbd,#bookly-tbs pre,#bookly-tbs samp{font-family:monospace,monospace;font-size:1em}#bookly-tbs button,#bookly-tbs input,#bookly-tbs optgroup,#bookly-tbs select,#bookly-tbs textarea{margin:0;font:inherit;color:inherit}#bookly-tbs button{overflow:visible}#bookly-tbs button,#bookly-tbs select{text-transform:none}#bookly-tbs button,#bookly-tbs html input[type=button],#bookly-tbs input[type=reset],#bookly-tbs input[type=submit]{-webkit-appearance:button;cursor:pointer}#bookly-tbs button[disabled],#bookly-tbs html input[disabled]{cursor:default}#bookly-tbs button::-moz-focus-inner,#bookly-tbs input::-moz-focus-inner{padding:0;border:0}#bookly-tbs input{line-height:normal}#bookly-tbs input[type=checkbox],#bookly-tbs input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}#bookly-tbs input[type=number]::-webkit-inner-spin-button,#bookly-tbs input[type=number]::-webkit-outer-spin-button{height:auto}#bookly-tbs input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}#bookly-tbs input[type=search]::-webkit-search-cancel-button,#bookly-tbs input[type=search]::-webkit-search-decoration{-webkit-appearance:none}#bookly-tbs fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}#bookly-tbs legend{padding:0;border:0}#bookly-tbs textarea{overflow:auto}#bookly-tbs optgroup{font-weight:700}#bookly-tbs table{border-spacing:0;border-collapse:collapse}#bookly-tbs td,#bookly-tbs th{padding:0}@media print{#bookly-tbs *,#bookly-tbs :after,#bookly-tbs :before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}#bookly-tbs a,#bookly-tbs a:visited{text-decoration:underline}#bookly-tbs a[href]:after{content:" (" attr(href) ")"}#bookly-tbs abbr[title]:after{content:" (" attr(title) ")"}#bookly-tbs a[href^="javascript:"]:after,#bookly-tbs a[href^="#"]:after{content:""}#bookly-tbs blockquote,#bookly-tbs pre{border:1px solid #999;page-break-inside:avoid}#bookly-tbs thead{display:table-header-group}#bookly-tbs img,#bookly-tbs tr{page-break-inside:avoid}#bookly-tbs img{max-width:100%!important}#bookly-tbs h2,#bookly-tbs h3,#bookly-tbs p{orphans:3;widows:3}#bookly-tbs h2,#bookly-tbs h3{page-break-after:avoid}#bookly-tbs .navbar{display:none}#bookly-tbs .btn>.caret,#bookly-tbs .dropup>.btn>.caret{border-top-color:#000!important}#bookly-tbs .label{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 #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}#bookly-tbs .glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#bookly-tbs .glyphicon-asterisk:before{content:"\002a"}#bookly-tbs .glyphicon-plus:before{content:"\002b"}#bookly-tbs .glyphicon-eur:before,#bookly-tbs .glyphicon-euro:before{content:"\20ac"}#bookly-tbs .glyphicon-minus:before{content:"\2212"}#bookly-tbs .glyphicon-cloud:before{content:"\2601"}#bookly-tbs .glyphicon-envelope:before{content:"\2709"}#bookly-tbs .glyphicon-pencil:before{content:"\270f"}#bookly-tbs .glyphicon-glass:before{content:"\e001"}#bookly-tbs .glyphicon-music:before{content:"\e002"}#bookly-tbs .glyphicon-search:before{content:"\e003"}#bookly-tbs .glyphicon-heart:before{content:"\e005"}#bookly-tbs .glyphicon-star:before{content:"\e006"}#bookly-tbs .glyphicon-star-empty:before{content:"\e007"}#bookly-tbs .glyphicon-user:before{content:"\e008"}#bookly-tbs .glyphicon-film:before{content:"\e009"}#bookly-tbs .glyphicon-th-large:before{content:"\e010"}#bookly-tbs .glyphicon-th:before{content:"\e011"}#bookly-tbs .glyphicon-th-list:before{content:"\e012"}#bookly-tbs .glyphicon-ok:before{content:"\e013"}#bookly-tbs .glyphicon-remove:before{content:"\e014"}#bookly-tbs .glyphicon-zoom-in:before{content:"\e015"}#bookly-tbs .glyphicon-zoom-out:before{content:"\e016"}#bookly-tbs .glyphicon-off:before{content:"\e017"}#bookly-tbs .glyphicon-signal:before{content:"\e018"}#bookly-tbs .glyphicon-cog:before{content:"\e019"}#bookly-tbs .glyphicon-trash:before{content:"\e020"}#bookly-tbs .glyphicon-home:before{content:"\e021"}#bookly-tbs .glyphicon-file:before{content:"\e022"}#bookly-tbs .glyphicon-time:before{content:"\e023"}#bookly-tbs .glyphicon-road:before{content:"\e024"}#bookly-tbs .glyphicon-download-alt:before{content:"\e025"}#bookly-tbs .glyphicon-download:before{content:"\e026"}#bookly-tbs .glyphicon-upload:before{content:"\e027"}#bookly-tbs .glyphicon-inbox:before{content:"\e028"}#bookly-tbs .glyphicon-play-circle:before{content:"\e029"}#bookly-tbs .glyphicon-repeat:before{content:"\e030"}#bookly-tbs .glyphicon-refresh:before{content:"\e031"}#bookly-tbs .glyphicon-list-alt:before{content:"\e032"}#bookly-tbs .glyphicon-lock:before{content:"\e033"}#bookly-tbs .glyphicon-flag:before{content:"\e034"}#bookly-tbs .glyphicon-headphones:before{content:"\e035"}#bookly-tbs .glyphicon-volume-off:before{content:"\e036"}#bookly-tbs .glyphicon-volume-down:before{content:"\e037"}#bookly-tbs .glyphicon-volume-up:before{content:"\e038"}#bookly-tbs .glyphicon-qrcode:before{content:"\e039"}#bookly-tbs .glyphicon-barcode:before{content:"\e040"}#bookly-tbs .glyphicon-tag:before{content:"\e041"}#bookly-tbs .glyphicon-tags:before{content:"\e042"}#bookly-tbs .glyphicon-book:before{content:"\e043"}#bookly-tbs .glyphicon-bookmark:before{content:"\e044"}#bookly-tbs .glyphicon-print:before{content:"\e045"}#bookly-tbs .glyphicon-camera:before{content:"\e046"}#bookly-tbs .glyphicon-font:before{content:"\e047"}#bookly-tbs .glyphicon-bold:before{content:"\e048"}#bookly-tbs .glyphicon-italic:before{content:"\e049"}#bookly-tbs .glyphicon-text-height:before{content:"\e050"}#bookly-tbs .glyphicon-text-width:before{content:"\e051"}#bookly-tbs .glyphicon-align-left:before{content:"\e052"}#bookly-tbs .glyphicon-align-center:before{content:"\e053"}#bookly-tbs .glyphicon-align-right:before{content:"\e054"}#bookly-tbs .glyphicon-align-justify:before{content:"\e055"}#bookly-tbs .glyphicon-list:before{content:"\e056"}#bookly-tbs .glyphicon-indent-left:before{content:"\e057"}#bookly-tbs .glyphicon-indent-right:before{content:"\e058"}#bookly-tbs .glyphicon-facetime-video:before{content:"\e059"}#bookly-tbs .glyphicon-picture:before{content:"\e060"}#bookly-tbs .glyphicon-map-marker:before{content:"\e062"}#bookly-tbs .glyphicon-adjust:before{content:"\e063"}#bookly-tbs .glyphicon-tint:before{content:"\e064"}#bookly-tbs .glyphicon-edit:before{content:"\e065"}#bookly-tbs .glyphicon-share:before{content:"\e066"}#bookly-tbs .glyphicon-check:before{content:"\e067"}#bookly-tbs .glyphicon-move:before{content:"\e068"}#bookly-tbs .glyphicon-step-backward:before{content:"\e069"}#bookly-tbs .glyphicon-fast-backward:before{content:"\e070"}#bookly-tbs .glyphicon-backward:before{content:"\e071"}#bookly-tbs .glyphicon-play:before{content:"\e072"}#bookly-tbs .glyphicon-pause:before{content:"\e073"}#bookly-tbs .glyphicon-stop:before{content:"\e074"}#bookly-tbs .glyphicon-forward:before{content:"\e075"}#bookly-tbs .glyphicon-fast-forward:before{content:"\e076"}#bookly-tbs .glyphicon-step-forward:before{content:"\e077"}#bookly-tbs .glyphicon-eject:before{content:"\e078"}#bookly-tbs .glyphicon-chevron-left:before{content:"\e079"}#bookly-tbs .glyphicon-chevron-right:before{content:"\e080"}#bookly-tbs .glyphicon-plus-sign:before{content:"\e081"}#bookly-tbs .glyphicon-minus-sign:before{content:"\e082"}#bookly-tbs .glyphicon-remove-sign:before{content:"\e083"}#bookly-tbs .glyphicon-ok-sign:before{content:"\e084"}#bookly-tbs .glyphicon-question-sign:before{content:"\e085"}#bookly-tbs .glyphicon-info-sign:before{content:"\e086"}#bookly-tbs .glyphicon-screenshot:before{content:"\e087"}#bookly-tbs .glyphicon-remove-circle:before{content:"\e088"}#bookly-tbs .glyphicon-ok-circle:before{content:"\e089"}#bookly-tbs .glyphicon-ban-circle:before{content:"\e090"}#bookly-tbs .glyphicon-arrow-left:before{content:"\e091"}#bookly-tbs .glyphicon-arrow-right:before{content:"\e092"}#bookly-tbs .glyphicon-arrow-up:before{content:"\e093"}#bookly-tbs .glyphicon-arrow-down:before{content:"\e094"}#bookly-tbs .glyphicon-share-alt:before{content:"\e095"}#bookly-tbs .glyphicon-resize-full:before{content:"\e096"}#bookly-tbs .glyphicon-resize-small:before{content:"\e097"}#bookly-tbs .glyphicon-exclamation-sign:before{content:"\e101"}#bookly-tbs .glyphicon-gift:before{content:"\e102"}#bookly-tbs .glyphicon-leaf:before{content:"\e103"}#bookly-tbs .glyphicon-fire:before{content:"\e104"}#bookly-tbs .glyphicon-eye-open:before{content:"\e105"}#bookly-tbs .glyphicon-eye-close:before{content:"\e106"}#bookly-tbs .glyphicon-warning-sign:before{content:"\e107"}#bookly-tbs .glyphicon-plane:before{content:"\e108"}#bookly-tbs .glyphicon-calendar:before{content:"\e109"}#bookly-tbs .glyphicon-random:before{content:"\e110"}#bookly-tbs .glyphicon-comment:before{content:"\e111"}#bookly-tbs .glyphicon-magnet:before{content:"\e112"}#bookly-tbs .glyphicon-chevron-up:before{content:"\e113"}#bookly-tbs .glyphicon-chevron-down:before{content:"\e114"}#bookly-tbs .glyphicon-retweet:before{content:"\e115"}#bookly-tbs .glyphicon-shopping-cart:before{content:"\e116"}#bookly-tbs .glyphicon-folder-close:before{content:"\e117"}#bookly-tbs .glyphicon-folder-open:before{content:"\e118"}#bookly-tbs .glyphicon-resize-vertical:before{content:"\e119"}#bookly-tbs .glyphicon-resize-horizontal:before{content:"\e120"}#bookly-tbs .glyphicon-hdd:before{content:"\e121"}#bookly-tbs .glyphicon-bullhorn:before{content:"\e122"}#bookly-tbs .glyphicon-bell:before{content:"\e123"}#bookly-tbs .glyphicon-certificate:before{content:"\e124"}#bookly-tbs .glyphicon-thumbs-up:before{content:"\e125"}#bookly-tbs .glyphicon-thumbs-down:before{content:"\e126"}#bookly-tbs .glyphicon-hand-right:before{content:"\e127"}#bookly-tbs .glyphicon-hand-left:before{content:"\e128"}#bookly-tbs .glyphicon-hand-up:before{content:"\e129"}#bookly-tbs .glyphicon-hand-down:before{content:"\e130"}#bookly-tbs .glyphicon-circle-arrow-right:before{content:"\e131"}#bookly-tbs .glyphicon-circle-arrow-left:before{content:"\e132"}#bookly-tbs .glyphicon-circle-arrow-up:before{content:"\e133"}#bookly-tbs .glyphicon-circle-arrow-down:before{content:"\e134"}#bookly-tbs .glyphicon-globe:before{content:"\e135"}#bookly-tbs .glyphicon-wrench:before{content:"\e136"}#bookly-tbs .glyphicon-tasks:before{content:"\e137"}#bookly-tbs .glyphicon-filter:before{content:"\e138"}#bookly-tbs .glyphicon-briefcase:before{content:"\e139"}#bookly-tbs .glyphicon-fullscreen:before{content:"\e140"}#bookly-tbs .glyphicon-dashboard:before{content:"\e141"}#bookly-tbs .glyphicon-paperclip:before{content:"\e142"}#bookly-tbs .glyphicon-heart-empty:before{content:"\e143"}#bookly-tbs .glyphicon-link:before{content:"\e144"}#bookly-tbs .glyphicon-phone:before{content:"\e145"}#bookly-tbs .glyphicon-pushpin:before{content:"\e146"}#bookly-tbs .glyphicon-usd:before{content:"\e148"}#bookly-tbs .glyphicon-gbp:before{content:"\e149"}#bookly-tbs .glyphicon-sort:before{content:"\e150"}#bookly-tbs .glyphicon-sort-by-alphabet:before{content:"\e151"}#bookly-tbs .glyphicon-sort-by-alphabet-alt:before{content:"\e152"}#bookly-tbs .glyphicon-sort-by-order:before{content:"\e153"}#bookly-tbs .glyphicon-sort-by-order-alt:before{content:"\e154"}#bookly-tbs .glyphicon-sort-by-attributes:before{content:"\e155"}#bookly-tbs .glyphicon-sort-by-attributes-alt:before{content:"\e156"}#bookly-tbs .glyphicon-unchecked:before{content:"\e157"}#bookly-tbs .glyphicon-expand:before{content:"\e158"}#bookly-tbs .glyphicon-collapse-down:before{content:"\e159"}#bookly-tbs .glyphicon-collapse-up:before{content:"\e160"}#bookly-tbs .glyphicon-log-in:before{content:"\e161"}#bookly-tbs .glyphicon-flash:before{content:"\e162"}#bookly-tbs .glyphicon-log-out:before{content:"\e163"}#bookly-tbs .glyphicon-new-window:before{content:"\e164"}#bookly-tbs .glyphicon-record:before{content:"\e165"}#bookly-tbs .glyphicon-save:before{content:"\e166"}#bookly-tbs .glyphicon-open:before{content:"\e167"}#bookly-tbs .glyphicon-saved:before{content:"\e168"}#bookly-tbs .glyphicon-import:before{content:"\e169"}#bookly-tbs .glyphicon-export:before{content:"\e170"}#bookly-tbs .glyphicon-send:before{content:"\e171"}#bookly-tbs .glyphicon-floppy-disk:before{content:"\e172"}#bookly-tbs .glyphicon-floppy-saved:before{content:"\e173"}#bookly-tbs .glyphicon-floppy-remove:before{content:"\e174"}#bookly-tbs .glyphicon-floppy-save:before{content:"\e175"}#bookly-tbs .glyphicon-floppy-open:before{content:"\e176"}#bookly-tbs .glyphicon-credit-card:before{content:"\e177"}#bookly-tbs .glyphicon-transfer:before{content:"\e178"}#bookly-tbs .glyphicon-cutlery:before{content:"\e179"}#bookly-tbs .glyphicon-header:before{content:"\e180"}#bookly-tbs .glyphicon-compressed:before{content:"\e181"}#bookly-tbs .glyphicon-earphone:before{content:"\e182"}#bookly-tbs .glyphicon-phone-alt:before{content:"\e183"}#bookly-tbs .glyphicon-tower:before{content:"\e184"}#bookly-tbs .glyphicon-stats:before{content:"\e185"}#bookly-tbs .glyphicon-sd-video:before{content:"\e186"}#bookly-tbs .glyphicon-hd-video:before{content:"\e187"}#bookly-tbs .glyphicon-subtitles:before{content:"\e188"}#bookly-tbs .glyphicon-sound-stereo:before{content:"\e189"}#bookly-tbs .glyphicon-sound-dolby:before{content:"\e190"}#bookly-tbs .glyphicon-sound-5-1:before{content:"\e191"}#bookly-tbs .glyphicon-sound-6-1:before{content:"\e192"}#bookly-tbs .glyphicon-sound-7-1:before{content:"\e193"}#bookly-tbs .glyphicon-copyright-mark:before{content:"\e194"}#bookly-tbs .glyphicon-registration-mark:before{content:"\e195"}#bookly-tbs .glyphicon-cloud-download:before{content:"\e197"}#bookly-tbs .glyphicon-cloud-upload:before{content:"\e198"}#bookly-tbs .glyphicon-tree-conifer:before{content:"\e199"}#bookly-tbs .glyphicon-tree-deciduous:before{content:"\e200"}#bookly-tbs .glyphicon-cd:before{content:"\e201"}#bookly-tbs .glyphicon-save-file:before{content:"\e202"}#bookly-tbs .glyphicon-open-file:before{content:"\e203"}#bookly-tbs .glyphicon-level-up:before{content:"\e204"}#bookly-tbs .glyphicon-copy:before{content:"\e205"}#bookly-tbs .glyphicon-paste:before{content:"\e206"}#bookly-tbs .glyphicon-alert:before{content:"\e209"}#bookly-tbs .glyphicon-equalizer:before{content:"\e210"}#bookly-tbs .glyphicon-king:before{content:"\e211"}#bookly-tbs .glyphicon-queen:before{content:"\e212"}#bookly-tbs .glyphicon-pawn:before{content:"\e213"}#bookly-tbs .glyphicon-bishop:before{content:"\e214"}#bookly-tbs .glyphicon-knight:before{content:"\e215"}#bookly-tbs .glyphicon-baby-formula:before{content:"\e216"}#bookly-tbs .glyphicon-tent:before{content:"\26fa"}#bookly-tbs .glyphicon-blackboard:before{content:"\e218"}#bookly-tbs .glyphicon-bed:before{content:"\e219"}#bookly-tbs .glyphicon-apple:before{content:"\f8ff"}#bookly-tbs .glyphicon-erase:before{content:"\e221"}#bookly-tbs .glyphicon-hourglass:before{content:"\231b"}#bookly-tbs .glyphicon-lamp:before{content:"\e223"}#bookly-tbs .glyphicon-duplicate:before{content:"\e224"}#bookly-tbs .glyphicon-piggy-bank:before{content:"\e225"}#bookly-tbs .glyphicon-scissors:before{content:"\e226"}#bookly-tbs .glyphicon-bitcoin:before{content:"\e227"}#bookly-tbs .glyphicon-btc:before{content:"\e227"}#bookly-tbs .glyphicon-xbt:before{content:"\e227"}#bookly-tbs .glyphicon-yen:before{content:"\00a5"}#bookly-tbs .glyphicon-jpy:before{content:"\00a5"}#bookly-tbs .glyphicon-ruble:before{content:"\20bd"}#bookly-tbs .glyphicon-rub:before{content:"\20bd"}#bookly-tbs .glyphicon-scale:before{content:"\e230"}#bookly-tbs .glyphicon-ice-lolly:before{content:"\e231"}#bookly-tbs .glyphicon-ice-lolly-tasted:before{content:"\e232"}#bookly-tbs .glyphicon-education:before{content:"\e233"}#bookly-tbs .glyphicon-option-horizontal:before{content:"\e234"}#bookly-tbs .glyphicon-option-vertical:before{content:"\e235"}#bookly-tbs .glyphicon-menu-hamburger:before{content:"\e236"}#bookly-tbs .glyphicon-modal-window:before{content:"\e237"}#bookly-tbs .glyphicon-oil:before{content:"\e238"}#bookly-tbs .glyphicon-grain:before{content:"\e239"}#bookly-tbs .glyphicon-sunglasses:before{content:"\e240"}#bookly-tbs .glyphicon-text-size:before{content:"\e241"}#bookly-tbs .glyphicon-text-color:before{content:"\e242"}#bookly-tbs .glyphicon-text-background:before{content:"\e243"}#bookly-tbs .glyphicon-object-align-top:before{content:"\e244"}#bookly-tbs .glyphicon-object-align-bottom:before{content:"\e245"}#bookly-tbs .glyphicon-object-align-horizontal:before{content:"\e246"}#bookly-tbs .glyphicon-object-align-left:before{content:"\e247"}#bookly-tbs .glyphicon-object-align-vertical:before{content:"\e248"}#bookly-tbs .glyphicon-object-align-right:before{content:"\e249"}#bookly-tbs .glyphicon-triangle-right:before{content:"\e250"}#bookly-tbs .glyphicon-triangle-left:before{content:"\e251"}#bookly-tbs .glyphicon-triangle-bottom:before{content:"\e252"}#bookly-tbs .glyphicon-triangle-top:before{content:"\e253"}#bookly-tbs .glyphicon-console:before{content:"\e254"}#bookly-tbs .glyphicon-superscript:before{content:"\e255"}#bookly-tbs .glyphicon-subscript:before{content:"\e256"}#bookly-tbs .glyphicon-menu-left:before{content:"\e257"}#bookly-tbs .glyphicon-menu-right:before{content:"\e258"}#bookly-tbs .glyphicon-menu-down:before{content:"\e259"}#bookly-tbs .glyphicon-menu-up:before{content:"\e260"}#bookly-tbs *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#bookly-tbs :after,#bookly-tbs :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#bookly-tbs .bookly-tbs-body{font-family:"open sans","helvetica neue",helvetica,arial,sans-serif;font-size:15px;line-height:1.4;color:#3e424a;background-color:transparent;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#bookly-tbs button,#bookly-tbs input,#bookly-tbs select,#bookly-tbs textarea{font-family:inherit;font-size:inherit;line-height:inherit}#bookly-tbs a{color:#08c;text-decoration:none}#bookly-tbs a:focus,#bookly-tbs a:hover{color:#005580;text-decoration:none}#bookly-tbs a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#bookly-tbs figure{margin:0}#bookly-tbs img{vertical-align:middle}#bookly-tbs .carousel-inner>.item>a>img,#bookly-tbs .carousel-inner>.item>img,#bookly-tbs .img-responsive,#bookly-tbs .thumbnail a>img,#bookly-tbs .thumbnail>img{display:block;max-width:100%;height:auto}#bookly-tbs .img-rounded{border-radius:6px}#bookly-tbs .img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.4;background-color:transparent;border:1px solid #e8ebf0;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}#bookly-tbs .img-circle{border-radius:50%}#bookly-tbs hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #d9dee4}#bookly-tbs .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}#bookly-tbs .sr-only-focusable:active,#bookly-tbs .sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}#bookly-tbs [role=button]{cursor:pointer}#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{font-family:inherit;font-weight:400;line-height:1.1;color:inherit}#bookly-tbs .h1 .small,#bookly-tbs .h1 small,#bookly-tbs .h2 .small,#bookly-tbs .h2 small,#bookly-tbs .h3 .small,#bookly-tbs .h3 small,#bookly-tbs .h4 .small,#bookly-tbs .h4 small,#bookly-tbs .h5 .small,#bookly-tbs .h5 small,#bookly-tbs .h6 .small,#bookly-tbs .h6 small,#bookly-tbs h1 .small,#bookly-tbs h1 small,#bookly-tbs h2 .small,#bookly-tbs h2 small,#bookly-tbs h3 .small,#bookly-tbs h3 small,#bookly-tbs h4 .small,#bookly-tbs h4 small,#bookly-tbs h5 .small,#bookly-tbs h5 small,#bookly-tbs h6 .small,#bookly-tbs h6 small{font-weight:400;line-height:1;color:#d9dee4}#bookly-tbs .h1,#bookly-tbs .h2,#bookly-tbs .h3,#bookly-tbs h1,#bookly-tbs h2,#bookly-tbs h3{margin-top:21px;margin-bottom:10.5px}#bookly-tbs .h1 .small,#bookly-tbs .h1 small,#bookly-tbs .h2 .small,#bookly-tbs .h2 small,#bookly-tbs .h3 .small,#bookly-tbs .h3 small,#bookly-tbs h1 .small,#bookly-tbs h1 small,#bookly-tbs h2 .small,#bookly-tbs h2 small,#bookly-tbs h3 .small,#bookly-tbs h3 small{font-size:65%}#bookly-tbs .h4,#bookly-tbs .h5,#bookly-tbs .h6,#bookly-tbs h4,#bookly-tbs h5,#bookly-tbs h6{margin-top:10.5px;margin-bottom:10.5px}#bookly-tbs .h4 .small,#bookly-tbs .h4 small,#bookly-tbs .h5 .small,#bookly-tbs .h5 small,#bookly-tbs .h6 .small,#bookly-tbs .h6 small,#bookly-tbs h4 .small,#bookly-tbs h4 small,#bookly-tbs h5 .small,#bookly-tbs h5 small,#bookly-tbs h6 .small,#bookly-tbs h6 small{font-size:75%}#bookly-tbs .h1,#bookly-tbs h1{font-size:27px}#bookly-tbs .h2,#bookly-tbs h2{font-size:24px}#bookly-tbs .h3,#bookly-tbs h3{font-size:21px}#bookly-tbs .h4,#bookly-tbs h4{font-size:18px}#bookly-tbs .h5,#bookly-tbs h5{font-size:15px}#bookly-tbs .h6,#bookly-tbs h6{font-size:13px}#bookly-tbs p{margin:0 0 10.5px}#bookly-tbs .lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){#bookly-tbs .lead{font-size:22.5px}}#bookly-tbs .small,#bookly-tbs small{font-size:86%}#bookly-tbs .mark,#bookly-tbs mark{padding:.2em;background-color:#fcf8e3}#bookly-tbs .text-left{text-align:left}#bookly-tbs .text-right{text-align:right}#bookly-tbs .text-center{text-align:center}#bookly-tbs .text-justify{text-align:justify}#bookly-tbs .text-nowrap{white-space:nowrap}#bookly-tbs .text-lowercase{text-transform:lowercase}#bookly-tbs .text-uppercase{text-transform:uppercase}#bookly-tbs .text-capitalize{text-transform:capitalize}#bookly-tbs .text-muted{color:#d9dee4}#bookly-tbs .text-primary{color:#08c}#bookly-tbs a.text-primary:focus,#bookly-tbs a.text-primary:hover{color:#069}#bookly-tbs .text-success{color:#3c763d}#bookly-tbs a.text-success:focus,#bookly-tbs a.text-success:hover{color:#2b542c}#bookly-tbs .text-info{color:#31708f}#bookly-tbs a.text-info:focus,#bookly-tbs a.text-info:hover{color:#245269}#bookly-tbs .text-warning{color:#8a6d3b}#bookly-tbs a.text-warning:focus,#bookly-tbs a.text-warning:hover{color:#66512c}#bookly-tbs .text-danger{color:#a94442}#bookly-tbs a.text-danger:focus,#bookly-tbs a.text-danger:hover{color:#843534}#bookly-tbs .bg-primary{color:#fff;background-color:#08c}#bookly-tbs a.bg-primary:focus,#bookly-tbs a.bg-primary:hover{background-color:#069}#bookly-tbs .bg-success{background-color:#dff0d8}#bookly-tbs a.bg-success:focus,#bookly-tbs a.bg-success:hover{background-color:#c1e2b3}#bookly-tbs .bg-info{background-color:#d9edf7}#bookly-tbs a.bg-info:focus,#bookly-tbs a.bg-info:hover{background-color:#afd9ee}#bookly-tbs .bg-warning{background-color:#fcf8e3}#bookly-tbs a.bg-warning:focus,#bookly-tbs a.bg-warning:hover{background-color:#f7ecb5}#bookly-tbs .bg-danger{background-color:#f2dede}#bookly-tbs a.bg-danger:focus,#bookly-tbs a.bg-danger:hover{background-color:#e4b9b9}#bookly-tbs .page-header{padding-bottom:9.5px;margin:42px 0 10.5px;border-bottom:1px solid transparent}#bookly-tbs ol,#bookly-tbs ul{margin-top:0;margin-bottom:10.5px}#bookly-tbs ol ol,#bookly-tbs ol ul,#bookly-tbs ul ol,#bookly-tbs ul ul{margin-bottom:0}#bookly-tbs .list-unstyled{padding-left:0;list-style:none}#bookly-tbs .list-inline{padding-left:0;margin-left:-5px;list-style:none}#bookly-tbs .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}#bookly-tbs dl{margin-top:0;margin-bottom:21px}#bookly-tbs dd,#bookly-tbs dt{line-height:1.4}#bookly-tbs dt{font-weight:700}#bookly-tbs dd{margin-left:0}@media (min-width:768px){#bookly-tbs .dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .dl-horizontal dd{margin-left:180px}}#bookly-tbs abbr[data-original-title],#bookly-tbs abbr[title]{cursor:help;border-bottom:1px dotted #d9dee4}#bookly-tbs .initialism{font-size:90%;text-transform:uppercase}#bookly-tbs blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #e8ebf0}#bookly-tbs blockquote ol:last-child,#bookly-tbs blockquote p:last-child,#bookly-tbs blockquote ul:last-child{margin-bottom:0}#bookly-tbs blockquote .small,#bookly-tbs blockquote footer,#bookly-tbs blockquote small{display:block;font-size:80%;line-height:1.4;color:#d9dee4}#bookly-tbs blockquote .small:before,#bookly-tbs blockquote footer:before,#bookly-tbs blockquote small:before{content:'\2014 \00A0'}#bookly-tbs .blockquote-reverse,#bookly-tbs blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #e8ebf0;border-left:0}#bookly-tbs .blockquote-reverse .small:before,#bookly-tbs .blockquote-reverse footer:before,#bookly-tbs .blockquote-reverse small:before,#bookly-tbs blockquote.pull-right .small:before,#bookly-tbs blockquote.pull-right footer:before,#bookly-tbs blockquote.pull-right small:before{content:''}#bookly-tbs .blockquote-reverse .small:after,#bookly-tbs .blockquote-reverse footer:after,#bookly-tbs .blockquote-reverse small:after,#bookly-tbs blockquote.pull-right .small:after,#bookly-tbs blockquote.pull-right footer:after,#bookly-tbs blockquote.pull-right small:after{content:'\00A0 \2014'}#bookly-tbs address{margin-bottom:21px;font-style:normal;line-height:1.4}#bookly-tbs code,#bookly-tbs kbd,#bookly-tbs pre,#bookly-tbs samp{font-family:menlo,monaco,consolas,"courier new",monospace}#bookly-tbs code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}#bookly-tbs kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}#bookly-tbs kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.4;color:#5b6470;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}#bookly-tbs pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}#bookly-tbs .pre-scrollable{max-height:340px;overflow-y:scroll}#bookly-tbs .container{padding-right:10px;padding-left:10px;margin-right:auto;margin-left:auto}@media (min-width:768px){#bookly-tbs .container{width:740px}}@media (min-width:992px){#bookly-tbs .container{width:960px}}@media (min-width:1200px){#bookly-tbs .container{width:1160px}}#bookly-tbs .container-fluid{padding-right:10px;padding-left:10px;margin-right:auto;margin-left:auto}#bookly-tbs .row{margin-right:-10px;margin-left:-10px}#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-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-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-xs-1,#bookly-tbs .col-xs-10,#bookly-tbs .col-xs-11,#bookly-tbs .col-xs-12,#bookly-tbs .col-xs-2,#bookly-tbs .col-xs-3,#bookly-tbs .col-xs-4,#bookly-tbs .col-xs-5,#bookly-tbs .col-xs-6,#bookly-tbs .col-xs-7,#bookly-tbs .col-xs-8,#bookly-tbs .col-xs-9{position:relative;min-height:1px;padding-right:10px;padding-left:10px}#bookly-tbs .col-xs-1,#bookly-tbs .col-xs-10,#bookly-tbs .col-xs-11,#bookly-tbs .col-xs-12,#bookly-tbs .col-xs-2,#bookly-tbs .col-xs-3,#bookly-tbs .col-xs-4,#bookly-tbs .col-xs-5,#bookly-tbs .col-xs-6,#bookly-tbs .col-xs-7,#bookly-tbs .col-xs-8,#bookly-tbs .col-xs-9{float:left}#bookly-tbs .col-xs-12{width:100%}#bookly-tbs .col-xs-11{width:91.66666667%}#bookly-tbs .col-xs-10{width:83.33333333%}#bookly-tbs .col-xs-9{width:75%}#bookly-tbs .col-xs-8{width:66.66666667%}#bookly-tbs .col-xs-7{width:58.33333333%}#bookly-tbs .col-xs-6{width:50%}#bookly-tbs .col-xs-5{width:41.66666667%}#bookly-tbs .col-xs-4{width:33.33333333%}#bookly-tbs .col-xs-3{width:25%}#bookly-tbs .col-xs-2{width:16.66666667%}#bookly-tbs .col-xs-1{width:8.33333333%}#bookly-tbs .col-xs-pull-12{right:100%}#bookly-tbs .col-xs-pull-11{right:91.66666667%}#bookly-tbs .col-xs-pull-10{right:83.33333333%}#bookly-tbs .col-xs-pull-9{right:75%}#bookly-tbs .col-xs-pull-8{right:66.66666667%}#bookly-tbs .col-xs-pull-7{right:58.33333333%}#bookly-tbs .col-xs-pull-6{right:50%}#bookly-tbs .col-xs-pull-5{right:41.66666667%}#bookly-tbs .col-xs-pull-4{right:33.33333333%}#bookly-tbs .col-xs-pull-3{right:25%}#bookly-tbs .col-xs-pull-2{right:16.66666667%}#bookly-tbs .col-xs-pull-1{right:8.33333333%}#bookly-tbs .col-xs-pull-0{right:auto}#bookly-tbs .col-xs-push-12{left:100%}#bookly-tbs .col-xs-push-11{left:91.66666667%}#bookly-tbs .col-xs-push-10{left:83.33333333%}#bookly-tbs .col-xs-push-9{left:75%}#bookly-tbs .col-xs-push-8{left:66.66666667%}#bookly-tbs .col-xs-push-7{left:58.33333333%}#bookly-tbs .col-xs-push-6{left:50%}#bookly-tbs .col-xs-push-5{left:41.66666667%}#bookly-tbs .col-xs-push-4{left:33.33333333%}#bookly-tbs .col-xs-push-3{left:25%}#bookly-tbs .col-xs-push-2{left:16.66666667%}#bookly-tbs .col-xs-push-1{left:8.33333333%}#bookly-tbs .col-xs-push-0{left:auto}#bookly-tbs .col-xs-offset-12{margin-left:100%}#bookly-tbs .col-xs-offset-11{margin-left:91.66666667%}#bookly-tbs .col-xs-offset-10{margin-left:83.33333333%}#bookly-tbs .col-xs-offset-9{margin-left:75%}#bookly-tbs .col-xs-offset-8{margin-left:66.66666667%}#bookly-tbs .col-xs-offset-7{margin-left:58.33333333%}#bookly-tbs .col-xs-offset-6{margin-left:50%}#bookly-tbs .col-xs-offset-5{margin-left:41.66666667%}#bookly-tbs .col-xs-offset-4{margin-left:33.33333333%}#bookly-tbs .col-xs-offset-3{margin-left:25%}#bookly-tbs .col-xs-offset-2{margin-left:16.66666667%}#bookly-tbs .col-xs-offset-1{margin-left:8.33333333%}#bookly-tbs .col-xs-offset-0{margin-left:0}@media (min-width:768px){#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{float:left}#bookly-tbs .col-sm-12{width:100%}#bookly-tbs .col-sm-11{width:91.66666667%}#bookly-tbs .col-sm-10{width:83.33333333%}#bookly-tbs .col-sm-9{width:75%}#bookly-tbs .col-sm-8{width:66.66666667%}#bookly-tbs .col-sm-7{width:58.33333333%}#bookly-tbs .col-sm-6{width:50%}#bookly-tbs .col-sm-5{width:41.66666667%}#bookly-tbs .col-sm-4{width:33.33333333%}#bookly-tbs .col-sm-3{width:25%}#bookly-tbs .col-sm-2{width:16.66666667%}#bookly-tbs .col-sm-1{width:8.33333333%}#bookly-tbs .col-sm-pull-12{right:100%}#bookly-tbs .col-sm-pull-11{right:91.66666667%}#bookly-tbs .col-sm-pull-10{right:83.33333333%}#bookly-tbs .col-sm-pull-9{right:75%}#bookly-tbs .col-sm-pull-8{right:66.66666667%}#bookly-tbs .col-sm-pull-7{right:58.33333333%}#bookly-tbs .col-sm-pull-6{right:50%}#bookly-tbs .col-sm-pull-5{right:41.66666667%}#bookly-tbs .col-sm-pull-4{right:33.33333333%}#bookly-tbs .col-sm-pull-3{right:25%}#bookly-tbs .col-sm-pull-2{right:16.66666667%}#bookly-tbs .col-sm-pull-1{right:8.33333333%}#bookly-tbs .col-sm-pull-0{right:auto}#bookly-tbs .col-sm-push-12{left:100%}#bookly-tbs .col-sm-push-11{left:91.66666667%}#bookly-tbs .col-sm-push-10{left:83.33333333%}#bookly-tbs .col-sm-push-9{left:75%}#bookly-tbs .col-sm-push-8{left:66.66666667%}#bookly-tbs .col-sm-push-7{left:58.33333333%}#bookly-tbs .col-sm-push-6{left:50%}#bookly-tbs .col-sm-push-5{left:41.66666667%}#bookly-tbs .col-sm-push-4{left:33.33333333%}#bookly-tbs .col-sm-push-3{left:25%}#bookly-tbs .col-sm-push-2{left:16.66666667%}#bookly-tbs .col-sm-push-1{left:8.33333333%}#bookly-tbs .col-sm-push-0{left:auto}#bookly-tbs .col-sm-offset-12{margin-left:100%}#bookly-tbs .col-sm-offset-11{margin-left:91.66666667%}#bookly-tbs .col-sm-offset-10{margin-left:83.33333333%}#bookly-tbs .col-sm-offset-9{margin-left:75%}#bookly-tbs .col-sm-offset-8{margin-left:66.66666667%}#bookly-tbs .col-sm-offset-7{margin-left:58.33333333%}#bookly-tbs .col-sm-offset-6{margin-left:50%}#bookly-tbs .col-sm-offset-5{margin-left:41.66666667%}#bookly-tbs .col-sm-offset-4{margin-left:33.33333333%}#bookly-tbs .col-sm-offset-3{margin-left:25%}#bookly-tbs .col-sm-offset-2{margin-left:16.66666667%}#bookly-tbs .col-sm-offset-1{margin-left:8.33333333%}#bookly-tbs .col-sm-offset-0{margin-left:0}}@media (min-width:992px){#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{float:left}#bookly-tbs .col-md-12{width:100%}#bookly-tbs .col-md-11{width:91.66666667%}#bookly-tbs .col-md-10{width:83.33333333%}#bookly-tbs .col-md-9{width:75%}#bookly-tbs .col-md-8{width:66.66666667%}#bookly-tbs .col-md-7{width:58.33333333%}#bookly-tbs .col-md-6{width:50%}#bookly-tbs .col-md-5{width:41.66666667%}#bookly-tbs .col-md-4{width:33.33333333%}#bookly-tbs .col-md-3{width:25%}#bookly-tbs .col-md-2{width:16.66666667%}#bookly-tbs .col-md-1{width:8.33333333%}#bookly-tbs .col-md-pull-12{right:100%}#bookly-tbs .col-md-pull-11{right:91.66666667%}#bookly-tbs .col-md-pull-10{right:83.33333333%}#bookly-tbs .col-md-pull-9{right:75%}#bookly-tbs .col-md-pull-8{right:66.66666667%}#bookly-tbs .col-md-pull-7{right:58.33333333%}#bookly-tbs .col-md-pull-6{right:50%}#bookly-tbs .col-md-pull-5{right:41.66666667%}#bookly-tbs .col-md-pull-4{right:33.33333333%}#bookly-tbs .col-md-pull-3{right:25%}#bookly-tbs .col-md-pull-2{right:16.66666667%}#bookly-tbs .col-md-pull-1{right:8.33333333%}#bookly-tbs .col-md-pull-0{right:auto}#bookly-tbs .col-md-push-12{left:100%}#bookly-tbs .col-md-push-11{left:91.66666667%}#bookly-tbs .col-md-push-10{left:83.33333333%}#bookly-tbs .col-md-push-9{left:75%}#bookly-tbs .col-md-push-8{left:66.66666667%}#bookly-tbs .col-md-push-7{left:58.33333333%}#bookly-tbs .col-md-push-6{left:50%}#bookly-tbs .col-md-push-5{left:41.66666667%}#bookly-tbs .col-md-push-4{left:33.33333333%}#bookly-tbs .col-md-push-3{left:25%}#bookly-tbs .col-md-push-2{left:16.66666667%}#bookly-tbs .col-md-push-1{left:8.33333333%}#bookly-tbs .col-md-push-0{left:auto}#bookly-tbs .col-md-offset-12{margin-left:100%}#bookly-tbs .col-md-offset-11{margin-left:91.66666667%}#bookly-tbs .col-md-offset-10{margin-left:83.33333333%}#bookly-tbs .col-md-offset-9{margin-left:75%}#bookly-tbs .col-md-offset-8{margin-left:66.66666667%}#bookly-tbs .col-md-offset-7{margin-left:58.33333333%}#bookly-tbs .col-md-offset-6{margin-left:50%}#bookly-tbs .col-md-offset-5{margin-left:41.66666667%}#bookly-tbs .col-md-offset-4{margin-left:33.33333333%}#bookly-tbs .col-md-offset-3{margin-left:25%}#bookly-tbs .col-md-offset-2{margin-left:16.66666667%}#bookly-tbs .col-md-offset-1{margin-left:8.33333333%}#bookly-tbs .col-md-offset-0{margin-left:0}}@media (min-width:1200px){#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{float:left}#bookly-tbs .col-lg-12{width:100%}#bookly-tbs .col-lg-11{width:91.66666667%}#bookly-tbs .col-lg-10{width:83.33333333%}#bookly-tbs .col-lg-9{width:75%}#bookly-tbs .col-lg-8{width:66.66666667%}#bookly-tbs .col-lg-7{width:58.33333333%}#bookly-tbs .col-lg-6{width:50%}#bookly-tbs .col-lg-5{width:41.66666667%}#bookly-tbs .col-lg-4{width:33.33333333%}#bookly-tbs .col-lg-3{width:25%}#bookly-tbs .col-lg-2{width:16.66666667%}#bookly-tbs .col-lg-1{width:8.33333333%}#bookly-tbs .col-lg-pull-12{right:100%}#bookly-tbs .col-lg-pull-11{right:91.66666667%}#bookly-tbs .col-lg-pull-10{right:83.33333333%}#bookly-tbs .col-lg-pull-9{right:75%}#bookly-tbs .col-lg-pull-8{right:66.66666667%}#bookly-tbs .col-lg-pull-7{right:58.33333333%}#bookly-tbs .col-lg-pull-6{right:50%}#bookly-tbs .col-lg-pull-5{right:41.66666667%}#bookly-tbs .col-lg-pull-4{right:33.33333333%}#bookly-tbs .col-lg-pull-3{right:25%}#bookly-tbs .col-lg-pull-2{right:16.66666667%}#bookly-tbs .col-lg-pull-1{right:8.33333333%}#bookly-tbs .col-lg-pull-0{right:auto}#bookly-tbs .col-lg-push-12{left:100%}#bookly-tbs .col-lg-push-11{left:91.66666667%}#bookly-tbs .col-lg-push-10{left:83.33333333%}#bookly-tbs .col-lg-push-9{left:75%}#bookly-tbs .col-lg-push-8{left:66.66666667%}#bookly-tbs .col-lg-push-7{left:58.33333333%}#bookly-tbs .col-lg-push-6{left:50%}#bookly-tbs .col-lg-push-5{left:41.66666667%}#bookly-tbs .col-lg-push-4{left:33.33333333%}#bookly-tbs .col-lg-push-3{left:25%}#bookly-tbs .col-lg-push-2{left:16.66666667%}#bookly-tbs .col-lg-push-1{left:8.33333333%}#bookly-tbs .col-lg-push-0{left:auto}#bookly-tbs .col-lg-offset-12{margin-left:100%}#bookly-tbs .col-lg-offset-11{margin-left:91.66666667%}#bookly-tbs .col-lg-offset-10{margin-left:83.33333333%}#bookly-tbs .col-lg-offset-9{margin-left:75%}#bookly-tbs .col-lg-offset-8{margin-left:66.66666667%}#bookly-tbs .col-lg-offset-7{margin-left:58.33333333%}#bookly-tbs .col-lg-offset-6{margin-left:50%}#bookly-tbs .col-lg-offset-5{margin-left:41.66666667%}#bookly-tbs .col-lg-offset-4{margin-left:33.33333333%}#bookly-tbs .col-lg-offset-3{margin-left:25%}#bookly-tbs .col-lg-offset-2{margin-left:16.66666667%}#bookly-tbs .col-lg-offset-1{margin-left:8.33333333%}#bookly-tbs .col-lg-offset-0{margin-left:0}}#bookly-tbs table{background-color:transparent}#bookly-tbs caption{padding-top:8px;padding-bottom:8px;color:#d9dee4;text-align:left}#bookly-tbs th{text-align:left}#bookly-tbs .table{width:100%;max-width:100%;margin-bottom:21px}#bookly-tbs .table>tbody>tr>td,#bookly-tbs .table>tbody>tr>th,#bookly-tbs .table>tfoot>tr>td,#bookly-tbs .table>tfoot>tr>th,#bookly-tbs .table>thead>tr>td,#bookly-tbs .table>thead>tr>th{padding:8px;line-height:1.4;vertical-align:top;border-top:1px solid #d9dee4}#bookly-tbs .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #d9dee4}#bookly-tbs .table>caption+thead>tr:first-child>td,#bookly-tbs .table>caption+thead>tr:first-child>th,#bookly-tbs .table>colgroup+thead>tr:first-child>td,#bookly-tbs .table>colgroup+thead>tr:first-child>th,#bookly-tbs .table>thead:first-child>tr:first-child>td,#bookly-tbs .table>thead:first-child>tr:first-child>th{border-top:0}#bookly-tbs .table>tbody+tbody{border-top:2px solid #d9dee4}#bookly-tbs .table .table{background-color:transparent}#bookly-tbs .table-condensed>tbody>tr>td,#bookly-tbs .table-condensed>tbody>tr>th,#bookly-tbs .table-condensed>tfoot>tr>td,#bookly-tbs .table-condensed>tfoot>tr>th,#bookly-tbs .table-condensed>thead>tr>td,#bookly-tbs .table-condensed>thead>tr>th{padding:5px}#bookly-tbs .table-bordered{border:1px solid #d9dee4}#bookly-tbs .table-bordered>tbody>tr>td,#bookly-tbs .table-bordered>tbody>tr>th,#bookly-tbs .table-bordered>tfoot>tr>td,#bookly-tbs .table-bordered>tfoot>tr>th,#bookly-tbs .table-bordered>thead>tr>td,#bookly-tbs .table-bordered>thead>tr>th{border:1px solid #d9dee4}#bookly-tbs .table-bordered>thead>tr>td,#bookly-tbs .table-bordered>thead>tr>th{border-bottom-width:2px}#bookly-tbs .table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}#bookly-tbs .table-hover>tbody>tr:hover{background-color:#f5f5f5}#bookly-tbs table col[class*=col-]{position:static;display:table-column;float:none}#bookly-tbs table td[class*=col-],#bookly-tbs table th[class*=col-]{position:static;display:table-cell;float:none}#bookly-tbs .table>tbody>tr.active>td,#bookly-tbs .table>tbody>tr.active>th,#bookly-tbs .table>tbody>tr>td.active,#bookly-tbs .table>tbody>tr>th.active,#bookly-tbs .table>tfoot>tr.active>td,#bookly-tbs .table>tfoot>tr.active>th,#bookly-tbs .table>tfoot>tr>td.active,#bookly-tbs .table>tfoot>tr>th.active,#bookly-tbs .table>thead>tr.active>td,#bookly-tbs .table>thead>tr.active>th,#bookly-tbs .table>thead>tr>td.active,#bookly-tbs .table>thead>tr>th.active{background-color:#f5f5f5}#bookly-tbs .table-hover>tbody>tr.active:hover>td,#bookly-tbs .table-hover>tbody>tr.active:hover>th,#bookly-tbs .table-hover>tbody>tr:hover>.active,#bookly-tbs .table-hover>tbody>tr>td.active:hover,#bookly-tbs .table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}#bookly-tbs .table>tbody>tr.success>td,#bookly-tbs .table>tbody>tr.success>th,#bookly-tbs .table>tbody>tr>td.success,#bookly-tbs .table>tbody>tr>th.success,#bookly-tbs .table>tfoot>tr.success>td,#bookly-tbs .table>tfoot>tr.success>th,#bookly-tbs .table>tfoot>tr>td.success,#bookly-tbs .table>tfoot>tr>th.success,#bookly-tbs .table>thead>tr.success>td,#bookly-tbs .table>thead>tr.success>th,#bookly-tbs .table>thead>tr>td.success,#bookly-tbs .table>thead>tr>th.success{background-color:#dff0d8}#bookly-tbs .table-hover>tbody>tr.success:hover>td,#bookly-tbs .table-hover>tbody>tr.success:hover>th,#bookly-tbs .table-hover>tbody>tr:hover>.success,#bookly-tbs .table-hover>tbody>tr>td.success:hover,#bookly-tbs .table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}#bookly-tbs .table>tbody>tr.info>td,#bookly-tbs .table>tbody>tr.info>th,#bookly-tbs .table>tbody>tr>td.info,#bookly-tbs .table>tbody>tr>th.info,#bookly-tbs .table>tfoot>tr.info>td,#bookly-tbs .table>tfoot>tr.info>th,#bookly-tbs .table>tfoot>tr>td.info,#bookly-tbs .table>tfoot>tr>th.info,#bookly-tbs .table>thead>tr.info>td,#bookly-tbs .table>thead>tr.info>th,#bookly-tbs .table>thead>tr>td.info,#bookly-tbs .table>thead>tr>th.info{background-color:#d9edf7}#bookly-tbs .table-hover>tbody>tr.info:hover>td,#bookly-tbs .table-hover>tbody>tr.info:hover>th,#bookly-tbs .table-hover>tbody>tr:hover>.info,#bookly-tbs .table-hover>tbody>tr>td.info:hover,#bookly-tbs .table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}#bookly-tbs .table>tbody>tr.warning>td,#bookly-tbs .table>tbody>tr.warning>th,#bookly-tbs .table>tbody>tr>td.warning,#bookly-tbs .table>tbody>tr>th.warning,#bookly-tbs .table>tfoot>tr.warning>td,#bookly-tbs .table>tfoot>tr.warning>th,#bookly-tbs .table>tfoot>tr>td.warning,#bookly-tbs .table>tfoot>tr>th.warning,#bookly-tbs .table>thead>tr.warning>td,#bookly-tbs .table>thead>tr.warning>th,#bookly-tbs .table>thead>tr>td.warning,#bookly-tbs .table>thead>tr>th.warning{background-color:#fcf8e3}#bookly-tbs .table-hover>tbody>tr.warning:hover>td,#bookly-tbs .table-hover>tbody>tr.warning:hover>th,#bookly-tbs .table-hover>tbody>tr:hover>.warning,#bookly-tbs .table-hover>tbody>tr>td.warning:hover,#bookly-tbs .table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}#bookly-tbs .table>tbody>tr.danger>td,#bookly-tbs .table>tbody>tr.danger>th,#bookly-tbs .table>tbody>tr>td.danger,#bookly-tbs .table>tbody>tr>th.danger,#bookly-tbs .table>tfoot>tr.danger>td,#bookly-tbs .table>tfoot>tr.danger>th,#bookly-tbs .table>tfoot>tr>td.danger,#bookly-tbs .table>tfoot>tr>th.danger,#bookly-tbs .table>thead>tr.danger>td,#bookly-tbs .table>thead>tr.danger>th,#bookly-tbs .table>thead>tr>td.danger,#bookly-tbs .table>thead>tr>th.danger{background-color:#f2dede}#bookly-tbs .table-hover>tbody>tr.danger:hover>td,#bookly-tbs .table-hover>tbody>tr.danger:hover>th,#bookly-tbs .table-hover>tbody>tr:hover>.danger,#bookly-tbs .table-hover>tbody>tr>td.danger:hover,#bookly-tbs .table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}#bookly-tbs .table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){#bookly-tbs .table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #d9dee4}#bookly-tbs .table-responsive>.table{margin-bottom:0}#bookly-tbs .table-responsive>.table>tbody>tr>td,#bookly-tbs .table-responsive>.table>tbody>tr>th,#bookly-tbs .table-responsive>.table>tfoot>tr>td,#bookly-tbs .table-responsive>.table>tfoot>tr>th,#bookly-tbs .table-responsive>.table>thead>tr>td,#bookly-tbs .table-responsive>.table>thead>tr>th{white-space:nowrap}#bookly-tbs .table-responsive>.table-bordered{border:0}#bookly-tbs .table-responsive>.table-bordered>tbody>tr>td:first-child,#bookly-tbs .table-responsive>.table-bordered>tbody>tr>th:first-child,#bookly-tbs .table-responsive>.table-bordered>tfoot>tr>td:first-child,#bookly-tbs .table-responsive>.table-bordered>tfoot>tr>th:first-child,#bookly-tbs .table-responsive>.table-bordered>thead>tr>td:first-child,#bookly-tbs .table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}#bookly-tbs .table-responsive>.table-bordered>tbody>tr>td:last-child,#bookly-tbs .table-responsive>.table-bordered>tbody>tr>th:last-child,#bookly-tbs .table-responsive>.table-bordered>tfoot>tr>td:last-child,#bookly-tbs .table-responsive>.table-bordered>tfoot>tr>th:last-child,#bookly-tbs .table-responsive>.table-bordered>thead>tr>td:last-child,#bookly-tbs .table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}#bookly-tbs .table-responsive>.table-bordered>tbody>tr:last-child>td,#bookly-tbs .table-responsive>.table-bordered>tbody>tr:last-child>th,#bookly-tbs .table-responsive>.table-bordered>tfoot>tr:last-child>td,#bookly-tbs .table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}#bookly-tbs fieldset{min-width:0;padding:0;margin:0;border:0}#bookly-tbs legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#5b6470;border:0;border-bottom:1px solid #e8ebf0}#bookly-tbs label{display:inline-block;max-width:100%;margin-bottom:7px;font-weight:700}#bookly-tbs input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#bookly-tbs input[type=checkbox],#bookly-tbs input[type=radio]{margin:3px 0 0;margin-top:1px\9;line-height:normal}#bookly-tbs input[type=file]{display:block}#bookly-tbs input[type=range]{display:block;width:100%}#bookly-tbs select[multiple],#bookly-tbs select[size]{height:auto}#bookly-tbs input[type=file]:focus,#bookly-tbs input[type=checkbox]:focus,#bookly-tbs input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#bookly-tbs output{display:block;padding-top:7px;font-size:15px;line-height:1.4;color:#3e424a}#bookly-tbs .form-control{display:block;width:100%;height:35px;padding:6px 12px;font-size:15px;line-height:1.4;color:#3e424a;background-color:#fff;background-image:none;border:1px solid #d9dee4;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,0);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}#bookly-tbs .form-control:focus{border-color:#08c;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0),0 0 8px rgba(0,136,204,0);box-shadow:inset 0 1px 1px rgba(0,0,0,0),0 0 8px rgba(0,136,204,0)}#bookly-tbs .form-control::-moz-placeholder{color:#8a929e;opacity:1}#bookly-tbs .form-control:-ms-input-placeholder{color:#8a929e}#bookly-tbs .form-control::-webkit-input-placeholder{color:#8a929e}#bookly-tbs .form-control::-ms-expand{background-color:transparent;border:0}#bookly-tbs .form-control[disabled],#bookly-tbs .form-control[readonly],#bookly-tbs fieldset[disabled] .form-control{background-color:rgba(232,235,240,.7);opacity:1}#bookly-tbs .form-control[disabled],#bookly-tbs fieldset[disabled] .form-control{cursor:not-allowed}#bookly-tbs textarea.form-control{height:auto}#bookly-tbs input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){#bookly-tbs input[type=date].form-control,#bookly-tbs input[type=time].form-control,#bookly-tbs input[type=datetime-local].form-control,#bookly-tbs input[type=month].form-control{line-height:35px}#bookly-tbs .input-group-sm input[type=date],#bookly-tbs .input-group-sm input[type=time],#bookly-tbs .input-group-sm input[type=datetime-local],#bookly-tbs .input-group-sm input[type=month],#bookly-tbs input[type=date].input-sm,#bookly-tbs input[type=time].input-sm,#bookly-tbs input[type=datetime-local].input-sm,#bookly-tbs input[type=month].input-sm{line-height:32px}#bookly-tbs .input-group-lg input[type=date],#bookly-tbs .input-group-lg input[type=time],#bookly-tbs .input-group-lg input[type=datetime-local],#bookly-tbs .input-group-lg input[type=month],#bookly-tbs input[type=date].input-lg,#bookly-tbs input[type=time].input-lg,#bookly-tbs input[type=datetime-local].input-lg,#bookly-tbs input[type=month].input-lg{line-height:46px}}#bookly-tbs .form-group{margin-bottom:20px}#bookly-tbs .checkbox,#bookly-tbs .radio{position:relative;display:block;margin-top:6px;margin-bottom:7px}#bookly-tbs .checkbox label,#bookly-tbs .radio label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}#bookly-tbs .checkbox input[type=checkbox],#bookly-tbs .checkbox-inline input[type=checkbox],#bookly-tbs .radio input[type=radio],#bookly-tbs .radio-inline input[type=radio]{position:absolute;margin-top:3px\9;margin-left:-20px}#bookly-tbs .checkbox+.checkbox,#bookly-tbs .radio+.radio{margin-top:-5px}#bookly-tbs .checkbox-inline,#bookly-tbs .radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}#bookly-tbs .checkbox-inline+.checkbox-inline,#bookly-tbs .radio-inline+.radio-inline{margin-top:0;margin-left:10px}#bookly-tbs fieldset[disabled] input[type=checkbox],#bookly-tbs fieldset[disabled] input[type=radio],#bookly-tbs input[type=checkbox].disabled,#bookly-tbs input[type=checkbox][disabled],#bookly-tbs input[type=radio].disabled,#bookly-tbs input[type=radio][disabled]{cursor:not-allowed}#bookly-tbs .checkbox-inline.disabled,#bookly-tbs .radio-inline.disabled,#bookly-tbs fieldset[disabled] .checkbox-inline,#bookly-tbs fieldset[disabled] .radio-inline{cursor:not-allowed}#bookly-tbs .checkbox.disabled label,#bookly-tbs .radio.disabled label,#bookly-tbs fieldset[disabled] .checkbox label,#bookly-tbs fieldset[disabled] .radio label{cursor:not-allowed}#bookly-tbs .form-control-static{min-height:36px;padding-top:7px;padding-bottom:7px;margin-bottom:0}#bookly-tbs .form-control-static.input-lg,#bookly-tbs .form-control-static.input-sm{padding-right:0;padding-left:0}#bookly-tbs .input-sm{height:32px;padding:5px 10px;font-size:13px;line-height:1.53846154;border-radius:3px}#bookly-tbs select.input-sm{height:32px;line-height:32px}#bookly-tbs select[multiple].input-sm,#bookly-tbs textarea.input-sm{height:auto}#bookly-tbs .form-group-sm .form-control{height:32px;padding:5px 10px;font-size:13px;line-height:1.53846154;border-radius:3px}#bookly-tbs .form-group-sm select.form-control{height:32px;line-height:32px}#bookly-tbs .form-group-sm select[multiple].form-control,#bookly-tbs .form-group-sm textarea.form-control{height:auto}#bookly-tbs .form-group-sm .form-control-static{height:32px;min-height:34px;padding:6px 10px;font-size:13px;line-height:1.53846154}#bookly-tbs .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}#bookly-tbs select.input-lg{height:46px;line-height:46px}#bookly-tbs select[multiple].input-lg,#bookly-tbs textarea.input-lg{height:auto}#bookly-tbs .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}#bookly-tbs .form-group-lg select.form-control{height:46px;line-height:46px}#bookly-tbs .form-group-lg select[multiple].form-control,#bookly-tbs .form-group-lg textarea.form-control{height:auto}#bookly-tbs .form-group-lg .form-control-static{height:46px;min-height:39px;padding:11px 16px;font-size:18px;line-height:1.3333333}#bookly-tbs .has-feedback{position:relative}#bookly-tbs .has-feedback .form-control{padding-right:43.75px}#bookly-tbs .form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:35px;height:35px;line-height:35px;text-align:center;pointer-events:none}#bookly-tbs .form-group-lg .form-control+.form-control-feedback,#bookly-tbs .input-group-lg+.form-control-feedback,#bookly-tbs .input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}#bookly-tbs .form-group-sm .form-control+.form-control-feedback,#bookly-tbs .input-group-sm+.form-control-feedback,#bookly-tbs .input-sm+.form-control-feedback{width:32px;height:32px;line-height:32px}#bookly-tbs .has-success .checkbox,#bookly-tbs .has-success .checkbox-inline,#bookly-tbs .has-success .control-label,#bookly-tbs .has-success .help-block,#bookly-tbs .has-success .radio,#bookly-tbs .has-success .radio-inline,#bookly-tbs .has-success.checkbox label,#bookly-tbs .has-success.checkbox-inline label,#bookly-tbs .has-success.radio label,#bookly-tbs .has-success.radio-inline label{color:#3c763d}#bookly-tbs .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}#bookly-tbs .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}#bookly-tbs .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}#bookly-tbs .has-success .form-control-feedback{color:#3c763d}#bookly-tbs .has-warning .checkbox,#bookly-tbs .has-warning .checkbox-inline,#bookly-tbs .has-warning .control-label,#bookly-tbs .has-warning .help-block,#bookly-tbs .has-warning .radio,#bookly-tbs .has-warning .radio-inline,#bookly-tbs .has-warning.checkbox label,#bookly-tbs .has-warning.checkbox-inline label,#bookly-tbs .has-warning.radio label,#bookly-tbs .has-warning.radio-inline label{color:#8a6d3b}#bookly-tbs .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}#bookly-tbs .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}#bookly-tbs .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}#bookly-tbs .has-warning .form-control-feedback{color:#8a6d3b}#bookly-tbs .has-error .checkbox,#bookly-tbs .has-error .checkbox-inline,#bookly-tbs .has-error .control-label,#bookly-tbs .has-error .help-block,#bookly-tbs .has-error .radio,#bookly-tbs .has-error .radio-inline,#bookly-tbs .has-error.checkbox label,#bookly-tbs .has-error.checkbox-inline label,#bookly-tbs .has-error.radio label,#bookly-tbs .has-error.radio-inline label{color:#a94442}#bookly-tbs .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}#bookly-tbs .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}#bookly-tbs .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}#bookly-tbs .has-error .form-control-feedback{color:#a94442}#bookly-tbs .has-feedback label~.form-control-feedback{top:26px}#bookly-tbs .has-feedback label.sr-only~.form-control-feedback{top:0}#bookly-tbs .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#8a929e}@media (min-width:768px){#bookly-tbs .form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}#bookly-tbs .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}#bookly-tbs .form-inline .form-control-static{display:inline-block}#bookly-tbs .form-inline .input-group{display:inline-table;vertical-align:middle}#bookly-tbs .form-inline .input-group .form-control,#bookly-tbs .form-inline .input-group .input-group-addon,#bookly-tbs .form-inline .input-group .input-group-btn{width:auto}#bookly-tbs .form-inline .input-group>.form-control{width:100%}#bookly-tbs .form-inline .control-label{margin-bottom:0;vertical-align:middle}#bookly-tbs .form-inline .checkbox,#bookly-tbs .form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}#bookly-tbs .form-inline .has-feedback .form-control-feedback{top:0}}#bookly-tbs .form-horizontal .checkbox,#bookly-tbs .form-horizontal .checkbox-inline,#bookly-tbs .form-horizontal .radio,#bookly-tbs .form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}#bookly-tbs .form-horizontal .checkbox,#bookly-tbs .form-horizontal .radio{min-height:28px}#bookly-tbs .form-horizontal .form-group{margin-right:-10px;margin-left:-10px}@media (min-width:768px){#bookly-tbs .form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}#bookly-tbs .form-horizontal .has-feedback .form-control-feedback{right:10px}@media (min-width:768px){#bookly-tbs .form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){#bookly-tbs .form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:13px}}#bookly-tbs .btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:15px;font-weight:400;line-height:1.4;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}#bookly-tbs .btn.active.focus,#bookly-tbs .btn.active:focus,#bookly-tbs .btn.focus,#bookly-tbs .btn:active.focus,#bookly-tbs .btn:active:focus,#bookly-tbs .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#bookly-tbs .btn.focus,#bookly-tbs .btn:focus,#bookly-tbs .btn:hover{color:#3e424a;text-decoration:none}#bookly-tbs .btn.active,#bookly-tbs .btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}#bookly-tbs .btn.disabled,#bookly-tbs .btn[disabled],#bookly-tbs fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}#bookly-tbs a.btn.disabled,#bookly-tbs fieldset[disabled] a.btn{pointer-events:none}#bookly-tbs .btn-default{color:#3e424a;background-color:#fff;border-color:#d9dee4}#bookly-tbs .btn-default.focus,#bookly-tbs .btn-default:focus{color:#3e424a;background-color:#e6e6e6;border-color:#8e9daf}#bookly-tbs .btn-default:hover{color:#3e424a;background-color:#e6e6e6;border-color:#b5bfcb}#bookly-tbs .btn-default.active,#bookly-tbs .btn-default:active,#bookly-tbs .open>.dropdown-toggle.btn-default{color:#3e424a;background-color:#e6e6e6;border-color:#b5bfcb}#bookly-tbs .btn-default.active.focus,#bookly-tbs .btn-default.active:focus,#bookly-tbs .btn-default.active:hover,#bookly-tbs .btn-default:active.focus,#bookly-tbs .btn-default:active:focus,#bookly-tbs .btn-default:active:hover,#bookly-tbs .open>.dropdown-toggle.btn-default.focus,#bookly-tbs .open>.dropdown-toggle.btn-default:focus,#bookly-tbs .open>.dropdown-toggle.btn-default:hover{color:#3e424a;background-color:#d4d4d4;border-color:#8e9daf}#bookly-tbs .btn-default.active,#bookly-tbs .btn-default:active,#bookly-tbs .open>.dropdown-toggle.btn-default{background-image:none}#bookly-tbs .btn-default.disabled.focus,#bookly-tbs .btn-default.disabled:focus,#bookly-tbs .btn-default.disabled:hover,#bookly-tbs .btn-default[disabled].focus,#bookly-tbs .btn-default[disabled]:focus,#bookly-tbs .btn-default[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-default.focus,#bookly-tbs fieldset[disabled] .btn-default:focus,#bookly-tbs fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#d9dee4}#bookly-tbs .btn-default .badge{color:#fff;background-color:#3e424a}#bookly-tbs .btn-primary{color:#fff;background-color:#08c;border-color:#08c}#bookly-tbs .btn-primary.focus,#bookly-tbs .btn-primary:focus{color:#fff;background-color:#069;border-color:#00334d}#bookly-tbs .btn-primary:hover{color:#fff;background-color:#069;border-color:#005f8f}#bookly-tbs .btn-primary.active,#bookly-tbs .btn-primary:active,#bookly-tbs .open>.dropdown-toggle.btn-primary{color:#fff;background-color:#069;border-color:#005f8f}#bookly-tbs .btn-primary.active.focus,#bookly-tbs .btn-primary.active:focus,#bookly-tbs .btn-primary.active:hover,#bookly-tbs .btn-primary:active.focus,#bookly-tbs .btn-primary:active:focus,#bookly-tbs .btn-primary:active:hover,#bookly-tbs .open>.dropdown-toggle.btn-primary.focus,#bookly-tbs .open>.dropdown-toggle.btn-primary:focus,#bookly-tbs .open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#004e75;border-color:#00334d}#bookly-tbs .btn-primary.active,#bookly-tbs .btn-primary:active,#bookly-tbs .open>.dropdown-toggle.btn-primary{background-image:none}#bookly-tbs .btn-primary.disabled.focus,#bookly-tbs .btn-primary.disabled:focus,#bookly-tbs .btn-primary.disabled:hover,#bookly-tbs .btn-primary[disabled].focus,#bookly-tbs .btn-primary[disabled]:focus,#bookly-tbs .btn-primary[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-primary.focus,#bookly-tbs fieldset[disabled] .btn-primary:focus,#bookly-tbs fieldset[disabled] .btn-primary:hover{background-color:#08c;border-color:#08c}#bookly-tbs .btn-primary .badge{color:#08c;background-color:#fff}#bookly-tbs .btn-success{color:#fff;background-color:#5cb85c;border-color:#5cb85c}#bookly-tbs .btn-success.focus,#bookly-tbs .btn-success:focus{color:#fff;background-color:#449d44;border-color:#2d672d}#bookly-tbs .btn-success:hover{color:#fff;background-color:#449d44;border-color:#419641}#bookly-tbs .btn-success.active,#bookly-tbs .btn-success:active,#bookly-tbs .open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#419641}#bookly-tbs .btn-success.active.focus,#bookly-tbs .btn-success.active:focus,#bookly-tbs .btn-success.active:hover,#bookly-tbs .btn-success:active.focus,#bookly-tbs .btn-success:active:focus,#bookly-tbs .btn-success:active:hover,#bookly-tbs .open>.dropdown-toggle.btn-success.focus,#bookly-tbs .open>.dropdown-toggle.btn-success:focus,#bookly-tbs .open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#2d672d}#bookly-tbs .btn-success.active,#bookly-tbs .btn-success:active,#bookly-tbs .open>.dropdown-toggle.btn-success{background-image:none}#bookly-tbs .btn-success.disabled.focus,#bookly-tbs .btn-success.disabled:focus,#bookly-tbs .btn-success.disabled:hover,#bookly-tbs .btn-success[disabled].focus,#bookly-tbs .btn-success[disabled]:focus,#bookly-tbs .btn-success[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-success.focus,#bookly-tbs fieldset[disabled] .btn-success:focus,#bookly-tbs fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#5cb85c}#bookly-tbs .btn-success .badge{color:#5cb85c;background-color:#fff}#bookly-tbs .btn-info{color:#fff;background-color:#5bc0de;border-color:#31b0d5}#bookly-tbs .btn-info.focus,#bookly-tbs .btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#175b70}#bookly-tbs .btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#2289a7}#bookly-tbs .btn-info.active,#bookly-tbs .btn-info:active,#bookly-tbs .open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#2289a7}#bookly-tbs .btn-info.active.focus,#bookly-tbs .btn-info.active:focus,#bookly-tbs .btn-info.active:hover,#bookly-tbs .btn-info:active.focus,#bookly-tbs .btn-info:active:focus,#bookly-tbs .btn-info:active:hover,#bookly-tbs .open>.dropdown-toggle.btn-info.focus,#bookly-tbs .open>.dropdown-toggle.btn-info:focus,#bookly-tbs .open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#175b70}#bookly-tbs .btn-info.active,#bookly-tbs .btn-info:active,#bookly-tbs .open>.dropdown-toggle.btn-info{background-image:none}#bookly-tbs .btn-info.disabled.focus,#bookly-tbs .btn-info.disabled:focus,#bookly-tbs .btn-info.disabled:hover,#bookly-tbs .btn-info[disabled].focus,#bookly-tbs .btn-info[disabled]:focus,#bookly-tbs .btn-info[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-info.focus,#bookly-tbs fieldset[disabled] .btn-info:focus,#bookly-tbs fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#31b0d5}#bookly-tbs .btn-info .badge{color:#5bc0de;background-color:#fff}#bookly-tbs .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}#bookly-tbs .btn-warning.focus,#bookly-tbs .btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#b06d0f}#bookly-tbs .btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#eb9316}#bookly-tbs .btn-warning.active,#bookly-tbs .btn-warning:active,#bookly-tbs .open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#eb9316}#bookly-tbs .btn-warning.active.focus,#bookly-tbs .btn-warning.active:focus,#bookly-tbs .btn-warning.active:hover,#bookly-tbs .btn-warning:active.focus,#bookly-tbs .btn-warning:active:focus,#bookly-tbs .btn-warning:active:hover,#bookly-tbs .open>.dropdown-toggle.btn-warning.focus,#bookly-tbs .open>.dropdown-toggle.btn-warning:focus,#bookly-tbs .open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#b06d0f}#bookly-tbs .btn-warning.active,#bookly-tbs .btn-warning:active,#bookly-tbs .open>.dropdown-toggle.btn-warning{background-image:none}#bookly-tbs .btn-warning.disabled.focus,#bookly-tbs .btn-warning.disabled:focus,#bookly-tbs .btn-warning.disabled:hover,#bookly-tbs .btn-warning[disabled].focus,#bookly-tbs .btn-warning[disabled]:focus,#bookly-tbs .btn-warning[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-warning.focus,#bookly-tbs fieldset[disabled] .btn-warning:focus,#bookly-tbs fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#f0ad4e}#bookly-tbs .btn-warning .badge{color:#f0ad4e;background-color:#fff}#bookly-tbs .btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}#bookly-tbs .btn-danger.focus,#bookly-tbs .btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#8b211e}#bookly-tbs .btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#c12e2a}#bookly-tbs .btn-danger.active,#bookly-tbs .btn-danger:active,#bookly-tbs .open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#c12e2a}#bookly-tbs .btn-danger.active.focus,#bookly-tbs .btn-danger.active:focus,#bookly-tbs .btn-danger.active:hover,#bookly-tbs .btn-danger:active.focus,#bookly-tbs .btn-danger:active:focus,#bookly-tbs .btn-danger:active:hover,#bookly-tbs .open>.dropdown-toggle.btn-danger.focus,#bookly-tbs .open>.dropdown-toggle.btn-danger:focus,#bookly-tbs .open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#8b211e}#bookly-tbs .btn-danger.active,#bookly-tbs .btn-danger:active,#bookly-tbs .open>.dropdown-toggle.btn-danger{background-image:none}#bookly-tbs .btn-danger.disabled.focus,#bookly-tbs .btn-danger.disabled:focus,#bookly-tbs .btn-danger.disabled:hover,#bookly-tbs .btn-danger[disabled].focus,#bookly-tbs .btn-danger[disabled]:focus,#bookly-tbs .btn-danger[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-danger.focus,#bookly-tbs fieldset[disabled] .btn-danger:focus,#bookly-tbs fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d9534f}#bookly-tbs .btn-danger .badge{color:#d9534f;background-color:#fff}#bookly-tbs .btn-link{font-weight:400;color:#08c;border-radius:0}#bookly-tbs .btn-link,#bookly-tbs .btn-link.active,#bookly-tbs .btn-link:active,#bookly-tbs .btn-link[disabled],#bookly-tbs fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .btn-link,#bookly-tbs .btn-link:active,#bookly-tbs .btn-link:focus,#bookly-tbs .btn-link:hover{border-color:transparent}#bookly-tbs .btn-link:focus,#bookly-tbs .btn-link:hover{color:#005580;text-decoration:none;background-color:transparent}#bookly-tbs .btn-link[disabled]:focus,#bookly-tbs .btn-link[disabled]:hover,#bookly-tbs fieldset[disabled] .btn-link:focus,#bookly-tbs fieldset[disabled] .btn-link:hover{color:#8a929e;text-decoration:none}#bookly-tbs .btn-group-lg>.btn,#bookly-tbs .btn-lg{padding:10px 16px;font-size:15px;line-height:1.3333333;border-radius:4px}#bookly-tbs .btn-group-sm>.btn,#bookly-tbs .btn-sm{padding:5px 10px;font-size:13px;line-height:1.53846154;border-radius:3px}#bookly-tbs .btn-group-xs>.btn,#bookly-tbs .btn-xs{padding:1px 5px;font-size:13px;line-height:1.53846154;border-radius:3px}#bookly-tbs .btn-block{display:block;width:100%}#bookly-tbs .btn-block+.btn-block{margin-top:5px}#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{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}#bookly-tbs .fade.in{opacity:1}#bookly-tbs .collapse{display:none}#bookly-tbs .collapse.in{display:block}#bookly-tbs tr.collapse.in{display:table-row}#bookly-tbs tbody.collapse.in{display:table-row-group}#bookly-tbs .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}#bookly-tbs .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:5px dashed;border-top:5px solid\9;border-right:5px solid transparent;border-left:5px solid transparent}#bookly-tbs .dropdown,#bookly-tbs .dropup{position:relative}#bookly-tbs .dropdown-toggle:focus{outline:0}#bookly-tbs .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:15px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}#bookly-tbs .dropdown-menu.pull-right{right:0;left:auto}#bookly-tbs .dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}#bookly-tbs .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.4;color:#5b6470;white-space:nowrap}#bookly-tbs .dropdown-menu>li>a:focus,#bookly-tbs .dropdown-menu>li>a:hover{color:#505762;text-decoration:none;background-color:#f5f5f5}#bookly-tbs .dropdown-menu>.active>a,#bookly-tbs .dropdown-menu>.active>a:focus,#bookly-tbs .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#08c;outline:0}#bookly-tbs .dropdown-menu>.disabled>a,#bookly-tbs .dropdown-menu>.disabled>a:focus,#bookly-tbs .dropdown-menu>.disabled>a:hover{color:#d9dee4}#bookly-tbs .dropdown-menu>.disabled>a:focus,#bookly-tbs .dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}#bookly-tbs .open>.dropdown-menu{display:block}#bookly-tbs .open>a{outline:0}#bookly-tbs .dropdown-menu-right{right:0;left:auto}#bookly-tbs .dropdown-menu-left{right:auto;left:0}#bookly-tbs .dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.4;color:#d9dee4;white-space:nowrap}#bookly-tbs .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}#bookly-tbs .pull-right>.dropdown-menu{right:0;left:auto}#bookly-tbs .dropup .caret,#bookly-tbs .navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:5px dashed;border-bottom:5px solid\9}#bookly-tbs .dropup .dropdown-menu,#bookly-tbs .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){#bookly-tbs .navbar-right .dropdown-menu{right:0;left:auto}#bookly-tbs .navbar-right .dropdown-menu-left{right:auto;left:0}}#bookly-tbs .btn-group,#bookly-tbs .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}#bookly-tbs .btn-group-vertical>.btn,#bookly-tbs .btn-group>.btn{position:relative;float:left}#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-vertical>.btn:hover,#bookly-tbs .btn-group>.btn.active,#bookly-tbs .btn-group>.btn:active,#bookly-tbs .btn-group>.btn:focus,#bookly-tbs .btn-group>.btn:hover{z-index:2}#bookly-tbs .btn-group .btn+.btn,#bookly-tbs .btn-group .btn+.btn-group,#bookly-tbs .btn-group .btn-group+.btn,#bookly-tbs .btn-group .btn-group+.btn-group{margin-left:-1px}#bookly-tbs .btn-toolbar{margin-left:-5px}#bookly-tbs .btn-toolbar .btn,#bookly-tbs .btn-toolbar .btn-group,#bookly-tbs .btn-toolbar .input-group{float:left}#bookly-tbs .btn-toolbar>.btn,#bookly-tbs .btn-toolbar>.btn-group,#bookly-tbs .btn-toolbar>.input-group{margin-left:5px}#bookly-tbs .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}#bookly-tbs .btn-group>.btn:first-child{margin-left:0}#bookly-tbs .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .btn-group>.btn:last-child:not(:first-child),#bookly-tbs .btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .btn-group>.btn-group{float:left}#bookly-tbs .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}#bookly-tbs .btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,#bookly-tbs .btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .btn-group .dropdown-toggle:active,#bookly-tbs .btn-group.open .dropdown-toggle{outline:0}#bookly-tbs .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}#bookly-tbs .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}#bookly-tbs .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}#bookly-tbs .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .btn .caret{margin-left:0}#bookly-tbs .btn-lg .caret{border-width:6px 6px 0;border-bottom-width:0}#bookly-tbs .dropup .btn-lg .caret{border-width:0 6px 6px}#bookly-tbs .btn-group-vertical>.btn,#bookly-tbs .btn-group-vertical>.btn-group,#bookly-tbs .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}#bookly-tbs .btn-group-vertical>.btn-group>.btn{float:none}#bookly-tbs .btn-group-vertical>.btn+.btn,#bookly-tbs .btn-group-vertical>.btn+.btn-group,#bookly-tbs .btn-group-vertical>.btn-group+.btn,#bookly-tbs .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}#bookly-tbs .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}#bookly-tbs .btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}#bookly-tbs .btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}#bookly-tbs .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}#bookly-tbs .btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,#bookly-tbs .btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}#bookly-tbs .btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}#bookly-tbs .btn-group-justified>.btn,#bookly-tbs .btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}#bookly-tbs .btn-group-justified>.btn-group .btn{width:100%}#bookly-tbs .btn-group-justified>.btn-group .dropdown-menu{left:auto}#bookly-tbs [data-toggle=buttons]>.btn input[type=checkbox],#bookly-tbs [data-toggle=buttons]>.btn input[type=radio],#bookly-tbs [data-toggle=buttons]>.btn-group>.btn input[type=checkbox],#bookly-tbs [data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}#bookly-tbs .input-group{position:relative;display:table;border-collapse:separate}#bookly-tbs .input-group[class*=col-]{float:none;padding-right:0;padding-left:0}#bookly-tbs .input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}#bookly-tbs .input-group .form-control:focus{z-index:3}#bookly-tbs .input-group-lg>.form-control,#bookly-tbs .input-group-lg>.input-group-addon,#bookly-tbs .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}#bookly-tbs select.input-group-lg>.form-control,#bookly-tbs select.input-group-lg>.input-group-addon,#bookly-tbs select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}#bookly-tbs select[multiple].input-group-lg>.form-control,#bookly-tbs select[multiple].input-group-lg>.input-group-addon,#bookly-tbs select[multiple].input-group-lg>.input-group-btn>.btn,#bookly-tbs textarea.input-group-lg>.form-control,#bookly-tbs textarea.input-group-lg>.input-group-addon,#bookly-tbs textarea.input-group-lg>.input-group-btn>.btn{height:auto}#bookly-tbs .input-group-sm>.form-control,#bookly-tbs .input-group-sm>.input-group-addon,#bookly-tbs .input-group-sm>.input-group-btn>.btn{height:32px;padding:5px 10px;font-size:13px;line-height:1.53846154;border-radius:3px}#bookly-tbs select.input-group-sm>.form-control,#bookly-tbs select.input-group-sm>.input-group-addon,#bookly-tbs select.input-group-sm>.input-group-btn>.btn{height:32px;line-height:32px}#bookly-tbs select[multiple].input-group-sm>.form-control,#bookly-tbs select[multiple].input-group-sm>.input-group-addon,#bookly-tbs select[multiple].input-group-sm>.input-group-btn>.btn,#bookly-tbs textarea.input-group-sm>.form-control,#bookly-tbs textarea.input-group-sm>.input-group-addon,#bookly-tbs textarea.input-group-sm>.input-group-btn>.btn{height:auto}#bookly-tbs .input-group .form-control,#bookly-tbs .input-group-addon,#bookly-tbs .input-group-btn{display:table-cell}#bookly-tbs .input-group .form-control:not(:first-child):not(:last-child),#bookly-tbs .input-group-addon:not(:first-child):not(:last-child),#bookly-tbs .input-group-btn:not(:first-child):not(:last-child){border-radius:0}#bookly-tbs .input-group-addon,#bookly-tbs .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}#bookly-tbs .input-group-addon{padding:6px 12px;font-size:15px;font-weight:400;line-height:1;color:#3e424a;text-align:center;background-color:#e8ebf0;border:1px solid #d9dee4;border-radius:4px}#bookly-tbs .input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:3px}#bookly-tbs .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}#bookly-tbs .input-group-addon input[type=checkbox],#bookly-tbs .input-group-addon input[type=radio]{margin-top:0}#bookly-tbs .input-group .form-control:first-child,#bookly-tbs .input-group-addon:first-child,#bookly-tbs .input-group-btn:first-child>.btn,#bookly-tbs .input-group-btn:first-child>.btn-group>.btn,#bookly-tbs .input-group-btn:first-child>.dropdown-toggle,#bookly-tbs .input-group-btn:last-child>.btn-group:not(:last-child)>.btn,#bookly-tbs .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .input-group-addon:first-child{border-right:0}#bookly-tbs .input-group .form-control:last-child,#bookly-tbs .input-group-addon:last-child,#bookly-tbs .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,#bookly-tbs .input-group-btn:first-child>.btn:not(:first-child),#bookly-tbs .input-group-btn:last-child>.btn,#bookly-tbs .input-group-btn:last-child>.btn-group>.btn,#bookly-tbs .input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .input-group-addon:last-child{border-left:0}#bookly-tbs .input-group-btn{position:relative;font-size:0;white-space:nowrap}#bookly-tbs .input-group-btn>.btn{position:relative}#bookly-tbs .input-group-btn>.btn+.btn{margin-left:-1px}#bookly-tbs .input-group-btn>.btn:active,#bookly-tbs .input-group-btn>.btn:focus,#bookly-tbs .input-group-btn>.btn:hover{z-index:2}#bookly-tbs .input-group-btn:first-child>.btn,#bookly-tbs .input-group-btn:first-child>.btn-group{margin-right:-1px}#bookly-tbs .input-group-btn:last-child>.btn,#bookly-tbs .input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}#bookly-tbs .nav{padding-left:0;margin-bottom:0;list-style:none}#bookly-tbs .nav>li{position:relative;display:block}#bookly-tbs .nav>li>a{position:relative;display:block;padding:10px 15px}#bookly-tbs .nav>li>a:focus,#bookly-tbs .nav>li>a:hover{text-decoration:none;background-color:#e8ebf0}#bookly-tbs .nav>li.disabled>a{color:#d9dee4}#bookly-tbs .nav>li.disabled>a:focus,#bookly-tbs .nav>li.disabled>a:hover{color:#d9dee4;text-decoration:none;cursor:not-allowed;background-color:transparent}#bookly-tbs .nav .open>a,#bookly-tbs .nav .open>a:focus,#bookly-tbs .nav .open>a:hover{background-color:#e8ebf0;border-color:#08c}#bookly-tbs .nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}#bookly-tbs .nav>li>a>img{max-width:none}#bookly-tbs .nav-tabs{border-bottom:1px solid #d9dee4}#bookly-tbs .nav-tabs>li{float:left;margin-bottom:-1px}#bookly-tbs .nav-tabs>li>a{margin-right:2px;line-height:1.4;border:1px solid transparent;border-radius:4px 4px 0 0}#bookly-tbs .nav-tabs>li>a:hover{border-color:#e8ebf0 #e8ebf0 #d9dee4}#bookly-tbs .nav-tabs>li.active>a,#bookly-tbs .nav-tabs>li.active>a:focus,#bookly-tbs .nav-tabs>li.active>a:hover{color:#8a929e;cursor:default;background-color:transparent;border:1px solid transparent;border-bottom-color:transparent}#bookly-tbs .nav-tabs.nav-justified{width:100%;border-bottom:0}#bookly-tbs .nav-tabs.nav-justified>li{float:none}#bookly-tbs .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}#bookly-tbs .nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:1px){#bookly-tbs .nav-tabs.nav-justified>li{display:table-cell;width:1%}#bookly-tbs .nav-tabs.nav-justified>li>a{margin-bottom:0}}#bookly-tbs .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}#bookly-tbs .nav-tabs.nav-justified>.active>a,#bookly-tbs .nav-tabs.nav-justified>.active>a:focus,#bookly-tbs .nav-tabs.nav-justified>.active>a:hover{border:1px solid #08c}@media (min-width:768px){#bookly-tbs .nav-tabs.nav-justified>li>a{border-bottom:1px solid #d9dee4;border-radius:4px 4px 0 0}#bookly-tbs .nav-tabs.nav-justified>.active>a,#bookly-tbs .nav-tabs.nav-justified>.active>a:focus,#bookly-tbs .nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#08c}}#bookly-tbs .nav-pills>li{float:left}#bookly-tbs .nav-pills>li>a{border-radius:4px}#bookly-tbs .nav-pills>li+li{margin-left:2px}#bookly-tbs .nav-pills>li.active>a,#bookly-tbs .nav-pills>li.active>a:focus,#bookly-tbs .nav-pills>li.active>a:hover{color:#fff;background-color:#08c}#bookly-tbs .nav-stacked>li{float:none}#bookly-tbs .nav-stacked>li+li{margin-top:2px;margin-left:0}#bookly-tbs .nav-justified{width:100%}#bookly-tbs .nav-justified>li{float:none}#bookly-tbs .nav-justified>li>a{margin-bottom:5px;text-align:center}#bookly-tbs .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:1px){#bookly-tbs .nav-justified>li{display:table-cell;width:1%}#bookly-tbs .nav-justified>li>a{margin-bottom:0}}#bookly-tbs .nav-tabs-justified{border-bottom:0}#bookly-tbs .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}#bookly-tbs .nav-tabs-justified>.active>a,#bookly-tbs .nav-tabs-justified>.active>a:focus,#bookly-tbs .nav-tabs-justified>.active>a:hover{border:1px solid #08c}@media (min-width:768px){#bookly-tbs .nav-tabs-justified>li>a{border-bottom:1px solid #d9dee4;border-radius:4px 4px 0 0}#bookly-tbs .nav-tabs-justified>.active>a,#bookly-tbs .nav-tabs-justified>.active>a:focus,#bookly-tbs .nav-tabs-justified>.active>a:hover{border-bottom-color:#08c}}#bookly-tbs .tab-content>.tab-pane{display:none}#bookly-tbs .tab-content>.active{display:block}#bookly-tbs .nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .navbar{position:relative;min-height:50px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){#bookly-tbs .navbar{border-radius:4px}}@media (min-width:768px){#bookly-tbs .navbar-header{float:left}}#bookly-tbs .navbar-collapse{padding-right:10px;padding-left:10px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}#bookly-tbs .navbar-collapse.in{overflow-y:auto}@media (min-width:768px){#bookly-tbs .navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}#bookly-tbs .navbar-collapse.in{overflow-y:visible}#bookly-tbs .navbar-fixed-bottom .navbar-collapse,#bookly-tbs .navbar-fixed-top .navbar-collapse,#bookly-tbs .navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}#bookly-tbs .navbar-fixed-bottom .navbar-collapse,#bookly-tbs .navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){#bookly-tbs .navbar-fixed-bottom .navbar-collapse,#bookly-tbs .navbar-fixed-top .navbar-collapse{max-height:200px}}#bookly-tbs .container-fluid>.navbar-collapse,#bookly-tbs .container-fluid>.navbar-header,#bookly-tbs .container>.navbar-collapse,#bookly-tbs .container>.navbar-header{margin-right:-10px;margin-left:-10px}@media (min-width:768px){#bookly-tbs .container-fluid>.navbar-collapse,#bookly-tbs .container-fluid>.navbar-header,#bookly-tbs .container>.navbar-collapse,#bookly-tbs .container>.navbar-header{margin-right:0;margin-left:0}}#bookly-tbs .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){#bookly-tbs .navbar-static-top{border-radius:0}}#bookly-tbs .navbar-fixed-bottom,#bookly-tbs .navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){#bookly-tbs .navbar-fixed-bottom,#bookly-tbs .navbar-fixed-top{border-radius:0}}#bookly-tbs .navbar-fixed-top{top:0;border-width:0 0 1px}#bookly-tbs .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}#bookly-tbs .navbar-brand{float:left;height:50px;padding:14.5px 10px;font-size:18px;line-height:21px}#bookly-tbs .navbar-brand:focus,#bookly-tbs .navbar-brand:hover{text-decoration:none}#bookly-tbs .navbar-brand>img{display:block}@media (min-width:768px){#bookly-tbs .navbar>.container .navbar-brand,#bookly-tbs .navbar>.container-fluid .navbar-brand{margin-left:-10px}}#bookly-tbs .navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:10px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}#bookly-tbs .navbar-toggle:focus{outline:0}#bookly-tbs .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}#bookly-tbs .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){#bookly-tbs .navbar-toggle{display:none}}#bookly-tbs .navbar-nav{margin:7.25px -10px}#bookly-tbs .navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){#bookly-tbs .navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .navbar-nav .open .dropdown-menu .dropdown-header,#bookly-tbs .navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}#bookly-tbs .navbar-nav .open .dropdown-menu>li>a{line-height:21px}#bookly-tbs .navbar-nav .open .dropdown-menu>li>a:focus,#bookly-tbs .navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){#bookly-tbs .navbar-nav{float:left;margin:0}#bookly-tbs .navbar-nav>li{float:left}#bookly-tbs .navbar-nav>li>a{padding-top:14.5px;padding-bottom:14.5px}}#bookly-tbs .navbar-form{padding:10px 10px;margin-top:7.5px;margin-right:-10px;margin-bottom:7.5px;margin-left:-10px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){#bookly-tbs .navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}#bookly-tbs .navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}#bookly-tbs .navbar-form .form-control-static{display:inline-block}#bookly-tbs .navbar-form .input-group{display:inline-table;vertical-align:middle}#bookly-tbs .navbar-form .input-group .form-control,#bookly-tbs .navbar-form .input-group .input-group-addon,#bookly-tbs .navbar-form .input-group .input-group-btn{width:auto}#bookly-tbs .navbar-form .input-group>.form-control{width:100%}#bookly-tbs .navbar-form .control-label{margin-bottom:0;vertical-align:middle}#bookly-tbs .navbar-form .checkbox,#bookly-tbs .navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}#bookly-tbs .navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){#bookly-tbs .navbar-form .form-group{margin-bottom:5px}#bookly-tbs .navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){#bookly-tbs .navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}#bookly-tbs .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}#bookly-tbs .navbar-btn{margin-top:7.5px;margin-bottom:7.5px}#bookly-tbs .navbar-btn.btn-sm{margin-top:9px;margin-bottom:9px}#bookly-tbs .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}#bookly-tbs .navbar-text{margin-top:14.5px;margin-bottom:14.5px}@media (min-width:768px){#bookly-tbs .navbar-text{float:left;margin-right:10px;margin-left:10px}}@media (min-width:768px){#bookly-tbs .navbar-left{float:left!important}#bookly-tbs .navbar-right{float:right!important;margin-right:-10px}#bookly-tbs .navbar-right~.navbar-right{margin-right:0}}#bookly-tbs .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}#bookly-tbs .navbar-default .navbar-brand{color:#777}#bookly-tbs .navbar-default .navbar-brand:focus,#bookly-tbs .navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}#bookly-tbs .navbar-default .navbar-text{color:#777}#bookly-tbs .navbar-default .navbar-nav>li>a{color:#777}#bookly-tbs .navbar-default .navbar-nav>li>a:focus,#bookly-tbs .navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}#bookly-tbs .navbar-default .navbar-nav>.active>a,#bookly-tbs .navbar-default .navbar-nav>.active>a:focus,#bookly-tbs .navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}#bookly-tbs .navbar-default .navbar-nav>.disabled>a,#bookly-tbs .navbar-default .navbar-nav>.disabled>a:focus,#bookly-tbs .navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}#bookly-tbs .navbar-default .navbar-toggle{border-color:#e8ebf0}#bookly-tbs .navbar-default .navbar-toggle:focus,#bookly-tbs .navbar-default .navbar-toggle:hover{background-color:#e8ebf0}#bookly-tbs .navbar-default .navbar-toggle .icon-bar{background-color:#8a929e}#bookly-tbs .navbar-default .navbar-collapse,#bookly-tbs .navbar-default .navbar-form{border-color:#e7e7e7}#bookly-tbs .navbar-default .navbar-nav>.open>a,#bookly-tbs .navbar-default .navbar-nav>.open>a:focus,#bookly-tbs .navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>.active>a,#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,#bookly-tbs .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}#bookly-tbs .navbar-default .navbar-link{color:#777}#bookly-tbs .navbar-default .navbar-link:hover{color:#333}#bookly-tbs .navbar-default .btn-link{color:#777}#bookly-tbs .navbar-default .btn-link:focus,#bookly-tbs .navbar-default .btn-link:hover{color:#333}#bookly-tbs .navbar-default .btn-link[disabled]:focus,#bookly-tbs .navbar-default .btn-link[disabled]:hover,#bookly-tbs fieldset[disabled] .navbar-default .btn-link:focus,#bookly-tbs fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}#bookly-tbs .navbar-inverse{background-color:#222;border-color:#080808}#bookly-tbs .navbar-inverse .navbar-brand{color:#fff}#bookly-tbs .navbar-inverse .navbar-brand:focus,#bookly-tbs .navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}#bookly-tbs .navbar-inverse .navbar-text{color:#fff}#bookly-tbs .navbar-inverse .navbar-nav>li>a{color:#fff}#bookly-tbs .navbar-inverse .navbar-nav>li>a:focus,#bookly-tbs .navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}#bookly-tbs .navbar-inverse .navbar-nav>.active>a,#bookly-tbs .navbar-inverse .navbar-nav>.active>a:focus,#bookly-tbs .navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}#bookly-tbs .navbar-inverse .navbar-nav>.disabled>a,#bookly-tbs .navbar-inverse .navbar-nav>.disabled>a:focus,#bookly-tbs .navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}#bookly-tbs .navbar-inverse .navbar-toggle{border-color:#333}#bookly-tbs .navbar-inverse .navbar-toggle:focus,#bookly-tbs .navbar-inverse .navbar-toggle:hover{background-color:#333}#bookly-tbs .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}#bookly-tbs .navbar-inverse .navbar-collapse,#bookly-tbs .navbar-inverse .navbar-form{border-color:#101010}#bookly-tbs .navbar-inverse .navbar-nav>.open>a,#bookly-tbs .navbar-inverse .navbar-nav>.open>a:focus,#bookly-tbs .navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#fff}#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,#bookly-tbs .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}#bookly-tbs .navbar-inverse .navbar-link{color:#fff}#bookly-tbs .navbar-inverse .navbar-link:hover{color:#fff}#bookly-tbs .navbar-inverse .btn-link{color:#fff}#bookly-tbs .navbar-inverse .btn-link:focus,#bookly-tbs .navbar-inverse .btn-link:hover{color:#fff}#bookly-tbs .navbar-inverse .btn-link[disabled]:focus,#bookly-tbs .navbar-inverse .btn-link[disabled]:hover,#bookly-tbs fieldset[disabled] .navbar-inverse .btn-link:focus,#bookly-tbs fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}#bookly-tbs .breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:4px}#bookly-tbs .breadcrumb>li{display:inline-block}#bookly-tbs .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}#bookly-tbs .breadcrumb>.active{color:#d9dee4}#bookly-tbs .pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:4px}#bookly-tbs .pagination>li{display:inline}#bookly-tbs .pagination>li>a,#bookly-tbs .pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.4;color:#08c;text-decoration:none;background-color:#fff;border:1px solid #e8ebf0}#bookly-tbs .pagination>li:first-child>a,#bookly-tbs .pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}#bookly-tbs .pagination>li:last-child>a,#bookly-tbs .pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}#bookly-tbs .pagination>li>a:focus,#bookly-tbs .pagination>li>a:hover,#bookly-tbs .pagination>li>span:focus,#bookly-tbs .pagination>li>span:hover{z-index:2;color:#005580;background-color:#e8ebf0;border-color:#e8ebf0}#bookly-tbs .pagination>.active>a,#bookly-tbs .pagination>.active>a:focus,#bookly-tbs .pagination>.active>a:hover,#bookly-tbs .pagination>.active>span,#bookly-tbs .pagination>.active>span:focus,#bookly-tbs .pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#08c;border-color:#08c}#bookly-tbs .pagination>.disabled>a,#bookly-tbs .pagination>.disabled>a:focus,#bookly-tbs .pagination>.disabled>a:hover,#bookly-tbs .pagination>.disabled>span,#bookly-tbs .pagination>.disabled>span:focus,#bookly-tbs .pagination>.disabled>span:hover{color:#d9dee4;pointer-events:none;cursor:not-allowed;background-color:#fff;border-color:#e8ebf0}#bookly-tbs .pagination-lg>li>a,#bookly-tbs .pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}#bookly-tbs .pagination-lg>li:first-child>a,#bookly-tbs .pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}#bookly-tbs .pagination-lg>li:last-child>a,#bookly-tbs .pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}#bookly-tbs .pagination-sm>li>a,#bookly-tbs .pagination-sm>li>span{padding:5px 10px;font-size:13px;line-height:1.53846154}#bookly-tbs .pagination-sm>li:first-child>a,#bookly-tbs .pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}#bookly-tbs .pagination-sm>li:last-child>a,#bookly-tbs .pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}#bookly-tbs .pager{padding-left:0;margin:21px 0;text-align:center;list-style:none}#bookly-tbs .pager li{display:inline}#bookly-tbs .pager li>a,#bookly-tbs .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #e8ebf0;border-radius:15px}#bookly-tbs .pager li>a:focus,#bookly-tbs .pager li>a:hover{text-decoration:none;background-color:#e8ebf0}#bookly-tbs .pager .next>a,#bookly-tbs .pager .next>span{float:right}#bookly-tbs .pager .previous>a,#bookly-tbs .pager .previous>span{float:left}#bookly-tbs .pager .disabled>a,#bookly-tbs .pager .disabled>a:focus,#bookly-tbs .pager .disabled>a:hover,#bookly-tbs .pager .disabled>span{color:#d9dee4;pointer-events:none;cursor:not-allowed;background-color:#fff}#bookly-tbs .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}#bookly-tbs a.label:focus,#bookly-tbs a.label:hover{color:#fff;text-decoration:none;cursor:pointer}#bookly-tbs .label:empty{display:none}#bookly-tbs .btn .label{position:relative;top:-1px}#bookly-tbs .label-default{background-color:#d9dee4}#bookly-tbs .label-default[href]:focus,#bookly-tbs .label-default[href]:hover{background-color:#bbc4cf}#bookly-tbs .label-primary{background-color:#08c}#bookly-tbs .label-primary[href]:focus,#bookly-tbs .label-primary[href]:hover{background-color:#069}#bookly-tbs .label-success{background-color:#5cb85c}#bookly-tbs .label-success[href]:focus,#bookly-tbs .label-success[href]:hover{background-color:#449d44}#bookly-tbs .label-info{background-color:#5bc0de}#bookly-tbs .label-info[href]:focus,#bookly-tbs .label-info[href]:hover{background-color:#31b0d5}#bookly-tbs .label-warning{background-color:#f0ad4e}#bookly-tbs .label-warning[href]:focus,#bookly-tbs .label-warning[href]:hover{background-color:#ec971f}#bookly-tbs .label-danger{background-color:#d9534f}#bookly-tbs .label-danger[href]:focus,#bookly-tbs .label-danger[href]:hover{background-color:#c9302c}#bookly-tbs .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#d9dee4;border-radius:10px}#bookly-tbs .badge:empty{display:none}#bookly-tbs .btn .badge{position:relative;top:-1px}#bookly-tbs .btn-group-xs>.btn .badge,#bookly-tbs .btn-xs .badge{top:0;padding:1px 5px}#bookly-tbs a.badge:focus,#bookly-tbs a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}#bookly-tbs .list-group-item.active>.badge,#bookly-tbs .nav-pills>.active>a>.badge{color:#08c;background-color:#fff}#bookly-tbs .list-group-item>.badge{float:right}#bookly-tbs .list-group-item>.badge+.badge{margin-right:5px}#bookly-tbs .nav-pills>li>a>.badge{margin-left:3px}#bookly-tbs .jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#e8ebf0}#bookly-tbs .jumbotron .h1,#bookly-tbs .jumbotron h1{color:inherit}#bookly-tbs .jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}#bookly-tbs .jumbotron>hr{border-top-color:#c9d0dc}#bookly-tbs .container .jumbotron,#bookly-tbs .container-fluid .jumbotron{padding-right:10px;padding-left:10px;border-radius:6px}#bookly-tbs .jumbotron .container{max-width:100%}@media screen and (min-width:768px){#bookly-tbs .jumbotron{padding-top:48px;padding-bottom:48px}#bookly-tbs .container .jumbotron,#bookly-tbs .container-fluid .jumbotron{padding-right:60px;padding-left:60px}#bookly-tbs .jumbotron .h1,#bookly-tbs .jumbotron h1{font-size:68px}}#bookly-tbs .thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.4;background-color:transparent;border:1px solid #e8ebf0;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}#bookly-tbs .thumbnail a>img,#bookly-tbs .thumbnail>img{margin-right:auto;margin-left:auto}#bookly-tbs a.thumbnail.active,#bookly-tbs a.thumbnail:focus,#bookly-tbs a.thumbnail:hover{border-color:#08c}#bookly-tbs .thumbnail .caption{padding:9px;color:#3e424a}#bookly-tbs .alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:4px}#bookly-tbs .alert h4{margin-top:0;color:inherit}#bookly-tbs .alert .alert-link{font-weight:700}#bookly-tbs .alert>p,#bookly-tbs .alert>ul{margin-bottom:0}#bookly-tbs .alert>p+p{margin-top:5px}#bookly-tbs .alert-dismissable,#bookly-tbs .alert-dismissible{padding-right:35px}#bookly-tbs .alert-dismissable .close,#bookly-tbs .alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}#bookly-tbs .alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}#bookly-tbs .alert-success hr{border-top-color:#c9e2b3}#bookly-tbs .alert-success .alert-link{color:#2b542c}#bookly-tbs .alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}#bookly-tbs .alert-info hr{border-top-color:#a6e1ec}#bookly-tbs .alert-info .alert-link{color:#245269}#bookly-tbs .alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}#bookly-tbs .alert-warning hr{border-top-color:#f7e1b5}#bookly-tbs .alert-warning .alert-link{color:#66512c}#bookly-tbs .alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}#bookly-tbs .alert-danger hr{border-top-color:#e4b9c0}#bookly-tbs .alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}#bookly-tbs .progress{height:21px;margin-bottom:21px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}#bookly-tbs .progress-bar{float:left;width:0;height:100%;font-size:13px;line-height:21px;color:#fff;text-align:center;background-color:#08c;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}#bookly-tbs .progress-bar-striped,#bookly-tbs .progress-striped .progress-bar{background-image:-webkit-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-image:-o-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-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);-webkit-background-size:40px 40px;background-size:40px 40px}#bookly-tbs .progress-bar.active,#bookly-tbs .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}#bookly-tbs .progress-bar-success{background-color:#5cb85c}#bookly-tbs .progress-striped .progress-bar-success{background-image:-webkit-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-image:-o-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-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)}#bookly-tbs .progress-bar-info{background-color:#5bc0de}#bookly-tbs .progress-striped .progress-bar-info{background-image:-webkit-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-image:-o-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-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)}#bookly-tbs .progress-bar-warning{background-color:#f0ad4e}#bookly-tbs .progress-striped .progress-bar-warning{background-image:-webkit-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-image:-o-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-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)}#bookly-tbs .progress-bar-danger{background-color:#d9534f}#bookly-tbs .progress-striped .progress-bar-danger{background-image:-webkit-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-image:-o-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-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)}#bookly-tbs .media{margin-top:15px}#bookly-tbs .media:first-child{margin-top:0}#bookly-tbs .media,#bookly-tbs .media-body{overflow:hidden;zoom:1}#bookly-tbs .media-body{width:10000px}#bookly-tbs .media-object{display:block}#bookly-tbs .media-object.img-thumbnail{max-width:none}#bookly-tbs .media-right,#bookly-tbs .media>.pull-right{padding-left:10px}#bookly-tbs .media-left,#bookly-tbs .media>.pull-left{padding-right:10px}#bookly-tbs .media-body,#bookly-tbs .media-left,#bookly-tbs .media-right{display:table-cell;vertical-align:top}#bookly-tbs .media-middle{vertical-align:middle}#bookly-tbs .media-bottom{vertical-align:bottom}#bookly-tbs .media-heading{margin-top:0;margin-bottom:5px}#bookly-tbs .media-list{padding-left:0;list-style:none}#bookly-tbs .list-group{padding-left:0;margin-bottom:20px}#bookly-tbs .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #e8ebf0}#bookly-tbs .list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}#bookly-tbs .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}#bookly-tbs a.list-group-item,#bookly-tbs button.list-group-item{color:#555}#bookly-tbs a.list-group-item .list-group-item-heading,#bookly-tbs button.list-group-item .list-group-item-heading{color:#333}#bookly-tbs a.list-group-item:focus,#bookly-tbs a.list-group-item:hover,#bookly-tbs button.list-group-item:focus,#bookly-tbs button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}#bookly-tbs button.list-group-item{width:100%;text-align:left}#bookly-tbs .list-group-item.disabled,#bookly-tbs .list-group-item.disabled:focus,#bookly-tbs .list-group-item.disabled:hover{color:#d9dee4;cursor:not-allowed;background-color:#e8ebf0}#bookly-tbs .list-group-item.disabled .list-group-item-heading,#bookly-tbs .list-group-item.disabled:focus .list-group-item-heading,#bookly-tbs .list-group-item.disabled:hover .list-group-item-heading{color:inherit}#bookly-tbs .list-group-item.disabled .list-group-item-text,#bookly-tbs .list-group-item.disabled:focus .list-group-item-text,#bookly-tbs .list-group-item.disabled:hover .list-group-item-text{color:#d9dee4}#bookly-tbs .list-group-item.active,#bookly-tbs .list-group-item.active:focus,#bookly-tbs .list-group-item.active:hover{z-index:2;color:#fff;background-color:#08c;border-color:#08c}#bookly-tbs .list-group-item.active .list-group-item-heading,#bookly-tbs .list-group-item.active .list-group-item-heading>.small,#bookly-tbs .list-group-item.active .list-group-item-heading>small,#bookly-tbs .list-group-item.active:focus .list-group-item-heading,#bookly-tbs .list-group-item.active:focus .list-group-item-heading>.small,#bookly-tbs .list-group-item.active:focus .list-group-item-heading>small,#bookly-tbs .list-group-item.active:hover .list-group-item-heading,#bookly-tbs .list-group-item.active:hover .list-group-item-heading>.small,#bookly-tbs .list-group-item.active:hover .list-group-item-heading>small{color:inherit}#bookly-tbs .list-group-item.active .list-group-item-text,#bookly-tbs .list-group-item.active:focus .list-group-item-text,#bookly-tbs .list-group-item.active:hover .list-group-item-text{color:#9df}#bookly-tbs .list-group-item-success{color:#3c763d;background-color:#dff0d8}#bookly-tbs a.list-group-item-success,#bookly-tbs button.list-group-item-success{color:#3c763d}#bookly-tbs a.list-group-item-success .list-group-item-heading,#bookly-tbs button.list-group-item-success .list-group-item-heading{color:inherit}#bookly-tbs a.list-group-item-success:focus,#bookly-tbs a.list-group-item-success:hover,#bookly-tbs button.list-group-item-success:focus,#bookly-tbs button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}#bookly-tbs a.list-group-item-success.active,#bookly-tbs a.list-group-item-success.active:focus,#bookly-tbs a.list-group-item-success.active:hover,#bookly-tbs button.list-group-item-success.active,#bookly-tbs button.list-group-item-success.active:focus,#bookly-tbs button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}#bookly-tbs .list-group-item-info{color:#31708f;background-color:#d9edf7}#bookly-tbs a.list-group-item-info,#bookly-tbs button.list-group-item-info{color:#31708f}#bookly-tbs a.list-group-item-info .list-group-item-heading,#bookly-tbs button.list-group-item-info .list-group-item-heading{color:inherit}#bookly-tbs a.list-group-item-info:focus,#bookly-tbs a.list-group-item-info:hover,#bookly-tbs button.list-group-item-info:focus,#bookly-tbs button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}#bookly-tbs a.list-group-item-info.active,#bookly-tbs a.list-group-item-info.active:focus,#bookly-tbs a.list-group-item-info.active:hover,#bookly-tbs button.list-group-item-info.active,#bookly-tbs button.list-group-item-info.active:focus,#bookly-tbs button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}#bookly-tbs .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}#bookly-tbs a.list-group-item-warning,#bookly-tbs button.list-group-item-warning{color:#8a6d3b}#bookly-tbs a.list-group-item-warning .list-group-item-heading,#bookly-tbs button.list-group-item-warning .list-group-item-heading{color:inherit}#bookly-tbs a.list-group-item-warning:focus,#bookly-tbs a.list-group-item-warning:hover,#bookly-tbs button.list-group-item-warning:focus,#bookly-tbs button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}#bookly-tbs a.list-group-item-warning.active,#bookly-tbs a.list-group-item-warning.active:focus,#bookly-tbs a.list-group-item-warning.active:hover,#bookly-tbs button.list-group-item-warning.active,#bookly-tbs button.list-group-item-warning.active:focus,#bookly-tbs button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}#bookly-tbs .list-group-item-danger{color:#a94442;background-color:#f2dede}#bookly-tbs a.list-group-item-danger,#bookly-tbs button.list-group-item-danger{color:#a94442}#bookly-tbs a.list-group-item-danger .list-group-item-heading,#bookly-tbs button.list-group-item-danger .list-group-item-heading{color:inherit}#bookly-tbs a.list-group-item-danger:focus,#bookly-tbs a.list-group-item-danger:hover,#bookly-tbs button.list-group-item-danger:focus,#bookly-tbs button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}#bookly-tbs a.list-group-item-danger.active,#bookly-tbs a.list-group-item-danger.active:focus,#bookly-tbs a.list-group-item-danger.active:hover,#bookly-tbs button.list-group-item-danger.active,#bookly-tbs button.list-group-item-danger.active:focus,#bookly-tbs button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}#bookly-tbs .list-group-item-heading{margin-top:0;margin-bottom:5px}#bookly-tbs .list-group-item-text{margin-bottom:0;line-height:1.3}#bookly-tbs .panel{margin-bottom:21px;background-color:#fff;border:2px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}#bookly-tbs .panel-body{padding:15px}#bookly-tbs .panel-heading{padding:15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}#bookly-tbs .panel-heading>.dropdown .dropdown-toggle{color:inherit}#bookly-tbs .panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit}#bookly-tbs .panel-title>.small,#bookly-tbs .panel-title>.small>a,#bookly-tbs .panel-title>a,#bookly-tbs .panel-title>small,#bookly-tbs .panel-title>small>a{color:inherit}#bookly-tbs .panel-footer{padding:15px;background-color:#e8ebf0;border-top:1px solid #e8ebf0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}#bookly-tbs .panel>.list-group,#bookly-tbs .panel>.panel-collapse>.list-group{margin-bottom:0}#bookly-tbs .panel>.list-group .list-group-item,#bookly-tbs .panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}#bookly-tbs .panel>.list-group:first-child .list-group-item:first-child,#bookly-tbs .panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}#bookly-tbs .panel>.list-group:last-child .list-group-item:last-child,#bookly-tbs .panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}#bookly-tbs .panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}#bookly-tbs .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}#bookly-tbs .list-group+.panel-footer{border-top-width:0}#bookly-tbs .panel>.panel-collapse>.table,#bookly-tbs .panel>.table,#bookly-tbs .panel>.table-responsive>.table{margin-bottom:0}#bookly-tbs .panel>.panel-collapse>.table caption,#bookly-tbs .panel>.table caption,#bookly-tbs .panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}#bookly-tbs .panel>.table-responsive:first-child>.table:first-child,#bookly-tbs .panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,#bookly-tbs .panel>.table:first-child>tbody:first-child>tr:first-child,#bookly-tbs .panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,#bookly-tbs .panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,#bookly-tbs .panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,#bookly-tbs .panel>.table:first-child>thead:first-child>tr:first-child td:first-child,#bookly-tbs .panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,#bookly-tbs .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,#bookly-tbs .panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,#bookly-tbs .panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,#bookly-tbs .panel>.table:first-child>thead:first-child>tr:first-child td:last-child,#bookly-tbs .panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}#bookly-tbs .panel>.table-responsive:last-child>.table:last-child,#bookly-tbs .panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,#bookly-tbs .panel>.table:last-child>tbody:last-child>tr:last-child,#bookly-tbs .panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,#bookly-tbs .panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,#bookly-tbs .panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,#bookly-tbs .panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,#bookly-tbs .panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,#bookly-tbs .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,#bookly-tbs .panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,#bookly-tbs .panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,#bookly-tbs .panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,#bookly-tbs .panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}#bookly-tbs .panel>.panel-body+.table,#bookly-tbs .panel>.panel-body+.table-responsive,#bookly-tbs .panel>.table+.panel-body,#bookly-tbs .panel>.table-responsive+.panel-body{border-top:1px solid #d9dee4}#bookly-tbs .panel>.table>tbody:first-child>tr:first-child td,#bookly-tbs .panel>.table>tbody:first-child>tr:first-child th{border-top:0}#bookly-tbs .panel>.table-bordered,#bookly-tbs .panel>.table-responsive>.table-bordered{border:0}#bookly-tbs .panel>.table-bordered>tbody>tr>td:first-child,#bookly-tbs .panel>.table-bordered>tbody>tr>th:first-child,#bookly-tbs .panel>.table-bordered>tfoot>tr>td:first-child,#bookly-tbs .panel>.table-bordered>tfoot>tr>th:first-child,#bookly-tbs .panel>.table-bordered>thead>tr>td:first-child,#bookly-tbs .panel>.table-bordered>thead>tr>th:first-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,#bookly-tbs .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,#bookly-tbs .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}#bookly-tbs .panel>.table-bordered>tbody>tr>td:last-child,#bookly-tbs .panel>.table-bordered>tbody>tr>th:last-child,#bookly-tbs .panel>.table-bordered>tfoot>tr>td:last-child,#bookly-tbs .panel>.table-bordered>tfoot>tr>th:last-child,#bookly-tbs .panel>.table-bordered>thead>tr>td:last-child,#bookly-tbs .panel>.table-bordered>thead>tr>th:last-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,#bookly-tbs .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,#bookly-tbs .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,#bookly-tbs .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}#bookly-tbs .panel>.table-bordered>tbody>tr:first-child>td,#bookly-tbs .panel>.table-bordered>tbody>tr:first-child>th,#bookly-tbs .panel>.table-bordered>thead>tr:first-child>td,#bookly-tbs .panel>.table-bordered>thead>tr:first-child>th,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,#bookly-tbs .panel>.table-responsive>.table-bordered>thead>tr:first-child>td,#bookly-tbs .panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}#bookly-tbs .panel>.table-bordered>tbody>tr:last-child>td,#bookly-tbs .panel>.table-bordered>tbody>tr:last-child>th,#bookly-tbs .panel>.table-bordered>tfoot>tr:last-child>td,#bookly-tbs .panel>.table-bordered>tfoot>tr:last-child>th,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,#bookly-tbs .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,#bookly-tbs .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,#bookly-tbs .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}#bookly-tbs .panel>.table-responsive{margin-bottom:0;border:0}#bookly-tbs .panel-group{margin-bottom:21px}#bookly-tbs .panel-group .panel{margin-bottom:0;border-radius:4px}#bookly-tbs .panel-group .panel+.panel{margin-top:10px}#bookly-tbs .panel-group .panel-heading{border-bottom:0}#bookly-tbs .panel-group .panel-heading+.panel-collapse>.list-group,#bookly-tbs .panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #e8ebf0}#bookly-tbs .panel-group .panel-footer{border-top:0}#bookly-tbs .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #e8ebf0}#bookly-tbs .panel-default{border-color:#e8ebf0}#bookly-tbs .panel-default>.panel-heading{color:#3e424a;background-color:#e8ebf0;border-color:#e8ebf0}#bookly-tbs .panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#e8ebf0}#bookly-tbs .panel-default>.panel-heading .badge{color:#e8ebf0;background-color:#3e424a}#bookly-tbs .panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#e8ebf0}#bookly-tbs .panel-primary{border-color:#08c}#bookly-tbs .panel-primary>.panel-heading{color:#fff;background-color:#08c;border-color:#08c}#bookly-tbs .panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#08c}#bookly-tbs .panel-primary>.panel-heading .badge{color:#08c;background-color:#fff}#bookly-tbs .panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#08c}#bookly-tbs .panel-success{border-color:#d6e9c6}#bookly-tbs .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}#bookly-tbs .panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}#bookly-tbs .panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}#bookly-tbs .panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}#bookly-tbs .panel-info{border-color:#bce8f1}#bookly-tbs .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}#bookly-tbs .panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}#bookly-tbs .panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}#bookly-tbs .panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}#bookly-tbs .panel-warning{border-color:#faebcc}#bookly-tbs .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}#bookly-tbs .panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}#bookly-tbs .panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}#bookly-tbs .panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}#bookly-tbs .panel-danger{border-color:#ebccd1}#bookly-tbs .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}#bookly-tbs .panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}#bookly-tbs .panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}#bookly-tbs .panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}#bookly-tbs .embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}#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-16by9{padding-bottom:56.25%}#bookly-tbs .embed-responsive-4by3{padding-bottom:75%}#bookly-tbs .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}#bookly-tbs .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}#bookly-tbs .well-lg{padding:24px;border-radius:6px}#bookly-tbs .well-sm{padding:9px;border-radius:3px}#bookly-tbs .close{float:right;font-size:22.5px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}#bookly-tbs .close:focus,#bookly-tbs .close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}#bookly-tbs button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}#bookly-tbs .modal-open{overflow:hidden}#bookly-tbs .modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}#bookly-tbs .modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}#bookly-tbs .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}#bookly-tbs .modal-open .modal{overflow-x:hidden;overflow-y:auto}#bookly-tbs .modal-dialog{position:relative;width:auto;margin:10px}#bookly-tbs .modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}#bookly-tbs .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}#bookly-tbs .modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}#bookly-tbs .modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}#bookly-tbs .modal-header{padding:15px;border-bottom:1px solid #e5e5e5}#bookly-tbs .modal-header .close{margin-top:-2px}#bookly-tbs .modal-title{margin:0;line-height:1.4}#bookly-tbs .modal-body{position:relative;padding:15px}#bookly-tbs .modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}#bookly-tbs .modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}#bookly-tbs .modal-footer .btn-group .btn+.btn{margin-left:-1px}#bookly-tbs .modal-footer .btn-block+.btn-block{margin-left:0}#bookly-tbs .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){#bookly-tbs .modal-dialog{width:600px;margin:30px auto}#bookly-tbs .modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}#bookly-tbs .modal-sm{width:300px}}@media (min-width:992px){#bookly-tbs .modal-lg{width:900px}}#bookly-tbs .tooltip{position:absolute;z-index:1070;display:block;font-family:"open sans","helvetica neue",helvetica,arial,sans-serif;font-size:13px;font-style:normal;font-weight:400;line-height:1.4;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}#bookly-tbs .tooltip.in{filter:alpha(opacity=90);opacity:.9}#bookly-tbs .tooltip.top{padding:5px 0;margin-top:-3px}#bookly-tbs .tooltip.right{padding:0 5px;margin-left:3px}#bookly-tbs .tooltip.bottom{padding:5px 0;margin-top:3px}#bookly-tbs .tooltip.left{padding:0 5px;margin-left:-3px}#bookly-tbs .tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}#bookly-tbs .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}#bookly-tbs .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}#bookly-tbs .tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}#bookly-tbs .tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}#bookly-tbs .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}#bookly-tbs .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}#bookly-tbs .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}#bookly-tbs .tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}#bookly-tbs .tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}#bookly-tbs .popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:600px;padding:1px;font-family:"open sans","helvetica neue",helvetica,arial,sans-serif;font-size:15px;font-style:normal;font-weight:400;line-height:1.4;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}#bookly-tbs .popover.top{margin-top:-10px}#bookly-tbs .popover.right{margin-left:10px}#bookly-tbs .popover.bottom{margin-top:10px}#bookly-tbs .popover.left{margin-left:-10px}#bookly-tbs .popover-title{padding:8px 14px;margin:0;font-size:15px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}#bookly-tbs .popover-content{padding:14px 20px}#bookly-tbs .popover>.popover-arrow,#bookly-tbs .popover>.popover-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}#bookly-tbs .popover>.popover-arrow{border-width:11px}#bookly-tbs .popover>.popover-arrow:after{content:"";border-width:10px}#bookly-tbs .popover.top>.popover-arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}#bookly-tbs .popover.top>.popover-arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}#bookly-tbs .popover.right>.popover-arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}#bookly-tbs .popover.right>.popover-arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}#bookly-tbs .popover.bottom>.popover-arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}#bookly-tbs .popover.bottom>.popover-arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}#bookly-tbs .popover.left>.popover-arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}#bookly-tbs .popover.left>.popover-arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}#bookly-tbs .carousel{position:relative}#bookly-tbs .carousel-inner{position:relative;width:100%;overflow:hidden}#bookly-tbs .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}#bookly-tbs .carousel-inner>.item>a>img,#bookly-tbs .carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){#bookly-tbs .carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}#bookly-tbs .carousel-inner>.item.active.right,#bookly-tbs .carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}#bookly-tbs .carousel-inner>.item.active.left,#bookly-tbs .carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}#bookly-tbs .carousel-inner>.item.active,#bookly-tbs .carousel-inner>.item.next.left,#bookly-tbs .carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}#bookly-tbs .carousel-inner>.active,#bookly-tbs .carousel-inner>.next,#bookly-tbs .carousel-inner>.prev{display:block}#bookly-tbs .carousel-inner>.active{left:0}#bookly-tbs .carousel-inner>.next,#bookly-tbs .carousel-inner>.prev{position:absolute;top:0;width:100%}#bookly-tbs .carousel-inner>.next{left:100%}#bookly-tbs .carousel-inner>.prev{left:-100%}#bookly-tbs .carousel-inner>.next.left,#bookly-tbs .carousel-inner>.prev.right{left:0}#bookly-tbs .carousel-inner>.active.left{left:-100%}#bookly-tbs .carousel-inner>.active.right{left:100%}#bookly-tbs .carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}#bookly-tbs .carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}#bookly-tbs .carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}#bookly-tbs .carousel-control:focus,#bookly-tbs .carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}#bookly-tbs .carousel-control .glyphicon-chevron-left,#bookly-tbs .carousel-control .glyphicon-chevron-right,#bookly-tbs .carousel-control .icon-next,#bookly-tbs .carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}#bookly-tbs .carousel-control .glyphicon-chevron-left,#bookly-tbs .carousel-control .icon-prev{left:50%;margin-left:-10px}#bookly-tbs .carousel-control .glyphicon-chevron-right,#bookly-tbs .carousel-control .icon-next{right:50%;margin-right:-10px}#bookly-tbs .carousel-control .icon-next,#bookly-tbs .carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}#bookly-tbs .carousel-control .icon-prev:before{content:'\2039'}#bookly-tbs .carousel-control .icon-next:before{content:'\203a'}#bookly-tbs .carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}#bookly-tbs .carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}#bookly-tbs .carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}#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;text-shadow:0 1px 2px rgba(0,0,0,.6)}#bookly-tbs .carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){#bookly-tbs .carousel-control .glyphicon-chevron-left,#bookly-tbs .carousel-control .glyphicon-chevron-right,#bookly-tbs .carousel-control .icon-next,#bookly-tbs .carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}#bookly-tbs .carousel-control .glyphicon-chevron-left,#bookly-tbs .carousel-control .icon-prev{margin-left:-10px}#bookly-tbs .carousel-control .glyphicon-chevron-right,#bookly-tbs .carousel-control .icon-next{margin-right:-10px}#bookly-tbs .carousel-caption{right:20%;left:20%;padding-bottom:30px}#bookly-tbs .carousel-indicators{bottom:20px}}#bookly-tbs .btn-group-vertical>.btn-group:after,#bookly-tbs .btn-group-vertical>.btn-group:before,#bookly-tbs .btn-toolbar:after,#bookly-tbs .btn-toolbar:before,#bookly-tbs .clearfix:after,#bookly-tbs .clearfix:before,#bookly-tbs .container-fluid:after,#bookly-tbs .container-fluid:before,#bookly-tbs .container:after,#bookly-tbs .container:before,#bookly-tbs .dl-horizontal dd:after,#bookly-tbs .dl-horizontal dd:before,#bookly-tbs .form-horizontal .form-group:after,#bookly-tbs .form-horizontal .form-group:before,#bookly-tbs .modal-footer:after,#bookly-tbs .modal-footer:before,#bookly-tbs .modal-header:after,#bookly-tbs .modal-header:before,#bookly-tbs .nav:after,#bookly-tbs .nav:before,#bookly-tbs .navbar-collapse:after,#bookly-tbs .navbar-collapse:before,#bookly-tbs .navbar-header:after,#bookly-tbs .navbar-header:before,#bookly-tbs .navbar:after,#bookly-tbs .navbar:before,#bookly-tbs .pager:after,#bookly-tbs .pager:before,#bookly-tbs .panel-body:after,#bookly-tbs .panel-body:before,#bookly-tbs .row:after,#bookly-tbs .row:before{display:table;content:" "}#bookly-tbs .btn-group-vertical>.btn-group:after,#bookly-tbs .btn-toolbar:after,#bookly-tbs .clearfix:after,#bookly-tbs .container-fluid:after,#bookly-tbs .container:after,#bookly-tbs .dl-horizontal dd:after,#bookly-tbs .form-horizontal .form-group:after,#bookly-tbs .modal-footer:after,#bookly-tbs .modal-header:after,#bookly-tbs .nav:after,#bookly-tbs .navbar-collapse:after,#bookly-tbs .navbar-header:after,#bookly-tbs .navbar:after,#bookly-tbs .pager:after,#bookly-tbs .panel-body:after,#bookly-tbs .row:after{clear:both}#bookly-tbs .center-block{display:block;margin-right:auto;margin-left:auto}#bookly-tbs .pull-right{float:right!important}#bookly-tbs .pull-left{float:left!important}#bookly-tbs .hide{display:none!important}#bookly-tbs .show{display:block!important}#bookly-tbs .invisible{visibility:hidden}#bookly-tbs .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}#bookly-tbs .hidden{display:none!important}#bookly-tbs .affix{position:fixed}@-ms-viewport{width:device-width}#bookly-tbs .visible-lg,#bookly-tbs .visible-md,#bookly-tbs .visible-sm,#bookly-tbs .visible-xs{display:none!important}#bookly-tbs .visible-lg-block,#bookly-tbs .visible-lg-inline,#bookly-tbs .visible-lg-inline-block,#bookly-tbs .visible-md-block,#bookly-tbs .visible-md-inline,#bookly-tbs .visible-md-inline-block,#bookly-tbs .visible-sm-block,#bookly-tbs .visible-sm-inline,#bookly-tbs .visible-sm-inline-block,#bookly-tbs .visible-xs-block,#bookly-tbs .visible-xs-inline,#bookly-tbs .visible-xs-inline-block{display:none!important}@media (max-width:767px){#bookly-tbs .visible-xs{display:block!important}#bookly-tbs table.visible-xs{display:table!important}#bookly-tbs tr.visible-xs{display:table-row!important}#bookly-tbs td.visible-xs,#bookly-tbs th.visible-xs{display:table-cell!important}}@media (max-width:767px){#bookly-tbs .visible-xs-block{display:block!important}}@media (max-width:767px){#bookly-tbs .visible-xs-inline{display:inline!important}}@media (max-width:767px){#bookly-tbs .visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){#bookly-tbs .visible-sm{display:block!important}#bookly-tbs table.visible-sm{display:table!important}#bookly-tbs tr.visible-sm{display:table-row!important}#bookly-tbs td.visible-sm,#bookly-tbs th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){#bookly-tbs .visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){#bookly-tbs .visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){#bookly-tbs .visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){#bookly-tbs .visible-md{display:block!important}#bookly-tbs table.visible-md{display:table!important}#bookly-tbs tr.visible-md{display:table-row!important}#bookly-tbs td.visible-md,#bookly-tbs th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){#bookly-tbs .visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){#bookly-tbs .visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){#bookly-tbs .visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){#bookly-tbs .visible-lg{display:block!important}#bookly-tbs table.visible-lg{display:table!important}#bookly-tbs tr.visible-lg{display:table-row!important}#bookly-tbs td.visible-lg,#bookly-tbs th.visible-lg{display:table-cell!important}}@media (min-width:1200px){#bookly-tbs .visible-lg-block{display:block!important}}@media (min-width:1200px){#bookly-tbs .visible-lg-inline{display:inline!important}}@media (min-width:1200px){#bookly-tbs .visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){#bookly-tbs .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){#bookly-tbs .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){#bookly-tbs .hidden-md{display:none!important}}@media (min-width:1200px){#bookly-tbs .hidden-lg{display:none!important}}#bookly-tbs .visible-print{display:none!important}@media print{#bookly-tbs .visible-print{display:block!important}#bookly-tbs table.visible-print{display:table!important}#bookly-tbs tr.visible-print{display:table-row!important}#bookly-tbs td.visible-print,#bookly-tbs th.visible-print{display:table-cell!important}}#bookly-tbs .visible-print-block{display:none!important}@media print{#bookly-tbs .visible-print-block{display:block!important}}#bookly-tbs .visible-print-inline{display:none!important}@media print{#bookly-tbs .visible-print-inline{display:inline!important}}#bookly-tbs .visible-print-inline-block{display:none!important}@media print{#bookly-tbs .visible-print-inline-block{display:inline-block!important}}@media print{#bookly-tbs .hidden-print{display:none!important}}#bookly-tbs [class*=block-grid-]{padding:0;margin:0;list-style:none;border:1px solid transparent;border-width:1px 0 0 1px}#bookly-tbs [class*=block-grid-]>*{display:block;float:left;height:auto;text-align:center;border:1px solid inherit;border-width:0 1px 1px 0}#bookly-tbs [class*=block-grid-]:after,#bookly-tbs [class*=block-grid-]:before{display:table;content:" "}#bookly-tbs .block-grid-16>:nth-of-type(16n+1),#bookly-tbs [class*=block-grid-]:after{clear:both}#bookly-tbs .block-grid-16>*{width:6.25%;line-height:49px}#bookly-tbs .btn-group-justified>.btn-group:not(:first-child) .btn,#bookly-tbs .btn-group-justified>.btn:not(:first-child){border-left:0}#bookly-tbs .btn-default-outline{color:#5b6470;background-color:transparent;border-color:#5b6470}#bookly-tbs .btn-default-outline.focus,#bookly-tbs .btn-default-outline:focus{color:#5b6470;background-color:rgba(0,0,0,0);border-color:#22252a}#bookly-tbs .btn-default-outline:hover{color:#5b6470;background-color:rgba(0,0,0,0);border-color:#40464e}#bookly-tbs .btn-default-outline.active,#bookly-tbs .btn-default-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-default-outline{color:#5b6470;background-color:rgba(0,0,0,0);border-color:#40464e}#bookly-tbs .btn-default-outline.active.focus,#bookly-tbs .btn-default-outline.active:focus,#bookly-tbs .btn-default-outline.active:hover,#bookly-tbs .btn-default-outline:active.focus,#bookly-tbs .btn-default-outline:active:focus,#bookly-tbs .btn-default-outline:active:hover,.open>.dropdown-toggle#bookly-tbs .btn-default-outline.focus,.open>.dropdown-toggle#bookly-tbs .btn-default-outline:focus,.open>.dropdown-toggle#bookly-tbs .btn-default-outline:hover{color:#5b6470;background-color:rgba(0,0,0,0);border-color:#22252a}#bookly-tbs .btn-default-outline.active,#bookly-tbs .btn-default-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-default-outline{background-image:none}#bookly-tbs .btn-default-outline.disabled.focus,#bookly-tbs .btn-default-outline.disabled:focus,#bookly-tbs .btn-default-outline.disabled:hover,#bookly-tbs .btn-default-outline[disabled].focus,#bookly-tbs .btn-default-outline[disabled]:focus,#bookly-tbs .btn-default-outline[disabled]:hover,fieldset[disabled] #bookly-tbs .btn-default-outline.focus,fieldset[disabled] #bookly-tbs .btn-default-outline:focus,fieldset[disabled] #bookly-tbs .btn-default-outline:hover{background-color:transparent;border-color:#5b6470}#bookly-tbs .btn-default-outline .badge{color:transparent;background-color:#5b6470}#bookly-tbs .btn-primary-outline{color:#08c;background-color:transparent;border-color:#08c}#bookly-tbs .btn-primary-outline.focus,#bookly-tbs .btn-primary-outline:focus{color:#08c;background-color:rgba(0,0,0,0);border-color:#00334d}#bookly-tbs .btn-primary-outline:hover{color:#08c;background-color:rgba(0,0,0,0);border-color:#005f8f}#bookly-tbs .btn-primary-outline.active,#bookly-tbs .btn-primary-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-primary-outline{color:#08c;background-color:rgba(0,0,0,0);border-color:#005f8f}#bookly-tbs .btn-primary-outline.active.focus,#bookly-tbs .btn-primary-outline.active:focus,#bookly-tbs .btn-primary-outline.active:hover,#bookly-tbs .btn-primary-outline:active.focus,#bookly-tbs .btn-primary-outline:active:focus,#bookly-tbs .btn-primary-outline:active:hover,.open>.dropdown-toggle#bookly-tbs .btn-primary-outline.focus,.open>.dropdown-toggle#bookly-tbs .btn-primary-outline:focus,.open>.dropdown-toggle#bookly-tbs .btn-primary-outline:hover{color:#08c;background-color:rgba(0,0,0,0);border-color:#00334d}#bookly-tbs .btn-primary-outline.active,#bookly-tbs .btn-primary-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-primary-outline{background-image:none}#bookly-tbs .btn-primary-outline.disabled.focus,#bookly-tbs .btn-primary-outline.disabled:focus,#bookly-tbs .btn-primary-outline.disabled:hover,#bookly-tbs .btn-primary-outline[disabled].focus,#bookly-tbs .btn-primary-outline[disabled]:focus,#bookly-tbs .btn-primary-outline[disabled]:hover,fieldset[disabled] #bookly-tbs .btn-primary-outline.focus,fieldset[disabled] #bookly-tbs .btn-primary-outline:focus,fieldset[disabled] #bookly-tbs .btn-primary-outline:hover{background-color:transparent;border-color:#08c}#bookly-tbs .btn-primary-outline .badge{color:transparent;background-color:#08c}#bookly-tbs .btn-success-outline{color:#5cb85c;background-color:transparent;border-color:#5cb85c}#bookly-tbs .btn-success-outline.focus,#bookly-tbs .btn-success-outline:focus{color:#5cb85c;background-color:rgba(0,0,0,0);border-color:#2d672d}#bookly-tbs .btn-success-outline:hover{color:#5cb85c;background-color:rgba(0,0,0,0);border-color:#419641}#bookly-tbs .btn-success-outline.active,#bookly-tbs .btn-success-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-success-outline{color:#5cb85c;background-color:rgba(0,0,0,0);border-color:#419641}#bookly-tbs .btn-success-outline.active.focus,#bookly-tbs .btn-success-outline.active:focus,#bookly-tbs .btn-success-outline.active:hover,#bookly-tbs .btn-success-outline:active.focus,#bookly-tbs .btn-success-outline:active:focus,#bookly-tbs .btn-success-outline:active:hover,.open>.dropdown-toggle#bookly-tbs .btn-success-outline.focus,.open>.dropdown-toggle#bookly-tbs .btn-success-outline:focus,.open>.dropdown-toggle#bookly-tbs .btn-success-outline:hover{color:#5cb85c;background-color:rgba(0,0,0,0);border-color:#2d672d}#bookly-tbs .btn-success-outline.active,#bookly-tbs .btn-success-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-success-outline{background-image:none}#bookly-tbs .btn-success-outline.disabled.focus,#bookly-tbs .btn-success-outline.disabled:focus,#bookly-tbs .btn-success-outline.disabled:hover,#bookly-tbs .btn-success-outline[disabled].focus,#bookly-tbs .btn-success-outline[disabled]:focus,#bookly-tbs .btn-success-outline[disabled]:hover,fieldset[disabled] #bookly-tbs .btn-success-outline.focus,fieldset[disabled] #bookly-tbs .btn-success-outline:focus,fieldset[disabled] #bookly-tbs .btn-success-outline:hover{background-color:transparent;border-color:#5cb85c}#bookly-tbs .btn-success-outline .badge{color:transparent;background-color:#5cb85c}#bookly-tbs .btn-info-outline{color:#5bc0de;background-color:transparent;border-color:#5bc0de}#bookly-tbs .btn-info-outline.focus,#bookly-tbs .btn-info-outline:focus{color:#5bc0de;background-color:rgba(0,0,0,0);border-color:#1f7e9a}#bookly-tbs .btn-info-outline:hover{color:#5bc0de;background-color:rgba(0,0,0,0);border-color:#2aabd2}#bookly-tbs .btn-info-outline.active,#bookly-tbs .btn-info-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-info-outline{color:#5bc0de;background-color:rgba(0,0,0,0);border-color:#2aabd2}#bookly-tbs .btn-info-outline.active.focus,#bookly-tbs .btn-info-outline.active:focus,#bookly-tbs .btn-info-outline.active:hover,#bookly-tbs .btn-info-outline:active.focus,#bookly-tbs .btn-info-outline:active:focus,#bookly-tbs .btn-info-outline:active:hover,.open>.dropdown-toggle#bookly-tbs .btn-info-outline.focus,.open>.dropdown-toggle#bookly-tbs .btn-info-outline:focus,.open>.dropdown-toggle#bookly-tbs .btn-info-outline:hover{color:#5bc0de;background-color:rgba(0,0,0,0);border-color:#1f7e9a}#bookly-tbs .btn-info-outline.active,#bookly-tbs .btn-info-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-info-outline{background-image:none}#bookly-tbs .btn-info-outline.disabled.focus,#bookly-tbs .btn-info-outline.disabled:focus,#bookly-tbs .btn-info-outline.disabled:hover,#bookly-tbs .btn-info-outline[disabled].focus,#bookly-tbs .btn-info-outline[disabled]:focus,#bookly-tbs .btn-info-outline[disabled]:hover,fieldset[disabled] #bookly-tbs .btn-info-outline.focus,fieldset[disabled] #bookly-tbs .btn-info-outline:focus,fieldset[disabled] #bookly-tbs .btn-info-outline:hover{background-color:transparent;border-color:#5bc0de}#bookly-tbs .btn-info-outline .badge{color:transparent;background-color:#5bc0de}#bookly-tbs .btn-warning-outline{color:#f0ad4e;background-color:transparent;border-color:#f0ad4e}#bookly-tbs .btn-warning-outline.focus,#bookly-tbs .btn-warning-outline:focus{color:#f0ad4e;background-color:rgba(0,0,0,0);border-color:#b06d0f}#bookly-tbs .btn-warning-outline:hover{color:#f0ad4e;background-color:rgba(0,0,0,0);border-color:#eb9316}#bookly-tbs .btn-warning-outline.active,#bookly-tbs .btn-warning-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-warning-outline{color:#f0ad4e;background-color:rgba(0,0,0,0);border-color:#eb9316}#bookly-tbs .btn-warning-outline.active.focus,#bookly-tbs .btn-warning-outline.active:focus,#bookly-tbs .btn-warning-outline.active:hover,#bookly-tbs .btn-warning-outline:active.focus,#bookly-tbs .btn-warning-outline:active:focus,#bookly-tbs .btn-warning-outline:active:hover,.open>.dropdown-toggle#bookly-tbs .btn-warning-outline.focus,.open>.dropdown-toggle#bookly-tbs .btn-warning-outline:focus,.open>.dropdown-toggle#bookly-tbs .btn-warning-outline:hover{color:#f0ad4e;background-color:rgba(0,0,0,0);border-color:#b06d0f}#bookly-tbs .btn-warning-outline.active,#bookly-tbs .btn-warning-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-warning-outline{background-image:none}#bookly-tbs .btn-warning-outline.disabled.focus,#bookly-tbs .btn-warning-outline.disabled:focus,#bookly-tbs .btn-warning-outline.disabled:hover,#bookly-tbs .btn-warning-outline[disabled].focus,#bookly-tbs .btn-warning-outline[disabled]:focus,#bookly-tbs .btn-warning-outline[disabled]:hover,fieldset[disabled] #bookly-tbs .btn-warning-outline.focus,fieldset[disabled] #bookly-tbs .btn-warning-outline:focus,fieldset[disabled] #bookly-tbs .btn-warning-outline:hover{background-color:transparent;border-color:#f0ad4e}#bookly-tbs .btn-warning-outline .badge{color:transparent;background-color:#f0ad4e}#bookly-tbs .btn-danger-outline{color:#d9534f;background-color:transparent;border-color:#d9534f}#bookly-tbs .btn-danger-outline.focus,#bookly-tbs .btn-danger-outline:focus{color:#d9534f;background-color:rgba(0,0,0,0);border-color:#8b211e}#bookly-tbs .btn-danger-outline:hover{color:#d9534f;background-color:rgba(0,0,0,0);border-color:#c12e2a}#bookly-tbs .btn-danger-outline.active,#bookly-tbs .btn-danger-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-danger-outline{color:#d9534f;background-color:rgba(0,0,0,0);border-color:#c12e2a}#bookly-tbs .btn-danger-outline.active.focus,#bookly-tbs .btn-danger-outline.active:focus,#bookly-tbs .btn-danger-outline.active:hover,#bookly-tbs .btn-danger-outline:active.focus,#bookly-tbs .btn-danger-outline:active:focus,#bookly-tbs .btn-danger-outline:active:hover,.open>.dropdown-toggle#bookly-tbs .btn-danger-outline.focus,.open>.dropdown-toggle#bookly-tbs .btn-danger-outline:focus,.open>.dropdown-toggle#bookly-tbs .btn-danger-outline:hover{color:#d9534f;background-color:rgba(0,0,0,0);border-color:#8b211e}#bookly-tbs .btn-danger-outline.active,#bookly-tbs .btn-danger-outline:active,.open>.dropdown-toggle#bookly-tbs .btn-danger-outline{background-image:none}#bookly-tbs .btn-danger-outline.disabled.focus,#bookly-tbs .btn-danger-outline.disabled:focus,#bookly-tbs .btn-danger-outline.disabled:hover,#bookly-tbs .btn-danger-outline[disabled].focus,#bookly-tbs .btn-danger-outline[disabled]:focus,#bookly-tbs .btn-danger-outline[disabled]:hover,fieldset[disabled] #bookly-tbs .btn-danger-outline.focus,fieldset[disabled] #bookly-tbs .btn-danger-outline:focus,fieldset[disabled] #bookly-tbs .btn-danger-outline:hover{background-color:transparent;border-color:#d9534f}#bookly-tbs .btn-danger-outline .badge{color:transparent;background-color:#d9534f}#bookly-tbs .btn-xlg{padding:11px 22px;font-size:15px;line-height:1.9;border-radius:4px}#bookly-tbs .callout{padding:10px;margin:21px 0;border:1px solid #e8ebf0;border-left-width:4px;border-radius:4px}#bookly-tbs .callout .callout-heading{margin-top:0;margin-bottom:5px}#bookly-tbs .callout p:last-child{margin-bottom:0}#bookly-tbs .callout+#bookly-tbs .callout{margin-top:-5px}#bookly-tbs .callout.callout-danger{border-left-color:#d9534f}#bookly-tbs .callout.callout-danger .callout-heading{color:#a94442}#bookly-tbs .callout.callout-warning{border-left-color:#f0ad4e}#bookly-tbs .callout.callout-warning .callout-heading{color:#8a6d3b}#bookly-tbs .callout.callout-info{border-left-color:#5bc0de}#bookly-tbs .callout.callout-info .callout-heading{color:#31708f}#bookly-tbs .close{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}#bookly-tbs .caret{margin-bottom:2px}#bookly-tbs .checkbox,#bookly-tbs .radio{line-height:1.4}#bookly-tbs input[type=checkbox],#bookly-tbs input[type=radio]{width:16px;height:16px}#bookly-tbs input[type=checkbox]:checked:before{margin:-3px 0 0 -4px;font:400 21px/1 dashicons}#bookly-tbs input[type=radio]:checked:before{width:8px;height:8px;margin:3px}#bookly-tbs input[type=checkbox]:not(:checked)+.bookly-toggle-label,#bookly-tbs input[type=radio]:not(:checked)+.bookly-toggle-label{color:#8a929e}#bookly-tbs select.form-control{z-index:5;min-width:1px;height:36px;-webkit-appearance:none;padding-right:22px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDQ4IDQ4IiB3aWR0aD0iNDgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDIwbDEwIDEwIDEwLTEweiIvPjxwYXRoIGQ9Ik0wIDBoNDh2NDhoLTQ4eiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==);background-repeat:no-repeat;background-position:-webkit-calc(100% - 4px) 50%;background-position:calc(100% - 4px) 50%;-webkit-background-size:24px 24px;background-size:24px 24px;-moz-appearance:none;appearance:none}@media screen and (min-width:0\0){#bookly-tbs select.form-control{padding:5px}}#bookly-tbs select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}#bookly-tbs .form-horizontal .form-inline .checkbox-inline,#bookly-tbs .form-horizontal .form-inline .radio-inline{padding-top:0}#bookly-tbs .form-horizontal .form-group .help-block{margin-bottom:0}#bookly-tbs button:active,#bookly-tbs button:focus,#bookly-tbs button:hover,#bookly-tbs input:active,#bookly-tbs input:focus,#bookly-tbs input:hover,#bookly-tbs textarea:active,#bookly-tbs textarea:focus,#bookly-tbs textarea:hover{outline:0}#bookly-tbs .help-block{margin-top:0;font-size:13px;line-height:1.3}#bookly-tbs .bookly-pretty input[type=file]{position:absolute;top:0;left:0;z-index:-1;width:.1px;height:.1px;overflow:hidden;opacity:0}#bookly-tbs .bookly-pretty input[type=file]~.bookly-pretty-indicator{display:inline-block;font-weight:400}#bookly-tbs .input-group-btn:first-child>.btn,#bookly-tbs .input-group-btn:first-child>.btn-group{border-right:0}#bookly-tbs .input-group-btn:first-child>.btn:last-child{margin-right:-1px}#bookly-tbs .input-group-btn:last-child>.btn,#bookly-tbs .input-group-btn:last-child>.btn-group{border-left:0}#bookly-tbs .list-group-item .badge{margin-top:2px}#bookly-tbs .navbar-nav>li>.dropdown-menu{border-top-width:0}#bookly-tbs .navbar-text{line-height:21px}#bookly-tbs .nav-tabs>li{margin-bottom:0}#bookly-tbs .nav-tabs>li>a{margin-right:0;color:#8a929e;border:0}#bookly-tbs .nav-tabs>li>a:after{position:absolute;right:0;bottom:0;left:0;width:100%;height:0;content:" ";border-bottom:3px solid transparent}#bookly-tbs .nav-tabs>li>a:focus,#bookly-tbs .nav-tabs>li>a:hover{background-color:transparent;outline:0;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .nav-tabs>li>a:focus:after,#bookly-tbs .nav-tabs>li>a:hover:after{border-bottom-color:#d9dee4}#bookly-tbs .nav-tabs.nav-justified>li.active>a,#bookly-tbs .nav-tabs.nav-justified>li.active>a:focus,#bookly-tbs .nav-tabs.nav-justified>li.active>a:hover,#bookly-tbs .nav-tabs>li.active>a,#bookly-tbs .nav-tabs>li.active>a:focus,#bookly-tbs .nav-tabs>li.active>a:hover{color:#08c;border-width:0 0 1px 0}#bookly-tbs .nav-tabs.nav-justified>li.active>a:after,#bookly-tbs .nav-tabs>li.active>a:after{border-bottom-color:#08c}#bookly-tbs .nav-tabs .dropdown-menu{margin-top:0}#bookly-tbs .pager li>a,#bookly-tbs .pager li>span{line-height:1.4;color:#5b6470}#bookly-tbs .pager li>a:focus,#bookly-tbs .pager li>a:hover{color:#8a929e}#bookly-tbs .panel{-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .panel>.panel-collapse>.table td,#bookly-tbs .panel>.panel-collapse>.table th,#bookly-tbs .panel>.table td,#bookly-tbs .panel>.table th,#bookly-tbs .panel>.table-responsive>.table td,#bookly-tbs .panel>.table-responsive>.table th{border-color:#d9dee4}#bookly-tbs .panel-title{font-weight:700;line-height:1.5}#bookly-tbs .btn.btn-pill{border-radius:24px}#bookly-tbs .btn.btn-pill-left{border-top-left-radius:24px;border-bottom-left-radius:24px}#bookly-tbs .btn.btn-pill-right{border-top-right-radius:24px;border-bottom-right-radius:24px}#bookly-tbs .form-control.input-pill{border-radius:24px}#bookly-tbs .form-control.input-pill-left{border-top-left-radius:24px;border-bottom-left-radius:24px}#bookly-tbs .form-control.input-pill-right{border-top-right-radius:24px;border-bottom-right-radius:24px}#bookly-tbs .label.label-pill{border-radius:.9em}#bookly-tbs .label.label-pill-left{border-top-left-radius:.9em;border-bottom-left-radius:.9em}#bookly-tbs .label.label-pill-right{border-top-right-radius:.9em;border-bottom-right-radius:.9em}#bookly-tbs .progress-lg{height:42px;border-radius:6px}#bookly-tbs .progress-lg .progress-bar{line-height:42px}#bookly-tbs .progress-sm{height:10.5px;border-radius:3px}#bookly-tbs .progress-sm .progress-bar{line-height:10.5px}#bookly-tbs .progress-xs{height:5.25px;border-radius:3px}#bookly-tbs .progress-xs .progress-bar{line-height:5.25px}#bookly-tbs a:focus,#bookly-tbs a:hover{-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .social-behance{color:#1769ff!important}#bookly-tbs .social-fivehundredpix{color:#0a0100!important}#bookly-tbs .social-dribbble{color:#ea4c89!important}#bookly-tbs .social-dropbox{color:#1f8ce6!important}#bookly-tbs .social-email{color:#7f7f7f!important}#bookly-tbs .social-facebook{color:#3b5998!important}#bookly-tbs .social-flickr{color:#ff0084!important}#bookly-tbs .social-foursquare{color:#0072b1!important}#bookly-tbs .social-github{color:#4183c4!important}#bookly-tbs .social-google{color:#dd4b39!important}#bookly-tbs .social-instagram{color:#517fa4!important}#bookly-tbs .social-linkedin{color:#007bb6!important}#bookly-tbs .social-pinterest{color:#cb2027!important}#bookly-tbs .social-skype{color:#00aff0!important}#bookly-tbs .social-smugmug{color:#8cca1e!important}#bookly-tbs .social-tumblr{color:#32506d!important}#bookly-tbs .social-twitter{color:#00aced!important}#bookly-tbs .social-vimeo{color:#1ab7ea!important}#bookly-tbs .social-vk{color:#45668e!important}#bookly-tbs .social-youtube{color:#f33!important}#bookly-tbs .social-behance:hover{color:#4a8aff!important}#bookly-tbs .social-fivehundredpix:hover{color:#3d0600!important}#bookly-tbs .social-dribbble:hover{color:#ef7aa7!important}#bookly-tbs .social-dropbox:hover{color:#4da4eb!important}#bookly-tbs .social-email:hover{color:#999!important}#bookly-tbs .social-facebook:hover{color:#4c70ba!important}#bookly-tbs .social-flickr:hover{color:#ff339d!important}#bookly-tbs .social-foursquare:hover{color:#0093e4!important}#bookly-tbs .social-github:hover{color:#689cd0!important}#bookly-tbs .social-google:hover{color:#e47365!important}#bookly-tbs .social-instagram:hover{color:#7098b8!important}#bookly-tbs .social-linkedin:hover{color:#009de9!important}#bookly-tbs .social-pinterest:hover{color:#e03e44!important}#bookly-tbs .social-skype:hover{color:#24c4ff!important}#bookly-tbs .social-smugmug:hover{color:#a5e239!important}#bookly-tbs .social-tumblr:hover{color:#426a90!important}#bookly-tbs .social-twitter:hover{color:#21c2ff!important}#bookly-tbs .social-vimeo:hover{color:#49c6ee!important}#bookly-tbs .social-vk:hover{color:#587fae!important}#bookly-tbs .social-youtube:hover{color:#f66!important}#bookly-tbs .thumbnail{overflow:auto;-webkit-box-shadow:inset 0 0 0 2px #e8ebf0;box-shadow:inset 0 0 0 2px #e8ebf0}#bookly-tbs .thumbnail .caption p:last-child{margin-bottom:0}#bookly-tbs .thumbnail .caption .heading{margin:0 0 5px}#bookly-tbs blockquote p{font-family:georgia,"times new roman",times,serif;font-size:18px}#bookly-tbs p{font-size:15px}#bookly-tbs .bookly-letter-spacing-sm{letter-spacing:.05em}#bookly-tbs .bookly-letter-spacing-md{letter-spacing:.1em}#bookly-tbs .bookly-letter-spacing-lg{letter-spacing:.2em}#bookly-tbs .bookly-line-height-sm{line-height:1.53846154}#bookly-tbs .bookly-line-height-base{line-height:1.4}#bookly-tbs .bookly-line-height-lg{line-height:1.3333333}#bookly-tbs .bookly-line-height-computed{line-height:21px}#bookly-tbs .bookly-font-xs{font-size:12px}#bookly-tbs .bookly-font-sm{font-size:14px}#bookly-tbs .bookly-font-md{font-size:15px}#bookly-tbs .bookly-font-lg{font-size:20px}#bookly-tbs .bookly-font-smaller{font-size:13px;text-transform:uppercase}#bookly-tbs .bookly-font-lighter{font-weight:lighter}#bookly-tbs .bookly-font-normal{font-weight:400}#bookly-tbs .bookly-font-bold{font-weight:700}#bookly-tbs .bookly-font-serif{font-family:georgia,"times new roman",times,serif}#bookly-tbs .bookly-font-italic{font-style:italic}#bookly-tbs .bookly-text-wrap{word-wrap:break-word;white-space:normal}#bookly-tbs .bookly-inline{display:inline}#bookly-tbs .bookly-bl-ock{display:block}#bookly-tbs .bookly-inline-block{display:inline-block}#bookly-tbs .bookly-nowrap{white-space:nowrap}#bookly-tbs .bookly-break-word{word-wrap:break-word}#bookly-tbs .bookly-truncate{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .bookly-bottom-left,#bookly-tbs .bookly-bottom-right,#bookly-tbs .bookly-top-left,#bookly-tbs .bookly-top-right{position:absolute}#bookly-tbs .bookly-top-left,#bookly-tbs .bookly-top-right{top:0}#bookly-tbs .bookly-bottom-left,#bookly-tbs .bookly-bottom-right{bottom:0}#bookly-tbs .bookly-bottom-left,#bookly-tbs .bookly-top-left{left:0}#bookly-tbs .bookly-bottom-right,#bookly-tbs .bookly-top-right{right:0}#bookly-tbs .bookly-relative{position:relative}#bookly-tbs .bookly-fixed{position:fixed}#bookly-tbs .bookly-vertical-top{vertical-align:top}#bookly-tbs .bookly-vertical-middle{vertical-align:middle}#bookly-tbs .bookly-vertical-bottom{vertical-align:bottom}#bookly-tbs .bookly-margin-horizontal-remove,#bookly-tbs .bookly-margin-left-remove,#bookly-tbs .bookly-margin-remove{margin-left:0!important}#bookly-tbs .bookly-margin-horizontal-remove,#bookly-tbs .bookly-margin-remove,#bookly-tbs .bookly-margin-right-remove{margin-right:0!important}#bookly-tbs .bookly-margin-remove,#bookly-tbs .bookly-margin-top-remove,#bookly-tbs .bookly-margin-vertical-remove{margin-top:0!important}#bookly-tbs .bookly-margin-bottom-remove,#bookly-tbs .bookly-margin-remove,#bookly-tbs .bookly-margin-vertical-remove{margin-bottom:0!important}#bookly-tbs .bookly-margin-horizontal-xs,#bookly-tbs .bookly-margin-left-xs,#bookly-tbs .bookly-margin-xs{margin-left:5px!important}#bookly-tbs .bookly-margin-horizontal-xs,#bookly-tbs .bookly-margin-right-xs,#bookly-tbs .bookly-margin-xs{margin-right:5px!important}#bookly-tbs .bookly-margin-top-xs,#bookly-tbs .bookly-margin-vertical-xs,#bookly-tbs .bookly-margin-xs{margin-top:5px!important}#bookly-tbs .bookly-margin-bottom-xs,#bookly-tbs .bookly-margin-vertical-xs,#bookly-tbs .bookly-margin-xs{margin-bottom:5px!important}#bookly-tbs .bookly-margin-horizontal-sm,#bookly-tbs .bookly-margin-left-sm,#bookly-tbs .bookly-margin-sm{margin-left:10px!important}#bookly-tbs .bookly-margin-horizontal-sm,#bookly-tbs .bookly-margin-right-sm,#bookly-tbs .bookly-margin-sm{margin-right:10px!important}#bookly-tbs .bookly-margin-sm,#bookly-tbs .bookly-margin-top-sm,#bookly-tbs .bookly-margin-vertical-sm{margin-top:10px!important}#bookly-tbs .bookly-margin-bottom-sm,#bookly-tbs .bookly-margin-sm,#bookly-tbs .bookly-margin-vertical-sm{margin-bottom:10px!important}#bookly-tbs .bookly-margin-horizontal-md,#bookly-tbs .bookly-margin-left-md,#bookly-tbs .bookly-margin-md{margin-left:12px!important}#bookly-tbs .bookly-margin-horizontal-md,#bookly-tbs .bookly-margin-md,#bookly-tbs .bookly-margin-right-md{margin-right:12px!important}#bookly-tbs .bookly-margin-md,#bookly-tbs .bookly-margin-top-md,#bookly-tbs .bookly-margin-vertical-md{margin-top:12px!important}#bookly-tbs .bookly-margin-bottom-md,#bookly-tbs .bookly-margin-md,#bookly-tbs .bookly-margin-vertical-md{margin-bottom:12px!important}#bookly-tbs .bookly-margin-horizontal-lg,#bookly-tbs .bookly-margin-left-lg,#bookly-tbs .bookly-margin-lg{margin-left:16px!important}#bookly-tbs .bookly-margin-horizontal-lg,#bookly-tbs .bookly-margin-lg,#bookly-tbs .bookly-margin-right-lg{margin-right:16px!important}#bookly-tbs .bookly-margin-lg,#bookly-tbs .bookly-margin-top-lg,#bookly-tbs .bookly-margin-vertical-lg{margin-top:16px!important}#bookly-tbs .bookly-margin-bottom-lg,#bookly-tbs .bookly-margin-lg,#bookly-tbs .bookly-margin-vertical-lg{margin-bottom:16px!important}#bookly-tbs .bookly-margin-horizontal-xlg,#bookly-tbs .bookly-margin-left-xlg,#bookly-tbs .bookly-margin-xlg{margin-left:32px!important}#bookly-tbs .bookly-margin-horizontal-xlg,#bookly-tbs .bookly-margin-right-xlg,#bookly-tbs .bookly-margin-xlg{margin-right:32px!important}#bookly-tbs .bookly-margin-top-xlg,#bookly-tbs .bookly-margin-vertical-xlg,#bookly-tbs .bookly-margin-xlg{margin-top:32px!important}#bookly-tbs .bookly-margin-bottom-xlg,#bookly-tbs .bookly-margin-vertical-xlg,#bookly-tbs .bookly-margin-xlg{margin-bottom:32px!important}@media (max-width:767px){#bookly-tbs .bookly-margin-horizontal-screenxs-remove,#bookly-tbs .bookly-margin-left-screenxs-remove,#bookly-tbs .bookly-margin-screenxs-remove{margin-left:0!important}#bookly-tbs .bookly-margin-horizontal-screenxs-remove,#bookly-tbs .bookly-margin-right-screenxs-remove,#bookly-tbs .bookly-margin-screenxs-remove{margin-right:0!important}#bookly-tbs .bookly-margin-screenxs-remove,#bookly-tbs .bookly-margin-top-screenxs-remove,#bookly-tbs .bookly-margin-vertical-screenxs-remove{margin-top:0!important}#bookly-tbs .bookly-margin-bottom-screenxs-remove,#bookly-tbs .bookly-margin-screenxs-remove,#bookly-tbs .bookly-margin-vertical-screenxs-remove{margin-bottom:0!important}#bookly-tbs .bookly-margin-horizontal-screenxs-xs,#bookly-tbs .bookly-margin-left-screenxs-xs,#bookly-tbs .bookly-margin-screenxs-xs{margin-left:5px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-xs,#bookly-tbs .bookly-margin-right-screenxs-xs,#bookly-tbs .bookly-margin-screenxs-xs{margin-right:5px!important}#bookly-tbs .bookly-margin-screenxs-xs,#bookly-tbs .bookly-margin-top-screenxs-xs,#bookly-tbs .bookly-margin-vertical-screenxs-xs{margin-top:5px!important}#bookly-tbs .bookly-margin-bottom-screenxs-xs,#bookly-tbs .bookly-margin-screenxs-xs,#bookly-tbs .bookly-margin-vertical-screenxs-xs{margin-bottom:5px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-sm,#bookly-tbs .bookly-margin-left-screenxs-sm,#bookly-tbs .bookly-margin-screenxs-sm{margin-left:10px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-sm,#bookly-tbs .bookly-margin-right-screenxs-sm,#bookly-tbs .bookly-margin-screenxs-sm{margin-right:10px!important}#bookly-tbs .bookly-margin-screenxs-sm,#bookly-tbs .bookly-margin-top-screenxs-sm,#bookly-tbs .bookly-margin-vertical-screenxs-sm{margin-top:10px!important}#bookly-tbs .bookly-margin-bottom-screenxs-sm,#bookly-tbs .bookly-margin-screenxs-sm,#bookly-tbs .bookly-margin-vertical-screenxs-sm{margin-bottom:10px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-md,#bookly-tbs .bookly-margin-left-screenxs-md,#bookly-tbs .bookly-margin-screenxs-md{margin-left:12px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-md,#bookly-tbs .bookly-margin-right-screenxs-md,#bookly-tbs .bookly-margin-screenxs-md{margin-right:12px!important}#bookly-tbs .bookly-margin-screenxs-md,#bookly-tbs .bookly-margin-top-screenxs-md,#bookly-tbs .bookly-margin-vertical-screenxs-md{margin-top:12px!important}#bookly-tbs .bookly-margin-bottom-screenxs-md,#bookly-tbs .bookly-margin-screenxs-md,#bookly-tbs .bookly-margin-vertical-screenxs-md{margin-bottom:12px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-lg,#bookly-tbs .bookly-margin-left-screenxs-lg,#bookly-tbs .bookly-margin-screenxs-lg{margin-left:16px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-lg,#bookly-tbs .bookly-margin-right-screenxs-lg,#bookly-tbs .bookly-margin-screenxs-lg{margin-right:16px!important}#bookly-tbs .bookly-margin-screenxs-lg,#bookly-tbs .bookly-margin-top-screenxs-lg,#bookly-tbs .bookly-margin-vertical-screenxs-lg{margin-top:16px!important}#bookly-tbs .bookly-margin-bottom-screenxs-lg,#bookly-tbs .bookly-margin-screenxs-lg,#bookly-tbs .bookly-margin-vertical-screenxs-lg{margin-bottom:16px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-xlg,#bookly-tbs .bookly-margin-left-screenxs-xlg,#bookly-tbs .bookly-margin-screenxs-xlg{margin-left:32px!important}#bookly-tbs .bookly-margin-horizontal-screenxs-xlg,#bookly-tbs .bookly-margin-right-screenxs-xlg,#bookly-tbs .bookly-margin-screenxs-xlg{margin-right:32px!important}#bookly-tbs .bookly-margin-screenxs-xlg,#bookly-tbs .bookly-margin-top-screenxs-xlg,#bookly-tbs .bookly-margin-vertical-screenxs-xlg{margin-top:32px!important}#bookly-tbs .bookly-margin-bottom-screenxs-xlg,#bookly-tbs .bookly-margin-screenxs-xlg,#bookly-tbs .bookly-margin-vertical-screenxs-xlg{margin-bottom:32px!important}}@media (min-width:768px){#bookly-tbs .bookly-margin-horizontal-screensm-remove,#bookly-tbs .bookly-margin-left-screensm-remove,#bookly-tbs .bookly-margin-screensm-remove{margin-left:0!important}#bookly-tbs .bookly-margin-horizontal-screensm-remove,#bookly-tbs .bookly-margin-right-screensm-remove,#bookly-tbs .bookly-margin-screensm-remove{margin-right:0!important}#bookly-tbs .bookly-margin-screensm-remove,#bookly-tbs .bookly-margin-top-screensm-remove,#bookly-tbs .bookly-margin-vertical-screensm-remove{margin-top:0!important}#bookly-tbs .bookly-margin-bottom-screensm-remove,#bookly-tbs .bookly-margin-screensm-remove,#bookly-tbs .bookly-margin-vertical-screensm-remove{margin-bottom:0!important}#bookly-tbs .bookly-margin-horizontal-screensm-xs,#bookly-tbs .bookly-margin-left-screensm-xs,#bookly-tbs .bookly-margin-screensm-xs{margin-left:5px!important}#bookly-tbs .bookly-margin-horizontal-screensm-xs,#bookly-tbs .bookly-margin-right-screensm-xs,#bookly-tbs .bookly-margin-screensm-xs{margin-right:5px!important}#bookly-tbs .bookly-margin-screensm-xs,#bookly-tbs .bookly-margin-top-screensm-xs,#bookly-tbs .bookly-margin-vertical-screensm-xs{margin-top:5px!important}#bookly-tbs .bookly-margin-bottom-screensm-xs,#bookly-tbs .bookly-margin-screensm-xs,#bookly-tbs .bookly-margin-vertical-screensm-xs{margin-bottom:5px!important}#bookly-tbs .bookly-margin-horizontal-screensm-sm,#bookly-tbs .bookly-margin-left-screensm-sm,#bookly-tbs .bookly-margin-screensm-sm{margin-left:10px!important}#bookly-tbs .bookly-margin-horizontal-screensm-sm,#bookly-tbs .bookly-margin-right-screensm-sm,#bookly-tbs .bookly-margin-screensm-sm{margin-right:10px!important}#bookly-tbs .bookly-margin-screensm-sm,#bookly-tbs .bookly-margin-top-screensm-sm,#bookly-tbs .bookly-margin-vertical-screensm-sm{margin-top:10px!important}#bookly-tbs .bookly-margin-bottom-screensm-sm,#bookly-tbs .bookly-margin-screensm-sm,#bookly-tbs .bookly-margin-vertical-screensm-sm{margin-bottom:10px!important}#bookly-tbs .bookly-margin-horizontal-screensm-md,#bookly-tbs .bookly-margin-left-screensm-md,#bookly-tbs .bookly-margin-screensm-md{margin-left:12px!important}#bookly-tbs .bookly-margin-horizontal-screensm-md,#bookly-tbs .bookly-margin-right-screensm-md,#bookly-tbs .bookly-margin-screensm-md{margin-right:12px!important}#bookly-tbs .bookly-margin-screensm-md,#bookly-tbs .bookly-margin-top-screensm-md,#bookly-tbs .bookly-margin-vertical-screensm-md{margin-top:12px!important}#bookly-tbs .bookly-margin-bottom-screensm-md,#bookly-tbs .bookly-margin-screensm-md,#bookly-tbs .bookly-margin-vertical-screensm-md{margin-bottom:12px!important}#bookly-tbs .bookly-margin-horizontal-screensm-lg,#bookly-tbs .bookly-margin-left-screensm-lg,#bookly-tbs .bookly-margin-screensm-lg{margin-left:16px!important}#bookly-tbs .bookly-margin-horizontal-screensm-lg,#bookly-tbs .bookly-margin-right-screensm-lg,#bookly-tbs .bookly-margin-screensm-lg{margin-right:16px!important}#bookly-tbs .bookly-margin-screensm-lg,#bookly-tbs .bookly-margin-top-screensm-lg,#bookly-tbs .bookly-margin-vertical-screensm-lg{margin-top:16px!important}#bookly-tbs .bookly-margin-bottom-screensm-lg,#bookly-tbs .bookly-margin-screensm-lg,#bookly-tbs .bookly-margin-vertical-screensm-lg{margin-bottom:16px!important}#bookly-tbs .bookly-margin-horizontal-screensm-xlg,#bookly-tbs .bookly-margin-left-screensm-xlg,#bookly-tbs .bookly-margin-screensm-xlg{margin-left:32px!important}#bookly-tbs .bookly-margin-horizontal-screensm-xlg,#bookly-tbs .bookly-margin-right-screensm-xlg,#bookly-tbs .bookly-margin-screensm-xlg{margin-right:32px!important}#bookly-tbs .bookly-margin-screensm-xlg,#bookly-tbs .bookly-margin-top-screensm-xlg,#bookly-tbs .bookly-margin-vertical-screensm-xlg{margin-top:32px!important}#bookly-tbs .bookly-margin-bottom-screensm-xlg,#bookly-tbs .bookly-margin-screensm-xlg,#bookly-tbs .bookly-margin-vertical-screensm-xlg{margin-bottom:32px!important}}@media (min-width:992px){#bookly-tbs .bookly-margin-horizontal-screenmd-remove,#bookly-tbs .bookly-margin-left-screenmd-remove,#bookly-tbs .bookly-margin-screenmd-remove{margin-left:0!important}#bookly-tbs .bookly-margin-horizontal-screenmd-remove,#bookly-tbs .bookly-margin-right-screenmd-remove,#bookly-tbs .bookly-margin-screenmd-remove{margin-right:0!important}#bookly-tbs .bookly-margin-screenmd-remove,#bookly-tbs .bookly-margin-top-screenmd-remove,#bookly-tbs .bookly-margin-vertical-screenmd-remove{margin-top:0!important}#bookly-tbs .bookly-margin-bottom-screenmd-remove,#bookly-tbs .bookly-margin-screenmd-remove,#bookly-tbs .bookly-margin-vertical-screenmd-remove{margin-bottom:0!important}#bookly-tbs .bookly-margin-horizontal-screenmd-xs,#bookly-tbs .bookly-margin-left-screenmd-xs,#bookly-tbs .bookly-margin-screenmd-xs{margin-left:5px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-xs,#bookly-tbs .bookly-margin-right-screenmd-xs,#bookly-tbs .bookly-margin-screenmd-xs{margin-right:5px!important}#bookly-tbs .bookly-margin-screenmd-xs,#bookly-tbs .bookly-margin-top-screenmd-xs,#bookly-tbs .bookly-margin-vertical-screenmd-xs{margin-top:5px!important}#bookly-tbs .bookly-margin-bottom-screenmd-xs,#bookly-tbs .bookly-margin-screenmd-xs,#bookly-tbs .bookly-margin-vertical-screenmd-xs{margin-bottom:5px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-sm,#bookly-tbs .bookly-margin-left-screenmd-sm,#bookly-tbs .bookly-margin-screenmd-sm{margin-left:10px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-sm,#bookly-tbs .bookly-margin-right-screenmd-sm,#bookly-tbs .bookly-margin-screenmd-sm{margin-right:10px!important}#bookly-tbs .bookly-margin-screenmd-sm,#bookly-tbs .bookly-margin-top-screenmd-sm,#bookly-tbs .bookly-margin-vertical-screenmd-sm{margin-top:10px!important}#bookly-tbs .bookly-margin-bottom-screenmd-sm,#bookly-tbs .bookly-margin-screenmd-sm,#bookly-tbs .bookly-margin-vertical-screenmd-sm{margin-bottom:10px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-md,#bookly-tbs .bookly-margin-left-screenmd-md,#bookly-tbs .bookly-margin-screenmd-md{margin-left:12px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-md,#bookly-tbs .bookly-margin-right-screenmd-md,#bookly-tbs .bookly-margin-screenmd-md{margin-right:12px!important}#bookly-tbs .bookly-margin-screenmd-md,#bookly-tbs .bookly-margin-top-screenmd-md,#bookly-tbs .bookly-margin-vertical-screenmd-md{margin-top:12px!important}#bookly-tbs .bookly-margin-bottom-screenmd-md,#bookly-tbs .bookly-margin-screenmd-md,#bookly-tbs .bookly-margin-vertical-screenmd-md{margin-bottom:12px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-lg,#bookly-tbs .bookly-margin-left-screenmd-lg,#bookly-tbs .bookly-margin-screenmd-lg{margin-left:16px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-lg,#bookly-tbs .bookly-margin-right-screenmd-lg,#bookly-tbs .bookly-margin-screenmd-lg{margin-right:16px!important}#bookly-tbs .bookly-margin-screenmd-lg,#bookly-tbs .bookly-margin-top-screenmd-lg,#bookly-tbs .bookly-margin-vertical-screenmd-lg{margin-top:16px!important}#bookly-tbs .bookly-margin-bottom-screenmd-lg,#bookly-tbs .bookly-margin-screenmd-lg,#bookly-tbs .bookly-margin-vertical-screenmd-lg{margin-bottom:16px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-xlg,#bookly-tbs .bookly-margin-left-screenmd-xlg,#bookly-tbs .bookly-margin-screenmd-xlg{margin-left:32px!important}#bookly-tbs .bookly-margin-horizontal-screenmd-xlg,#bookly-tbs .bookly-margin-right-screenmd-xlg,#bookly-tbs .bookly-margin-screenmd-xlg{margin-right:32px!important}#bookly-tbs .bookly-margin-screenmd-xlg,#bookly-tbs .bookly-margin-top-screenmd-xlg,#bookly-tbs .bookly-margin-vertical-screenmd-xlg{margin-top:32px!important}#bookly-tbs .bookly-margin-bottom-screenmd-xlg,#bookly-tbs .bookly-margin-screenmd-xlg,#bookly-tbs .bookly-margin-vertical-screenmd-xlg{margin-bottom:32px!important}}#bookly-tbs .bookly-padding-horizontal-remove,#bookly-tbs .bookly-padding-left-remove,#bookly-tbs .bookly-padding-remove{padding-left:0!important}#bookly-tbs .bookly-padding-horizontal-remove,#bookly-tbs .bookly-padding-remove,#bookly-tbs .bookly-padding-right-remove{padding-right:0!important}#bookly-tbs .bookly-padding-remove,#bookly-tbs .bookly-padding-top-remove,#bookly-tbs .bookly-padding-vertical-remove{padding-top:0!important}#bookly-tbs .bookly-padding-bottom-remove,#bookly-tbs .bookly-padding-remove,#bookly-tbs .bookly-padding-vertical-remove{padding-bottom:0!important}#bookly-tbs .bookly-padding-horizontal-xs,#bookly-tbs .bookly-padding-left-xs,#bookly-tbs .bookly-padding-xs{padding-left:5px!important}#bookly-tbs .bookly-padding-horizontal-xs,#bookly-tbs .bookly-padding-right-xs,#bookly-tbs .bookly-padding-xs{padding-right:5px!important}#bookly-tbs .bookly-padding-top-xs,#bookly-tbs .bookly-padding-vertical-xs,#bookly-tbs .bookly-padding-xs{padding-top:5px!important}#bookly-tbs .bookly-padding-bottom-xs,#bookly-tbs .bookly-padding-vertical-xs,#bookly-tbs .bookly-padding-xs{padding-bottom:5px!important}#bookly-tbs .bookly-padding-horizontal-sm,#bookly-tbs .bookly-padding-left-sm,#bookly-tbs .bookly-padding-sm{padding-left:10px!important}#bookly-tbs .bookly-padding-horizontal-sm,#bookly-tbs .bookly-padding-right-sm,#bookly-tbs .bookly-padding-sm{padding-right:10px!important}#bookly-tbs .bookly-padding-sm,#bookly-tbs .bookly-padding-top-sm,#bookly-tbs .bookly-padding-vertical-sm{padding-top:10px!important}#bookly-tbs .bookly-padding-bottom-sm,#bookly-tbs .bookly-padding-sm,#bookly-tbs .bookly-padding-vertical-sm{padding-bottom:10px!important}#bookly-tbs .bookly-padding-horizontal-md,#bookly-tbs .bookly-padding-left-md,#bookly-tbs .bookly-padding-md{padding-left:12px!important}#bookly-tbs .bookly-padding-horizontal-md,#bookly-tbs .bookly-padding-md,#bookly-tbs .bookly-padding-right-md{padding-right:12px!important}#bookly-tbs .bookly-padding-md,#bookly-tbs .bookly-padding-top-md,#bookly-tbs .bookly-padding-vertical-md{padding-top:12px!important}#bookly-tbs .bookly-padding-bottom-md,#bookly-tbs .bookly-padding-md,#bookly-tbs .bookly-padding-vertical-md{padding-bottom:12px!important}#bookly-tbs .bookly-padding-horizontal-lg,#bookly-tbs .bookly-padding-left-lg,#bookly-tbs .bookly-padding-lg{padding-left:16px!important}#bookly-tbs .bookly-padding-horizontal-lg,#bookly-tbs .bookly-padding-lg,#bookly-tbs .bookly-padding-right-lg{padding-right:16px!important}#bookly-tbs .bookly-padding-lg,#bookly-tbs .bookly-padding-top-lg,#bookly-tbs .bookly-padding-vertical-lg{padding-top:16px!important}#bookly-tbs .bookly-padding-bottom-lg,#bookly-tbs .bookly-padding-lg,#bookly-tbs .bookly-padding-vertical-lg{padding-bottom:16px!important}#bookly-tbs .bookly-padding-horizontal-xlg,#bookly-tbs .bookly-padding-left-xlg,#bookly-tbs .bookly-padding-xlg{padding-left:32px!important}#bookly-tbs .bookly-padding-horizontal-xlg,#bookly-tbs .bookly-padding-right-xlg,#bookly-tbs .bookly-padding-xlg{padding-right:32px!important}#bookly-tbs .bookly-padding-top-xlg,#bookly-tbs .bookly-padding-vertical-xlg,#bookly-tbs .bookly-padding-xlg{padding-top:32px!important}#bookly-tbs .bookly-padding-bottom-xlg,#bookly-tbs .bookly-padding-vertical-xlg,#bookly-tbs .bookly-padding-xlg{padding-bottom:32px!important}#bookly-tbs .bookly-flexbox{display:table;width:100%;max-width:100%;height:100%}#bookly-tbs .bookly-flexbox .bookly-flex-row{display:table-row}#bookly-tbs .bookly-flexbox .bookly-flex-cell{display:table-cell;height:100%;word-wrap:break-word}@media (min-width:992px){#bookly-tbs .bookly-flexbox .bookly-flex-cell-sm{display:table-cell;height:100%;word-wrap:break-word}}#bookly-tbs .bookly-bg-transparent{background-color:transparent}#bookly-tbs .bookly-bg-white{background-color:#fff}#bookly-tbs .bookly-color-white{color:#fff}#bookly-tbs .bookly-bg-black{background-color:#000}#bookly-tbs .bookly-color-black{color:#000}#bookly-tbs .bookly-bg-gray{background-color:#8a929e}#bookly-tbs .bookly-color-gray{color:#8a929e}#bookly-tbs .bookly-bg-light{background-color:#d9dee4}#bookly-tbs .bookly-color-light{color:#d9dee4}#bookly-tbs .bookly-bg-brand-primary{background-color:#08c}#bookly-tbs .bookly-color-brand-primary{color:#08c}#bookly-tbs .bookly-bg-brand-success{background-color:#5cb85c}#bookly-tbs .bookly-color-brand-success{color:#5cb85c}#bookly-tbs .bookly-bg-brand-info{background-color:#5bc0de}#bookly-tbs .bookly-color-brand-info{color:#5bc0de}#bookly-tbs .bookly-bg-brand-warning{background-color:#f0ad4e}#bookly-tbs .bookly-color-brand-warning{color:#f0ad4e}#bookly-tbs .bookly-bg-brand-danger{background-color:#d9534f}#bookly-tbs .bookly-color-brand-danger{color:#d9534f}#bookly-tbs .bookly-cursor-pointer{cursor:pointer}#bookly-tbs .bookly-cursor-move{cursor:move}@media (max-width:767px){#bookly-tbs .bookly-text-xs-center{text-align:center!important}#bookly-tbs .bookly-text-xs-left{text-align:left!important}#bookly-tbs .bookly-text-xs-right{text-align:right!important}#bookly-tbs .bookly-btn-block-xs{display:block;width:100%}}#bookly-tbs table.dataTable{max-width:none!important;margin-top:6px!important;margin-bottom:6px!important;clear:both;border-collapse:separate!important}#bookly-tbs table.dataTable td,#bookly-tbs table.dataTable th{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;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{display:inline-block;width:75px}#bookly-tbs div.dataTables_wrapper div.dataTables_filter{text-align:right}#bookly-tbs div.dataTables_wrapper div.dataTables_filter label{font-weight:400;text-align:left;white-space:nowrap}#bookly-tbs div.dataTables_wrapper div.dataTables_filter input{display:inline-block;width:auto;margin-left:.5em}#bookly-tbs div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}#bookly-tbs div.dataTables_wrapper div.dataTables_paginate{margin:0;text-align:right;white-space:nowrap}#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;padding:1em 0;margin-top:-26px;margin-left:-100px;text-align:center}#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{position:relative;cursor:pointer}#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{position:absolute;right:8px;bottom:-webkit-calc(50% - 9px);bottom:calc(50% - 9px);display:block;font-family:'Glyphicons Halflings';font-size:12px;opacity:.5}#bookly-tbs table.dataTable thead .sorting:after{content:"\e150";opacity:.2}#bookly-tbs table.dataTable thead .sorting_asc:after{content:"\e155"}#bookly-tbs table.dataTable thead .sorting_desc:after{content:"\e156"}#bookly-tbs table.dataTable thead .sorting_asc_disabled:after,#bookly-tbs table.dataTable thead .sorting_desc_disabled:after{color:#eee}#bookly-tbs div.dataTables_scrollHead table.dataTable{margin-bottom:0!important}#bookly-tbs div.dataTables_scrollBody table{margin-top:0!important;margin-bottom:0!important;border-top:none}#bookly-tbs div.dataTables_scrollBody table thead .sorting:after,#bookly-tbs div.dataTables_scrollBody table thead .sorting_asc:after,#bookly-tbs div.dataTables_scrollBody table thead .sorting_desc:after{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 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-condensed>thead>tr>th{padding-right:20px}#bookly-tbs table.dataTable.table-condensed .sorting:after,#bookly-tbs table.dataTable.table-condensed .sorting_asc:after,#bookly-tbs table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}#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.row{margin:0}#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.row>div[class^=col-]:last-child{padding-right:0}#bookly-tbs div.dt-button-info{position:fixed;top:50%;left:50%;z-index:21;width:400px;margin-top:-100px;margin-left:-200px;text-align:center;background-color:#fff;border:2px solid #111;border-radius:3px;-webkit-box-shadow:3px 3px 8px rgba(0,0,0,.3);box-shadow:3px 3px 8px rgba(0,0,0,.3)}#bookly-tbs div.dt-button-info h2{padding:.5em;margin:0;font-weight:400;background-color:#f3f3f3;border-bottom:1px solid #ddd}#bookly-tbs div.dt-button-info>div{padding:1em}#bookly-tbs ul.dt-button-collection.dropdown-menu{z-index:2002;display:block;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}#bookly-tbs ul.dt-button-collection.dropdown-menu.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}#bookly-tbs ul.dt-button-collection.dropdown-menu.fixed.two-column{margin-left:-150px}#bookly-tbs ul.dt-button-collection.dropdown-menu.fixed.three-column{margin-left:-225px}#bookly-tbs ul.dt-button-collection.dropdown-menu.fixed.four-column{margin-left:-300px}#bookly-tbs ul.dt-button-collection.dropdown-menu>*{-webkit-column-break-inside:avoid;page-break-inside:avoid;break-inside:avoid}#bookly-tbs ul.dt-button-collection.dropdown-menu.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}#bookly-tbs ul.dt-button-collection.dropdown-menu.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}#bookly-tbs ul.dt-button-collection.dropdown-menu.four-column{width:600px;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-background{position:fixed;top:0;left:0;z-index:2001;width:100%;height:100%}@media screen and (max-width:767px){#bookly-tbs div.dt-buttons{float:none;width:100%;margin-bottom:.5em;text-align:center}#bookly-tbs div.dt-buttons a.btn{float:none}}#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>td:first-child,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child{position:relative;padding-left:30px;cursor:pointer}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>td:first-child:before,#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child:before{position:absolute;top:9px;left:4px;display:block;width:18px;height:18px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;font-family:'Courier New',Courier,monospace;font-size:18px;font-weight:700;line-height:18px;color:#5b6470;text-align:center;content:'+';background-color:transparent;border:0;border-radius:18px;-webkit-box-shadow:0 0 2px #5b6470;box-shadow:0 0 2px #5b6470}#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:transparent}#bookly-tbs table.dataTable.dtr-inline.collapsed>tbody>tr.child td:before{display:none}#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;width:14px;height:14px;line-height:14px;text-indent:3px;border-radius:14px}#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{position:absolute;top:50%;left:50%;display:block;width:16px;height:16px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;margin-top:-10px;margin-left:-10px;font-family:'Courier New',Courier,monospace;line-height:14px;color:#fff;text-align:center;content:'+';background-color:#337ab7;border:2px solid #fff;border-radius:14px;-webkit-box-shadow:0 0 3px #444;box-shadow:0 0 3px #444}#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{display:inline-block;width:100%;padding:0;margin:0;list-style-type:none}#bookly-tbs table.dataTable>tbody>tr.child ul li{padding:.3em 0;margin-bottom:.3em;border-bottom:1px solid #efefef}#bookly-tbs table.dataTable>tbody>tr.child ul li:first-child{padding-top:0}#bookly-tbs table.dataTable>tbody>tr.child ul 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;top:0;left:0;z-index:100;width:100%;height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:10em 1em}#bookly-tbs div.dtr-modal div.dtr-modal-display{position:absolute;top:0;right:0;bottom:0;left:0;z-index:102;width:50%;height:50%;margin:auto;overflow:auto;background-color:#f5f5f7;border:1px solid #000;border-radius:.5em;-webkit-box-shadow:0 12px 30px rgba(0,0,0,.6);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;z-index:12;width:22px;height:22px;text-align:center;cursor:pointer;background-color:#f9f9f9;border:1px solid #eaeaea;border-radius:3px}#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;right:0;bottom:0;left: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;z-index:2001;table-layout:fixed;outline:2px solid #337ab7;outline-offset:-2px;opacity:.8}#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 .jCal-wrap{margin-right:-10px;margin-left:-10px}#bookly-tbs .jCal{position:relative;width:100%}#bookly-tbs .jCalMo{position:relative;display:block;padding:0 15px;margin-bottom:15px;white-space:nowrap}@media (min-width:768px){#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{width:100%;padding:10px 0;font-weight:700;text-align:center}#bookly-tbs .jCal .monthYear{float:right;text-align:left}#bookly-tbs .jCal .month{width:100%}#bookly-tbs .jCal .monthSelect{background:#e8ebf0}#bookly-tbs .jCal .monthSelector{position:absolute}#bookly-tbs .jCal .monthSelectorShadow{position:absolute;padding:0;background:#8a929e}#bookly-tbs .jCal .monthNameHover,#bookly-tbs .jCal .monthYearHover{color:#8a929e;background:#e8ebf0}#bookly-tbs .jCal .monthSelectHover{color:#fff;background:#08c}#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:-webkit-calc(14.2857% + 1px);width:calc(14.2857% + 1px);margin-right:-1px;text-align:center;cursor:default;border:1px solid #e8ebf0;border-width:0 1px 1px 1px}#bookly-tbs .jCalMo .dow{font-size:12px;line-height:30px;background:#e8ebf0;border-bottom:0}#bookly-tbs .jCalMo .day{font-size:13px;line-height:30px;cursor:pointer;background:#fff}#bookly-tbs .jCalMo .invday{color:#8a929e;text-decoration:line-through;background:#e8ebf0}#bookly-tbs .jCalMo .aday,#bookly-tbs .jCalMo .pday{font-size:13px;line-height:30px;color:#d9dee4;background:rgba(232,235,240,.3)}#bookly-tbs .jCalMo .overDay{color:#3e424a;background:rgba(0,136,204,.2)}#bookly-tbs .jCalMo .holidayDay{color:#fff;background:#f0ad4e}#bookly-tbs .jCalMo .holidayDay.repeatDay{color:#fff;background:#d9534f}#bookly-tbs .jCalMo .selectedDay,#bookly-tbs .jCalMo .selectedDay.repeatDay{color:#fff;background:#08c}#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;width:700px;height:930px;overflow:hidden}@media (min-width:768px){#bookly-tbs .jCalMo{float:left;width:50%}}@media (min-width:1200px){#bookly-tbs .jCalMo{float:left;width:33.33333333%}}#bookly-tbs .bookly-loading{position:relative;height:100px}#bookly-tbs .bookly-loading:before{position:absolute;top:-webkit-calc(50% - 16px);top:calc(50% - 16px);left:-webkit-calc(50% - 16px);left:calc(50% - 16px);width:32px;height:32px;content:'';background:url(../../images/ajax_loader_32x32.gif) no-repeat;-webkit-background-size:contain;background-size:contain}#bookly-tbs .bookly-loading-16{position:relative;display:inline-block;min-width:16px;min-height:16px}#bookly-tbs .bookly-loading-16:before{position:absolute;top:-webkit-calc(50% - 8px);top:calc(50% - 8px);left:-webkit-calc(50% - 8px);left:calc(50% - 8px);width:16px;height:16px;content:'';background:url(../../images/loading.gif) no-repeat;-webkit-background-size:contain;background-size:contain}#bookly-tbs .select2 .select2-selection{height:35px!important;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .select2 .select2-selection__choice{display:none}#bookly-tbs .select2 .select2-selection ul{padding:0 16px;margin-bottom:0}#bookly-tbs .select2 .select2-search{float:none;margin:6px 0}#bookly-tbs .select2 .select2-search__field{width:100%!important;padding:0;margin:0;border:0;-webkit-box-shadow:none!important;box-shadow:none!important}#bookly-tbs .select2 .select2-selection__clear{top:-2px}#bookly-tbs .select2 .select2-selection__arrow{top:-4px}#bookly-tbs .bookly-no-borders,#bookly-tbs .bookly-no-borders td{border:0!important}#bookly-tbs .panel.bookly-main{border-color:#d9dee4;border-width:1px}@media (min-width:992px){#bookly-tbs .panel.bookly-main>.panel-body{padding:25px}}#bookly-tbs .panel.bookly-main .panel-body+.panel-footer{margin:0 15px 15px}@media (min-width:992px){#bookly-tbs .panel.bookly-main .panel-body+.panel-footer{margin:0 25px 25px}}#bookly-tbs .panel.bookly-panel-unborder,#bookly-tbs .panel.bookly-panel-unborder .panel-heading,#bookly-tbs .panel.bookly-panel-unborder>.list-group .list-group-item,#bookly-tbs .panel.bookly-panel-unborder>.panel-collapse>.list-group .list-group-item{border-width:0}#bookly-tbs .panel.bookly-panel-unborder .panel-heading{border-bottom-right-radius:3px;border-bottom-left-radius:3px}#bookly-tbs .panel .panel-heading .bookly-font-smaller{padding-top:4px}#bookly-tbs .panel .panel-footer{padding:21px 0 0 0;background-color:transparent}@media (min-width:768px){#bookly-tbs .panel .panel-footer{text-align:right}}@media (max-width:767px){#bookly-tbs .panel .panel-footer .btn{float:none!important}}#bookly-tbs .panel .panel-body .bookly-codes input{width:242px;border:none}#bookly-tbs .panel .padding-lr-none{padding-right:0;padding-left:0}#bookly-tbs .panel .panel-group .panel-footer{border-top:1px solid #e8ebf0}#bookly-tbs .bookly-collapse{margin-bottom:16px!important}#bookly-tbs .bookly-collapse a[data-toggle=collapse]{padding-right:25px;vertical-align:middle;background:url(../../../resources/images/notifications-arrow-up.png) 100% 50% no-repeat;-webkit-background-size:17px 17px!important;background-size:17px 17px!important;outline:0;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .bookly-collapse a[data-toggle=collapse].collapsed{background:url(../../../resources/images/notifications-arrow-down.png) 100% 50% no-repeat}#bookly-tbs .help-block{margin-top:-5px;margin-bottom:7px}@media (min-width:768px){#bookly-tbs .form-inline .form-group+.form-group,#bookly-tbs .modal-footer .btn+.btn,#bookly-tbs .page-header .bookly-support-panel>*+*,#bookly-tbs .page-header .popover+.btn,#bookly-tbs .panel-footer .btn+.btn:not(.bookly-btn-unborder){margin-left:12px}}#bookly-tbs .bookly-block-head{margin-bottom:20px}#bookly-tbs .intl-tel-input{display:block}#bookly-tbs .intl-tel-input .flag-container{right:0;left:0}#bookly-tbs .intl-tel-input .selected-flag{width:42px;padding:0 0 0 8px}#bookly-tbs .intl-tel-input .selected-flag .arrow{right:4px;left:auto;border-top:4px solid #000;border-right:3px solid transparent;border-left:3px solid transparent}#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 (-o-min-device-pixel-ratio:2/1),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 .form-inline label{margin-bottom:0}#bookly-tbs .form-inline .intl-tel-input{display:inline-block}#bookly-tbs .form-inline .bookly-checkbox-text{font-weight:400;vertical-align:middle}#bookly-tbs .page-header{margin-top:0}#bookly-tbs .page-header .bookly-support-panel #bookly-bell+.badge{position:absolute;top:-17px;right:7px;background-color:red}#bookly-tbs .page-header .bookly-support-panel .dropdown-menu-right{margin-top:10px;margin-right:3px}#bookly-tbs .bookly-nav-justified.nav-justified{display:table;margin-bottom:30px;table-layout:fixed}#bookly-tbs .bookly-nav-justified.nav-justified>li{display:table-cell;width:100%}#bookly-tbs .bookly-nav-justified.nav-justified>li>a{padding:15px 5px;margin-bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #d9dee4;border-radius:0}#bookly-tbs .bookly-nav-justified.nav-justified>li>.active>a,#bookly-tbs .bookly-nav-justified.nav-justified>li>.active>a:focus,#bookly-tbs .bookly-nav-justified.nav-justified>li>.active>a:hover{border-bottom:1px solid #08c}#bookly-tbs .bookly-nav-justified.nav-justified>li .bookly-icon{margin:0 3px;vertical-align:bottom}#bookly-tbs .bookly-nav-tabs-title{font-size:17px}@media (max-width:991px){#bookly-tbs .bookly-nav-tabs-title{display:none}}#bookly-tbs .bookly-thumb{position:relative;display:block;width:76px;height:76px;overflow:hidden;background-color:#e8ebf0;background-image:url(../../../../backend/resources/images/sprite.png);background-repeat:no-repeat;background-position:-106px 0;border:1px solid #d9dee4;border-radius:4px}#bookly-tbs .bookly-thumb.bookly-thumb-sm{width:36px;height:36px;background-position:-182px 0}@media (min-width:992px){#bookly-tbs .bookly-thumb.bookly-thumb-lg{width:106px;height:106px;background-position:0 0}}@media (max-width:992px){#bookly-tbs .bookly-thumb.bookly-thumb-lg{background-position:0 0}}#bookly-tbs .bookly-thumb.bookly-thumb-lg-w100{background-color:rgba(0,0,0,.05);background-image:none}@media (min-width:992px){#bookly-tbs .bookly-thumb.bookly-thumb-lg-w100{width:106px;height:106px;background-position:0 0}}@media (max-width:992px){#bookly-tbs .bookly-thumb.bookly-thumb-lg-w100{background-position:0 0}}@media (min-width:992px){#bookly-tbs .bookly-thumb.bookly-thumb-lg-w100{width:100%}}#bookly-tbs .bookly-thumb .bookly-thumb-delete{position:absolute;top:5px;right:5px}#bookly-tbs .bookly-thumb .bookly-thumb-edit{position:absolute;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.4)}#bookly-tbs .bookly-thumb .bookly-thumb-edit .bookly-thumb-edit-btn{width:100%;padding:0 3px;margin:0;overflow:hidden;font-size:13px;line-height:25px;color:#fff;text-align:center;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .bookly-staff-archived{background:rgba(232,235,240,.7)!important}#bookly-tbs .bookly-staff-archived .bookly-flex-cell{color:#d9dee4}#bookly-tbs .bookly-staff-archived .bookly-rating-right{color:#d9dee4}#bookly-tbs .btn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .btn.btn-lg{padding-right:32px;padding-left:32px}#bookly-tbs .btn.btn-xlg .dashicons,#bookly-tbs .btn.btn-xlg .dashicons-before:before{width:30px;height:30px;font-size:30px}#bookly-tbs .btn.bookly-btn-unborder{padding-right:0;padding-left:0;border-color:transparent}#bookly-tbs .bookly-nav{margin-bottom:20px;font-size:0}#bookly-tbs .bookly-nav.bookly-nav-pills .bookly-nav-item{display:inline-block;margin:6px 10px 6px 0}#bookly-tbs .bookly-nav.bookly-nav-tabs{z-index:10;border-bottom:1px solid #e8ebf0}@media (min-width:768px){#bookly-tbs .bookly-nav.bookly-nav-tabs{margin-bottom:0}}@media (min-width:768px){#bookly-tbs .bookly-nav.bookly-nav-tabs .bookly-nav-item{position:relative;display:inline-block;padding:12px 16px;margin:6px 10px -1px 0;border-bottom-right-radius:0;border-bottom-left-radius:0}}#bookly-tbs .bookly-nav .bookly-nav-item{position:relative;display:block;padding:10px 10px;margin-bottom:6px;font-size:15px;background:#fff;border:1px solid #e8ebf0;border-radius:4px}#bookly-tbs .bookly-nav .bookly-nav-item.active{color:#fff;background:#08c;border-color:#08c}#bookly-tbs .bookly-nav .bookly-nav-item.active a{color:#fff}#bookly-tbs .bookly-nav .bookly-nav-item.active a:focus,#bookly-tbs .bookly-nav .bookly-nav-item.active a:hover{color:#d9d9d9}#bookly-tbs .bookly-nav .bookly-nav-item:not(.active):focus,#bookly-tbs .bookly-nav .bookly-nav-item:not(.active):hover{cursor:pointer;background-color:#e8ebf0;border-color:#8a929e;-webkit-box-shadow:0 0 5px rgba(0,0,0,.2);box-shadow:0 0 5px rgba(0,0,0,.2)}#bookly-tbs .board-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.5)}#bookly-tbs .board-backdrop .bookly-board{width:50%;padding:20px;margin:10% 25%;background-color:#fefefe;border:1px solid rgba(0,0,0,.2)}@media (max-width:991px){#bookly-tbs .board-backdrop .bookly-board{width:90%;margin:10% 5%}}#bookly-tbs .board-backdrop .bookly-board .btn-group-vertical.align-left .btn{padding-left:6px;text-align:left}#bookly-tbs .board-backdrop .bookly-board ul{margin-left:15px!important;list-style:inside!important}#bookly-tbs .bookly-dropdown-menu>li:first-child{margin-left:0}#bookly-tbs .bookly-dropdown-menu li{margin-left:20px}#bookly-tbs .bookly-dropdown-menu ul>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.4;color:#5b6470;white-space:nowrap}#bookly-tbs .bookly-dropdown-menu ul>li>a:focus,#bookly-tbs .bookly-dropdown-menu ul>li>a:hover{color:#505762;text-decoration:none;background-color:#f5f5f5}#bookly-tbs .bookly-dropdown-block{display:block;width:100%;height:36px;line-height:1.4}#bookly-tbs .bookly-dropdown-block .bookly-flex-cell:last-child{position:absolute;top:7px;left:-webkit-calc(100% - 32px);left:calc(100% - 32px)}#bookly-tbs .bookly-service-color{display:inline-block;width:21px;height:21px;margin-left:-25px;border:2px solid #fff;border-radius:50%}#bookly-tbs .bookly-vertical-colors .bookly-service-color{position:absolute}#bookly-tbs .bookly-vertical-colors .bookly-service-color:nth-child(1){margin-top:-15px}#bookly-tbs .bookly-vertical-colors .bookly-service-color:nth-child(2){margin-top:-5px}#bookly-tbs .bookly-max-height-xs{max-height:200px!important;overflow:auto}#bookly-tbs .bookly-max-height-sm{max-height:300px!important;overflow:auto}#bookly-tbs .bookly-max-height-md{max-height:400px!important;overflow:auto}#bookly-tbs .bookly-max-height-lg{max-height:500px!important;overflow:auto}#bookly-tbs .bookly-holidays-nav{display:block;width:200px;margin:0 auto}#bookly-tbs .bookly-holidays-nav .btn-default,#bookly-tbs .bookly-holidays-nav .form-control{background-color:#eff1f4;border-color:transparent}#bookly-tbs .modal-body textarea.wp-editor-area{width:-webkit-calc(100% - 20px);width:calc(100% - 20px)}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-day{cursor:pointer}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-day.bookly-fc-day-active{background-color:#eafcff}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group{position:relative;display:inline-block;vertical-align:middle}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group .fc-button+.fc-button{margin-left:-1px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group>.fc-button:not(.fc-corner-left):not(.fc-corner-right){border-radius:0}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group>.fc-button:first-child{margin-left:0}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group>.fc-button:first-child:not(.fc-corner-right){border-top-right-radius:0;border-bottom-right-radius:0}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group>.fc-button:not(.fc-corner-left){border-top-left-radius:0;border-bottom-left-radius:0}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button-group:not(:last-child){margin-right:16px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button{display:inline-block;height:auto;padding:6px 12px;margin-bottom:0;overflow:hidden;font-size:15px;font-weight:400;line-height:1.4;text-align:center;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.btn-pill{border-radius:24px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.btn-pill-left{border-top-left-radius:24px;border-bottom-left-radius:24px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.btn-pill-right{border-top-right-radius:24px;border-bottom-right-radius:24px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.btn-lg{padding-right:32px;padding-left:32px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.btn-xlg .dashicons,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.btn-xlg .dashicons-before:before{width:30px;height:30px;font-size:30px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-button.bookly-btn-unborder{padding-right:0;padding-left:0;border-color:transparent}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default{color:#3e424a;text-shadow:none;background-color:#fff;background-image:none;border-color:#d9dee4;-webkit-box-shadow:none;box-shadow:none}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:focus{color:#3e424a;background-color:#e6e6e6;border-color:#8e9daf}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:hover{color:#3e424a;background-color:#e6e6e6;border-color:#b5bfcb}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.active,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:active,.open>.dropdown-toggle#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default{color:#3e424a;background-color:#e6e6e6;border-color:#b5bfcb}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.active.focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.active:focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.active:hover,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:active.focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:active:focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:active:hover,.open>.dropdown-toggle#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.focus,.open>.dropdown-toggle#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:focus,.open>.dropdown-toggle#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:hover{color:#3e424a;background-color:#d4d4d4;border-color:#8e9daf}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.active,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:active,.open>.dropdown-toggle#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default{background-image:none}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.disabled.focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.disabled:focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.disabled:hover,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default[disabled].focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default[disabled]:focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default[disabled]:hover,fieldset[disabled] #bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.focus,fieldset[disabled] #bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:focus,fieldset[disabled] #bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default:hover{background-color:#fff;border-color:#d9dee4}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default .badge{color:#fff;background-color:#3e424a}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.fc-state-active{z-index:1;color:#3e424a;background-color:#e6e6e6;background-image:none;border-color:#b5bfcb;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.fc-state-active.focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.fc-state-active:focus,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-state-default.fc-state-active:hover{color:#3e424a;background-color:#d4d4d4;border-color:#8e9daf}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar h2{position:relative;margin:0;font-size:20px;line-height:32px;cursor:pointer}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar h2:hover{color:#005580}@media (min-width:768px){#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar h2{font-size:24px}}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar h2:after{display:inline-block;width:0;height:0;margin-left:12px;vertical-align:middle;content:" ";border-top:5px dashed;border-top:5px solid\9;border-right:5px solid transparent;border-left:5px solid transparent}@media (max-width:767px){#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-left,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-toolbar .fc-right{display:inline-block;float:none;margin:0 12px 6px 12px}}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-head{background-color:#e8ebf0}#bookly-tbs .bookly-fc-inner .bookly-calendar th.fc-widget-header{padding:10px 0}#bookly-tbs .bookly-fc-inner .bookly-calendar th.fc-day-header{text-align:center}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc .fc-axis{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;padding:0 4px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-view{min-height:.01%;overflow-x:auto}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-view>table{min-width:768px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-event{padding:3px 2px 3px 5px;margin-right:0;margin-left:0;color:#3e424a;cursor:pointer;border-width:0;border-radius:0}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-event:after{position:absolute;top:0;right:0;width:-webkit-calc(100% - 2px);width:calc(100% - 2px);height:100%;content:'';background-color:rgba(255,255,255,.6);border-bottom:1px solid rgba(255,255,255,.4)}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-event:hover:after{background-color:rgba(255,255,255,.7)}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-time{font-size:inherit;font-weight:700}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-time .bookly-fc-icon{float:right;color:#3e424a;opacity:.8}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-time .bookly-fc-icon:hover{cursor:pointer;opacity:1}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-title{display:block;margin-top:3px}#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-ltr .fc-time-grid .fc-event-container,#bookly-tbs .bookly-fc-inner .bookly-calendar .fc-rtl .fc-time-grid .fc-event-container{margin:0}#bookly-tbs .bookly-fc-inner .fc-loading-inner{position:absolute;top:50px;right:0;bottom:0;left:0;z-index:9;background-color:rgba(255,255,255,.7)}#bookly-tbs .bookly-fc-inner .fc-loading-inner .fc-loading{position:absolute;top:50%;left:50%;width:auto;height:32px;padding-left:64px;background:rgba(255,0,0,0) url(../../images/ajax_loader_32x32.gif) no-repeat scroll 50% center}#bookly-tbs .bookly-fc-inner .bookly-margin-top-xlg{position:relative;min-height:.01%;overflow:visible}@media (min-width:768px){#bookly-tbs .daterangepicker.dropdown-menu.show-calendar{min-width:718px}}#bookly-tbs .daterangepicker .daterangepicker_input{margin-bottom:6px}#bookly-tbs .daterangepicker .daterangepicker_input .glyphicon{position:absolute;top:8px}#bookly-tbs .wp-editor-wrap *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}#bookly-tbs .wp-switch-editor+.wp-switch-editor{margin-left:5px}#bookly-tbs .editable-container.popover{z-index:9999}#bookly-tbs .editable-input,#bookly-tbs .editable-input .form-control{width:100%}#bookly-tbs .editable-input textarea{resize:both}#bookly-tbs .editable-buttons{display:block;margin:6px 0;text-align:right}#bookly-tbs .editable-clear-x,#bookly-tbs .editable-click{cursor:pointer}#bookly-tbs .table>thead>tr>th{padding:16px 8px;background-color:#e8ebf0}#bookly-tbs .bookly-table-sortable.table>thead>tr>th{position:relative;padding-left:16px!important}#bookly-tbs .bookly-table-sortable.table>thead>tr>th[ng-class],#bookly-tbs .bookly-table-sortable.table>thead>tr>th[order-by]{cursor:pointer}#bookly-tbs .bookly-table-sortable.table>thead>tr>th[ng-class]:after,#bookly-tbs .bookly-table-sortable.table>thead>tr>th[order-by]:after{position:absolute;bottom:22px;left:-4px;width:24px;height:15px;content:"";background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDQ4IDQ4IiB3aWR0aD0iNDgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDIwbDEwIDEwIDEwLTEweiIvPjxwYXRoIGQ9Ik0wIDBoNDh2NDhoLTQ4eiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==);background-repeat:no-repeat;background-position:0 -webkit-calc(50% + 2px);background-position:0 calc(50% + 2px);-webkit-background-size:24px 24px;background-size:24px 24px;opacity:.1}#bookly-tbs .bookly-table-sortable.table>thead>tr>th[ng-class].desc:after,#bookly-tbs .bookly-table-sortable.table>thead>tr>th[order-by].desc:after{opacity:1;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}#bookly-tbs .bookly-table-sortable.table>thead>tr>th[ng-class].asc:after,#bookly-tbs .bookly-table-sortable.table>thead>tr>th[order-by].asc:after{opacity:1}#bookly-tbs .table thead>tr>th{vertical-align:middle}#bookly-tbs .table thead>tr>th:not(:first-child){border-left:1px solid #d9dee4}#bookly-tbs .table td>input[type=checkbox],#bookly-tbs .table th>input[type=checkbox]{margin:0}#bookly-tbs .table td ul.bookly-list,#bookly-tbs .table th ul.bookly-list{padding-left:13px;margin:0!important}#bookly-tbs .table td ul.bookly-list.list-dots,#bookly-tbs .table th ul.bookly-list.list-dots{list-style:disc outside!important}#bookly-tbs .table td ul.bookly-list li,#bookly-tbs .table th ul.bookly-list li{margin:0}#bookly-tbs .bookly-color-picker-wrapper{position:relative;min-height:35px}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container{position:absolute;z-index:10;padding:6px;margin-left:-6px;background-color:#fff}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container,#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container.wp-picker-active{-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container .wp-color-result{height:auto}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container .wp-color-result .wp-color-result-text{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container .wp-picker-input-wrap{float:right}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container .wp-picker-input-wrap input[type=button]{display:none}#bookly-tbs .bookly-color-picker-wrapper .wp-picker-container .wp-picker-input-wrap .wp-color-picker{padding:4px}#bookly-tbs .page-header .bookly-page-title{float:left;font-size:24px;line-height:38px}@media (max-width:767px){#bookly-tbs .page-header .bookly-page-title{font-size:22px}#bookly-tbs h3{font-size:18px}}#bookly-tbs .modal{top:46px!important;font-size:15px}#bookly-tbs .modal table{font-family:Arial,Helvetica,sans-serif}#bookly-tbs .modal table th{word-break:normal}#bookly-tbs .modal table td{word-break:normal}#bookly-tbs .modal .bookly-codes input{width:242px;border:none}#bookly-tbs .modal-header .close{margin-top:4px}@media (max-width:767px){#bookly-tbs .bookly-form .bookly-progress-tracker{display:none!important}}#bookly-tbs .bookly-form .picker__nav--next,#bookly-tbs .bookly-form .picker__nav--prev{width:26px;height:26px}@media (max-width:991px){#bookly-tbs .bookly-form .bookly-user-coupon{width:135px}}#bookly-tbs .bookly-form .bookly-box{padding-bottom:1px}#bookly-tbs .bookly-form input[type=checkbox],#bookly-tbs .bookly-form input[type=radio]{width:16px!important;height:16px!important}#bookly-tbs .bookly-icon{display:inline-block;width:24px;height:24px;vertical-align:middle;background-color:transparent;background-image:url(../../../../backend/resources/images/sprite.png);background-repeat:no-repeat}#bookly-tbs .bookly-icon.bookly-icon-draghandle{background-position:-154px -82px}#bookly-tbs .has-feedback .alert-icon{display:inline-block;width:24px;height:24px;margin:4px 6px 0 0;vertical-align:middle;background-color:transparent;background-image:url(../../../../backend/resources/images/sprite.png);background-repeat:no-repeat}#bookly-tbs .has-feedback.has-success .alert-icon{background-position:-24px -113px}#bookly-tbs .has-feedback.has-error .alert-icon{background-position:-48px -113px}#bookly-tbs .has-feedback.has-warning .alert-icon{background-position:-72px -113px}#bookly-tbs .has-feedback.has-ajax .alert-icon{background-position:-72px -113px;-webkit-animation:spin 3s infinite;-o-animation:spin 3s infinite;animation:spin 3s infinite}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes spin{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}#bookly-tbs .alert{margin-top:30px}#bookly-tbs .alert .alert-icon,#bookly-tbs .alert .close{display:inline-block;width:24px;height:24px;vertical-align:top;background-color:transparent;background-image:url(../../../../backend/resources/images/sprite.png);background-repeat:no-repeat}#bookly-tbs .alert .close{margin-top:-2px}#bookly-tbs .alert.alert-info .alert-icon{background-position:0 -113px}#bookly-tbs .alert.alert-success .alert-icon{background-position:-24px -113px}#bookly-tbs .alert.alert-danger .alert-icon{background-position:-48px -113px}#bookly-tbs .alert.alert-warning .alert-icon{background-position:-72px -113px}#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 .pagination .next,#bookly-tbs .pagination .prev{position:inherit;width:inherit;height:inherit;padding:inherit}#bookly-tbs .pagination .next:before,#bookly-tbs .pagination .prev:before{position:inherit;width:inherit;height:inherit;padding:inherit;content:""}#bookly-tbs #bookly-appointments-list .popover .arrow{display:none}#bookly-tbs .bookly-rating-right{float:right}#bookly-tbs .bookly-rating-left{margin-left:10px}#bookly-tbs .bookly-rating-left i{margin-top:3px}#bookly-tbs .table.table-striped{border:1px solid #f4f4f4}#bookly-tbs .table.table-striped thead>tr>th{background-color:transparent;border-top:1px solid #f4f4f4}#bookly-tbs .table.table-striped thead>tr>th:not(:first-child){border-left:1px solid #f4f4f4}#bookly-tbs .table.table-striped thead>tr>th{border-bottom:none}#bookly-tbs .table.table-striped tbody>tr>td{border-top:1px solid #f4f4f4}#bookly-tbs .modal.fade.show{opacity:1}#bookly-tbs .modal .modal-header{display:block}#bookly-tbs ul{list-style:none}#bookly-tbs ul li{margin-right:inherit;margin-left:inherit}#bookly-tbs .modal.show .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}#bookly-tbs h2:before{content:none}#bookly-tbs .dataTables_wrapper{display:block}#bookly-tbs input[type=search]{min-height:21px}#bookly-tbs input[type=radio]{-webkit-appearance:radio}#bookly-tbs select{max-width:unset}#bookly-tbs ol{margin-left:2em}#bookly-tbs table{margin:0;overflow:unset}body.mobile.modal-open #wpwrap{position:inherit!important}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-backdrop+.modal-backdrop{display:none!important}.modal-open{overflow:hidden!important}.modal-open .modal{overflow-x:hidden!important;overflow-y:auto!important}.select2-container--bootstrap{display:block}.select2-container--bootstrap .select2-selection{font-size:15px;color:#3e424a;background-color:#fff;border:1px solid #d9dee4;border-radius:4px;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.select2-container--bootstrap .select2-selection.form-control{border-radius:4px}.select2-container--bootstrap .select2-search--dropdown .select2-search__field{font-size:15px;color:#3e424a;background-color:#fff;border:1px solid #d9dee4;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.select2-container--bootstrap .select2-search__field{outline:0}.select2-container--bootstrap .select2-search__field::-webkit-input-placeholder{color:#8a929e}.select2-container--bootstrap .select2-search__field:-moz-placeholder{color:#8a929e}.select2-container--bootstrap .select2-search__field::-moz-placeholder{color:#8a929e;opacity:1}.select2-container--bootstrap .select2-search__field:-ms-input-placeholder{color:#8a929e}.select2-container--bootstrap .select2-results__option{padding:6px 12px}.select2-container--bootstrap .select2-results__option[role=group]{padding:0}.select2-container--bootstrap .select2-results__option[aria-disabled=true]{color:#d9dee4;cursor:not-allowed}.select2-container--bootstrap .select2-results__option[aria-selected=true]{color:#505762;background-color:#f5f5f5}.select2-container--bootstrap .select2-results__option--highlighted[aria-selected]{color:#fff;background-color:#08c}.select2-container--bootstrap .select2-results__option .select2-results__option{padding:6px 12px}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option{padding-left:24px;margin-left:-12px}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option{padding-left:36px;margin-left:-24px}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{padding-left:48px;margin-left:-36px}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{padding-left:60px;margin-left:-48px}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{padding-left:72px;margin-left:-60px}.select2-container--bootstrap .select2-results__group{display:block;padding:6px 12px;font-size:13px;line-height:1.4;color:#d9dee4;white-space:nowrap}.select2-container--bootstrap.select2-container--focus .select2-selection,.select2-container--bootstrap.select2-container--open .select2-selection{border-color:#08c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,136,204,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,136,204,.6);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.select2-container--bootstrap.select2-container--open .select2-selection .select2-selection__arrow b{border-color:transparent transparent #8a929e transparent;border-width:0 5px 5px 5px}.select2-container--bootstrap.select2-container--open.select2-container--below .select2-selection{border-bottom-color:transparent;border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container--bootstrap.select2-container--open.select2-container--above .select2-selection{border-top-color:transparent;border-top-left-radius:0;border-top-right-radius:0}.select2-container--bootstrap .select2-selection__clear{float:right;margin-right:10px;font-weight:700;color:#8a929e;cursor:pointer}.select2-container--bootstrap .select2-selection__clear:hover{color:#3e424a}.select2-container--bootstrap.select2-container--disabled .select2-selection{border-color:#d9dee4;-webkit-box-shadow:none;box-shadow:none}.select2-container--bootstrap.select2-container--disabled .select2-search__field,.select2-container--bootstrap.select2-container--disabled .select2-selection{cursor:not-allowed}.select2-container--bootstrap.select2-container--disabled .select2-selection,.select2-container--bootstrap.select2-container--disabled .select2-selection--multiple .select2-selection__choice{background-color:rgba(232,235,240,.7)}.select2-container--bootstrap.select2-container--disabled .select2-selection--multiple .select2-selection__choice__remove,.select2-container--bootstrap.select2-container--disabled .select2-selection__clear{display:none}.select2-container--bootstrap .select2-dropdown{margin-top:-1px;overflow-x:hidden;border-color:#08c;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.select2-container--bootstrap .select2-dropdown--above{margin-top:1px;-webkit-box-shadow:0 -6px 12px rgba(0,0,0,.175);box-shadow:0 -6px 12px rgba(0,0,0,.175)}.select2-container--bootstrap .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--bootstrap .select2-selection--single{height:35px;padding:6px 27px 6px 12px;line-height:1.4}.select2-container--bootstrap .select2-selection--single .select2-selection__arrow{position:absolute;top:0;right:12px;bottom:0;width:5px}.select2-container--bootstrap .select2-selection--single .select2-selection__arrow b{position:absolute;top:50%;left:0;width:0;height:0;margin-top:-2.5px;margin-left:-5px;border-color:#8a929e transparent transparent transparent;border-style:solid;border-width:5px 5px 0 5px}.select2-container--bootstrap .select2-selection--single .select2-selection__rendered{padding:0;color:#3e424a}.select2-container--bootstrap .select2-selection--single .select2-selection__placeholder{color:#8a929e}.select2-container--bootstrap .select2-selection--multiple{height:auto;min-height:35px;padding:0}.select2-container--bootstrap .select2-selection--multiple .select2-selection__rendered{display:block;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin:0;overflow:hidden;line-height:1.4;text-overflow:ellipsis;white-space:nowrap;list-style:none}.select2-container--bootstrap .select2-selection--multiple .select2-selection__placeholder{float:left;margin-top:5px;color:#8a929e}.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice{float:left;padding:0 6px;margin:5px 0 0 6px;color:#3e424a;cursor:default;background:#fff;border:1px solid #d9dee4;border-radius:4px}.select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field{min-width:5em;height:21px;padding:0 12px;margin-top:0;line-height:1.4;background:0 0}.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove{display:inline-block;margin-right:3px;font-weight:700;color:#8a929e;cursor:pointer}.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove:hover{color:#3e424a}.select2-container--bootstrap .select2-selection--multiple .select2-selection__clear{margin-top:6px}.form-group-sm .select2-container--bootstrap .select2-selection--single,.input-group-sm .select2-container--bootstrap .select2-selection--single,.select2-container--bootstrap .select2-selection--single.input-sm{height:32px;padding:5px 25px 5px 10px;font-size:13px;line-height:1.53846154;border-radius:3px}.form-group-sm .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b,.input-group-sm .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b,.select2-container--bootstrap .select2-selection--single.input-sm .select2-selection__arrow b{margin-left:-5px}.form-group-sm .select2-container--bootstrap .select2-selection--multiple,.input-group-sm .select2-container--bootstrap .select2-selection--multiple,.select2-container--bootstrap .select2-selection--multiple.input-sm{min-height:32px;border-radius:3px}.form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice,.input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice,.select2-container--bootstrap .select2-selection--multiple.input-sm .select2-selection__choice{padding:0 5px;margin:4px 0 0 5px;font-size:13px;line-height:1.53846154}.form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field,.input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field,.select2-container--bootstrap .select2-selection--multiple.input-sm .select2-search--inline .select2-search__field{height:30px;padding:0 10px;font-size:13px;line-height:1.53846154}.form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear,.input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear,.select2-container--bootstrap .select2-selection--multiple.input-sm .select2-selection__clear{margin-top:5px}.form-group-lg .select2-container--bootstrap .select2-selection--single,.input-group-lg .select2-container--bootstrap .select2-selection--single,.select2-container--bootstrap .select2-selection--single.input-lg{height:46px;padding:10px 34px 10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow,.input-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow,.select2-container--bootstrap .select2-selection--single.input-lg .select2-selection__arrow{width:6px}.form-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b,.input-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b,.select2-container--bootstrap .select2-selection--single.input-lg .select2-selection__arrow b{margin-top:-3px;margin-left:-10px;border-width:6px 6px 0 6px}.form-group-lg .select2-container--bootstrap .select2-selection--multiple,.input-group-lg .select2-container--bootstrap .select2-selection--multiple,.select2-container--bootstrap .select2-selection--multiple.input-lg{min-height:46px;border-radius:6px}.form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice,.input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice,.select2-container--bootstrap .select2-selection--multiple.input-lg .select2-selection__choice{padding:0 10px;margin:9px 0 0 8px;font-size:18px;line-height:1.3333333;border-radius:4px}.form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field,.input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field,.select2-container--bootstrap .select2-selection--multiple.input-lg .select2-search--inline .select2-search__field{height:44px;padding:0 16px;font-size:18px;line-height:1.3333333}.form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear,.input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear,.select2-container--bootstrap .select2-selection--multiple.input-lg .select2-selection__clear{margin-top:10px}.select2-container--bootstrap .select2-selection.input-lg.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #8a929e transparent;border-width:0 6px 6px 6px}.input-group-lg .select2-container--bootstrap .select2-selection.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #8a929e transparent;border-width:0 6px 6px 6px}.select2-container--bootstrap[dir=rtl] .select2-selection--single{padding-right:12px;padding-left:27px}.select2-container--bootstrap[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:0;padding-left:0;text-align:right}.select2-container--bootstrap[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--bootstrap[dir=rtl] .select2-selection--single .select2-selection__arrow{right:auto;left:12px}.select2-container--bootstrap[dir=rtl] .select2-selection--single .select2-selection__arrow b{margin-left:0}.select2-container--bootstrap[dir=rtl] .select2-selection--multiple .select2-search--inline,.select2-container--bootstrap[dir=rtl] .select2-selection--multiple .select2-selection__choice,.select2-container--bootstrap[dir=rtl] .select2-selection--multiple .select2-selection__placeholder{float:right}.select2-container--bootstrap[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-right:6px;margin-left:0}.select2-container--bootstrap[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-right:auto;margin-left:2px}.has-warning .select2-dropdown,.has-warning .select2-selection{border-color:#8a6d3b}.has-warning .select2-container--focus .select2-selection,.has-warning .select2-container--open .select2-selection{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning.select2-drop-active{border-color:#66512c}.has-warning.select2-drop-active.select2-drop.select2-drop-above{border-top-color:#66512c}.has-error .select2-dropdown,.has-error .select2-selection{border-color:#a94442}.has-error .select2-container--focus .select2-selection,.has-error .select2-container--open .select2-selection{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error.select2-drop-active{border-color:#843534}.has-error.select2-drop-active.select2-drop.select2-drop-above{border-top-color:#843534}.has-success .select2-dropdown,.has-success .select2-selection{border-color:#3c763d}.has-success .select2-container--focus .select2-selection,.has-success .select2-container--open .select2-selection{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success.select2-drop-active{border-color:#2b542c}.has-success.select2-drop-active.select2-drop.select2-drop-above{border-top-color:#2b542c}.input-group>.select2-hidden-accessible:first-child+.select2-container--bootstrap>.selection>.select2-selection,.input-group>.select2-hidden-accessible:first-child+.select2-container--bootstrap>.selection>.select2-selection.form-control{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.select2-hidden-accessible:not(:first-child)+.select2-container--bootstrap:not(:last-child)>.selection>.select2-selection,.input-group>.select2-hidden-accessible:not(:first-child)+.select2-container--bootstrap:not(:last-child)>.selection>.select2-selection.form-control{border-radius:0}.input-group>.select2-hidden-accessible:not(:first-child):not(:last-child)+.select2-container--bootstrap:last-child>.selection>.select2-selection,.input-group>.select2-hidden-accessible:not(:first-child):not(:last-child)+.select2-container--bootstrap:last-child>.selection>.select2-selection.form-control{border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.select2-container--bootstrap{position:relative;z-index:2;display:table;width:100%;margin-bottom:0;table-layout:fixed}.input-group>.select2-container--bootstrap>.selection>.select2-selection.form-control{float:none}.input-group>.select2-container--bootstrap.select2-container--focus,.input-group>.select2-container--bootstrap.select2-container--open{z-index:3}.input-group>.select2-container--bootstrap,.input-group>.select2-container--bootstrap .input-group-btn,.input-group>.select2-container--bootstrap .input-group-btn .btn{vertical-align:top}.form-control.select2-hidden-accessible{position:absolute!important;width:1px!important}@media (min-width:768px){.form-inline .select2-container--bootstrap{display:inline-block}}.select2-results__option{padding:7px 12px;margin-bottom:1px!important}.select2-results__option[aria-selected=true]{color:#8a929e!important;background-color:inherit!important}.select2-container--bootstrap .select2-results>.select2-results__options{max-height:400px}.select2-container--bootstrap .select2-results>.select2-results__options .select2-results__option{padding:2px 12px;margin-bottom:1px!important;font-size:15px;line-height:1.4em}.select2-container--bootstrap .select2-results>.select2-results__options .select2-results__option i{margin-right:5px}.select2-container--bootstrap .select2-results>.select2-results__options .select2-results__group{font-size:16px;color:#000}#select2-bookly-appointment-dialog-select2-results .select2-results__option[aria-selected=true]{color:#444!important}table.dt-rowReorder-float{position:absolute!important;outline:2px solid #888}table td{text-align:unset}ol,ul{margin:unset}input[type=search]{height:unset}
backend/resources/bootstrap/js/bootstrap.min.js CHANGED
@@ -1,7 +1,7 @@
1
  /*!
2
- * Bootstrap v3.3.6 (http://getbootstrap.com)
3
  * Copyright 2011-2016 Twitter, Inc.
4
  * Licensed under the MIT license
5
  */
6
- if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");
7
- d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
1
  /*!
2
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
3
  * Copyright 2011-2016 Twitter, Inc.
4
  * Licensed under the MIT license
5
  */
6
+ if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){
7
+ this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
backend/resources/js/help.js CHANGED
@@ -1,55 +1,5 @@
1
  jQuery(function ($) {
2
  $('body').booklyHelp();
3
-
4
- /**
5
- * Loading overlay plugin
6
- * @param busy
7
- */
8
- $.fn.loading = function (busy) {
9
- var $t = $(this);
10
- if ($t.length <= 0) return;
11
- var key = $t.data('bookly-loading-key');
12
- if (key === undefined) {
13
- key = Math.random().toString(36).substr(2, 9);
14
- $t.data('bookly-loading-key', key);
15
- }
16
- var $overlay = $('#bookly-js-loading-overlay-' + key);
17
- if (busy) {
18
- var zIndex = $t.css('z-index') === 'auto' ? 2 : parseFloat($t.css('z-index')) + 1,
19
- $spinner = $('#bookly-js-loading-spin-' + key);
20
- if ($overlay.length === 0) {
21
- $spinner = $('<div/>')
22
- .css({position: 'absolute'})
23
- .attr('id', 'bookly-js-loading-spin-' + key)
24
- .html('<i class="fas fa-spin fa-spinner fa-4x"></i>');
25
- $overlay = $('<div/>')
26
- .css({display: 'none', position: 'absolute', background: '#eee'})
27
- .attr('id', 'bookly-js-loading-overlay-' + key)
28
- .append($spinner);
29
-
30
- $('body').append($overlay);
31
- }
32
-
33
- $overlay.css({
34
- opacity: 0.5,
35
- zIndex : zIndex,
36
- top : $t.offset().top,
37
- left : $t.offset().left,
38
- width : $t.outerWidth(),
39
- height : $t.outerHeight()
40
- }).fadeIn();
41
-
42
- var topOverlay = (($t.height() / 2) - 32);
43
- if (topOverlay < 0) topOverlay = 0;
44
- $spinner.css({
45
- top : topOverlay,
46
- left: (($t.width() / 2) - 32)
47
- });
48
-
49
- } else {
50
- $overlay.fadeOut();
51
- }
52
- };
53
  });
54
 
55
  jQuery.fn.booklyHelp = function() {
@@ -58,11 +8,13 @@ jQuery.fn.booklyHelp = function() {
58
  $label = $help.prev('label'),
59
  $icon = jQuery('<a href="#" class="dashicons dashicons-editor-help bookly-color-gray bookly-vertical-middle"></a>');
60
 
61
- $label.append($icon);
62
- $icon.on('click', function(e) {
63
- e.preventDefault();
64
- $help.toggle();
65
- });
66
- $help.hide();
 
 
67
  });
68
  };
1
  jQuery(function ($) {
2
  $('body').booklyHelp();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  });
4
 
5
  jQuery.fn.booklyHelp = function() {
8
  $label = $help.prev('label'),
9
  $icon = jQuery('<a href="#" class="dashicons dashicons-editor-help bookly-color-gray bookly-vertical-middle"></a>');
10
 
11
+ if (!$help.hasClass('bookly-js-without-icon')) {
12
+ $label.append($icon);
13
+ $icon.on('click', function (e) {
14
+ e.preventDefault();
15
+ $help.toggle();
16
+ });
17
+ $help.hide();
18
+ }
19
  });
20
  };
frontend/components/booking/InfoText.php CHANGED
@@ -237,7 +237,7 @@ class InfoText
237
 
238
  // Support deprecated codes [[CODE]]
239
  foreach ( array_keys( $info_text_codes ) as $code_key ) {
240
- if ( $code_key{1} == '[' ) {
241
  $info_text_codes[ '{' . strtolower( substr( $code_key, 2, - 2 ) ) . '}' ] = $info_text_codes[ $code_key ];
242
  } else {
243
  $info_text_codes[ '[[' . strtoupper( substr( $code_key, 1, - 1 ) ) . ']]' ] = $info_text_codes[ $code_key ];
237
 
238
  // Support deprecated codes [[CODE]]
239
  foreach ( array_keys( $info_text_codes ) as $code_key ) {
240
+ if ( $code_key[1] == '[' ) {
241
  $info_text_codes[ '{' . strtolower( substr( $code_key, 2, - 2 ) ) . '}' ] = $info_text_codes[ $code_key ];
242
  } else {
243
  $info_text_codes[ '[[' . strtoupper( substr( $code_key, 1, - 1 ) ) . ']]' ] = $info_text_codes[ $code_key ];
frontend/resources/css/bookly-main.css CHANGED
@@ -1498,4 +1498,8 @@ label.bookly-square {
1498
  @keyframes bookly-radio-loading-spin {
1499
  0% { transform: rotate(0deg); }
1500
  100% { transform: rotate(360deg); }
 
 
 
 
1501
  }
1498
  @keyframes bookly-radio-loading-spin {
1499
  0% { transform: rotate(0deg); }
1500
  100% { transform: rotate(360deg); }
1501
+ }
1502
+
1503
+ .pac-container {
1504
+ z-index: 1000000!important;
1505
  }
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: 2019-12-09 15:21+0000\n"
12
- "PO-Revision-Date: 2019-12-09 15:39+0000\n"
13
  "Last-Translator: support@bookly.info\n"
14
  "Language-Team: German\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
@@ -1444,6 +1444,9 @@ msgstr "Sind Sie sicher?"
1444
  msgid "Duplicate dates are not permitted."
1445
  msgstr "Duplicate dates are not permitted."
1446
 
 
 
 
1447
  msgid "The requested interval is not available"
1448
  msgstr "Der gewünschte Zeitraum ist nicht verfügbar"
1449
 
@@ -1672,6 +1675,12 @@ msgstr "API-Login-Identifikationsnummer"
1672
  msgid "API Transaction Key"
1673
  msgstr "API-Transaktionsschlüssel"
1674
 
 
 
 
 
 
 
1675
  msgid "Taxes"
1676
  msgstr "Steuern"
1677
 
@@ -1695,12 +1704,6 @@ msgstr "Steuern nicht berücksichtigen"
1695
  msgid "Add Tax"
1696
  msgstr "Steuern hinzufügen"
1697
 
1698
- msgid "Title"
1699
- msgstr "Name"
1700
-
1701
- msgid "Rate"
1702
- msgstr "Bewerten"
1703
-
1704
  msgid "New tax"
1705
  msgstr "Neue Steuer"
1706
 
@@ -2758,6 +2761,78 @@ msgstr "bis"
2758
  msgid "From"
2759
  msgstr "von"
2760
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2761
  msgid "Important"
2762
  msgstr "Wichtig"
2763
 
@@ -2906,9 +2981,6 @@ msgstr "weniger"
2906
  msgid "Bookly SMS weekly summary"
2907
  msgstr "Bookly SMS wöchentliche Zusammenfassung"
2908
 
2909
- msgid "Customer"
2910
- msgstr "Kunde"
2911
-
2912
  msgid "Internal Notes"
2913
  msgstr "Interne Notizen"
2914
 
@@ -3040,9 +3112,6 @@ msgstr "E-Mail Benachrichtigungen"
3040
  msgid "Customers"
3041
  msgstr "Kunden"
3042
 
3043
- msgid "Payments"
3044
- msgstr "Zahlungsarten"
3045
-
3046
  msgid "Appearance"
3047
  msgstr "Darstellung"
3048
 
@@ -3073,21 +3142,9 @@ msgstr "Vorherige/r"
3073
  msgid "New appointment"
3074
  msgstr "Neuer Termin"
3075
 
3076
- msgid "No."
3077
- msgstr "Nr."
3078
-
3079
  msgid "Created at any time"
3080
  msgstr "Zu jeder Zeit erstellt"
3081
 
3082
- msgid "Appointment Date"
3083
- msgstr "Termin Datum"
3084
-
3085
- msgid "Created"
3086
- msgstr "Erstellt"
3087
-
3088
- msgid "Attachments"
3089
- msgstr "Anhänge"
3090
-
3091
  msgid "Any time"
3092
  msgstr "Jederzeit"
3093
 
@@ -3100,6 +3157,9 @@ msgstr "Kein Ergebnis gefunden"
3100
  msgid "Searching"
3101
  msgstr "Sucht"
3102
 
 
 
 
3103
  msgid "Archived"
3104
  msgstr "Archiviert"
3105
 
@@ -3150,9 +3210,6 @@ msgstr ""
3150
  msgid "Send weekly summary to administrators"
3151
  msgstr "Senden wöchentliche Zusammenfassung für Administratoren"
3152
 
3153
- msgid "Sender ID"
3154
- msgstr "Sender-ID"
3155
-
3156
  msgid "Change"
3157
  msgstr "Ändern"
3158
 
@@ -3253,15 +3310,6 @@ msgstr "Kennwort ändern"
3253
  msgid "Old password"
3254
  msgstr "Altes Passwort"
3255
 
3256
- msgid "Type"
3257
- msgstr "Type"
3258
-
3259
- msgid "Order"
3260
- msgstr "Bestellen"
3261
-
3262
- msgid "Amount"
3263
- msgstr "Höhe"
3264
-
3265
  msgid ""
3266
  "We will only charge your PayPal account when your balance falls below $10."
3267
  msgstr ""
@@ -3273,15 +3321,6 @@ msgstr "Aktivieren Sie Automatische Aufladefunktion"
3273
  msgid "Disable Auto-Recharge"
3274
  msgstr "Deaktivieren Sie Automatische Aufladefunktion"
3275
 
3276
- msgid "Code"
3277
- msgstr "Code"
3278
-
3279
- msgid "Regular price"
3280
- msgstr "Regulärer Preis"
3281
-
3282
- msgid "Price with custom Sender ID"
3283
- msgstr "Preis mit benutzerdefinierten Sender-ID"
3284
-
3285
  msgid ""
3286
  "If you do not see your country in the list please contact us at <a "
3287
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
@@ -3308,12 +3347,6 @@ msgstr "Handynummer des Administrators speichern"
3308
  msgid "Quick search notifications"
3309
  msgstr "Schnelle Suchbenachrichtigung"
3310
 
3311
- msgid "State"
3312
- msgstr "Status"
3313
-
3314
- msgid "Delete..."
3315
- msgstr "Löschen"
3316
-
3317
  #, php-format
3318
  msgid ""
3319
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
@@ -3329,12 +3362,6 @@ msgstr ""
3329
  "Um geplante Benachrichtigungen zu senden, führen Sie bitte den folgenden "
3330
  "Befehl stündlich mit Ihrem cron aus:"
3331
 
3332
- msgid "Text"
3333
- msgstr "Text"
3334
-
3335
- msgid "Cost"
3336
- msgstr "Kosten"
3337
-
3338
  msgid ""
3339
  "Please take into account that not all countries by law allow custom SMS "
3340
  "sender ID. Please check if particular country supports custom sender ID in "
@@ -3362,12 +3389,6 @@ msgstr "Anfordern"
3362
  msgid "Cancel request"
3363
  msgstr "Anfrage abbrechen"
3364
 
3365
- msgid "Requested ID"
3366
- msgstr "Gewünscht ID"
3367
-
3368
- msgid "Status Date"
3369
- msgstr "Datum Status"
3370
-
3371
  msgid "Please accept terms and conditions."
3372
  msgstr "Bitte akzeptieren Sie Nutzungsbedingungen."
3373
 
@@ -3411,9 +3432,6 @@ msgstr "Aktivieren"
3411
  msgid "disable"
3412
  msgstr "Desaktivieren"
3413
 
3414
- msgid "Edit..."
3415
- msgstr "Bearbeiten"
3416
-
3417
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3418
  msgstr ""
3419
  "Automatische Aufladefunktion ist fehlgeschlagen, bitte füllen Sie Ihre "
@@ -3432,18 +3450,22 @@ msgstr ""
3432
  msgid "SMS has been sent successfully."
3433
  msgstr "SMS wurde erfolgreich gesendet."
3434
 
 
 
 
 
 
 
3435
  msgid "Quick search staff"
3436
  msgstr "Schnellsuche Angestellte"
3437
 
 
 
 
 
3438
  msgid "Show archived"
3439
  msgstr "Archiviert anzeigen"
3440
 
3441
- msgid "Add staff..."
3442
- msgstr "Angestellte hinzufügen..."
3443
-
3444
- msgid "User"
3445
- msgstr "Benutzer"
3446
-
3447
  msgid "Image"
3448
  msgstr "Bild"
3449
 
@@ -3771,14 +3793,14 @@ msgstr ""
3771
  "WooCommerce Warenkorb nicht eingerichtet ist. Folgen Sie dem <a href=\"%s\">"
3772
  "Link</a>, um dieses Problem zu beheben."
3773
 
3774
- msgid "Quick search services"
3775
- msgstr "Schnellsuche Dienste"
3776
 
3777
- msgid "Categories..."
3778
- msgstr "Kategorien..."
3779
 
3780
- msgid "Add service..."
3781
- msgstr "Dienst hinzufügen..."
3782
 
3783
  msgid "Update service setting"
3784
  msgstr "Update-Service-Einstellung"
@@ -4049,12 +4071,6 @@ msgstr "Schnellsuche Kunden"
4049
  msgid "New customer"
4050
  msgstr "Neuer Kunde"
4051
 
4052
- msgid "Last appointment"
4053
- msgstr "Letzter Termin"
4054
-
4055
- msgid "Total appointments"
4056
- msgstr "Termine insgesamt"
4057
-
4058
  msgid "Merge with"
4059
  msgstr "Zusammenführen mit"
4060
 
@@ -4497,6 +4513,9 @@ msgstr "Service hinzufügen."
4497
  msgid "Days Off"
4498
  msgstr "Urlaubstage"
4499
 
 
 
 
4500
  msgid "Create staff"
4501
  msgstr "Angestellte erstellen"
4502
 
@@ -4509,6 +4528,10 @@ msgstr "Die Startzeit muss kleiner als das Termin-Ende sein"
4509
  msgid "Error adding the break interval"
4510
  msgstr "Fehler beim Hinzufügen der Pausenzeiten"
4511
 
 
 
 
 
4512
  msgid "Complete payment"
4513
  msgstr "Vollständige Bezahlung"
4514
 
@@ -4681,13 +4704,19 @@ msgid "Advanced"
4681
  msgstr ""
4682
  "Fortgeschritten\n"
4683
 
4684
- msgid "Categories"
4685
  msgstr ""
4686
- "Kategorien\n"
4687
 
4688
  msgid "Add category"
4689
  msgstr "Kategorie hinzufügen"
4690
 
 
 
 
 
 
 
4691
  msgid "Attach ICS file"
4692
  msgstr "ICS-Datei anhängen"
4693
 
@@ -5189,6 +5218,9 @@ msgstr ""
5189
  "Benachrichtigung über Paketlöschung\n"
5190
  "\n"
5191
 
 
 
 
5192
  msgid "Packages"
5193
  msgstr "Pakete"
5194
 
@@ -5213,9 +5245,6 @@ msgstr ""
5213
  msgid "New package"
5214
  msgstr "Neues Paket"
5215
 
5216
- msgid "Creation Date"
5217
- msgstr "Erstellungsdatum"
5218
-
5219
  msgid "Edit package"
5220
  msgstr "Paket bearbeiten"
5221
 
@@ -5307,6 +5336,9 @@ msgstr "Paketliste"
5307
  msgid "A custom block for displaying packages list"
5308
  msgstr "Ein benutzerdefinierter Block zum Anzeigen der Paketliste"
5309
 
 
 
 
5310
  msgid "Expires"
5311
  msgstr "Erlischt"
5312
 
@@ -6184,9 +6216,6 @@ msgstr "Facebook Login-Button anzeigen"
6184
  msgid "Show time zone switcher"
6185
  msgstr "Zeige den Zeitzonen-Wechsler"
6186
 
6187
- msgid "Date of birth"
6188
- msgstr "Geburtsdatum"
6189
-
6190
  msgid "Import"
6191
  msgstr "Import"
6192
 
@@ -6205,6 +6234,9 @@ msgstr ""
6205
  msgid "Select file"
6206
  msgstr "Datei auswählen"
6207
 
 
 
 
6208
  msgid "Analytics"
6209
  msgstr "Analysen"
6210
 
@@ -6670,21 +6702,6 @@ msgstr ""
6670
  msgid "Coupon"
6671
  msgstr "Coupon"
6672
 
6673
- msgid "Coupons"
6674
- msgstr "Gutscheine"
6675
-
6676
- msgid "Add Coupon Series"
6677
- msgstr "Couponserie Hinzufügen"
6678
-
6679
- msgid "Add Coupon"
6680
- msgstr "Gutschein hinzufügen"
6681
-
6682
- msgid "Coupon code"
6683
- msgstr "Coupon Code"
6684
-
6685
- msgid "Show only active"
6686
- msgstr "Nur aktive anzeigen"
6687
-
6688
  msgid "Discount (%)"
6689
  msgstr "Rabatt (%)"
6690
 
@@ -6700,17 +6717,32 @@ msgstr "Nutzungsbeschränkung"
6700
  msgid "Number of times used"
6701
  msgstr "Anzahl der Buchungen"
6702
 
 
 
 
6703
  msgid "Active until"
6704
  msgstr "Aktiv bis"
6705
 
6706
  msgid "Min. appointments"
6707
  msgstr "Min. Anzahl Termine"
6708
 
6709
- msgid "Active from"
6710
- msgstr "Aktiv ab"
 
 
 
 
 
 
6711
 
6712
- msgid "Max appointments"
6713
- msgstr "Max. Termine"
 
 
 
 
 
 
6714
 
6715
  msgid "Export only active coupons"
6716
  msgstr "Nur aktive Coupons exportieren"
@@ -6825,30 +6857,27 @@ msgstr "Dieser Gutscheincode ist ungültig oder wurde bereits verwendet"
6825
  msgid "This coupon code has expired"
6826
  msgstr "Dieser Gutschein ist abgelaufen."
6827
 
6828
- msgid "Customer Groups"
6829
- msgstr "Kundengruppen"
6830
-
6831
- msgid "New group"
6832
- msgstr "Neue Gruppe"
6833
-
6834
- msgid "Group Name"
6835
  msgstr "Gruppenname"
6836
 
6837
- msgid "Number of Users"
6838
  msgstr "Anzahl der Nutzer"
6839
 
6840
  msgid "Description"
6841
  msgstr "Beschreibung"
6842
 
6843
- msgid "Appointment Status"
6844
- msgstr "Terminstatus"
 
 
 
 
 
 
6845
 
6846
  msgid "Customers without group"
6847
  msgstr "Kunden ohne Gruppe"
6848
 
6849
- msgid "Group"
6850
- msgstr "Gruppe"
6851
-
6852
  msgid "New Group"
6853
  msgstr "Neue Gruppe"
6854
 
@@ -6876,9 +6905,6 @@ msgstr "Kundengruppe"
6876
  msgid "No group"
6877
  msgstr "Keine Gruppe"
6878
 
6879
- msgid "Group name"
6880
- msgstr "Gruppenname"
6881
-
6882
  msgid "Total discount"
6883
  msgstr "Gesamter Rabatt"
6884
 
@@ -7053,9 +7079,6 @@ msgstr "Wartelistenplätze anzeigen"
7053
  msgid "waiting list of appointment"
7054
  msgstr "Warteliste für einen Termin"
7055
 
7056
- msgid "Add service"
7057
- msgstr "Dienstleistung hinzufügen"
7058
-
7059
  msgid "Show chain appointments"
7060
  msgstr "Verkettete Termine anzeigen"
7061
 
@@ -7179,6 +7202,9 @@ msgstr "Extra Schritt zeigen"
7179
  msgid "Show extras"
7180
  msgstr "Extras anzeigen"
7181
 
 
 
 
7182
  msgid "Extras price"
7183
  msgstr "Extras Preis"
7184
 
@@ -7202,15 +7228,15 @@ msgstr "Steuer gesamt"
7202
  msgid "Waiting list"
7203
  msgstr "Warteliste"
7204
 
 
 
 
7205
  msgid "Custom statuses"
7206
  msgstr "Benutzerdefinierter Status"
7207
 
7208
  msgid "Add status"
7209
  msgstr "Status hinzufügen"
7210
 
7211
- msgid "Free/Busy"
7212
- msgstr "Frei/Beschäftigt"
7213
-
7214
  msgid "New Status"
7215
  msgstr "Neuer Status "
7216
 
@@ -7260,6 +7286,9 @@ msgstr "Sonderstunden-Update deaktivieren"
7260
  msgid "Please select a location"
7261
  msgstr "Bitte wählen Sie einen Ort aus"
7262
 
 
 
 
7263
  msgid "Locations"
7264
  msgstr "Orte"
7265
 
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-02-10 09:00+0000\n"
12
+ "PO-Revision-Date: 2020-02-10 13:38+0000\n"
13
  "Last-Translator: support@bookly.info\n"
14
  "Language-Team: German\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
1444
  msgid "Duplicate dates are not permitted."
1445
  msgstr "Duplicate dates are not permitted."
1446
 
1447
+ msgid "Date in the past."
1448
+ msgstr "Datum in der Vergangenheit"
1449
+
1450
  msgid "The requested interval is not available"
1451
  msgstr "Der gewünschte Zeitraum ist nicht verfügbar"
1452
 
1675
  msgid "API Transaction Key"
1676
  msgstr "API-Transaktionsschlüssel"
1677
 
1678
+ msgid "Title"
1679
+ msgstr "Name"
1680
+
1681
+ msgid "Rate"
1682
+ msgstr "Bewerten"
1683
+
1684
  msgid "Taxes"
1685
  msgstr "Steuern"
1686
 
1704
  msgid "Add Tax"
1705
  msgstr "Steuern hinzufügen"
1706
 
 
 
 
 
 
 
1707
  msgid "New tax"
1708
  msgstr "Neue Steuer"
1709
 
2761
  msgid "From"
2762
  msgstr "von"
2763
 
2764
+ msgid "No."
2765
+ msgstr "Nr."
2766
+
2767
+ msgid "Appointment date"
2768
+ msgstr "Termin"
2769
+
2770
+ msgid "Customer name"
2771
+ msgstr "Name des Kunden"
2772
+
2773
+ msgid "Customer phone"
2774
+ msgstr "Telefonnummer des Kunden"
2775
+
2776
+ msgid "Customer email"
2777
+ msgstr "E-Mail des Kunden"
2778
+
2779
+ msgid "Created"
2780
+ msgstr "Erstellt"
2781
+
2782
+ msgid "User"
2783
+ msgstr "Benutzer"
2784
+
2785
+ msgid "Last appointment"
2786
+ msgstr "Letzter Termin"
2787
+
2788
+ msgid "Total appointments"
2789
+ msgstr "Termine insgesamt"
2790
+
2791
+ msgid "Payments"
2792
+ msgstr "Zahlungsarten"
2793
+
2794
+ msgid "Type"
2795
+ msgstr "Type"
2796
+
2797
+ msgid "State"
2798
+ msgstr "Status"
2799
+
2800
+ msgid "Customer"
2801
+ msgstr "Kunde"
2802
+
2803
+ msgid "Amount"
2804
+ msgstr "Höhe"
2805
+
2806
+ msgid "Text"
2807
+ msgstr "Text"
2808
+
2809
+ msgid "Sender ID"
2810
+ msgstr "Sender-ID"
2811
+
2812
+ msgid "Cost"
2813
+ msgstr "Kosten"
2814
+
2815
+ msgid "Flag"
2816
+ msgstr "Markieren"
2817
+
2818
+ msgid "Code"
2819
+ msgstr "Code"
2820
+
2821
+ msgid "Regular price"
2822
+ msgstr "Regulärer Preis"
2823
+
2824
+ msgid "Price with custom Sender ID"
2825
+ msgstr "Preis mit benutzerdefinierten Sender-ID"
2826
+
2827
+ msgid "Order"
2828
+ msgstr "Bestellen"
2829
+
2830
+ msgid "Requested ID"
2831
+ msgstr "Gewünscht ID"
2832
+
2833
+ msgid "Status date"
2834
+ msgstr "Statusdatum"
2835
+
2836
  msgid "Important"
2837
  msgstr "Wichtig"
2838
 
2981
  msgid "Bookly SMS weekly summary"
2982
  msgstr "Bookly SMS wöchentliche Zusammenfassung"
2983
 
 
 
 
2984
  msgid "Internal Notes"
2985
  msgstr "Interne Notizen"
2986
 
3112
  msgid "Customers"
3113
  msgstr "Kunden"
3114
 
 
 
 
3115
  msgid "Appearance"
3116
  msgstr "Darstellung"
3117
 
3142
  msgid "New appointment"
3143
  msgstr "Neuer Termin"
3144
 
 
 
 
3145
  msgid "Created at any time"
3146
  msgstr "Zu jeder Zeit erstellt"
3147
 
 
 
 
 
 
 
 
 
 
3148
  msgid "Any time"
3149
  msgstr "Jederzeit"
3150
 
3157
  msgid "Searching"
3158
  msgstr "Sucht"
3159
 
3160
+ msgid "Attachments"
3161
+ msgstr "Anhänge"
3162
+
3163
  msgid "Archived"
3164
  msgstr "Archiviert"
3165
 
3210
  msgid "Send weekly summary to administrators"
3211
  msgstr "Senden wöchentliche Zusammenfassung für Administratoren"
3212
 
 
 
 
3213
  msgid "Change"
3214
  msgstr "Ändern"
3215
 
3310
  msgid "Old password"
3311
  msgstr "Altes Passwort"
3312
 
 
 
 
 
 
 
 
 
 
3313
  msgid ""
3314
  "We will only charge your PayPal account when your balance falls below $10."
3315
  msgstr ""
3321
  msgid "Disable Auto-Recharge"
3322
  msgstr "Deaktivieren Sie Automatische Aufladefunktion"
3323
 
 
 
 
 
 
 
 
 
 
3324
  msgid ""
3325
  "If you do not see your country in the list please contact us at <a "
3326
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3347
  msgid "Quick search notifications"
3348
  msgstr "Schnelle Suchbenachrichtigung"
3349
 
 
 
 
 
 
 
3350
  #, php-format
3351
  msgid ""
3352
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
3362
  "Um geplante Benachrichtigungen zu senden, führen Sie bitte den folgenden "
3363
  "Befehl stündlich mit Ihrem cron aus:"
3364
 
 
 
 
 
 
 
3365
  msgid ""
3366
  "Please take into account that not all countries by law allow custom SMS "
3367
  "sender ID. Please check if particular country supports custom sender ID in "
3389
  msgid "Cancel request"
3390
  msgstr "Anfrage abbrechen"
3391
 
 
 
 
 
 
 
3392
  msgid "Please accept terms and conditions."
3393
  msgstr "Bitte akzeptieren Sie Nutzungsbedingungen."
3394
 
3432
  msgid "disable"
3433
  msgstr "Desaktivieren"
3434
 
 
 
 
3435
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3436
  msgstr ""
3437
  "Automatische Aufladefunktion ist fehlgeschlagen, bitte füllen Sie Ihre "
3450
  msgid "SMS has been sent successfully."
3451
  msgstr "SMS wurde erfolgreich gesendet."
3452
 
3453
+ msgid "Staff members order"
3454
+ msgstr "Reihenfolge der Belegschaftsmitglieder"
3455
+
3456
+ msgid "Add staff"
3457
+ msgstr "Mitarbeiter hinzufügen"
3458
+
3459
  msgid "Quick search staff"
3460
  msgstr "Schnellsuche Angestellte"
3461
 
3462
+ msgid "Categories"
3463
+ msgstr ""
3464
+ "Kategorien\n"
3465
+
3466
  msgid "Show archived"
3467
  msgstr "Archiviert anzeigen"
3468
 
 
 
 
 
 
 
3469
  msgid "Image"
3470
  msgstr "Bild"
3471
 
3793
  "WooCommerce Warenkorb nicht eingerichtet ist. Folgen Sie dem <a href=\"%s\">"
3794
  "Link</a>, um dieses Problem zu beheben."
3795
 
3796
+ msgid "Services order"
3797
+ msgstr "Reihenfolge der Dienstleistungen"
3798
 
3799
+ msgid "Add service"
3800
+ msgstr "Dienstleistung hinzufügen"
3801
 
3802
+ msgid "Quick search services"
3803
+ msgstr "Schnellsuche Dienste"
3804
 
3805
  msgid "Update service setting"
3806
  msgstr "Update-Service-Einstellung"
4071
  msgid "New customer"
4072
  msgstr "Neuer Kunde"
4073
 
 
 
 
 
 
 
4074
  msgid "Merge with"
4075
  msgstr "Zusammenführen mit"
4076
 
4513
  msgid "Days Off"
4514
  msgstr "Urlaubstage"
4515
 
4516
+ msgid "The date has already passed."
4517
+ msgstr "Dieses Datum ist bereits vorüber. "
4518
+
4519
  msgid "Create staff"
4520
  msgstr "Angestellte erstellen"
4521
 
4528
  msgid "Error adding the break interval"
4529
  msgstr "Fehler beim Hinzufügen der Pausenzeiten"
4530
 
4531
+ msgid "Adjust the order of staff members in your booking form"
4532
+ msgstr ""
4533
+ "Passen Sie die Reihenfolge der Mitarbeiter in Ihrem Buchungsformular an"
4534
+
4535
  msgid "Complete payment"
4536
  msgstr "Vollständige Bezahlung"
4537
 
4704
  msgstr ""
4705
  "Fortgeschritten\n"
4706
 
4707
+ msgid "Adjust the order of services in your booking form"
4708
  msgstr ""
4709
+ "Passen Sie die Reihenfolge der Dienstleistungen in Ihrem Buchungsformular an"
4710
 
4711
  msgid "Add category"
4712
  msgstr "Kategorie hinzufügen"
4713
 
4714
+ msgid "Table settings"
4715
+ msgstr "Statusdatum"
4716
+
4717
+ msgid "Column"
4718
+ msgstr "Spalte"
4719
+
4720
  msgid "Attach ICS file"
4721
  msgstr "ICS-Datei anhängen"
4722
 
5218
  "Benachrichtigung über Paketlöschung\n"
5219
  "\n"
5220
 
5221
+ msgid "Creation date"
5222
+ msgstr "Erstelldatum"
5223
+
5224
  msgid "Packages"
5225
  msgstr "Pakete"
5226
 
5245
  msgid "New package"
5246
  msgstr "Neues Paket"
5247
 
 
 
 
5248
  msgid "Edit package"
5249
  msgstr "Paket bearbeiten"
5250
 
5336
  msgid "A custom block for displaying packages list"
5337
  msgstr "Ein benutzerdefinierter Block zum Anzeigen der Paketliste"
5338
 
5339
+ msgid "Creation Date"
5340
+ msgstr "Erstellungsdatum"
5341
+
5342
  msgid "Expires"
5343
  msgstr "Erlischt"
5344
 
6216
  msgid "Show time zone switcher"
6217
  msgstr "Zeige den Zeitzonen-Wechsler"
6218
 
 
 
 
6219
  msgid "Import"
6220
  msgstr "Import"
6221
 
6234
  msgid "Select file"
6235
  msgstr "Datei auswählen"
6236
 
6237
+ msgid "Date of birth"
6238
+ msgstr "Geburtsdatum"
6239
+
6240
  msgid "Analytics"
6241
  msgstr "Analysen"
6242
 
6702
  msgid "Coupon"
6703
  msgstr "Coupon"
6704
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6705
  msgid "Discount (%)"
6706
  msgstr "Rabatt (%)"
6707
 
6717
  msgid "Number of times used"
6718
  msgstr "Anzahl der Buchungen"
6719
 
6720
+ msgid "Active from"
6721
+ msgstr "Aktiv ab"
6722
+
6723
  msgid "Active until"
6724
  msgstr "Aktiv bis"
6725
 
6726
  msgid "Min. appointments"
6727
  msgstr "Min. Anzahl Termine"
6728
 
6729
+ msgid "Max. appointments"
6730
+ msgstr "Termine maximal"
6731
+
6732
+ msgid "Coupons"
6733
+ msgstr "Gutscheine"
6734
+
6735
+ msgid "Add Coupon Series"
6736
+ msgstr "Couponserie Hinzufügen"
6737
 
6738
+ msgid "Add Coupon"
6739
+ msgstr "Gutschein hinzufügen"
6740
+
6741
+ msgid "Coupon code"
6742
+ msgstr "Coupon Code"
6743
+
6744
+ msgid "Show only active"
6745
+ msgstr "Nur aktive anzeigen"
6746
 
6747
  msgid "Export only active coupons"
6748
  msgstr "Nur aktive Coupons exportieren"
6857
  msgid "This coupon code has expired"
6858
  msgstr "Dieser Gutschein ist abgelaufen."
6859
 
6860
+ msgid "Group name"
 
 
 
 
 
 
6861
  msgstr "Gruppenname"
6862
 
6863
+ msgid "Number of users"
6864
  msgstr "Anzahl der Nutzer"
6865
 
6866
  msgid "Description"
6867
  msgstr "Beschreibung"
6868
 
6869
+ msgid "Group"
6870
+ msgstr "Gruppe"
6871
+
6872
+ msgid "Customer Groups"
6873
+ msgstr "Kundengruppen"
6874
+
6875
+ msgid "New group"
6876
+ msgstr "Neue Gruppe"
6877
 
6878
  msgid "Customers without group"
6879
  msgstr "Kunden ohne Gruppe"
6880
 
 
 
 
6881
  msgid "New Group"
6882
  msgstr "Neue Gruppe"
6883
 
6905
  msgid "No group"
6906
  msgstr "Keine Gruppe"
6907
 
 
 
 
6908
  msgid "Total discount"
6909
  msgstr "Gesamter Rabatt"
6910
 
7079
  msgid "waiting list of appointment"
7080
  msgstr "Warteliste für einen Termin"
7081
 
 
 
 
7082
  msgid "Show chain appointments"
7083
  msgstr "Verkettete Termine anzeigen"
7084
 
7202
  msgid "Show extras"
7203
  msgstr "Extras anzeigen"
7204
 
7205
+ msgid "Extras tax"
7206
+ msgstr "Zusätzliche Steuern"
7207
+
7208
  msgid "Extras price"
7209
  msgstr "Extras Preis"
7210
 
7228
  msgid "Waiting list"
7229
  msgstr "Warteliste"
7230
 
7231
+ msgid "Free/Busy"
7232
+ msgstr "Frei/Beschäftigt"
7233
+
7234
  msgid "Custom statuses"
7235
  msgstr "Benutzerdefinierter Status"
7236
 
7237
  msgid "Add status"
7238
  msgstr "Status hinzufügen"
7239
 
 
 
 
7240
  msgid "New Status"
7241
  msgstr "Neuer Status "
7242
 
7286
  msgid "Please select a location"
7287
  msgstr "Bitte wählen Sie einen Ort aus"
7288
 
7289
+ msgid "Staff members"
7290
+ msgstr "Belegschaftsmitglieder"
7291
+
7292
  msgid "Locations"
7293
  msgstr "Orte"
7294
 
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: 2019-12-04 12:02+0000\n"
12
- "PO-Revision-Date: 2019-12-08 20:54+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"
@@ -1431,6 +1431,9 @@ msgstr "¿Estás seguro?"
1431
  msgid "Duplicate dates are not permitted."
1432
  msgstr "No se permiten fechas duplicadas."
1433
 
 
 
 
1434
  msgid "The requested interval is not available"
1435
  msgstr "El intervalo solicitado no está disponible"
1436
 
@@ -1656,6 +1659,12 @@ msgstr "ID de Inicio de Sesión API"
1656
  msgid "API Transaction Key"
1657
  msgstr "Clave de Transacción API"
1658
 
 
 
 
 
 
 
1659
  msgid "Taxes"
1660
  msgstr ""
1661
  "Impuestos\n"
@@ -1680,12 +1689,6 @@ msgstr "Excluir impuestos"
1680
  msgid "Add Tax"
1681
  msgstr "Añadir impuesto"
1682
 
1683
- msgid "Title"
1684
- msgstr "Titulo"
1685
-
1686
- msgid "Rate"
1687
- msgstr "Tarifa"
1688
-
1689
  msgid "New tax"
1690
  msgstr "Nuevo impuesto"
1691
 
@@ -2749,6 +2752,78 @@ msgstr "Para"
2749
  msgid "From"
2750
  msgstr "De"
2751
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2752
  msgid "Important"
2753
  msgstr "Importante"
2754
 
@@ -2888,9 +2963,6 @@ msgstr "menos"
2888
  msgid "Bookly SMS weekly summary"
2889
  msgstr "Bookly SMS resumen semanal"
2890
 
2891
- msgid "Customer"
2892
- msgstr "Cliente"
2893
-
2894
  msgid "Internal Notes"
2895
  msgstr "Notas internas"
2896
 
@@ -3022,9 +3094,6 @@ msgstr "Notificaciones por correo electrónico"
3022
  msgid "Customers"
3023
  msgstr "Clientes"
3024
 
3025
- msgid "Payments"
3026
- msgstr "Pagos"
3027
-
3028
  msgid "Appearance"
3029
  msgstr "Apariencia"
3030
 
@@ -3055,21 +3124,9 @@ msgstr "Anterior"
3055
  msgid "New appointment"
3056
  msgstr "Nueva cita"
3057
 
3058
- msgid "No."
3059
- msgstr "No."
3060
-
3061
  msgid "Created at any time"
3062
  msgstr "Creado en cualquier momento"
3063
 
3064
- msgid "Appointment Date"
3065
- msgstr "Fecha de cita"
3066
-
3067
- msgid "Created"
3068
- msgstr "Creado"
3069
-
3070
- msgid "Attachments"
3071
- msgstr "Archivos adjuntos"
3072
-
3073
  msgid "Any time"
3074
  msgstr "En cualquier momento"
3075
 
@@ -3082,6 +3139,9 @@ msgstr "No hay resultados"
3082
  msgid "Searching"
3083
  msgstr "Buscando"
3084
 
 
 
 
3085
  msgid "Archived"
3086
  msgstr "Archivado"
3087
 
@@ -3131,9 +3191,6 @@ msgstr ""
3131
  msgid "Send weekly summary to administrators"
3132
  msgstr "Enviar resumen semanal para los administradores"
3133
 
3134
- msgid "Sender ID"
3135
- msgstr "ID del remitente"
3136
-
3137
  msgid "Change"
3138
  msgstr "Cambiar"
3139
 
@@ -3233,15 +3290,6 @@ msgstr "Cambiar la contraseña"
3233
  msgid "Old password"
3234
  msgstr "Contraseña anterior"
3235
 
3236
- msgid "Type"
3237
- msgstr "Tipo"
3238
-
3239
- msgid "Order"
3240
- msgstr "Orden"
3241
-
3242
- msgid "Amount"
3243
- msgstr "Cantidad"
3244
-
3245
  msgid ""
3246
  "We will only charge your PayPal account when your balance falls below $10."
3247
  msgstr "Sólo se cargará en su cuenta PayPal cuando su saldo es inferior a $10."
@@ -3252,15 +3300,6 @@ msgstr "Activar Auto-Recarga"
3252
  msgid "Disable Auto-Recharge"
3253
  msgstr "Desactivar Auto-Recarga"
3254
 
3255
- msgid "Code"
3256
- msgstr "Código"
3257
-
3258
- msgid "Regular price"
3259
- msgstr "Precio regular"
3260
-
3261
- msgid "Price with custom Sender ID"
3262
- msgstr "Precio con el ID del remitente personalizado"
3263
-
3264
  msgid ""
3265
  "If you do not see your country in the list please contact us at <a "
3266
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
@@ -3287,12 +3326,6 @@ msgstr "Guardar el teléfono del administrador"
3287
  msgid "Quick search notifications"
3288
  msgstr "Notificaciones de búsqueda rápida"
3289
 
3290
- msgid "State"
3291
- msgstr "Estado"
3292
-
3293
- msgid "Delete..."
3294
- msgstr "Borrar..."
3295
-
3296
  #, php-format
3297
  msgid ""
3298
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
@@ -3308,12 +3341,6 @@ msgstr ""
3308
  "Para enviar notificaciones programadas, ejecute el siguiente comando cada "
3309
  "hora con su cron:"
3310
 
3311
- msgid "Text"
3312
- msgstr "Texto"
3313
-
3314
- msgid "Cost"
3315
- msgstr "Costo"
3316
-
3317
  msgid ""
3318
  "Please take into account that not all countries by law allow custom SMS "
3319
  "sender ID. Please check if particular country supports custom sender ID in "
@@ -3341,12 +3368,6 @@ msgstr "Solicitar"
3341
  msgid "Cancel request"
3342
  msgstr "Cancelar petición"
3343
 
3344
- msgid "Requested ID"
3345
- msgstr "ID solicitado"
3346
-
3347
- msgid "Status Date"
3348
- msgstr "Fecha de estado"
3349
-
3350
  msgid "Please accept terms and conditions."
3351
  msgstr "Por favor, acepte los términos y condiciones."
3352
 
@@ -3390,9 +3411,6 @@ msgstr "habilitar"
3390
  msgid "disable"
3391
  msgstr "inhabilitar"
3392
 
3393
- msgid "Edit..."
3394
- msgstr "Editar..."
3395
-
3396
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3397
  msgstr "Auto-Recarga ha fallado, por favor reponer el equilibrio directamente."
3398
 
@@ -3409,18 +3427,21 @@ msgstr ""
3409
  msgid "SMS has been sent successfully."
3410
  msgstr "SMS ha sido enviado con éxito."
3411
 
 
 
 
 
 
 
3412
  msgid "Quick search staff"
3413
  msgstr "Búsqueda rápida de personal"
3414
 
 
 
 
3415
  msgid "Show archived"
3416
  msgstr "Mostrar archivado"
3417
 
3418
- msgid "Add staff..."
3419
- msgstr "Añadir personal..."
3420
-
3421
- msgid "User"
3422
- msgstr "Usuario"
3423
-
3424
  msgid "Image"
3425
  msgstr "Imagen"
3426
 
@@ -3741,14 +3762,14 @@ msgstr ""
3741
  "El carro de WooCommerce no está configurado. Siga el <a href=\"%s\">enlace "
3742
  "</a> para corregirlo."
3743
 
3744
- msgid "Quick search services"
3745
- msgstr "Búsqueda rápida de servicios"
3746
 
3747
- msgid "Categories..."
3748
- msgstr "Categorías..."
3749
 
3750
- msgid "Add service..."
3751
- msgstr "Añadir servicio..."
3752
 
3753
  msgid "Update service setting"
3754
  msgstr "Actualizar configuración de servicio"
@@ -4018,12 +4039,6 @@ msgstr "Búsqueda rápida de cliente"
4018
  msgid "New customer"
4019
  msgstr "Nuevo cliente"
4020
 
4021
- msgid "Last appointment"
4022
- msgstr "Última cita"
4023
-
4024
- msgid "Total appointments"
4025
- msgstr "Total de citas"
4026
-
4027
  msgid "Merge with"
4028
  msgstr "Combinado con"
4029
 
@@ -4456,6 +4471,9 @@ msgstr "Añadir Servicio"
4456
  msgid "Days Off"
4457
  msgstr "Días libres"
4458
 
 
 
 
4459
  msgid "Create staff"
4460
  msgstr "Crear personal"
4461
 
@@ -4468,6 +4486,10 @@ msgstr "La hora de inicio debe ser menor que la de finalización"
4468
  msgid "Error adding the break interval"
4469
  msgstr "Error añadiendo intervalo de descanso"
4470
 
 
 
 
 
4471
  msgid "Complete payment"
4472
  msgstr "Completa el pago"
4473
 
@@ -4632,12 +4654,18 @@ msgstr "Editar servicio"
4632
  msgid "Advanced"
4633
  msgstr "Avanzado"
4634
 
4635
- msgid "Categories"
4636
- msgstr "Categorías"
4637
 
4638
  msgid "Add category"
4639
  msgstr "Añadir categoría"
4640
 
 
 
 
 
 
 
4641
  msgid "Attach ICS file"
4642
  msgstr "Adjuntar archivo ICS"
4643
 
@@ -5118,6 +5146,9 @@ msgstr "Notificación sobre la creación de un nuevo paquete"
5118
  msgid "Notification about package deletion"
5119
  msgstr "Notificación sobre la eliminación de un paquete"
5120
 
 
 
 
5121
  msgid "Packages"
5122
  msgstr "Paquetes"
5123
 
@@ -5142,9 +5173,6 @@ msgstr ""
5142
  msgid "New package"
5143
  msgstr "Nuevo paquete"
5144
 
5145
- msgid "Creation Date"
5146
- msgstr "Fecha de Creación"
5147
-
5148
  msgid "Edit package"
5149
  msgstr "Editar paquete"
5150
 
@@ -5237,6 +5265,9 @@ msgstr "Lista de paquetes"
5237
  msgid "A custom block for displaying packages list"
5238
  msgstr "Un bloque personalizado para mostrar la lista de paquetes"
5239
 
 
 
 
5240
  msgid "Expires"
5241
  msgstr "Finaliza"
5242
 
@@ -6097,9 +6128,6 @@ msgstr "Mostrar el botón de inicio de sesión de Facebook"
6097
  msgid "Show time zone switcher"
6098
  msgstr "Mostrar cambio de zona horaria"
6099
 
6100
- msgid "Date of birth"
6101
- msgstr "Fecha de nacimiento"
6102
-
6103
  msgid "Import"
6104
  msgstr "Importar"
6105
 
@@ -6118,6 +6146,9 @@ msgstr ""
6118
  msgid "Select file"
6119
  msgstr "Seleccionar fichero"
6120
 
 
 
 
6121
  msgid "Analytics"
6122
  msgstr "Analítica"
6123
 
@@ -6572,21 +6603,6 @@ msgstr ""
6572
  msgid "Coupon"
6573
  msgstr "Cupón"
6574
 
6575
- msgid "Coupons"
6576
- msgstr "Cupones"
6577
-
6578
- msgid "Add Coupon Series"
6579
- msgstr "Agregar Serie de Cupones"
6580
-
6581
- msgid "Add Coupon"
6582
- msgstr "Añadir Cupón"
6583
-
6584
- msgid "Coupon code"
6585
- msgstr "Código promocional"
6586
-
6587
- msgid "Show only active"
6588
- msgstr "Mostrar solo activo"
6589
-
6590
  msgid "Discount (%)"
6591
  msgstr "Descuento (%)"
6592
 
@@ -6602,18 +6618,33 @@ msgstr "Límite de uso"
6602
  msgid "Number of times used"
6603
  msgstr "Número de veces que usa"
6604
 
 
 
 
6605
  msgid "Active until"
6606
  msgstr "Activo hasta"
6607
 
6608
  msgid "Min. appointments"
6609
  msgstr "Citas Min."
6610
 
6611
- msgid "Active from"
6612
- msgstr "Activo desde"
6613
-
6614
- msgid "Max appointments"
6615
  msgstr "Citas máximas"
6616
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6617
  msgid "Export only active coupons"
6618
  msgstr "Exportar solo cupones activos"
6619
 
@@ -6725,30 +6756,27 @@ msgstr "Este código de cupón no es válido o ha sido usado"
6725
  msgid "This coupon code has expired"
6726
  msgstr "Este código de cupón ha expirado"
6727
 
6728
- msgid "Customer Groups"
6729
- msgstr "Grupos de Clientes"
6730
-
6731
- msgid "New group"
6732
- msgstr "Nuevo grupo"
6733
-
6734
- msgid "Group Name"
6735
  msgstr "Nombre del Grupo"
6736
 
6737
- msgid "Number of Users"
6738
- msgstr "Número de Usuarios"
6739
 
6740
  msgid "Description"
6741
  msgstr "Descripción"
6742
 
6743
- msgid "Appointment Status"
6744
- msgstr "Estado de cita"
 
 
 
 
 
 
6745
 
6746
  msgid "Customers without group"
6747
  msgstr "Clientes sin grupo"
6748
 
6749
- msgid "Group"
6750
- msgstr "Grupo"
6751
-
6752
  msgid "New Group"
6753
  msgstr "Nuevo Grupo"
6754
 
@@ -6776,9 +6804,6 @@ msgstr "Grupo de Clientes"
6776
  msgid "No group"
6777
  msgstr "Ningún Grupo"
6778
 
6779
- msgid "Group name"
6780
- msgstr "Nombre del Grupo"
6781
-
6782
  msgid "Total discount"
6783
  msgstr "Descuento Total"
6784
 
@@ -6950,9 +6975,6 @@ msgstr "Mostrar franjas de lista de espera"
6950
  msgid "waiting list of appointment"
6951
  msgstr "lista de espera de la cita"
6952
 
6953
- msgid "Add service"
6954
- msgstr "Añadir servicio"
6955
-
6956
  msgid "Show chain appointments"
6957
  msgstr "Mostrar citas en serie"
6958
 
@@ -7072,6 +7094,9 @@ msgstr "Mostrar el paso Extras"
7072
  msgid "Show extras"
7073
  msgstr "Mostrar extras"
7074
 
 
 
 
7075
  msgid "Extras price"
7076
  msgstr "Extras precio"
7077
 
@@ -7095,15 +7120,15 @@ msgstr "Impuestos totales"
7095
  msgid "Waiting list"
7096
  msgstr "Lista de espera"
7097
 
 
 
 
7098
  msgid "Custom statuses"
7099
  msgstr "Estados personalizados"
7100
 
7101
  msgid "Add status"
7102
  msgstr "Añadir estado"
7103
 
7104
- msgid "Free/Busy"
7105
- msgstr "Libre/Ocupado"
7106
-
7107
  msgid "New Status"
7108
  msgstr "Nuevo Estado"
7109
 
@@ -7152,6 +7177,9 @@ msgstr "Deshabilitar la actualización de horas especiales"
7152
  msgid "Please select a location"
7153
  msgstr "Por favor selecciona una ubicación"
7154
 
 
 
 
7155
  msgid "Locations"
7156
  msgstr "Ubicaciones"
7157
 
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-02-10 08:48+0000\n"
12
+ "PO-Revision-Date: 2020-02-11 13:59+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"
1431
  msgid "Duplicate dates are not permitted."
1432
  msgstr "No se permiten fechas duplicadas."
1433
 
1434
+ msgid "Date in the past."
1435
+ msgstr "Fecha en el pasado."
1436
+
1437
  msgid "The requested interval is not available"
1438
  msgstr "El intervalo solicitado no está disponible"
1439
 
1659
  msgid "API Transaction Key"
1660
  msgstr "Clave de Transacción API"
1661
 
1662
+ msgid "Title"
1663
+ msgstr "Titulo"
1664
+
1665
+ msgid "Rate"
1666
+ msgstr "Tarifa"
1667
+
1668
  msgid "Taxes"
1669
  msgstr ""
1670
  "Impuestos\n"
1689
  msgid "Add Tax"
1690
  msgstr "Añadir impuesto"
1691
 
 
 
 
 
 
 
1692
  msgid "New tax"
1693
  msgstr "Nuevo impuesto"
1694
 
2752
  msgid "From"
2753
  msgstr "De"
2754
 
2755
+ msgid "No."
2756
+ msgstr "No."
2757
+
2758
+ msgid "Appointment date"
2759
+ msgstr "Día de la cita"
2760
+
2761
+ msgid "Customer name"
2762
+ msgstr "Nombre del cliente"
2763
+
2764
+ msgid "Customer phone"
2765
+ msgstr "Teléfono del cliente"
2766
+
2767
+ msgid "Customer email"
2768
+ msgstr "Correo electrónico del cliente"
2769
+
2770
+ msgid "Created"
2771
+ msgstr "Creado"
2772
+
2773
+ msgid "User"
2774
+ msgstr "Usuario"
2775
+
2776
+ msgid "Last appointment"
2777
+ msgstr "Última cita"
2778
+
2779
+ msgid "Total appointments"
2780
+ msgstr "Total de citas"
2781
+
2782
+ msgid "Payments"
2783
+ msgstr "Pagos"
2784
+
2785
+ msgid "Type"
2786
+ msgstr "Tipo"
2787
+
2788
+ msgid "State"
2789
+ msgstr "Estado"
2790
+
2791
+ msgid "Customer"
2792
+ msgstr "Cliente"
2793
+
2794
+ msgid "Amount"
2795
+ msgstr "Cantidad"
2796
+
2797
+ msgid "Text"
2798
+ msgstr "Texto"
2799
+
2800
+ msgid "Sender ID"
2801
+ msgstr "ID del remitente"
2802
+
2803
+ msgid "Cost"
2804
+ msgstr "Costo"
2805
+
2806
+ msgid "Flag"
2807
+ msgstr "Bandera"
2808
+
2809
+ msgid "Code"
2810
+ msgstr "Código"
2811
+
2812
+ msgid "Regular price"
2813
+ msgstr "Precio regular"
2814
+
2815
+ msgid "Price with custom Sender ID"
2816
+ msgstr "Precio con el ID del remitente personalizado"
2817
+
2818
+ msgid "Order"
2819
+ msgstr "Orden"
2820
+
2821
+ msgid "Requested ID"
2822
+ msgstr "ID solicitado"
2823
+
2824
+ msgid "Status date"
2825
+ msgstr "Situación a la fecha"
2826
+
2827
  msgid "Important"
2828
  msgstr "Importante"
2829
 
2963
  msgid "Bookly SMS weekly summary"
2964
  msgstr "Bookly SMS resumen semanal"
2965
 
 
 
 
2966
  msgid "Internal Notes"
2967
  msgstr "Notas internas"
2968
 
3094
  msgid "Customers"
3095
  msgstr "Clientes"
3096
 
 
 
 
3097
  msgid "Appearance"
3098
  msgstr "Apariencia"
3099
 
3124
  msgid "New appointment"
3125
  msgstr "Nueva cita"
3126
 
 
 
 
3127
  msgid "Created at any time"
3128
  msgstr "Creado en cualquier momento"
3129
 
 
 
 
 
 
 
 
 
 
3130
  msgid "Any time"
3131
  msgstr "En cualquier momento"
3132
 
3139
  msgid "Searching"
3140
  msgstr "Buscando"
3141
 
3142
+ msgid "Attachments"
3143
+ msgstr "Archivos adjuntos"
3144
+
3145
  msgid "Archived"
3146
  msgstr "Archivado"
3147
 
3191
  msgid "Send weekly summary to administrators"
3192
  msgstr "Enviar resumen semanal para los administradores"
3193
 
 
 
 
3194
  msgid "Change"
3195
  msgstr "Cambiar"
3196
 
3290
  msgid "Old password"
3291
  msgstr "Contraseña anterior"
3292
 
 
 
 
 
 
 
 
 
 
3293
  msgid ""
3294
  "We will only charge your PayPal account when your balance falls below $10."
3295
  msgstr "Sólo se cargará en su cuenta PayPal cuando su saldo es inferior a $10."
3300
  msgid "Disable Auto-Recharge"
3301
  msgstr "Desactivar Auto-Recarga"
3302
 
 
 
 
 
 
 
 
 
 
3303
  msgid ""
3304
  "If you do not see your country in the list please contact us at <a "
3305
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3326
  msgid "Quick search notifications"
3327
  msgstr "Notificaciones de búsqueda rápida"
3328
 
 
 
 
 
 
 
3329
  #, php-format
3330
  msgid ""
3331
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
3341
  "Para enviar notificaciones programadas, ejecute el siguiente comando cada "
3342
  "hora con su cron:"
3343
 
 
 
 
 
 
 
3344
  msgid ""
3345
  "Please take into account that not all countries by law allow custom SMS "
3346
  "sender ID. Please check if particular country supports custom sender ID in "
3368
  msgid "Cancel request"
3369
  msgstr "Cancelar petición"
3370
 
 
 
 
 
 
 
3371
  msgid "Please accept terms and conditions."
3372
  msgstr "Por favor, acepte los términos y condiciones."
3373
 
3411
  msgid "disable"
3412
  msgstr "inhabilitar"
3413
 
 
 
 
3414
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3415
  msgstr "Auto-Recarga ha fallado, por favor reponer el equilibrio directamente."
3416
 
3427
  msgid "SMS has been sent successfully."
3428
  msgstr "SMS ha sido enviado con éxito."
3429
 
3430
+ msgid "Staff members order"
3431
+ msgstr "Orden de miembros del personal"
3432
+
3433
+ msgid "Add staff"
3434
+ msgstr "Añadir personal"
3435
+
3436
  msgid "Quick search staff"
3437
  msgstr "Búsqueda rápida de personal"
3438
 
3439
+ msgid "Categories"
3440
+ msgstr "Categorías"
3441
+
3442
  msgid "Show archived"
3443
  msgstr "Mostrar archivado"
3444
 
 
 
 
 
 
 
3445
  msgid "Image"
3446
  msgstr "Imagen"
3447
 
3762
  "El carro de WooCommerce no está configurado. Siga el <a href=\"%s\">enlace "
3763
  "</a> para corregirlo."
3764
 
3765
+ msgid "Services order"
3766
+ msgstr "Orden de servicios"
3767
 
3768
+ msgid "Add service"
3769
+ msgstr "Añadir servicio"
3770
 
3771
+ msgid "Quick search services"
3772
+ msgstr "Búsqueda rápida de servicios"
3773
 
3774
  msgid "Update service setting"
3775
  msgstr "Actualizar configuración de servicio"
4039
  msgid "New customer"
4040
  msgstr "Nuevo cliente"
4041
 
 
 
 
 
 
 
4042
  msgid "Merge with"
4043
  msgstr "Combinado con"
4044
 
4471
  msgid "Days Off"
4472
  msgstr "Días libres"
4473
 
4474
+ msgid "The date has already passed."
4475
+ msgstr "La fecha ya ha pasado."
4476
+
4477
  msgid "Create staff"
4478
  msgstr "Crear personal"
4479
 
4486
  msgid "Error adding the break interval"
4487
  msgstr "Error añadiendo intervalo de descanso"
4488
 
4489
+ msgid "Adjust the order of staff members in your booking form"
4490
+ msgstr ""
4491
+ "Ajustar el orden de los miembros del personal en su formulario de reserva"
4492
+
4493
  msgid "Complete payment"
4494
  msgstr "Completa el pago"
4495
 
4654
  msgid "Advanced"
4655
  msgstr "Avanzado"
4656
 
4657
+ msgid "Adjust the order of services in your booking form"
4658
+ msgstr "Ajustar el orden de los servicios en su formulario de reserva"
4659
 
4660
  msgid "Add category"
4661
  msgstr "Añadir categoría"
4662
 
4663
+ msgid "Table settings"
4664
+ msgstr "Ajustes de la tabla"
4665
+
4666
+ msgid "Column"
4667
+ msgstr "Columna"
4668
+
4669
  msgid "Attach ICS file"
4670
  msgstr "Adjuntar archivo ICS"
4671
 
5146
  msgid "Notification about package deletion"
5147
  msgstr "Notificación sobre la eliminación de un paquete"
5148
 
5149
+ msgid "Creation date"
5150
+ msgstr "Fecha de creación"
5151
+
5152
  msgid "Packages"
5153
  msgstr "Paquetes"
5154
 
5173
  msgid "New package"
5174
  msgstr "Nuevo paquete"
5175
 
 
 
 
5176
  msgid "Edit package"
5177
  msgstr "Editar paquete"
5178
 
5265
  msgid "A custom block for displaying packages list"
5266
  msgstr "Un bloque personalizado para mostrar la lista de paquetes"
5267
 
5268
+ msgid "Creation Date"
5269
+ msgstr "Fecha de Creación"
5270
+
5271
  msgid "Expires"
5272
  msgstr "Finaliza"
5273
 
6128
  msgid "Show time zone switcher"
6129
  msgstr "Mostrar cambio de zona horaria"
6130
 
 
 
 
6131
  msgid "Import"
6132
  msgstr "Importar"
6133
 
6146
  msgid "Select file"
6147
  msgstr "Seleccionar fichero"
6148
 
6149
+ msgid "Date of birth"
6150
+ msgstr "Fecha de nacimiento"
6151
+
6152
  msgid "Analytics"
6153
  msgstr "Analítica"
6154
 
6603
  msgid "Coupon"
6604
  msgstr "Cupón"
6605
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6606
  msgid "Discount (%)"
6607
  msgstr "Descuento (%)"
6608
 
6618
  msgid "Number of times used"
6619
  msgstr "Número de veces que usa"
6620
 
6621
+ msgid "Active from"
6622
+ msgstr "Activo desde"
6623
+
6624
  msgid "Active until"
6625
  msgstr "Activo hasta"
6626
 
6627
  msgid "Min. appointments"
6628
  msgstr "Citas Min."
6629
 
6630
+ msgid "Max. appointments"
 
 
 
6631
  msgstr "Citas máximas"
6632
 
6633
+ msgid "Coupons"
6634
+ msgstr "Cupones"
6635
+
6636
+ msgid "Add Coupon Series"
6637
+ msgstr "Agregar Serie de Cupones"
6638
+
6639
+ msgid "Add Coupon"
6640
+ msgstr "Añadir Cupón"
6641
+
6642
+ msgid "Coupon code"
6643
+ msgstr "Código promocional"
6644
+
6645
+ msgid "Show only active"
6646
+ msgstr "Mostrar solo activo"
6647
+
6648
  msgid "Export only active coupons"
6649
  msgstr "Exportar solo cupones activos"
6650
 
6756
  msgid "This coupon code has expired"
6757
  msgstr "Este código de cupón ha expirado"
6758
 
6759
+ msgid "Group name"
 
 
 
 
 
 
6760
  msgstr "Nombre del Grupo"
6761
 
6762
+ msgid "Number of users"
6763
+ msgstr "Número de usuarios"
6764
 
6765
  msgid "Description"
6766
  msgstr "Descripción"
6767
 
6768
+ msgid "Group"
6769
+ msgstr "Grupo"
6770
+
6771
+ msgid "Customer Groups"
6772
+ msgstr "Grupos de Clientes"
6773
+
6774
+ msgid "New group"
6775
+ msgstr "Nuevo grupo"
6776
 
6777
  msgid "Customers without group"
6778
  msgstr "Clientes sin grupo"
6779
 
 
 
 
6780
  msgid "New Group"
6781
  msgstr "Nuevo Grupo"
6782
 
6804
  msgid "No group"
6805
  msgstr "Ningún Grupo"
6806
 
 
 
 
6807
  msgid "Total discount"
6808
  msgstr "Descuento Total"
6809
 
6975
  msgid "waiting list of appointment"
6976
  msgstr "lista de espera de la cita"
6977
 
 
 
 
6978
  msgid "Show chain appointments"
6979
  msgstr "Mostrar citas en serie"
6980
 
7094
  msgid "Show extras"
7095
  msgstr "Mostrar extras"
7096
 
7097
+ msgid "Extras tax"
7098
+ msgstr "Impuesto adicional"
7099
+
7100
  msgid "Extras price"
7101
  msgstr "Extras precio"
7102
 
7120
  msgid "Waiting list"
7121
  msgstr "Lista de espera"
7122
 
7123
+ msgid "Free/Busy"
7124
+ msgstr "Libre/Ocupado"
7125
+
7126
  msgid "Custom statuses"
7127
  msgstr "Estados personalizados"
7128
 
7129
  msgid "Add status"
7130
  msgstr "Añadir estado"
7131
 
 
 
 
7132
  msgid "New Status"
7133
  msgstr "Nuevo Estado"
7134
 
7177
  msgid "Please select a location"
7178
  msgstr "Por favor selecciona una ubicación"
7179
 
7180
+ msgid "Staff members"
7181
+ msgstr "Miembros del personal"
7182
+
7183
  msgid "Locations"
7184
  msgstr "Ubicaciones"
7185
 
languages/bookly-fr_FR.mo CHANGED
Binary file
languages/bookly-fr_FR.po CHANGED
@@ -8,8 +8,8 @@ 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: 2019-12-09 10:46+0000\n"
12
- "PO-Revision-Date: 2019-12-09 12:13+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"
@@ -1419,6 +1419,9 @@ msgstr "Êtes-vous sûr ?"
1419
  msgid "Duplicate dates are not permitted."
1420
  msgstr "Les dates dupliquées ne sont pas permises"
1421
 
 
 
 
1422
  msgid "The requested interval is not available"
1423
  msgstr "L'intervalle demandé n'est pas disponible"
1424
 
@@ -1645,6 +1648,12 @@ msgstr "ID de connexion de l'API"
1645
  msgid "API Transaction Key"
1646
  msgstr "Clé de Transaction de l'API"
1647
 
 
 
 
 
 
 
1648
  msgid "Taxes"
1649
  msgstr "Impôts"
1650
 
@@ -1667,12 +1676,6 @@ msgstr "Hors taxes"
1667
  msgid "Add Tax"
1668
  msgstr "Ajouter taxe"
1669
 
1670
- msgid "Title"
1671
- msgstr "Titre"
1672
-
1673
- msgid "Rate"
1674
- msgstr "Taux"
1675
-
1676
  msgid "New tax"
1677
  msgstr "Nouvelle taxe"
1678
 
@@ -2728,6 +2731,78 @@ msgstr "A"
2728
  msgid "From"
2729
  msgstr "De"
2730
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2731
  msgid "Important"
2732
  msgstr "Important"
2733
 
@@ -2875,9 +2950,6 @@ msgstr "moins"
2875
  msgid "Bookly SMS weekly summary"
2876
  msgstr "Rapport hebdomadaire SMS Bookly"
2877
 
2878
- msgid "Customer"
2879
- msgstr "Client"
2880
-
2881
  msgid "Internal Notes"
2882
  msgstr "Notes internes"
2883
 
@@ -3010,9 +3082,6 @@ msgstr "Notifications e-mail"
3010
  msgid "Customers"
3011
  msgstr "Clients"
3012
 
3013
- msgid "Payments"
3014
- msgstr "Paiements"
3015
-
3016
  msgid "Appearance"
3017
  msgstr "Apparence"
3018
 
@@ -3043,21 +3112,9 @@ msgstr "Précédent"
3043
  msgid "New appointment"
3044
  msgstr "Nouveau rendez-vous"
3045
 
3046
- msgid "No."
3047
- msgstr "Non."
3048
-
3049
  msgid "Created at any time"
3050
  msgstr "Créé pour toutes dates"
3051
 
3052
- msgid "Appointment Date"
3053
- msgstr "Date Rendez-vous"
3054
-
3055
- msgid "Created"
3056
- msgstr "Créé"
3057
-
3058
- msgid "Attachments"
3059
- msgstr "Attachements"
3060
-
3061
  msgid "Any time"
3062
  msgstr "Toutes les dates"
3063
 
@@ -3070,6 +3127,9 @@ msgstr "Aucun résultat trouvé"
3070
  msgid "Searching"
3071
  msgstr "Recherche en cours"
3072
 
 
 
 
3073
  msgid "Archived"
3074
  msgstr "Archivé"
3075
 
@@ -3117,9 +3177,6 @@ msgstr ""
3117
  msgid "Send weekly summary to administrators"
3118
  msgstr "Envoyer rapport hebdomadaire aux administrateurs"
3119
 
3120
- msgid "Sender ID"
3121
- msgstr "ID Émetteur"
3122
-
3123
  msgid "Change"
3124
  msgstr "Change"
3125
 
@@ -3219,15 +3276,6 @@ msgstr "Changer mot de passe"
3219
  msgid "Old password"
3220
  msgstr "Ancien mot de passe"
3221
 
3222
- msgid "Type"
3223
- msgstr "Type"
3224
-
3225
- msgid "Order"
3226
- msgstr "Commande"
3227
-
3228
- msgid "Amount"
3229
- msgstr "Montant"
3230
-
3231
  msgid ""
3232
  "We will only charge your PayPal account when your balance falls below $10."
3233
  msgstr ""
@@ -3239,15 +3287,6 @@ msgstr "Activer Recharge Automatique"
3239
  msgid "Disable Auto-Recharge"
3240
  msgstr "Désactiver Recharger Automatique"
3241
 
3242
- msgid "Code"
3243
- msgstr "Code"
3244
-
3245
- msgid "Regular price"
3246
- msgstr "Prix normal"
3247
-
3248
- msgid "Price with custom Sender ID"
3249
- msgstr "Prix avec ID émetteur personnalisé"
3250
-
3251
  msgid ""
3252
  "If you do not see your country in the list please contact us at <a "
3253
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
@@ -3274,12 +3313,6 @@ msgstr "Enregistrer tél. de l'administrateur"
3274
  msgid "Quick search notifications"
3275
  msgstr "Recherche rapide notifications"
3276
 
3277
- msgid "State"
3278
- msgstr "État"
3279
-
3280
- msgid "Delete..."
3281
- msgstr "Supprimer..."
3282
-
3283
  #, php-format
3284
  msgid ""
3285
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
@@ -3295,12 +3328,6 @@ msgstr ""
3295
  "Pour envoyer les notifications programmées, veuillez utiliser cette commande "
3296
  "avec votre service cron):"
3297
 
3298
- msgid "Text"
3299
- msgstr "Texte"
3300
-
3301
- msgid "Cost"
3302
- msgstr "Cout"
3303
-
3304
  msgid ""
3305
  "Please take into account that not all countries by law allow custom SMS "
3306
  "sender ID. Please check if particular country supports custom sender ID in "
@@ -3328,12 +3355,6 @@ msgstr "Requête"
3328
  msgid "Cancel request"
3329
  msgstr "Annuler requête"
3330
 
3331
- msgid "Requested ID"
3332
- msgstr "ID demandé"
3333
-
3334
- msgid "Status Date"
3335
- msgstr "Date du statut"
3336
-
3337
  msgid "Please accept terms and conditions."
3338
  msgstr "Veuillez accepter les Termes et Conditions."
3339
 
@@ -3377,9 +3398,6 @@ msgstr "activer"
3377
  msgid "disable"
3378
  msgstr "désactiver"
3379
 
3380
- msgid "Edit..."
3381
- msgstr "Modifier..."
3382
-
3383
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3384
  msgstr ""
3385
  "La recharge automatique n'a pas réussi. Veuillez compléter votre crédit "
@@ -3398,18 +3416,21 @@ msgstr ""
3398
  msgid "SMS has been sent successfully."
3399
  msgstr "Le SMS a été envoyé avec succès."
3400
 
 
 
 
 
 
 
3401
  msgid "Quick search staff"
3402
  msgstr "Recherche rapide équipe"
3403
 
 
 
 
3404
  msgid "Show archived"
3405
  msgstr "Afficher archivés"
3406
 
3407
- msgid "Add staff..."
3408
- msgstr "Ajout de l'équipe..."
3409
-
3410
- msgid "User"
3411
- msgstr "Utilisateur"
3412
-
3413
  msgid "Image"
3414
  msgstr "Image"
3415
 
@@ -3733,15 +3754,15 @@ msgstr ""
3733
  "Le panier WooCommerce n'est pas configuré. Suivez ce <a href=\"%s\">lien</a> "
3734
  "pour corriger ce problème."
3735
 
3736
- msgid "Quick search services"
3737
- msgstr "Recherche rapide services"
3738
-
3739
- msgid "Categories..."
3740
- msgstr "Catégories..."
3741
 
3742
- msgid "Add service..."
3743
  msgstr "Ajouter service"
3744
 
 
 
 
3745
  msgid "Update service setting"
3746
  msgstr "Mettre à jour service"
3747
 
@@ -4008,12 +4029,6 @@ msgstr "Recherche rapide client"
4008
  msgid "New customer"
4009
  msgstr "Nouveau client"
4010
 
4011
- msgid "Last appointment"
4012
- msgstr "Dernièr rendez-vous"
4013
-
4014
- msgid "Total appointments"
4015
- msgstr "Total rendez-vous"
4016
-
4017
  msgid "Merge with"
4018
  msgstr "Fusionner avec"
4019
 
@@ -4444,6 +4459,9 @@ msgstr "Ajouter Service"
4444
  msgid "Days Off"
4445
  msgstr "Jours de congé"
4446
 
 
 
 
4447
  msgid "Create staff"
4448
  msgstr "Créer Equipe"
4449
 
@@ -4456,6 +4474,9 @@ msgstr "L'heure de début doit être inférieure à l'heure de fin"
4456
  msgid "Error adding the break interval"
4457
  msgstr "Erreur lors de l'ajout d'une pause"
4458
 
 
 
 
4459
  msgid "Complete payment"
4460
  msgstr "Paiement complet"
4461
 
@@ -4619,12 +4640,18 @@ msgstr "Modifier service"
4619
  msgid "Advanced"
4620
  msgstr "Avancé"
4621
 
4622
- msgid "Categories"
4623
- msgstr "Catégories"
4624
 
4625
  msgid "Add category"
4626
  msgstr "Ajouter catégorie"
4627
 
 
 
 
 
 
 
4628
  msgid "Attach ICS file"
4629
  msgstr "Attacher un fichier ICS"
4630
 
@@ -5101,6 +5128,9 @@ msgstr "Notification pour la création de nouveau package"
5101
  msgid "Notification about package deletion"
5102
  msgstr "Notification de suppression de package"
5103
 
 
 
 
5104
  msgid "Packages"
5105
  msgstr "Packages"
5106
 
@@ -5124,9 +5154,6 @@ msgstr ""
5124
  msgid "New package"
5125
  msgstr "Nouveau Package"
5126
 
5127
- msgid "Creation Date"
5128
- msgstr "Date création"
5129
-
5130
  msgid "Edit package"
5131
  msgstr "Modifier Package"
5132
 
@@ -5219,6 +5246,9 @@ msgstr "Liste des packages"
5219
  msgid "A custom block for displaying packages list"
5220
  msgstr "Bloc personnalisé pour l'affichage de la liste des packages"
5221
 
 
 
 
5222
  msgid "Expires"
5223
  msgstr "Expire"
5224
 
@@ -5538,7 +5568,8 @@ msgstr "Synchroniser les membres d'équipe avec Google Calendar."
5538
 
5539
  #, php-format
5540
  msgid "Please configure Google Calendar <a href=\"%s\">settings</a> first"
5541
- msgstr "Veuillez configurer Google Calendar avant. <a href=\"%s\">Réglages</a>"
 
5542
 
5543
  msgid "Limit working hours per day"
5544
  msgstr "Limite des heures travaillées par jour"
@@ -6053,8 +6084,8 @@ msgid ""
6053
  "Please configure Facebook App integration in <a href=\"%s\">settings</a> "
6054
  "first."
6055
  msgstr ""
6056
- "Veuillez configurer Facebook App integration à <a href=\"%s\">settings</a> "
6057
- "d'abord."
6058
 
6059
  msgid "Ok"
6060
  msgstr "Ok"
@@ -6071,9 +6102,6 @@ msgstr "Montrer bouton login Facebook"
6071
  msgid "Show time zone switcher"
6072
  msgstr "Afficher changement fuseau horaire"
6073
 
6074
- msgid "Date of birth"
6075
- msgstr "Date de naissance"
6076
-
6077
  msgid "Import"
6078
  msgstr "Importer"
6079
 
@@ -6092,6 +6120,9 @@ msgstr ""
6092
  msgid "Select file"
6093
  msgstr "Choisir fichier"
6094
 
 
 
 
6095
  msgid "Analytics"
6096
  msgstr "Analyse"
6097
 
@@ -6544,21 +6575,6 @@ msgstr ""
6544
  msgid "Coupon"
6545
  msgstr "Code promo"
6546
 
6547
- msgid "Coupons"
6548
- msgstr "Codes promo"
6549
-
6550
- msgid "Add Coupon Series"
6551
- msgstr "Ajouter série code promo"
6552
-
6553
- msgid "Add Coupon"
6554
- msgstr "Ajouter Code promo"
6555
-
6556
- msgid "Coupon code"
6557
- msgstr "Code promo"
6558
-
6559
- msgid "Show only active"
6560
- msgstr "Montrer actif seulement"
6561
-
6562
  msgid "Discount (%)"
6563
  msgstr "Réduction (%)"
6564
 
@@ -6574,17 +6590,32 @@ msgstr "Limite d'utilisation"
6574
  msgid "Number of times used"
6575
  msgstr "Nombre utilisations"
6576
 
 
 
 
6577
  msgid "Active until"
6578
  msgstr "Actif seulement"
6579
 
6580
  msgid "Min. appointments"
6581
- msgstr "Min. rendez-vous"
6582
 
6583
- msgid "Active from"
6584
- msgstr "Actif depuis"
 
 
 
 
 
 
6585
 
6586
- msgid "Max appointments"
6587
- msgstr "Nb de rendez-vous max."
 
 
 
 
 
 
6588
 
6589
  msgid "Export only active coupons"
6590
  msgstr "Exporter uniquement les codes promo actifs"
@@ -6696,30 +6727,27 @@ msgstr "Ce code promo n'est pas valide ou a expiré"
6696
  msgid "This coupon code has expired"
6697
  msgstr "Le code promo est expiré."
6698
 
6699
- msgid "Customer Groups"
6700
- msgstr "Groupes de clients"
6701
-
6702
- msgid "New group"
6703
- msgstr "Nouveau groupe"
6704
-
6705
- msgid "Group Name"
6706
  msgstr "Nom du groupe"
6707
 
6708
- msgid "Number of Users"
6709
  msgstr "Nombre d'utilisateurs"
6710
 
6711
  msgid "Description"
6712
  msgstr "Description"
6713
 
6714
- msgid "Appointment Status"
6715
- msgstr "Statut du rendez-vous"
 
 
 
 
 
 
6716
 
6717
  msgid "Customers without group"
6718
  msgstr "Clients dans groupe"
6719
 
6720
- msgid "Group"
6721
- msgstr "Groupe"
6722
-
6723
  msgid "New Group"
6724
  msgstr "Nouveau groupe"
6725
 
@@ -6747,9 +6775,6 @@ msgstr "Groupe de clients"
6747
  msgid "No group"
6748
  msgstr "Aucun groupe"
6749
 
6750
- msgid "Group name"
6751
- msgstr "Nom du groupe"
6752
-
6753
  msgid "Total discount"
6754
  msgstr "Total remise"
6755
 
@@ -6921,9 +6946,6 @@ msgstr "Afficher créneau liste attente"
6921
  msgid "waiting list of appointment"
6922
  msgstr "liste d'attente des rendez-vous"
6923
 
6924
- msgid "Add service"
6925
- msgstr "Ajouter service"
6926
-
6927
  msgid "Show chain appointments"
6928
  msgstr "Afficher rendez-vous liés"
6929
 
@@ -7042,6 +7064,9 @@ msgstr "Montrer étape Extras"
7042
  msgid "Show extras"
7043
  msgstr "Afficher les suppléments"
7044
 
 
 
 
7045
  msgid "Extras price"
7046
  msgstr "Prix suppléments"
7047
 
@@ -7064,15 +7089,15 @@ msgstr "Total taxe"
7064
  msgid "Waiting list"
7065
  msgstr "Liste d'attente"
7066
 
 
 
 
7067
  msgid "Custom statuses"
7068
  msgstr "Statuts personnalisés"
7069
 
7070
  msgid "Add status"
7071
  msgstr "Ajouter statut"
7072
 
7073
- msgid "Free/Busy"
7074
- msgstr "Libre/Occupé"
7075
-
7076
  msgid "New Status"
7077
  msgstr "Nouveau statut"
7078
 
@@ -7121,6 +7146,9 @@ msgstr "Désactiver modification heures spéciales"
7121
  msgid "Please select a location"
7122
  msgstr "Veuillez choisir un site"
7123
 
 
 
 
7124
  msgid "Locations"
7125
  msgstr "Sites"
7126
 
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-02-10 08:54+0000\n"
12
+ "PO-Revision-Date: 2020-02-11 12: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"
1419
  msgid "Duplicate dates are not permitted."
1420
  msgstr "Les dates dupliquées ne sont pas permises"
1421
 
1422
+ msgid "Date in the past."
1423
+ msgstr "Date dans le passé."
1424
+
1425
  msgid "The requested interval is not available"
1426
  msgstr "L'intervalle demandé n'est pas disponible"
1427
 
1648
  msgid "API Transaction Key"
1649
  msgstr "Clé de Transaction de l'API"
1650
 
1651
+ msgid "Title"
1652
+ msgstr "Titre"
1653
+
1654
+ msgid "Rate"
1655
+ msgstr "Taux"
1656
+
1657
  msgid "Taxes"
1658
  msgstr "Impôts"
1659
 
1676
  msgid "Add Tax"
1677
  msgstr "Ajouter taxe"
1678
 
 
 
 
 
 
 
1679
  msgid "New tax"
1680
  msgstr "Nouvelle taxe"
1681
 
2731
  msgid "From"
2732
  msgstr "De"
2733
 
2734
+ msgid "No."
2735
+ msgstr "Non."
2736
+
2737
+ msgid "Appointment date"
2738
+ msgstr "Date rendez-vous"
2739
+
2740
+ msgid "Customer name"
2741
+ msgstr "Nom Client"
2742
+
2743
+ msgid "Customer phone"
2744
+ msgstr "Téléphone Client"
2745
+
2746
+ msgid "Customer email"
2747
+ msgstr "E-mail Client"
2748
+
2749
+ msgid "Created"
2750
+ msgstr "Créé"
2751
+
2752
+ msgid "User"
2753
+ msgstr "Utilisateur"
2754
+
2755
+ msgid "Last appointment"
2756
+ msgstr "Dernièr rendez-vous"
2757
+
2758
+ msgid "Total appointments"
2759
+ msgstr "Total rendez-vous"
2760
+
2761
+ msgid "Payments"
2762
+ msgstr "Paiements"
2763
+
2764
+ msgid "Type"
2765
+ msgstr "Type"
2766
+
2767
+ msgid "State"
2768
+ msgstr "État"
2769
+
2770
+ msgid "Customer"
2771
+ msgstr "Client"
2772
+
2773
+ msgid "Amount"
2774
+ msgstr "Montant"
2775
+
2776
+ msgid "Text"
2777
+ msgstr "Texte"
2778
+
2779
+ msgid "Sender ID"
2780
+ msgstr "ID Émetteur"
2781
+
2782
+ msgid "Cost"
2783
+ msgstr "Cout"
2784
+
2785
+ msgid "Flag"
2786
+ msgstr "Flag"
2787
+
2788
+ msgid "Code"
2789
+ msgstr "Code"
2790
+
2791
+ msgid "Regular price"
2792
+ msgstr "Prix normal"
2793
+
2794
+ msgid "Price with custom Sender ID"
2795
+ msgstr "Prix avec ID émetteur personnalisé"
2796
+
2797
+ msgid "Order"
2798
+ msgstr "Commande"
2799
+
2800
+ msgid "Requested ID"
2801
+ msgstr "ID demandé"
2802
+
2803
+ msgid "Status date"
2804
+ msgstr "Date du statut"
2805
+
2806
  msgid "Important"
2807
  msgstr "Important"
2808
 
2950
  msgid "Bookly SMS weekly summary"
2951
  msgstr "Rapport hebdomadaire SMS Bookly"
2952
 
 
 
 
2953
  msgid "Internal Notes"
2954
  msgstr "Notes internes"
2955
 
3082
  msgid "Customers"
3083
  msgstr "Clients"
3084
 
 
 
 
3085
  msgid "Appearance"
3086
  msgstr "Apparence"
3087
 
3112
  msgid "New appointment"
3113
  msgstr "Nouveau rendez-vous"
3114
 
 
 
 
3115
  msgid "Created at any time"
3116
  msgstr "Créé pour toutes dates"
3117
 
 
 
 
 
 
 
 
 
 
3118
  msgid "Any time"
3119
  msgstr "Toutes les dates"
3120
 
3127
  msgid "Searching"
3128
  msgstr "Recherche en cours"
3129
 
3130
+ msgid "Attachments"
3131
+ msgstr "Attachements"
3132
+
3133
  msgid "Archived"
3134
  msgstr "Archivé"
3135
 
3177
  msgid "Send weekly summary to administrators"
3178
  msgstr "Envoyer rapport hebdomadaire aux administrateurs"
3179
 
 
 
 
3180
  msgid "Change"
3181
  msgstr "Change"
3182
 
3276
  msgid "Old password"
3277
  msgstr "Ancien mot de passe"
3278
 
 
 
 
 
 
 
 
 
 
3279
  msgid ""
3280
  "We will only charge your PayPal account when your balance falls below $10."
3281
  msgstr ""
3287
  msgid "Disable Auto-Recharge"
3288
  msgstr "Désactiver Recharger Automatique"
3289
 
 
 
 
 
 
 
 
 
 
3290
  msgid ""
3291
  "If you do not see your country in the list please contact us at <a "
3292
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3313
  msgid "Quick search notifications"
3314
  msgstr "Recherche rapide notifications"
3315
 
 
 
 
 
 
 
3316
  #, php-format
3317
  msgid ""
3318
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
3328
  "Pour envoyer les notifications programmées, veuillez utiliser cette commande "
3329
  "avec votre service cron):"
3330
 
 
 
 
 
 
 
3331
  msgid ""
3332
  "Please take into account that not all countries by law allow custom SMS "
3333
  "sender ID. Please check if particular country supports custom sender ID in "
3355
  msgid "Cancel request"
3356
  msgstr "Annuler requête"
3357
 
 
 
 
 
 
 
3358
  msgid "Please accept terms and conditions."
3359
  msgstr "Veuillez accepter les Termes et Conditions."
3360
 
3398
  msgid "disable"
3399
  msgstr "désactiver"
3400
 
 
 
 
3401
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3402
  msgstr ""
3403
  "La recharge automatique n'a pas réussi. Veuillez compléter votre crédit "
3416
  msgid "SMS has been sent successfully."
3417
  msgstr "Le SMS a été envoyé avec succès."
3418
 
3419
+ msgid "Staff members order"
3420
+ msgstr "Ordre des membres de l'équipe"
3421
+
3422
+ msgid "Add staff"
3423
+ msgstr "Ajouter Equipe"
3424
+
3425
  msgid "Quick search staff"
3426
  msgstr "Recherche rapide équipe"
3427
 
3428
+ msgid "Categories"
3429
+ msgstr "Catégories"
3430
+
3431
  msgid "Show archived"
3432
  msgstr "Afficher archivés"
3433
 
 
 
 
 
 
 
3434
  msgid "Image"
3435
  msgstr "Image"
3436
 
3754
  "Le panier WooCommerce n'est pas configuré. Suivez ce <a href=\"%s\">lien</a> "
3755
  "pour corriger ce problème."
3756
 
3757
+ msgid "Services order"
3758
+ msgstr "Ordre des services"
 
 
 
3759
 
3760
+ msgid "Add service"
3761
  msgstr "Ajouter service"
3762
 
3763
+ msgid "Quick search services"
3764
+ msgstr "Recherche rapide services"
3765
+
3766
  msgid "Update service setting"
3767
  msgstr "Mettre à jour service"
3768
 
4029
  msgid "New customer"
4030
  msgstr "Nouveau client"
4031
 
 
 
 
 
 
 
4032
  msgid "Merge with"
4033
  msgstr "Fusionner avec"
4034
 
4459
  msgid "Days Off"
4460
  msgstr "Jours de congé"
4461
 
4462
+ msgid "The date has already passed."
4463
+ msgstr "La date est déjà passée."
4464
+
4465
  msgid "Create staff"
4466
  msgstr "Créer Equipe"
4467
 
4474
  msgid "Error adding the break interval"
4475
  msgstr "Erreur lors de l'ajout d'une pause"
4476
 
4477
+ msgid "Adjust the order of staff members in your booking form"
4478
+ msgstr "Définir l'ordre des membres d'équipe dans le formulaire de réservation"
4479
+
4480
  msgid "Complete payment"
4481
  msgstr "Paiement complet"
4482
 
4640
  msgid "Advanced"
4641
  msgstr "Avancé"
4642
 
4643
+ msgid "Adjust the order of services in your booking form"
4644
+ msgstr "Définir l'ordre des services dans le formulaire de réservation"
4645
 
4646
  msgid "Add category"
4647
  msgstr "Ajouter catégorie"
4648
 
4649
+ msgid "Table settings"
4650
+ msgstr "Paramétrage table"
4651
+
4652
+ msgid "Column"
4653
+ msgstr "Colonne"
4654
+
4655
  msgid "Attach ICS file"
4656
  msgstr "Attacher un fichier ICS"
4657
 
5128
  msgid "Notification about package deletion"
5129
  msgstr "Notification de suppression de package"
5130
 
5131
+ msgid "Creation date"
5132
+ msgstr "Date de création"
5133
+
5134
  msgid "Packages"
5135
  msgstr "Packages"
5136
 
5154
  msgid "New package"
5155
  msgstr "Nouveau Package"
5156
 
 
 
 
5157
  msgid "Edit package"
5158
  msgstr "Modifier Package"
5159
 
5246
  msgid "A custom block for displaying packages list"
5247
  msgstr "Bloc personnalisé pour l'affichage de la liste des packages"
5248
 
5249
+ msgid "Creation Date"
5250
+ msgstr "Date création"
5251
+
5252
  msgid "Expires"
5253
  msgstr "Expire"
5254
 
5568
 
5569
  #, php-format
5570
  msgid "Please configure Google Calendar <a href=\"%s\">settings</a> first"
5571
+ msgstr ""
5572
+ "Veuillez d'abord configurer Google Calendar. <a href=\"%s\">Séttings</a>"
5573
 
5574
  msgid "Limit working hours per day"
5575
  msgstr "Limite des heures travaillées par jour"
6084
  "Please configure Facebook App integration in <a href=\"%s\">settings</a> "
6085
  "first."
6086
  msgstr ""
6087
+ "Veuillez d'abord configurer Facebook App integration dans <a href=\"%s\">"
6088
+ "Settings</a>."
6089
 
6090
  msgid "Ok"
6091
  msgstr "Ok"
6102
  msgid "Show time zone switcher"
6103
  msgstr "Afficher changement fuseau horaire"
6104
 
 
 
 
6105
  msgid "Import"
6106
  msgstr "Importer"
6107
 
6120
  msgid "Select file"
6121
  msgstr "Choisir fichier"
6122
 
6123
+ msgid "Date of birth"
6124
+ msgstr "Date de naissance"
6125
+
6126
  msgid "Analytics"
6127
  msgstr "Analyse"
6128
 
6575
  msgid "Coupon"
6576
  msgstr "Code promo"
6577
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6578
  msgid "Discount (%)"
6579
  msgstr "Réduction (%)"
6580
 
6590
  msgid "Number of times used"
6591
  msgstr "Nombre utilisations"
6592
 
6593
+ msgid "Active from"
6594
+ msgstr "Actif depuis"
6595
+
6596
  msgid "Active until"
6597
  msgstr "Actif seulement"
6598
 
6599
  msgid "Min. appointments"
6600
+ msgstr "Rendez-vous min."
6601
 
6602
+ msgid "Max. appointments"
6603
+ msgstr "Rendez-vous max."
6604
+
6605
+ msgid "Coupons"
6606
+ msgstr "Codes promo"
6607
+
6608
+ msgid "Add Coupon Series"
6609
+ msgstr "Ajouter série code promo"
6610
 
6611
+ msgid "Add Coupon"
6612
+ msgstr "Ajouter Code promo"
6613
+
6614
+ msgid "Coupon code"
6615
+ msgstr "Code promo"
6616
+
6617
+ msgid "Show only active"
6618
+ msgstr "Montrer actif seulement"
6619
 
6620
  msgid "Export only active coupons"
6621
  msgstr "Exporter uniquement les codes promo actifs"
6727
  msgid "This coupon code has expired"
6728
  msgstr "Le code promo est expiré."
6729
 
6730
+ msgid "Group name"
 
 
 
 
 
 
6731
  msgstr "Nom du groupe"
6732
 
6733
+ msgid "Number of users"
6734
  msgstr "Nombre d'utilisateurs"
6735
 
6736
  msgid "Description"
6737
  msgstr "Description"
6738
 
6739
+ msgid "Group"
6740
+ msgstr "Groupe"
6741
+
6742
+ msgid "Customer Groups"
6743
+ msgstr "Groupes de clients"
6744
+
6745
+ msgid "New group"
6746
+ msgstr "Nouveau groupe"
6747
 
6748
  msgid "Customers without group"
6749
  msgstr "Clients dans groupe"
6750
 
 
 
 
6751
  msgid "New Group"
6752
  msgstr "Nouveau groupe"
6753
 
6775
  msgid "No group"
6776
  msgstr "Aucun groupe"
6777
 
 
 
 
6778
  msgid "Total discount"
6779
  msgstr "Total remise"
6780
 
6946
  msgid "waiting list of appointment"
6947
  msgstr "liste d'attente des rendez-vous"
6948
 
 
 
 
6949
  msgid "Show chain appointments"
6950
  msgstr "Afficher rendez-vous liés"
6951
 
7064
  msgid "Show extras"
7065
  msgstr "Afficher les suppléments"
7066
 
7067
+ msgid "Extras tax"
7068
+ msgstr "Taxes additionnelles"
7069
+
7070
  msgid "Extras price"
7071
  msgstr "Prix suppléments"
7072
 
7089
  msgid "Waiting list"
7090
  msgstr "Liste d'attente"
7091
 
7092
+ msgid "Free/Busy"
7093
+ msgstr "Libre/Occupé"
7094
+
7095
  msgid "Custom statuses"
7096
  msgstr "Statuts personnalisés"
7097
 
7098
  msgid "Add status"
7099
  msgstr "Ajouter statut"
7100
 
 
 
 
7101
  msgid "New Status"
7102
  msgstr "Nouveau statut"
7103
 
7146
  msgid "Please select a location"
7147
  msgstr "Veuillez choisir un site"
7148
 
7149
+ msgid "Staff members"
7150
+ msgstr "Membres de l'équipe"
7151
+
7152
  msgid "Locations"
7153
  msgstr "Sites"
7154
 
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: 2019-12-10 16:12+0000\n"
12
- "PO-Revision-Date: 2019-12-10 16:25+0000\n"
13
  "Last-Translator: support@bookly.info\n"
14
  "Language-Team: Dutch\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
@@ -1411,6 +1411,9 @@ msgstr "Weet je het zeker?"
1411
  msgid "Duplicate dates are not permitted."
1412
  msgstr "Dubbele data zijn niet toegestaan."
1413
 
 
 
 
1414
  msgid "The requested interval is not available"
1415
  msgstr "De gevraagde interval is niet beschikbaar"
1416
 
@@ -1641,6 +1644,12 @@ msgstr "API Login ID"
1641
  msgid "API Transaction Key"
1642
  msgstr "API Transactie Sleutel"
1643
 
 
 
 
 
 
 
1644
  msgid "Taxes"
1645
  msgstr "Belastingen"
1646
 
@@ -1664,12 +1673,6 @@ msgstr "Exclusief belastingen"
1664
  msgid "Add Tax"
1665
  msgstr "Belasting toevoegen"
1666
 
1667
- msgid "Title"
1668
- msgstr "Titel"
1669
-
1670
- msgid "Rate"
1671
- msgstr "Tarief"
1672
-
1673
  msgid "New tax"
1674
  msgstr "Nieuwe belasting"
1675
 
@@ -2721,6 +2724,78 @@ msgstr "Aan"
2721
  msgid "From"
2722
  msgstr "Van"
2723
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2724
  msgid "Important"
2725
  msgstr "Belangrijk"
2726
 
@@ -2867,9 +2942,6 @@ msgstr "minder"
2867
  msgid "Bookly SMS weekly summary"
2868
  msgstr "Bookly SMS wekelijkse samenvatting"
2869
 
2870
- msgid "Customer"
2871
- msgstr "Klant"
2872
-
2873
  msgid "Internal Notes"
2874
  msgstr "Interne Notities"
2875
 
@@ -3001,9 +3073,6 @@ msgstr "E-mailmeldingen"
3001
  msgid "Customers"
3002
  msgstr "Klanten"
3003
 
3004
- msgid "Payments"
3005
- msgstr "Betalingen"
3006
-
3007
  msgid "Appearance"
3008
  msgstr "Weergave"
3009
 
@@ -3034,21 +3103,9 @@ msgstr "Vorige"
3034
  msgid "New appointment"
3035
  msgstr "Nieuwe Afspraak"
3036
 
3037
- msgid "No."
3038
- msgstr "Nr."
3039
-
3040
  msgid "Created at any time"
3041
  msgstr "Aangemaakt op elk moment"
3042
 
3043
- msgid "Appointment Date"
3044
- msgstr "Datum Afspraak"
3045
-
3046
- msgid "Created"
3047
- msgstr "Aangemaakt"
3048
-
3049
- msgid "Attachments"
3050
- msgstr "Bijlagen"
3051
-
3052
  msgid "Any time"
3053
  msgstr "Elk moment"
3054
 
@@ -3061,6 +3118,9 @@ msgstr "Geen resultaten gevonden"
3061
  msgid "Searching"
3062
  msgstr "Zoeken"
3063
 
 
 
 
3064
  msgid "Archived"
3065
  msgstr "Gearchiveerd"
3066
 
@@ -3106,9 +3166,6 @@ msgstr "Stuur e-mail notificatie aan beheerders bij lage balans"
3106
  msgid "Send weekly summary to administrators"
3107
  msgstr "Stuur wekelijkse samenvatting naar beheerders"
3108
 
3109
- msgid "Sender ID"
3110
- msgstr "Afzender ID"
3111
-
3112
  msgid "Change"
3113
  msgstr "Wijzigen"
3114
 
@@ -3210,15 +3267,6 @@ msgstr "Verander wachtwoord"
3210
  msgid "Old password"
3211
  msgstr "Oude wachtwoord"
3212
 
3213
- msgid "Type"
3214
- msgstr "Soort"
3215
-
3216
- msgid "Order"
3217
- msgstr "Volgorde"
3218
-
3219
- msgid "Amount"
3220
- msgstr "Bedrag"
3221
-
3222
  msgid ""
3223
  "We will only charge your PayPal account when your balance falls below $10."
3224
  msgstr ""
@@ -3231,15 +3279,6 @@ msgstr "Inschakelen Auto-Opladen"
3231
  msgid "Disable Auto-Recharge"
3232
  msgstr "Uitschakelen Auto-Opladen"
3233
 
3234
- msgid "Code"
3235
- msgstr "Code"
3236
-
3237
- msgid "Regular price"
3238
- msgstr "Normale prijs"
3239
-
3240
- msgid "Price with custom Sender ID"
3241
- msgstr "Prijs met aangepaste Afzender ID"
3242
-
3243
  msgid ""
3244
  "If you do not see your country in the list please contact us at <a "
3245
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
@@ -3266,12 +3305,6 @@ msgstr "Bewaar telefoonnummer beheerder"
3266
  msgid "Quick search notifications"
3267
  msgstr "Snelle zoek meldingen"
3268
 
3269
- msgid "State"
3270
- msgstr "Staat"
3271
-
3272
- msgid "Delete..."
3273
- msgstr "Verwijderen..."
3274
-
3275
  #, php-format
3276
  msgid ""
3277
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
@@ -3287,12 +3320,6 @@ msgstr ""
3287
  "Om geplande meldingen te verzenden, voer de volgende opdracht per uur uit "
3288
  "met uw cron:"
3289
 
3290
- msgid "Text"
3291
- msgstr "Tekst"
3292
-
3293
- msgid "Cost"
3294
- msgstr "Kosten"
3295
-
3296
  msgid ""
3297
  "Please take into account that not all countries by law allow custom SMS "
3298
  "sender ID. Please check if particular country supports custom sender ID in "
@@ -3320,12 +3347,6 @@ msgstr "Verzoeken"
3320
  msgid "Cancel request"
3321
  msgstr "Annuleer verzoek"
3322
 
3323
- msgid "Requested ID"
3324
- msgstr "Aangevraagde ID"
3325
-
3326
- msgid "Status Date"
3327
- msgstr "Datum van de Status"
3328
-
3329
  msgid "Please accept terms and conditions."
3330
  msgstr "Accepteer alstublieft onze algemene voorwaarden."
3331
 
@@ -3369,9 +3390,6 @@ msgstr "inschakelen"
3369
  msgid "disable"
3370
  msgstr "uitschakelen"
3371
 
3372
- msgid "Edit..."
3373
- msgstr "Bewerken..."
3374
-
3375
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3376
  msgstr "Auto-Opladen is mislukt, vult uw saldo direct aan."
3377
 
@@ -3388,18 +3406,21 @@ msgstr ""
3388
  msgid "SMS has been sent successfully."
3389
  msgstr "SMS is met succes verstuurd."
3390
 
 
 
 
 
 
 
3391
  msgid "Quick search staff"
3392
  msgstr "Snel doorzoeken personeel"
3393
 
 
 
 
3394
  msgid "Show archived"
3395
  msgstr "Toon gearchiveerde"
3396
 
3397
- msgid "Add staff..."
3398
- msgstr "Voeg personeel toe..."
3399
-
3400
- msgid "User"
3401
- msgstr "Gebruiker"
3402
-
3403
  msgid "Image"
3404
  msgstr "Afbeelding"
3405
 
@@ -3721,14 +3742,14 @@ msgstr ""
3721
  "WooCommerce winkelwagen is niet ingesteld. Volg de <a href=\"%s\">link</a> "
3722
  "om dit probleem te verhelpen."
3723
 
3724
- msgid "Quick search services"
3725
- msgstr "Snel doorzoeken services"
3726
 
3727
- msgid "Categories..."
3728
- msgstr "Categorieën..."
3729
 
3730
- msgid "Add service..."
3731
- msgstr "Voeg service toe..."
3732
 
3733
  msgid "Update service setting"
3734
  msgstr "Dienst instellingen bijwerken"
@@ -3991,12 +4012,6 @@ msgstr "Snel klant zoeken"
3991
  msgid "New customer"
3992
  msgstr "Nieuwe klant"
3993
 
3994
- msgid "Last appointment"
3995
- msgstr "Laatste afspraak"
3996
-
3997
- msgid "Total appointments"
3998
- msgstr "Totaal aantal afspraken"
3999
-
4000
  msgid "Merge with"
4001
  msgstr "Samenvoegen met"
4002
 
@@ -4429,6 +4444,9 @@ msgstr "Dienst Toevoegen"
4429
  msgid "Days Off"
4430
  msgstr "Vrije Dagen"
4431
 
 
 
 
4432
  msgid "Create staff"
4433
  msgstr "Personeel aanmaken"
4434
 
@@ -4441,6 +4459,9 @@ msgstr "De begintijd moet eerder zijn dan de eindtijd"
4441
  msgid "Error adding the break interval"
4442
  msgstr "Fout bij toevoegen pauze-interval"
4443
 
 
 
 
4444
  msgid "Complete payment"
4445
  msgstr "Volledige betaling"
4446
 
@@ -4602,12 +4623,18 @@ msgstr "Bewerk service"
4602
  msgid "Advanced"
4603
  msgstr "Geavanceerd"
4604
 
4605
- msgid "Categories"
4606
- msgstr "Categorieën"
4607
 
4608
  msgid "Add category"
4609
  msgstr "Voeg categorie toe"
4610
 
 
 
 
 
 
 
4611
  msgid "Attach ICS file"
4612
  msgstr "ICS bestand bijvoegen"
4613
 
@@ -5086,6 +5113,9 @@ msgstr "Melding over nieuw pakket aanmaak"
5086
  msgid "Notification about package deletion"
5087
  msgstr "Melding over pakket verwijderen"
5088
 
 
 
 
5089
  msgid "Packages"
5090
  msgstr "Pakketten"
5091
 
@@ -5110,9 +5140,6 @@ msgstr ""
5110
  msgid "New package"
5111
  msgstr "Nieuw pakket"
5112
 
5113
- msgid "Creation Date"
5114
- msgstr "Aanmaakdatum"
5115
-
5116
  msgid "Edit package"
5117
  msgstr "Bewerk pakket"
5118
 
@@ -5205,6 +5232,9 @@ msgstr "Pakketten lijst"
5205
  msgid "A custom block for displaying packages list"
5206
  msgstr "Een aangepast blok voor het weergeven van pakket lijst"
5207
 
 
 
 
5208
  msgid "Expires"
5209
  msgstr "Verloopt"
5210
 
@@ -6057,9 +6087,6 @@ msgstr "Toon Facebook inlog knop"
6057
  msgid "Show time zone switcher"
6058
  msgstr "Toon tijdszone switcher"
6059
 
6060
- msgid "Date of birth"
6061
- msgstr "Geboortedatum"
6062
-
6063
  msgid "Import"
6064
  msgstr "Importeren"
6065
 
@@ -6078,6 +6105,9 @@ msgstr ""
6078
  msgid "Select file"
6079
  msgstr "Selecteer bestand"
6080
 
 
 
 
6081
  msgid "Analytics"
6082
  msgstr "Analytics"
6083
 
@@ -6528,21 +6558,6 @@ msgstr ""
6528
  msgid "Coupon"
6529
  msgstr "Kortingsbon"
6530
 
6531
- msgid "Coupons"
6532
- msgstr "Kortingsbonnen"
6533
-
6534
- msgid "Add Coupon Series"
6535
- msgstr "Voeg Kortingsbon Serie toe"
6536
-
6537
- msgid "Add Coupon"
6538
- msgstr "Kortingsbon toevoegen"
6539
-
6540
- msgid "Coupon code"
6541
- msgstr "Kortingscode"
6542
-
6543
- msgid "Show only active"
6544
- msgstr "Toon alleen actieve"
6545
-
6546
  msgid "Discount (%)"
6547
  msgstr "Korting (%)"
6548
 
@@ -6558,17 +6573,32 @@ msgstr "Gebruikslimiet"
6558
  msgid "Number of times used"
6559
  msgstr "Aantal keer gebruikt"
6560
 
 
 
 
6561
  msgid "Active until"
6562
  msgstr "Actief tot"
6563
 
6564
  msgid "Min. appointments"
6565
  msgstr "Min. afspraken"
6566
 
6567
- msgid "Active from"
6568
- msgstr "Actief vanaf"
 
 
 
6569
 
6570
- msgid "Max appointments"
6571
- msgstr "Max afspraken"
 
 
 
 
 
 
 
 
 
6572
 
6573
  msgid "Export only active coupons"
6574
  msgstr "Exporteer alleen actieve kortingsbonnen"
@@ -6682,30 +6712,27 @@ msgstr "Deze kortingscode is ongeldig of is al gebruikt"
6682
  msgid "This coupon code has expired"
6683
  msgstr "Deze kortingsbon code is verlopen"
6684
 
6685
- msgid "Customer Groups"
6686
- msgstr "Klant Groepen"
6687
-
6688
- msgid "New group"
6689
- msgstr "Nieuwe groep"
6690
-
6691
- msgid "Group Name"
6692
  msgstr "Groepsnaam"
6693
 
6694
- msgid "Number of Users"
6695
- msgstr "Aantal Gebruikers"
6696
 
6697
  msgid "Description"
6698
  msgstr "Beschrijving"
6699
 
6700
- msgid "Appointment Status"
6701
- msgstr "Afspraak Status"
 
 
 
 
 
 
6702
 
6703
  msgid "Customers without group"
6704
  msgstr "Klanten zonder groep"
6705
 
6706
- msgid "Group"
6707
- msgstr "Groep"
6708
-
6709
  msgid "New Group"
6710
  msgstr "Nieuwe Groep"
6711
 
@@ -6733,9 +6760,6 @@ msgstr "Klantengroep"
6733
  msgid "No group"
6734
  msgstr "Geen groep"
6735
 
6736
- msgid "Group name"
6737
- msgstr "Groepsnaam"
6738
-
6739
  msgid "Total discount"
6740
  msgstr "Totale korting"
6741
 
@@ -6903,9 +6927,6 @@ msgstr "Toon wachtlijst sloten"
6903
  msgid "waiting list of appointment"
6904
  msgstr "wachtlijst van afspraken"
6905
 
6906
- msgid "Add service"
6907
- msgstr "Voeg dienst toe"
6908
-
6909
  msgid "Show chain appointments"
6910
  msgstr "Toon keten afspraken"
6911
 
@@ -7020,6 +7041,9 @@ msgstr "Toon Extra's stap"
7020
  msgid "Show extras"
7021
  msgstr "Toon extra's"
7022
 
 
 
 
7023
  msgid "Extras price"
7024
  msgstr "Extra's prijs"
7025
 
@@ -7042,15 +7066,15 @@ msgstr "Totale belasting"
7042
  msgid "Waiting list"
7043
  msgstr "Wachtlijst"
7044
 
 
 
 
7045
  msgid "Custom statuses"
7046
  msgstr "Aangepaste statussen"
7047
 
7048
  msgid "Add status"
7049
  msgstr "Voeg status toe"
7050
 
7051
- msgid "Free/Busy"
7052
- msgstr "Vrij/Bezet"
7053
-
7054
  msgid "New Status"
7055
  msgstr "Nieuwe Status"
7056
 
@@ -7099,6 +7123,9 @@ msgstr "Schakel speciale uren update uit"
7099
  msgid "Please select a location"
7100
  msgstr "Gelieve locatie te selecteren"
7101
 
 
 
 
7102
  msgid "Locations"
7103
  msgstr "Locaties"
7104
 
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-02-10 14:48+0000\n"
12
+ "PO-Revision-Date: 2020-02-10 15:05+0000\n"
13
  "Last-Translator: support@bookly.info\n"
14
  "Language-Team: Dutch\n"
15
  "X-Loco-Version: 2.3.1; wp-5.3"
1411
  msgid "Duplicate dates are not permitted."
1412
  msgstr "Dubbele data zijn niet toegestaan."
1413
 
1414
+ msgid "Date in the past."
1415
+ msgstr "Datum in het verleden."
1416
+
1417
  msgid "The requested interval is not available"
1418
  msgstr "De gevraagde interval is niet beschikbaar"
1419
 
1644
  msgid "API Transaction Key"
1645
  msgstr "API Transactie Sleutel"
1646
 
1647
+ msgid "Title"
1648
+ msgstr "Titel"
1649
+
1650
+ msgid "Rate"
1651
+ msgstr "Tarief"
1652
+
1653
  msgid "Taxes"
1654
  msgstr "Belastingen"
1655
 
1673
  msgid "Add Tax"
1674
  msgstr "Belasting toevoegen"
1675
 
 
 
 
 
 
 
1676
  msgid "New tax"
1677
  msgstr "Nieuwe belasting"
1678
 
2724
  msgid "From"
2725
  msgstr "Van"
2726
 
2727
+ msgid "No."
2728
+ msgstr "Nr."
2729
+
2730
+ msgid "Appointment date"
2731
+ msgstr "Afspraakdatum"
2732
+
2733
+ msgid "Customer name"
2734
+ msgstr "Naam klant"
2735
+
2736
+ msgid "Customer phone"
2737
+ msgstr "Telefoonnummer klant"
2738
+
2739
+ msgid "Customer email"
2740
+ msgstr "E-mailadres klant"
2741
+
2742
+ msgid "Created"
2743
+ msgstr "Aangemaakt"
2744
+
2745
+ msgid "User"
2746
+ msgstr "Gebruiker"
2747
+
2748
+ msgid "Last appointment"
2749
+ msgstr "Laatste afspraak"
2750
+
2751
+ msgid "Total appointments"
2752
+ msgstr "Totaal aantal afspraken"
2753
+
2754
+ msgid "Payments"
2755
+ msgstr "Betalingen"
2756
+
2757
+ msgid "Type"
2758
+ msgstr "Soort"
2759
+
2760
+ msgid "State"
2761
+ msgstr "Staat"
2762
+
2763
+ msgid "Customer"
2764
+ msgstr "Klant"
2765
+
2766
+ msgid "Amount"
2767
+ msgstr "Bedrag"
2768
+
2769
+ msgid "Text"
2770
+ msgstr "Tekst"
2771
+
2772
+ msgid "Sender ID"
2773
+ msgstr "Afzender ID"
2774
+
2775
+ msgid "Cost"
2776
+ msgstr "Kosten"
2777
+
2778
+ msgid "Flag"
2779
+ msgstr "Vlag"
2780
+
2781
+ msgid "Code"
2782
+ msgstr "Code"
2783
+
2784
+ msgid "Regular price"
2785
+ msgstr "Normale prijs"
2786
+
2787
+ msgid "Price with custom Sender ID"
2788
+ msgstr "Prijs met aangepaste Afzender ID"
2789
+
2790
+ msgid "Order"
2791
+ msgstr "Volgorde"
2792
+
2793
+ msgid "Requested ID"
2794
+ msgstr "Aangevraagde ID"
2795
+
2796
+ msgid "Status date"
2797
+ msgstr "Datum status"
2798
+
2799
  msgid "Important"
2800
  msgstr "Belangrijk"
2801
 
2942
  msgid "Bookly SMS weekly summary"
2943
  msgstr "Bookly SMS wekelijkse samenvatting"
2944
 
 
 
 
2945
  msgid "Internal Notes"
2946
  msgstr "Interne Notities"
2947
 
3073
  msgid "Customers"
3074
  msgstr "Klanten"
3075
 
 
 
 
3076
  msgid "Appearance"
3077
  msgstr "Weergave"
3078
 
3103
  msgid "New appointment"
3104
  msgstr "Nieuwe Afspraak"
3105
 
 
 
 
3106
  msgid "Created at any time"
3107
  msgstr "Aangemaakt op elk moment"
3108
 
 
 
 
 
 
 
 
 
 
3109
  msgid "Any time"
3110
  msgstr "Elk moment"
3111
 
3118
  msgid "Searching"
3119
  msgstr "Zoeken"
3120
 
3121
+ msgid "Attachments"
3122
+ msgstr "Bijlagen"
3123
+
3124
  msgid "Archived"
3125
  msgstr "Gearchiveerd"
3126
 
3166
  msgid "Send weekly summary to administrators"
3167
  msgstr "Stuur wekelijkse samenvatting naar beheerders"
3168
 
 
 
 
3169
  msgid "Change"
3170
  msgstr "Wijzigen"
3171
 
3267
  msgid "Old password"
3268
  msgstr "Oude wachtwoord"
3269
 
 
 
 
 
 
 
 
 
 
3270
  msgid ""
3271
  "We will only charge your PayPal account when your balance falls below $10."
3272
  msgstr ""
3279
  msgid "Disable Auto-Recharge"
3280
  msgstr "Uitschakelen Auto-Opladen"
3281
 
 
 
 
 
 
 
 
 
 
3282
  msgid ""
3283
  "If you do not see your country in the list please contact us at <a "
3284
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3305
  msgid "Quick search notifications"
3306
  msgstr "Snelle zoek meldingen"
3307
 
 
 
 
 
 
 
3308
  #, php-format
3309
  msgid ""
3310
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
3320
  "Om geplande meldingen te verzenden, voer de volgende opdracht per uur uit "
3321
  "met uw cron:"
3322
 
 
 
 
 
 
 
3323
  msgid ""
3324
  "Please take into account that not all countries by law allow custom SMS "
3325
  "sender ID. Please check if particular country supports custom sender ID in "
3347
  msgid "Cancel request"
3348
  msgstr "Annuleer verzoek"
3349
 
 
 
 
 
 
 
3350
  msgid "Please accept terms and conditions."
3351
  msgstr "Accepteer alstublieft onze algemene voorwaarden."
3352
 
3390
  msgid "disable"
3391
  msgstr "uitschakelen"
3392
 
 
 
 
3393
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3394
  msgstr "Auto-Opladen is mislukt, vult uw saldo direct aan."
3395
 
3406
  msgid "SMS has been sent successfully."
3407
  msgstr "SMS is met succes verstuurd."
3408
 
3409
+ msgid "Staff members order"
3410
+ msgstr "Volgorde medewerkers"
3411
+
3412
+ msgid "Add staff"
3413
+ msgstr "Voeg medewerker toe"
3414
+
3415
  msgid "Quick search staff"
3416
  msgstr "Snel doorzoeken personeel"
3417
 
3418
+ msgid "Categories"
3419
+ msgstr "Categorieën"
3420
+
3421
  msgid "Show archived"
3422
  msgstr "Toon gearchiveerde"
3423
 
 
 
 
 
 
 
3424
  msgid "Image"
3425
  msgstr "Afbeelding"
3426
 
3742
  "WooCommerce winkelwagen is niet ingesteld. Volg de <a href=\"%s\">link</a> "
3743
  "om dit probleem te verhelpen."
3744
 
3745
+ msgid "Services order"
3746
+ msgstr "Bestelling diensten"
3747
 
3748
+ msgid "Add service"
3749
+ msgstr "Voeg dienst toe"
3750
 
3751
+ msgid "Quick search services"
3752
+ msgstr "Snel doorzoeken services"
3753
 
3754
  msgid "Update service setting"
3755
  msgstr "Dienst instellingen bijwerken"
4012
  msgid "New customer"
4013
  msgstr "Nieuwe klant"
4014
 
 
 
 
 
 
 
4015
  msgid "Merge with"
4016
  msgstr "Samenvoegen met"
4017
 
4444
  msgid "Days Off"
4445
  msgstr "Vrije Dagen"
4446
 
4447
+ msgid "The date has already passed."
4448
+ msgstr "De datum is reeds voorbij."
4449
+
4450
  msgid "Create staff"
4451
  msgstr "Personeel aanmaken"
4452
 
4459
  msgid "Error adding the break interval"
4460
  msgstr "Fout bij toevoegen pauze-interval"
4461
 
4462
+ msgid "Adjust the order of staff members in your booking form"
4463
+ msgstr "Pas de volgorde van medewerkers in uw boekingsformulier aan"
4464
+
4465
  msgid "Complete payment"
4466
  msgstr "Volledige betaling"
4467
 
4623
  msgid "Advanced"
4624
  msgstr "Geavanceerd"
4625
 
4626
+ msgid "Adjust the order of services in your booking form"
4627
+ msgstr "Pas de volgorde van diensten in uw boekingsformulier aan"
4628
 
4629
  msgid "Add category"
4630
  msgstr "Voeg categorie toe"
4631
 
4632
+ msgid "Table settings"
4633
+ msgstr "Tabel instellingen"
4634
+
4635
+ msgid "Column"
4636
+ msgstr "Kolom"
4637
+
4638
  msgid "Attach ICS file"
4639
  msgstr "ICS bestand bijvoegen"
4640
 
5113
  msgid "Notification about package deletion"
5114
  msgstr "Melding over pakket verwijderen"
5115
 
5116
+ msgid "Creation date"
5117
+ msgstr "Aanmaakdatum"
5118
+
5119
  msgid "Packages"
5120
  msgstr "Pakketten"
5121
 
5140
  msgid "New package"
5141
  msgstr "Nieuw pakket"
5142
 
 
 
 
5143
  msgid "Edit package"
5144
  msgstr "Bewerk pakket"
5145
 
5232
  msgid "A custom block for displaying packages list"
5233
  msgstr "Een aangepast blok voor het weergeven van pakket lijst"
5234
 
5235
+ msgid "Creation Date"
5236
+ msgstr "Aanmaakdatum"
5237
+
5238
  msgid "Expires"
5239
  msgstr "Verloopt"
5240
 
6087
  msgid "Show time zone switcher"
6088
  msgstr "Toon tijdszone switcher"
6089
 
 
 
 
6090
  msgid "Import"
6091
  msgstr "Importeren"
6092
 
6105
  msgid "Select file"
6106
  msgstr "Selecteer bestand"
6107
 
6108
+ msgid "Date of birth"
6109
+ msgstr "Geboortedatum"
6110
+
6111
  msgid "Analytics"
6112
  msgstr "Analytics"
6113
 
6558
  msgid "Coupon"
6559
  msgstr "Kortingsbon"
6560
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6561
  msgid "Discount (%)"
6562
  msgstr "Korting (%)"
6563
 
6573
  msgid "Number of times used"
6574
  msgstr "Aantal keer gebruikt"
6575
 
6576
+ msgid "Active from"
6577
+ msgstr "Actief vanaf"
6578
+
6579
  msgid "Active until"
6580
  msgstr "Actief tot"
6581
 
6582
  msgid "Min. appointments"
6583
  msgstr "Min. afspraken"
6584
 
6585
+ msgid "Max. appointments"
6586
+ msgstr "Max. aantal afspraken"
6587
+
6588
+ msgid "Coupons"
6589
+ msgstr "Kortingsbonnen"
6590
 
6591
+ msgid "Add Coupon Series"
6592
+ msgstr "Voeg Kortingsbon Serie toe"
6593
+
6594
+ msgid "Add Coupon"
6595
+ msgstr "Kortingsbon toevoegen"
6596
+
6597
+ msgid "Coupon code"
6598
+ msgstr "Kortingscode"
6599
+
6600
+ msgid "Show only active"
6601
+ msgstr "Toon alleen actieve"
6602
 
6603
  msgid "Export only active coupons"
6604
  msgstr "Exporteer alleen actieve kortingsbonnen"
6712
  msgid "This coupon code has expired"
6713
  msgstr "Deze kortingsbon code is verlopen"
6714
 
6715
+ msgid "Group name"
 
 
 
 
 
 
6716
  msgstr "Groepsnaam"
6717
 
6718
+ msgid "Number of users"
6719
+ msgstr "Aantal gebruikers"
6720
 
6721
  msgid "Description"
6722
  msgstr "Beschrijving"
6723
 
6724
+ msgid "Group"
6725
+ msgstr "Groep"
6726
+
6727
+ msgid "Customer Groups"
6728
+ msgstr "Klant Groepen"
6729
+
6730
+ msgid "New group"
6731
+ msgstr "Nieuwe groep"
6732
 
6733
  msgid "Customers without group"
6734
  msgstr "Klanten zonder groep"
6735
 
 
 
 
6736
  msgid "New Group"
6737
  msgstr "Nieuwe Groep"
6738
 
6760
  msgid "No group"
6761
  msgstr "Geen groep"
6762
 
 
 
 
6763
  msgid "Total discount"
6764
  msgstr "Totale korting"
6765
 
6927
  msgid "waiting list of appointment"
6928
  msgstr "wachtlijst van afspraken"
6929
 
 
 
 
6930
  msgid "Show chain appointments"
6931
  msgstr "Toon keten afspraken"
6932
 
7041
  msgid "Show extras"
7042
  msgstr "Toon extra's"
7043
 
7044
+ msgid "Extras tax"
7045
+ msgstr "Extra belasting"
7046
+
7047
  msgid "Extras price"
7048
  msgstr "Extra's prijs"
7049
 
7066
  msgid "Waiting list"
7067
  msgstr "Wachtlijst"
7068
 
7069
+ msgid "Free/Busy"
7070
+ msgstr "Vrij/Bezet"
7071
+
7072
  msgid "Custom statuses"
7073
  msgstr "Aangepaste statussen"
7074
 
7075
  msgid "Add status"
7076
  msgstr "Voeg status toe"
7077
 
 
 
 
7078
  msgid "New Status"
7079
  msgstr "Nieuwe Status"
7080
 
7123
  msgid "Please select a location"
7124
  msgstr "Gelieve locatie te selecteren"
7125
 
7126
+ msgid "Staff members"
7127
+ msgstr "Medewerkers"
7128
+
7129
  msgid "Locations"
7130
  msgstr "Locaties"
7131
 
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: 2019-12-10 16:27+0000\n"
12
- "PO-Revision-Date: 2019-12-10 21:25+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"
@@ -1415,6 +1415,9 @@ msgstr "Tem a certeza?"
1415
  msgid "Duplicate dates are not permitted."
1416
  msgstr "Datas duplicadas não são permitidas."
1417
 
 
 
 
1418
  msgid "The requested interval is not available"
1419
  msgstr "O intervalo solicitado não está disponível"
1420
 
@@ -1640,6 +1643,12 @@ msgstr "ID de Login do API"
1640
  msgid "API Transaction Key"
1641
  msgstr "Chave de transação do API"
1642
 
 
 
 
 
 
 
1643
  msgid "Taxes"
1644
  msgstr "Tributações"
1645
 
@@ -1663,12 +1672,6 @@ msgstr "Excluir tributações"
1663
  msgid "Add Tax"
1664
  msgstr "Adicionar tributação"
1665
 
1666
- msgid "Title"
1667
- msgstr "Título"
1668
-
1669
- msgid "Rate"
1670
- msgstr "Taxa"
1671
-
1672
  msgid "New tax"
1673
  msgstr "Nova tributação"
1674
 
@@ -2729,6 +2732,78 @@ msgstr "Até"
2729
  msgid "From"
2730
  msgstr "De"
2731
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2732
  msgid "Important"
2733
  msgstr "Importante"
2734
 
@@ -2873,9 +2948,6 @@ msgstr "menos"
2873
  msgid "Bookly SMS weekly summary"
2874
  msgstr "Resumo semanal do Bookly SMS "
2875
 
2876
- msgid "Customer"
2877
- msgstr "Cliente"
2878
-
2879
  msgid "Internal Notes"
2880
  msgstr "Observações internas"
2881
 
@@ -3008,9 +3080,6 @@ msgstr "Notificações de e-mail"
3008
  msgid "Customers"
3009
  msgstr "Clientes"
3010
 
3011
- msgid "Payments"
3012
- msgstr "Pagamentos"
3013
-
3014
  msgid "Appearance"
3015
  msgstr "Aparência"
3016
 
@@ -3041,21 +3110,9 @@ msgstr "Anterior"
3041
  msgid "New appointment"
3042
  msgstr "Novo compromisso"
3043
 
3044
- msgid "No."
3045
- msgstr "Núm."
3046
-
3047
  msgid "Created at any time"
3048
  msgstr "Criado em qualquer data"
3049
 
3050
- msgid "Appointment Date"
3051
- msgstr "Data do compromisso"
3052
-
3053
- msgid "Created"
3054
- msgstr "Criado"
3055
-
3056
- msgid "Attachments"
3057
- msgstr "Anexos"
3058
-
3059
  msgid "Any time"
3060
  msgstr "Qualquer data"
3061
 
@@ -3068,6 +3125,9 @@ msgstr "Nenhum resultado encontrado"
3068
  msgid "Searching"
3069
  msgstr "Procurando"
3070
 
 
 
 
3071
  msgid "Archived"
3072
  msgstr "Arquivado"
3073
 
@@ -3113,9 +3173,6 @@ msgstr "Enviar notificação por email para os administradores com saldo baixo"
3113
  msgid "Send weekly summary to administrators"
3114
  msgstr "Enviar resumo semanal para os administradores"
3115
 
3116
- msgid "Sender ID"
3117
- msgstr "ID do remetente"
3118
-
3119
  msgid "Change"
3120
  msgstr "Alterar"
3121
 
@@ -3216,15 +3273,6 @@ msgstr "Alterar a senha"
3216
  msgid "Old password"
3217
  msgstr "Senha antiga"
3218
 
3219
- msgid "Type"
3220
- msgstr "Tipo"
3221
-
3222
- msgid "Order"
3223
- msgstr "Pedido"
3224
-
3225
- msgid "Amount"
3226
- msgstr "Montante"
3227
-
3228
  msgid ""
3229
  "We will only charge your PayPal account when your balance falls below $10."
3230
  msgstr ""
@@ -3236,15 +3284,6 @@ msgstr "Ativar Auto-Recharge"
3236
  msgid "Disable Auto-Recharge"
3237
  msgstr "Desativar Auto-Recharge"
3238
 
3239
- msgid "Code"
3240
- msgstr "Código"
3241
-
3242
- msgid "Regular price"
3243
- msgstr "Preço regular"
3244
-
3245
- msgid "Price with custom Sender ID"
3246
- msgstr "Preço com ID do remetente personalizada"
3247
-
3248
  msgid ""
3249
  "If you do not see your country in the list please contact us at <a "
3250
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
@@ -3271,12 +3310,6 @@ msgstr "Guardar telefone do administrador"
3271
  msgid "Quick search notifications"
3272
  msgstr "Notificações de pesquisa rápida"
3273
 
3274
- msgid "State"
3275
- msgstr "Estatuto"
3276
-
3277
- msgid "Delete..."
3278
- msgstr "Deletando..."
3279
-
3280
  #, php-format
3281
  msgid ""
3282
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
@@ -3292,12 +3325,6 @@ msgstr ""
3292
  "Para enviar notificações agendadas, por favor, execute o seguinte comando de "
3293
  "hora em hora com o seu cron:"
3294
 
3295
- msgid "Text"
3296
- msgstr "Texto"
3297
-
3298
- msgid "Cost"
3299
- msgstr "Custo"
3300
-
3301
  msgid ""
3302
  "Please take into account that not all countries by law allow custom SMS "
3303
  "sender ID. Please check if particular country supports custom sender ID in "
@@ -3326,12 +3353,6 @@ msgstr "Solicitar"
3326
  msgid "Cancel request"
3327
  msgstr "Cancelar solicitação"
3328
 
3329
- msgid "Requested ID"
3330
- msgstr "ID solicitada"
3331
-
3332
- msgid "Status Date"
3333
- msgstr "Status da data"
3334
-
3335
  msgid "Please accept terms and conditions."
3336
  msgstr "Por favor, aceite os termos e condições."
3337
 
@@ -3375,9 +3396,6 @@ msgstr "ativar"
3375
  msgid "disable"
3376
  msgstr "desativar"
3377
 
3378
- msgid "Edit..."
3379
- msgstr "Editar..."
3380
-
3381
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3382
  msgstr "O Auto-Recharge falhou. Por favor, recarregue o seu saldo diretamente."
3383
 
@@ -3394,18 +3412,21 @@ msgstr ""
3394
  msgid "SMS has been sent successfully."
3395
  msgstr "SMS foi enviada com sucesso."
3396
 
 
 
 
 
 
 
3397
  msgid "Quick search staff"
3398
  msgstr "Pesquisa rápida equipe"
3399
 
 
 
 
3400
  msgid "Show archived"
3401
  msgstr "Mostrar arquivados"
3402
 
3403
- msgid "Add staff..."
3404
- msgstr "Adicionar funcionário"
3405
-
3406
- msgid "User"
3407
- msgstr "Usuário"
3408
-
3409
  msgid "Image"
3410
  msgstr "Imagem"
3411
 
@@ -3729,15 +3750,15 @@ msgstr ""
3729
  "O carrinho do WooCommerce não está configurado. Siga o <a href=\"%s\">"
3730
  "link</a> para corrigir esse problema."
3731
 
3732
- msgid "Quick search services"
3733
- msgstr "Pesquisa rápida serviços"
3734
-
3735
- msgid "Categories..."
3736
- msgstr "Categorias..."
3737
 
3738
- msgid "Add service..."
3739
  msgstr "Adicionar serviço"
3740
 
 
 
 
3741
  msgid "Update service setting"
3742
  msgstr "Atualizar uma definição de serviço"
3743
 
@@ -4002,12 +4023,6 @@ msgstr "Pesquisa rápida de cliente"
4002
  msgid "New customer"
4003
  msgstr "Novo cliente"
4004
 
4005
- msgid "Last appointment"
4006
- msgstr "Último compromisso"
4007
-
4008
- msgid "Total appointments"
4009
- msgstr "Total de compromissos"
4010
-
4011
  msgid "Merge with"
4012
  msgstr "Mesclar com"
4013
 
@@ -4441,6 +4456,9 @@ msgstr "Adicionar Serviço"
4441
  msgid "Days Off"
4442
  msgstr "Dias de folga"
4443
 
 
 
 
4444
  msgid "Create staff"
4445
  msgstr "Criar equipe"
4446
 
@@ -4453,6 +4471,9 @@ msgstr "O horário inicial precisa ser inferior ao horário final"
4453
  msgid "Error adding the break interval"
4454
  msgstr "Erro ao adicionar o intervalo da folga"
4455
 
 
 
 
4456
  msgid "Complete payment"
4457
  msgstr "Completar o pagamento"
4458
 
@@ -4614,12 +4635,18 @@ msgstr "Editar serviço"
4614
  msgid "Advanced"
4615
  msgstr "Avançado"
4616
 
4617
- msgid "Categories"
4618
- msgstr "Categorias"
4619
 
4620
  msgid "Add category"
4621
  msgstr "Adicionar categoria"
4622
 
 
 
 
 
 
 
4623
  msgid "Attach ICS file"
4624
  msgstr "Anexar arquivo ICS"
4625
 
@@ -5097,6 +5124,9 @@ msgstr "Notificação sobre a criação de novo pacote"
5097
  msgid "Notification about package deletion"
5098
  msgstr "Notificação sobre exclusão de pacotes"
5099
 
 
 
 
5100
  msgid "Packages"
5101
  msgstr "Pacotes"
5102
 
@@ -5120,9 +5150,6 @@ msgstr "Período em dias que o cliente pode usar um pacote de serviços."
5120
  msgid "New package"
5121
  msgstr "Novo pacote"
5122
 
5123
- msgid "Creation Date"
5124
- msgstr "Data de criação"
5125
-
5126
  msgid "Edit package"
5127
  msgstr "Editar pacote"
5128
 
@@ -5215,6 +5242,9 @@ msgstr "Lista de pacotes"
5215
  msgid "A custom block for displaying packages list"
5216
  msgstr "Bloco personalizado para exibição da lista de pacotes"
5217
 
 
 
 
5218
  msgid "Expires"
5219
  msgstr "Expira"
5220
 
@@ -6072,9 +6102,6 @@ msgstr "Exibir o botão para entrar no Facebook"
6072
  msgid "Show time zone switcher"
6073
  msgstr "Mostra o seletor de fuso horário"
6074
 
6075
- msgid "Date of birth"
6076
- msgstr "Data de nascimento"
6077
-
6078
  msgid "Import"
6079
  msgstr "Importar"
6080
 
@@ -6093,6 +6120,9 @@ msgstr ""
6093
  msgid "Select file"
6094
  msgstr "Selecionar o ficheiro"
6095
 
 
 
 
6096
  msgid "Analytics"
6097
  msgstr "Analíticos"
6098
 
@@ -6546,21 +6576,6 @@ msgstr ""
6546
  msgid "Coupon"
6547
  msgstr "Cupom"
6548
 
6549
- msgid "Coupons"
6550
- msgstr "Cupons"
6551
-
6552
- msgid "Add Coupon Series"
6553
- msgstr "Adiciona série de cupons"
6554
-
6555
- msgid "Add Coupon"
6556
- msgstr "Adicionar cupom"
6557
-
6558
- msgid "Coupon code"
6559
- msgstr "Código de cupom"
6560
-
6561
- msgid "Show only active"
6562
- msgstr "Mostrar somente o ativo"
6563
-
6564
  msgid "Discount (%)"
6565
  msgstr "Desconto (%)"
6566
 
@@ -6576,17 +6591,32 @@ msgstr "Limite de uso"
6576
  msgid "Number of times used"
6577
  msgstr "Número de vezes usado"
6578
 
 
 
 
6579
  msgid "Active until"
6580
  msgstr "Ativo até"
6581
 
6582
  msgid "Min. appointments"
6583
  msgstr "Min. de compromissos"
6584
 
6585
- msgid "Active from"
6586
- msgstr "Ativo desde"
 
 
 
 
 
 
6587
 
6588
- msgid "Max appointments"
6589
- msgstr "Número de compromissos max."
 
 
 
 
 
 
6590
 
6591
  msgid "Export only active coupons"
6592
  msgstr "Exportar somente cupons ativos"
@@ -6699,30 +6729,27 @@ msgstr "Este código de cupom é inválido ou foi usado"
6699
  msgid "This coupon code has expired"
6700
  msgstr "Este código de cupom expirou."
6701
 
6702
- msgid "Customer Groups"
6703
- msgstr "Grupos de clientes"
6704
-
6705
- msgid "New group"
6706
- msgstr "Novo grupo"
6707
-
6708
- msgid "Group Name"
6709
  msgstr "Nome do grupo"
6710
 
6711
- msgid "Number of Users"
6712
- msgstr "Número de usuários"
6713
 
6714
  msgid "Description"
6715
  msgstr "Descrição"
6716
 
6717
- msgid "Appointment Status"
6718
- msgstr "Status do compromisso"
 
 
 
 
 
 
6719
 
6720
  msgid "Customers without group"
6721
  msgstr "Clientes sem grupo"
6722
 
6723
- msgid "Group"
6724
- msgstr "Grupo"
6725
-
6726
  msgid "New Group"
6727
  msgstr "Novo grupo"
6728
 
@@ -6750,9 +6777,6 @@ msgstr "Grupo de clientes"
6750
  msgid "No group"
6751
  msgstr "Nenhum grupo"
6752
 
6753
- msgid "Group name"
6754
- msgstr "Nome do grupo"
6755
-
6756
  msgid "Total discount"
6757
  msgstr "Total de desconto"
6758
 
@@ -6918,9 +6942,6 @@ msgstr "Exibir espaços da lista de espera"
6918
  msgid "waiting list of appointment"
6919
  msgstr "lista de espera para um compromisso"
6920
 
6921
- msgid "Add service"
6922
- msgstr "Adicionar serviço"
6923
-
6924
  msgid "Show chain appointments"
6925
  msgstr "Exibir reservas encadeadas"
6926
 
@@ -7036,6 +7057,9 @@ msgstr "Exibir o passo Extras"
7036
  msgid "Show extras"
7037
  msgstr "Exibir extras"
7038
 
 
 
 
7039
  msgid "Extras price"
7040
  msgstr "Preço dos extras"
7041
 
@@ -7059,15 +7083,15 @@ msgstr "Tributação total"
7059
  msgid "Waiting list"
7060
  msgstr "Lista de espera"
7061
 
 
 
 
7062
  msgid "Custom statuses"
7063
  msgstr "Status de cliente"
7064
 
7065
  msgid "Add status"
7066
  msgstr "Adicionar status"
7067
 
7068
- msgid "Free/Busy"
7069
- msgstr "Livre/Ocupado"
7070
-
7071
  msgid "New Status"
7072
  msgstr "Novo Status"
7073
 
@@ -7115,6 +7139,9 @@ msgstr "Desativar atualização das horas especiais"
7115
  msgid "Please select a location"
7116
  msgstr "Por favor, selecione um local"
7117
 
 
 
 
7118
  msgid "Locations"
7119
  msgstr "Locais"
7120
 
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-02-10 08:53+0000\n"
12
+ "PO-Revision-Date: 2020-02-11 12:49+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"
1415
  msgid "Duplicate dates are not permitted."
1416
  msgstr "Datas duplicadas não são permitidas."
1417
 
1418
+ msgid "Date in the past."
1419
+ msgstr "Data no passado."
1420
+
1421
  msgid "The requested interval is not available"
1422
  msgstr "O intervalo solicitado não está disponível"
1423
 
1643
  msgid "API Transaction Key"
1644
  msgstr "Chave de transação do API"
1645
 
1646
+ msgid "Title"
1647
+ msgstr "Título"
1648
+
1649
+ msgid "Rate"
1650
+ msgstr "Taxa"
1651
+
1652
  msgid "Taxes"
1653
  msgstr "Tributações"
1654
 
1672
  msgid "Add Tax"
1673
  msgstr "Adicionar tributação"
1674
 
 
 
 
 
 
 
1675
  msgid "New tax"
1676
  msgstr "Nova tributação"
1677
 
2732
  msgid "From"
2733
  msgstr "De"
2734
 
2735
+ msgid "No."
2736
+ msgstr "Núm."
2737
+
2738
+ msgid "Appointment date"
2739
+ msgstr "Data do compromisso"
2740
+
2741
+ msgid "Customer name"
2742
+ msgstr "Nome do Cliente"
2743
+
2744
+ msgid "Customer phone"
2745
+ msgstr "Telefone do Cliente"
2746
+
2747
+ msgid "Customer email"
2748
+ msgstr "Email do Cliente"
2749
+
2750
+ msgid "Created"
2751
+ msgstr "Criado"
2752
+
2753
+ msgid "User"
2754
+ msgstr "Usuário"
2755
+
2756
+ msgid "Last appointment"
2757
+ msgstr "Último compromisso"
2758
+
2759
+ msgid "Total appointments"
2760
+ msgstr "Total de compromissos"
2761
+
2762
+ msgid "Payments"
2763
+ msgstr "Pagamentos"
2764
+
2765
+ msgid "Type"
2766
+ msgstr "Tipo"
2767
+
2768
+ msgid "State"
2769
+ msgstr "Estatuto"
2770
+
2771
+ msgid "Customer"
2772
+ msgstr "Cliente"
2773
+
2774
+ msgid "Amount"
2775
+ msgstr "Montante"
2776
+
2777
+ msgid "Text"
2778
+ msgstr "Texto"
2779
+
2780
+ msgid "Sender ID"
2781
+ msgstr "ID do remetente"
2782
+
2783
+ msgid "Cost"
2784
+ msgstr "Custo"
2785
+
2786
+ msgid "Flag"
2787
+ msgstr "Flag"
2788
+
2789
+ msgid "Code"
2790
+ msgstr "Código"
2791
+
2792
+ msgid "Regular price"
2793
+ msgstr "Preço regular"
2794
+
2795
+ msgid "Price with custom Sender ID"
2796
+ msgstr "Preço com ID do remetente personalizada"
2797
+
2798
+ msgid "Order"
2799
+ msgstr "Pedido"
2800
+
2801
+ msgid "Requested ID"
2802
+ msgstr "ID solicitada"
2803
+
2804
+ msgid "Status date"
2805
+ msgstr "Data do status"
2806
+
2807
  msgid "Important"
2808
  msgstr "Importante"
2809
 
2948
  msgid "Bookly SMS weekly summary"
2949
  msgstr "Resumo semanal do Bookly SMS "
2950
 
 
 
 
2951
  msgid "Internal Notes"
2952
  msgstr "Observações internas"
2953
 
3080
  msgid "Customers"
3081
  msgstr "Clientes"
3082
 
 
 
 
3083
  msgid "Appearance"
3084
  msgstr "Aparência"
3085
 
3110
  msgid "New appointment"
3111
  msgstr "Novo compromisso"
3112
 
 
 
 
3113
  msgid "Created at any time"
3114
  msgstr "Criado em qualquer data"
3115
 
 
 
 
 
 
 
 
 
 
3116
  msgid "Any time"
3117
  msgstr "Qualquer data"
3118
 
3125
  msgid "Searching"
3126
  msgstr "Procurando"
3127
 
3128
+ msgid "Attachments"
3129
+ msgstr "Anexos"
3130
+
3131
  msgid "Archived"
3132
  msgstr "Arquivado"
3133
 
3173
  msgid "Send weekly summary to administrators"
3174
  msgstr "Enviar resumo semanal para os administradores"
3175
 
 
 
 
3176
  msgid "Change"
3177
  msgstr "Alterar"
3178
 
3273
  msgid "Old password"
3274
  msgstr "Senha antiga"
3275
 
 
 
 
 
 
 
 
 
 
3276
  msgid ""
3277
  "We will only charge your PayPal account when your balance falls below $10."
3278
  msgstr ""
3284
  msgid "Disable Auto-Recharge"
3285
  msgstr "Desativar Auto-Recharge"
3286
 
 
 
 
 
 
 
 
 
 
3287
  msgid ""
3288
  "If you do not see your country in the list please contact us at <a "
3289
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3310
  msgid "Quick search notifications"
3311
  msgstr "Notificações de pesquisa rápida"
3312
 
 
 
 
 
 
 
3313
  #, php-format
3314
  msgid ""
3315
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
3325
  "Para enviar notificações agendadas, por favor, execute o seguinte comando de "
3326
  "hora em hora com o seu cron:"
3327
 
 
 
 
 
 
 
3328
  msgid ""
3329
  "Please take into account that not all countries by law allow custom SMS "
3330
  "sender ID. Please check if particular country supports custom sender ID in "
3353
  msgid "Cancel request"
3354
  msgstr "Cancelar solicitação"
3355
 
 
 
 
 
 
 
3356
  msgid "Please accept terms and conditions."
3357
  msgstr "Por favor, aceite os termos e condições."
3358
 
3396
  msgid "disable"
3397
  msgstr "desativar"
3398
 
 
 
 
3399
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3400
  msgstr "O Auto-Recharge falhou. Por favor, recarregue o seu saldo diretamente."
3401
 
3412
  msgid "SMS has been sent successfully."
3413
  msgstr "SMS foi enviada com sucesso."
3414
 
3415
+ msgid "Staff members order"
3416
+ msgstr "Ordem dos funcionários"
3417
+
3418
+ msgid "Add staff"
3419
+ msgstr "Adicionar Equipe"
3420
+
3421
  msgid "Quick search staff"
3422
  msgstr "Pesquisa rápida equipe"
3423
 
3424
+ msgid "Categories"
3425
+ msgstr "Categorias"
3426
+
3427
  msgid "Show archived"
3428
  msgstr "Mostrar arquivados"
3429
 
 
 
 
 
 
 
3430
  msgid "Image"
3431
  msgstr "Imagem"
3432
 
3750
  "O carrinho do WooCommerce não está configurado. Siga o <a href=\"%s\">"
3751
  "link</a> para corrigir esse problema."
3752
 
3753
+ msgid "Services order"
3754
+ msgstr "Ordem dos serviços"
 
 
 
3755
 
3756
+ msgid "Add service"
3757
  msgstr "Adicionar serviço"
3758
 
3759
+ msgid "Quick search services"
3760
+ msgstr "Pesquisa rápida serviços"
3761
+
3762
  msgid "Update service setting"
3763
  msgstr "Atualizar uma definição de serviço"
3764
 
4023
  msgid "New customer"
4024
  msgstr "Novo cliente"
4025
 
 
 
 
 
 
 
4026
  msgid "Merge with"
4027
  msgstr "Mesclar com"
4028
 
4456
  msgid "Days Off"
4457
  msgstr "Dias de folga"
4458
 
4459
+ msgid "The date has already passed."
4460
+ msgstr "A data já passou."
4461
+
4462
  msgid "Create staff"
4463
  msgstr "Criar equipe"
4464
 
4471
  msgid "Error adding the break interval"
4472
  msgstr "Erro ao adicionar o intervalo da folga"
4473
 
4474
+ msgid "Adjust the order of staff members in your booking form"
4475
+ msgstr "Definir a ordem dos funcionários em seu formulário de reservas"
4476
+
4477
  msgid "Complete payment"
4478
  msgstr "Completar o pagamento"
4479
 
4635
  msgid "Advanced"
4636
  msgstr "Avançado"
4637
 
4638
+ msgid "Adjust the order of services in your booking form"
4639
+ msgstr "Definir a ordem dos serviços no formulário de reservas"
4640
 
4641
  msgid "Add category"
4642
  msgstr "Adicionar categoria"
4643
 
4644
+ msgid "Table settings"
4645
+ msgstr "Configurações da tabela"
4646
+
4647
+ msgid "Column"
4648
+ msgstr "Coluna"
4649
+
4650
  msgid "Attach ICS file"
4651
  msgstr "Anexar arquivo ICS"
4652
 
5124
  msgid "Notification about package deletion"
5125
  msgstr "Notificação sobre exclusão de pacotes"
5126
 
5127
+ msgid "Creation date"
5128
+ msgstr "Data de criação"
5129
+
5130
  msgid "Packages"
5131
  msgstr "Pacotes"
5132
 
5150
  msgid "New package"
5151
  msgstr "Novo pacote"
5152
 
 
 
 
5153
  msgid "Edit package"
5154
  msgstr "Editar pacote"
5155
 
5242
  msgid "A custom block for displaying packages list"
5243
  msgstr "Bloco personalizado para exibição da lista de pacotes"
5244
 
5245
+ msgid "Creation Date"
5246
+ msgstr "Data de criação"
5247
+
5248
  msgid "Expires"
5249
  msgstr "Expira"
5250
 
6102
  msgid "Show time zone switcher"
6103
  msgstr "Mostra o seletor de fuso horário"
6104
 
 
 
 
6105
  msgid "Import"
6106
  msgstr "Importar"
6107
 
6120
  msgid "Select file"
6121
  msgstr "Selecionar o ficheiro"
6122
 
6123
+ msgid "Date of birth"
6124
+ msgstr "Data de nascimento"
6125
+
6126
  msgid "Analytics"
6127
  msgstr "Analíticos"
6128
 
6576
  msgid "Coupon"
6577
  msgstr "Cupom"
6578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6579
  msgid "Discount (%)"
6580
  msgstr "Desconto (%)"
6581
 
6591
  msgid "Number of times used"
6592
  msgstr "Número de vezes usado"
6593
 
6594
+ msgid "Active from"
6595
+ msgstr "Ativo desde"
6596
+
6597
  msgid "Active until"
6598
  msgstr "Ativo até"
6599
 
6600
  msgid "Min. appointments"
6601
  msgstr "Min. de compromissos"
6602
 
6603
+ msgid "Max. appointments"
6604
+ msgstr "Compromissos max."
6605
+
6606
+ msgid "Coupons"
6607
+ msgstr "Cupons"
6608
+
6609
+ msgid "Add Coupon Series"
6610
+ msgstr "Adiciona série de cupons"
6611
 
6612
+ msgid "Add Coupon"
6613
+ msgstr "Adicionar cupom"
6614
+
6615
+ msgid "Coupon code"
6616
+ msgstr "Código de cupom"
6617
+
6618
+ msgid "Show only active"
6619
+ msgstr "Mostrar somente o ativo"
6620
 
6621
  msgid "Export only active coupons"
6622
  msgstr "Exportar somente cupons ativos"
6729
  msgid "This coupon code has expired"
6730
  msgstr "Este código de cupom expirou."
6731
 
6732
+ msgid "Group name"
 
 
 
 
 
 
6733
  msgstr "Nome do grupo"
6734
 
6735
+ msgid "Number of users"
6736
+ msgstr "Numero de usuários"
6737
 
6738
  msgid "Description"
6739
  msgstr "Descrição"
6740
 
6741
+ msgid "Group"
6742
+ msgstr "Grupo"
6743
+
6744
+ msgid "Customer Groups"
6745
+ msgstr "Grupos de clientes"
6746
+
6747
+ msgid "New group"
6748
+ msgstr "Novo grupo"
6749
 
6750
  msgid "Customers without group"
6751
  msgstr "Clientes sem grupo"
6752
 
 
 
 
6753
  msgid "New Group"
6754
  msgstr "Novo grupo"
6755
 
6777
  msgid "No group"
6778
  msgstr "Nenhum grupo"
6779
 
 
 
 
6780
  msgid "Total discount"
6781
  msgstr "Total de desconto"
6782
 
6942
  msgid "waiting list of appointment"
6943
  msgstr "lista de espera para um compromisso"
6944
 
 
 
 
6945
  msgid "Show chain appointments"
6946
  msgstr "Exibir reservas encadeadas"
6947
 
7057
  msgid "Show extras"
7058
  msgstr "Exibir extras"
7059
 
7060
+ msgid "Extras tax"
7061
+ msgstr "Taxa extra"
7062
+
7063
  msgid "Extras price"
7064
  msgstr "Preço dos extras"
7065
 
7083
  msgid "Waiting list"
7084
  msgstr "Lista de espera"
7085
 
7086
+ msgid "Free/Busy"
7087
+ msgstr "Livre/Ocupado"
7088
+
7089
  msgid "Custom statuses"
7090
  msgstr "Status de cliente"
7091
 
7092
  msgid "Add status"
7093
  msgstr "Adicionar status"
7094
 
 
 
 
7095
  msgid "New Status"
7096
  msgstr "Novo Status"
7097
 
7139
  msgid "Please select a location"
7140
  msgstr "Por favor, selecione um local"
7141
 
7142
+ msgid "Staff members"
7143
+ msgstr "Funcionários da equipe"
7144
+
7145
  msgid "Locations"
7146
  msgstr "Locais"
7147
 
languages/bookly-pt_PT.mo CHANGED
Binary file
languages/bookly-pt_PT.po CHANGED
@@ -8,8 +8,8 @@ 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: 2019-12-10 18:59+0000\n"
12
- "PO-Revision-Date: 2019-12-10 19:05+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"
@@ -1415,6 +1415,9 @@ msgstr "Tem a certeza?"
1415
  msgid "Duplicate dates are not permitted."
1416
  msgstr "Datas duplicadas não são permitidas."
1417
 
 
 
 
1418
  msgid "The requested interval is not available"
1419
  msgstr "O intervalo solicitado não está disponível"
1420
 
@@ -1640,6 +1643,12 @@ msgstr "ID de Login do API"
1640
  msgid "API Transaction Key"
1641
  msgstr "Chave de transação do API"
1642
 
 
 
 
 
 
 
1643
  msgid "Taxes"
1644
  msgstr "Tributações"
1645
 
@@ -1663,12 +1672,6 @@ msgstr "Excluir tributações"
1663
  msgid "Add Tax"
1664
  msgstr "Adicionar tributação"
1665
 
1666
- msgid "Title"
1667
- msgstr "Título"
1668
-
1669
- msgid "Rate"
1670
- msgstr "Taxa"
1671
-
1672
  msgid "New tax"
1673
  msgstr "Nova tributação"
1674
 
@@ -2729,6 +2732,78 @@ msgstr "Até"
2729
  msgid "From"
2730
  msgstr "De"
2731
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2732
  msgid "Important"
2733
  msgstr "Importante"
2734
 
@@ -2873,9 +2948,6 @@ msgstr "menos"
2873
  msgid "Bookly SMS weekly summary"
2874
  msgstr "Resumo semanal do Bookly SMS "
2875
 
2876
- msgid "Customer"
2877
- msgstr "Cliente"
2878
-
2879
  msgid "Internal Notes"
2880
  msgstr "Observações internas"
2881
 
@@ -3008,9 +3080,6 @@ msgstr "Notificações de e-mail"
3008
  msgid "Customers"
3009
  msgstr "Clientes"
3010
 
3011
- msgid "Payments"
3012
- msgstr "Pagamentos"
3013
-
3014
  msgid "Appearance"
3015
  msgstr "Aparência"
3016
 
@@ -3041,21 +3110,9 @@ msgstr "Anterior"
3041
  msgid "New appointment"
3042
  msgstr "Novo compromisso"
3043
 
3044
- msgid "No."
3045
- msgstr "Núm."
3046
-
3047
  msgid "Created at any time"
3048
  msgstr "Criado em qualquer data"
3049
 
3050
- msgid "Appointment Date"
3051
- msgstr "Data do compromisso"
3052
-
3053
- msgid "Created"
3054
- msgstr "Criado"
3055
-
3056
- msgid "Attachments"
3057
- msgstr "Anexos"
3058
-
3059
  msgid "Any time"
3060
  msgstr "Qualquer data"
3061
 
@@ -3068,6 +3125,9 @@ msgstr "Nenhum resultado encontrado"
3068
  msgid "Searching"
3069
  msgstr "Procurando"
3070
 
 
 
 
3071
  msgid "Archived"
3072
  msgstr "Arquivado"
3073
 
@@ -3113,9 +3173,6 @@ msgstr "Enviar notificação por email para os administradores com saldo baixo"
3113
  msgid "Send weekly summary to administrators"
3114
  msgstr "Enviar resumo semanal para os administradores"
3115
 
3116
- msgid "Sender ID"
3117
- msgstr "ID do remetente"
3118
-
3119
  msgid "Change"
3120
  msgstr "Alterar"
3121
 
@@ -3216,15 +3273,6 @@ msgstr "Alterar a senha"
3216
  msgid "Old password"
3217
  msgstr "Senha antiga"
3218
 
3219
- msgid "Type"
3220
- msgstr "Tipo"
3221
-
3222
- msgid "Order"
3223
- msgstr "Pedido"
3224
-
3225
- msgid "Amount"
3226
- msgstr "Montante"
3227
-
3228
  msgid ""
3229
  "We will only charge your PayPal account when your balance falls below $10."
3230
  msgstr ""
@@ -3236,15 +3284,6 @@ msgstr "Ativar Auto-Recharge"
3236
  msgid "Disable Auto-Recharge"
3237
  msgstr "Desativar Auto-Recharge"
3238
 
3239
- msgid "Code"
3240
- msgstr "Código"
3241
-
3242
- msgid "Regular price"
3243
- msgstr "Preço regular"
3244
-
3245
- msgid "Price with custom Sender ID"
3246
- msgstr "Preço com ID do remetente personalizada"
3247
-
3248
  msgid ""
3249
  "If you do not see your country in the list please contact us at <a "
3250
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
@@ -3271,12 +3310,6 @@ msgstr "Guardar telefone do administrador"
3271
  msgid "Quick search notifications"
3272
  msgstr "Notificações de pesquisa rápida"
3273
 
3274
- msgid "State"
3275
- msgstr "Estatuto"
3276
-
3277
- msgid "Delete..."
3278
- msgstr "Deletando..."
3279
-
3280
  #, php-format
3281
  msgid ""
3282
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
@@ -3292,12 +3325,6 @@ msgstr ""
3292
  "Para enviar notificações agendadas, por favor, execute o seguinte comando de "
3293
  "hora em hora com o seu cron:"
3294
 
3295
- msgid "Text"
3296
- msgstr "Texto"
3297
-
3298
- msgid "Cost"
3299
- msgstr "Custo"
3300
-
3301
  msgid ""
3302
  "Please take into account that not all countries by law allow custom SMS "
3303
  "sender ID. Please check if particular country supports custom sender ID in "
@@ -3326,12 +3353,6 @@ msgstr "Solicitar"
3326
  msgid "Cancel request"
3327
  msgstr "Cancelar solicitação"
3328
 
3329
- msgid "Requested ID"
3330
- msgstr "ID solicitada"
3331
-
3332
- msgid "Status Date"
3333
- msgstr "Status da data"
3334
-
3335
  msgid "Please accept terms and conditions."
3336
  msgstr "Por favor, aceite os termos e condições."
3337
 
@@ -3375,9 +3396,6 @@ msgstr "ativar"
3375
  msgid "disable"
3376
  msgstr "desativar"
3377
 
3378
- msgid "Edit..."
3379
- msgstr "Editar..."
3380
-
3381
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3382
  msgstr "O Auto-Recharge falhou. Por favor, recarregue o seu saldo diretamente."
3383
 
@@ -3394,18 +3412,21 @@ msgstr ""
3394
  msgid "SMS has been sent successfully."
3395
  msgstr "SMS foi enviada com sucesso."
3396
 
 
 
 
 
 
 
3397
  msgid "Quick search staff"
3398
  msgstr "Pesquisa rápida equipe"
3399
 
 
 
 
3400
  msgid "Show archived"
3401
  msgstr "Mostrar arquivados"
3402
 
3403
- msgid "Add staff..."
3404
- msgstr "Adicionar funcionário"
3405
-
3406
- msgid "User"
3407
- msgstr "Usuário"
3408
-
3409
  msgid "Image"
3410
  msgstr "Imagem"
3411
 
@@ -3729,15 +3750,15 @@ msgstr ""
3729
  "O carrinho do WooCommerce não está configurado. Siga o <a href=\"%s\">"
3730
  "link</a> para corrigir esse problema."
3731
 
3732
- msgid "Quick search services"
3733
- msgstr "Pesquisa rápida serviços"
3734
-
3735
- msgid "Categories..."
3736
- msgstr "Categorias..."
3737
 
3738
- msgid "Add service..."
3739
  msgstr "Adicionar serviço"
3740
 
 
 
 
3741
  msgid "Update service setting"
3742
  msgstr "Atualizar uma definição de serviço"
3743
 
@@ -4002,12 +4023,6 @@ msgstr "Pesquisa rápida de cliente"
4002
  msgid "New customer"
4003
  msgstr "Novo cliente"
4004
 
4005
- msgid "Last appointment"
4006
- msgstr "Último compromisso"
4007
-
4008
- msgid "Total appointments"
4009
- msgstr "Total de compromissos"
4010
-
4011
  msgid "Merge with"
4012
  msgstr "Mesclar com"
4013
 
@@ -4441,6 +4456,9 @@ msgstr "Adicionar Serviço"
4441
  msgid "Days Off"
4442
  msgstr "Dias de folga"
4443
 
 
 
 
4444
  msgid "Create staff"
4445
  msgstr "Criar equipe"
4446
 
@@ -4453,6 +4471,9 @@ msgstr "O horário inicial precisa ser inferior ao horário final"
4453
  msgid "Error adding the break interval"
4454
  msgstr "Erro ao adicionar o intervalo da folga"
4455
 
 
 
 
4456
  msgid "Complete payment"
4457
  msgstr "Completar o pagamento"
4458
 
@@ -4614,12 +4635,18 @@ msgstr "Editar serviço"
4614
  msgid "Advanced"
4615
  msgstr "Avançado"
4616
 
4617
- msgid "Categories"
4618
- msgstr "Categorias"
4619
 
4620
  msgid "Add category"
4621
  msgstr "Adicionar categoria"
4622
 
 
 
 
 
 
 
4623
  msgid "Attach ICS file"
4624
  msgstr "Anexar arquivo ICS"
4625
 
@@ -5097,6 +5124,9 @@ msgstr "Notificação sobre a criação de novo pacote"
5097
  msgid "Notification about package deletion"
5098
  msgstr "Notificação sobre exclusão de pacotes"
5099
 
 
 
 
5100
  msgid "Packages"
5101
  msgstr "Pacotes"
5102
 
@@ -5120,9 +5150,6 @@ msgstr "Período em dias que o cliente pode usar um pacote de serviços."
5120
  msgid "New package"
5121
  msgstr "Novo pacote"
5122
 
5123
- msgid "Creation Date"
5124
- msgstr "Data de criação"
5125
-
5126
  msgid "Edit package"
5127
  msgstr "Editar pacote"
5128
 
@@ -5215,6 +5242,9 @@ msgstr "Lista de pacotes"
5215
  msgid "A custom block for displaying packages list"
5216
  msgstr "Bloco personalizado para exibição da lista de pacotes"
5217
 
 
 
 
5218
  msgid "Expires"
5219
  msgstr "Expira"
5220
 
@@ -6072,9 +6102,6 @@ msgstr "Exibir o botão para entrar no Facebook"
6072
  msgid "Show time zone switcher"
6073
  msgstr "Mostra o seletor de fuso horário"
6074
 
6075
- msgid "Date of birth"
6076
- msgstr "Data de nascimento"
6077
-
6078
  msgid "Import"
6079
  msgstr "Importar"
6080
 
@@ -6093,6 +6120,9 @@ msgstr ""
6093
  msgid "Select file"
6094
  msgstr "Selecionar o ficheiro"
6095
 
 
 
 
6096
  msgid "Analytics"
6097
  msgstr "Analíticos"
6098
 
@@ -6545,21 +6575,6 @@ msgstr ""
6545
  msgid "Coupon"
6546
  msgstr "Cupom"
6547
 
6548
- msgid "Coupons"
6549
- msgstr "Cupons"
6550
-
6551
- msgid "Add Coupon Series"
6552
- msgstr "Adiciona série de cupons"
6553
-
6554
- msgid "Add Coupon"
6555
- msgstr "Adicionar cupom"
6556
-
6557
- msgid "Coupon code"
6558
- msgstr "Código de cupom"
6559
-
6560
- msgid "Show only active"
6561
- msgstr "Mostrar somente o ativo"
6562
-
6563
  msgid "Discount (%)"
6564
  msgstr "Desconto (%)"
6565
 
@@ -6575,17 +6590,32 @@ msgstr "Limite de uso"
6575
  msgid "Number of times used"
6576
  msgstr "Número de vezes usado"
6577
 
 
 
 
6578
  msgid "Active until"
6579
  msgstr "Ativo até"
6580
 
6581
  msgid "Min. appointments"
6582
  msgstr "Min. de compromissos"
6583
 
6584
- msgid "Active from"
6585
- msgstr "Ativo desde"
 
 
 
 
 
 
6586
 
6587
- msgid "Max appointments"
6588
- msgstr "Número de compromissos max."
 
 
 
 
 
 
6589
 
6590
  msgid "Export only active coupons"
6591
  msgstr "Exportar somente cupons ativos"
@@ -6698,30 +6728,27 @@ msgstr "Este código de cupom é inválido ou foi usado"
6698
  msgid "This coupon code has expired"
6699
  msgstr "Este código de cupom expirou."
6700
 
6701
- msgid "Customer Groups"
6702
- msgstr "Grupos de clientes"
6703
-
6704
- msgid "New group"
6705
- msgstr "Novo grupo"
6706
-
6707
- msgid "Group Name"
6708
  msgstr "Nome do grupo"
6709
 
6710
- msgid "Number of Users"
6711
- msgstr "Número de usuários"
6712
 
6713
  msgid "Description"
6714
  msgstr "Descrição"
6715
 
6716
- msgid "Appointment Status"
6717
- msgstr "Status do compromisso"
 
 
 
 
 
 
6718
 
6719
  msgid "Customers without group"
6720
  msgstr "Clientes sem grupo"
6721
 
6722
- msgid "Group"
6723
- msgstr "Grupo"
6724
-
6725
  msgid "New Group"
6726
  msgstr "Novo grupo"
6727
 
@@ -6749,9 +6776,6 @@ msgstr "Grupo de clientes"
6749
  msgid "No group"
6750
  msgstr "Nenhum grupo"
6751
 
6752
- msgid "Group name"
6753
- msgstr "Nome do grupo"
6754
-
6755
  msgid "Total discount"
6756
  msgstr "Total de desconto"
6757
 
@@ -6917,9 +6941,6 @@ msgstr "Exibir espaços da lista de espera"
6917
  msgid "waiting list of appointment"
6918
  msgstr "lista de espera para um compromisso"
6919
 
6920
- msgid "Add service"
6921
- msgstr "Adicionar serviço"
6922
-
6923
  msgid "Show chain appointments"
6924
  msgstr "Exibir reservas encadeadas"
6925
 
@@ -7035,6 +7056,9 @@ msgstr "Exibir o passo Extras"
7035
  msgid "Show extras"
7036
  msgstr "Exibir extras"
7037
 
 
 
 
7038
  msgid "Extras price"
7039
  msgstr "Preço dos extras"
7040
 
@@ -7058,15 +7082,15 @@ msgstr "Tributação total"
7058
  msgid "Waiting list"
7059
  msgstr "Lista de espera"
7060
 
 
 
 
7061
  msgid "Custom statuses"
7062
  msgstr "Status de cliente"
7063
 
7064
  msgid "Add status"
7065
  msgstr "Adicionar status"
7066
 
7067
- msgid "Free/Busy"
7068
- msgstr "Livre/Ocupado"
7069
-
7070
  msgid "New Status"
7071
  msgstr "Novo Status"
7072
 
@@ -7114,6 +7138,9 @@ msgstr "Desativar atualização das horas especiais"
7114
  msgid "Please select a location"
7115
  msgstr "Por favor, selecione um local"
7116
 
 
 
 
7117
  msgid "Locations"
7118
  msgstr "Locais"
7119
 
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-02-10 08:54+0000\n"
12
+ "PO-Revision-Date: 2020-02-11 12:50+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"
1415
  msgid "Duplicate dates are not permitted."
1416
  msgstr "Datas duplicadas não são permitidas."
1417
 
1418
+ msgid "Date in the past."
1419
+ msgstr "Data no passado."
1420
+
1421
  msgid "The requested interval is not available"
1422
  msgstr "O intervalo solicitado não está disponível"
1423
 
1643
  msgid "API Transaction Key"
1644
  msgstr "Chave de transação do API"
1645
 
1646
+ msgid "Title"
1647
+ msgstr "Título"
1648
+
1649
+ msgid "Rate"
1650
+ msgstr "Taxa"
1651
+
1652
  msgid "Taxes"
1653
  msgstr "Tributações"
1654
 
1672
  msgid "Add Tax"
1673
  msgstr "Adicionar tributação"
1674
 
 
 
 
 
 
 
1675
  msgid "New tax"
1676
  msgstr "Nova tributação"
1677
 
2732
  msgid "From"
2733
  msgstr "De"
2734
 
2735
+ msgid "No."
2736
+ msgstr "Núm."
2737
+
2738
+ msgid "Appointment date"
2739
+ msgstr "Data do compromisso"
2740
+
2741
+ msgid "Customer name"
2742
+ msgstr "Nome do Cliente"
2743
+
2744
+ msgid "Customer phone"
2745
+ msgstr "Telefone do Cliente"
2746
+
2747
+ msgid "Customer email"
2748
+ msgstr "Email do Cliente"
2749
+
2750
+ msgid "Created"
2751
+ msgstr "Criado"
2752
+
2753
+ msgid "User"
2754
+ msgstr "Usuário"
2755
+
2756
+ msgid "Last appointment"
2757
+ msgstr "Último compromisso"
2758
+
2759
+ msgid "Total appointments"
2760
+ msgstr "Total de compromissos"
2761
+
2762
+ msgid "Payments"
2763
+ msgstr "Pagamentos"
2764
+
2765
+ msgid "Type"
2766
+ msgstr "Tipo"
2767
+
2768
+ msgid "State"
2769
+ msgstr "Estatuto"
2770
+
2771
+ msgid "Customer"
2772
+ msgstr "Cliente"
2773
+
2774
+ msgid "Amount"
2775
+ msgstr "Montante"
2776
+
2777
+ msgid "Text"
2778
+ msgstr "Texto"
2779
+
2780
+ msgid "Sender ID"
2781
+ msgstr "ID do remetente"
2782
+
2783
+ msgid "Cost"
2784
+ msgstr "Custo"
2785
+
2786
+ msgid "Flag"
2787
+ msgstr "Flag"
2788
+
2789
+ msgid "Code"
2790
+ msgstr "Código"
2791
+
2792
+ msgid "Regular price"
2793
+ msgstr "Preço regular"
2794
+
2795
+ msgid "Price with custom Sender ID"
2796
+ msgstr "Preço com ID do remetente personalizada"
2797
+
2798
+ msgid "Order"
2799
+ msgstr "Pedido"
2800
+
2801
+ msgid "Requested ID"
2802
+ msgstr "ID solicitada"
2803
+
2804
+ msgid "Status date"
2805
+ msgstr "Data do status"
2806
+
2807
  msgid "Important"
2808
  msgstr "Importante"
2809
 
2948
  msgid "Bookly SMS weekly summary"
2949
  msgstr "Resumo semanal do Bookly SMS "
2950
 
 
 
 
2951
  msgid "Internal Notes"
2952
  msgstr "Observações internas"
2953
 
3080
  msgid "Customers"
3081
  msgstr "Clientes"
3082
 
 
 
 
3083
  msgid "Appearance"
3084
  msgstr "Aparência"
3085
 
3110
  msgid "New appointment"
3111
  msgstr "Novo compromisso"
3112
 
 
 
 
3113
  msgid "Created at any time"
3114
  msgstr "Criado em qualquer data"
3115
 
 
 
 
 
 
 
 
 
 
3116
  msgid "Any time"
3117
  msgstr "Qualquer data"
3118
 
3125
  msgid "Searching"
3126
  msgstr "Procurando"
3127
 
3128
+ msgid "Attachments"
3129
+ msgstr "Anexos"
3130
+
3131
  msgid "Archived"
3132
  msgstr "Arquivado"
3133
 
3173
  msgid "Send weekly summary to administrators"
3174
  msgstr "Enviar resumo semanal para os administradores"
3175
 
 
 
 
3176
  msgid "Change"
3177
  msgstr "Alterar"
3178
 
3273
  msgid "Old password"
3274
  msgstr "Senha antiga"
3275
 
 
 
 
 
 
 
 
 
 
3276
  msgid ""
3277
  "We will only charge your PayPal account when your balance falls below $10."
3278
  msgstr ""
3284
  msgid "Disable Auto-Recharge"
3285
  msgstr "Desativar Auto-Recharge"
3286
 
 
 
 
 
 
 
 
 
 
3287
  msgid ""
3288
  "If you do not see your country in the list please contact us at <a "
3289
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3310
  msgid "Quick search notifications"
3311
  msgstr "Notificações de pesquisa rápida"
3312
 
 
 
 
 
 
 
3313
  #, php-format
3314
  msgid ""
3315
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
3325
  "Para enviar notificações agendadas, por favor, execute o seguinte comando de "
3326
  "hora em hora com o seu cron:"
3327
 
 
 
 
 
 
 
3328
  msgid ""
3329
  "Please take into account that not all countries by law allow custom SMS "
3330
  "sender ID. Please check if particular country supports custom sender ID in "
3353
  msgid "Cancel request"
3354
  msgstr "Cancelar solicitação"
3355
 
 
 
 
 
 
 
3356
  msgid "Please accept terms and conditions."
3357
  msgstr "Por favor, aceite os termos e condições."
3358
 
3396
  msgid "disable"
3397
  msgstr "desativar"
3398
 
 
 
 
3399
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3400
  msgstr "O Auto-Recharge falhou. Por favor, recarregue o seu saldo diretamente."
3401
 
3412
  msgid "SMS has been sent successfully."
3413
  msgstr "SMS foi enviada com sucesso."
3414
 
3415
+ msgid "Staff members order"
3416
+ msgstr "Ordem dos funcionários"
3417
+
3418
+ msgid "Add staff"
3419
+ msgstr "Adicionar Equipe"
3420
+
3421
  msgid "Quick search staff"
3422
  msgstr "Pesquisa rápida equipe"
3423
 
3424
+ msgid "Categories"
3425
+ msgstr "Categorias"
3426
+
3427
  msgid "Show archived"
3428
  msgstr "Mostrar arquivados"
3429
 
 
 
 
 
 
 
3430
  msgid "Image"
3431
  msgstr "Imagem"
3432
 
3750
  "O carrinho do WooCommerce não está configurado. Siga o <a href=\"%s\">"
3751
  "link</a> para corrigir esse problema."
3752
 
3753
+ msgid "Services order"
3754
+ msgstr "Ordem dos serviços"
 
 
 
3755
 
3756
+ msgid "Add service"
3757
  msgstr "Adicionar serviço"
3758
 
3759
+ msgid "Quick search services"
3760
+ msgstr "Pesquisa rápida serviços"
3761
+
3762
  msgid "Update service setting"
3763
  msgstr "Atualizar uma definição de serviço"
3764
 
4023
  msgid "New customer"
4024
  msgstr "Novo cliente"
4025
 
 
 
 
 
 
 
4026
  msgid "Merge with"
4027
  msgstr "Mesclar com"
4028
 
4456
  msgid "Days Off"
4457
  msgstr "Dias de folga"
4458
 
4459
+ msgid "The date has already passed."
4460
+ msgstr "A data já passou."
4461
+
4462
  msgid "Create staff"
4463
  msgstr "Criar equipe"
4464
 
4471
  msgid "Error adding the break interval"
4472
  msgstr "Erro ao adicionar o intervalo da folga"
4473
 
4474
+ msgid "Adjust the order of staff members in your booking form"
4475
+ msgstr "Definir a ordem dos funcionários no formulário de reservas"
4476
+
4477
  msgid "Complete payment"
4478
  msgstr "Completar o pagamento"
4479
 
4635
  msgid "Advanced"
4636
  msgstr "Avançado"
4637
 
4638
+ msgid "Adjust the order of services in your booking form"
4639
+ msgstr "Definir a ordem dos serviços no formulário de reservas"
4640
 
4641
  msgid "Add category"
4642
  msgstr "Adicionar categoria"
4643
 
4644
+ msgid "Table settings"
4645
+ msgstr "Configurações da tabela"
4646
+
4647
+ msgid "Column"
4648
+ msgstr "Coluna"
4649
+
4650
  msgid "Attach ICS file"
4651
  msgstr "Anexar arquivo ICS"
4652
 
5124
  msgid "Notification about package deletion"
5125
  msgstr "Notificação sobre exclusão de pacotes"
5126
 
5127
+ msgid "Creation date"
5128
+ msgstr "Data de criação"
5129
+
5130
  msgid "Packages"
5131
  msgstr "Pacotes"
5132
 
5150
  msgid "New package"
5151
  msgstr "Novo pacote"
5152
 
 
 
 
5153
  msgid "Edit package"
5154
  msgstr "Editar pacote"
5155
 
5242
  msgid "A custom block for displaying packages list"
5243
  msgstr "Bloco personalizado para exibição da lista de pacotes"
5244
 
5245
+ msgid "Creation Date"
5246
+ msgstr "Data de criação"
5247
+
5248
  msgid "Expires"
5249
  msgstr "Expira"
5250
 
6102
  msgid "Show time zone switcher"
6103
  msgstr "Mostra o seletor de fuso horário"
6104
 
 
 
 
6105
  msgid "Import"
6106
  msgstr "Importar"
6107
 
6120
  msgid "Select file"
6121
  msgstr "Selecionar o ficheiro"
6122
 
6123
+ msgid "Date of birth"
6124
+ msgstr "Data de nascimento"
6125
+
6126
  msgid "Analytics"
6127
  msgstr "Analíticos"
6128
 
6575
  msgid "Coupon"
6576
  msgstr "Cupom"
6577
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6578
  msgid "Discount (%)"
6579
  msgstr "Desconto (%)"
6580
 
6590
  msgid "Number of times used"
6591
  msgstr "Número de vezes usado"
6592
 
6593
+ msgid "Active from"
6594
+ msgstr "Ativo desde"
6595
+
6596
  msgid "Active until"
6597
  msgstr "Ativo até"
6598
 
6599
  msgid "Min. appointments"
6600
  msgstr "Min. de compromissos"
6601
 
6602
+ msgid "Max. appointments"
6603
+ msgstr "Compromissos max."
6604
+
6605
+ msgid "Coupons"
6606
+ msgstr "Cupons"
6607
+
6608
+ msgid "Add Coupon Series"
6609
+ msgstr "Adiciona série de cupons"
6610
 
6611
+ msgid "Add Coupon"
6612
+ msgstr "Adicionar cupom"
6613
+
6614
+ msgid "Coupon code"
6615
+ msgstr "Código de cupom"
6616
+
6617
+ msgid "Show only active"
6618
+ msgstr "Mostrar somente o ativo"
6619
 
6620
  msgid "Export only active coupons"
6621
  msgstr "Exportar somente cupons ativos"
6728
  msgid "This coupon code has expired"
6729
  msgstr "Este código de cupom expirou."
6730
 
6731
+ msgid "Group name"
 
 
 
 
 
 
6732
  msgstr "Nome do grupo"
6733
 
6734
+ msgid "Number of users"
6735
+ msgstr "Numero de usuários"
6736
 
6737
  msgid "Description"
6738
  msgstr "Descrição"
6739
 
6740
+ msgid "Group"
6741
+ msgstr "Grupo"
6742
+
6743
+ msgid "Customer Groups"
6744
+ msgstr "Grupos de clientes"
6745
+
6746
+ msgid "New group"
6747
+ msgstr "Novo grupo"
6748
 
6749
  msgid "Customers without group"
6750
  msgstr "Clientes sem grupo"
6751
 
 
 
 
6752
  msgid "New Group"
6753
  msgstr "Novo grupo"
6754
 
6776
  msgid "No group"
6777
  msgstr "Nenhum grupo"
6778
 
 
 
 
6779
  msgid "Total discount"
6780
  msgstr "Total de desconto"
6781
 
6941
  msgid "waiting list of appointment"
6942
  msgstr "lista de espera para um compromisso"
6943
 
 
 
 
6944
  msgid "Show chain appointments"
6945
  msgstr "Exibir reservas encadeadas"
6946
 
7056
  msgid "Show extras"
7057
  msgstr "Exibir extras"
7058
 
7059
+ msgid "Extras tax"
7060
+ msgstr "Taxa extra"
7061
+
7062
  msgid "Extras price"
7063
  msgstr "Preço dos extras"
7064
 
7082
  msgid "Waiting list"
7083
  msgstr "Lista de espera"
7084
 
7085
+ msgid "Free/Busy"
7086
+ msgstr "Livre/Ocupado"
7087
+
7088
  msgid "Custom statuses"
7089
  msgstr "Status de cliente"
7090
 
7091
  msgid "Add status"
7092
  msgstr "Adicionar status"
7093
 
 
 
 
7094
  msgid "New Status"
7095
  msgstr "Novo Status"
7096
 
7138
  msgid "Please select a location"
7139
  msgstr "Por favor, selecione um local"
7140
 
7141
+ msgid "Staff members"
7142
+ msgstr "Funcionários da equipe"
7143
+
7144
  msgid "Locations"
7145
  msgstr "Locais"
7146
 
languages/bookly-ru_RU.mo CHANGED
Binary file
languages/bookly-ru_RU.po CHANGED
@@ -9,8 +9,8 @@ msgstr ""
9
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
10
  "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
11
  "Report-Msgid-Bugs-To: \n"
12
- "POT-Creation-Date: 2019-12-05 20:06+0000\n"
13
- "PO-Revision-Date: 2019-12-11 07:55+0000\n"
14
  "Last-Translator: support@bookly.info\n"
15
  "Language-Team: Russian\n"
16
  "X-Loco-Version: 2.3.1; wp-5.3"
@@ -1429,6 +1429,9 @@ msgstr "Вы уверены?"
1429
  msgid "Duplicate dates are not permitted."
1430
  msgstr "Дубликаты дат не разрешены."
1431
 
 
 
 
1432
  msgid "The requested interval is not available"
1433
  msgstr "Запрашиваемый интервал недоступен"
1434
 
@@ -1653,6 +1656,12 @@ msgstr "API Login ID"
1653
  msgid "API Transaction Key"
1654
  msgstr "API Transaction Key"
1655
 
 
 
 
 
 
 
1656
  msgid "Taxes"
1657
  msgstr "Налоги"
1658
 
@@ -1676,12 +1685,6 @@ msgstr "Без налогов"
1676
  msgid "Add Tax"
1677
  msgstr "Добавить Налог"
1678
 
1679
- msgid "Title"
1680
- msgstr "Название"
1681
-
1682
- msgid "Rate"
1683
- msgstr "Ставка"
1684
-
1685
  msgid "New tax"
1686
  msgstr "Новый налог"
1687
 
@@ -2739,6 +2742,78 @@ msgstr "По"
2739
  msgid "From"
2740
  msgstr "С"
2741
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2742
  msgid "Important"
2743
  msgstr "Важно"
2744
 
@@ -2885,9 +2960,6 @@ msgstr "меньше"
2885
  msgid "Bookly SMS weekly summary"
2886
  msgstr "Bookly SMS – Еженедельный отчёт"
2887
 
2888
- msgid "Customer"
2889
- msgstr "Клиент"
2890
-
2891
  msgid "Internal Notes"
2892
  msgstr "Внутренние заметки"
2893
 
@@ -3019,9 +3091,6 @@ msgstr "Email уведомления"
3019
  msgid "Customers"
3020
  msgstr "Клиенты"
3021
 
3022
- msgid "Payments"
3023
- msgstr "Платежи"
3024
-
3025
  msgid "Appearance"
3026
  msgstr "Внешний вид"
3027
 
@@ -3052,21 +3121,9 @@ msgstr "Предыдущая"
3052
  msgid "New appointment"
3053
  msgstr "Новая запись"
3054
 
3055
- msgid "No."
3056
- msgstr "№"
3057
-
3058
  msgid "Created at any time"
3059
  msgstr "Создана в любое время"
3060
 
3061
- msgid "Appointment Date"
3062
- msgstr "Дата Записи"
3063
-
3064
- msgid "Created"
3065
- msgstr "Создана"
3066
-
3067
- msgid "Attachments"
3068
- msgstr "Файлы"
3069
-
3070
  msgid "Any time"
3071
  msgstr "Любое время"
3072
 
@@ -3079,6 +3136,9 @@ msgstr "Результатов не найдено"
3079
  msgid "Searching"
3080
  msgstr "Поиск"
3081
 
 
 
 
3082
  msgid "Archived"
3083
  msgstr "В архиве"
3084
 
@@ -3125,9 +3185,6 @@ msgstr "Отправлять уведомления о низком баланс
3125
  msgid "Send weekly summary to administrators"
3126
  msgstr "Отправлять еженедельный отчёт администраторам"
3127
 
3128
- msgid "Sender ID"
3129
- msgstr "ID отправителя"
3130
-
3131
  msgid "Change"
3132
  msgstr "Изменить"
3133
 
@@ -3230,15 +3287,6 @@ msgstr "Смена пароля"
3230
  msgid "Old password"
3231
  msgstr "Старый пароль"
3232
 
3233
- msgid "Type"
3234
- msgstr "Тип"
3235
-
3236
- msgid "Order"
3237
- msgstr "Заказ"
3238
-
3239
- msgid "Amount"
3240
- msgstr "Сумма"
3241
-
3242
  msgid ""
3243
  "We will only charge your PayPal account when your balance falls below $10."
3244
  msgstr ""
@@ -3251,15 +3299,6 @@ msgstr "Включить автопополнение"
3251
  msgid "Disable Auto-Recharge"
3252
  msgstr "Выключить автопополнение"
3253
 
3254
- msgid "Code"
3255
- msgstr "Код"
3256
-
3257
- msgid "Regular price"
3258
- msgstr "Обычная цена"
3259
-
3260
- msgid "Price with custom Sender ID"
3261
- msgstr "Цена с изменённым ID отправителя"
3262
-
3263
  msgid ""
3264
  "If you do not see your country in the list please contact us at <a "
3265
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
@@ -3286,12 +3325,6 @@ msgstr "Сохранить телефон администратора"
3286
  msgid "Quick search notifications"
3287
  msgstr "Быстрый поиск уведомлений"
3288
 
3289
- msgid "State"
3290
- msgstr "Состояние"
3291
-
3292
- msgid "Delete..."
3293
- msgstr "Удалить..."
3294
-
3295
  #, php-format
3296
  msgid ""
3297
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
@@ -3308,12 +3341,6 @@ msgstr ""
3308
  "Чтобы отправлять напоминающие уведомления, пожалуйста, настройте cron на "
3309
  "ежечасное исполнение следующей команды:"
3310
 
3311
- msgid "Text"
3312
- msgstr "Текст"
3313
-
3314
- msgid "Cost"
3315
- msgstr "Стоимость"
3316
-
3317
  msgid ""
3318
  "Please take into account that not all countries by law allow custom SMS "
3319
  "sender ID. Please check if particular country supports custom sender ID in "
@@ -3341,12 +3368,6 @@ msgstr "Запросить"
3341
  msgid "Cancel request"
3342
  msgstr "Отменить запрос"
3343
 
3344
- msgid "Requested ID"
3345
- msgstr "Запрошенный ID"
3346
-
3347
- msgid "Status Date"
3348
- msgstr "Дата статуса"
3349
-
3350
  msgid "Please accept terms and conditions."
3351
  msgstr "Пожалуйста, согласитесь с условиями использования."
3352
 
@@ -3390,9 +3411,6 @@ msgstr "включить"
3390
  msgid "disable"
3391
  msgstr "выключить"
3392
 
3393
- msgid "Edit..."
3394
- msgstr "Редактировать..."
3395
-
3396
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3397
  msgstr ""
3398
  "Не удалось включить автопополнение. Пожалуйста, пополните счёт прямым "
@@ -3411,18 +3429,21 @@ msgstr ""
3411
  msgid "SMS has been sent successfully."
3412
  msgstr "SMS было отправлено успешно."
3413
 
 
 
 
 
 
 
3414
  msgid "Quick search staff"
3415
  msgstr "Быстрый поиск сотрудника"
3416
 
 
 
 
3417
  msgid "Show archived"
3418
  msgstr "Показать архивированных"
3419
 
3420
- msgid "Add staff..."
3421
- msgstr "Добавить сотрудника..."
3422
-
3423
- msgid "User"
3424
- msgstr "Пользователь"
3425
-
3426
  msgid "Image"
3427
  msgstr "Изображение"
3428
 
@@ -3744,14 +3765,14 @@ msgstr ""
3744
  "Корзина WooCommerce не настроена. Проследуйте по <a href=\"%s\">ссылке</a> "
3745
  "для того, чтобы исправить эту проблему."
3746
 
3747
- msgid "Quick search services"
3748
- msgstr "Быстрый поиск сервиса"
3749
 
3750
- msgid "Categories..."
3751
- msgstr "Категории..."
3752
 
3753
- msgid "Add service..."
3754
- msgstr "Добавить сервис..."
3755
 
3756
  msgid "Update service setting"
3757
  msgstr "Изменение настройки сервиса"
@@ -4019,12 +4040,6 @@ msgstr "Быстрый поиск клиента"
4019
  msgid "New customer"
4020
  msgstr "Новый клиент"
4021
 
4022
- msgid "Last appointment"
4023
- msgstr "Последняя запись"
4024
-
4025
- msgid "Total appointments"
4026
- msgstr "Всего записей"
4027
-
4028
  msgid "Merge with"
4029
  msgstr "Объединить с"
4030
 
@@ -4453,6 +4468,9 @@ msgstr "Добавить сервис"
4453
  msgid "Days Off"
4454
  msgstr "Выходные Дни"
4455
 
 
 
 
4456
  msgid "Create staff"
4457
  msgstr "Создать сотрудника"
4458
 
@@ -4465,6 +4483,9 @@ msgstr "Начальное время должно быть меньше кон
4465
  msgid "Error adding the break interval"
4466
  msgstr "Ошибка добавления интервала перерыва"
4467
 
 
 
 
4468
  msgid "Complete payment"
4469
  msgstr "Завершить платёж"
4470
 
@@ -4626,12 +4647,18 @@ msgstr "Редактировать сервис"
4626
  msgid "Advanced"
4627
  msgstr "Расширенные"
4628
 
4629
- msgid "Categories"
4630
- msgstr "Категории"
4631
 
4632
  msgid "Add category"
4633
  msgstr "Добавить категорию"
4634
 
 
 
 
 
 
 
4635
  msgid "Attach ICS file"
4636
  msgstr "Прикрепить файл ICS"
4637
 
@@ -5114,6 +5141,9 @@ msgstr "Уведомление о создании нового пакета у
5114
  msgid "Notification about package deletion"
5115
  msgstr "Уведомление об удалении пакета услуг"
5116
 
 
 
 
5117
  msgid "Packages"
5118
  msgstr "Пакеты услуг"
5119
 
@@ -5138,9 +5168,6 @@ msgstr ""
5138
  msgid "New package"
5139
  msgstr "Новый пакет услуг"
5140
 
5141
- msgid "Creation Date"
5142
- msgstr "Дата создания"
5143
-
5144
  msgid "Edit package"
5145
  msgstr "Редактировать пакет услуг"
5146
 
@@ -5231,6 +5258,9 @@ msgstr "Список пакетов услуг"
5231
  msgid "A custom block for displaying packages list"
5232
  msgstr "Пользовательский блок для отображения списка пакетов услуг"
5233
 
 
 
 
5234
  msgid "Expires"
5235
  msgstr "Дата окончания"
5236
 
@@ -6083,9 +6113,6 @@ msgstr "Показывать кнопку входа через Facebook"
6083
  msgid "Show time zone switcher"
6084
  msgstr "Показывать переключатель часового пояса"
6085
 
6086
- msgid "Date of birth"
6087
- msgstr "Дата рождения"
6088
-
6089
  msgid "Import"
6090
  msgstr "Импорт"
6091
 
@@ -6104,6 +6131,9 @@ msgstr ""
6104
  msgid "Select file"
6105
  msgstr "Выберите файл"
6106
 
 
 
 
6107
  msgid "Analytics"
6108
  msgstr "Аналитика"
6109
 
@@ -6563,21 +6593,6 @@ msgstr ""
6563
  msgid "Coupon"
6564
  msgstr "Купон"
6565
 
6566
- msgid "Coupons"
6567
- msgstr "Купоны"
6568
-
6569
- msgid "Add Coupon Series"
6570
- msgstr "Добавить серию купонов"
6571
-
6572
- msgid "Add Coupon"
6573
- msgstr "Добавить купон"
6574
-
6575
- msgid "Coupon code"
6576
- msgstr "Код купона"
6577
-
6578
- msgid "Show only active"
6579
- msgstr "Показать только активные"
6580
-
6581
  msgid "Discount (%)"
6582
  msgstr "Скидка (%)"
6583
 
@@ -6593,17 +6608,32 @@ msgstr "Ограничение на использование (количест
6593
  msgid "Number of times used"
6594
  msgstr "Использован (количество раз)"
6595
 
 
 
 
6596
  msgid "Active until"
6597
  msgstr "Активен до (вкл.)"
6598
 
6599
  msgid "Min. appointments"
6600
  msgstr "Мин. количество записей"
6601
 
6602
- msgid "Active from"
6603
- msgstr "Активен с"
 
 
 
6604
 
6605
- msgid "Max appointments"
6606
- msgstr "Максимально записей"
 
 
 
 
 
 
 
 
 
6607
 
6608
  msgid "Export only active coupons"
6609
  msgstr "Экспортировать только активные купоны"
@@ -6717,30 +6747,27 @@ msgstr "Этот купон недействителен или уже был и
6717
  msgid "This coupon code has expired"
6718
  msgstr "Срок действия у этого купона истёк"
6719
 
6720
- msgid "Customer Groups"
6721
- msgstr "Группы Клиентов"
6722
-
6723
- msgid "New group"
6724
- msgstr "Новая группа"
6725
-
6726
- msgid "Group Name"
6727
- msgstr "Название Группы"
6728
 
6729
- msgid "Number of Users"
6730
- msgstr "Количество Пользователей"
6731
 
6732
  msgid "Description"
6733
  msgstr "Описание"
6734
 
6735
- msgid "Appointment Status"
6736
- msgstr "Статус Записи"
 
 
 
 
 
 
6737
 
6738
  msgid "Customers without group"
6739
  msgstr "Клиенты без группы"
6740
 
6741
- msgid "Group"
6742
- msgstr "Группа"
6743
-
6744
  msgid "New Group"
6745
  msgstr "Новая Группа"
6746
 
@@ -6768,9 +6795,6 @@ msgstr "Группа Клиентов"
6768
  msgid "No group"
6769
  msgstr "Без группы"
6770
 
6771
- msgid "Group name"
6772
- msgstr "Название группы"
6773
-
6774
  msgid "Total discount"
6775
  msgstr "Общая сумма скидки"
6776
 
@@ -6932,9 +6956,6 @@ msgstr "Показывать интервалы со списком ожидан
6932
  msgid "waiting list of appointment"
6933
  msgstr "список ожидания на запись"
6934
 
6935
- msgid "Add service"
6936
- msgstr "Добавить сервис"
6937
-
6938
  msgid "Show chain appointments"
6939
  msgstr "Показывать цепочку записей"
6940
 
@@ -7050,6 +7071,9 @@ msgstr "Показывать шаг \"Дополнения\""
7050
  msgid "Show extras"
7051
  msgstr "Показывать дополнения"
7052
 
 
 
 
7053
  msgid "Extras price"
7054
  msgstr "Цена дополнений"
7055
 
@@ -7072,15 +7096,15 @@ msgstr "Общая сумма налога"
7072
  msgid "Waiting list"
7073
  msgstr "Лист ожидания"
7074
 
 
 
 
7075
  msgid "Custom statuses"
7076
  msgstr "Пользовательские статусы"
7077
 
7078
  msgid "Add status"
7079
  msgstr "Добавить статус"
7080
 
7081
- msgid "Free/Busy"
7082
- msgstr "Свободно/Занято"
7083
-
7084
  msgid "New Status"
7085
  msgstr "Новый Статус"
7086
 
@@ -7129,6 +7153,9 @@ msgstr "Выключить обновление особых часов рабо
7129
  msgid "Please select a location"
7130
  msgstr "Пожалуйста, выберите место"
7131
 
 
 
 
7132
  msgid "Locations"
7133
  msgstr "Места"
7134
 
9
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
10
  "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
11
  "Report-Msgid-Bugs-To: \n"
12
+ "POT-Creation-Date: 2020-02-10 08:14+0000\n"
13
+ "PO-Revision-Date: 2020-02-10 11:06+0000\n"
14
  "Last-Translator: support@bookly.info\n"
15
  "Language-Team: Russian\n"
16
  "X-Loco-Version: 2.3.1; wp-5.3"
1429
  msgid "Duplicate dates are not permitted."
1430
  msgstr "Дубликаты дат не разрешены."
1431
 
1432
+ msgid "Date in the past."
1433
+ msgstr "Дата в прошлом."
1434
+
1435
  msgid "The requested interval is not available"
1436
  msgstr "Запрашиваемый интервал недоступен"
1437
 
1656
  msgid "API Transaction Key"
1657
  msgstr "API Transaction Key"
1658
 
1659
+ msgid "Title"
1660
+ msgstr "Название"
1661
+
1662
+ msgid "Rate"
1663
+ msgstr "Ставка"
1664
+
1665
  msgid "Taxes"
1666
  msgstr "Налоги"
1667
 
1685
  msgid "Add Tax"
1686
  msgstr "Добавить Налог"
1687
 
 
 
 
 
 
 
1688
  msgid "New tax"
1689
  msgstr "Новый налог"
1690
 
2742
  msgid "From"
2743
  msgstr "С"
2744
 
2745
+ msgid "No."
2746
+ msgstr "№"
2747
+
2748
+ msgid "Appointment date"
2749
+ msgstr "Дата записи"
2750
+
2751
+ msgid "Customer name"
2752
+ msgstr "Имя клиента"
2753
+
2754
+ msgid "Customer phone"
2755
+ msgstr "Номер телефона клиента"
2756
+
2757
+ msgid "Customer email"
2758
+ msgstr "Адрес эл. почты клиента"
2759
+
2760
+ msgid "Created"
2761
+ msgstr "Создана"
2762
+
2763
+ msgid "User"
2764
+ msgstr "Пользователь"
2765
+
2766
+ msgid "Last appointment"
2767
+ msgstr "Последняя запись"
2768
+
2769
+ msgid "Total appointments"
2770
+ msgstr "Всего записей"
2771
+
2772
+ msgid "Payments"
2773
+ msgstr "Платежи"
2774
+
2775
+ msgid "Type"
2776
+ msgstr "Тип"
2777
+
2778
+ msgid "State"
2779
+ msgstr "Состояние"
2780
+
2781
+ msgid "Customer"
2782
+ msgstr "Клиент"
2783
+
2784
+ msgid "Amount"
2785
+ msgstr "Сумма"
2786
+
2787
+ msgid "Text"
2788
+ msgstr "Текст"
2789
+
2790
+ msgid "Sender ID"
2791
+ msgstr "ID отправителя"
2792
+
2793
+ msgid "Cost"
2794
+ msgstr "Стоимость"
2795
+
2796
+ msgid "Flag"
2797
+ msgstr "Флаг"
2798
+
2799
+ msgid "Code"
2800
+ msgstr "Код"
2801
+
2802
+ msgid "Regular price"
2803
+ msgstr "Обычная цена"
2804
+
2805
+ msgid "Price with custom Sender ID"
2806
+ msgstr "Цена с изменённым ID отправителя"
2807
+
2808
+ msgid "Order"
2809
+ msgstr "Заказ"
2810
+
2811
+ msgid "Requested ID"
2812
+ msgstr "Запрошенный ID"
2813
+
2814
+ msgid "Status date"
2815
+ msgstr "Дата статуса"
2816
+
2817
  msgid "Important"
2818
  msgstr "Важно"
2819
 
2960
  msgid "Bookly SMS weekly summary"
2961
  msgstr "Bookly SMS – Еженедельный отчёт"
2962
 
 
 
 
2963
  msgid "Internal Notes"
2964
  msgstr "Внутренние заметки"
2965
 
3091
  msgid "Customers"
3092
  msgstr "Клиенты"
3093
 
 
 
 
3094
  msgid "Appearance"
3095
  msgstr "Внешний вид"
3096
 
3121
  msgid "New appointment"
3122
  msgstr "Новая запись"
3123
 
 
 
 
3124
  msgid "Created at any time"
3125
  msgstr "Создана в любое время"
3126
 
 
 
 
 
 
 
 
 
 
3127
  msgid "Any time"
3128
  msgstr "Любое время"
3129
 
3136
  msgid "Searching"
3137
  msgstr "Поиск"
3138
 
3139
+ msgid "Attachments"
3140
+ msgstr "Файлы"
3141
+
3142
  msgid "Archived"
3143
  msgstr "В архиве"
3144
 
3185
  msgid "Send weekly summary to administrators"
3186
  msgstr "Отправлять еженедельный отчёт администраторам"
3187
 
 
 
 
3188
  msgid "Change"
3189
  msgstr "Изменить"
3190
 
3287
  msgid "Old password"
3288
  msgstr "Старый пароль"
3289
 
 
 
 
 
 
 
 
 
 
3290
  msgid ""
3291
  "We will only charge your PayPal account when your balance falls below $10."
3292
  msgstr ""
3299
  msgid "Disable Auto-Recharge"
3300
  msgstr "Выключить автопополнение"
3301
 
 
 
 
 
 
 
 
 
 
3302
  msgid ""
3303
  "If you do not see your country in the list please contact us at <a "
3304
  "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3325
  msgid "Quick search notifications"
3326
  msgstr "Быстрый поиск уведомлений"
3327
 
 
 
 
 
 
 
3328
  #, php-format
3329
  msgid ""
3330
  "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly "
3341
  "Чтобы отправлять напоминающие уведомления, пожалуйста, настройте cron на "
3342
  "ежечасное исполнение следующей команды:"
3343
 
 
 
 
 
 
 
3344
  msgid ""
3345
  "Please take into account that not all countries by law allow custom SMS "
3346
  "sender ID. Please check if particular country supports custom sender ID in "
3368
  msgid "Cancel request"
3369
  msgstr "Отменить запрос"
3370
 
 
 
 
 
 
 
3371
  msgid "Please accept terms and conditions."
3372
  msgstr "Пожалуйста, согласитесь с условиями использования."
3373
 
3411
  msgid "disable"
3412
  msgstr "выключить"
3413
 
 
 
 
3414
  msgid "Auto-Recharge has failed, please replenish your balance directly."
3415
  msgstr ""
3416
  "Не удалось включить автопополнение. Пожалуйста, пополните счёт прямым "
3429
  msgid "SMS has been sent successfully."
3430
  msgstr "SMS было отправлено успешно."
3431
 
3432
+ msgid "Staff members order"
3433
+ msgstr "Порядок сотрудников"
3434
+
3435
+ msgid "Add staff"
3436
+ msgstr "Добавить сотрудника"
3437
+
3438
  msgid "Quick search staff"
3439
  msgstr "Быстрый поиск сотрудника"
3440
 
3441
+ msgid "Categories"
3442
+ msgstr "Категории"
3443
+
3444
  msgid "Show archived"
3445
  msgstr "Показать архивированных"
3446
 
 
 
 
 
 
 
3447
  msgid "Image"
3448
  msgstr "Изображение"
3449
 
3765
  "Корзина WooCommerce не настроена. Проследуйте по <a href=\"%s\">ссылке</a> "
3766
  "для того, чтобы исправить эту проблему."
3767
 
3768
+ msgid "Services order"
3769
+ msgstr "Порядок услуг"
3770
 
3771
+ msgid "Add service"
3772
+ msgstr "Добавить сервис"
3773
 
3774
+ msgid "Quick search services"
3775
+ msgstr "Быстрый поиск сервиса"
3776
 
3777
  msgid "Update service setting"
3778
  msgstr "Изменение настройки сервиса"
4040
  msgid "New customer"
4041
  msgstr "Новый клиент"
4042
 
 
 
 
 
 
 
4043
  msgid "Merge with"
4044
  msgstr "Объединить с"
4045
 
4468
  msgid "Days Off"
4469
  msgstr "Выходные Дни"
4470
 
4471
+ msgid "The date has already passed."
4472
+ msgstr "Дата уже прошла."
4473
+
4474
  msgid "Create staff"
4475
  msgstr "Создать сотрудника"
4476
 
4483
  msgid "Error adding the break interval"
4484
  msgstr "Ошибка добавления интервала перерыва"
4485
 
4486
+ msgid "Adjust the order of staff members in your booking form"
4487
+ msgstr "Установите порядок сотрудников в форме бронирования"
4488
+
4489
  msgid "Complete payment"
4490
  msgstr "Завершить платёж"
4491
 
4647
  msgid "Advanced"
4648
  msgstr "Расширенные"
4649
 
4650
+ msgid "Adjust the order of services in your booking form"
4651
+ msgstr "Установите порядок сервисов в форме бронирования"
4652
 
4653
  msgid "Add category"
4654
  msgstr "Добавить категорию"
4655
 
4656
+ msgid "Table settings"
4657
+ msgstr "Настройки таблицы"
4658
+
4659
+ msgid "Column"
4660
+ msgstr "Столбец"
4661
+
4662
  msgid "Attach ICS file"
4663
  msgstr "Прикрепить файл ICS"
4664
 
5141
  msgid "Notification about package deletion"
5142
  msgstr "Уведомление об удалении пакета услуг"
5143
 
5144
+ msgid "Creation date"
5145
+ msgstr "Дата создания"
5146
+
5147
  msgid "Packages"
5148
  msgstr "Пакеты услуг"
5149
 
5168
  msgid "New package"
5169
  msgstr "Новый пакет услуг"
5170
 
 
 
 
5171
  msgid "Edit package"
5172
  msgstr "Редактировать пакет услуг"
5173
 
5258
  msgid "A custom block for displaying packages list"
5259
  msgstr "Пользовательский блок для отображения списка пакетов услуг"
5260
 
5261
+ msgid "Creation Date"
5262
+ msgstr "Дата создания"
5263
+
5264
  msgid "Expires"
5265
  msgstr "Дата окончания"
5266
 
6113
  msgid "Show time zone switcher"
6114
  msgstr "Показывать переключатель часового пояса"
6115
 
 
 
 
6116
  msgid "Import"
6117
  msgstr "Импорт"
6118
 
6131
  msgid "Select file"
6132
  msgstr "Выберите файл"
6133
 
6134
+ msgid "Date of birth"
6135
+ msgstr "Дата рождения"
6136
+
6137
  msgid "Analytics"
6138
  msgstr "Аналитика"
6139
 
6593
  msgid "Coupon"
6594
  msgstr "Купон"
6595
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6596
  msgid "Discount (%)"
6597
  msgstr "Скидка (%)"
6598
 
6608
  msgid "Number of times used"
6609
  msgstr "Использован (количество раз)"
6610
 
6611
+ msgid "Active from"
6612
+ msgstr "Активен с"
6613
+
6614
  msgid "Active until"
6615
  msgstr "Активен до (вкл.)"
6616
 
6617
  msgid "Min. appointments"
6618
  msgstr "Мин. количество записей"
6619
 
6620
+ msgid "Max. appointments"
6621
+ msgstr "Макс. количество записей"
6622
+
6623
+ msgid "Coupons"
6624
+ msgstr "Купоны"
6625
 
6626
+ msgid "Add Coupon Series"
6627
+ msgstr "Добавить серию купонов"
6628
+
6629
+ msgid "Add Coupon"
6630
+ msgstr "Добавить купон"
6631
+
6632
+ msgid "Coupon code"
6633
+ msgstr "Код купона"
6634
+
6635
+ msgid "Show only active"
6636
+ msgstr "Показать только активные"
6637
 
6638
  msgid "Export only active coupons"
6639
  msgstr "Экспортировать только активные купоны"
6747
  msgid "This coupon code has expired"
6748
  msgstr "Срок действия у этого купона истёк"
6749
 
6750
+ msgid "Group name"
6751
+ msgstr "Название группы"
 
 
 
 
 
 
6752
 
6753
+ msgid "Number of users"
6754
+ msgstr "Количество пользователей"
6755
 
6756
  msgid "Description"
6757
  msgstr "Описание"
6758
 
6759
+ msgid "Group"
6760
+ msgstr "Группа"
6761
+
6762
+ msgid "Customer Groups"
6763
+ msgstr "Группы Клиентов"
6764
+
6765
+ msgid "New group"
6766
+ msgstr "Новая группа"
6767
 
6768
  msgid "Customers without group"
6769
  msgstr "Клиенты без группы"
6770
 
 
 
 
6771
  msgid "New Group"
6772
  msgstr "Новая Группа"
6773
 
6795
  msgid "No group"
6796
  msgstr "Без группы"
6797
 
 
 
 
6798
  msgid "Total discount"
6799
  msgstr "Общая сумма скидки"
6800
 
6956
  msgid "waiting list of appointment"
6957
  msgstr "список ожидания на запись"
6958
 
 
 
 
6959
  msgid "Show chain appointments"
6960
  msgstr "Показывать цепочку записей"
6961
 
7071
  msgid "Show extras"
7072
  msgstr "Показывать дополнения"
7073
 
7074
+ msgid "Extras tax"
7075
+ msgstr "Налог на дополнения"
7076
+
7077
  msgid "Extras price"
7078
  msgstr "Цена дополнений"
7079
 
7096
  msgid "Waiting list"
7097
  msgstr "Лист ожидания"
7098
 
7099
+ msgid "Free/Busy"
7100
+ msgstr "Свободно/Занято"
7101
+
7102
  msgid "Custom statuses"
7103
  msgstr "Пользовательские статусы"
7104
 
7105
  msgid "Add status"
7106
  msgstr "Добавить статус"
7107
 
 
 
 
7108
  msgid "New Status"
7109
  msgstr "Новый Статус"
7110
 
7153
  msgid "Please select a location"
7154
  msgstr "Пожалуйста, выберите место"
7155
 
7156
+ msgid "Staff members"
7157
+ msgstr "Сотрудники"
7158
+
7159
  msgid "Locations"
7160
  msgstr "Места"
7161
 
languages/bookly-zh_TW.mo CHANGED
Binary file
languages/bookly-zh_TW.po CHANGED
@@ -3,1615 +3,1940 @@ msgstr ""
3
  "MIME-Version: 1.0\n"
4
  "Content-Type: text/plain; charset=UTF-8\n"
5
  "Content-Transfer-Encoding: 8bit\n"
6
- "X-Generator: POEditor.com\n"
7
  "Project-Id-Version: Bookly\n"
8
- "Language: zh-TW\n"
9
  "Plural-Forms: nplurals=1; plural=0;\n"
 
 
 
 
 
 
10
 
11
- #:
12
- msgid "Calendar"
13
- msgstr "日曆"
14
 
15
- #:
16
- msgid "Appointments"
17
- msgstr "預約"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
 
19
- #:
20
- msgid "Staff Members"
21
- msgstr "員工"
22
 
23
- #:
24
- msgid "Services"
25
- msgstr "服務"
 
 
 
 
 
 
26
 
27
- #:
28
- msgid "SMS Notifications"
29
- msgstr "SMS短信通知"
30
 
31
- #:
32
- msgid "Email Notifications"
33
- msgstr "電郵通知"
34
 
35
- #:
36
- msgid "Customers"
37
- msgstr "客戶"
38
 
39
- #:
40
- msgid "Payments"
41
- msgstr "付款"
42
 
43
- #:
44
- msgid "Appearance"
45
- msgstr "外貌"
46
 
47
- #:
48
- msgid "Settings"
49
- msgstr "設定"
50
 
51
- #:
52
- msgid "Custom Fields"
53
- msgstr "自定欄"
 
 
 
 
54
 
55
- #:
56
- msgid "Profile"
57
- msgstr "簡介"
58
 
59
- #:
60
- msgid "Messages"
61
- msgstr ""
62
 
63
- #:
64
- msgid "Today"
65
- msgstr "今天"
66
 
67
- #:
68
- msgid "Next month"
69
- msgstr "下月"
70
 
71
- #:
72
- msgid "Previous month"
73
- msgstr "上月"
 
 
74
 
75
- #:
76
  msgid "Settings saved."
77
  msgstr "設定已保存。"
78
 
79
- #:
80
- msgid "Your custom CSS was saved. Please refresh the page to see your changes."
81
- msgstr "您的自定義CSS已保存。 請刷新頁面以查看您的更改。"
82
 
83
- #:
84
- msgid "Visible when the chosen time slot has been already booked"
85
- msgstr "所選時間段已經預訂時可見"
86
 
87
- #:
88
- msgid "Date"
89
- msgstr "日期"
90
 
91
- #:
92
- msgid "Time"
93
- msgstr "時間"
94
 
95
- #:
96
- msgid "Price"
97
- msgstr "售價"
98
 
99
- #:
100
- msgid "Edit"
101
- msgstr "編輯"
102
 
103
- #:
104
- msgid "Total"
105
- msgstr "總計"
106
 
107
- #:
108
- msgid "Visible to non-logged in customers only"
109
- msgstr "僅未登陸用戶可見"
 
110
 
111
- #:
112
- msgid "total quantity of appointments in cart"
113
- msgstr "車輛總數量"
114
 
115
- #:
116
- msgid "booking number"
117
- msgstr "訂單號"
118
 
119
- #:
120
- msgid "name of category"
121
- msgstr "類別名稱"
122
 
123
- #:
124
- msgid "login form"
125
- msgstr "登入表格"
126
 
127
- #:
128
- msgid "number of persons"
129
- msgstr "人數"
130
 
131
- #:
132
- msgid "date of service"
133
- msgstr "服務日期"
134
 
135
- #:
136
- msgid "info of service"
137
- msgstr "服務內容"
138
 
139
- #:
140
- msgid "name of service"
141
- msgstr "服務名稱"
142
 
143
- #:
144
- msgid "price of service"
145
- msgstr "服務收費"
146
 
147
- #:
148
- msgid "time of service"
149
- msgstr "服務時間"
150
 
151
- #:
152
- msgid "info of staff"
153
- msgstr "員工資訊"
154
 
155
- #:
156
- msgid "name of staff"
157
- msgstr "員工名稱"
158
 
159
- #:
160
- msgid "total price of booking"
161
- msgstr "總服務收費"
162
 
163
- #:
164
- msgid "Edit custom CSS"
165
- msgstr "編輯自定義CSS"
166
 
167
- #:
168
- msgid "Set up your custom CSS styles"
169
- msgstr "設置您的自定義CSS樣式"
170
 
171
- #:
172
- msgid "Save"
173
- msgstr "保存"
174
 
175
- #:
176
- msgid "Cancel"
177
- msgstr "取消"
178
 
179
- #:
180
- msgid "Show form progress tracker"
181
- msgstr "顯示錶單進度狀態"
182
 
183
- #:
184
- msgid "Click on the underlined text to edit."
185
- msgstr "點擊下畫綫編輯文本"
186
 
187
- #:
188
- msgid "Make selecting employee required"
189
- msgstr "使選擇所需員工為必需"
190
 
191
- #:
192
- msgid "Show service price next to employee name"
193
- msgstr "旁邊的員工姓名顯示服務價格"
194
 
195
- #:
196
- msgid "Show service duration next to service name"
197
- msgstr "在服務名稱旁邊顯示服務持續時間"
198
 
199
- #:
200
- msgid "Show calendar"
201
- msgstr "顯示日歷"
202
 
203
- #:
204
- msgid "Show blocked timeslots"
205
- msgstr "顯示不可選時間"
206
 
207
- #:
208
- msgid "Show each day in one column"
209
- msgstr "每一欄中顯示一天"
 
 
210
 
211
- #:
212
- msgid "Show Login button"
213
- msgstr "顯示登錄按鈕"
214
 
215
- #:
216
- msgid "Do not forget to update your email and SMS codes for customer names"
 
 
 
 
 
 
 
 
217
  msgstr ""
 
218
 
219
- #:
220
- msgid "Use first and last name instead of full name"
 
 
 
 
 
221
  msgstr ""
 
222
 
223
- #:
224
- msgid "The booking form on this step may have different set or states of its elements. It depends on various conditions such as installed/activated add-ons, settings configuration or choices made on previous steps. Select option and click on the underlined text to edit."
225
- msgstr "此步驟上的預訂表單可能具有不同的元素集或狀態。 這取決於各種條件,例如安裝/激活的附加組件,設置配置或以前步驟所做的選擇。 選擇選項,然後單擊帶下劃線的文本進行編輯。"
 
 
226
 
227
- #:
228
- msgid "Tomorrow"
229
- msgstr "明天"
 
 
230
 
231
- #:
232
- msgid "Yesterday"
233
- msgstr "昨天"
 
 
 
234
 
235
- #:
236
- msgid "Apply"
237
- msgstr "使用"
 
238
 
239
- #:
240
- msgid "To"
241
- msgstr "至"
 
242
 
243
- #:
244
- msgid "From"
245
- msgstr "由"
 
 
 
 
 
 
246
 
247
- #:
248
- msgid "Are you sure?"
249
- msgstr "確定?"
 
 
 
 
 
250
 
251
- #:
252
- msgid "No appointments for selected period."
253
- msgstr "選擇時間沒有預約。"
254
 
255
- #:
256
- msgid "Processing..."
257
- msgstr "處理..."
 
258
 
259
- #:
260
- msgid "%s of %s"
261
- msgstr "%s %s個"
262
 
263
- #:
264
- msgid "No."
265
- msgstr "號"
266
 
267
- #:
268
- msgid "Customer Name"
269
- msgstr "客戶名稱"
270
 
271
- #:
272
- msgid "Customer Phone"
273
- msgstr "客戶電話"
 
274
 
275
- #:
276
- msgid "Customer Email"
277
- msgstr "客戶電郵"
278
 
279
- #:
280
- msgid "Duration"
281
- msgstr "歷時"
282
 
283
- #:
284
- msgid "Status"
285
- msgstr "狀態"
286
 
287
- #:
288
- msgid "Payment"
289
- msgstr "付款"
 
 
 
 
 
 
 
290
 
291
- #:
292
- msgid "Appointment Date"
293
- msgstr "預約日期"
294
 
295
- #:
296
- msgid "New appointment"
297
- msgstr "建立預約"
298
 
299
- #:
300
- msgid "Customer"
301
- msgstr "客戶"
302
 
303
- #:
304
- msgid "Edit appointment"
305
- msgstr "編輯預約"
306
 
307
- #:
308
- msgid "Week"
309
- msgstr "星期"
 
 
310
 
311
- #:
312
- msgid "Day"
313
- msgstr "日"
314
-
315
- #:
316
- msgid "Month"
317
- msgstr "月"
318
 
319
- #:
320
- msgid "All Day"
321
- msgstr "全日"
 
 
322
 
323
- #:
324
- msgid "Delete"
325
- msgstr "删除"
326
 
327
- #:
328
- msgid "No staff selected"
329
- msgstr "沒有選擇員工"
 
 
330
 
331
- #:
332
- msgid "Recurring appointments"
333
- msgstr "經常性約會"
334
 
335
- #:
336
- msgid "On waiting list"
 
337
  msgstr ""
 
338
 
339
- #:
340
- msgid "Start time must not be empty"
341
- msgstr "必須輸入開始時間"
342
-
343
- #:
344
- msgid "End time must not be empty"
345
- msgstr "必須輸入結束時間"
346
-
347
- #:
348
- msgid "End time must not be equal to start time"
349
- msgstr "結束時間不能等於開始時間"
350
 
351
- #:
352
- msgid "The number of customers should not be more than %d"
353
- msgstr "客戶的數量不應超過%d"
354
 
355
- #:
356
- msgid "Could not save appointment in database."
357
- msgstr "無法將預約存進系統"
358
 
359
- #:
360
- msgid "Untitled"
361
- msgstr "無標題"
 
362
 
363
- #:
364
- msgid "Provider"
365
- msgstr "供應者"
366
 
367
- #:
368
- msgid "Service"
369
- msgstr "服務"
370
 
371
- #:
372
- msgid "-- Select a service --"
373
- msgstr "—選擇服務—"
374
 
375
- #:
376
- msgid "Please select a service"
377
- msgstr "請選擇服務"
378
 
379
- #:
380
- msgid "Location"
381
- msgstr "位置"
382
 
383
- #:
384
- msgid "Period"
385
- msgstr "時段"
386
 
387
- #:
388
- msgid "to"
389
- msgstr "至"
390
 
391
- #:
392
- msgid "Selected period doesn't match service duration"
393
- msgstr "選擇的時期不匹配服務期"
394
 
395
- #:
396
- msgid "The selected period is occupied by another appointment"
397
- msgstr "在選擇的時期已安排了另一預約"
398
 
399
- #:
400
- msgid "Selected / maximum"
401
- msgstr "已選/最大"
402
 
403
- #:
404
- msgid "Minimum capacity"
405
- msgstr "最小容量"
406
 
407
- #:
408
- msgid "Edit booking details"
409
- msgstr "編輯預約詳情"
410
 
411
- #:
412
- msgid "Remove customer"
413
- msgstr "删除客戶"
414
 
415
- #:
416
- msgid "-- Search customers --"
417
- msgstr "—搜索客戶—"
418
 
419
- #:
420
- msgid "New customer"
421
- msgstr "新客戶"
422
 
423
- #:
424
- msgid "Send notifications"
425
- msgstr "發送通知"
426
 
427
- #:
428
- msgid "Internal note"
429
- msgstr "內部說明"
430
 
431
- #:
432
- msgid "Number of persons"
433
- msgstr "人數"
434
 
435
- #:
436
- msgid "Cancellation reason (optional)"
437
- msgstr "取消原因(可選)"
438
 
439
- #:
440
- msgid "All"
441
- msgstr "所有"
442
 
443
- #:
444
- msgid "All staff"
445
- msgstr "所有員工"
446
 
447
- #:
448
- msgid "Add staff members."
449
- msgstr "添加工作人員。"
450
 
451
- #:
452
- msgid "Add Staff Members"
453
- msgstr "添加員工"
454
 
455
- #:
456
- msgid "Add Services"
457
- msgstr "添加服務"
458
 
459
- #:
460
- msgid "All services"
461
- msgstr "所有服務"
462
 
463
- #:
464
- msgid "Code"
465
- msgstr "代碼"
466
 
467
- #:
468
- msgid "Reorder"
469
- msgstr "重新排序"
470
 
471
- #:
472
- msgid "No customers found."
473
- msgstr "沒有客戶找到。"
474
 
475
- #:
476
- msgid "Edit customer"
477
- msgstr "編輯客戶"
478
 
479
- #:
480
- msgid "Create customer"
481
- msgstr "新增客戶"
482
 
483
- #:
484
- msgid "Quick search customer"
485
- msgstr "快速搜索客戶"
486
 
487
- #:
488
- msgid "User"
489
- msgstr "用戶"
490
 
491
- #:
492
- msgid "Notes"
493
- msgstr "記錄"
494
 
495
- #:
496
- msgid "Last appointment"
497
- msgstr "最後一個預約"
498
 
499
- #:
500
- msgid "Total appointments"
501
- msgstr "所有預約"
 
502
 
503
- #:
504
- msgid "New Customer"
505
- msgstr "新客戶"
506
 
507
- #:
508
- msgid "First name"
 
 
 
509
  msgstr ""
 
510
 
511
- #:
512
- msgid "Required"
513
- msgstr "必需"
514
 
515
- #:
516
- msgid "Last name"
517
- msgstr ""
518
 
519
- #:
520
- msgid "Name"
521
- msgstr "姓名"
522
 
523
- #:
524
- msgid "Phone"
525
- msgstr "電話號碼"
526
 
527
- #:
528
- msgid "Email"
529
- msgstr "電郵地址"
530
 
531
- #:
532
- msgid "Delete customers"
533
- msgstr "删除客戶"
534
 
535
- #:
536
- msgid "Remember my choice"
537
- msgstr "記住我的選擇"
538
 
539
- #:
540
- msgid "Yes"
541
- msgstr "是"
542
 
543
- #:
544
- msgid "%d day"
545
- msgid_plural "%d days"
546
- msgstr[0] "%d 天"
547
 
548
- #:
549
- msgid "Sent successfully."
550
- msgstr "成功發送。"
551
 
552
- #:
553
- msgid "Subject"
554
- msgstr "主題"
555
 
556
- #:
557
- msgid "Message"
558
- msgstr "訊息"
559
 
560
- #:
561
- msgid "date of appointment"
562
- msgstr "預約日期"
563
 
564
- #:
565
- msgid "time of appointment"
566
- msgstr "預約時間"
567
 
568
- #:
569
- msgid "end date of appointment"
570
- msgstr "結束約會的日期"
571
 
572
- #:
573
- msgid "end time of appointment"
574
- msgstr "結束任命的時間"
575
 
576
- #:
577
- msgid "URL of approve appointment link (to use inside <a> tag)"
578
- msgstr "批准任命鏈接URL(以<a>標籤內使用)"
579
 
580
- #:
581
- msgid "cancel appointment link"
582
- msgstr "取消預約連結"
583
 
584
- #:
585
- msgid "URL of cancel appointment link (to use inside <a> tag)"
586
- msgstr "取消預約鏈接URL(以<a>標籤內使用)"
587
 
588
- #:
589
- msgid "reason you mentioned while deleting appointment"
590
- msgstr "原因你提到在刪除約會"
591
 
592
- #:
593
- msgid "email of client"
594
- msgstr "客戶電郵"
595
 
596
- #:
597
- msgid "full name of client"
598
- msgstr ""
599
 
600
- #:
601
- msgid "first name of client"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
602
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
603
 
604
- #:
605
- msgid "last name of client"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
606
  msgstr ""
 
 
 
 
 
 
 
 
607
 
608
- #:
609
- msgid "phone of client"
610
- msgstr "客戶電話"
611
 
612
- #:
613
- msgid "name of company"
614
- msgstr "公司名稱"
615
 
616
- #:
617
- msgid "company logo"
618
- msgstr "公司標誌"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
619
 
620
- #:
621
- msgid "address of company"
622
- msgstr "公司地址"
623
 
624
- #:
625
- msgid "company phone"
626
- msgstr "公司電話"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
627
 
628
- #:
629
- msgid "company web-site address"
630
- msgstr "公司網站地址"
631
 
632
- #:
633
- msgid "URL for adding event to client's Google Calendar (to use inside <a> tag)"
634
- msgstr "新增活動到Google行事曆的連結 (插入 <a> 標籤)"
635
 
636
- #:
637
- msgid "payment type"
638
- msgstr "付款方式"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
639
 
640
- #:
641
- msgid "duration of service"
642
- msgstr "服務期限"
643
 
644
- #:
645
- msgid "email of staff"
646
- msgstr "員工電郵"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
647
 
648
- #:
649
- msgid "phone of staff"
650
- msgstr "員工電話"
 
651
 
652
- #:
653
- msgid "photo of staff"
654
- msgstr "員工相片"
655
 
656
- #:
657
- msgid "total price of booking (sum of all cart items after applying coupon)"
658
- msgstr "預訂的總價格(所有購物車項目的總和申請優惠券之後)"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
659
 
660
- #:
661
- msgid "cart information"
662
- msgstr "車信息"
 
663
 
664
- #:
665
- msgid "cart information with cancel"
666
- msgstr "車信息與取消"
667
 
668
- #:
669
- msgid "customer new username"
670
- msgstr "客戶新用戶名"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
671
 
672
- #:
673
- msgid "customer new password"
674
- msgstr "客戶新密碼"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
675
 
676
- #:
677
- msgid "site address"
678
- msgstr "網站地址"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
679
 
680
- #:
681
- msgid "date of next day"
682
- msgstr "下次的日期"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
683
 
684
- #:
685
- msgid "staff agenda for next day"
686
- msgstr "員工下一天日程"
687
 
688
- #:
689
- msgid "To email"
690
- msgstr "到電子郵件"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
691
 
692
- #:
693
- msgid "Sender name"
694
- msgstr "發件人名稱"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
695
 
696
- #:
697
- msgid "Sender email"
698
- msgstr "發件人電郵"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
699
 
700
- #:
701
- msgid "Reply directly to customers"
702
- msgstr "直接回覆客戶"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
703
 
704
- #:
705
- msgid "Disabled"
706
- msgstr "停用"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
707
 
708
- #:
709
  msgid "Enabled"
710
  msgstr "啟用"
711
 
712
- #:
713
- msgid "Send emails as"
714
- msgstr "發送郵件"
715
 
716
- #:
717
- msgid "HTML"
718
- msgstr "HTML"
719
 
720
- #:
721
- msgid "Text"
722
- msgstr "文字"
723
 
724
- #:
725
- msgid "Notification templates"
726
- msgstr "通知模板"
727
 
728
- #:
729
- msgid "All templates"
730
- msgstr "所有模板"
731
 
732
- #:
733
- msgid "Send"
734
- msgstr "發送"
735
 
736
- #:
737
- msgid "Close"
738
- msgstr "關"
739
 
740
- #:
741
- msgid "HTML allows formatting, colors, fonts, positioning, etc. With Text you must use Text mode of rich-text editors below. On some servers only text emails are sent successfully."
742
- msgstr "HTML 允許設定格式、 顏色、 字體、 定位等。若使用文字,您必須使用下面的rich-text編輯器的Text模式。在某些服務器上僅text郵件能成功發送。"
743
 
744
- #:
745
- msgid "If this option is enabled then the email address of the customer is used as a sender email address for notifications sent to staff members and administrators."
746
- msgstr "如果啟用此選項,客戶的電子郵件地址將作為發件人地址曏工作人員和管理員發送通知。"
747
 
748
- #:
749
- msgid "Codes"
750
- msgstr "代碼"
751
 
752
- #:
753
- msgid "To send scheduled notifications please refer to <a href=\"%1$s\">Bookly Multisite</a> add-on <a href=\"%2$s\">message</a>."
754
- msgstr "要發送計劃通知請參見<a href=“%1$s”>Bookly Multisite</a>add-on<a href=“%2$s”>​​message</a> 。"
755
 
756
- #:
757
- msgid "To send scheduled notifications please execute the following command hourly with your cron:"
758
- msgstr "要發送定時通知,請使用您的cron每小時執行以下命令:"
759
 
760
- #:
761
- msgid "No payments for selected period and criteria."
762
- msgstr "所選期間和條件下沒有付款。"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
763
 
764
- #:
765
- msgid "Details"
766
- msgstr "細節"
767
 
768
- #:
769
- msgid "See details for more items"
770
- msgstr "有關詳情,請項的詳細信息"
771
 
772
- #:
773
- msgid "Type"
774
- msgstr "類型"
775
 
776
- #:
777
- msgid "Deposit"
778
- msgstr "存款"
779
 
780
- #:
781
- msgid "Subtotal"
782
- msgstr "小計"
783
 
784
- #:
785
- msgid "Paid"
786
- msgstr "付費"
787
 
788
- #:
789
- msgid "Due"
790
- msgstr "應有"
791
 
792
- #:
793
- msgid "Complete payment"
794
- msgstr "完成付款"
795
 
796
- #:
797
- msgid "Amount"
798
- msgstr "數量"
799
 
800
- #:
801
- msgid "Min capacity should not be greater than max capacity."
802
- msgstr "最小容量不應大於最大容量。"
803
 
804
- #:
805
- msgid "%d service"
806
- msgid_plural "%d services"
807
- msgstr[0] "%d服務"
808
 
809
- #:
810
- msgid "Simple"
811
- msgstr ""
812
 
813
- #:
814
- msgid "Title"
815
- msgstr "標題"
816
 
817
- #:
818
- msgid "Color"
819
- msgstr "顏色"
 
 
 
 
820
 
821
- #:
822
- msgid "Visibility"
823
- msgstr "能見度"
824
 
825
- #:
826
- msgid "Public"
827
- msgstr "上市"
828
 
829
- #:
830
- msgid "Private"
831
- msgstr "私人的"
832
 
833
- #:
834
- msgid "OFF"
835
- msgstr "關閉"
836
 
837
- #:
838
- msgid "Providers"
839
- msgstr "供應者"
840
 
841
- #:
842
- msgid "Category"
843
- msgstr "分類"
844
 
845
- #:
846
- msgid "Uncategorized"
847
- msgstr "未分類"
848
 
849
- #:
850
- msgid "Info"
851
- msgstr "資訊"
852
 
853
- #:
854
- msgid "This text can be inserted into notifications with %s code."
855
- msgstr "這個文本可以插入與%s代碼的通知。"
856
 
857
- #:
858
- msgid "Add Service"
859
- msgstr "添加服務"
860
 
861
- #:
862
- msgid "No services found. Please add services."
863
- msgstr "找不到服務。請添加新服務。"
864
 
865
- #:
866
- msgid "Update service setting"
867
- msgstr "更新服務設定"
868
 
869
- #:
870
- msgid "You are about to change a service setting which is also configured separately for each staff member. Do you want to update it in staff settings too?"
871
- msgstr "您將要改變的服務設定其還分別配置為爲每個員工服務設定。你想同時更新工作人員的設定嗎?"
872
 
873
- #:
874
- msgid "No, update just here in services"
875
- msgstr "不,只更新在服務這裏"
876
 
877
- #:
878
- msgid "WooCommerce cart is not set up. Follow the <a href=\"%s\">link</a> to correct this problem."
879
- msgstr "WooCommerce 購物車未切立。請按照<a href=“%s”>鏈接</a>來解決此問題。"
880
 
881
- #:
882
- msgid "Repeat every year"
883
- msgstr "每年重複"
884
 
885
- #:
886
- msgid "We are not working on this day"
887
- msgstr "我們這一天休息"
888
 
889
- #:
890
- msgid "Appointment with one participant"
891
- msgstr "任命一位與會者"
892
 
893
- #:
894
- msgid "Appointment with many participants"
895
- msgstr "許多參與者的任命"
896
 
897
- #:
898
- msgid "Enter a value"
899
- msgstr "輸入值"
900
 
901
- #:
902
- msgid "capacity of service"
903
- msgstr "服務能力"
904
 
905
- #:
906
- msgid "number of persons already in the list"
907
- msgstr "已經在名單上的人數"
908
 
909
- #:
910
- msgid "status of payment"
911
- msgstr "付款狀態"
912
 
913
- #:
914
- msgid "status of appointment"
915
- msgstr "任用狀況"
916
 
917
- #:
918
- msgid "Cart"
919
- msgstr "購物車"
920
 
921
- #:
922
- msgid "Image"
923
- msgstr "圖片"
924
 
925
- #:
926
- msgid "Company name"
927
- msgstr "公司名稱"
928
 
929
- #:
930
- msgid "Address"
931
- msgstr "地址"
932
 
933
- #:
934
- msgid "Website"
935
- msgstr "網站"
936
 
937
- #:
938
- msgid "Phone field default country"
939
- msgstr "電話號碼默認國家"
940
 
941
- #:
942
- msgid "Select default country for the phone field in the 'Details' step of booking. You can also let Bookly determine the country based on the IP address of the client."
943
- msgstr "在預訂的”詳細信息“步驟中選擇電話號碼默認國家/地區。您還可以讓 Bookly 基於客戶端的 IP 地址確定國家。"
944
 
945
- #:
946
- msgid "Guess country by user's IP address"
947
- msgstr "通過用戶的 IP 地址猜用戶所在的國家"
948
 
949
- #:
950
- msgid "Default country code"
951
- msgstr "默認國家號碼"
952
 
953
- #:
954
- msgid "Your clients must have their phone numbers in international format in order to receive text messages. However you can specify a default country code that will be used as a prefix for all phone numbers that do not start with \"+\" or \"00\". E.g. if you enter \"1\" as the default country code and a client enters their phone as \"(600) 555-2222\" the resulting phone number to send the SMS to will be \"+1600555222\"."
955
- msgstr "如需接收短信,您的客戶電話號碼必須為國際格式。然而,您可以指定默認的國家代碼用在所有不以 “+ “或 “00” 開頭的號碼前面。例如,您選擇 “1”作為缺省國家代碼,一位客戶輸入的電話為”(600)555-2222”,則用來發送短信的號碼將是”+1600555222”。"
956
 
957
- #:
958
- msgid "Remember personal information in cookies"
959
- msgstr "記住cookies中的個人信息"
960
 
961
- #:
962
- msgid "If this setting is enabled then returning customers will have their personal information fields filled in at the Details step with the data previously saved in cookies."
963
- msgstr "如果啟用此設置,返回的客戶將在“詳細信息”步驟中填寫其個人信息字段,並將之前保存在Cookie中的數據。"
964
 
965
- #:
966
- msgid "Time slot length"
967
- msgstr "時間間隔長度"
968
 
969
- #:
970
- msgid "Select a time interval which will be used as a step when building all time slots in the system."
971
- msgstr "選擇在構建系統中的所有時隙時將用作步驟的時間間隔。"
972
 
973
- #:
974
- msgid "Enable this option to make slot length equal to service duration at the Time step of booking form."
975
- msgstr "啟用此選項可使時間長度等於預訂表單的時間步驟中的服務持續時間。"
976
 
977
- #:
978
- msgid "Default appointment status"
979
- msgstr "默認預約狀態"
980
 
981
- #:
982
- msgid "Select status for newly booked appointments."
983
- msgstr "為最新預約選擇默認狀態"
984
 
985
- #:
986
- msgid "Pending"
987
- msgstr "審批中"
988
 
989
- #:
990
- msgid "Approved"
991
- msgstr "已經獲批"
992
 
993
- #:
994
- msgid "Approve appointment URL (success)"
995
- msgstr ""
996
 
997
- #:
998
- msgid "Set the URL of a page that is shown to staff after they successfully approved the appointment."
999
- msgstr ""
1000
 
1001
- #:
1002
- msgid "Approve appointment URL (denied)"
1003
- msgstr ""
1004
 
1005
- #:
1006
- msgid "Set the URL of a page that is shown to staff when the approval of appointment cannot be done (due to capacity, changed status, etc.)."
1007
- msgstr ""
1008
 
1009
- #:
1010
- msgid "Cancel appointment URL (success)"
1011
- msgstr ""
1012
 
1013
- #:
1014
- msgid "Set the URL of a page that is shown to clients after they successfully cancelled their appointment."
1015
- msgstr "設定URL顯示已成功安排取消預約客戶"
1016
 
1017
- #:
1018
- msgid "Cancel appointment URL (denied)"
1019
- msgstr "取消預約的URL網址 (拒絕)"
1020
 
1021
- #:
1022
- msgid "Set the URL of a page that is shown to clients when the cancellation of appointment is not available anymore."
1023
- msgstr "設定URL網頁顯示取消了的客戶預約已不存在。"
1024
 
1025
- #:
1026
- msgid "Number of days available for booking"
1027
- msgstr "可供預訂的天數"
1028
 
1029
- #:
1030
- msgid "Set how far in the future the clients can book appointments."
1031
- msgstr "設定客戶能夠預約將來多久。"
1032
 
1033
- #:
1034
- msgid "Display available time slots in client's time zone"
1035
- msgstr "以客戶所在的時區顯示可預約時段"
1036
 
1037
- #:
1038
- msgid "Allow staff members to edit their profiles"
1039
- msgstr "容許員工編輯他們自己的資料"
1040
 
1041
- #:
1042
- msgid "If this option is enabled then all staff members who are associated with WordPress users will be able to edit their own profiles, services, schedule and days off."
1043
- msgstr "如果啟用該選項,那麽與WordPress用戶相聯的所有員工將能夠編輯自己的個人描述,服務,時間表及休息日期。"
1044
 
1045
- #:
1046
- msgid "Method to include Bookly JavaScript and CSS files on the page"
1047
- msgstr "方法包括Bookly JavaScript和網頁CSS文件"
1048
 
1049
- #:
1050
- msgid "With \"Enqueue\" method the JavaScript and CSS files of Bookly will be included on all pages of your website. This method should work with all themes. With \"Print\" method the files will be included only on the pages which contain Bookly booking form. This method may not work with all themes."
1051
- msgstr "隨著“排隊”的方法Bookly的JavaScript和CSS文件將被包含在你的網站的所有網頁。此方法應可用於所有Wordpress主題。隨著“打印”方法中的文件將包含僅包含Bookly預訂表格頁面。這種方法可能無法用於所有Wordpress主題。"
1052
 
1053
- #:
1054
- msgid "Help us improve Bookly by sending anonymous usage stats"
1055
- msgstr "通過發送匿名使用統計信息幫助我們改進Bookly"
1056
 
1057
- #:
1058
- msgid "Instructions"
1059
- msgstr "使用說明"
1060
 
1061
- #:
1062
- msgid "Please note, the business hours below work as a template for all new staff members. To render a list of available time slots the system takes into account only staff members' schedule, not the company business hours. Be sure to check the schedule of your staff members if you have some unexpected behavior of the booking system."
1063
- msgstr "請注意,以下營業時間作為所有新工作人員的模板。 要提供可用時間表的列表,系統只考慮工作人員的時間表,而不是公司的營業時間。 如果您的預訂系統有一些意想不到的行為,請務必檢查您的員工的時間表。"
1064
 
1065
- #:
1066
- msgid "Currency"
1067
- msgstr "貨幣"
1068
 
1069
- #:
1070
- msgid "Price format"
1071
- msgstr "價格格式"
1072
 
1073
- #:
1074
- msgid "Service paid locally"
1075
- msgstr "即場支付"
1076
 
1077
- #:
1078
- msgid "No"
1079
- msgstr "不"
1080
 
1081
- #:
1082
- msgid "Client"
1083
- msgstr "客戶"
1084
 
1085
- #:
1086
- msgid "General"
1087
- msgstr "通用"
1088
 
1089
- #:
1090
- msgid "Company"
1091
- msgstr "公司"
1092
 
1093
- #:
1094
- msgid "Business Hours"
1095
- msgstr "營業時間"
1096
 
1097
- #:
1098
- msgid "Holidays"
1099
- msgstr "假期"
1100
 
1101
- #:
1102
- msgid "Please accept terms and conditions."
1103
- msgstr "請接受服務條款。"
1104
 
1105
- #:
1106
- msgid "Your payment has been accepted for processing."
1107
- msgstr "您的付款已被接受和正在處理。"
1108
 
1109
- #:
1110
- msgid "Your payment has been interrupted."
1111
- msgstr "您的付款已經中斷。"
1112
 
1113
- #:
1114
- msgid "Auto-Recharge enabled."
1115
- msgstr "自動儲值已生效。"
1116
 
1117
- #:
1118
- msgid "You declined the Auto-Recharge of your balance."
1119
- msgstr "您拒絕了自動儲值功能。"
1120
 
1121
- #:
1122
- msgid "Please enter old password."
1123
- msgstr "請輸入舊密碼。"
1124
 
1125
- #:
1126
- msgid "Passwords must be the same."
1127
- msgstr "密碼必須相同。"
1128
 
1129
- #:
1130
- msgid "Sender ID request is sent."
1131
- msgstr "發件人ID發送請求。"
1132
 
1133
- #:
1134
- msgid "Sender ID is reset to default."
1135
- msgstr "發件人ID被重置為默認值。"
 
1136
 
1137
- #:
1138
- msgid "No records for selected period."
1139
- msgstr "沒有記錄時間選擇。"
1140
 
1141
- #:
1142
- msgid "No records."
1143
- msgstr "沒有記錄。"
1144
 
1145
- #:
1146
- msgid "Auto-Recharge has failed, please replenish your balance directly."
1147
- msgstr "自動充值失敗,請直接補充你的餘額。"
1148
 
1149
- #:
1150
- msgid "Auto-Recharge disabled"
1151
- msgstr "自動儲值已關閉"
1152
 
1153
- #:
1154
- msgid "Error. Can't disable Auto-Recharge, you can perform this action in your PayPal account."
1155
- msgstr "錯誤。無法禁用自動充值,您可以在您的PayPal帳戶執行此操作。"
1156
 
1157
- #:
1158
- msgid "SMS has been sent successfully."
1159
- msgstr "SMS短訊發送成功。"
 
1160
 
1161
- #:
1162
- msgid "We will only charge your PayPal account when your balance falls below $10."
1163
- msgstr "當您的餘額低於$ 10我們將只收取您的PayPal帳戶。"
1164
 
1165
- #:
1166
- msgid "Enable Auto-Recharge"
1167
- msgstr "啟用自動儲值"
1168
 
1169
- #:
1170
- msgid "Disable Auto-Recharge"
1171
- msgstr "停用自動儲值"
1172
 
1173
- #:
1174
- msgid "Administrator phone"
1175
- msgstr "管理員的電話"
1176
 
1177
- #:
1178
- msgid "Enter a phone number in international format. E.g. for the United States a valid phone number would be +17327572923."
1179
- msgstr "輸入一個國際格式的電話號碼。例如,在美國的一個有效的電話號碼是+17327572923。"
1180
 
1181
- #:
1182
- msgid "Send test SMS"
1183
- msgstr "傳送測試SMS短訊"
1184
 
1185
- #:
1186
- msgid "Country"
1187
- msgstr "国家"
 
1188
 
1189
- #:
1190
- msgid "Regular price"
1191
- msgstr "正常價格"
1192
 
1193
- #:
1194
- msgid "Price with custom Sender ID"
1195
- msgstr "價格自定義發送者ID"
1196
 
1197
- #:
1198
- msgid "Order"
1199
- msgstr "訂單"
1200
 
1201
- #:
1202
- msgid "Please take into account that not all countries by law allow custom SMS sender ID. Please check if particular country supports custom sender ID in our price list. Also please note that prices for messages with custom sender ID are usually 20% - 25% higher than normal message price."
1203
- msgstr "請考慮到,並非所有國家在法律允許自定義短信發件人ID。請檢查特定國家支持我們的價格表自定義發件人ID。同時請注意,價格自定義發件人ID消息通常比正常價格的消息高出20%-25%。"
1204
 
1205
- #:
1206
- msgid "Request Sender ID"
1207
- msgstr "請求發件人ID"
1208
 
1209
- #:
1210
- msgid "or"
1211
- msgstr "要么"
1212
 
1213
- #:
1214
- msgid "Reset to default"
1215
- msgstr "重置為默認"
1216
 
1217
- #:
1218
- msgid "Can only contain letters or digits (up to 11 characters)."
1219
- msgstr "只能包含字母或數字(最多11個字符)。"
 
1220
 
1221
- #:
1222
- msgid "Request"
1223
- msgstr "請求"
1224
 
1225
- #:
1226
- msgid "Cancel request"
1227
- msgstr "取消請求"
1228
 
1229
- #:
1230
- msgid "Requested ID"
1231
- msgstr "請求ID"
1232
 
1233
- #:
1234
- msgid "Status Date"
1235
- msgstr "狀態日期"
1236
 
1237
- #:
1238
- msgid "Sender ID"
1239
- msgstr "發件人ID"
 
 
 
 
 
 
1240
 
1241
- #:
1242
- msgid "Cost"
1243
- msgstr "成本"
1244
 
1245
- #:
1246
- msgid "Your balance"
1247
- msgstr "您的餘額"
1248
 
1249
- #:
1250
- msgid "Send email notification to administrators at low balance"
1251
- msgstr "餘額過低時發電郵通知管理員"
1252
 
1253
- #:
1254
- msgid "Send weekly summary to administrators"
1255
- msgstr "向管理員發送每週摘要"
1256
 
1257
- #:
1258
- msgid "Change"
1259
- msgstr "更改"
1260
 
1261
- #:
1262
- msgid "Approved at"
1263
- msgstr "在批准"
 
1264
 
1265
- #:
1266
- msgid "Log out"
1267
- msgstr "登出"
1268
 
1269
- #:
1270
- msgid "Notifications"
1271
- msgstr "通知"
 
1272
 
1273
- #:
1274
- msgid "Add money"
1275
- msgstr "増值"
1276
 
1277
- #:
1278
- msgid "Auto-Recharge"
1279
- msgstr "自動儲值"
1280
 
1281
- #:
1282
- msgid "Purchases"
1283
- msgstr "購買"
1284
 
1285
- #:
1286
- msgid "SMS Details"
1287
- msgstr "SMS短信內容"
1288
 
1289
- #:
1290
- msgid "Price list"
1291
- msgstr "價目表"
1292
 
1293
- #:
1294
- msgid "SMS Notifications (or \"Bookly SMS\") is a service for notifying your customers via text messages which are sent to mobile phones."
1295
- msgstr "短信通知(或“Bookly SMS”)是通過將其發送到手機短信通知您的客戶服務。"
1296
 
1297
- #:
1298
- msgid "It is necessary to register in order to start using this service."
1299
- msgstr "它是必要的,以便註冊開始使用該服務。"
1300
 
1301
- #:
1302
- msgid "After registration you will need to configure notification messages and top up your balance in order to start sending SMS."
1303
- msgstr "註冊後,您將需要配置通知消息,並以開始發送短信充值您的餘額。"
1304
 
1305
- #:
1306
- msgid "Login"
1307
- msgstr "登入"
 
 
1308
 
1309
- #:
1310
- msgid "Password"
1311
- msgstr "密碼"
1312
 
1313
- #:
1314
- msgid "Log In"
1315
- msgstr "登入"
1316
 
1317
- #:
1318
- msgid "Registration"
1319
- msgstr "注册"
1320
 
1321
- #:
1322
- msgid "Forgot password"
1323
- msgstr "忘記密碼"
1324
 
1325
- #:
1326
- msgid "Repeat password"
1327
- msgstr "重覆密碼"
1328
 
1329
- #:
1330
- msgid "Register"
1331
- msgstr "註冊"
1332
 
1333
- #:
1334
- msgid "Enter code from email"
1335
- msgstr "從電郵輸入代碼"
1336
 
1337
- #:
1338
- msgid "New password"
1339
- msgstr "新密碼"
1340
 
1341
- #:
1342
- msgid "Repeat new password"
1343
- msgstr "重覆新密碼"
1344
 
1345
- #:
1346
- msgid "Next"
1347
- msgstr "下"
1348
 
1349
- #:
1350
- msgid "Change password"
1351
- msgstr "修改密碼"
1352
 
1353
- #:
1354
- msgid "Old password"
1355
- msgstr "舊密碼"
 
1356
 
1357
- #:
1358
- msgid "All locations"
1359
- msgstr "所有地點"
1360
 
1361
- #:
1362
- msgid "No locations selected"
1363
- msgstr "未選擇位置"
 
1364
 
1365
- #:
1366
- msgid "The start time must be less than the end one"
1367
- msgstr "開始時間應早於結束時間"
1368
 
1369
- #:
1370
- msgid "The requested interval is not available"
1371
- msgstr "要求的時段不可選"
1372
 
1373
- #:
1374
- msgid "Error adding the break interval"
1375
- msgstr "添加休息時段時錯誤"
1376
 
1377
- #:
1378
- msgid "Delete break"
1379
- msgstr "刪除休息"
1380
 
1381
- #:
1382
- msgid "Breaks"
1383
- msgstr "暫停"
 
 
 
 
1384
 
1385
- #:
1386
- msgid "Full name"
1387
- msgstr "全名"
1388
 
1389
- #:
1390
- msgid "If this staff member requires separate login to access personal calendar, a regular WP user needs to be created for this purpose."
1391
- msgstr "如果員工需要獨立登入訪問個人日曆,則需要建立普通的Wordpress用戶賬號 "
 
 
 
 
1392
 
1393
- #:
1394
- msgid "User with \"Administrator\" role will have access to calendars and settings of all staff members, user with another role will have access only to personal calendar and settings."
1395
- msgstr "用戶以”管理員”的角色將有機會獲得日曆和所有工作人員的設定,與其他一些角色用戶將只能查看個人日曆和設定查看的權限。"
 
1396
 
1397
- #:
1398
- msgid "If you leave this field blank, this staff member will not be able to access personal calendar using WP backend."
1399
- msgstr "如果你將這欄留空,這名員工將無法使用WordPress員工個人日曆。"
1400
 
1401
- #:
1402
- msgid "Select from WP users"
1403
- msgstr "從WordPress用戶中選擇"
 
1404
 
1405
- #:
1406
- msgid "To make staff member invisible to your customers set the visibility to \"Private\"."
1407
- msgstr "為了讓工作人員看不到客戶設置的知名度,“專用”。"
1408
 
1409
- #:
1410
- msgid "Schedule"
1411
- msgstr "日程"
1412
 
1413
- #:
1414
- msgid "Days off"
1415
- msgstr "休息日"
1416
 
1417
- #:
1418
- msgid "add break"
1419
- msgstr "添加休息時間"
1420
 
1421
- #:
1422
- msgid "Reset"
1423
- msgstr "重置"
1424
 
1425
- #:
1426
- msgid "All fields marked with an asterisk (*) are required."
1427
- msgstr "標有星號(*)的項目是必需的。"
1428
 
1429
- #:
1430
- msgid "Invalid email."
1431
- msgstr "無效的郵件地址。"
1432
 
1433
- #:
1434
- msgid "Error sending support request."
1435
- msgstr "發送錯誤的支持請求。"
1436
 
1437
- #:
1438
- msgid "Show all notifications"
1439
- msgstr ""
 
 
1440
 
1441
- #:
1442
- msgid "Mark all notifications as read"
1443
- msgstr ""
1444
 
1445
- #:
1446
- msgid "Documentation"
1447
- msgstr "文件紀錄 "
1448
 
1449
- #:
1450
- msgid "Need help? Contact us here."
1451
- msgstr "需要幫忙?這裡與我們聯繫。"
1452
 
1453
- #:
1454
- msgid "Feedback"
1455
- msgstr "回饋"
1456
 
1457
- #:
1458
- msgid "Leave us a message"
1459
- msgstr "給我們留言"
1460
 
1461
- #:
1462
- msgid "Your name"
1463
- msgstr "你的名字"
1464
 
1465
- #:
1466
- msgid "Email address"
1467
- msgstr "電子郵件地址"
1468
 
1469
- #:
1470
- msgid "How can we help you?"
1471
- msgstr "我們該怎樣幫助你?"
1472
 
1473
- #:
1474
- msgid "How likely is it that you would recommend Bookly to a friend or colleague?"
1475
- msgstr "您推薦Bookly給朋友或同事的可能性有多大?"
1476
 
1477
- #:
1478
- msgid "What do you think should be improved?"
1479
- msgstr "你認為應該改進什麼?"
 
1480
 
1481
- #:
1482
- msgid "Please enter your email (optional)"
1483
- msgstr "請輸入您的電子郵件(可選)"
1484
 
1485
- #:
1486
- msgid "Please leave your feedback <a href=\"%s\" target=\"_blank\">here</a>."
1487
- msgstr "請在<a href=\"%s\" target=\"_blank\">此處</a>留下您的反饋。"
1488
 
1489
- #:
1490
- msgid "Subscribe to monthly emails about Bookly improvements and new releases."
1491
- msgstr "訂閱有關Bookly的改進和新版本的每月電子郵件。"
1492
 
1493
- #:
1494
- msgid "Add Bookly booking form"
1495
- msgstr "添加Bookly預約表格"
1496
 
1497
- #:
1498
- msgid "Staff"
1499
  msgstr "員工"
1500
 
1501
- #:
1502
- msgid "Insert"
1503
- msgstr "插入"
1504
 
1505
- #:
1506
- msgid "Default value for category select"
1507
- msgstr "分類選擇的默認值"
1508
 
1509
- #:
1510
- msgid "Select category"
1511
- msgstr "選擇分類"
1512
 
1513
- #:
1514
- msgid "Hide this field"
1515
- msgstr "隱藏字段"
1516
 
1517
- #:
1518
- msgid "Default value for service select"
1519
- msgstr "已選服務的默認值"
1520
 
1521
- #:
1522
- msgid "Select service"
1523
- msgstr "選擇服務"
1524
 
1525
- #:
1526
- msgid "Please be aware that a value in this field is required in the frontend. If you choose to hide this field, please be sure to select a default value for it"
1527
- msgstr "請註意,頁麵要求此字段必須有一個值。如果您選擇隱藏這個字段,請先給它選擇一個默認值"
1528
 
1529
- #:
1530
- msgid "Default value for employee select"
1531
- msgstr "員工選擇的默認值"
1532
 
1533
- #:
1534
- msgid "Any"
1535
- msgstr "任何"
1536
 
1537
- #:
1538
- msgid "Week days"
1539
- msgstr "工作日"
1540
 
1541
- #:
1542
- msgid "Time range"
1543
- msgstr "時間範圍"
1544
 
1545
- #:
1546
- msgid "Insert Appointment Booking Form"
1547
- msgstr "插入預約表"
1548
 
1549
- #:
1550
- msgid "Show more"
1551
- msgstr "顯示更多"
 
1552
 
1553
- #:
1554
- msgid "Session error."
1555
- msgstr "Session 錯誤"
1556
 
1557
- #:
1558
- msgid "Form ID error."
1559
- msgstr "表單ID錯誤。"
1560
 
1561
- #:
1562
- msgid "Pay locally is not available."
1563
- msgstr "即場付款不可選。"
1564
 
1565
- #:
1566
- msgid "Invalid gateway."
1567
- msgstr "無效的Gateway。"
1568
 
1569
- #:
1570
- msgid "No time is available for selected criteria."
1571
- msgstr "所選條件下沒有時段可供使用。"
1572
 
1573
- #:
1574
- msgid "Data already in use"
1575
- msgstr "數據已在使用"
1576
 
1577
- #:
1578
- msgid "Page Redirection"
1579
- msgstr "網頁重定向"
 
1580
 
1581
- #:
1582
- msgid "If you are not redirected automatically, follow the <a href=\"%s\">link</a>."
1583
- msgstr "如果您的頁面沒有自動跳轉,請點擊此<a href=“%s”>鏈接</a> "
 
1584
 
1585
- #:
1586
- msgid "Loading..."
1587
- msgstr "載入中…"
1588
 
1589
- #:
1590
- msgid "Error"
1591
- msgstr "錯誤"
1592
 
1593
- #:
1594
  msgid " and %d more item"
1595
  msgid_plural " and %d more items"
1596
  msgstr[0] "和 %d 項目"
 
1597
 
1598
- #:
1599
- msgid "Your appointment information"
1600
- msgstr "您的預約信息"
1601
 
1602
- #:
1603
- msgid "Dear {client_name}.\n"
1604
  "\n"
1605
  "This is a confirmation that you have booked {service_name}.\n"
1606
  "\n"
1607
- "We are waiting you at {company_address} on {appointment_date} at {appointment_time}.\n"
 
1608
  "\n"
1609
  "Thank you for choosing our company.\n"
1610
  "\n"
1611
  "{company_name}\n"
1612
  "{company_phone}\n"
1613
  "{company_website}"
1614
- msgstr "親愛的 {client_name}.\n"
 
1615
  "\n"
1616
  "您預訂的{service_name}已確認.\n"
1617
  "\n"
@@ -1623,38 +1948,64 @@ msgstr "親愛的 {client_name}.\n"
1623
  "{company_phone}\n"
1624
  "{company_website}"
1625
 
1626
- #:
1627
- msgid "Dear {client_name}.\n"
 
 
 
1628
  "\n"
1629
- "This is a confirmation that you have booked the following items:\n"
1630
  "\n"
1631
- "{cart_info}\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1632
  "\n"
1633
  "Thank you for choosing our company.\n"
1634
  "\n"
1635
  "{company_name}\n"
1636
  "{company_phone}\n"
1637
  "{company_website}"
1638
- msgstr "尊敬的{client_name}。\n"
1639
- "\n"
1640
- "這是您預訂下列項目的確認:\n"
1641
  "\n"
1642
- "{cart_info}\n"
1643
  "\n"
1644
- "感謝您選擇我們公司。\n"
1645
  "\n"
1646
  "{company_name}\n"
1647
  "{company_phone}\n"
1648
  "{company_website}"
1649
 
1650
- #:
1651
- msgid "New booking information"
1652
- msgstr "新預約信息"
1653
 
1654
- #:
1655
- msgid "Hello.\n"
1656
  "\n"
1657
- "You have a new booking.\n"
1658
  "\n"
1659
  "Service: {service_name}\n"
1660
  "Date: {appointment_date}\n"
@@ -1662,29 +2013,26 @@ msgid "Hello.\n"
1662
  "Client name: {client_name}\n"
1663
  "Client phone: {client_phone}\n"
1664
  "Client email: {client_email}"
1665
- msgstr "您好.\n"
 
1666
  "\n"
1667
- "你有一個新的顧客預約.\n"
1668
  "\n"
1669
- "服務: {service_name}\n"
1670
- "日期: {appointment_date}\n"
1671
- "時間: {appointment_time}\n"
1672
- "顧客姓名: {client_name}\n"
1673
- "顧客電話: {client_phone}\n"
1674
- "顧客 Email: {client_email}"
1675
-
1676
- #:
1677
- msgid "Booking cancellation"
1678
- msgstr "取消預約"
1679
 
1680
- #:
1681
- msgid "Booking rejection"
1682
- msgstr "甩預訂"
1683
 
1684
- #:
1685
- msgid "Dear {client_name}.\n"
1686
  "\n"
1687
- "Your booking of {service_name} on {appointment_date} at {appointment_time} has been rejected.\n"
 
1688
  "\n"
1689
  "Reason: {cancellation_reason}\n"
1690
  "\n"
@@ -1693,7 +2041,8 @@ msgid "Dear {client_name}.\n"
1693
  "{company_name}\n"
1694
  "{company_phone}\n"
1695
  "{company_website}"
1696
- msgstr "尊敬的{client_name}。\n"
 
1697
  "\n"
1698
  "您在{appointment_date}({appointment_time})預訂的{service_name}已被拒絕。\n"
1699
  "\n"
@@ -1705,8 +2054,11 @@ msgstr "尊敬的{client_name}。\n"
1705
  "{company_phone}\n"
1706
  "{company_website}"
1707
 
1708
- #:
1709
- msgid "Hello.\n"
 
 
 
1710
  "\n"
1711
  "The following booking has been rejected.\n"
1712
  "\n"
@@ -1718,7 +2070,8 @@ msgid "Hello.\n"
1718
  "Client name: {client_name}\n"
1719
  "Client phone: {client_phone}\n"
1720
  "Client email: {client_email}"
1721
- msgstr "你好。\n"
 
1722
  "\n"
1723
  "以下預訂已被拒絕。\n"
1724
  "\n"
@@ -1731,63 +2084,94 @@ msgstr "你好。\n"
1731
  "客戶電話:{client_phone}\n"
1732
  "客戶電子郵件:{client_email}"
1733
 
1734
- #:
1735
- msgid "Hello.\n"
1736
- "\n"
1737
- "An account was created for you at {site_address}\n"
1738
- "\n"
1739
- "Your user details:\n"
1740
- "user: {new_username}\n"
1741
- "password: {new_password}\n"
1742
- "\n"
1743
- "Thanks."
1744
- msgstr "你好.\n"
1745
- "\n"
1746
- "您在 {site_address}上建立了一個賬號\n"
1747
- "\n"
1748
- "您的用戶詳情:\n"
1749
- "用戶: {new_username}\n"
1750
- "密碼: {new_password}\n"
1751
  "\n"
1752
- "謝謝."
 
 
 
 
 
1753
 
1754
- #:
1755
- msgid "Happy Birthday!"
1756
- msgstr "生日快樂!"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1757
 
1758
- #:
1759
- msgid "Dear {client_name},\n"
1760
- "\n"
1761
- "Happy birthday!\n"
1762
- "We wish you all the best.\n"
1763
- "May you and your family be happy and healthy.\n"
1764
- "\n"
1765
  "Thank you for choosing our company.\n"
1766
- "\n"
1767
  "{company_name}\n"
1768
  "{company_phone}\n"
1769
  "{company_website}"
1770
- msgstr "尊敬的{client_name},\n"
 
1771
  "\n"
1772
- "生日快樂!\n"
1773
- "我們祝你一切順利。\n"
1774
- "願你和你的家人幸福和健康。\n"
1775
  "\n"
1776
  "感謝您選擇我們的公司。\n"
1777
- "\n"
1778
  "{company_name}\n"
1779
  "{company_phone}\n"
1780
  "{company_website}"
1781
 
1782
- #:
1783
- msgid "Dear {client_name}.\n"
1784
- "Your booking of {service_name} on {appointment_date} at {appointment_time} has been rejected.\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1785
  "Reason: {cancellation_reason}\n"
1786
  "Thank you for choosing our company.\n"
1787
  "{company_name}\n"
1788
  "{company_phone}\n"
1789
  "{company_website}"
1790
- msgstr "尊敬的{client_name}。\n"
 
1791
  "您在{appointment_date}({appointment_time})預訂的{service_name}已被拒絕。\n"
1792
  "原因:{cancellation_reason}\n"
1793
  "感謝您選擇我們的公司。\n"
@@ -1795,8 +2179,8 @@ msgstr "尊敬的{client_name}。\n"
1795
  "{company_phone}\n"
1796
  "{company_website}"
1797
 
1798
- #:
1799
- msgid "Hello.\n"
1800
  "The following booking has been rejected.\n"
1801
  "Reason: {cancellation_reason}\n"
1802
  "Service: {service_name}\n"
@@ -1805,7 +2189,8 @@ msgid "Hello.\n"
1805
  "Client name: {client_name}\n"
1806
  "Client phone: {client_phone}\n"
1807
  "Client email: {client_email}"
1808
- msgstr "你好。\n"
 
1809
  "以下預訂已被拒絕。\n"
1810
  "原因:{cancellation_reason}\n"
1811
  "服務:{service_name}\n"
@@ -1815,2876 +2200,2385 @@ msgstr "你好。\n"
1815
  "客戶電話:{client_phone}\n"
1816
  "客戶電子郵件:{client_email}"
1817
 
1818
- #:
1819
- msgid "Hello.\n"
1820
- "An account was created for you at {site_address}\n"
1821
- "Your user details:\n"
1822
- "user: {new_username}\n"
1823
- "password: {new_password}\n"
1824
- "\n"
1825
- "Thanks."
1826
- msgstr "您好.\n"
1827
- "我們已經為您在{site_address}開設了一個賬戶\n"
1828
- "用戶詳情:\n"
1829
- "用戶名稱: {new_username}\n"
1830
- "用戶密碼: {new_password}\n"
1831
- "\n"
1832
- "謝謝."
1833
 
1834
- #:
1835
- msgid "Dear {client_name},\n"
1836
- "Happy birthday!\n"
1837
- "We wish you all the best.\n"
1838
- "May you and your family be happy and healthy.\n"
1839
  "Thank you for choosing our company.\n"
1840
  "{company_name}\n"
1841
  "{company_phone}\n"
1842
  "{company_website}"
1843
- msgstr "尊敬的{client_name},\n"
1844
- "生日快樂!\n"
1845
- "我們祝你一切順利。\n"
1846
- "願你和你的家人幸福和健康。\n"
 
1847
  "感謝您選擇我們的公司。\n"
1848
  "{company_name}\n"
1849
  "{company_phone}\n"
1850
  "{company_website}"
1851
 
1852
- #:
1853
- msgid "Back"
1854
- msgstr "返回"
1855
 
1856
- #:
1857
- msgid "Book More"
1858
- msgstr "預約更多"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1859
 
1860
- #:
1861
- msgid "Below you can find a list of services selected for booking.\n"
1862
- "Click BOOK MORE if you want to add more services."
1863
- msgstr "您可以在下方看到預約項目列表.\n"
1864
- "如果您想預約更多服務請點擊”繼續添加預約”."
 
 
 
 
 
 
 
 
1865
 
1866
- #:
1867
- msgid "Thank you! Your booking is complete. An email with details of your booking has been sent to you."
1868
- msgstr "謝謝! 您已完成預約。系統將會寄一封您預約的詳細資訊到您的電郵。 "
 
 
 
 
 
 
 
 
 
1869
 
1870
- #:
1871
- msgid "You selected a booking for {service_name} by {staff_name} at {service_time} on {service_date}. The price for the service is {service_price}.\n"
 
1872
  "Please provide your details in the form below to proceed with booking."
1873
- msgstr "您已選由 {staff_name} 負責的 {service_name} 服務預約為 {service_date} {service_time}。預定的服務價格是 {service_price}。\n"
1874
- "請在下個面的表格中留下您的詳細信息或說明,以便安排。"
 
 
1875
 
1876
- #:
1877
  msgid "Please tell us how you would like to pay: "
1878
- msgstr "請選擇您的支付方式: "
1879
 
1880
- #:
1881
  msgid "Please select service: "
1882
- msgstr "請選擇服務: "
1883
 
1884
- #:
1885
- msgid "Below you can find a list of available time slots for {service_name} by {staff_name}.\n"
 
1886
  "Click on a time slot to proceed with booking."
1887
- msgstr "您可以在下方查詢 {service_name} 的 {staff_name} 可預約時間.\n"
 
1888
  "選擇您的預約時間以進行預約。"
1889
 
1890
- #:
1891
  msgid "Card Security Code"
1892
  msgstr "信用卡驗證碼"
1893
 
1894
- #:
1895
  msgid "Expiration Date"
1896
  msgstr "到期日"
1897
 
1898
- #:
1899
  msgid "Credit Card Number"
1900
  msgstr "信用卡號碼"
1901
 
1902
- #:
1903
- msgid "Coupon"
1904
- msgstr "優惠券"
1905
-
1906
- #:
1907
- msgid "Employee"
1908
- msgstr "員工"
1909
 
1910
- #:
1911
  msgid "Finish by"
1912
  msgstr "完成於"
1913
 
1914
- #:
 
 
 
 
 
 
 
 
1915
  msgid "I will pay now with Credit Card"
1916
  msgstr "我會現在使用信用卡支付"
1917
 
1918
- #:
1919
  msgid "I will pay locally"
1920
  msgstr "我會即場支付"
1921
 
1922
- #:
1923
- msgid "I will pay now with Mollie"
1924
- msgstr "我會現在使用手機支付"
1925
-
1926
- #:
1927
- msgid "I will pay now with PayPal"
1928
- msgstr "我會現在使用Paypal支付"
1929
-
1930
- #:
1931
  msgid "I'm available on or after"
1932
  msgstr "我可以在此或之後"
1933
 
1934
- #:
1935
  msgid "Start from"
1936
  msgstr "由"
1937
 
1938
- #:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1939
  msgid "Please tell us your email"
1940
  msgstr "請提供您的電子郵箱"
1941
 
1942
- #:
 
 
1943
  msgid "Please select an employee"
1944
  msgstr "請選擇一位員工"
1945
 
1946
- #:
1947
  msgid "Please tell us your name"
1948
  msgstr "請提供您的姓名"
1949
 
1950
- #:
1951
  msgid "Please tell us your first name"
1952
- msgstr ""
1953
 
1954
- #:
1955
  msgid "Please tell us your last name"
1956
- msgstr ""
1957
 
1958
- #:
1959
  msgid "Please tell us your phone"
1960
  msgstr "請提供您的電話"
1961
 
1962
- #:
1963
- msgid "The selected time is not available anymore. Please, choose another time slot."
1964
- msgstr "所選時段已滿,請選擇其他的時段。"
1965
 
1966
- #:
1967
- msgid "The highlighted time is not available anymore. Please, choose another time slot."
1968
  msgstr "所選時段已滿,請選擇其他的時段。"
1969
 
1970
- #:
 
 
1971
  msgid "Done"
1972
  msgstr "已完成"
1973
 
1974
- #:
1975
  msgid "Signed up"
1976
  msgstr "報名"
1977
 
1978
- #:
1979
- msgid "Capacity"
1980
- msgstr "名額"
1981
-
1982
- #:
1983
- msgid "Appointment"
1984
- msgstr "預約"
1985
-
1986
- #:
1987
- msgid "sent to our system"
1988
- msgstr "發送到我們的系統"
1989
-
1990
- #:
1991
- msgid "more"
1992
- msgstr "增加"
1993
-
1994
- #:
1995
- msgid "less"
1996
- msgstr "减少"
1997
-
1998
- #:
1999
- msgid "Bookly SMS weekly summary"
2000
- msgstr "Bookly SMS每週摘要"
2001
-
2002
- #:
2003
- msgid "Your don't have enough Bookly SMS credits to send this message. Please add funds to your balance and try again."
2004
- msgstr ""
2005
-
2006
- #:
2007
- msgid "Failed to send SMS."
2008
- msgstr "傳送SMS短訊失敗。"
2009
-
2010
- #:
2011
- msgid "Phone number is empty."
2012
- msgstr "電話號碼沒有輸入。"
2013
-
2014
- #:
2015
- msgid "Queued"
2016
- msgstr "排列"
2017
-
2018
- #:
2019
- msgid "Out of credit"
2020
- msgstr "信用額度已全用"
2021
-
2022
- #:
2023
- msgid "Country out of service"
2024
- msgstr "國家暫停服務"
2025
-
2026
- #:
2027
- msgid "Sending"
2028
- msgstr "傳送中"
2029
-
2030
- #:
2031
- msgid "Sent"
2032
- msgstr "已發送"
2033
-
2034
- #:
2035
- msgid "Delivered"
2036
- msgstr "已發貨"
2037
-
2038
- #:
2039
- msgid "Failed"
2040
- msgstr "已失敗"
2041
-
2042
- #:
2043
- msgid "Undelivered"
2044
- msgstr "未送達"
2045
-
2046
- #:
2047
- msgid "Default"
2048
- msgstr "默認"
2049
-
2050
- #:
2051
- msgid "Declined"
2052
- msgstr "下降"
2053
-
2054
- #:
2055
- msgid "Cancelled"
2056
- msgstr "已取消"
2057
-
2058
- #:
2059
- msgid "Error connecting to server."
2060
- msgstr "連線到伺服器發生錯誤。"
2061
-
2062
- #:
2063
- msgid "Dear Bookly SMS customer.\n"
2064
- "We would like to notify you that your Bookly SMS balance fell lower than 5 USD. To use our service without interruptions please recharge your balance by visiting Bookly SMS page <a href='%s'>here</a>.\n"
2065
- "\n"
2066
- "If you want to stop receiving these notifications, please update your settings <a href='%s'>here</a>."
2067
- msgstr "尊敬的Bookly SMS短信的客戶。我們想告訴你,你Bookly短信餘額降至低於5美元。如要継績使用我們的服務,請訪問Bookly短信增值頁面您的餘額<a href=‘%s’>這裏</a> 。\n"
2068
- "\n"
2069
- "如果你想停止接收這些通知,請更新您的設置<a href=‘%s’>這裏</a> 。"
2070
-
2071
- #:
2072
- msgid "Bookly SMS - Low Balance"
2073
- msgstr "Bookly SMS - 餘額過低"
2074
-
2075
- #:
2076
- msgid "Empty password."
2077
- msgstr "空密碼。"
2078
-
2079
- #:
2080
- msgid "Incorrect password."
2081
- msgstr "錯誤密碼。"
2082
-
2083
- #:
2084
- msgid "Incorrect recovery code."
2085
- msgstr "不正確的復原碼。"
2086
-
2087
- #:
2088
- msgid "Incorrect email or password."
2089
- msgstr "郵件信箱或密碼錯誤"
2090
-
2091
- #:
2092
- msgid "Incorrect sender ID"
2093
- msgstr "不正確發送ID"
2094
-
2095
- #:
2096
- msgid "Pending sender ID already exists."
2097
- msgstr "待發件人ID已經存在。"
2098
-
2099
- #:
2100
- msgid "Recovery code expired."
2101
- msgstr "復原碼已過期。"
2102
-
2103
- #:
2104
- msgid "Error sending email."
2105
- msgstr "發送電子郵件時出現錯誤。"
2106
-
2107
- #:
2108
- msgid "User not found."
2109
- msgstr "找不到用戶。"
2110
-
2111
- #:
2112
- msgid "Email already in use."
2113
- msgstr "該郵箱已被使用"
2114
-
2115
- #:
2116
- msgid "Invalid email"
2117
- msgstr "無效的電郵地址"
2118
-
2119
- #:
2120
- msgid "This email is already in use"
2121
- msgstr "該郵箱已被使用"
2122
-
2123
- #:
2124
- msgid "\"%s\" is too long (%d characters max)."
2125
- msgstr "\"%s\" 太長 (最多%d 字)."
2126
-
2127
- #:
2128
- msgid "Invalid number"
2129
- msgstr "無效數字"
2130
-
2131
- #:
2132
- msgid "Invalid date"
2133
- msgstr ""
2134
 
2135
- #:
2136
- msgid "Invalid time"
2137
- msgstr ""
2138
 
2139
- #:
2140
- msgid "Your %s: %s is already associated with another %s.<br/>Press Update if we should update your user data, or press Cancel to edit entered data."
2141
- msgstr ""
2142
 
2143
- #:
2144
- msgid "Rejected"
2145
- msgstr "拒絕"
2146
 
2147
- #:
2148
- msgid "Notification to customer about approved appointment"
2149
- msgstr "通知客戶已確定的預約資料"
2150
 
2151
- #:
2152
- msgid "Notification to customer about approved appointments"
2153
- msgstr "通知客戶有關批准任命"
2154
 
2155
- #:
2156
- msgid "Notification to customer about cancelled appointment"
2157
- msgstr "通知客戶已取消的預約資料"
2158
 
2159
- #:
2160
- msgid "Notification to customer about rejected appointment"
2161
- msgstr "通知客戶關於拒絕任命"
2162
 
2163
- #:
2164
- msgid "Follow-up message in the same day after appointment (requires cron setup)"
2165
- msgstr "服務完成後發送的跟進信息(需要cron的設置)"
2166
 
2167
- #:
2168
- msgid "Notification to customer about their WordPress user login details"
2169
- msgstr "通知客戶關於他們的WordPress用戶登入信息"
2170
 
2171
- #:
2172
- msgid "Notification to customer about pending appointment"
2173
- msgstr "通知客戶有關審核中的預約資料"
2174
 
2175
- #:
2176
- msgid "Evening reminder to customer about next day appointment (requires cron setup)"
2177
- msgstr "預約日前一天晚上的客戶提醒(需要cron的設置)"
2178
 
2179
- #:
2180
- msgid "1st reminder to customer about upcoming appointment (requires cron setup)"
2181
- msgstr "第一次提醒客戶即將到來的預約(需要安裝cron)"
2182
 
2183
- #:
2184
- msgid "2nd reminder to customer about upcoming appointment (requires cron setup)"
2185
- msgstr "第二次提醒客戶即將到來的預約(需要安裝cron)"
2186
 
2187
- #:
2188
- msgid "3rd reminder to customer about upcoming appointment (requires cron setup)"
2189
- msgstr "第三次提醒客戶即將到來的預約(需要安裝cron)"
2190
 
2191
- #:
2192
- msgid "Customer birthday greeting (requires cron setup)"
2193
- msgstr "客戶生日問候(需要cron設置)"
2194
 
2195
- #:
2196
- msgid "Evening notification with the next day agenda to staff member (requires cron setup)"
2197
- msgstr "通知員工第二天日程(需要cron的設置)"
2198
 
2199
- #:
2200
- msgid "Notification to staff member about approved appointment"
2201
- msgstr "通知員工已確定的預約資料"
2202
 
2203
- #:
2204
- msgid "Notification to staff member about cancelled appointment"
2205
- msgstr "通知員工已取消的預約資料"
2206
 
2207
- #:
2208
- msgid "Notification to staff member about rejected appointment"
2209
- msgstr "通知工作人員有關被拒絕任命"
2210
 
2211
- #:
2212
- msgid "Notification to staff member about pending appointment"
2213
- msgstr "通知員工審核中的預約資料"
2214
 
2215
- #:
2216
- msgid "Test message"
2217
- msgstr "測試消息"
2218
 
2219
- #:
2220
- msgid "Local"
2221
- msgstr "即場"
2222
 
2223
- #:
2224
- msgid "Completed"
2225
- msgstr "已完成"
2226
 
2227
- #:
2228
- msgid "%d week"
2229
- msgid_plural "%d weeks"
2230
- msgstr[0] "%d 周"
2231
 
2232
- #:
2233
- msgid "%d h"
2234
- msgstr "%d 小時"
2235
 
2236
- #:
2237
- msgid "%d min"
2238
- msgstr "%d 分"
2239
 
2240
- #:
2241
- msgid "Form view in case of successful booking"
2242
- msgstr ""
2243
 
2244
- #:
2245
- msgid "Form view in case the number of bookings exceeds the limit"
2246
- msgstr ""
 
2247
 
2248
- #:
2249
- msgid "Form view in case of payment has been accepted for processing"
2250
- msgstr ""
2251
 
2252
- #:
2253
- msgid "No result found"
 
 
 
 
 
 
 
 
 
 
2254
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
2255
 
2256
- #:
2257
- msgid "Package"
 
 
 
 
 
 
 
2258
  msgstr ""
 
 
 
 
 
 
 
 
2259
 
2260
- #:
2261
- msgid "Package schedule"
2262
- msgstr ""
 
 
2263
 
2264
- #:
2265
- msgid "messages"
2266
- msgstr ""
 
 
2267
 
2268
- #:
2269
- msgid "First"
2270
- msgstr ""
 
 
2271
 
2272
- #:
2273
- msgid "Previous"
2274
- msgstr ""
 
 
2275
 
2276
- #:
2277
- msgid "Last"
2278
- msgstr ""
2279
 
2280
- #:
2281
- msgid "URL of reject appointment link (to use inside <a> tag)"
2282
- msgstr ""
2283
 
2284
- #:
2285
- msgid "Custom notification"
2286
- msgstr ""
2287
 
2288
- #:
2289
- msgid "Customer's birthday"
2290
- msgstr ""
2291
 
2292
- #:
2293
- msgid "days"
2294
- msgstr ""
2295
 
2296
- #:
2297
- msgid "after"
2298
- msgstr ""
2299
 
2300
- #:
2301
- msgid "at"
2302
- msgstr ""
2303
 
2304
- #:
2305
- msgid "before"
2306
- msgstr ""
2307
 
2308
- #:
2309
- msgid "Custom"
2310
- msgstr ""
2311
 
2312
- #:
2313
- msgid "Start and end times of the appointment"
2314
- msgstr ""
2315
 
2316
- #:
2317
- msgid "Show confirmation dialog before updating customer's data"
2318
- msgstr ""
2319
 
2320
- #:
2321
- msgid "If this option is enabled and customer enters contact info different from the previous order, a warning message will appear asking to update the data."
2322
- msgstr ""
2323
 
2324
- #:
2325
- msgid "Reject appointment URL (success)"
2326
- msgstr ""
2327
 
2328
- #:
2329
- msgid "Set the URL of a page that is shown to staff after they successfully rejected the appointment."
2330
- msgstr ""
2331
 
2332
- #:
2333
- msgid "Reject appointment URL (denied)"
2334
- msgstr ""
2335
 
2336
- #:
2337
- msgid "Set the URL of a page that is shown to staff when the rejection of appointment cannot be done (due to changed status, etc.)."
2338
- msgstr ""
2339
 
2340
- #:
2341
- msgid "You are trying to use the service too often. Please contact us to make a booking."
2342
- msgstr ""
2343
 
2344
- #:
2345
- msgid "%s has reached the limit of bookings for this service"
2346
- msgstr ""
2347
 
2348
- #:
2349
- msgid "URL Settings"
2350
- msgstr ""
2351
 
2352
- #:
2353
- msgid "on the same day"
2354
- msgstr ""
2355
 
2356
- #:
2357
- msgid "Administrators"
2358
- msgstr ""
2359
 
2360
- #:
2361
- msgid "Show notes field"
2362
- msgstr ""
2363
 
2364
- #:
2365
- msgid "customer notes for appointment"
2366
- msgstr ""
2367
 
2368
- #:
2369
- msgid "URL of cancel appointment link with confirmation (to use inside <a> tag)"
2370
- msgstr ""
2371
 
2372
- #:
2373
- msgid "agenda date"
2374
- msgstr ""
2375
 
2376
- #:
2377
- msgid "Attach ICS file"
2378
- msgstr ""
2379
 
2380
- #:
2381
- msgid "New booking"
2382
- msgstr ""
2383
 
2384
- #:
2385
- msgid "Last client's appointment"
2386
- msgstr ""
2387
 
2388
- #:
2389
- msgid "Full day agenda"
2390
- msgstr ""
2391
 
2392
- #:
2393
- msgid "Set period of time when system will attempt to deliver notification to user. Notification will be discarded after period expiration."
2394
- msgstr ""
2395
 
2396
- #:
2397
- msgid "Attachments"
2398
- msgstr ""
2399
 
2400
- #:
2401
- msgid "time zone of client"
2402
- msgstr ""
2403
 
2404
- #:
2405
- msgid "Are you sure you want to dissociate this purchase code from %s?\n"
2406
- "\n"
2407
- "This will also remove the entered purchase code from this site."
2408
- msgstr ""
2409
 
2410
- #:
2411
- msgid "Price correction"
2412
- msgstr ""
2413
 
2414
- #:
2415
- msgid "Increase/Discount (%)"
2416
- msgstr ""
2417
 
2418
- #:
2419
- msgid "Addition/Deduction"
2420
- msgstr ""
2421
 
2422
- #:
2423
- msgid "You are going to delete item which is involved in upcoming appointments. All related appointments will be deleted. Please double check and edit appointments before this item deletion if needed."
 
 
 
2424
  msgstr ""
 
2425
 
2426
- #:
2427
- msgid "Edit appointments"
2428
- msgstr ""
 
 
 
2429
 
2430
- #:
2431
- msgid "Error."
2432
- msgstr ""
 
 
2433
 
2434
- #:
2435
- msgid "Internal Notes"
2436
- msgstr ""
2437
 
2438
- #:
2439
- msgid "%d year"
2440
- msgid_plural "%d years"
2441
- msgstr[0] ""
2442
 
2443
- #:
2444
- msgid "%d month"
2445
- msgid_plural "%d months"
2446
- msgstr[0] ""
2447
 
2448
- #:
2449
- msgid "Set order of the fields in calendar"
2450
- msgstr ""
2451
 
2452
- #:
2453
- msgid "Attach payment"
2454
- msgstr ""
2455
 
2456
- #:
2457
- msgid "Bind payment"
2458
- msgstr ""
2459
 
2460
- #:
2461
- msgid "Payment is not found."
2462
- msgstr ""
2463
 
2464
- #:
2465
- msgid "Invalid day"
2466
- msgstr ""
2467
 
2468
- #:
2469
- msgid "Day is required"
2470
- msgstr ""
2471
 
2472
- #:
2473
- msgid "Month is required"
2474
- msgstr ""
2475
 
2476
- #:
2477
- msgid "Year is required"
2478
- msgstr ""
2479
 
2480
- #:
2481
- msgid "Select day"
2482
- msgstr ""
2483
 
2484
- #:
2485
- msgid "Select month"
2486
- msgstr ""
2487
 
2488
- #:
2489
- msgid "Select year"
2490
- msgstr ""
2491
 
2492
- #:
2493
- msgid "Birthday"
2494
- msgstr ""
2495
 
2496
- #:
2497
- msgid "Selected period doesn't match provider's schedule"
2498
- msgstr ""
2499
 
2500
- #:
2501
- msgid "Selected period doesn't match service schedule"
2502
- msgstr ""
2503
 
2504
- #:
2505
- msgid "The value is taken from client's browser."
2506
- msgstr ""
2507
 
2508
- #:
2509
- msgid "Tax"
2510
- msgstr ""
2511
 
2512
- #:
2513
- msgid "Group discount"
2514
- msgstr ""
2515
 
2516
- #:
2517
- msgid "Coupon discount"
2518
- msgstr ""
2519
 
2520
- #:
2521
- msgid "Send tax information"
2522
- msgstr ""
2523
 
2524
- #:
2525
- msgid "App ID"
2526
- msgstr ""
 
 
2527
 
2528
- #:
2529
- msgid "State/Region"
2530
- msgstr ""
2531
 
2532
- #:
2533
- msgid "Postal Code"
 
 
 
 
 
 
 
 
 
 
2534
  msgstr ""
 
 
 
 
 
 
 
 
2535
 
2536
- #:
2537
- msgid "City"
2538
- msgstr ""
2539
 
2540
- #:
2541
- msgid "Street Address"
2542
- msgstr ""
2543
 
2544
- #:
2545
- msgid "Country is required"
2546
- msgstr ""
2547
 
2548
- #:
2549
- msgid "State is required"
2550
- msgstr ""
2551
 
2552
- #:
2553
- msgid "Postcode is required"
2554
- msgstr ""
 
2555
 
2556
- #:
2557
- msgid "City is required"
2558
- msgstr ""
2559
 
2560
- #:
2561
- msgid "Street is required"
2562
- msgstr ""
2563
 
2564
- #:
2565
- msgid "address of client"
2566
- msgstr ""
 
2567
 
2568
- #:
2569
- msgid "Invoice"
2570
- msgstr ""
2571
 
2572
- #:
2573
- msgid "Phone field required"
2574
- msgstr ""
2575
 
2576
- #:
2577
- msgid "Email field required"
2578
- msgstr ""
2579
 
2580
- #:
2581
- msgid "Both email and phone fields required"
2582
- msgstr ""
2583
 
2584
- #:
2585
- msgid "Additional Address"
2586
- msgstr ""
2587
 
2588
- #:
2589
- msgid "To set up Facebook integration, do the following:"
2590
- msgstr ""
2591
 
2592
- #:
2593
- msgid "Follow the steps at <a href=\"https://developers.facebook.com/docs/apps/register\" target=\"_blank\">https://developers.facebook.com/docs/apps/register</a> to create a Developer Account, register and configure your <b>Facebook App</b>. Below the App Details Panel click <b>Add Platform</b> button, select Website and enter your website URL."
2594
- msgstr ""
2595
 
2596
- #:
2597
- msgid "Go to your <a href=\"https://developers.facebook.com/apps/\" target=\"_blank\">App Dashboard</a>. In the left side navigation panel of the App Dashboard, click <b>Settings > Basic</b> to view the App Details Panel with your <b>App ID</b>. Use it in the form below."
2598
- msgstr ""
2599
 
2600
- #:
2601
- msgid "Additional address is required"
2602
- msgstr ""
2603
 
2604
- #:
2605
- msgid "Merge with"
2606
- msgstr ""
2607
 
2608
- #:
2609
- msgid "Select for merge"
2610
- msgstr ""
2611
 
2612
- #:
2613
- msgid "Merge list"
2614
- msgstr ""
2615
 
2616
- #:
2617
- msgid "Merge customers"
2618
- msgstr ""
2619
 
2620
- #:
2621
- msgid "You are about to merge customers from the merge list with the selected one. This will result in losing the merged customers and moving all their appointments to the selected customer. Are you sure you want to continue?"
2622
- msgstr ""
2623
 
2624
- #:
2625
- msgid "Merge"
 
 
 
 
 
 
 
2626
  msgstr ""
 
 
 
 
2627
 
2628
- #:
2629
- msgid "Allow duplicate customers"
2630
- msgstr ""
2631
 
2632
- #:
2633
- msgid "If enabled, a new user will be created if any of the registration data during the booking is different."
2634
- msgstr ""
2635
 
2636
- #:
2637
- msgid "Sort by"
2638
- msgstr ""
2639
 
2640
- #:
2641
- msgid "Best Sellers"
2642
- msgstr ""
2643
 
2644
- #:
2645
- msgid "Best Rated"
2646
- msgstr ""
2647
 
2648
- #:
2649
- msgid "Newest Items"
2650
- msgstr ""
2651
 
2652
- #:
2653
- msgid "Price: low to high"
2654
- msgstr ""
2655
 
2656
- #:
2657
- msgid "Price: high to low"
2658
- msgstr ""
2659
 
2660
- #:
2661
- msgid "New"
2662
- msgstr ""
2663
 
2664
- #:
2665
- msgid "%d sale"
2666
- msgid_plural "%d sales"
2667
- msgstr[0] ""
2668
 
2669
- #:
2670
- msgid "%d review"
2671
- msgid_plural "%d reviews"
2672
- msgstr[0] ""
2673
 
2674
- #:
2675
- msgid "Installed"
2676
- msgstr ""
2677
 
2678
- #:
2679
- msgid "Get it!"
2680
- msgstr ""
2681
 
2682
- #:
2683
- msgid "I accept <a href=\"%1$s\" target=\"_blank\">Service Terms</a> and <a href=\"%2$s\" target=\"_blank\">Privacy Policy</a>"
2684
- msgstr ""
2685
 
2686
- #:
2687
- msgid "N/A"
2688
- msgstr ""
2689
 
2690
- #:
2691
- msgid "Create payment"
2692
- msgstr ""
2693
 
2694
- #:
2695
- msgid "Search payment"
2696
- msgstr ""
2697
 
2698
- #:
2699
- msgid "Payment ID"
2700
- msgstr ""
2701
 
2702
- #:
2703
- msgid "Addons"
2704
- msgstr ""
2705
 
2706
- #:
2707
- msgid "This function is not available in the Bookly."
2708
- msgstr ""
2709
 
2710
- #:
2711
- msgid "In <b>Checkout Options</b> of your 2Checkout account do the following steps:"
2712
- msgstr ""
2713
 
2714
- #:
2715
- msgid "In <b>Direct Return</b> select <b>Header Redirect (Your URL)</b>."
2716
- msgstr ""
2717
 
2718
- #:
2719
- msgid "In <b>Approved URL</b> enter the URL of your booking page."
2720
- msgstr ""
2721
 
2722
- #:
2723
- msgid "Finally provide the necessary information in the form below."
2724
- msgstr ""
2725
 
2726
- #:
2727
- msgid "Account Number"
2728
- msgstr ""
2729
 
2730
- #:
2731
- msgid "Secret Word"
2732
- msgstr ""
2733
 
2734
- #:
2735
- msgid "Sandbox Mode"
2736
- msgstr "沙箱模式"
2737
 
2738
- #:
2739
- msgid "Invalid token provided"
2740
- msgstr "提供的代幣(Token)無效"
2741
 
2742
- #:
2743
- msgid "Invalid session"
2744
- msgstr ""
2745
 
2746
- #:
2747
- msgid "Google Calendar event"
2748
- msgstr ""
2749
 
2750
- #:
2751
- msgid "Synchronization mode"
2752
- msgstr ""
2753
 
2754
- #:
2755
- msgid "With \"One-way\" sync Bookly pushes new appointments and any further changes to Google Calendar. With \"Two-way front-end only\" sync Bookly will additionally fetch events from Google Calendar and remove corresponding time slots before displaying the Time step of the booking form (this may lead to a delay when users click Next to get to the Time step). With \"Two-way\" sync all bookings created in Bookly Calendar will be automatically copied to Google Calendar and vice versa. Important: your website must use HTTPS. Google Calendar API will be able to send notifications only if there is a valid SSL certificate installed on your web server."
2756
- msgstr ""
2757
 
2758
- #:
2759
- msgid "One-way"
2760
- msgstr ""
2761
 
2762
- #:
2763
- msgid "Two-way front-end only"
2764
- msgstr ""
2765
 
2766
- #:
2767
- msgid "Two-way"
2768
- msgstr ""
2769
 
2770
- #:
2771
- msgid "Sync appointments history"
2772
- msgstr ""
2773
 
2774
- #:
2775
- msgid "Specify how many days of past calendar data you wish to sync at the time of initial sync. If you enter 0, synchronization of past events will not be performed."
2776
- msgstr ""
2777
 
2778
- #:
2779
- msgid "Copy Google Calendar event titles"
2780
- msgstr ""
2781
 
2782
- #:
2783
- msgid "If enabled then titles of Google Calendar events will be copied to Bookly appointments. If disabled, a standard title \"Google Calendar event\" will be used."
2784
- msgstr ""
2785
 
2786
- #:
2787
- msgid "Synchronize with Google Calendar"
2788
- msgstr ""
2789
 
2790
- #:
2791
- msgid "Google Calendar"
2792
- msgstr "Google日曆"
2793
 
2794
- #:
2795
- msgid "Calendars synchronized successfully."
2796
- msgstr ""
2797
 
2798
- #:
2799
- msgid "API Login ID"
2800
- msgstr ""
2801
 
2802
- #:
2803
- msgid "API Transaction Key"
2804
- msgstr ""
2805
 
2806
- #:
2807
- msgid "Columns"
2808
- msgstr "列"
2809
 
2810
- #:
2811
- msgid "To use the cart, disable integration with WooCommerce <a href=\"%s\">here</a>."
2812
- msgstr "要使用購物車,停止使用WooCommerce <a href=“%s”>here</a> 。"
2813
 
2814
- #:
2815
- msgid "Remove"
2816
- msgstr "清除"
2817
 
2818
- #:
2819
- msgid "Total tax"
2820
- msgstr ""
2821
 
2822
- #:
2823
- msgid "Waiting list"
2824
- msgstr ""
2825
 
2826
- #:
2827
- msgid "Spare time"
2828
- msgstr ""
2829
 
2830
- #:
2831
- msgid "Add simple service"
2832
- msgstr ""
2833
 
2834
- #:
2835
- msgid "=== Spare time ==="
2836
- msgstr ""
2837
 
2838
- #:
2839
- msgid "Compound"
2840
- msgstr ""
2841
 
2842
- #:
2843
- msgid "Part of compound service"
2844
- msgstr ""
2845
 
2846
- #:
2847
- msgid "Compound service"
2848
- msgstr ""
2849
 
2850
- #:
2851
- msgid "The total price for the booking is {total_price}."
2852
- msgstr "您預約的服務總價格是 {total_price}."
2853
 
2854
- #:
2855
- msgid "You selected to book {appointments_count} appointments with total price {total_price}."
2856
- msgstr "您選擇預訂{appointments_count}個約會,總價為{total_price}。"
 
2857
 
2858
- #:
2859
- msgid "Coupons"
2860
- msgstr "優惠券"
2861
 
2862
- #:
2863
- msgid "New coupon series"
2864
- msgstr ""
 
2865
 
2866
- #:
2867
- msgid "New coupon"
2868
- msgstr "新的優惠券"
2869
 
2870
- #:
2871
- msgid "Edit coupon"
2872
- msgstr "編輯優惠券"
2873
 
2874
- #:
2875
- msgid "You can enter a mask containing asterisks \"*\" for variables here and click Generate."
2876
- msgstr ""
2877
 
2878
- #:
2879
- msgid "Generate"
2880
- msgstr ""
 
2881
 
2882
- #:
2883
- msgid "Mask"
2884
- msgstr ""
2885
 
2886
- #:
2887
- msgid "Enter a mask containing asterisks \"*\" for variables."
2888
- msgstr ""
2889
 
2890
- #:
2891
- msgid "Discount (%)"
2892
- msgstr "折扣(%)"
2893
 
2894
- #:
2895
- msgid "Deduction"
2896
- msgstr "扣除"
2897
 
2898
- #:
2899
- msgid "Usage limit"
2900
- msgstr "使用限額"
2901
 
2902
- #:
2903
- msgid "Once per customer"
 
 
2904
  msgstr ""
 
 
2905
 
2906
- #:
2907
- msgid "Select this option to limit the use of the coupon to 1 time per customer."
2908
- msgstr ""
2909
 
2910
- #:
2911
- msgid "Date limit (from and to)"
2912
- msgstr ""
2913
 
2914
- #:
2915
- msgid "No limit"
2916
- msgstr ""
2917
 
2918
- #:
2919
- msgid "Clear field"
2920
- msgstr ""
2921
 
2922
- #:
2923
- msgid "Limit appointments in cart (min and max)"
2924
- msgstr ""
2925
 
2926
- #:
2927
- msgid "Specify minimum and maximum (optional) number of services of the same type required to apply a coupon."
2928
- msgstr ""
2929
 
2930
- #:
2931
- msgid "Limit to customers"
2932
- msgstr ""
2933
 
2934
- #:
2935
- msgid "Create another coupon"
2936
- msgstr ""
2937
 
2938
- #:
2939
- msgid "Add Coupon Series"
 
2940
  msgstr ""
 
 
2941
 
2942
- #:
2943
- msgid "Add Coupon"
2944
- msgstr "添加優惠卷"
2945
 
2946
- #:
2947
- msgid "Show only active"
2948
- msgstr ""
 
2949
 
2950
- #:
2951
- msgid "Customers limit"
2952
- msgstr ""
2953
 
2954
- #:
2955
- msgid "Number of times used"
2956
- msgstr
3
  "MIME-Version: 1.0\n"
4
  "Content-Type: text/plain; charset=UTF-8\n"
5
  "Content-Transfer-Encoding: 8bit\n"
6
+ "X-Generator: Loco https://localise.biz/\n"
7
  "Project-Id-Version: Bookly\n"
8
+ "Language: zh_TW\n"
9
  "Plural-Forms: nplurals=1; plural=0;\n"
10
+ "Report-Msgid-Bugs-To: \n"
11
+ "POT-Creation-Date: 2020-02-12 09:03+0000\n"
12
+ "PO-Revision-Date: 2020-02-12 09:16+0000\n"
13
+ "Last-Translator: support@bookly.info\n"
14
+ "Language-Team: Chinese (Taiwan)\n"
15
+ "X-Loco-Version: 2.3.1; wp-5.3"
16
 
17
+ msgid "Invoice #{invoice_number} for your appointment"
18
+ msgstr "您預約的發票#{invoice_number}"
 
19
 
20
+ msgid ""
21
+ "Dear {client_name}.\n"
22
+ "\n"
23
+ "Attached please find invoice #{invoice_number} for your appointment.\n"
24
+ "\n"
25
+ "Thank you for choosing our company.\n"
26
+ "\n"
27
+ "{company_name}\n"
28
+ "{company_phone}\n"
29
+ "{company_website}"
30
+ msgstr ""
31
+ "尊敬的{client_name},\n"
32
+ "\n"
33
+ "隨函附上預約編號#{invoice_number} 。\n"
34
+ "\n"
35
+ "感謝您選擇我們的公司。\n"
36
+ "\n"
37
+ "{company_name}\n"
38
+ "{company_phone}\n"
39
+ "{company_website}"
40
 
41
+ msgid "New invoice"
42
+ msgstr "新發票"
 
43
 
44
+ msgid ""
45
+ "Hello.\n"
46
+ "You have a new invoice #{invoice_number} for an appointment scheduled by "
47
+ "{client_first_name} {client_last_name}.\n"
48
+ "Please download invoice here: {invoice_link}"
49
+ msgstr ""
50
+ "你好,\n"
51
+ "你有新的發票,來自{client_first_name} {client_last_name}的預約。\n"
52
+ "請下載發票: {invoice_link}"
53
 
54
+ msgid "BILL TO"
55
+ msgstr "記賬到"
 
56
 
57
+ msgid "Invoice#"
58
+ msgstr "發票#"
 
59
 
60
+ msgid "Date"
61
+ msgstr "日期"
 
62
 
63
+ msgid "Due date"
64
+ msgstr "到期日"
 
65
 
66
+ msgid "INVOICE"
67
+ msgstr "發票"
 
68
 
69
+ msgid "Thank you for your business"
70
+ msgstr "感謝您的業務"
 
71
 
72
+ msgid ""
73
+ "Invoices add-on requires your customers address information. So options "
74
+ "\"Make address field mandatory\" in Settings/Customers and \"Show address "
75
+ "field\" in Appearance/Details are activated automatically and can be "
76
+ "disabled after Invoices add-on is deactivated."
77
+ msgstr ""
78
+ "發票插件需要您的客戶地址。因此,在設置/客戶中的\"將地址字段設為必填項\"和外觀/詳細信息中的\"顯示地址字段\"選項將自動激活,並且可以在停用發票插件後將中止。"
79
 
80
+ msgid "Invoice due days"
81
+ msgstr "發票到期日期"
 
82
 
83
+ msgid "This setting specifies the due period for the invoice (in days)."
84
+ msgstr "此設置指定發票的到期期限(天數)。"
 
85
 
86
+ msgid "Invoice template"
87
+ msgstr "發票樣式"
 
88
 
89
+ msgid "Specify the template for the invoice."
90
+ msgstr "指定發票模板。"
 
91
 
92
+ msgid "Preview"
93
+ msgstr "預視"
94
+
95
+ msgid "Invoices"
96
+ msgstr "發票"
97
 
 
98
  msgid "Settings saved."
99
  msgstr "設定已保存。"
100
 
101
+ msgid "Download invoices"
102
+ msgstr "下載發票"
 
103
 
104
+ msgid "invoice creation date"
105
+ msgstr "發票建立日期"
 
106
 
107
+ msgid "due date of invoice"
108
+ msgstr "發票到期日"
 
109
 
110
+ msgid "number of days to submit payment"
111
+ msgstr "付款到期天"
 
112
 
113
+ msgid "invoice link"
114
+ msgstr "發票連結"
 
115
 
116
+ msgid "invoice number"
117
+ msgstr "發票號碼"
 
118
 
119
+ msgid "Attach invoice"
120
+ msgstr "附加發票"
 
121
 
122
+ msgid ""
123
+ "Invoice due days: Please enter value in the following range (in days) - 1 to "
124
+ "365."
125
+ msgstr "發票到期日期:請輸入有效的日數 - 1至365"
126
 
127
+ msgid "Service"
128
+ msgstr "服務"
 
129
 
130
+ msgid "Provider"
131
+ msgstr "供應者"
 
132
 
133
+ msgid "Deposit"
134
+ msgstr "存款"
 
135
 
136
+ msgid "Price"
137
+ msgstr "售價"
 
138
 
139
+ msgid "Tax"
140
+ msgstr ""
 
141
 
142
+ msgid "N/A"
143
+ msgstr "不適用"
 
144
 
145
+ msgid "Subtotal"
146
+ msgstr "小計"
 
147
 
148
+ msgid "Coupon discount"
149
+ msgstr "優惠券折扣"
 
150
 
151
+ msgid "Group discount"
152
+ msgstr "組別折扣"
 
153
 
154
+ msgid "Total"
155
+ msgstr "總計"
 
156
 
157
+ msgid "Paid"
158
+ msgstr "付費"
 
159
 
160
+ msgid "Due"
161
+ msgstr "應有"
 
162
 
163
+ msgid "Discount"
164
+ msgstr "折扣"
 
165
 
166
+ msgid "Outlook Calendar event"
167
+ msgstr "Outlook日曆事件"
 
168
 
169
+ msgid "Name"
170
+ msgstr "姓名"
 
171
 
172
+ msgid "Email"
173
+ msgstr "電郵地址"
 
174
 
175
+ msgid "Phone"
176
+ msgstr "電話號碼"
 
177
 
178
+ msgid "Outlook Calendar integration"
179
+ msgstr "Outlook日曆載入"
 
180
 
181
+ msgid "Synchronize staff member appointments with Outlook Calendar."
182
+ msgstr "將員工預約與Outlook日曆同步。"
 
183
 
184
+ msgid "Connect"
185
+ msgstr "連接"
 
186
 
187
+ #, php-format
188
+ msgid "Please configure Outlook Calendar <a href=\"%s\">settings</a> first"
189
+ msgstr "請首先在<a href=\"%s\">設置</a>中設定Outlook日曆。"
190
 
191
+ msgid "Connected"
192
+ msgstr "已連接"
 
193
 
194
+ msgid "disconnect"
195
+ msgstr "中斷"
 
196
 
197
+ msgid "Calendar"
198
+ msgstr "日曆"
 
199
 
200
+ msgid ""
201
+ "When you connect a calendar all future and past events will be synchronized "
202
+ "according to the selected synchronization mode. This may take a few minutes. "
203
+ "Please wait."
204
+ msgstr "當您連接日曆時,所有將來和過​​去的事件將根據所選的同步模式進行同步。這可能需要幾分鐘的時間。請耐心等待。"
205
 
206
+ msgid "-- Select calendar --"
207
+ msgstr "-- 選擇日曆 -- "
 
208
 
209
+ msgid "Can't change calendar for archived staff"
210
+ msgstr "無法更改已存檔員工的日曆"
211
+
212
+ msgid "Instructions"
213
+ msgstr "使用說明"
214
+
215
+ msgid ""
216
+ "Important: Your website must use <b>HTTPS</b>. The Outlook Calendar API will "
217
+ "not work with your website if there is no valid SSL certificate installed on "
218
+ "your web server."
219
  msgstr ""
220
+ "重要提示:您的網站必須使用<b>HTTPS</b>。如果您的網路服務器上沒有安裝有效的SSL證書,則Outlook日曆API將不適用於您的網站。"
221
 
222
+ msgid "To find your Application ID and Application Secret, do the following:"
223
+ msgstr "要查找您的Application ID和Application Secret,請執行以下操作:"
224
+
225
+ #, php-format
226
+ msgid ""
227
+ "Sign in to the <a href=\"%s\" target=\"_blank\">Azure portal</a> using "
228
+ "either a work or school account or a personal Microsoft account."
229
  msgstr ""
230
+ "使用工作或學校帳戶或個人Microsoft帳戶登錄<a href=\"%s\" target=\"_blank\"> Azure平台</a>。"
231
 
232
+ msgid ""
233
+ "If your account gives you access to more than one tenant, select your "
234
+ "account in the top right corner, and set your portal session to the Azure AD "
235
+ "tenant that you want."
236
+ msgstr "如果您的帳戶允許您訪問多個租戶,請在右上角選擇您的帳戶,然後將平台設為所需的Azure AD租戶。"
237
 
238
+ msgid ""
239
+ "In the left-hand navigation pane, select the <b>Azure Active Directory</b> "
240
+ "service, and then select <b>App registrations &gt; New registration</b>."
241
+ msgstr ""
242
+ "在左側導航窗格中,選擇<b>Azure Active Directory </b>服務,然後選擇<b>應用程式註冊 &gt; 新註冊</b>。"
243
 
244
+ msgid ""
245
+ "When the <b>Register an application</b> page appears, enter your "
246
+ "application's <b>Name</b> and <b>Redirect URI</b> found below on this page. "
247
+ "When finished, select <b>Register</b>."
248
+ msgstr ""
249
+ "當<b>註冊應用程式</b>頁面出現時,輸入在此頁面下方找到的應用程式的<b>名稱</b>和<b>重定向URI </b>。完成後,選擇<b>註冊</b>。"
250
 
251
+ msgid ""
252
+ "Azure AD assigns a unique application (client) ID to your app, and you're "
253
+ "taken to your application's <b>Overview</b> page."
254
+ msgstr "Azure AD為您的應用程式分配一個獨一無二的應用程式(客戶端)ID,您將被帶到應用程式的<b>總覽</b>頁面。"
255
 
256
+ msgid ""
257
+ "Copy the <b>Application (client) ID</b> and insert it into the form below on "
258
+ "this page."
259
+ msgstr "複製<b>應用程式(客戶)ID </b>,並將其插入此頁面下方的表格中。"
260
 
261
+ msgid ""
262
+ "Under <b>Certificates &amp; secrets</b>, choose <b>New client secret</b>, "
263
+ "set <b>Expires</b> to <b>Never</b> and click <b>Add</b>. Copy the app secret "
264
+ "from the <b>Client secrets</b> list before leaving the page. Insert the "
265
+ "secret into the form below on this page."
266
+ msgstr ""
267
+ "在<b>Certificates &amp; secrets</b>中,選擇<b>New client secret</b>,將<b>過期</b>"
268
+ "設置為<b>從不</b>,然後選擇<b>添加</b>。離開頁面前,從<b>Client secrets</b>"
269
+ "列表中複製應用程式秘密。將它插入到此頁面下方的表單中。"
270
 
271
+ msgid ""
272
+ "Under <b>API permissions</b>, choose <b>Add a permission</b>, and select <b>"
273
+ "Microsoft Graph &gt; Delegated permissions</b>. In <b>Select permissions</b> "
274
+ "find <b>Calendars.ReadWrite</b>, select it and click <b>Add permissions</b> "
275
+ "button."
276
+ msgstr ""
277
+ "在<b> API權限</b>下,選擇<b>添加權限</b>,然後選擇<b> Microsoft Graph &gt; 委派的權限</b>。在<b>"
278
+ "選擇權限</b>中找出和選擇<b> Calendars.ReadWrite </b>,然後單擊<b>添加權限</b>按鈕。"
279
 
280
+ msgid "<b>Save</b> your changes."
281
+ msgstr "儲存您的改變。"
 
282
 
283
+ msgid ""
284
+ "Go to Staff Members, select a staff member and click <b>Connect</b> which is "
285
+ "located at the bottom of the page."
286
+ msgstr "轉到服務員工,選擇一名員工,然後按位於網頁底部的 <b>連接 </b>。"
287
 
288
+ msgid "Application ID"
289
+ msgstr "應用程式號"
 
290
 
291
+ msgid "The Application ID obtained from the Microsoft App Registration Portal."
292
+ msgstr "從Microsoft應用程式註冊平台中獲得的Application ID。"
 
293
 
294
+ msgid "Application secret"
295
+ msgstr "Application secret"
 
296
 
297
+ msgid ""
298
+ "The Application Secret password obtained from the Microsoft App Registration "
299
+ "Portal."
300
+ msgstr "從Microsoft應用程式註冊平台中獲得的Application Secret密碼。"
301
 
302
+ msgid "Redirect URI"
303
+ msgstr "轉向連接URI"
 
304
 
305
+ msgid ""
306
+ "Enter this URL as a Redirect URLs in the Microsoft App Registration Portal."
307
+ msgstr "在Microsoft App註冊平台中輸入此URL作為重定向URL。"
308
 
309
+ msgid "Synchronization mode"
310
+ msgstr "同步模式"
 
311
 
312
+ msgid ""
313
+ "With \"One-way\" sync Bookly pushes new appointments and any further changes "
314
+ "to Outlook Calendar. With \"Two-way front-end only\" sync Bookly will "
315
+ "additionally fetch events from Outlook Calendar and remove corresponding "
316
+ "time slots before displaying the Time step of the booking form (this may "
317
+ "lead to a delay when users click Next to get to the Time step). With \"Two-"
318
+ "way\" sync all bookings created in Bookly Calendar will be automatically "
319
+ "copied to Outlook Calendar and vice versa."
320
+ msgstr ""
321
+ "通過\"單向\"同步,Bookly可以將新預約和任何進一步的更改推送到Outlook日曆。使用\"雙向(僅前端)\"同步,Bookly可將從Outlook日曆中獲取的事件並刪除相應的時間,然後顯示預訂表單的\"時間\"步驟(這可能會導致用戶選擇\"下一步\"進入\"時間\"步驟時出現延遲)。通過\"雙向\"同步,在Bookly日曆中創建的所有預訂將自動複製到Outlook日曆,反之亦然。"
322
 
323
+ msgid "One-way"
324
+ msgstr "單向"
 
325
 
326
+ msgid "Two-way front-end only"
327
+ msgstr "雙向 僅前端"
 
328
 
329
+ msgid "Two-way"
330
+ msgstr "雙向 "
 
331
 
332
+ msgid "Sync appointments history"
333
+ msgstr "預約同步歷史"
 
334
 
335
+ msgid ""
336
+ "Specify how many days of past calendar data you wish to sync at the time of "
337
+ "initial sync. If you enter 0, synchronization of past events will not be "
338
+ "performed."
339
+ msgstr "指定您希望在初次同步時希望同步過去幾天的數據。如果輸入0,將不執行過去事件的同步。"
340
 
341
+ msgid "Copy Outlook Calendar event titles"
342
+ msgstr "複製Outlook日曆活動標題"
 
 
 
 
 
343
 
344
+ msgid ""
345
+ "If enabled then titles of Outlook Calendar events will be copied to Bookly "
346
+ "appointments. If disabled, a standard title \"Outlook Calendar event\" will "
347
+ "be used."
348
+ msgstr "如果啟用,則Outlook日曆事件的標題將被複製到Bookly預約中。如果不啟用,將使用標準標題\"Outlook日曆事件\"。"
349
 
350
+ msgid "Limit number of fetched events"
351
+ msgstr "獲取事件的數量限制"
 
352
 
353
+ msgid ""
354
+ "If there is a lot of events in Outlook Calendar sometimes this leads to a "
355
+ "lack of memory in PHP when Bookly tries to fetch all events. You can limit "
356
+ "the number of fetched events here."
357
+ msgstr "如果Outlook日曆中有很多事件,那麼當Bookly嘗試獲取所有事件時,這有時會導致PHP記憶體不足。您可以在此處限制獲取的事件數量。"
358
 
359
+ msgid "Template for event title"
360
+ msgstr "預約標題的模板"
 
361
 
362
+ msgid ""
363
+ "Configure what information should be placed in the title of Outlook Calendar "
364
+ "event. Available codes are {service_name}, {staff_name} and {client_names}."
365
  msgstr ""
366
+ "配置應在Outlook日曆事件的標題中放置哪些信息。可用代碼為{service_name},{staff_name}和{client_names}。"
367
 
368
+ msgid "Appointment section"
369
+ msgstr "預約部分"
 
 
 
 
 
 
 
 
 
370
 
371
+ msgid "This section describes information that is displayed about appointment."
372
+ msgstr "本節將顯示預約的信息。"
 
373
 
374
+ msgid "Customer section"
375
+ msgstr "客戶部分"
 
376
 
377
+ msgid ""
378
+ "This section describes information that is displayed about each participant "
379
+ "of the appointment."
380
+ msgstr "本節將顯示預約中的每個參與者信息。"
381
 
382
+ msgid "customer notes for appointment"
383
+ msgstr "客戶須知"
 
384
 
385
+ msgid "email of client"
386
+ msgstr "客戶電郵"
 
387
 
388
+ msgid "full name of client"
389
+ msgstr "客戶全名"
 
390
 
391
+ msgid "first name of client"
392
+ msgstr "客戶的名字"
 
393
 
394
+ msgid "last name of client"
395
+ msgstr "客戶的姓"
 
396
 
397
+ msgid "phone of client"
398
+ msgstr "客戶電話"
 
399
 
400
+ msgid "status of payment"
401
+ msgstr "付款狀態"
 
402
 
403
+ msgid "payment type"
404
+ msgstr "付款方式"
 
405
 
406
+ msgid "status of appointment"
407
+ msgstr "預約狀況"
 
408
 
409
+ msgid "total price of booking (sum of all cart items after applying coupon)"
410
+ msgstr "預訂的總價格(所有購物車項目的總和,未使用優惠券前)"
 
411
 
412
+ msgid "date of appointment"
413
+ msgstr "預約日期"
 
414
 
415
+ msgid "time of appointment"
416
+ msgstr "預約時間"
 
417
 
418
+ msgid "booking number"
419
+ msgstr "訂單號"
 
420
 
421
+ msgid "name of category"
422
+ msgstr "類別名稱"
 
423
 
424
+ msgid "address of company"
425
+ msgstr "公司地址"
 
426
 
427
+ msgid "name of company"
428
+ msgstr "公司名稱"
 
429
 
430
+ msgid "company phone"
431
+ msgstr "公司電話"
 
432
 
433
+ msgid "company web-site address"
434
+ msgstr "公司網站地址"
 
435
 
436
+ msgid "info of service"
437
+ msgstr "服務內容"
 
438
 
439
+ msgid "name of service"
440
+ msgstr "服務名稱"
 
441
 
442
+ msgid "price of service"
443
+ msgstr "服務收費"
 
444
 
445
+ msgid "email of staff"
446
+ msgstr "員工電郵"
 
447
 
448
+ msgid "info of staff"
449
+ msgstr "員工資訊"
 
450
 
451
+ msgid "name of staff"
452
+ msgstr "員工名稱"
 
453
 
454
+ msgid "phone of staff"
455
+ msgstr "員工電話"
 
456
 
457
+ msgid "Outlook Calendar"
458
+ msgstr "Outlook日曆"
 
459
 
460
+ msgid "Disabled"
461
+ msgstr "停用"
 
462
 
463
+ msgid "Synchronize with Outlook Calendar"
464
+ msgstr "與Outlook日曆同步"
 
465
 
466
+ msgid "Calendars synchronized successfully."
467
+ msgstr "日曆已成功同步。"
 
468
 
469
+ msgid "Custom Fields"
470
+ msgstr "自定欄位"
 
471
 
472
+ msgid "Incorrect code"
473
+ msgstr "代碼不正確"
 
474
 
475
+ msgid "Required"
476
+ msgstr "必需"
 
477
 
478
+ msgid "combined values of all custom fields"
479
+ msgstr "所有自訂欄位的組合值"
 
480
 
481
+ msgid "Bind fields to services"
482
+ msgstr "綁定欄位到服務"
 
483
 
484
+ msgid ""
485
+ "When this setting is enabled you will be able to create service specific "
486
+ "custom fields."
487
+ msgstr "如果啟用此設置,您將能夠創建服務特定的自定義字段。"
488
 
489
+ msgid "Merge repeating custom fields for multiple bookings of the service"
490
+ msgstr "合併多次預約服務重複的自定義字段"
 
491
 
492
+ msgid ""
493
+ "If enabled, customers will see custom fields for unique appointments while "
494
+ "booking multiple instances of the service. Repeating custom fields are "
495
+ "merged (collapsed) into one field. If disabled, customers will see custom "
496
+ "fields for each appointment in the set of bookings."
497
  msgstr ""
498
+ "如果啟用,客戶在預約多個服務時將看到單一預約的自定義字段。重複的自定義字段將合併(折疊)為一個字段。如果不啟用,客戶將在預約集中看到每個約會的自定義字段。"
499
 
500
+ msgid "Text Field"
501
+ msgstr "文字欄"
 
502
 
503
+ msgid "Text Area"
504
+ msgstr "多行文字框"
 
505
 
506
+ msgid "Text Content"
507
+ msgstr "文本内容"
 
508
 
509
+ msgid "Checkbox Group"
510
+ msgstr "核取方塊組"
 
511
 
512
+ msgid "Radio Button Group"
513
+ msgstr "單選按鈕組"
 
514
 
515
+ msgid "Drop Down"
516
+ msgstr "下拉顯示"
 
517
 
518
+ msgid "Captcha"
519
+ msgstr "Captcha 驗證"
 
520
 
521
+ msgid "HTML allowed in all texts and labels."
522
+ msgstr "所有文字和標籤皆允許HTML語法"
 
523
 
524
+ msgid "Reorder"
525
+ msgstr "重新排序"
 
 
526
 
527
+ msgid "Remove field"
528
+ msgstr "刪除文字欄"
 
529
 
530
+ msgid "Enter a label"
531
+ msgstr "輸入標籤"
 
532
 
533
+ msgid "Required field"
534
+ msgstr "必填的文字欄"
 
535
 
536
+ msgid "Enter a content"
537
+ msgstr "輸入內容"
 
538
 
539
+ msgid "Checkbox"
540
+ msgstr "核取方塊"
 
541
 
542
+ msgid "Radio Button"
543
+ msgstr "單選按鈕"
 
544
 
545
+ msgid "Option"
546
+ msgstr "選項"
 
547
 
548
+ msgid "Remove item"
549
+ msgstr "刪除此項目"
 
550
 
551
+ msgid "All services"
552
+ msgstr "所有服務"
 
553
 
554
+ msgid "No service selected"
555
+ msgstr "未選擇服務"
 
556
 
557
+ msgid "Show custom fields"
558
+ msgstr "顯示自定義字段"
 
559
 
560
+ msgid "extended staff agenda for next day"
561
+ msgstr "延長工作人員議程到第二天"
 
562
 
563
+ msgid "combined values of all custom fields (formatted in 2 columns)"
564
+ msgstr "所有的自定義字段的組合值(以2列格式)"
 
565
 
566
+ msgid "Another code"
567
+ msgstr "另一代碼"
568
+
569
+ msgid "Notification to customer about approved recurring appointment"
570
+ msgstr "通知客戶有關批准的定期預約"
571
+
572
+ msgid "Your appointment information"
573
+ msgstr "您的預約信息"
574
+
575
+ msgid ""
576
+ "Dear {client_name}.\n"
577
+ "\n"
578
+ "This is a confirmation that you have booked {service_name} (x "
579
+ "{recurring_count}).\n"
580
+ "\n"
581
+ "Please find the schedule of your booking below.\n"
582
+ "\n"
583
+ "{appointment_schedule}\n"
584
+ "\n"
585
+ "We are waiting you at {company_address}.\n"
586
+ "\n"
587
+ "Thank you for choosing our company.\n"
588
+ "\n"
589
+ "{company_name}\n"
590
+ "{company_phone}\n"
591
+ "{company_website}"
592
  msgstr ""
593
+ "尊敬的{client_name},\n"
594
+ "\n"
595
+ "我們確認您預約了{service_name}(x {recurring_count})。\n"
596
+ "\n"
597
+ "請在下面查閱服務時間表。\n"
598
+ "\n"
599
+ "{appointment_schedule}\n"
600
+ "\n"
601
+ "我們會在{company_address}等候您。\n"
602
+ "\n"
603
+ "感謝您選擇我們的公司。\n"
604
+ "\n"
605
+ "{company_name}\n"
606
+ "{company_phone}\n"
607
+ "{company_website}"
608
 
609
+ msgid "Notification to staff member about approved recurring appointment"
610
+ msgstr "通知員工有關批准了的定期預約"
611
+
612
+ msgid "New booking information"
613
+ msgstr "新預約信息"
614
+
615
+ msgid ""
616
+ "Hello.\n"
617
+ "\n"
618
+ "You have a new booking.\n"
619
+ "\n"
620
+ "Service: {service_name} (x {recurring_count})\n"
621
+ "Schedule:\n"
622
+ "{appointment_schedule}\n"
623
+ "Client name: {client_name}\n"
624
+ "Client phone: {client_phone}\n"
625
+ "Client email: {client_email}"
626
  msgstr ""
627
+ "你好,\n"
628
+ "\n"
629
+ "你有一個新預約。{service_name} (x {recurring_count})\n"
630
+ "時間表:\n"
631
+ "{appointment_schedule}\n"
632
+ "客戶名稱:{client_name}\n"
633
+ "客戶電話:{client_phone}\n"
634
+ "客戶電子郵件:{client_email}"
635
 
636
+ msgid "Notification to customer about cancelled recurring appointment"
637
+ msgstr "通知客戶有關取消的定期預約"
 
638
 
639
+ msgid "Booking cancellation"
640
+ msgstr "取消預約"
 
641
 
642
+ msgid ""
643
+ "Dear {client_name}.\n"
644
+ "\n"
645
+ "Your booking of {service_name} (x {recurring_count}) has been cancelled.\n"
646
+ "\n"
647
+ "Reason: {cancellation_reason}\n"
648
+ "\n"
649
+ "Please find the schedule of the cancelled booking below:\n"
650
+ "\n"
651
+ "{appointment_schedule}\n"
652
+ "\n"
653
+ "Thank you for choosing our company.\n"
654
+ "\n"
655
+ "{company_name}\n"
656
+ "{company_phone}\n"
657
+ "{company_website}"
658
+ msgstr ""
659
+ "尊敬的{client_name},\n"
660
+ "\n"
661
+ "您預約的{service_name}(x {recurring_count})已被取消。\n"
662
+ "\n"
663
+ "原因: {cancellation_reason}\n"
664
+ "\n"
665
+ "請在下面查閱已取消服務的時間表。\n"
666
+ "{appointment_schedule}\n"
667
+ "\n"
668
+ "感謝您選擇我們的公司。\n"
669
+ "\n"
670
+ "{company_name}\n"
671
+ "{company_phone}\n"
672
+ "{company_website}"
673
 
674
+ msgid "Notification to staff member about cancelled recurring appointment"
675
+ msgstr "通知員工有關取消了的定期預約"
 
676
 
677
+ msgid ""
678
+ "Hello.\n"
679
+ "\n"
680
+ "The following booking has been cancelled.\n"
681
+ "\n"
682
+ "Reason: {cancellation_reason}\n"
683
+ "\n"
684
+ "Service: {service_name} (x {recurring_count})\n"
685
+ "Schedule:\n"
686
+ "{appointment_schedule}\n"
687
+ "Client name: {client_name}\n"
688
+ "Client phone: {client_phone}\n"
689
+ "Client email: {client_email}"
690
+ msgstr ""
691
+ "你好,\n"
692
+ "\n"
693
+ "以下預約已被取消。\n"
694
+ "\n"
695
+ "原因:{cancellation_reason}\n"
696
+ "\n"
697
+ "服務:{service_name}(x {recurring_count})\n"
698
+ "時間表:\n"
699
+ "{appointment_schedule}\n"
700
+ "客戶名稱:{client_name}\n"
701
+ "客戶電話:{client_phone}\n"
702
+ "客戶電子郵件:{client_email}"
703
 
704
+ msgid "Notification to customer about rejected recurring appointment"
705
+ msgstr "通知客戶有關被拒絕的定期預約"
 
706
 
707
+ msgid "Booking rejection"
708
+ msgstr "拒絕預訂"
 
709
 
710
+ msgid ""
711
+ "Dear {client_name}.\n"
712
+ "\n"
713
+ "Your booking of {service_name} (x {recurring_count}) has been rejected.\n"
714
+ "\n"
715
+ "Reason: {cancellation_reason}\n"
716
+ "\n"
717
+ "Please find the schedule of the cancelled booking below:\n"
718
+ "\n"
719
+ "{appointment_schedule}\n"
720
+ "\n"
721
+ "Thank you for choosing our company.\n"
722
+ "\n"
723
+ "{company_name}\n"
724
+ "{company_phone}\n"
725
+ "{company_website}"
726
+ msgstr ""
727
+ "尊敬的{client_name},\n"
728
+ "\n"
729
+ "您預約的{service_name}(x {recurring_count})已被拒絕。\n"
730
+ "\n"
731
+ "原因: {cancellation_reason}\n"
732
+ "\n"
733
+ "請在下面查閱已取消服務的時間表。\n"
734
+ "{appointment_schedule}\n"
735
+ "\n"
736
+ "感謝您選擇我們的公司。\n"
737
+ "\n"
738
+ "{company_name}\n"
739
+ "{company_phone}\n"
740
+ "{company_website}"
741
 
742
+ msgid "Notification to staff member about rejected recurring appointment "
743
+ msgstr "通知員工有關拒絕了的定期預約"
 
744
 
745
+ msgid ""
746
+ "Hello.\n"
747
+ "\n"
748
+ "The following booking has been rejected.\n"
749
+ "\n"
750
+ "Reason: {cancellation_reason}\n"
751
+ "\n"
752
+ "Service: {service_name} (x {recurring_count})\n"
753
+ "Schedule:\n"
754
+ "{appointment_schedule}\n"
755
+ "Client name: {client_name}\n"
756
+ "Client phone: {client_phone}\n"
757
+ "Client email: {client_email}"
758
+ msgstr ""
759
+ "你好,\n"
760
+ "\n"
761
+ "以下預約已被拒絕。\n"
762
+ "\n"
763
+ "拒絕原因:{cancellation_reason}\n"
764
+ "\n"
765
+ "服務:service_name} (x {recurring_count})\n"
766
+ "時間表:\n"
767
+ "{appointment_schedule}\n"
768
+ "客戶名稱:{client_name}\n"
769
+ "客戶電話:{client_phone}\n"
770
+ "客戶電子郵件:{client_email}"
771
 
772
+ msgid ""
773
+ "Notification to customer about placing on waiting list for recurring "
774
+ "appointment"
775
+ msgstr "通知客戶有關定期預約的候補名單"
776
 
777
+ msgid "You have been added to waiting list for appointment"
778
+ msgstr "您已被添加到等待名單上"
 
779
 
780
+ msgid ""
781
+ "Dear {client_name}.\n"
782
+ "\n"
783
+ "This is a confirmation that you have been added to the waiting list for "
784
+ "{service_name} (x {recurring_count}).\n"
785
+ "\n"
786
+ "Please find the service schedule below.\n"
787
+ "\n"
788
+ "{appointment_schedule}\n"
789
+ "\n"
790
+ "Thank you for choosing our company.\n"
791
+ "\n"
792
+ "{company_name}\n"
793
+ "{company_phone}\n"
794
+ "{company_website}"
795
+ msgstr ""
796
+ "尊敬的{client_name},\n"
797
+ "\n"
798
+ "我們確認您已被添加到{service_name}(x {recurring_count})的候補名單中。\n"
799
+ "\n"
800
+ "請在下面查閱服務時間表。\n"
801
+ "\n"
802
+ "{appointment_schedule}\n"
803
+ "\n"
804
+ "感謝您選擇我們的公司。\n"
805
+ "\n"
806
+ "{company_name}\n"
807
+ "{company_phone}\n"
808
+ "{company_website}"
809
 
810
+ msgid ""
811
+ "Notification to staff member about placing on waiting list for recurring "
812
+ "appointment "
813
+ msgstr "通知員工有關定期預約候補名單"
814
 
815
+ msgid "New waiting list information"
816
+ msgstr "新的候補名單信息"
 
817
 
818
+ msgid ""
819
+ "Hello.\n"
820
+ "\n"
821
+ "You have new customer in the waiting list.\n"
822
+ "\n"
823
+ "Service: {service_name} (x {recurring_count})\n"
824
+ "Schedule:\n"
825
+ "{appointment_schedule}\n"
826
+ "Client name: {client_name}\n"
827
+ "Client phone: {client_phone}\n"
828
+ "Client email: {client_email}"
829
+ msgstr ""
830
+ "你好,\n"
831
+ "\n"
832
+ "您的候補名單中有新客戶。\n"
833
+ "\n"
834
+ "服務:{service_name} (x {recurring_count})\n"
835
+ "時間表:\n"
836
+ "{appointment_schedule}\n"
837
+ "客戶名稱:{client_name}\n"
838
+ "客戶電話:{client_phone}\n"
839
+ "客戶電子郵件:{client_email}"
840
 
841
+ msgid ""
842
+ "Dear {client_name}.\n"
843
+ "This is a confirmation that you have booked {service_name} (x "
844
+ "{recurring_count}).\n"
845
+ "Please find the schedule of your booking below.\n"
846
+ "{appointment_schedule}\n"
847
+ "\n"
848
+ "We are waiting you at {company_address}.\n"
849
+ "Thank you for choosing our company.\n"
850
+ "{company_name}\n"
851
+ "{company_phone}\n"
852
+ "{company_website}"
853
+ msgstr ""
854
+ "尊敬的{client_name},\n"
855
+ "\n"
856
+ "我們確認您已預約了 {service_name} (x {recurring_count})。\n"
857
+ "請在下面查閱預約時間表。\n"
858
+ "{appointment_schedule}\n"
859
+ "\n"
860
+ "我們會在{company_address}等候您。\n"
861
+ "感謝您選擇我們的公司。\n"
862
+ "{company_name}\n"
863
+ "{company_phone}\n"
864
+ "{company_website}"
865
 
866
+ msgid ""
867
+ "Hello.\n"
868
+ "You have a new booking.\n"
869
+ "Service: {service_name} (x {recurring_count})\n"
870
+ "Schedule:\n"
871
+ "{appointment_schedule}\n"
872
+ "Client name: {client_name}\n"
873
+ "Client phone: {client_phone}\n"
874
+ "Client email: {client_email}"
875
+ msgstr ""
876
+ "你好,\n"
877
+ "你有新的預約。\n"
878
+ "服務: {service_name} (x {recurring_count})\n"
879
+ "時間表:\n"
880
+ "{appointment_schedule}\n"
881
+ "客戶名稱: {client_name}\n"
882
+ "客戶電話: {client_phone}\n"
883
+ "客戶電郵: {client_email}"
884
 
885
+ msgid ""
886
+ "Dear {client_name}.\n"
887
+ "Your booking of {service_name} (x {recurring_count}) has been cancelled.\n"
888
+ "Reason: {cancellation_reason}\n"
889
+ "Please find the schedule of the cancelled booking below: "
890
+ "{appointment_schedule}\n"
891
+ "Thank you for choosing our company.\n"
892
+ "{company_name}\n"
893
+ "{company_phone}\n"
894
+ "{company_website}"
895
+ msgstr ""
896
+ "尊敬的{client_name},\n"
897
+ "\n"
898
+ "您已經取消了在{appointment_date}的{appointment_time}進行的預約{service_name}。\n"
899
+ "\n"
900
+ "感謝您選擇我們的公司。\n"
901
+ "{company_name}\n"
902
+ "{company_phone}\n"
903
+ "{company_website}"
904
 
905
+ msgid "Notification to staff member about cancelled recurring appointment "
906
+ msgstr "通知員工有關批准了的定期預約"
 
907
 
908
+ msgid ""
909
+ "Hello.\n"
910
+ "The following booking has been cancelled.\n"
911
+ "Reason: {cancellation_reason}\n"
912
+ "Service: {service_name} (x {recurring_count})\n"
913
+ "Schedule:\n"
914
+ "{appointment_schedule}\n"
915
+ "Client name: {client_name}\n"
916
+ "Client phone: {client_phone}\n"
917
+ "Client email: {client_email}"
918
+ msgstr ""
919
+ "你好,\n"
920
+ "\n"
921
+ "以下的預約被取消。\n"
922
+ "取消原因:{cancellation_reason}\n"
923
+ "服務:{service_name} (x {recurring_count})\n"
924
+ "時間表:\n"
925
+ "{appointment_schedule}\n"
926
+ "Client name: {client_name}\n"
927
+ "Client phone: {client_phone}\n"
928
+ "Client email: {client_email}"
929
 
930
+ msgid ""
931
+ "Dear {client_name}.\n"
932
+ "Your booking of {service_name} (x {recurring_count}) has been rejected.\n"
933
+ "Reason: {cancellation_reason}\n"
934
+ "Please find the schedule of the cancelled booking below: "
935
+ "{appointment_schedule}\n"
936
+ "Thank you for choosing our company.\n"
937
+ "{company_name}\n"
938
+ "{company_phone}\n"
939
+ "{company_website}"
940
+ msgstr ""
941
+ "尊敬的{client_name},\n"
942
+ "\n"
943
+ "您預訂的{service_name}(x {recurring_count})已被拒絕。\n"
944
+ "原因:{cancellation_reason}\n"
945
+ "請在下面找到已取消預訂的時間表:{appointment_schedule}\n"
946
+ "感謝您選擇我們的公司。\n"
947
+ "{company_name}\n"
948
+ "{company_phone}\n"
949
+ "{company_website}"
950
 
951
+ msgid ""
952
+ "Hello.\n"
953
+ "The following booking has been rejected.\n"
954
+ "Reason: {cancellation_reason}\n"
955
+ "Service: {service_name} (x {recurring_count})\n"
956
+ "Schedule:\n"
957
+ "{appointment_schedule}\n"
958
+ "Client name: {client_name}\n"
959
+ "Client phone: {client_phone}\n"
960
+ "Client email: {client_email}"
961
+ msgstr ""
962
+ "你好,\n"
963
+ "\n"
964
+ "以下的預約被拒絕。\n"
965
+ "\n"
966
+ "拒絕原因:{cancellation_reason}\n"
967
+ "服務:{service_name} (x {recurring_count})\n"
968
+ "時間表:\n"
969
+ "{appointment_schedule}\n"
970
+ "Client name: {client_name}\n"
971
+ "Client phone: {client_phone}\n"
972
+ "Client email: {client_email}"
973
 
974
+ msgid ""
975
+ "Dear {client_name}.\n"
976
+ "This is a confirmation that you have been added to the waiting list for "
977
+ "{service_name} (x {recurring_count}).\n"
978
+ "Please find the service schedule below.\n"
979
+ "{appointment_schedule}\n"
980
+ "Thank you for choosing our company.\n"
981
+ "{company_name}\n"
982
+ "{company_phone}\n"
983
+ "{company_website}"
984
+ msgstr ""
985
+ "尊敬的{client_name},\n"
986
+ "\n"
987
+ "您預約的{service_name}(x {recurring_count})已被加入候補名單。\n"
988
+ "\n"
989
+ "請在下面查閱服務時間表。\n"
990
+ "{appointment_schedule}\n"
991
+ "\n"
992
+ "感謝您選擇我們的公司。\n"
993
+ "\n"
994
+ "{company_name}\n"
995
+ "{company_phone}\n"
996
+ "{company_website}"
997
 
998
+ msgid ""
999
+ "Hello.\n"
1000
+ "You have new customer in the waiting list.\n"
1001
+ "Service: {service_name} (x {recurring_count})\n"
1002
+ "Schedule:\n"
1003
+ "{appointment_schedule}\n"
1004
+ "Client name: {client_name}\n"
1005
+ "Client phone: {client_phone}\n"
1006
+ "Client email: {client_email}"
1007
+ msgstr ""
1008
+ "你好,\n"
1009
+ "你的候補名單有新客戶。\n"
1010
+ "服務: {service_name} (x {recurring_count})\n"
1011
+ "時間表:\n"
1012
+ "{appointment_schedule}\n"
1013
+ "客戶名稱: {client_name}\n"
1014
+ "客戶電話: {client_phone}\n"
1015
+ "客戶電郵: {client_email}"
1016
+
1017
+ msgid "Repeat"
1018
+ msgstr "重覆"
1019
+
1020
+ msgid "Next"
1021
+ msgstr "下"
1022
+
1023
+ msgid ""
1024
+ "You selected a booking for {service_name} at {service_time} on {service_date}"
1025
+ ". If you would like to make this appointment recurring please check the box "
1026
+ "below and set appropriate parameters. Otherwise press Next button below."
1027
+ msgstr ""
1028
+ "您選擇 {service_name} 服務,預約為 {service_date} 的 {service_time}"
1029
+ "。如果您希望定期進行這個預約,請選擇以下的框並輸入合適的資料。否則按下一步以繼續。"
1030
+
1031
+ msgid "Another time"
1032
+ msgstr "其他時間"
1033
+
1034
+ msgid "Biweekly"
1035
+ msgstr "每兩週"
1036
+
1037
+ msgid "Daily"
1038
+ msgstr "每日"
1039
+
1040
+ msgid "Day"
1041
+ msgstr "日"
1042
+
1043
+ msgid "day(s)"
1044
+ msgstr "日期"
1045
+
1046
+ msgid "Deleted"
1047
+ msgstr "已刪除"
1048
+
1049
+ msgid "every"
1050
+ msgstr "每個"
1051
+
1052
+ msgid ""
1053
+ "The first recurring appointment was added to cart. You will be invoiced for "
1054
+ "the remaining appointments later."
1055
+ msgstr "第一個定期預約已添加到購物車。稍後,您將收到剩餘預約的發票。"
1056
+
1057
+ msgid "Monthly"
1058
+ msgstr "每月"
1059
+
1060
+ msgid "There are no available time slots for this day"
1061
+ msgstr "這個日子沒有可供選擇的時段。"
1062
+
1063
+ msgid "On"
1064
+ msgstr "在"
1065
+
1066
+ msgid "Please select some days"
1067
+ msgstr "請選擇數天"
1068
+
1069
+ msgid "Schedule"
1070
+ msgstr "日程"
1071
+
1072
+ msgid "Another time was offered on pages {list}."
1073
+ msgstr "頁面上提供了另一個時間{list}。"
1074
+
1075
+ msgid ""
1076
+ "Some of the desired time slots are busy. System offers the nearest time slot "
1077
+ "instead. Click the Edit button to select another time if needed."
1078
+ msgstr "所選的時段繁忙。系統改為提供最近的時段。如有需要,單擊\"編輯\"按鈕以選擇其他時間。"
1079
+
1080
+ msgid "Specific day"
1081
+ msgstr "指定日期"
1082
+
1083
+ msgid "Repeat this appointment"
1084
+ msgstr "重覆預約"
1085
+
1086
+ msgid "Until"
1087
+ msgstr "直至"
1088
+
1089
+ msgid "Weekly"
1090
+ msgstr "每週"
1091
+
1092
+ msgid "First"
1093
+ msgstr "首先"
1094
+
1095
+ msgid "Second"
1096
+ msgstr "第二"
1097
+
1098
+ msgid "Third"
1099
+ msgstr "第三"
1100
+
1101
+ msgid "Fourth"
1102
+ msgstr "第四"
1103
+
1104
+ msgid "Last"
1105
+ msgstr "過去"
1106
+
1107
+ msgid "or"
1108
+ msgstr "要么"
1109
+
1110
+ msgid "time(s)"
1111
+ msgstr "時間"
1112
+
1113
+ msgid "Notification to customer about pending recurring appointment"
1114
+ msgstr "通知客戶有關待審核定期預約"
1115
+
1116
+ msgid "Notification to staff member about pending recurring appointment"
1117
+ msgstr "通知員工有關待審核的定期預約"
1118
+
1119
+ msgid ""
1120
+ "Notification to staff member about placing on waiting list for recurring "
1121
+ "appointment"
1122
+ msgstr "通知員工有關定期預約候補名單"
1123
+
1124
+ msgid "New recurring booking notification"
1125
+ msgstr "新的定期預約通知"
1126
+
1127
+ msgid "Notification about recurring appointment status changes"
1128
+ msgstr "關於定期預約狀態更改的通知"
1129
+
1130
+ msgid "at"
1131
+ msgstr "在"
1132
+
1133
+ msgid "Online Payments"
1134
+ msgstr "網上付款"
1135
+
1136
+ msgid "Customers must pay only for the 1st appointment"
1137
+ msgstr "客戶只需為第一次預約付費"
1138
+
1139
+ msgid "Customers must pay for all appointments in series"
1140
+ msgstr "客戶必須支付所有系列的預約"
1141
+
1142
+ msgid "Group appointments"
1143
+ msgstr "組別預約"
1144
+
1145
+ msgid "Create new appointment for every recurring booking"
1146
+ msgstr "為每個定期預約建立新預約"
1147
+
1148
+ msgid "Add customer to available group bookings"
1149
+ msgstr "添加客戶到有效的團體預約"
1150
+
1151
+ msgid "Recurring Appointments"
1152
+ msgstr "定期預約"
1153
+
1154
+ msgid "Approve recurring appointment URL (success)"
1155
+ msgstr "批准定期預約URL(成功)"
1156
+
1157
+ msgid ""
1158
+ "Set the URL of a page that is shown to staff after they successfully "
1159
+ "approved recurring appointment."
1160
+ msgstr "設置成功批核重複預約後顯示給職員的頁面的URL。"
1161
+
1162
+ msgid "Approve recurring appointment URL (denied)"
1163
+ msgstr "批准定期預約URL(拒絕)"
1164
+
1165
+ msgid ""
1166
+ "Set the URL of a page that is shown to staff when the approval of recurring "
1167
+ "appointment cannot be done (changed status, etc.)."
1168
+ msgstr "設置無法批准重複預約(狀態更改等原因)時顯示給員工的頁面的URL。"
1169
+
1170
+ msgid "Allow this service to have recurring appointments."
1171
+ msgstr "允許此服務具有定期預約。"
1172
 
 
1173
  msgid "Enabled"
1174
  msgstr "啟用"
1175
 
1176
+ msgid "Frequencies"
1177
+ msgstr "頻率"
 
1178
 
1179
+ msgid "All"
1180
+ msgstr "所有"
 
1181
 
1182
+ msgid "Nothing selected"
1183
+ msgstr "沒有選擇任何東西"
 
1184
 
1185
+ msgid "Edit"
1186
+ msgstr "編輯"
 
1187
 
1188
+ msgid "Remove"
1189
+ msgstr "清除"
 
1190
 
1191
+ msgid "Restore"
1192
+ msgstr "收復"
 
1193
 
1194
+ msgid "pages with another time"
1195
+ msgstr "另一個時間的頁面"
 
1196
 
1197
+ msgid "Show Repeat step"
1198
+ msgstr "顯示重複步驟"
 
1199
 
1200
+ msgid "recurring appointments schedule"
1201
+ msgstr "定期預約時間表"
 
1202
 
1203
+ msgid "recurring appointments schedule with cancel"
1204
+ msgstr "取消的定期預約時間表"
 
1205
 
1206
+ msgid "URL for approving the whole schedule"
1207
+ msgstr "批准整個時間表的URL"
 
1208
 
1209
+ msgid "recurring appointments"
1210
+ msgstr "定期預約"
 
1211
 
1212
+ msgid "Every"
1213
+ msgstr "每個"
1214
+
1215
+ msgid "Back"
1216
+ msgstr "返回"
1217
+
1218
+ msgid "Delete"
1219
+ msgstr "删除"
1220
+
1221
+ msgid "Apply"
1222
+ msgstr "使用"
1223
+
1224
+ msgid "Another time was offered on pages"
1225
+ msgstr "頁面上提供了另一個時間"
1226
+
1227
+ msgid "Delete Appointment"
1228
+ msgstr "刪除預約"
1229
+
1230
+ msgid "Delete only this appointment"
1231
+ msgstr "僅刪除此預約"
1232
+
1233
+ msgid "Delete this and the following appointments"
1234
+ msgstr "刪除此預約和以下預約"
1235
 
1236
+ msgid "Delete all appointments in series"
1237
+ msgstr "刪除系列中的所有預約"
 
1238
 
1239
+ msgid "Send notifications"
1240
+ msgstr "發送通知"
 
1241
 
1242
+ msgid "Cancellation reason (optional)"
1243
+ msgstr "取消原因(可選)"
 
1244
 
1245
+ msgid "Cancel"
1246
+ msgstr "取消"
 
1247
 
1248
+ msgid "Close"
1249
+ msgstr "關閉"
 
1250
 
1251
+ msgid "Recurring appointments"
1252
+ msgstr "經常性約會"
 
1253
 
1254
+ msgid "Save"
1255
+ msgstr "保存"
 
1256
 
1257
+ msgid "Sandbox Mode"
1258
+ msgstr "沙箱模式"
 
1259
 
1260
+ msgid "No"
1261
+ msgstr ""
 
1262
 
1263
+ msgid "Yes"
1264
+ msgstr ""
 
1265
 
1266
+ msgid "Merchant Key"
1267
+ msgstr "Merchant Key"
 
 
1268
 
1269
+ msgid "Merchant Salt"
1270
+ msgstr "Merchant Salt"
 
1271
 
1272
+ msgid "Duration"
1273
+ msgstr "時長"
 
1274
 
1275
+ msgid ""
1276
+ "Set service duration. If you select Custom, a client, while booking, will "
1277
+ "have to choose the duration of the service from several time units. In the "
1278
+ "\"Unit Price\" field specify the cost of 1 unit, so the total cost of the "
1279
+ "service will increase linearly with the increase of its duration."
1280
+ msgstr ""
1281
+ "設置服務時間。如果選擇\"自定義\",則客戶在預訂時必須從幾個時間單位中選擇服務的持續時間。在\"單價\"字段中,指定一個單位的費用,因此服務的總費用將隨著其持續時間的增加而線性增加。"
1282
 
1283
+ msgid "Unit duration"
1284
+ msgstr "一個單位的長度"
 
1285
 
1286
+ msgid "Minimum units"
1287
+ msgstr "最少單位"
 
1288
 
1289
+ msgid "Maximum units"
1290
+ msgstr "最大單位"
 
1291
 
1292
+ msgid "Unit price"
1293
+ msgstr "單價"
 
1294
 
1295
+ msgid "Custom"
1296
+ msgstr "自定義"
 
1297
 
1298
+ msgid "Show service price next to duration"
1299
+ msgstr "在時長旁邊顯示服務價格"
 
1300
 
1301
+ msgid "Hide this field"
1302
+ msgstr "隱藏字段"
 
1303
 
1304
+ msgid "Delete break"
1305
+ msgstr "刪除休息"
 
1306
 
1307
+ msgid "Breaks"
1308
+ msgstr "暫停"
 
1309
 
1310
+ msgid "Add special day"
1311
+ msgstr "添加特別日子"
 
1312
 
1313
+ msgid "to"
1314
+ msgstr ""
 
1315
 
1316
+ msgid "add break"
1317
+ msgstr "添加休息時間"
 
1318
 
1319
+ msgid "Special Days"
1320
+ msgstr "特別日子"
 
1321
 
1322
+ msgid "Are you sure?"
1323
+ msgstr "確定?"
 
1324
 
1325
+ msgid "Duplicate dates are not permitted."
1326
+ msgstr "不允許重複日期。"
 
1327
 
1328
+ msgid "Date in the past."
1329
+ msgstr "過去日期"
 
1330
 
1331
+ msgid "The requested interval is not available"
1332
+ msgstr "要求的時段不可選"
 
1333
 
1334
+ msgid "OFF"
1335
+ msgstr "關閉"
 
1336
 
1337
+ msgid "Add Staff Special Days"
1338
+ msgstr "添加員工特別日子"
 
1339
 
1340
+ msgid "Uncategorized"
1341
+ msgstr "未分類"
 
1342
 
1343
+ msgid "Spare time"
1344
+ msgstr "空閒時間"
 
1345
 
1346
+ msgid "Add simple service"
1347
+ msgstr "添加簡單服務"
 
1348
 
1349
+ msgid "=== Spare time ==="
1350
+ msgstr "=== 空閒時間 ==="
 
1351
 
1352
+ msgid "Compound"
1353
+ msgstr "複合"
 
1354
 
1355
+ msgid "Part of compound service"
1356
+ msgstr "複合服務的一部分"
 
1357
 
1358
+ msgid "Compound service"
1359
+ msgstr "複合服務"
 
1360
 
1361
+ msgid "Short Codes"
1362
+ msgstr "簡碼"
 
1363
 
1364
+ msgid "Add Staff Calendar"
1365
+ msgstr "添加員工日曆"
 
1366
 
1367
+ msgid "Add Staff Details"
1368
+ msgstr "添加員工資料"
 
1369
 
1370
+ msgid "Add Staff Services"
1371
+ msgstr "添加員工服務"
 
1372
 
1373
+ msgid "Add Staff Schedule"
1374
+ msgstr "添加員工日程"
 
1375
 
1376
+ msgid "Add Staff Days Off"
1377
+ msgstr "添加員工休息日"
 
1378
 
1379
+ msgid "Hide visibility field"
1380
+ msgstr "隱藏可見性字段"
 
1381
 
1382
+ msgid "Disable services update"
1383
+ msgstr "禁用更新服務"
 
1384
 
1385
+ msgid "Disable price update"
1386
+ msgstr "禁用更新價錢"
 
1387
 
1388
+ msgid "Insert"
1389
+ msgstr "插入"
 
1390
 
1391
+ msgid "Add Staff Cabinet"
1392
+ msgstr "添加員工櫃"
 
1393
 
1394
+ msgid "A custom block for displaying staff calendar"
1395
+ msgstr "用於顯示員工日曆的自定義塊"
 
1396
 
1397
+ msgid "Details"
1398
+ msgstr "細節"
 
1399
 
1400
+ msgid "A custom block for displaying staff details"
1401
+ msgstr "顯示員工詳細信息的自定義塊"
 
1402
 
1403
+ msgid "Services"
1404
+ msgstr "服務"
 
1405
 
1406
+ msgid "A custom block for displaying staff services"
1407
+ msgstr "用於顯示員工服務的自定義塊"
 
1408
 
1409
+ msgid "A custom block for displaying staff schedule"
1410
+ msgstr "用於顯示員工日程的自定義塊"
 
1411
 
1412
+ msgid "Special days"
1413
+ msgstr "特別日子"
 
1414
 
1415
+ msgid "A custom block for displaying staff special days"
1416
+ msgstr "用於顯示員工特別日子的自定義塊"
 
1417
 
1418
+ msgid "Days off"
1419
+ msgstr "休息日"
 
1420
 
1421
+ msgid "A custom block for displaying staff days off"
1422
+ msgstr "用於顯示員工休息的自定義塊"
 
1423
 
1424
+ msgid "Capacity"
1425
+ msgstr "容量"
 
1426
 
1427
+ msgid "Special hours"
1428
+ msgstr "特別時間"
 
1429
 
1430
+ msgid "Fields"
1431
+ msgstr "欄目"
 
1432
 
1433
+ msgid "read only"
1434
+ msgstr "只供閱讀"
 
1435
 
1436
+ msgid "Repeat every year"
1437
+ msgstr "每年重複"
 
1438
 
1439
+ msgid "We are not working on this day"
1440
+ msgstr "我們這一天休息"
 
1441
 
1442
+ msgid "Min capacity should not be greater than max capacity."
1443
+ msgstr "最小容量不應大於最大容量。"
 
1444
 
1445
+ msgid "Export to CSV"
1446
+ msgstr "導出 CSV"
 
1447
 
1448
+ msgid "Displayed appointments"
1449
+ msgstr "展示預約"
 
1450
 
1451
+ msgid "Upcoming appointments"
1452
+ msgstr "將要發生的預約"
 
1453
 
1454
+ msgid "All appointments"
1455
+ msgstr "所有預約"
 
1456
 
1457
+ msgid "Delimiter"
1458
+ msgstr "分隔符"
 
1459
 
1460
+ msgid "Comma (,)"
1461
+ msgstr "逗號 (,)"
 
1462
 
1463
+ msgid "Semicolon (;)"
1464
+ msgstr "分號 (;)"
 
1465
 
1466
+ msgid "Booking Time"
1467
+ msgstr "預約時間"
 
1468
 
1469
+ msgid "Customer Name"
1470
+ msgstr "客戶名稱"
 
1471
 
1472
+ msgid "Customer Phone"
1473
+ msgstr "客戶電話"
 
1474
 
1475
+ msgid "Customer Email"
1476
+ msgstr "客戶電郵"
 
1477
 
1478
+ msgid "Status"
1479
+ msgstr "狀態"
 
1480
 
1481
+ msgid "Payment"
1482
+ msgstr "付款"
 
1483
 
1484
+ msgid "Today"
1485
+ msgstr "今天"
 
1486
 
1487
+ msgid "Week"
1488
+ msgstr ""
 
1489
 
1490
+ msgid "Month"
1491
+ msgstr ""
 
1492
 
1493
+ msgid "All Day"
1494
+ msgstr "全日"
 
1495
 
1496
+ msgid "On waiting list"
1497
+ msgstr "在候補名單"
 
1498
 
1499
+ msgid "Package"
1500
+ msgstr "包裹"
 
1501
 
1502
+ #, php-format
1503
+ msgid "%s of %s"
1504
+ msgstr "%s 的 %s"
1505
 
1506
+ msgid "Full name"
1507
+ msgstr "全名"
 
1508
 
1509
+ msgid "Info"
1510
+ msgstr "資訊"
 
1511
 
1512
+ msgid ""
1513
+ "This text can be inserted into notifications to customers by Administrator."
1514
+ msgstr "管理員可以將此文本插入到客戶的通知中。"
1515
 
1516
+ msgid "Visibility"
1517
+ msgstr "可見度"
 
1518
 
1519
+ msgid ""
1520
+ "If you want to become invisible to your customers set the visibility to "
1521
+ "\"Private\"."
1522
+ msgstr "如果您希望客戶看不到您,請將可見性設置為\"私人\"。"
1523
 
1524
+ msgid "Public"
1525
+ msgstr "上市"
 
1526
 
1527
+ msgid "Private"
1528
+ msgstr "私人的"
 
1529
 
1530
+ msgid "All locations"
1531
+ msgstr "所有地點"
 
1532
 
1533
+ msgid "No locations selected"
1534
+ msgstr "未選擇位置"
 
1535
 
1536
+ msgid "You don't have permissions to view this content."
1537
+ msgstr "您無權查看此內容。"
 
1538
 
1539
+ msgid ""
1540
+ "Your account has been disabled. Contact your website administrator to "
1541
+ "continue."
1542
+ msgstr "您的帳戶已被暫停,請聯絡您的網站管理員。"
1543
 
1544
+ msgid "API Login ID"
1545
+ msgstr "API登入碼"
 
1546
 
1547
+ msgid "API Transaction Key"
1548
+ msgstr "API交易金鑰"
 
1549
 
1550
+ msgid "Title"
1551
+ msgstr "標題"
 
1552
 
1553
+ msgid "Rate"
1554
+ msgstr "評分"
 
1555
 
1556
+ msgid "Taxes"
1557
+ msgstr ""
 
1558
 
1559
+ msgid "Price settings and display"
1560
+ msgstr "價格設置和顯示"
 
1561
 
1562
+ msgid ""
1563
+ "If the prices for your services include taxes, select include taxes. If the "
1564
+ "prices for your services do not include taxes, select exclude taxes."
1565
+ msgstr "如果您的服務價格包括稅收,請選擇包括稅收。如果您的服務價格不包括稅收,請選擇不包括稅收。"
1566
 
1567
+ msgid "Include taxes"
1568
+ msgstr "包括稅項"
 
1569
 
1570
+ msgid "Exclude taxes"
1571
+ msgstr "不含稅"
 
1572
 
1573
+ msgid "Add Tax"
1574
+ msgstr "添加稅收"
 
1575
 
1576
+ msgid "New tax"
1577
+ msgstr "新稅收"
 
1578
 
1579
+ msgid "Edit tax"
1580
+ msgstr "編輯稅"
 
1581
 
1582
+ msgid "No taxes found."
1583
+ msgstr "找不到稅收。"
 
1584
 
1585
+ msgid "Processing..."
1586
+ msgstr "處理..."
 
1587
 
1588
+ msgid "Taxation"
1589
+ msgstr ""
1590
+ "\n"
1591
+ "稅收"
1592
 
1593
+ msgid "service tax amount"
1594
+ msgstr "服務稅量"
 
1595
 
1596
+ msgid "service tax rate"
1597
+ msgstr "服務稅率"
 
1598
 
1599
+ msgid "total tax included in the appointment (summary for all items)"
1600
+ msgstr "預約中包含的總稅費(所有項目的總和)"
 
1601
 
1602
+ msgid "total price without tax"
1603
+ msgstr "總價(不含稅)"
 
1604
 
1605
+ msgid ""
1606
+ "This setting affects the cost of the booking according to the payment "
1607
+ "gateway used. Specify a percentage or fixed amount. Use minus (\"-\") sign "
1608
+ "for decrease/discount. Note that tax will not be calculated for the "
1609
+ "additional amount to the cost. If you need to report the exact tax amount to "
1610
+ "the payment system, do not use additional charge."
1611
+ msgstr ""
1612
+ "根據所使用的付款方,此設置會影響預約的費用。指定百分比或固定金額。使用減號(\"-"
1613
+ "\")進行減價/折扣。請注意,系統將不為額外費用計稅。如果您需要向付款系統報告確切的稅額,請不要使用額外費用。"
1614
 
1615
+ msgid "Customer Information"
1616
+ msgstr "客戶資料"
 
1617
 
1618
+ msgid "Required field."
1619
+ msgstr "必填項目。"
 
1620
 
1621
+ msgid "Ask once."
1622
+ msgstr "詢問一次。"
 
1623
 
1624
+ msgid "Ask once"
1625
+ msgstr "詢問一次"
 
1626
 
1627
+ msgid "Show customer information"
1628
+ msgstr "顯示客戶信息"
 
1629
 
1630
+ msgid ""
1631
+ "To receive REST API credentials, in <b>My Apps & Credentials</b> of your "
1632
+ "PayPal account do the following steps:"
1633
+ msgstr "要接收REST API憑證,請在您的PayPal帳戶的<b>我的應用和憑證</b>中執行以下步驟:"
1634
 
1635
+ msgid "Click <b>Create App</b> and enter application details."
1636
+ msgstr "點擊<b>建立應用程式</b>,然後輸入應用程式詳細信息。"
 
1637
 
1638
+ msgid ""
1639
+ "Once created, copy <b>Client ID</b> and <b>Secret</b> and use them in the "
1640
+ "form below."
1641
+ msgstr "建立完成後,複製<b>Client ID</b>和<b>Secret</b>,並在下面的表格中使用它們。"
1642
 
1643
+ msgid "Client ID"
1644
+ msgstr "客戶ID"
 
1645
 
1646
+ msgid "Secret"
1647
+ msgstr "Secret"
 
1648
 
1649
+ msgid "Invalid session"
1650
+ msgstr "時段無效"
 
1651
 
1652
+ msgid "Mollie accepts payments in Euro only."
1653
+ msgstr "Mollie僅接受歐元付款。"
 
1654
 
1655
+ msgid "Mollie error."
1656
+ msgstr "Mollie錯誤。"
 
1657
 
1658
+ msgid "I will pay now with Mollie"
1659
+ msgstr "我會現在使用手機支付"
 
1660
 
1661
+ msgid "API Key"
1662
+ msgstr "API金鑰"
 
1663
 
1664
+ msgid "Time interval of payment gateway"
1665
+ msgstr "支付方的時間間隔"
 
1666
 
1667
+ msgid ""
1668
+ "This setting determines the time limit after which the payment made via the "
1669
+ "payment gateway is considered to be incomplete. This functionality requires "
1670
+ "a scheduled cron job."
1671
+ msgstr "此設置確定了時間限制,在這之後的付款均被視為未完成。此功能需要計劃的cron作業。"
1672
 
1673
+ msgid "Persons"
1674
+ msgstr "人數"
 
1675
 
1676
+ msgid "Number of persons"
1677
+ msgstr "人數"
 
1678
 
1679
+ msgid "Capacity (min and max)"
1680
+ msgstr "容量(最小和最大)"
 
1681
 
1682
+ msgid "Group bookings information format"
1683
+ msgstr "組別預約信息格式"
 
1684
 
1685
+ msgid ""
1686
+ "Select format for displaying the time slot occupancy for group bookings."
1687
+ msgstr "選擇用於顯示團體預約的時段佔用率的格式。"
1688
 
1689
+ msgid "[Booked/Max capacity]"
1690
+ msgstr "[已訂/最大容量]"
 
1691
 
1692
+ msgid "[Available left]"
1693
+ msgstr "[可用的剩餘]"
 
1694
 
1695
+ msgid "Group Booking"
1696
+ msgstr "組別預約"
 
1697
 
1698
+ msgid "number of persons"
1699
+ msgstr "人數"
 
1700
 
1701
+ msgid "number of persons already in the list"
1702
+ msgstr "已經在名單上的人數"
 
1703
 
1704
+ msgid "capacity of service"
1705
+ msgstr "服務能力"
 
1706
 
1707
+ msgid ""
1708
+ "The minimum and maximum number of customers allowed to book the service for "
1709
+ "the certain time period."
1710
+ msgstr "允許在特定時間段內預訂服務的客戶的最小和最大數量。"
1711
 
1712
+ msgid "One booking per time slot"
1713
+ msgstr "每個時段一次預訂"
 
1714
 
1715
+ msgid ""
1716
+ "Enable this option if you want to limit the possibility of booking within "
1717
+ "the service capacity to one time."
1718
+ msgstr "如果要將服務能力內的預訂次數限制為一次,請啟用此選項。"
1719
 
1720
+ msgid "Show information about group bookings"
1721
+ msgstr "顯示有​​關團體預約的信息"
 
1722
 
1723
+ msgid "Disable capacity update"
1724
+ msgstr "禁用更新容量"
 
1725
 
1726
+ msgid "Address"
1727
+ msgstr "地址"
 
1728
 
1729
+ msgid "Follow these steps to get an API key:"
1730
+ msgstr "請按照以下步驟獲取API金鑰:"
 
1731
 
1732
+ msgid ""
1733
+ "Go to the <a href=\"https://console.developers.google.com/flows/enableapi?"
1734
+ "apiid=places_backend&reusekey=true\" target=\"_blank\">Google API Console</a>"
1735
+ "."
1736
+ msgstr ""
1737
+ "轉到<a href=\"https://console.developers.google.com/flows/enableapi?"
1738
+ "apiid=places_backend&reusekey=true\" target=\"_blank\">Google API控制台</a>。"
1739
 
1740
+ msgid "Create or select a project. Click <b>Continue</b> to enable the API."
1741
+ msgstr "建立或選擇一個項目。點擊<b>繼續</b>以啟用API。"
 
1742
 
1743
+ msgid ""
1744
+ "On the <b>Credentials</b> page, get an <b>API key</b> (and set the API key "
1745
+ "restrictions). Note: If you have an existing unrestricted API key, or a key "
1746
+ "with server restrictions, you may use that key."
1747
+ msgstr ""
1748
+ "在<b>憑據</b>頁上,獲取<b>API金鑰</b>"
1749
+ "(並設置API金鑰限制)。注意:如果您具有現有不受限制的API金鑰或具有服務器限制的金鑰,則可以使用該金鑰。"
1750
 
1751
+ msgid ""
1752
+ "Click <b>Library</b> on the left sidebar menu. Select Google Maps JavaScript "
1753
+ "API and make sure it's enabled."
1754
+ msgstr "點擊左側工具欄菜單上的<b>圖書館</b>。選擇Google Maps JavaScript API並確保已啟用。"
1755
 
1756
+ msgid "Use your <b>API key</b> in the form below."
1757
+ msgstr "在下面的表格中使用您的<b>API金鑰</b>。"
 
1758
 
1759
+ msgid ""
1760
+ "Enter a Google API key that you got after registering your app project on "
1761
+ "the Google API Console."
1762
+ msgstr "註冊應用程式項目在Google API控制台後,輸入獲得的Google API金鑰。"
1763
 
1764
+ msgid "Google Maps"
1765
+ msgstr "Google地圖"
 
1766
 
1767
+ msgid "Show google maps field"
1768
+ msgstr "顯示谷歌地圖字段"
 
1769
 
1770
+ msgid "Equal duration"
1771
+ msgstr "相等長度"
 
1772
 
1773
+ msgid "Make every service duration equal to the duration of the longest one."
1774
+ msgstr "使每個服務時間長度等於最長的服務時間長度。"
 
1775
 
1776
+ msgid "Collaborative"
1777
+ msgstr "協同合作"
 
1778
 
1779
+ msgid "Collaborative service"
1780
+ msgstr "協同合作服務"
 
1781
 
1782
+ msgid "Part of collaborative service"
1783
+ msgstr "協作服務的一部分"
 
1784
 
1785
+ msgid "Customer cabinet (all services displayed in tabs)"
1786
+ msgstr "客戶櫃(所有服務顯示在選項卡中)"
 
1787
 
1788
+ msgid "Appointment management"
1789
+ msgstr "預約管理"
1790
+
1791
+ msgid "Show timezone"
1792
+ msgstr "顯示時區"
1793
 
1794
+ msgid "Location"
1795
+ msgstr "位置"
 
1796
 
1797
+ msgid "Category"
1798
+ msgstr "分類"
 
1799
 
1800
+ msgid "Staff"
1801
+ msgstr "員工"
 
1802
 
1803
+ msgid "Reschedule"
1804
+ msgstr "時間表"
 
1805
 
1806
+ msgid "Profile management"
1807
+ msgstr "個人資料管理"
 
1808
 
1809
+ msgid "Birthday"
1810
+ msgstr "生日"
 
1811
 
1812
+ msgid "Wordpress password"
1813
+ msgstr "Wordpress 密碼"
 
1814
 
1815
+ msgid "Delete account"
1816
+ msgstr "刪除帳戶"
 
1817
 
1818
+ msgid "Add Customer Cabinet"
1819
+ msgstr "添加客戶櫃"
 
1820
 
1821
+ msgid "Customer cabinet"
1822
+ msgstr ""
1823
+ "\n"
1824
+ "客戶櫃"
1825
 
1826
+ msgid "A custom block for displaying customer cabinet"
1827
+ msgstr "用於顯示客戶櫃的自定義塊"
 
1828
 
1829
+ msgid "show"
1830
+ msgstr "顯示"
 
1831
 
1832
+ msgid "Show"
1833
+ msgstr "顯示"
 
1834
 
1835
+ msgid "Timezone"
1836
+ msgstr "時區"
 
1837
 
1838
+ msgid "Employee"
 
1839
  msgstr "員工"
1840
 
1841
+ msgid "Custom field"
1842
+ msgstr "自定欄位"
 
1843
 
1844
+ msgid "Customer information"
1845
+ msgstr "客戶資料"
 
1846
 
1847
+ msgid "Appointments"
1848
+ msgstr "預約"
 
1849
 
1850
+ msgid "Profile"
1851
+ msgstr "簡介"
 
1852
 
1853
+ msgid "WP user"
1854
+ msgstr "WP 用戶"
 
1855
 
1856
+ msgid "Current password"
1857
+ msgstr "現時密碼"
 
1858
 
1859
+ msgid "New password"
1860
+ msgstr "新密碼"
 
1861
 
1862
+ msgid "Confirm password"
1863
+ msgstr "確認密碼"
 
1864
 
1865
+ msgid "No appointments."
1866
+ msgstr "沒有預約。"
 
1867
 
1868
+ msgid "Expired"
1869
+ msgstr "已過期"
 
1870
 
1871
+ msgid "Not allowed"
1872
+ msgstr "不允許"
 
1873
 
1874
+ msgid "There are no time slots for selected date."
1875
+ msgstr "所選日期沒有可供選擇的時段。"
 
1876
 
1877
+ msgid ""
1878
+ "Unfortunately, you're not able to cancel the appointment because the "
1879
+ "required time limit prior to canceling has expired."
1880
+ msgstr "很遺憾,您無法取消預約,因為取消之前所需的時間限制已過期。"
1881
 
1882
+ msgid "Profile updated successfully."
1883
+ msgstr "個人資料更新成功"
 
1884
 
1885
+ msgid "Time"
1886
+ msgstr "時間"
 
1887
 
1888
+ msgid "Wrong current password"
1889
+ msgstr "密碼錯誤"
 
1890
 
1891
+ msgid "Passwords mismatch"
1892
+ msgstr "密碼不符"
 
1893
 
1894
+ msgid "Cancel Appointment"
1895
+ msgstr "取消預約"
 
1896
 
1897
+ msgid "You are going to cancel a scheduled appointment. Are you sure?"
1898
+ msgstr "您將要取消預約。你確定嗎?"
 
1899
 
1900
+ msgid ""
1901
+ "You are going to delete your account and all information associated with it. "
1902
+ "Click Confirm to continue or Cancel to cancel the action."
1903
+ msgstr "您將刪除您的帳戶及其所有相關信息。選擇確認以繼續,或取消以取消操作。"
1904
 
1905
+ msgid ""
1906
+ "This account cannot be deleted because it is associated with scheduled "
1907
+ "appointments. Please cancel bookings or contact the service provider."
1908
+ msgstr "該帳戶與計劃的預約有關,因此無法刪除。請取消預約或聯繫服務供應商。"
1909
 
1910
+ msgid "Confirm"
1911
+ msgstr "確認"
 
1912
 
1913
+ msgid "OK"
1914
+ msgstr "可以"
 
1915
 
1916
+ #, php-format
1917
  msgid " and %d more item"
1918
  msgid_plural " and %d more items"
1919
  msgstr[0] "和 %d 項目"
1920
+ msgstr[1] ""
1921
 
1922
+ msgid "Notification to customer about approved appointment"
1923
+ msgstr "通知客戶已確定的預約資料"
 
1924
 
1925
+ msgid ""
1926
+ "Dear {client_name}.\n"
1927
  "\n"
1928
  "This is a confirmation that you have booked {service_name}.\n"
1929
  "\n"
1930
+ "We are waiting you at {company_address} on {appointment_date} at "
1931
+ "{appointment_time}.\n"
1932
  "\n"
1933
  "Thank you for choosing our company.\n"
1934
  "\n"
1935
  "{company_name}\n"
1936
  "{company_phone}\n"
1937
  "{company_website}"
1938
+ msgstr ""
1939
+ "尊敬的 {client_name}.\n"
1940
  "\n"
1941
  "您預訂的{service_name}已確認.\n"
1942
  "\n"
1948
  "{company_phone}\n"
1949
  "{company_website}"
1950
 
1951
+ msgid "Notification to staff member about approved appointment"
1952
+ msgstr "通知員工已確定的預約資料"
1953
+
1954
+ msgid ""
1955
+ "Hello.\n"
1956
  "\n"
1957
+ "You have a new booking.\n"
1958
  "\n"
1959
+ "Service: {service_name}\n"
1960
+ "Date: {appointment_date}\n"
1961
+ "Time: {appointment_time}\n"
1962
+ "Client name: {client_name}\n"
1963
+ "Client phone: {client_phone}\n"
1964
+ "Client email: {client_email}"
1965
+ msgstr ""
1966
+ "您好.\n"
1967
+ "\n"
1968
+ "你有一個新的顧客預約.\n"
1969
+ "\n"
1970
+ "服務: {service_name}\n"
1971
+ "日期: {appointment_date}\n"
1972
+ "時間: {appointment_time}\n"
1973
+ "顧客姓名: {client_name}\n"
1974
+ "顧客電話: {client_phone}\n"
1975
+ "顧客 Email: {client_email}"
1976
+
1977
+ msgid "Notification to customer about cancelled appointment"
1978
+ msgstr "通知客戶已取消的預約資料"
1979
+
1980
+ msgid ""
1981
+ "Dear {client_name}.\n"
1982
+ "\n"
1983
+ "You have cancelled your booking of {service_name} on {appointment_date} at "
1984
+ "{appointment_time}.\n"
1985
  "\n"
1986
  "Thank you for choosing our company.\n"
1987
  "\n"
1988
  "{company_name}\n"
1989
  "{company_phone}\n"
1990
  "{company_website}"
1991
+ msgstr ""
1992
+ "尊敬的{client_name},\n"
 
1993
  "\n"
1994
+ "我們確認您取消了在{appointment_date}的 {appointment_time}預約了的{service_name}。\n"
1995
  "\n"
1996
+ "感謝您選擇我們的公司。\n"
1997
  "\n"
1998
  "{company_name}\n"
1999
  "{company_phone}\n"
2000
  "{company_website}"
2001
 
2002
+ msgid "Notification to staff member about cancelled appointment"
2003
+ msgstr "通知員工已取消的預約資料"
 
2004
 
2005
+ msgid ""
2006
+ "Hello.\n"
2007
  "\n"
2008
+ "The following booking has been cancelled.\n"
2009
  "\n"
2010
  "Service: {service_name}\n"
2011
  "Date: {appointment_date}\n"
2013
  "Client name: {client_name}\n"
2014
  "Client phone: {client_phone}\n"
2015
  "Client email: {client_email}"
2016
+ msgstr ""
2017
+ "你好,\n"
2018
  "\n"
2019
+ "以下預約已被取消。\n"
2020
  "\n"
2021
+ "服務:{service_name}\n"
2022
+ "日期:{appointment_date}\n"
2023
+ "時間:{appointment_time}\n"
2024
+ "客戶名稱:{client_name}\n"
2025
+ "客戶電話:{client_phone}\n"
2026
+ "客戶電子郵件:{client_email}"
 
 
 
 
2027
 
2028
+ msgid "Notification to customer about rejected appointment"
2029
+ msgstr "通知客戶關於拒絕任命"
 
2030
 
2031
+ msgid ""
2032
+ "Dear {client_name}.\n"
2033
  "\n"
2034
+ "Your booking of {service_name} on {appointment_date} at {appointment_time} "
2035
+ "has been rejected.\n"
2036
  "\n"
2037
  "Reason: {cancellation_reason}\n"
2038
  "\n"
2041
  "{company_name}\n"
2042
  "{company_phone}\n"
2043
  "{company_website}"
2044
+ msgstr ""
2045
+ "尊敬的{client_name}。\n"
2046
  "\n"
2047
  "您在{appointment_date}({appointment_time})預訂的{service_name}已被拒絕。\n"
2048
  "\n"
2054
  "{company_phone}\n"
2055
  "{company_website}"
2056
 
2057
+ msgid "Notification to staff member about rejected appointment"
2058
+ msgstr "通知工作人員有關被拒絕任命"
2059
+
2060
+ msgid ""
2061
+ "Hello.\n"
2062
  "\n"
2063
  "The following booking has been rejected.\n"
2064
  "\n"
2070
  "Client name: {client_name}\n"
2071
  "Client phone: {client_phone}\n"
2072
  "Client email: {client_email}"
2073
+ msgstr ""
2074
+ "你好。\n"
2075
  "\n"
2076
  "以下預訂已被拒絕。\n"
2077
  "\n"
2084
  "客戶電話:{client_phone}\n"
2085
  "客戶電子郵件:{client_email}"
2086
 
2087
+ msgid ""
2088
+ "Dear {client_name}.\n"
2089
+ "This is a confirmation that you have booked {service_name}.\n"
2090
+ "We are waiting you at {company_address} on {appointment_date} at "
2091
+ "{appointment_time}.\n"
2092
+ "Thank you for choosing our company.\n"
2093
+ "{company_name}\n"
2094
+ "{company_phone}\n"
2095
+ "{company_website}"
2096
+ msgstr ""
2097
+ "尊敬的{client_name},\n"
 
 
 
 
 
 
2098
  "\n"
2099
+ "我們確認您已預約了 {service_name} 。\n"
2100
+ "我們將在{appointment_date}的{appointment_time}在{company_address}等候您。\n"
2101
+ "感謝您選擇我們的公司。\n"
2102
+ "{company_name}\n"
2103
+ "{company_phone}\n"
2104
+ "{company_website}"
2105
 
2106
+ msgid ""
2107
+ "Hello.\n"
2108
+ "You have a new booking.\n"
2109
+ "Service: {service_name}\n"
2110
+ "Date: {appointment_date}\n"
2111
+ "Time: {appointment_time}\n"
2112
+ "Client name: {client_name}\n"
2113
+ "Client phone: {client_phone}\n"
2114
+ "Client email: {client_email}"
2115
+ msgstr ""
2116
+ "你好,\n"
2117
+ "你有新的預約。\n"
2118
+ "服務: {service_name}\n"
2119
+ "日期:{appointment_date}\n"
2120
+ "時間:{appointment_time}\n"
2121
+ "客戶名稱: {client_name}\n"
2122
+ "客戶電話: {client_phone}\n"
2123
+ "客戶電郵: {client_email}"
2124
 
2125
+ msgid ""
2126
+ "Dear {client_name}.\n"
2127
+ "You have cancelled your booking of {service_name} on {appointment_date} at "
2128
+ "{appointment_time}.\n"
 
 
 
2129
  "Thank you for choosing our company.\n"
 
2130
  "{company_name}\n"
2131
  "{company_phone}\n"
2132
  "{company_website}"
2133
+ msgstr ""
2134
+ "尊敬的{client_name},\n"
2135
  "\n"
2136
+ "您已經取消了在{appointment_date}的{appointment_time}進行的預約{service_name}。\n"
 
 
2137
  "\n"
2138
  "感謝您選擇我們的公司。\n"
 
2139
  "{company_name}\n"
2140
  "{company_phone}\n"
2141
  "{company_website}"
2142
 
2143
+ msgid ""
2144
+ "Hello.\n"
2145
+ "The following booking has been cancelled.\n"
2146
+ "Service: {service_name}\n"
2147
+ "Date: {appointment_date}\n"
2148
+ "Time: {appointment_time}\n"
2149
+ "Client name: {client_name}\n"
2150
+ "Client phone: {client_phone}\n"
2151
+ "Client email: {client_email}"
2152
+ msgstr ""
2153
+ "你好,\n"
2154
+ "\n"
2155
+ "以下的預約被取消。\n"
2156
+ "\n"
2157
+ "服務:{service_name} \n"
2158
+ "日期: {appointment_date}\n"
2159
+ "時間:{appointment_time}\n"
2160
+ "Client name: {client_name}\n"
2161
+ "Client phone: {client_phone}\n"
2162
+ "Client email: {client_email}"
2163
+
2164
+ msgid ""
2165
+ "Dear {client_name}.\n"
2166
+ "Your booking of {service_name} on {appointment_date} at {appointment_time} "
2167
+ "has been rejected.\n"
2168
  "Reason: {cancellation_reason}\n"
2169
  "Thank you for choosing our company.\n"
2170
  "{company_name}\n"
2171
  "{company_phone}\n"
2172
  "{company_website}"
2173
+ msgstr ""
2174
+ "尊敬的{client_name}。\n"
2175
  "您在{appointment_date}({appointment_time})預訂的{service_name}已被拒絕。\n"
2176
  "原因:{cancellation_reason}\n"
2177
  "感謝您選擇我們的公司。\n"
2179
  "{company_phone}\n"
2180
  "{company_website}"
2181
 
2182
+ msgid ""
2183
+ "Hello.\n"
2184
  "The following booking has been rejected.\n"
2185
  "Reason: {cancellation_reason}\n"
2186
  "Service: {service_name}\n"
2189
  "Client name: {client_name}\n"
2190
  "Client phone: {client_phone}\n"
2191
  "Client email: {client_email}"
2192
+ msgstr ""
2193
+ "你好。\n"
2194
  "以下預訂已被拒絕。\n"
2195
  "原因:{cancellation_reason}\n"
2196
  "服務:{service_name}\n"
2200
  "客戶電話:{client_phone}\n"
2201
  "客戶電子郵件:{client_email}"
2202
 
2203
+ msgid ""
2204
+ "Evening reminder to customer about next day appointment (requires cron setup)"
2205
+ msgstr "預約日前一天晚上的客戶提醒(需要cron的設置)"
 
 
 
 
 
 
 
 
 
 
 
 
2206
 
2207
+ msgid ""
2208
+ "Dear {client_name}.\n"
2209
+ "We would like to remind you that you have booked {service_name} tomorrow at "
2210
+ "{appointment_time}. We are waiting for you at {company_address}.\n"
 
2211
  "Thank you for choosing our company.\n"
2212
  "{company_name}\n"
2213
  "{company_phone}\n"
2214
  "{company_website}"
2215
+ msgstr ""
2216
+ "尊敬的{client_name},\n"
2217
+ "\n"
2218
+ "我們提醒您,您的預約{service_name}將在明天{appointment_time}進行。我們會在{company_address}等候您。\n"
2219
+ "\n"
2220
  "感謝您選擇我們的公司。\n"
2221
  "{company_name}\n"
2222
  "{company_phone}\n"
2223
  "{company_website}"
2224
 
2225
+ msgid ""
2226
+ "Follow-up message in the same day after appointment (requires cron setup)"
2227
+ msgstr "服務完成後發送的跟進信息(需要cron的設置)"
2228
 
2229
+ msgid ""
2230
+ "Dear {client_name}.\n"
2231
+ "Thank you for choosing {company_name}. We hope you were satisfied with your "
2232
+ "{service_name}.\n"
2233
+ "Thank you and we look forward to seeing you again soon.\n"
2234
+ "{company_name}\n"
2235
+ "{company_phone}\n"
2236
+ "{company_website}"
2237
+ msgstr ""
2238
+ "尊敬的{client_name},\n"
2239
+ "\n"
2240
+ "感謝您選擇{company_name}。希望您滿意我們為您提供的 {service_name}。\n"
2241
+ "\n"
2242
+ "謝謝,希望可以再次為您服務。\n"
2243
+ "\n"
2244
+ "{company_name}\n"
2245
+ "{company_phone}\n"
2246
+ "{company_website}"
2247
 
2248
+ msgid ""
2249
+ "Evening notification with the next day agenda to staff member (requires cron "
2250
+ "setup)"
2251
+ msgstr "通知員工第二天日程(需要cron的設置)"
2252
+
2253
+ msgid ""
2254
+ "Hello.\n"
2255
+ "Your agenda for tomorrow is:\n"
2256
+ "{next_day_agenda}"
2257
+ msgstr ""
2258
+ "你好,\n"
2259
+ "你明天的行程:\n"
2260
+ "{next_day_agenda}"
2261
 
2262
+ msgid ""
2263
+ "Thank you! Your booking is complete. An email with details of your booking "
2264
+ "has been sent to you."
2265
+ msgstr "謝謝! 您已完成預約。系統將會寄一封關於預約的詳細資訊到您的電郵。 "
2266
+
2267
+ msgid ""
2268
+ "You are trying to use the service too often. Please contact us to make a "
2269
+ "booking."
2270
+ msgstr "您正在嘗試頻繁使用該服務。請聯繫我們進行預訂。"
2271
+
2272
+ msgid "Your payment has been accepted for processing."
2273
+ msgstr "您的付款已被接受和正在處理。"
2274
 
2275
+ msgid ""
2276
+ "You selected a booking for {service_name} by {staff_name} at {service_time} "
2277
+ "on {service_date}. The price for the service is {service_price}.\n"
2278
  "Please provide your details in the form below to proceed with booking."
2279
+ msgstr ""
2280
+ "您已選由 {staff_name} 負責的 {service_name} 服務,預約為 {service_date} 的 {service_time}"
2281
+ "。預定的服務價格是 {service_price}。\n"
2282
+ "請在以下的表格中留下詳細信息,以便安排。"
2283
 
 
2284
  msgid "Please tell us how you would like to pay: "
2285
+ msgstr "請選擇您的支付方式:"
2286
 
 
2287
  msgid "Please select service: "
2288
+ msgstr "請選擇服務:"
2289
 
2290
+ msgid ""
2291
+ "Below you can find a list of available time slots for {service_name} by "
2292
+ "{staff_name}.\n"
2293
  "Click on a time slot to proceed with booking."
2294
+ msgstr ""
2295
+ "您可以在下方查詢 {service_name} 的 {staff_name} 可預約時間.\n"
2296
  "選擇您的預約時間以進行預約。"
2297
 
 
2298
  msgid "Card Security Code"
2299
  msgstr "信用卡驗證碼"
2300
 
 
2301
  msgid "Expiration Date"
2302
  msgstr "到期日"
2303
 
 
2304
  msgid "Credit Card Number"
2305
  msgstr "信用卡號碼"
2306
 
2307
+ msgid "Confirm email"
2308
+ msgstr "確認電郵"
 
 
 
 
 
2309
 
 
2310
  msgid "Finish by"
2311
  msgstr "完成於"
2312
 
2313
+ msgid "First name"
2314
+ msgstr "名字"
2315
+
2316
+ msgid "Last name"
2317
+ msgstr "姓"
2318
+
2319
+ msgid "Notes"
2320
+ msgstr "記錄"
2321
+
2322
  msgid "I will pay now with Credit Card"
2323
  msgstr "我會現在使用信用卡支付"
2324
 
 
2325
  msgid "I will pay locally"
2326
  msgstr "我會即場支付"
2327
 
 
 
 
 
 
 
 
 
 
2328
  msgid "I'm available on or after"
2329
  msgstr "我可以在此或之後"
2330
 
 
2331
  msgid "Start from"
2332
  msgstr "由"
2333
 
2334
+ msgid "Select category"
2335
+ msgstr "選擇分類"
2336
+
2337
+ msgid "Any"
2338
+ msgstr "任何"
2339
+
2340
+ msgid "Select service"
2341
+ msgstr "選擇服務"
2342
+
2343
+ msgid "Select day"
2344
+ msgstr "選擇日期"
2345
+
2346
+ msgid "Select month"
2347
+ msgstr "選擇月份"
2348
+
2349
+ msgid "Select year"
2350
+ msgstr "選擇年份"
2351
+
2352
  msgid "Please tell us your email"
2353
  msgstr "請提供您的電子郵箱"
2354
 
2355
+ msgid "Email confirmation doesn't match"
2356
+ msgstr "電子郵件確認不符"
2357
+
2358
  msgid "Please select an employee"
2359
  msgstr "請選擇一位員工"
2360
 
 
2361
  msgid "Please tell us your name"
2362
  msgstr "請提供您的姓名"
2363
 
 
2364
  msgid "Please tell us your first name"
2365
+ msgstr "請告訴我們您的名字"
2366
 
 
2367
  msgid "Please tell us your last name"
2368
+ msgstr "請告訴我們您的姓氏"
2369
 
 
2370
  msgid "Please tell us your phone"
2371
  msgstr "請提供您的電話"
2372
 
2373
+ msgid "Please select a service"
2374
+ msgstr "請選擇服務"
 
2375
 
2376
+ msgid ""
2377
+ "The selected time is not available anymore. Please, choose another time slot."
2378
  msgstr "所選時段已滿,請選擇其他的時段。"
2379
 
2380
+ msgid "Login"
2381
+ msgstr "登入"
2382
+
2383
  msgid "Done"
2384
  msgstr "已完成"
2385
 
 
2386
  msgid "Signed up"
2387
  msgstr "報名"
2388
 
2389
+ msgid "Custom notification"
2390
+ msgstr "自定通知"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2391
 
2392
+ msgid "Appointment reminder"
2393
+ msgstr "預約提示"
 
2394
 
2395
+ msgid "New booking"
2396
+ msgstr "新預約"
 
2397
 
2398
+ msgid "Notification about customer's appointment status change"
2399
+ msgstr "有關客戶約會狀態更改的通知"
 
2400
 
2401
+ msgid "Customer birthday greeting (requires cron setup)"
2402
+ msgstr "客戶生日問候(需要cron設置)"
 
2403
 
2404
+ msgid "Notification to customer about pending appointment"
2405
+ msgstr "通知客戶有關審核中的預約資料"
 
2406
 
2407
+ msgid ""
2408
+ "1st reminder to customer about upcoming appointment (requires cron setup)"
2409
+ msgstr "第一個提醒客戶即將到來的預約(需要安裝cron)"
2410
 
2411
+ msgid ""
2412
+ "2nd reminder to customer about upcoming appointment (requires cron setup)"
2413
+ msgstr "第二次提醒客戶即將到來的預約(需要安裝cron)"
2414
 
2415
+ msgid ""
2416
+ "3rd reminder to customer about upcoming appointment (requires cron setup)"
2417
+ msgstr "第三次提醒客戶即將到來的預約(需要安裝cron"
2418
 
2419
+ msgid "Last client's appointment"
2420
+ msgstr "過去客戶預約"
 
2421
 
2422
+ msgid "Full day agenda"
2423
+ msgstr "全日議程"
 
2424
 
2425
+ msgid "Notification to staff member about pending appointment"
2426
+ msgstr "通知員工審核中的預約資料"
 
2427
 
2428
+ msgid "Invalid day"
2429
+ msgstr "日子無效"
 
2430
 
2431
+ msgid "Day is required"
2432
+ msgstr "日期必填"
 
2433
 
2434
+ msgid "Month is required"
2435
+ msgstr "月份為必填"
 
2436
 
2437
+ msgid "Year is required"
2438
+ msgstr "需要年份"
 
2439
 
2440
+ msgid "Country"
2441
+ msgstr "國家"
 
2442
 
2443
+ msgid "State/Region"
2444
+ msgstr "州/地區"
 
2445
 
2446
+ msgid "Postal Code"
2447
+ msgstr "郵政編碼"
 
2448
 
2449
+ msgid "City"
2450
+ msgstr "城市"
 
2451
 
2452
+ msgid "Street Address"
2453
+ msgstr "街道地址"
 
2454
 
2455
+ msgid "Additional Address"
2456
+ msgstr "添加地址"
 
2457
 
2458
+ msgid "Country is required"
2459
+ msgstr "國家為必填項"
 
2460
 
2461
+ msgid "State is required"
2462
+ msgstr "州為必填項"
 
2463
 
2464
+ msgid "Postcode is required"
2465
+ msgstr "必填郵政編碼"
 
 
2466
 
2467
+ msgid "City is required"
2468
+ msgstr "城市為必填"
 
2469
 
2470
+ msgid "Street is required"
2471
+ msgstr "街道名稱為必填項"
 
2472
 
2473
+ msgid "Additional address is required"
2474
+ msgstr "必須提供額外地址"
 
2475
 
2476
+ msgid ""
2477
+ "The highlighted time is not available anymore. Please, choose another time "
2478
+ "slot."
2479
+ msgstr "所選時段已滿,請選擇其他的時段。"
2480
 
2481
+ msgid "Happy Birthday!"
2482
+ msgstr "生日快樂!"
 
2483
 
2484
+ msgid ""
2485
+ "Dear {client_name},\n"
2486
+ "\n"
2487
+ "Happy birthday!\n"
2488
+ "We wish you all the best.\n"
2489
+ "May you and your family be happy and healthy.\n"
2490
+ "\n"
2491
+ "Thank you for choosing our company.\n"
2492
+ "\n"
2493
+ "{company_name}\n"
2494
+ "{company_phone}\n"
2495
+ "{company_website}"
2496
  msgstr ""
2497
+ "尊敬的{client_name},\n"
2498
+ "\n"
2499
+ "生日快樂!\n"
2500
+ "我們祝你一切順利。\n"
2501
+ "願你和你的家人幸福和健康。\n"
2502
+ "\n"
2503
+ "感謝您選擇我們的公司。\n"
2504
+ "\n"
2505
+ "{company_name}\n"
2506
+ "{company_phone}\n"
2507
+ "{company_website}"
2508
 
2509
+ msgid ""
2510
+ "Dear {client_name},\n"
2511
+ "Happy birthday!\n"
2512
+ "We wish you all the best.\n"
2513
+ "May you and your family be happy and healthy.\n"
2514
+ "Thank you for choosing our company.\n"
2515
+ "{company_name}\n"
2516
+ "{company_phone}\n"
2517
+ "{company_website}"
2518
  msgstr ""
2519
+ "尊敬的{client_name},\n"
2520
+ "生日快樂!\n"
2521
+ "我們祝你一切順利。\n"
2522
+ "願你和你的家人幸福和健康。\n"
2523
+ "感謝您選擇我們的公司。\n"
2524
+ "{company_name}\n"
2525
+ "{company_phone}\n"
2526
+ "{company_website}"
2527
 
2528
+ #, php-format
2529
+ msgid "%d year"
2530
+ msgid_plural "%d years"
2531
+ msgstr[0] "%d 年"
2532
+ msgstr[1] ""
2533
 
2534
+ #, php-format
2535
+ msgid "%d month"
2536
+ msgid_plural "%d months"
2537
+ msgstr[0] "%d 月"
2538
+ msgstr[1] ""
2539
 
2540
+ #, php-format
2541
+ msgid "%d week"
2542
+ msgid_plural "%d weeks"
2543
+ msgstr[0] "%d 周"
2544
+ msgstr[1] ""
2545
 
2546
+ #, php-format
2547
+ msgid "%d day"
2548
+ msgid_plural "%d days"
2549
+ msgstr[0] "%d 天"
2550
+ msgstr[1] ""
2551
 
2552
+ #, php-format
2553
+ msgid "%d h"
2554
+ msgstr "%d 小時"
2555
 
2556
+ #, php-format
2557
+ msgid "%d min"
2558
+ msgstr "%d 分"
2559
 
2560
+ msgid "Tomorrow"
2561
+ msgstr "明天"
 
2562
 
2563
+ msgid "Yesterday"
2564
+ msgstr "昨天"
 
2565
 
2566
+ msgid "Last 7 days"
2567
+ msgstr "過去7天"
 
2568
 
2569
+ msgid "Last 30 days"
2570
+ msgstr "過去30天"
 
2571
 
2572
+ msgid "This month"
2573
+ msgstr "這個月"
 
2574
 
2575
+ msgid "Next month"
2576
+ msgstr "下月"
 
2577
 
2578
+ msgid "Custom range"
2579
+ msgstr "自定範圍"
 
2580
 
2581
+ msgid "To"
2582
+ msgstr ""
 
2583
 
2584
+ msgid "From"
2585
+ msgstr ""
 
2586
 
2587
+ msgid "No."
2588
+ msgstr ""
 
2589
 
2590
+ msgid "Appointment date"
2591
+ msgstr "預約日期"
 
2592
 
2593
+ msgid "Customer name"
2594
+ msgstr "顧客名稱"
 
2595
 
2596
+ msgid "Customer phone"
2597
+ msgstr "顧客電話"
 
2598
 
2599
+ msgid "Customer email"
2600
+ msgstr "顧客電郵"
 
2601
 
2602
+ msgid "Created"
2603
+ msgstr "已建立"
 
2604
 
2605
+ msgid "User"
2606
+ msgstr "用戶"
 
2607
 
2608
+ msgid "Last appointment"
2609
+ msgstr "最後一個預約"
 
2610
 
2611
+ msgid "Total appointments"
2612
+ msgstr "所有預約"
 
2613
 
2614
+ msgid "Payments"
2615
+ msgstr "付款"
 
2616
 
2617
+ msgid "Type"
2618
+ msgstr "類型"
 
2619
 
2620
+ msgid "State"
2621
+ msgstr ""
 
2622
 
2623
+ msgid "Customer"
2624
+ msgstr "客戶"
 
2625
 
2626
+ msgid "Amount"
2627
+ msgstr "數量"
 
2628
 
2629
+ msgid "Text"
2630
+ msgstr "文字"
 
2631
 
2632
+ msgid "Sender ID"
2633
+ msgstr "發件人ID"
 
2634
 
2635
+ msgid "Cost"
2636
+ msgstr "成本"
 
2637
 
2638
+ msgid "Flag"
2639
+ msgstr "國家"
 
2640
 
2641
+ msgid "Code"
2642
+ msgstr "代碼"
 
2643
 
2644
+ msgid "Regular price"
2645
+ msgstr "正常價格"
 
2646
 
2647
+ msgid "Price with custom Sender ID"
2648
+ msgstr "價格與自定義發送者ID"
 
2649
 
2650
+ msgid "Order"
2651
+ msgstr "訂單"
 
 
 
2652
 
2653
+ msgid "Requested ID"
2654
+ msgstr "請求ID"
 
2655
 
2656
+ msgid "Status date"
2657
+ msgstr "狀態日期"
 
2658
 
2659
+ msgid "Important"
2660
+ msgstr "重要"
 
2661
 
2662
+ msgid ""
2663
+ "Though, every new version is thoroughly tested to its highest quality before "
2664
+ "deploying, we can't guarantee that after update the plugin will work "
2665
+ "properly on all WordPress configurations and completely protect it from the "
2666
+ "influence of other plugins."
2667
  msgstr ""
2668
+ "雖然,每個新版本在推出前都經過了最高質量的全面測試,但我們不能保證在更新後該插件將在所有WordPress配置上都能正常工作,並完全保護其不受其他插件的影響。"
2669
 
2670
+ #, php-format
2671
+ msgid ""
2672
+ "There is a small risk that some issues may appear as a result of updating "
2673
+ "the plugin. Please note that, according to %1$s Envato rules %2$s, we will "
2674
+ "be able to help you only if you have active item support period."
2675
+ msgstr "更新插件可能會導致一些問題出現。請注意,根據 %1$ Envato規則 %2$,只有在有效的項目支援時段,我們才能為您提供幫助。"
2676
 
2677
+ #, php-format
2678
+ msgid ""
2679
+ "You can renew support %1$s here %3$s or %2$s I've already renewed support. "
2680
+ "%3$s"
2681
+ msgstr "您可以在 %3$s 或 %2$s 這裡更新支援 %1$s,我已經更新了支援。 %3$s"
2682
 
2683
+ msgid "Local"
2684
+ msgstr "即場"
 
2685
 
2686
+ msgid "Free"
2687
+ msgstr "空閒"
 
 
2688
 
2689
+ msgid "Completed"
2690
+ msgstr "已完成"
 
 
2691
 
2692
+ msgid "Pending"
2693
+ msgstr "審批中"
 
2694
 
2695
+ msgid "Rejected"
2696
+ msgstr "拒絕"
 
2697
 
2698
+ msgid "Approved"
2699
+ msgstr "已經獲批"
 
2700
 
2701
+ msgid "Cancelled"
2702
+ msgstr "已取消"
 
2703
 
2704
+ msgid "Untitled"
2705
+ msgstr "無標題"
 
2706
 
2707
+ msgid "Unknown"
2708
+ msgstr "不詳"
 
2709
 
2710
+ msgid "New booking notification"
2711
+ msgstr "新預約通知"
 
2712
 
2713
+ msgid "New booking combined notification"
2714
+ msgstr "新預約合併通知"
 
2715
 
2716
+ msgid "New customer's WordPress user login details"
2717
+ msgstr "新客戶的WordPress用戶登錄詳細信息"
 
2718
 
2719
+ msgid "Customer's birthday greeting"
2720
+ msgstr "客戶的生日祝福"
 
2721
 
2722
+ msgid "Customer's last appointment notification"
2723
+ msgstr "客戶的最後預約通知"
 
2724
 
2725
+ msgid "Staff full day agenda"
2726
+ msgstr "員工日程"
 
2727
 
2728
+ msgid "Test message"
2729
+ msgstr "測試消息"
 
2730
 
2731
+ msgid "Invalid email"
2732
+ msgstr "無效的電郵地址"
 
2733
 
2734
+ msgid "This email is already in use"
2735
+ msgstr "該郵箱已被使用"
 
2736
 
2737
+ #, php-format
2738
+ msgid "\"%s\" is too long (%d characters max)."
2739
+ msgstr "\"%s\" 太長 (最多%d 字)。"
2740
 
2741
+ msgid "Invalid number"
2742
+ msgstr "無效數字"
 
2743
 
2744
+ msgid "Invalid date"
2745
+ msgstr "日期無效"
 
2746
 
2747
+ msgid "Invalid time"
2748
+ msgstr "時間無效"
 
2749
 
2750
+ #, php-format
2751
+ msgid ""
2752
+ "Your %s: %s is already associated with another %s.<br/>Press Update if we "
2753
+ "should update your user data, or press Cancel to edit entered data."
2754
+ msgstr "您的 %s: %s 已經與另一個 %s 有關。<br/>如果我們需要更新您的用戶資料,請進行更新,或者按取消以修改輸入的資料。"
2755
 
2756
+ msgid "sent to our system"
2757
+ msgstr "發送到我們的系統"
 
2758
 
2759
+ msgid ""
2760
+ "Hope you had a good weekend! Here's a summary of messages we've delivered "
2761
+ "last week:\n"
2762
+ "{notification_list}\n"
2763
+ "\n"
2764
+ "Your system sent a total of {total} messages last week (that's {delta} {sign}"
2765
+ " than the week before).\n"
2766
+ "Cost of sending {total} messages was {amount}. Your current Bookly SMS "
2767
+ "balance is {balance}.\n"
2768
+ "\n"
2769
+ "Thank you for using Bookly SMS. We wish you a lucky week!\n"
2770
+ "Bookly SMS Team"
2771
  msgstr ""
2772
+ "希望您週末愉快!以下是我們上週發送的信息摘要:\n"
2773
+ "{notification_list}\n"
2774
+ "\n"
2775
+ "您的系統上週共發送了{total}條消息(比前一周發送了{delta} {sign})。\n"
2776
+ "發送{total}郵件的費用為{amount}。您當前的Bookly SMS餘額為{balance}。\n"
2777
+ "\n"
2778
+ "感謝您使用Bookly SMS。祝您有個美好的一周!\n"
2779
+ "Bookly SMS 團隊"
2780
 
2781
+ msgid "more"
2782
+ msgstr "增加"
 
2783
 
2784
+ msgid "less"
2785
+ msgstr "减少"
 
2786
 
2787
+ msgid "Bookly SMS weekly summary"
2788
+ msgstr "Bookly SMS每週摘要"
 
2789
 
2790
+ msgid "Internal Notes"
2791
+ msgstr "內部筆記"
 
2792
 
2793
+ msgid ""
2794
+ "To view the details of these appointments, please contact your website "
2795
+ "administrator in order to verify Bookly Pro license."
2796
+ msgstr "要查看這些預約的詳細信息,請聯繫您的網站管理員以驗證Bookly Pro許可。"
2797
 
2798
+ msgid "Admins"
2799
+ msgstr "管理"
 
2800
 
2801
+ msgid "Passwords must be the same."
2802
+ msgstr "密碼必須相同。"
 
2803
 
2804
+ msgid ""
2805
+ "Your don't have enough Bookly SMS credits to send this message. Please add "
2806
+ "funds to your balance and try again."
2807
+ msgstr "您沒有足夠的Bookly短訊餘額去發送這訊息,請充值後再試。"
2808
 
2809
+ msgid "Failed to send SMS."
2810
+ msgstr "傳送SMS短訊失敗。"
 
2811
 
2812
+ msgid "Phone number is empty."
2813
+ msgstr "沒有輸入電話號碼。"
 
2814
 
2815
+ msgid "Queued"
2816
+ msgstr "排列"
 
2817
 
2818
+ msgid "Error"
2819
+ msgstr "錯誤"
 
2820
 
2821
+ msgid "Out of credit"
2822
+ msgstr "信用額度已全用"
 
2823
 
2824
+ msgid "Country out of service"
2825
+ msgstr "國家暫停服務"
 
2826
 
2827
+ msgid "Sending"
2828
+ msgstr "傳送中"
 
2829
 
2830
+ msgid "Sent"
2831
+ msgstr "已發送"
 
2832
 
2833
+ msgid "Delivered"
2834
+ msgstr "已發貨"
 
2835
 
2836
+ msgid "Failed"
2837
+ msgstr "已失敗"
 
2838
 
2839
+ msgid "Undelivered"
2840
+ msgstr "未送達"
 
2841
 
2842
+ msgid "Default"
2843
+ msgstr "預設"
 
2844
 
2845
+ msgid "Declined"
2846
+ msgstr "下降"
 
2847
 
2848
+ msgid "Error connecting to server."
2849
+ msgstr "連線到伺服器發生錯誤。"
 
2850
 
2851
+ #, php-format
2852
+ msgid ""
2853
+ "Dear Bookly SMS customer.\n"
2854
+ "We would like to notify you that your Bookly SMS balance fell lower than 5 "
2855
+ "USD. To use our service without interruptions please recharge your balance "
2856
+ "by visiting Bookly SMS page <a href='%s'>here</a>.\n"
2857
+ "\n"
2858
+ "If you want to stop receiving these notifications, please update your "
2859
+ "settings <a href='%s'>here</a>."
2860
  msgstr ""
2861
+ "尊敬的Bookly SMS短信的客戶。我們想告訴你,你Bookly短信餘額降至低於5美元。如要継績使用我們的服務,請訪問Bookly短信增值<a "
2862
+ "href=‘%s’>頁面</a> 增值您的餘額。\n"
2863
+ "\n"
2864
+ "如果你想停止接收這些通知,請更新您的設置<a href=‘%s’>這裏</a> 。"
2865
 
2866
+ msgid "Bookly SMS - Low Balance"
2867
+ msgstr "Bookly SMS - 餘額過低"
 
2868
 
2869
+ msgid "Empty password."
2870
+ msgstr "空密碼。"
 
2871
 
2872
+ msgid "Incorrect password."
2873
+ msgstr "錯誤密碼。"
 
2874
 
2875
+ msgid "Incorrect recovery code."
2876
+ msgstr "不正確的復原碼。"
 
2877
 
2878
+ msgid "Incorrect email or password."
2879
+ msgstr "郵件信箱或密碼錯誤"
 
2880
 
2881
+ msgid "Incorrect sender ID"
2882
+ msgstr "不正確發送ID"
 
2883
 
2884
+ msgid "Invalid email."
2885
+ msgstr "無效的郵件地址。"
 
2886
 
2887
+ msgid "Pending sender ID already exists."
2888
+ msgstr "待發件人ID已經存在。"
 
2889
 
2890
+ msgid "Recovery code expired."
2891
+ msgstr "復原碼已過期。"
 
2892
 
2893
+ msgid "Error sending email."
2894
+ msgstr "發送電子郵件時出現錯誤。"
 
 
2895
 
2896
+ msgid "User not found."
2897
+ msgstr "找不到用戶。"
 
 
2898
 
2899
+ msgid "Email already in use."
2900
+ msgstr "該郵箱已被使用"
 
2901
 
2902
+ msgid "Dashboard"
2903
+ msgstr "儀表板"
 
2904
 
2905
+ msgid "Staff Members"
2906
+ msgstr "員工"
 
2907
 
2908
+ msgid "Email Notifications"
2909
+ msgstr "電郵通知"
 
2910
 
2911
+ msgid "Customers"
2912
+ msgstr "客戶"
 
2913
 
2914
+ msgid "Appearance"
2915
+ msgstr "外觀"
 
2916
 
2917
+ msgid "Settings"
2918
+ msgstr "設定"
 
2919
 
2920
+ msgid "Get Bookly Pro"
2921
+ msgstr "獲得Bookly Pro"
 
2922
 
2923
+ msgid "Messages"
2924
+ msgstr "訊息"
 
2925
 
2926
+ msgid "Subject"
2927
+ msgstr "主題"
 
2928
 
2929
+ msgid "Message"
2930
+ msgstr "訊息"
 
2931
 
2932
+ msgid "No records."
2933
+ msgstr "沒有記錄。"
 
2934
 
2935
+ msgid "messages"
2936
+ msgstr "訊息"
 
2937
 
2938
+ msgid "Previous"
2939
+ msgstr "之前"
 
2940
 
2941
+ msgid "New appointment"
2942
+ msgstr "建立預約"
 
2943
 
2944
+ msgid "Created at any time"
2945
+ msgstr "在任何時間建立"
 
2946
 
2947
+ msgid "Any time"
2948
+ msgstr "任何時間"
 
2949
 
2950
+ msgid "No appointments for selected period."
2951
+ msgstr "選擇時間沒有預約。"
 
2952
 
2953
+ msgid "No result found"
2954
+ msgstr "找不到結果"
 
2955
 
2956
+ msgid "Searching"
2957
+ msgstr "搜索"
 
2958
 
2959
+ msgid "Attachments"
2960
+ msgstr "附件"
 
2961
 
2962
+ msgid "Archived"
2963
+ msgstr "已存檔"
 
2964
 
2965
+ msgid "Send invoice"
2966
+ msgstr "發送發票"
 
2967
 
2968
+ msgid "Company name"
2969
+ msgstr "公司名稱"
 
2970
 
2971
+ msgid "Note: invoice will be sent to your PayPal email address"
2972
+ msgstr "注意:發票將發送到您的PayPal電子郵件地址"
 
2973
 
2974
+ msgid "Company address"
2975
+ msgstr "公司地址"
 
2976
 
2977
+ msgid "Copy invoice to another email(s)"
2978
+ msgstr "將發票複製到其他電子郵件"
 
2979
 
2980
+ msgid "Enter one or more email addresses separated by commas."
2981
+ msgstr "輸入一個或多個用逗號分隔的電子郵件地址。"
 
2982
 
2983
+ msgid "Company address line 2"
2984
+ msgstr "公司地址(第2行)"
 
2985
 
2986
+ msgid "VAT"
2987
+ msgstr "增值稅"
 
2988
 
2989
+ msgid "Company code"
2990
+ msgstr "公司代碼"
 
2991
 
2992
+ msgid "Additional text to include into invoice"
2993
+ msgstr "包含在發票中的額外文字"
 
2994
 
2995
+ msgid "SMS Notifications"
2996
+ msgstr "SMS 短信通知"
 
2997
 
2998
+ msgid "Your balance"
2999
+ msgstr "您的餘額"
 
3000
 
3001
+ msgid "Send email notification to administrators at low balance"
3002
+ msgstr "餘額過低時發電郵通知管理員"
 
3003
 
3004
+ msgid "Send weekly summary to administrators"
3005
+ msgstr "向管理員發送每週摘要"
 
3006
 
3007
+ msgid "Change"
3008
+ msgstr "更改"
 
3009
 
3010
+ msgid "Approved at"
3011
+ msgstr "在批准"
 
3012
 
3013
+ msgid "Log out"
3014
+ msgstr "登出"
 
3015
 
3016
+ msgid "Notifications"
3017
+ msgstr "通知"
 
3018
 
3019
+ msgid "Add money"
3020
+ msgstr "増值"
 
3021
 
3022
+ msgid "Auto-Recharge"
3023
+ msgstr "自動儲值"
 
3024
 
3025
+ msgid "Purchases"
3026
+ msgstr "購買"
 
3027
 
3028
+ msgid "SMS Details"
3029
+ msgstr "SMS 短信內容"
 
3030
 
3031
+ msgid "Price list"
3032
+ msgstr "價目表"
 
3033
 
3034
+ msgid ""
3035
+ "SMS Notifications (or \"Bookly SMS\") is a service for notifying your "
3036
+ "customers via text messages which are sent to mobile phones."
3037
+ msgstr "短信通知(或\"Bookly SMS\")是把手機短信發送到您的客戶的服務。"
3038
 
3039
+ msgid "It is necessary to register in order to start using this service."
3040
+ msgstr "它是必要的,以便註冊開始使用該服務。"
 
3041
 
3042
+ msgid ""
3043
+ "After registration you will need to configure notification messages and top "
3044
+ "up your balance in order to start sending SMS."
3045
+ msgstr "註冊後,您將需要設置通知消息,並充值您的餘額以開始發送短信。"
3046
 
3047
+ msgid "Confirm your email"
3048
+ msgstr "確認您的電子郵件"
 
3049
 
3050
+ msgid "Thank you for registration."
3051
+ msgstr "感謝您的註冊。"
 
3052
 
3053
+ #, php-format
3054
+ msgid "Confirmation is sent to %s."
3055
+ msgstr "確認已發送到%s。"
3056
 
3057
+ msgid ""
3058
+ "Once you confirm your e-mail address, you will get an access to Bookly SMS "
3059
+ "service."
3060
+ msgstr "確認電子郵件地址後,您將可以使用Bookly SMS服務。"
3061
 
3062
+ msgid "Password"
3063
+ msgstr "密碼"
 
3064
 
3065
+ msgid "Log In"
3066
+ msgstr "登入"
 
3067
 
3068
+ msgid "Registration"
3069
+ msgstr "注册"
 
3070
 
3071
+ msgid "Forgot password"
3072
+ msgstr "忘記密碼"
 
3073
 
3074
+ msgid "Repeat password"
3075
+ msgstr "重覆密碼"
 
3076
 
3077
+ #, php-format
3078
+ msgid ""
3079
+ "I accept <a href=\"%1$s\" target=\"_blank\">Service Terms</a> and <a "
3080
+ "href=\"%2$s\" target=\"_blank\">Privacy Policy</a>"
3081
  msgstr ""
3082
+ "我接受<a href=\"%1$s\" target=\"_blank\">服務條款</a>和<a href=\"%2$s\" "
3083
+ "target=\"_blank\">隱私政策</a>"
3084
 
3085
+ msgid "Register"
3086
+ msgstr "註冊"
 
3087
 
3088
+ msgid "Enter code from email"
3089
+ msgstr "從電郵輸入代碼"
 
3090
 
3091
+ msgid "Repeat new password"
3092
+ msgstr "重覆新密碼"
 
3093
 
3094
+ msgid "Change password"
3095
+ msgstr "修改密碼"
 
3096
 
3097
+ msgid "Old password"
3098
+ msgstr "舊密碼"
 
3099
 
3100
+ msgid ""
3101
+ "We will only charge your PayPal account when your balance falls below $10."
3102
+ msgstr "當您的餘額低於$ 10,我們將只向您的PayPal帳戶收錢。"
3103
 
3104
+ msgid "Enable Auto-Recharge"
3105
+ msgstr "啟用自動儲值"
 
3106
 
3107
+ msgid "Disable Auto-Recharge"
3108
+ msgstr "停用自動儲值"
 
3109
 
3110
+ msgid ""
3111
+ "If you do not see your country in the list please contact us at <a "
3112
+ "href=\"mailto:support@bookly.info\">support@bookly.info</a>."
3113
  msgstr ""
3114
+ "如果您在列表中沒有找到您的國家,請通過<a href=\"mailto:support@bookly.info\">support@bookly."
3115
+ "info </a>與我們聯繫。"
3116
 
3117
+ msgid "Administrator phone"
3118
+ msgstr "管理員的電話"
 
3119
 
3120
+ msgid ""
3121
+ "Enter a phone number in international format. E.g. for the United States a "
3122
+ "valid phone number would be +17327572923."
3123
+ msgstr "輸入一個國際格式的電話號碼。例如,在美國的一個有效的電話號碼是+17327572923。"
3124
 
3125
+ msgid "Send test SMS"
3126
+ msgstr "傳送測試SMS短訊"
 
3127