WordPress Online Booking and Scheduling Plugin – Bookly - Version 17.2

Version Description

Download this release

Release Info

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

Code changes from version 17.1 to 17.2

Files changed (65) hide show
  1. backend/Backend.php +3 -1
  2. backend/components/controls/Buttons.php +26 -2
  3. backend/components/dashboard/appointments/Ajax.php +76 -0
  4. backend/components/dashboard/appointments/Widget.php +67 -0
  5. backend/components/dashboard/appointments/resources/js/Chart.bundle.min.js +10 -0
  6. backend/components/dashboard/appointments/resources/js/Chart.min.js +10 -0
  7. backend/components/dashboard/appointments/resources/js/appointments-dashboard.js +118 -0
  8. backend/components/dashboard/appointments/templates/block.php +56 -0
  9. backend/components/dashboard/appointments/templates/widget.php +36 -0
  10. backend/components/dialogs/notifications/Dialog.php +0 -1
  11. backend/components/dialogs/notifications/templates/_editor.php +1 -1
  12. backend/components/dialogs/notifications/templates/_subject.php +1 -0
  13. backend/components/dialogs/service/categories/Dialog.php +40 -0
  14. backend/components/dialogs/service/categories/resources/js/service-categories-dialog.js +69 -0
  15. backend/components/dialogs/service/categories/templates/dialog.php +37 -0
  16. backend/components/dialogs/service/create/Dialog.php +42 -0
  17. backend/components/dialogs/service/create/resources/js/service-create-dialog.js +47 -0
  18. backend/components/dialogs/service/create/templates/dialog.php +42 -0
  19. backend/components/dialogs/service/edit/Dialog.php +48 -0
  20. backend/components/dialogs/service/edit/resources/js/service-edit-dialog.js +278 -0
  21. backend/components/dialogs/service/edit/templates/dialog.php +81 -0
  22. backend/components/dialogs/sms/Dialog.php +0 -2
  23. backend/components/dialogs/sms/resources/js/notification-dialog.js +26 -14
  24. backend/components/dialogs/sms/templates/_editor.php +2 -2
  25. backend/components/dialogs/sms/templates/_subject.php +1 -0
  26. backend/components/gutenberg/bookly_form/resources/js/booking-form-block.js +3 -2
  27. backend/components/settings/templates/price_correction.php +7 -9
  28. backend/components/tiny_mce/Tools.php +21 -2
  29. backend/components/tiny_mce/resources/js/bookly-form-settings.js +335 -0
  30. backend/components/tiny_mce/templates/bookly_form.php +90 -421
  31. backend/components/tiny_mce/templates/bookly_popup.php +29 -0
  32. backend/modules/appearance/Ajax.php +0 -2
  33. backend/modules/appearance/proxy/CustomDuration.php +0 -1
  34. backend/modules/appearance/proxy/Locations.php +0 -1
  35. backend/modules/appearance/proxy/MultiplyAppointments.php +0 -1
  36. backend/modules/appearance/resources/js/appearance.js +1 -54
  37. backend/modules/appearance/templates/index.php +3 -3
  38. backend/modules/appointments/Page.php +1 -0
  39. backend/modules/appointments/resources/js/appointments.js +50 -29
  40. backend/modules/dashboard/Page.php +63 -0
  41. backend/modules/dashboard/proxy/Pro.php +15 -0
  42. backend/modules/dashboard/resources/js/dashboard.js +53 -0
  43. backend/modules/dashboard/templates/index.php +42 -0
  44. backend/modules/notifications/templates/index.php +1 -1
  45. backend/modules/payments/Ajax.php +5 -10
  46. backend/modules/payments/resources/js/payments.js +50 -14
  47. backend/modules/services/Ajax.php +132 -61
  48. backend/modules/services/Page.php +38 -83
  49. backend/modules/services/proxy/RecurringAppointments.php +15 -0
  50. backend/modules/services/proxy/ServiceExtras.php +16 -0
  51. backend/modules/services/proxy/ServiceSchedule.php +16 -0
  52. backend/modules/services/proxy/ServiceSpecialDays.php +16 -0
  53. backend/modules/services/proxy/Shared.php +3 -4
  54. backend/modules/services/resources/js/service.js +0 -584
  55. backend/modules/services/resources/js/services-list.js +211 -0
  56. backend/modules/services/templates/_category_item.php +0 -18
  57. backend/modules/services/templates/_list.php +0 -262
  58. backend/modules/services/templates/advanced.php +15 -0
  59. backend/modules/services/templates/general.php +92 -0
  60. backend/modules/services/templates/index.php +42 -64
  61. backend/modules/services/templates/time.php +55 -0
  62. backend/modules/staff/Ajax.php +1 -1
  63. backend/modules/staff/forms/StaffServices.php +1 -0
  64. backend/modules/staff/templates/services.php +1 -1
  65. backend/resources/bootstrap/css/bootstrap-theme.min.css +1 -1
backend/Backend.php CHANGED
@@ -60,6 +60,7 @@ abstract class Backend
60
  Lib\Proxy\Pro::addLicenseBooklyMenuItem();
61
  } else {
62
  // Translated submenu pages.
 
63
  $calendar = __( 'Calendar', 'bookly' );
64
  $appointments = __( 'Appointments', 'bookly' );
65
  $staff_members = __( 'Staff Members', 'bookly' );
@@ -70,6 +71,8 @@ abstract class Backend
70
  $appearance = __( 'Appearance', 'bookly' );
71
  $settings = __( 'Settings', 'bookly' );
72
 
 
 
73
  add_submenu_page( 'bookly-menu', $calendar, $calendar, 'read',
74
  Modules\Calendar\Page::pageSlug(), function () { Modules\Calendar\Page::render(); } );
75
  if ( $current_user->has_cap( 'manage_options' ) || $current_user->has_cap( 'manage_bookly_appointments' ) ) {
@@ -113,7 +116,6 @@ abstract class Backend
113
  Modules\Settings\Page::pageSlug(), function () { Modules\Settings\Page::render(); } );
114
  Modules\Messages\Page::addBooklyMenuItem();
115
  Modules\Shop\Page::addBooklyMenuItem();
116
- Lib\Proxy\Pro::addAnalyticsBooklyMenuItem();
117
 
118
  if ( isset ( $_GET['page'] ) && $_GET['page'] == 'bookly-debug' ) {
119
  add_submenu_page( 'bookly-menu', 'Debug', 'Debug', 'manage_options',
60
  Lib\Proxy\Pro::addLicenseBooklyMenuItem();
61
  } else {
62
  // Translated submenu pages.
63
+ $dashboard = __( 'Dashboard', 'bookly' );
64
  $calendar = __( 'Calendar', 'bookly' );
65
  $appointments = __( 'Appointments', 'bookly' );
66
  $staff_members = __( 'Staff Members', 'bookly' );
71
  $appearance = __( 'Appearance', 'bookly' );
72
  $settings = __( 'Settings', 'bookly' );
73
 
74
+ add_submenu_page( 'bookly-menu', $dashboard, $dashboard, 'read',
75
+ Modules\Dashboard\Page::pageSlug(), function () { Modules\Dashboard\Page::render(); } );
76
  add_submenu_page( 'bookly-menu', $calendar, $calendar, 'read',
77
  Modules\Calendar\Page::pageSlug(), function () { Modules\Calendar\Page::render(); } );
78
  if ( $current_user->has_cap( 'manage_options' ) || $current_user->has_cap( 'manage_bookly_appointments' ) ) {
116
  Modules\Settings\Page::pageSlug(), function () { Modules\Settings\Page::render(); } );
117
  Modules\Messages\Page::addBooklyMenuItem();
118
  Modules\Shop\Page::addBooklyMenuItem();
 
119
 
120
  if ( isset ( $_GET['page'] ) && $_GET['page'] == 'bookly-debug' ) {
121
  add_submenu_page( 'bookly-menu', 'Debug', 'Debug', 'manage_options',
backend/components/controls/Buttons.php CHANGED
@@ -38,7 +38,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(
@@ -46,7 +46,31 @@ class Buttons
46
  $id,
47
  'btn-danger',
48
  $extra_class,
49
- '<i class="glyphicon glyphicon-trash"></i> ' . esc_html( $caption ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  $attributes
51
  );
52
  }
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(
46
  $id,
47
  'btn-danger',
48
  $extra_class,
49
+ '<i class="fa fa-fw fa-trash"></i> ' . esc_html( $caption ),
50
+ $attributes
51
+ );
52
+ }
53
+
54
+ /**
55
+ * Render Add button.
56
+ *
57
+ * @param string $id
58
+ * @param string $extra_class
59
+ * @param string $caption
60
+ * @param array $attributes
61
+ */
62
+ public static function renderAdd( $id = 'bookly-add', $extra_class = null, $caption = null, array $attributes = array() )
63
+ {
64
+ if ( $caption === null ) {
65
+ $caption = __( 'Add...', 'bookly' );
66
+ }
67
+
68
+ echo self::_createButton(
69
+ 'button',
70
+ $id,
71
+ 'btn-success',
72
+ $extra_class,
73
+ '<i class="fa fa-fw fa-plus"></i> ' . esc_html( $caption ),
74
  $attributes
75
  );
76
  }
backend/components/dashboard/appointments/Ajax.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dashboard\Appointments;
3
+
4
+ use Bookly\Lib;
5
+ use Bookly\Backend\Modules;
6
+
7
+ /**
8
+ * Class Ajax
9
+ * @package Bookly\Backend\Components\Dashboard\Appointments
10
+ */
11
+ class Ajax extends Lib\Base\Ajax
12
+ {
13
+ public static function getAppointmentsDataForDashboard()
14
+ {
15
+ list ( $start, $end ) = explode( ' - ', self::parameter( 'range' ) );
16
+ $start = date_create( $start );
17
+ $end = date_create( $end );
18
+ $day = array(
19
+ 'total' => 0,
20
+ 'revenue' => 0,
21
+ );
22
+ $data = array(
23
+ 'totals' => array(
24
+ 'approved' => 0,
25
+ 'pending' => 0,
26
+ 'total' => 0,
27
+ 'revenue' => 0,
28
+ ),
29
+ 'filters' => array(
30
+ 'approved' => sprintf( '%s#created-date=%s-%s&appointment-date=any&status=%s', Lib\Utils\Common::escAdminUrl( Modules\Appointments\Page::pageSlug() ), $start->format( 'Y-m-d' ), $end->format( 'Y-m-d' ), 'approved' ),
31
+ 'pending' => sprintf( '%s#created-date=%s-%s&appointment-date=any&status=%s', Lib\Utils\Common::escAdminUrl( Modules\Appointments\Page::pageSlug() ), $start->format( 'Y-m-d' ), $end->format( 'Y-m-d' ), 'pending' ),
32
+ 'total' => sprintf( '%s#created-date=%s-%s&appointment-date=any', Lib\Utils\Common::escAdminUrl( Modules\Appointments\Page::pageSlug() ), $start->format( 'Y-m-d' ), $end->format( 'Y-m-d' ) ),
33
+ 'revenue' => sprintf( '%s#created-date=%s-%s', Lib\Utils\Common::escAdminUrl( Modules\Payments\Page::pageSlug() ), $start->format( 'Y-m-d' ), $end->format( 'Y-m-d' ) ),
34
+ ),
35
+ 'days' => array(),
36
+ 'labels' => array(),
37
+ );
38
+ $end->modify( '+1 day' );
39
+ $period = new \DatePeriod( $start, \DateInterval::createFromDateString( '1 day' ), $end );
40
+ /** @var \DateTime $dt */
41
+ foreach ( $period as $dt ) {
42
+ $data['labels'][] = date_i18n( 'M j', $dt->getTimestamp() );
43
+ $data['days'][ $dt->format( 'Y-m-d' ) ] = $day;
44
+ }
45
+
46
+ $records = Lib\Entities\CustomerAppointment::query( 'ca' )
47
+ ->select( 'DATE(ca.created) AS created, COUNT(1) AS quantity, p.paid AS revenue, ca.status, p.id' )
48
+ ->leftJoin( 'Payment', 'p', 'p.id = ca.payment_id' )
49
+ ->whereBetween( 'ca.created', $start->format( 'Y-m-d' ), $end->format( 'Y-m-d' ) )
50
+ ->groupBy( 'DATE(ca.created), p.id, ca.status' )
51
+ ->fetchArray();
52
+ // Consider payment for all appointments only 1 time
53
+ $payment_ids = array();
54
+ foreach ( $records as $record ) {
55
+ $created = $record['created'];
56
+ $quantity = $record['quantity'];
57
+ $status = $record['status'];
58
+ if ( in_array( $record['id'], $payment_ids ) ) {
59
+ $revenue = 0;
60
+ } else {
61
+ $payment_ids[] = $record['id'];
62
+ $revenue = $record['revenue'];
63
+ }
64
+ if ( array_key_exists( $status, $data['totals'] ) ) {
65
+ $data['totals'][ $status ] += $quantity;
66
+ }
67
+ $data['totals']['total'] += $quantity;
68
+ $data['totals']['revenue'] += $revenue;
69
+ $data['days'][ $created ]['total'] += $quantity;
70
+ $data['days'][ $created ]['revenue'] += $revenue;
71
+ }
72
+ $data['totals']['revenue'] = Lib\Utils\Price::format( $data['totals']['revenue'] );
73
+
74
+ wp_send_json_success( $data );
75
+ }
76
+ }
backend/components/dashboard/appointments/Widget.php ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dashboard\Appointments;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Widget
8
+ * @package Bookly\Backend\Components\Dashboard\Appointments
9
+ */
10
+ class Widget extends Lib\Base\Component
11
+ {
12
+ public static function init()
13
+ {
14
+ $class = __CLASS__;
15
+ add_action( 'wp_dashboard_setup', function () use ( $class ) {
16
+ wp_add_dashboard_widget( strtolower( str_replace( '\\', '-', $class ) ), 'Bookly - ' . __( 'Appointments', 'bookly' ), array( $class, 'renderWidget' ) );
17
+ } );
18
+ }
19
+
20
+ /**
21
+ * Render widget on WordPress dashboard.
22
+ */
23
+ public static function renderWidget()
24
+ {
25
+ self::enqueueAssets();
26
+ self::renderTemplate( 'widget' );
27
+ }
28
+
29
+ /**
30
+ * Render on Bookly/Dashboard page.
31
+ */
32
+ public static function renderChart()
33
+ {
34
+ self::enqueueAssets();
35
+ self::renderTemplate( 'block' );
36
+ }
37
+
38
+ /**
39
+ * Enqueue assets
40
+ */
41
+ private static function enqueueAssets()
42
+ {
43
+ self::enqueueStyles( array(
44
+ 'backend' => array( 'css/fontawesome-all.min.css' ),
45
+ ) );
46
+
47
+ self::enqueueScripts( array(
48
+ 'module' => array(
49
+ 'js/Chart.min.js',
50
+ 'js/Chart.bundle.min.js' => array( 'bookly-Chart.min.js' ),
51
+ 'js/appointments-dashboard.js' => array( 'bookly-Chart.bundle.min.js', 'bookly-help.js' ),
52
+ ),
53
+ 'backend' => array(
54
+ 'js/help.js' => array( 'jquery' ),
55
+ )
56
+ ) );
57
+
58
+ $currencies = Lib\Utils\Price::getCurrencies();
59
+
60
+ wp_localize_script( 'bookly-appointments-dashboard.js', 'BooklyAppointmentsWidgetL10n', array(
61
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
62
+ 'appointments' => __( 'Appointments', 'bookly' ),
63
+ 'revenue' => __( 'Revenue', 'bookly' ),
64
+ 'currency' => $currencies[ get_option( 'bookly_pmt_currency' ) ]['symbol'],
65
+ ) );
66
+ }
67
+ }
backend/components/dashboard/appointments/resources/js/Chart.bundle.min.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Chart.js
3
+ * http://chartjs.org/
4
+ * Version: 2.7.3
5
+ *
6
+ * Copyright 2018 Chart.js Contributors
7
+ * Released under the MIT license
8
+ * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md
9
+ */
10
+ !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Chart=t()}}(function(){return function r(o,s,l){function u(e,t){if(!s[e]){if(!o[e]){var n="function"==typeof require&&require;if(!t&&n)return n(e,!0);if(d)return d(e,!0);var i=new Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}var a=s[e]={exports:{}};o[e][0].call(a.exports,function(t){return u(o[e][1][t]||t)},a,a.exports,r,o,s,l)}return s[e].exports}for(var d="function"==typeof require&&require,t=0;t<l.length;t++)u(l[t]);return u}({1:[function(t,e,n){var r=t(5);function i(t){if(t){var e=[0,0,0],n=1,i=t.match(/^#([a-fA-F0-9]{3})$/i);if(i){i=i[1];for(var a=0;a<e.length;a++)e[a]=parseInt(i[a]+i[a],16)}else if(i=t.match(/^#([a-fA-F0-9]{6})$/i)){i=i[1];for(a=0;a<e.length;a++)e[a]=parseInt(i.slice(2*a,2*a+2),16)}else if(i=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(a=0;a<e.length;a++)e[a]=parseInt(i[a+1]);n=parseFloat(i[4])}else if(i=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(a=0;a<e.length;a++)e[a]=Math.round(2.55*parseFloat(i[a+1]));n=parseFloat(i[4])}else if(i=t.match(/(\w+)/)){if("transparent"==i[1])return[0,0,0,0];if(!(e=r[i[1]]))return}for(a=0;a<e.length;a++)e[a]=d(e[a],0,255);return n=n||0==n?d(n,0,1):1,e[3]=n,e}}function a(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var n=parseFloat(e[4]);return[d(parseInt(e[1]),0,360),d(parseFloat(e[2]),0,100),d(parseFloat(e[3]),0,100),d(isNaN(n)?1:n,0,1)]}}}function o(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var n=parseFloat(e[4]);return[d(parseInt(e[1]),0,360),d(parseFloat(e[2]),0,100),d(parseFloat(e[3]),0,100),d(isNaN(n)?1:n,0,1)]}}}function s(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function l(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function u(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function d(t,e,n){return Math.min(Math.max(e,t),n)}function h(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}e.exports={getRgba:i,getHsla:a,getRgb:function(t){var e=i(t);return e&&e.slice(0,3)},getHsl:function(t){var e=a(t);return e&&e.slice(0,3)},getHwb:o,getAlpha:function(t){var e=i(t);{if(e)return e[3];if(e=a(t))return e[3];if(e=o(t))return e[3]}},hexString:function(t){return"#"+h(t[0])+h(t[1])+h(t[2])},rgbString:function(t,e){if(e<1||t[3]&&t[3]<1)return s(t,e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:s,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return l(t,e);var n=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+n+"%, "+i+"%, "+a+"%)"},percentaString:l,hslString:function(t,e){if(e<1||t[3]&&t[3]<1)return u(t,e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:u,hwbString:function(t,e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return c[t.slice(0,3)]}};var c={};for(var f in r)c[r[f]]=f},{5:5}],2:[function(t,e,n){var d=t(4),i=t(1),o=function(t){return t instanceof o?t:this instanceof o?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof t?(e=i.getRgba(t))?this.setValues("rgb",e):(e=i.getHsla(t))?this.setValues("hsl",e):(e=i.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new o(t);var e};o.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return i.hexString(this.values.rgb)},rgbString:function(){return i.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return i.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return i.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return i.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return i.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return i.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return i.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],n=0;n<t.length;n++){var i=t[n]/255;e[n]=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),n=t.luminosity();return n<e?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return 7.1<=e?"AAA":4.5<=e?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=this,i=t,a=void 0===e?.5:e,r=2*a-1,o=n.alpha()-i.alpha(),s=((r*o==-1?r:(r+o)/(1+r*o))+1)/2,l=1-s;return this.rgb(s*n.red()+l*i.red(),s*n.green()+l*i.green(),s*n.blue()+l*i.blue()).alpha(n.alpha()*a+i.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new o,i=this.values,a=n.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],"[object Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:",t));return n}},o.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i<t.length;i++)n[t.charAt(i)]=e[t][i];return 1!==e.alpha&&(n.a=e.alpha),n},o.prototype.setValues=function(t,e){var n,i,a=this.values,r=this.spaces,o=this.maxes,s=1;if(this.valid=!0,"alpha"===t)s=e;else if(e.length)a[t]=e.slice(0,t.length),s=e[t.length];else if(void 0!==e[t.charAt(0)]){for(n=0;n<t.length;n++)a[t][n]=e[t.charAt(n)];s=e.a}else if(void 0!==e[r[t][0]]){var l=r[t];for(n=0;n<t.length;n++)a[t][n]=e[l[n]];s=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void 0===s?a.alpha:s)),"alpha"===t)return!1;for(n=0;n<t.length;n++)i=Math.max(0,Math.min(o[t][n],a[t][n])),a[t][n]=Math.round(i);for(var u in r)u!==t&&(a[u]=d[t][u](a[t]));return!0},o.prototype.setSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):("number"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n),this)},o.prototype.setChannel=function(t,e,n){var i=this.values[t];return void 0===n?i[e]:(n===i[e]||(i[e]=n,this.setValues(t,i)),this)},"undefined"!=typeof window&&(window.Color=o),e.exports=o},{1:1,4:4}],3:[function(t,e,n){function a(t){var e,n,i=t[0]/255,a=t[1]/255,r=t[2]/255,o=Math.min(i,a,r),s=Math.max(i,a,r),l=s-o;return s==o?e=0:i==s?e=(a-r)/l:a==s?e=2+(r-i)/l:r==s&&(e=4+(i-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),n=(o+s)/2,[e,100*(s==o?0:n<=.5?l/(s+o):l/(2-s-o)),100*n]}function i(t){var e,n,i=t[0],a=t[1],r=t[2],o=Math.min(i,a,r),s=Math.max(i,a,r),l=s-o;return n=0==s?0:l/s*1e3/10,s==o?e=0:i==s?e=(a-r)/l:a==s?e=2+(r-i)/l:r==s&&(e=4+(i-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),[e,n,s/255*1e3/10]}function o(t){var e=t[0],n=t[1],i=t[2];return[a(t)[0],100*(1/255*Math.min(e,Math.min(n,i))),100*(i=1-1/255*Math.max(e,Math.max(n,i)))]}function s(t){var e,n=t[0]/255,i=t[1]/255,a=t[2]/255;return[100*((1-n-(e=Math.min(1-n,1-i,1-a)))/(1-e)||0),100*((1-i-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]}function l(t){return S[JSON.stringify(t)]}function u(t){var e=t[0]/255,n=t[1]/255,i=t[2]/255;return[100*(.4124*(e=.04045<e?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=.04045<n?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=.04045<i?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]}function d(t){var e=u(t),n=e[0],i=e[1],a=e[2];return i/=100,a/=108.883,n=.008856<(n/=95.047)?Math.pow(n,1/3):7.787*n+16/116,[116*(i=.008856<i?Math.pow(i,1/3):7.787*i+16/116)-16,500*(n-i),200*(i-(a=.008856<a?Math.pow(a,1/3):7.787*a+16/116))]}function h(t){var e,n,i,a,r,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[r=255*l,r,r];e=2*l-(n=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var u=0;u<3;u++)(i=o+1/3*-(u-1))<0&&i++,1<i&&i--,r=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,a[u]=255*r;return a}function c(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,r=e-Math.floor(e),o=255*i*(1-n),s=255*i*(1-n*r),l=255*i*(1-n*(1-r));i*=255;switch(a){case 0:return[i,l,o];case 1:return[s,i,o];case 2:return[o,i,l];case 3:return[o,s,i];case 4:return[l,o,i];case 5:return[i,o,s]}}function f(t){var e,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,u=s+l;switch(1<u&&(s/=u,l/=u),i=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(i=1-i),a=s+i*((n=1-l)-s),e){default:case 6:case 0:r=n,g=a,b=s;break;case 1:r=a,g=n,b=s;break;case 2:r=s,g=n,b=a;break;case 3:r=s,g=a,b=n;break;case 4:r=a,g=s,b=n;break;case 5:r=n,g=s,b=a}return[255*r,255*g,255*b]}function m(t){var e=t[0]/100,n=t[1]/100,i=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a))]}function p(t){var e,n,i,a=t[0]/100,r=t[1]/100,o=t[2]/100;return n=-.9689*a+1.8758*r+.0415*o,i=.0557*a+-.204*r+1.057*o,e=.0031308<(e=3.2406*a+-1.5372*r+-.4986*o)?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=.0031308<n?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,i=.0031308<i?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(n=Math.min(Math.max(0,n),1)),255*(i=Math.min(Math.max(0,i),1))]}function v(t){var e=t[0],n=t[1],i=t[2];return n/=100,i/=108.883,e=.008856<(e/=95.047)?Math.pow(e,1/3):7.787*e+16/116,[116*(n=.008856<n?Math.pow(n,1/3):7.787*n+16/116)-16,500*(e-n),200*(n-(i=.008856<i?Math.pow(i,1/3):7.787*i+16/116))]}function y(t){var e,n,i,a,r=t[0],o=t[1],s=t[2];return a=r<=8?(n=100*r/903.3)/100*7.787+16/116:(n=100*Math.pow((r+16)/116,3),Math.pow(n/100,1/3)),[e=e/95.047<=.008856?e=95.047*(o/500+a-16/116)/7.787:95.047*Math.pow(o/500+a,3),n,i=i/108.883<=.008859?i=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3)]}function x(t){var e,n=t[0],i=t[1],a=t[2];return(e=360*Math.atan2(a,i)/2/Math.PI)<0&&(e+=360),[n,Math.sqrt(i*i+a*a),e]}function _(t){return p(y(t))}function k(t){var e,n=t[0],i=t[1];return e=t[2]/360*2*Math.PI,[n,i*Math.cos(e),i*Math.sin(e)]}function w(t){return M[t]}e.exports={rgb2hsl:a,rgb2hsv:i,rgb2hwb:o,rgb2cmyk:s,rgb2keyword:l,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return x(d(t))},hsl2rgb:h,hsl2hsv:function(t){var e=t[0],n=t[1]/100,i=t[2]/100;return 0!==i?[e,100*(2*(n*=(i*=2)<=1?i:2-i)/(i+n)),100*((i+n)/2)]:[0,0,0]},hsl2hwb:function(t){return o(h(t))},hsl2cmyk:function(t){return s(h(t))},hsl2keyword:function(t){return l(h(t))},hsv2rgb:c,hsv2hsl:function(t){var e,n,i=t[0],a=t[1]/100,r=t[2]/100;return e=a*r,[i,100*(e=(e/=(n=(2-a)*r)<=1?n:2-n)||0),100*(n/=2)]},hsv2hwb:function(t){return o(c(t))},hsv2cmyk:function(t){return s(c(t))},hsv2keyword:function(t){return l(c(t))},hwb2rgb:f,hwb2hsl:function(t){return a(f(t))},hwb2hsv:function(t){return i(f(t))},hwb2cmyk:function(t){return s(f(t))},hwb2keyword:function(t){return l(f(t))},cmyk2rgb:m,cmyk2hsl:function(t){return a(m(t))},cmyk2hsv:function(t){return i(m(t))},cmyk2hwb:function(t){return o(m(t))},cmyk2keyword:function(t){return l(m(t))},keyword2rgb:w,keyword2hsl:function(t){return a(w(t))},keyword2hsv:function(t){return i(w(t))},keyword2hwb:function(t){return o(w(t))},keyword2cmyk:function(t){return s(w(t))},keyword2lab:function(t){return d(w(t))},keyword2xyz:function(t){return u(w(t))},xyz2rgb:p,xyz2lab:v,xyz2lch:function(t){return x(v(t))},lab2xyz:y,lab2rgb:_,lab2lch:x,lch2lab:k,lch2xyz:function(t){return y(k(t))},lch2rgb:function(t){return _(k(t))}};var M={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},S={};for(var D in M)S[JSON.stringify(M[D])]=D},{}],4:[function(t,e,n){var a=t(3),r=function(){return new u};for(var i in a){r[i+"Raw"]=function(e){return function(t){return"number"==typeof t&&(t=Array.prototype.slice.call(arguments)),a[e](t)}}(i);var o=/(\w+)2(\w+)/.exec(i),s=o[1],l=o[2];(r[s]=r[s]||{})[l]=r[i]=function(i){return function(t){"number"==typeof t&&(t=Array.prototype.slice.call(arguments));var e=a[i](t);if("string"==typeof e||void 0===e)return e;for(var n=0;n<e.length;n++)e[n]=Math.round(e[n]);return e}}(i)}var u=function(){this.convs={}};u.prototype.routeSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):("number"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n))},u.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},u.prototype.getValues=function(t){var e=this.convs[t];if(!e){var n=this.space,i=this.convs[n];e=r[n][t](i),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(e){u.prototype[e]=function(t){return this.routeSpace(e,arguments)}}),e.exports=r},{3:3}],5:[function(t,e,n){"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],6:[function(En,jn,t){var e,n;e=this,n=function(){"use strict";var t,a;function c(){return t.apply(null,arguments)}function s(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function l(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function u(t){return void 0===t}function d(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function h(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function f(t,e){var n,i=[];for(n=0;n<t.length;++n)i.push(e(t[n],n));return i}function g(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function m(t,e){for(var n in e)g(e,n)&&(t[n]=e[n]);return g(e,"toString")&&(t.toString=e.toString),g(e,"valueOf")&&(t.valueOf=e.valueOf),t}function p(t,e,n,i){return De(t,e,n,i,!0).utc()}function v(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function b(t){if(null==t._isValid){var e=v(t),n=a.call(e.parsedDateParts,function(t){return null!=t}),i=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&n);if(t._strict&&(i=i&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return i;t._isValid=i}return t._isValid}function y(t){var e=p(NaN);return null!=t?m(v(e),t):v(e).userInvalidated=!0,e}a=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,i=0;i<n;i++)if(i in e&&t.call(this,e[i],i,e))return!0;return!1};var r=c.momentProperties=[];function x(t,e){var n,i,a;if(u(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),u(e._i)||(t._i=e._i),u(e._f)||(t._f=e._f),u(e._l)||(t._l=e._l),u(e._strict)||(t._strict=e._strict),u(e._tzm)||(t._tzm=e._tzm),u(e._isUTC)||(t._isUTC=e._isUTC),u(e._offset)||(t._offset=e._offset),u(e._pf)||(t._pf=v(e)),u(e._locale)||(t._locale=e._locale),0<r.length)for(n=0;n<r.length;n++)u(a=e[i=r[n]])||(t[i]=a);return t}var e=!1;function _(t){x(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===e&&(e=!0,c.updateOffset(this),e=!1)}function k(t){return t instanceof _||null!=t&&null!=t._isAMomentObject}function w(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function M(t){var e=+t,n=0;return 0!==e&&isFinite(e)&&(n=w(e)),n}function o(t,e,n){var i,a=Math.min(t.length,e.length),r=Math.abs(t.length-e.length),o=0;for(i=0;i<a;i++)(n&&t[i]!==e[i]||!n&&M(t[i])!==M(e[i]))&&o++;return o+r}function S(t){!1===c.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function n(a,r){var o=!0;return m(function(){if(null!=c.deprecationHandler&&c.deprecationHandler(null,a),o){for(var t,e=[],n=0;n<arguments.length;n++){if(t="","object"==typeof arguments[n]){for(var i in t+="\n["+n+"] ",arguments[0])t+=i+": "+arguments[0][i]+", ";t=t.slice(0,-2)}else t=arguments[n];e.push(t)}S(a+"\nArguments: "+Array.prototype.slice.call(e).join("")+"\n"+(new Error).stack),o=!1}return r.apply(this,arguments)},r)}var i,D={};function C(t,e){null!=c.deprecationHandler&&c.deprecationHandler(t,e),D[t]||(S(e),D[t]=!0)}function P(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function T(t,e){var n,i=m({},t);for(n in e)g(e,n)&&(l(t[n])&&l(e[n])?(i[n]={},m(i[n],t[n]),m(i[n],e[n])):null!=e[n]?i[n]=e[n]:delete i[n]);for(n in t)g(t,n)&&!g(e,n)&&l(t[n])&&(i[n]=m({},i[n]));return i}function O(t){null!=t&&this.set(t)}c.suppressDeprecationWarnings=!1,c.deprecationHandler=null,i=Object.keys?Object.keys:function(t){var e,n=[];for(e in t)g(t,e)&&n.push(e);return n};var I={};function A(t,e){var n=t.toLowerCase();I[n]=I[n+"s"]=I[e]=t}function F(t){return"string"==typeof t?I[t]||I[t.toLowerCase()]:void 0}function R(t){var e,n,i={};for(n in t)g(t,n)&&(e=F(n))&&(i[e]=t[n]);return i}var L={};function Y(t,e){L[t]=e}function W(t,e,n){var i=""+Math.abs(t),a=e-i.length;return(0<=t?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+i}var N=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,z=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,V={},H={};function B(t,e,n,i){var a=i;"string"==typeof i&&(a=function(){return this[i]()}),t&&(H[t]=a),e&&(H[e[0]]=function(){return W(a.apply(this,arguments),e[1],e[2])}),n&&(H[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),t)})}function E(t,e){return t.isValid()?(e=j(e,t.localeData()),V[e]=V[e]||function(i){var t,a,e,r=i.match(N);for(t=0,a=r.length;t<a;t++)H[r[t]]?r[t]=H[r[t]]:r[t]=(e=r[t]).match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"");return function(t){var e,n="";for(e=0;e<a;e++)n+=P(r[e])?r[e].call(t,i):r[e];return n}}(e),V[e](t)):t.localeData().invalidDate()}function j(t,e){var n=5;function i(t){return e.longDateFormat(t)||t}for(z.lastIndex=0;0<=n&&z.test(t);)t=t.replace(z,i),z.lastIndex=0,n-=1;return t}var U=/\d/,G=/\d\d/,q=/\d{3}/,Z=/\d{4}/,X=/[+-]?\d{6}/,J=/\d\d?/,$=/\d\d\d\d?/,K=/\d\d\d\d\d\d?/,Q=/\d{1,3}/,tt=/\d{1,4}/,et=/[+-]?\d{1,6}/,nt=/\d+/,it=/[+-]?\d+/,at=/Z|[+-]\d\d:?\d\d/gi,rt=/Z|[+-]\d\d(?::?\d\d)?/gi,ot=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,st={};function lt(t,n,i){st[t]=P(n)?n:function(t,e){return t&&i?i:n}}function ut(t,e){return g(st,t)?st[t](e._strict,e._locale):new RegExp(dt(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,i,a){return e||n||i||a})))}function dt(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var ht={};function ct(t,n){var e,i=n;for("string"==typeof t&&(t=[t]),d(n)&&(i=function(t,e){e[n]=M(t)}),e=0;e<t.length;e++)ht[t[e]]=i}function ft(t,a){ct(t,function(t,e,n,i){n._w=n._w||{},a(t,n._w,n,i)})}var gt=0,mt=1,pt=2,vt=3,bt=4,yt=5,xt=6,_t=7,kt=8;function wt(t){return Mt(t)?366:365}function Mt(t){return t%4==0&&t%100!=0||t%400==0}B("Y",0,0,function(){var t=this.year();return t<=9999?""+t:"+"+t}),B(0,["YY",2],0,function(){return this.year()%100}),B(0,["YYYY",4],0,"year"),B(0,["YYYYY",5],0,"year"),B(0,["YYYYYY",6,!0],0,"year"),A("year","y"),Y("year",1),lt("Y",it),lt("YY",J,G),lt("YYYY",tt,Z),lt("YYYYY",et,X),lt("YYYYYY",et,X),ct(["YYYYY","YYYYYY"],gt),ct("YYYY",function(t,e){e[gt]=2===t.length?c.parseTwoDigitYear(t):M(t)}),ct("YY",function(t,e){e[gt]=c.parseTwoDigitYear(t)}),ct("Y",function(t,e){e[gt]=parseInt(t,10)}),c.parseTwoDigitYear=function(t){return M(t)+(68<M(t)?1900:2e3)};var St,Dt=Ct("FullYear",!0);function Ct(e,n){return function(t){return null!=t?(Tt(this,e,t),c.updateOffset(this,n),this):Pt(this,e)}}function Pt(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function Tt(t,e,n){t.isValid()&&!isNaN(n)&&("FullYear"===e&&Mt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](n,t.month(),Ot(n,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](n))}function Ot(t,e){if(isNaN(t)||isNaN(e))return NaN;var n,i=(e%(n=12)+n)%n;return t+=(e-i)/12,1===i?Mt(t)?29:28:31-i%7%2}St=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},B("M",["MM",2],"Mo",function(){return this.month()+1}),B("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),B("MMMM",0,0,function(t){return this.localeData().months(this,t)}),A("month","M"),Y("month",8),lt("M",J),lt("MM",J,G),lt("MMM",function(t,e){return e.monthsShortRegex(t)}),lt("MMMM",function(t,e){return e.monthsRegex(t)}),ct(["M","MM"],function(t,e){e[mt]=M(t)-1}),ct(["MMM","MMMM"],function(t,e,n,i){var a=n._locale.monthsParse(t,i,n._strict);null!=a?e[mt]=a:v(n).invalidMonth=t});var It=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,At="January_February_March_April_May_June_July_August_September_October_November_December".split("_");var Ft="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Rt(t,e){var n;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=M(e);else if(!d(e=t.localeData().monthsParse(e)))return t;return n=Math.min(t.date(),Ot(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,n),t}function Lt(t){return null!=t?(Rt(this,t),c.updateOffset(this,!0),this):Pt(this,"Month")}var Yt=ot;var Wt=ot;function Nt(){function t(t,e){return e.length-t.length}var e,n,i=[],a=[],r=[];for(e=0;e<12;e++)n=p([2e3,e]),i.push(this.monthsShort(n,"")),a.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(i.sort(t),a.sort(t),r.sort(t),e=0;e<12;e++)i[e]=dt(i[e]),a[e]=dt(a[e]);for(e=0;e<24;e++)r[e]=dt(r[e]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function zt(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&0<=t&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function Vt(t,e,n){var i=7+e-n;return-((7+zt(t,0,i).getUTCDay()-e)%7)+i-1}function Ht(t,e,n,i,a){var r,o,s=1+7*(e-1)+(7+n-i)%7+Vt(t,i,a);return o=s<=0?wt(r=t-1)+s:s>wt(t)?(r=t+1,s-wt(t)):(r=t,s),{year:r,dayOfYear:o}}function Bt(t,e,n){var i,a,r=Vt(t.year(),e,n),o=Math.floor((t.dayOfYear()-r-1)/7)+1;return o<1?i=o+Et(a=t.year()-1,e,n):o>Et(t.year(),e,n)?(i=o-Et(t.year(),e,n),a=t.year()+1):(a=t.year(),i=o),{week:i,year:a}}function Et(t,e,n){var i=Vt(t,e,n),a=Vt(t+1,e,n);return(wt(t)-i+a)/7}B("w",["ww",2],"wo","week"),B("W",["WW",2],"Wo","isoWeek"),A("week","w"),A("isoWeek","W"),Y("week",5),Y("isoWeek",5),lt("w",J),lt("ww",J,G),lt("W",J),lt("WW",J,G),ft(["w","ww","W","WW"],function(t,e,n,i){e[i.substr(0,1)]=M(t)});B("d",0,"do","day"),B("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),B("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),B("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),B("e",0,0,"weekday"),B("E",0,0,"isoWeekday"),A("day","d"),A("weekday","e"),A("isoWeekday","E"),Y("day",11),Y("weekday",11),Y("isoWeekday",11),lt("d",J),lt("e",J),lt("E",J),lt("dd",function(t,e){return e.weekdaysMinRegex(t)}),lt("ddd",function(t,e){return e.weekdaysShortRegex(t)}),lt("dddd",function(t,e){return e.weekdaysRegex(t)}),ft(["dd","ddd","dddd"],function(t,e,n,i){var a=n._locale.weekdaysParse(t,i,n._strict);null!=a?e.d=a:v(n).invalidWeekday=t}),ft(["d","e","E"],function(t,e,n,i){e[i]=M(t)});var jt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Ut="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var Gt="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var qt=ot;var Zt=ot;var Xt=ot;function Jt(){function t(t,e){return e.length-t.length}var e,n,i,a,r,o=[],s=[],l=[],u=[];for(e=0;e<7;e++)n=p([2e3,1]).day(e),i=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),r=this.weekdays(n,""),o.push(i),s.push(a),l.push(r),u.push(i),u.push(a),u.push(r);for(o.sort(t),s.sort(t),l.sort(t),u.sort(t),e=0;e<7;e++)s[e]=dt(s[e]),l[e]=dt(l[e]),u[e]=dt(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function $t(){return this.hours()%12||12}function Kt(t,e){B(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Qt(t,e){return e._meridiemParse}B("H",["HH",2],0,"hour"),B("h",["hh",2],0,$t),B("k",["kk",2],0,function(){return this.hours()||24}),B("hmm",0,0,function(){return""+$t.apply(this)+W(this.minutes(),2)}),B("hmmss",0,0,function(){return""+$t.apply(this)+W(this.minutes(),2)+W(this.seconds(),2)}),B("Hmm",0,0,function(){return""+this.hours()+W(this.minutes(),2)}),B("Hmmss",0,0,function(){return""+this.hours()+W(this.minutes(),2)+W(this.seconds(),2)}),Kt("a",!0),Kt("A",!1),A("hour","h"),Y("hour",13),lt("a",Qt),lt("A",Qt),lt("H",J),lt("h",J),lt("k",J),lt("HH",J,G),lt("hh",J,G),lt("kk",J,G),lt("hmm",$),lt("hmmss",K),lt("Hmm",$),lt("Hmmss",K),ct(["H","HH"],vt),ct(["k","kk"],function(t,e,n){var i=M(t);e[vt]=24===i?0:i}),ct(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),ct(["h","hh"],function(t,e,n){e[vt]=M(t),v(n).bigHour=!0}),ct("hmm",function(t,e,n){var i=t.length-2;e[vt]=M(t.substr(0,i)),e[bt]=M(t.substr(i)),v(n).bigHour=!0}),ct("hmmss",function(t,e,n){var i=t.length-4,a=t.length-2;e[vt]=M(t.substr(0,i)),e[bt]=M(t.substr(i,2)),e[yt]=M(t.substr(a)),v(n).bigHour=!0}),ct("Hmm",function(t,e,n){var i=t.length-2;e[vt]=M(t.substr(0,i)),e[bt]=M(t.substr(i))}),ct("Hmmss",function(t,e,n){var i=t.length-4,a=t.length-2;e[vt]=M(t.substr(0,i)),e[bt]=M(t.substr(i,2)),e[yt]=M(t.substr(a))});var te,ee=Ct("Hours",!0),ne={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:At,monthsShort:Ft,week:{dow:0,doy:6},weekdays:jt,weekdaysMin:Gt,weekdaysShort:Ut,meridiemParse:/[ap]\.?m?\.?/i},ie={},ae={};function re(t){return t?t.toLowerCase().replace("_","-"):t}function oe(t){var e=null;if(!ie[t]&&void 0!==jn&&jn&&jn.exports)try{e=te._abbr,En("./locale/"+t),se(e)}catch(t){}return ie[t]}function se(t,e){var n;return t&&((n=u(e)?ue(t):le(t,e))?te=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),te._abbr}function le(t,e){if(null===e)return delete ie[t],null;var n,i=ne;if(e.abbr=t,null!=ie[t])C("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=ie[t]._config;else if(null!=e.parentLocale)if(null!=ie[e.parentLocale])i=ie[e.parentLocale]._config;else{if(null==(n=oe(e.parentLocale)))return ae[e.parentLocale]||(ae[e.parentLocale]=[]),ae[e.parentLocale].push({name:t,config:e}),null;i=n._config}return ie[t]=new O(T(i,e)),ae[t]&&ae[t].forEach(function(t){le(t.name,t.config)}),se(t),ie[t]}function ue(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return te;if(!s(t)){if(e=oe(t))return e;t=[t]}return function(t){for(var e,n,i,a,r=0;r<t.length;){for(e=(a=re(t[r]).split("-")).length,n=(n=re(t[r+1]))?n.split("-"):null;0<e;){if(i=oe(a.slice(0,e).join("-")))return i;if(n&&n.length>=e&&o(a,n,!0)>=e-1)break;e--}r++}return te}(t)}function de(t){var e,n=t._a;return n&&-2===v(t).overflow&&(e=n[mt]<0||11<n[mt]?mt:n[pt]<1||n[pt]>Ot(n[gt],n[mt])?pt:n[vt]<0||24<n[vt]||24===n[vt]&&(0!==n[bt]||0!==n[yt]||0!==n[xt])?vt:n[bt]<0||59<n[bt]?bt:n[yt]<0||59<n[yt]?yt:n[xt]<0||999<n[xt]?xt:-1,v(t)._overflowDayOfYear&&(e<gt||pt<e)&&(e=pt),v(t)._overflowWeeks&&-1===e&&(e=_t),v(t)._overflowWeekday&&-1===e&&(e=kt),v(t).overflow=e),t}function he(t,e,n){return null!=t?t:null!=e?e:n}function ce(t){var e,n,i,a,r,o=[];if(!t._d){var s,l;for(s=t,l=new Date(c.now()),i=s._useUTC?[l.getUTCFullYear(),l.getUTCMonth(),l.getUTCDate()]:[l.getFullYear(),l.getMonth(),l.getDate()],t._w&&null==t._a[pt]&&null==t._a[mt]&&function(t){var e,n,i,a,r,o,s,l;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)r=1,o=4,n=he(e.GG,t._a[gt],Bt(Ce(),1,4).year),i=he(e.W,1),((a=he(e.E,1))<1||7<a)&&(l=!0);else{r=t._locale._week.dow,o=t._locale._week.doy;var u=Bt(Ce(),r,o);n=he(e.gg,t._a[gt],u.year),i=he(e.w,u.week),null!=e.d?((a=e.d)<0||6<a)&&(l=!0):null!=e.e?(a=e.e+r,(e.e<0||6<e.e)&&(l=!0)):a=r}i<1||i>Et(n,r,o)?v(t)._overflowWeeks=!0:null!=l?v(t)._overflowWeekday=!0:(s=Ht(n,i,a,r,o),t._a[gt]=s.year,t._dayOfYear=s.dayOfYear)}(t),null!=t._dayOfYear&&(r=he(t._a[gt],i[gt]),(t._dayOfYear>wt(r)||0===t._dayOfYear)&&(v(t)._overflowDayOfYear=!0),n=zt(r,0,t._dayOfYear),t._a[mt]=n.getUTCMonth(),t._a[pt]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=i[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[vt]&&0===t._a[bt]&&0===t._a[yt]&&0===t._a[xt]&&(t._nextDay=!0,t._a[vt]=0),t._d=(t._useUTC?zt:function(t,e,n,i,a,r,o){var s=new Date(t,e,n,i,a,r,o);return t<100&&0<=t&&isFinite(s.getFullYear())&&s.setFullYear(t),s}).apply(null,o),a=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[vt]=24),t._w&&void 0!==t._w.d&&t._w.d!==a&&(v(t).weekdayMismatch=!0)}}var fe=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ge=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,me=/Z|[+-]\d\d(?::?\d\d)?/,pe=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],ve=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],be=/^\/?Date\((\-?\d+)/i;function ye(t){var e,n,i,a,r,o,s=t._i,l=fe.exec(s)||ge.exec(s);if(l){for(v(t).iso=!0,e=0,n=pe.length;e<n;e++)if(pe[e][1].exec(l[1])){a=pe[e][0],i=!1!==pe[e][2];break}if(null==a)return void(t._isValid=!1);if(l[3]){for(e=0,n=ve.length;e<n;e++)if(ve[e][1].exec(l[3])){r=(l[2]||" ")+ve[e][0];break}if(null==r)return void(t._isValid=!1)}if(!i&&null!=r)return void(t._isValid=!1);if(l[4]){if(!me.exec(l[4]))return void(t._isValid=!1);o="Z"}t._f=a+(r||"")+(o||""),Me(t)}else t._isValid=!1}var xe=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function _e(t,e,n,i,a,r){var o=[function(t){var e=parseInt(t,10);{if(e<=49)return 2e3+e;if(e<=999)return 1900+e}return e}(t),Ft.indexOf(e),parseInt(n,10),parseInt(i,10),parseInt(a,10)];return r&&o.push(parseInt(r,10)),o}var ke={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function we(t){var e,n,i,a=xe.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(a){var r=_e(a[4],a[3],a[2],a[5],a[6],a[7]);if(e=a[1],n=r,i=t,e&&Ut.indexOf(e)!==new Date(n[0],n[1],n[2]).getDay()&&(v(i).weekdayMismatch=!0,!(i._isValid=!1)))return;t._a=r,t._tzm=function(t,e,n){if(t)return ke[t];if(e)return 0;var i=parseInt(n,10),a=i%100;return(i-a)/100*60+a}(a[8],a[9],a[10]),t._d=zt.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),v(t).rfc2822=!0}else t._isValid=!1}function Me(t){if(t._f!==c.ISO_8601)if(t._f!==c.RFC_2822){t._a=[],v(t).empty=!0;var e,n,i,a,r,o,s,l,u=""+t._i,d=u.length,h=0;for(i=j(t._f,t._locale).match(N)||[],e=0;e<i.length;e++)a=i[e],(n=(u.match(ut(a,t))||[])[0])&&(0<(r=u.substr(0,u.indexOf(n))).length&&v(t).unusedInput.push(r),u=u.slice(u.indexOf(n)+n.length),h+=n.length),H[a]?(n?v(t).empty=!1:v(t).unusedTokens.push(a),o=a,l=t,null!=(s=n)&&g(ht,o)&&ht[o](s,l._a,l,o)):t._strict&&!n&&v(t).unusedTokens.push(a);v(t).charsLeftOver=d-h,0<u.length&&v(t).unusedInput.push(u),t._a[vt]<=12&&!0===v(t).bigHour&&0<t._a[vt]&&(v(t).bigHour=void 0),v(t).parsedDateParts=t._a.slice(0),v(t).meridiem=t._meridiem,t._a[vt]=function(t,e,n){var i;if(null==n)return e;return null!=t.meridiemHour?t.meridiemHour(e,n):(null!=t.isPM&&((i=t.isPM(n))&&e<12&&(e+=12),i||12!==e||(e=0)),e)}(t._locale,t._a[vt],t._meridiem),ce(t),de(t)}else we(t);else ye(t)}function Se(t){var e,n,i,a,r=t._i,o=t._f;return t._locale=t._locale||ue(t._l),null===r||void 0===o&&""===r?y({nullInput:!0}):("string"==typeof r&&(t._i=r=t._locale.preparse(r)),k(r)?new _(de(r)):(h(r)?t._d=r:s(o)?function(t){var e,n,i,a,r;if(0===t._f.length)return v(t).invalidFormat=!0,t._d=new Date(NaN);for(a=0;a<t._f.length;a++)r=0,e=x({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[a],Me(e),b(e)&&(r+=v(e).charsLeftOver,r+=10*v(e).unusedTokens.length,v(e).score=r,(null==i||r<i)&&(i=r,n=e));m(t,n||e)}(t):o?Me(t):u(n=(e=t)._i)?e._d=new Date(c.now()):h(n)?e._d=new Date(n.valueOf()):"string"==typeof n?(i=e,null===(a=be.exec(i._i))?(ye(i),!1===i._isValid&&(delete i._isValid,we(i),!1===i._isValid&&(delete i._isValid,c.createFromInputFallback(i)))):i._d=new Date(+a[1])):s(n)?(e._a=f(n.slice(0),function(t){return parseInt(t,10)}),ce(e)):l(n)?function(t){if(!t._d){var e=R(t._i);t._a=f([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],function(t){return t&&parseInt(t,10)}),ce(t)}}(e):d(n)?e._d=new Date(n):c.createFromInputFallback(e),b(t)||(t._d=null),t))}function De(t,e,n,i,a){var r,o={};return!0!==n&&!1!==n||(i=n,n=void 0),(l(t)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(t)||s(t)&&0===t.length)&&(t=void 0),o._isAMomentObject=!0,o._useUTC=o._isUTC=a,o._l=n,o._i=t,o._f=e,o._strict=i,(r=new _(de(Se(o))))._nextDay&&(r.add(1,"d"),r._nextDay=void 0),r}function Ce(t,e,n,i){return De(t,e,n,i,!1)}c.createFromInputFallback=n("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),c.ISO_8601=function(){},c.RFC_2822=function(){};var Pe=n("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=Ce.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:y()}),Te=n("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=Ce.apply(null,arguments);return this.isValid()&&t.isValid()?this<t?this:t:y()});function Oe(t,e){var n,i;if(1===e.length&&s(e[0])&&(e=e[0]),!e.length)return Ce();for(n=e[0],i=1;i<e.length;++i)e[i].isValid()&&!e[i][t](n)||(n=e[i]);return n}var Ie=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ae(t){var e=R(t),n=e.year||0,i=e.quarter||0,a=e.month||0,r=e.week||0,o=e.day||0,s=e.hour||0,l=e.minute||0,u=e.second||0,d=e.millisecond||0;this._isValid=function(t){for(var e in t)if(-1===St.call(Ie,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var n=!1,i=0;i<Ie.length;++i)if(t[Ie[i]]){if(n)return!1;parseFloat(t[Ie[i]])!==M(t[Ie[i]])&&(n=!0)}return!0}(e),this._milliseconds=+d+1e3*u+6e4*l+1e3*s*60*60,this._days=+o+7*r,this._months=+a+3*i+12*n,this._data={},this._locale=ue(),this._bubble()}function Fe(t){return t instanceof Ae}function Re(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function Le(t,n){B(t,0,0,function(){var t=this.utcOffset(),e="+";return t<0&&(t=-t,e="-"),e+W(~~(t/60),2)+n+W(~~t%60,2)})}Le("Z",":"),Le("ZZ",""),lt("Z",rt),lt("ZZ",rt),ct(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=We(rt,t)});var Ye=/([\+\-]|\d\d)/gi;function We(t,e){var n=(e||"").match(t);if(null===n)return null;var i=((n[n.length-1]||[])+"").match(Ye)||["-",0,0],a=60*i[1]+M(i[2]);return 0===a?0:"+"===i[0]?a:-a}function Ne(t,e){var n,i;return e._isUTC?(n=e.clone(),i=(k(t)||h(t)?t.valueOf():Ce(t).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+i),c.updateOffset(n,!1),n):Ce(t).local()}function ze(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Ve(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}c.updateOffset=function(){};var He=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Be=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Ee(t,e){var n,i,a,r=t,o=null;return Fe(t)?r={ms:t._milliseconds,d:t._days,M:t._months}:d(t)?(r={},e?r[e]=t:r.milliseconds=t):(o=He.exec(t))?(n="-"===o[1]?-1:1,r={y:0,d:M(o[pt])*n,h:M(o[vt])*n,m:M(o[bt])*n,s:M(o[yt])*n,ms:M(Re(1e3*o[xt]))*n}):(o=Be.exec(t))?(n="-"===o[1]?-1:(o[1],1),r={y:je(o[2],n),M:je(o[3],n),w:je(o[4],n),d:je(o[5],n),h:je(o[6],n),m:je(o[7],n),s:je(o[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(a=function(t,e){var n;if(!t.isValid()||!e.isValid())return{milliseconds:0,months:0};e=Ne(e,t),t.isBefore(e)?n=Ue(t,e):((n=Ue(e,t)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(Ce(r.from),Ce(r.to)),(r={}).ms=a.milliseconds,r.M=a.months),i=new Ae(r),Fe(t)&&g(t,"_locale")&&(i._locale=t._locale),i}function je(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function Ue(t,e){var n={milliseconds:0,months:0};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function Ge(i,a){return function(t,e){var n;return null===e||isNaN(+e)||(C(a,"moment()."+a+"(period, number) is deprecated. Please use moment()."+a+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=t,t=e,e=n),qe(this,Ee(t="string"==typeof t?+t:t,e),i),this}}function qe(t,e,n,i){var a=e._milliseconds,r=Re(e._days),o=Re(e._months);t.isValid()&&(i=null==i||i,o&&Rt(t,Pt(t,"Month")+o*n),r&&Tt(t,"Date",Pt(t,"Date")+r*n),a&&t._d.setTime(t._d.valueOf()+a*n),i&&c.updateOffset(t,r||o))}Ee.fn=Ae.prototype,Ee.invalid=function(){return Ee(NaN)};var Ze=Ge(1,"add"),Xe=Ge(-1,"subtract");function Je(t,e){var n=12*(e.year()-t.year())+(e.month()-t.month()),i=t.clone().add(n,"months");return-(n+(e-i<0?(e-i)/(i-t.clone().add(n-1,"months")):(e-i)/(t.clone().add(n+1,"months")-i)))||0}function $e(t){var e;return void 0===t?this._locale._abbr:(null!=(e=ue(t))&&(this._locale=e),this)}c.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",c.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Ke=n("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});function Qe(){return this._locale}function tn(t,e){B(0,[t,t.length],0,e)}function en(t,e,n,i,a){var r;return null==t?Bt(this,i,a).year:((r=Et(t,i,a))<e&&(e=r),function(t,e,n,i,a){var r=Ht(t,e,n,i,a),o=zt(r.year,0,r.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}.call(this,t,e,n,i,a))}B(0,["gg",2],0,function(){return this.weekYear()%100}),B(0,["GG",2],0,function(){return this.isoWeekYear()%100}),tn("gggg","weekYear"),tn("ggggg","weekYear"),tn("GGGG","isoWeekYear"),tn("GGGGG","isoWeekYear"),A("weekYear","gg"),A("isoWeekYear","GG"),Y("weekYear",1),Y("isoWeekYear",1),lt("G",it),lt("g",it),lt("GG",J,G),lt("gg",J,G),lt("GGGG",tt,Z),lt("gggg",tt,Z),lt("GGGGG",et,X),lt("ggggg",et,X),ft(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,i){e[i.substr(0,2)]=M(t)}),ft(["gg","GG"],function(t,e,n,i){e[i]=c.parseTwoDigitYear(t)}),B("Q",0,"Qo","quarter"),A("quarter","Q"),Y("quarter",7),lt("Q",U),ct("Q",function(t,e){e[mt]=3*(M(t)-1)}),B("D",["DD",2],"Do","date"),A("date","D"),Y("date",9),lt("D",J),lt("DD",J,G),lt("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),ct(["D","DD"],pt),ct("Do",function(t,e){e[pt]=M(t.match(J)[0])});var nn=Ct("Date",!0);B("DDD",["DDDD",3],"DDDo","dayOfYear"),A("dayOfYear","DDD"),Y("dayOfYear",4),lt("DDD",Q),lt("DDDD",q),ct(["DDD","DDDD"],function(t,e,n){n._dayOfYear=M(t)}),B("m",["mm",2],0,"minute"),A("minute","m"),Y("minute",14),lt("m",J),lt("mm",J,G),ct(["m","mm"],bt);var an=Ct("Minutes",!1);B("s",["ss",2],0,"second"),A("second","s"),Y("second",15),lt("s",J),lt("ss",J,G),ct(["s","ss"],yt);var rn,on=Ct("Seconds",!1);for(B("S",0,0,function(){return~~(this.millisecond()/100)}),B(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),B(0,["SSS",3],0,"millisecond"),B(0,["SSSS",4],0,function(){return 10*this.millisecond()}),B(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),B(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),B(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),B(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),B(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),A("millisecond","ms"),Y("millisecond",16),lt("S",Q,U),lt("SS",Q,G),lt("SSS",Q,q),rn="SSSS";rn.length<=9;rn+="S")lt(rn,nt);function sn(t,e){e[xt]=M(1e3*("0."+t))}for(rn="S";rn.length<=9;rn+="S")ct(rn,sn);var ln=Ct("Milliseconds",!1);B("z",0,0,"zoneAbbr"),B("zz",0,0,"zoneName");var un=_.prototype;function dn(t){return t}un.add=Ze,un.calendar=function(t,e){var n=t||Ce(),i=Ne(n,this).startOf("day"),a=c.calendarFormat(this,i)||"sameElse",r=e&&(P(e[a])?e[a].call(this,n):e[a]);return this.format(r||this.localeData().calendar(a,this,Ce(n)))},un.clone=function(){return new _(this)},un.diff=function(t,e,n){var i,a,r;if(!this.isValid())return NaN;if(!(i=Ne(t,this)).isValid())return NaN;switch(a=6e4*(i.utcOffset()-this.utcOffset()),e=F(e)){case"year":r=Je(this,i)/12;break;case"month":r=Je(this,i);break;case"quarter":r=Je(this,i)/3;break;case"second":r=(this-i)/1e3;break;case"minute":r=(this-i)/6e4;break;case"hour":r=(this-i)/36e5;break;case"day":r=(this-i-a)/864e5;break;case"week":r=(this-i-a)/6048e5;break;default:r=this-i}return n?r:w(r)},un.endOf=function(t){return void 0===(t=F(t))||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))},un.format=function(t){t||(t=this.isUtc()?c.defaultFormatUtc:c.defaultFormat);var e=E(this,t);return this.localeData().postformat(e)},un.from=function(t,e){return this.isValid()&&(k(t)&&t.isValid()||Ce(t).isValid())?Ee({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},un.fromNow=function(t){return this.from(Ce(),t)},un.to=function(t,e){return this.isValid()&&(k(t)&&t.isValid()||Ce(t).isValid())?Ee({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},un.toNow=function(t){return this.to(Ce(),t)},un.get=function(t){return P(this[t=F(t)])?this[t]():this},un.invalidAt=function(){return v(this).overflow},un.isAfter=function(t,e){var n=k(t)?t:Ce(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=F(u(e)?"millisecond":e))?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(e).valueOf())},un.isBefore=function(t,e){var n=k(t)?t:Ce(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=F(u(e)?"millisecond":e))?this.valueOf()<n.valueOf():this.clone().endOf(e).valueOf()<n.valueOf())},un.isBetween=function(t,e,n,i){return("("===(i=i||"()")[0]?this.isAfter(t,n):!this.isBefore(t,n))&&(")"===i[1]?this.isBefore(e,n):!this.isAfter(e,n))},un.isSame=function(t,e){var n,i=k(t)?t:Ce(t);return!(!this.isValid()||!i.isValid())&&("millisecond"===(e=F(e||"millisecond"))?this.valueOf()===i.valueOf():(n=i.valueOf(),this.clone().startOf(e).valueOf()<=n&&n<=this.clone().endOf(e).valueOf()))},un.isSameOrAfter=function(t,e){return this.isSame(t,e)||this.isAfter(t,e)},un.isSameOrBefore=function(t,e){return this.isSame(t,e)||this.isBefore(t,e)},un.isValid=function(){return b(this)},un.lang=Ke,un.locale=$e,un.localeData=Qe,un.max=Te,un.min=Pe,un.parsingFlags=function(){return m({},v(this))},un.set=function(t,e){if("object"==typeof t)for(var n=function(t){var e=[];for(var n in t)e.push({unit:n,priority:L[n]});return e.sort(function(t,e){return t.priority-e.priority}),e}(t=R(t)),i=0;i<n.length;i++)this[n[i].unit](t[n[i].unit]);else if(P(this[t=F(t)]))return this[t](e);return this},un.startOf=function(t){switch(t=F(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this},un.subtract=Xe,un.toArray=function(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]},un.toObject=function(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}},un.toDate=function(){return new Date(this.valueOf())},un.toISOString=function(t){if(!this.isValid())return null;var e=!0!==t,n=e?this.clone().utc():this;return n.year()<0||9999<n.year()?E(n,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):P(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",E(n,"Z")):E(n,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},un.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a=e+'[")]';return this.format(n+i+"-MM-DD[T]HH:mm:ss.SSS"+a)},un.toJSON=function(){return this.isValid()?this.toISOString():null},un.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},un.unix=function(){return Math.floor(this.valueOf()/1e3)},un.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},un.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},un.year=Dt,un.isLeapYear=function(){return Mt(this.year())},un.weekYear=function(t){return en.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},un.isoWeekYear=function(t){return en.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},un.quarter=un.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},un.month=Lt,un.daysInMonth=function(){return Ot(this.year(),this.month())},un.week=un.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},un.isoWeek=un.isoWeeks=function(t){var e=Bt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},un.weeksInYear=function(){var t=this.localeData()._week;return Et(this.year(),t.dow,t.doy)},un.isoWeeksInYear=function(){return Et(this.year(),1,4)},un.date=nn,un.day=un.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e,n,i=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(e=t,n=this.localeData(),t="string"!=typeof e?e:isNaN(e)?"number"==typeof(e=n.weekdaysParse(e))?e:null:parseInt(e,10),this.add(t-i,"d")):i},un.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},un.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null==t)return this.day()||7;var e,n,i=(e=t,n=this.localeData(),"string"==typeof e?n.weekdaysParse(e)%7||7:isNaN(e)?null:e);return this.day(this.day()%7?i:i-7)},un.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},un.hour=un.hours=ee,un.minute=un.minutes=an,un.second=un.seconds=on,un.millisecond=un.milliseconds=ln,un.utcOffset=function(t,e,n){var i,a=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null==t)return this._isUTC?a:ze(this);if("string"==typeof t){if(null===(t=We(rt,t)))return this}else Math.abs(t)<16&&!n&&(t*=60);return!this._isUTC&&e&&(i=ze(this)),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),a!==t&&(!e||this._changeInProgress?qe(this,Ee(t-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,c.updateOffset(this,!0),this._changeInProgress=null)),this},un.utc=function(t){return this.utcOffset(0,t)},un.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(ze(this),"m")),this},un.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=We(at,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},un.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Ce(t).utcOffset():0,(this.utcOffset()-t)%60==0)},un.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},un.isLocal=function(){return!!this.isValid()&&!this._isUTC},un.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},un.isUtc=Ve,un.isUTC=Ve,un.zoneAbbr=function(){return this._isUTC?"UTC":""},un.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},un.dates=n("dates accessor is deprecated. Use date instead.",nn),un.months=n("months accessor is deprecated. Use month instead",Lt),un.years=n("years accessor is deprecated. Use year instead",Dt),un.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),un.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!u(this._isDSTShifted))return this._isDSTShifted;var t={};if(x(t,this),(t=Se(t))._a){var e=t._isUTC?p(t._a):Ce(t._a);this._isDSTShifted=this.isValid()&&0<o(t._a,e.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var hn=O.prototype;function cn(t,e,n,i){var a=ue(),r=p().set(i,e);return a[n](r,t)}function fn(t,e,n){if(d(t)&&(e=t,t=void 0),t=t||"",null!=e)return cn(t,e,n,"month");var i,a=[];for(i=0;i<12;i++)a[i]=cn(t,i,n,"month");return a}function gn(t,e,n,i){e=("boolean"==typeof t?d(e)&&(n=e,e=void 0):(e=t,t=!1,d(n=e)&&(n=e,e=void 0)),e||"");var a,r=ue(),o=t?r._week.dow:0;if(null!=n)return cn(e,(n+o)%7,i,"day");var s=[];for(a=0;a<7;a++)s[a]=cn(e,(a+o)%7,i,"day");return s}hn.calendar=function(t,e,n){var i=this._calendar[t]||this._calendar.sameElse;return P(i)?i.call(e,n):i},hn.longDateFormat=function(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},hn.invalidDate=function(){return this._invalidDate},hn.ordinal=function(t){return this._ordinal.replace("%d",t)},hn.preparse=dn,hn.postformat=dn,hn.relativeTime=function(t,e,n,i){var a=this._relativeTime[n];return P(a)?a(t,e,n,i):a.replace(/%d/i,t)},hn.pastFuture=function(t,e){var n=this._relativeTime[0<t?"future":"past"];return P(n)?n(e):n.replace(/%s/i,e)},hn.set=function(t){var e,n;for(n in t)P(e=t[n])?this[n]=e:this["_"+n]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},hn.months=function(t,e){return t?s(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||It).test(e)?"format":"standalone"][t.month()]:s(this._months)?this._months:this._months.standalone},hn.monthsShort=function(t,e){return t?s(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[It.test(e)?"format":"standalone"][t.month()]:s(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},hn.monthsParse=function(t,e,n){var i,a,r;if(this._monthsParseExact)return function(t,e,n){var i,a,r,o=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)r=p([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===e?-1!==(a=St.call(this._shortMonthsParse,o))?a:null:-1!==(a=St.call(this._longMonthsParse,o))?a:null:"MMM"===e?-1!==(a=St.call(this._shortMonthsParse,o))?a:-1!==(a=St.call(this._longMonthsParse,o))?a:null:-1!==(a=St.call(this._longMonthsParse,o))?a:-1!==(a=St.call(this._shortMonthsParse,o))?a:null}.call(this,t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(a=p([2e3,i]),n&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[i]||(r="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[i]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(n&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!n&&this._monthsParse[i].test(t))return i}},hn.monthsRegex=function(t){return this._monthsParseExact?(g(this,"_monthsRegex")||Nt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(g(this,"_monthsRegex")||(this._monthsRegex=Wt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},hn.monthsShortRegex=function(t){return this._monthsParseExact?(g(this,"_monthsRegex")||Nt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(g(this,"_monthsShortRegex")||(this._monthsShortRegex=Yt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},hn.week=function(t){return Bt(t,this._week.dow,this._week.doy).week},hn.firstDayOfYear=function(){return this._week.doy},hn.firstDayOfWeek=function(){return this._week.dow},hn.weekdays=function(t,e){return t?s(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:s(this._weekdays)?this._weekdays:this._weekdays.standalone},hn.weekdaysMin=function(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin},hn.weekdaysShort=function(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort},hn.weekdaysParse=function(t,e,n){var i,a,r;if(this._weekdaysParseExact)return function(t,e,n){var i,a,r,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)r=p([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===e?-1!==(a=St.call(this._weekdaysParse,o))?a:null:"ddd"===e?-1!==(a=St.call(this._shortWeekdaysParse,o))?a:null:-1!==(a=St.call(this._minWeekdaysParse,o))?a:null:"dddd"===e?-1!==(a=St.call(this._weekdaysParse,o))?a:-1!==(a=St.call(this._shortWeekdaysParse,o))?a:-1!==(a=St.call(this._minWeekdaysParse,o))?a:null:"ddd"===e?-1!==(a=St.call(this._shortWeekdaysParse,o))?a:-1!==(a=St.call(this._weekdaysParse,o))?a:-1!==(a=St.call(this._minWeekdaysParse,o))?a:null:-1!==(a=St.call(this._minWeekdaysParse,o))?a:-1!==(a=St.call(this._weekdaysParse,o))?a:-1!==(a=St.call(this._shortWeekdaysParse,o))?a:null}.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(a=p([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(r="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[i]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(n&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(n&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!n&&this._weekdaysParse[i].test(t))return i}},hn.weekdaysRegex=function(t){return this._weekdaysParseExact?(g(this,"_weekdaysRegex")||Jt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(g(this,"_weekdaysRegex")||(this._weekdaysRegex=qt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},hn.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(g(this,"_weekdaysRegex")||Jt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(g(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Zt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},hn.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(g(this,"_weekdaysRegex")||Jt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(g(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Xt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},hn.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},hn.meridiem=function(t,e,n){return 11<t?n?"pm":"PM":n?"am":"AM"},se("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===M(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),c.lang=n("moment.lang is deprecated. Use moment.locale instead.",se),c.langData=n("moment.langData is deprecated. Use moment.localeData instead.",ue);var mn=Math.abs;function pn(t,e,n,i){var a=Ee(e,n);return t._milliseconds+=i*a._milliseconds,t._days+=i*a._days,t._months+=i*a._months,t._bubble()}function vn(t){return t<0?Math.floor(t):Math.ceil(t)}function bn(t){return 4800*t/146097}function yn(t){return 146097*t/4800}function xn(t){return function(){return this.as(t)}}var _n=xn("ms"),kn=xn("s"),wn=xn("m"),Mn=xn("h"),Sn=xn("d"),Dn=xn("w"),Cn=xn("M"),Pn=xn("y");function Tn(t){return function(){return this.isValid()?this._data[t]:NaN}}var On=Tn("milliseconds"),In=Tn("seconds"),An=Tn("minutes"),Fn=Tn("hours"),Rn=Tn("days"),Ln=Tn("months"),Yn=Tn("years");var Wn=Math.round,Nn={ss:44,s:45,m:45,h:22,d:26,M:11};var zn=Math.abs;function Vn(t){return(0<t)-(t<0)||+t}function Hn(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n=zn(this._milliseconds)/1e3,i=zn(this._days),a=zn(this._months);e=w((t=w(n/60))/60),n%=60,t%=60;var r=w(a/12),o=a%=12,s=i,l=e,u=t,d=n?n.toFixed(3).replace(/\.?0+$/,""):"",h=this.asSeconds();if(!h)return"P0D";var c=h<0?"-":"",f=Vn(this._months)!==Vn(h)?"-":"",g=Vn(this._days)!==Vn(h)?"-":"",m=Vn(this._milliseconds)!==Vn(h)?"-":"";return c+"P"+(r?f+r+"Y":"")+(o?f+o+"M":"")+(s?g+s+"D":"")+(l||u||d?"T":"")+(l?m+l+"H":"")+(u?m+u+"M":"")+(d?m+d+"S":"")}var Bn=Ae.prototype;return Bn.isValid=function(){return this._isValid},Bn.abs=function(){var t=this._data;return this._milliseconds=mn(this._milliseconds),this._days=mn(this._days),this._months=mn(this._months),t.milliseconds=mn(t.milliseconds),t.seconds=mn(t.seconds),t.minutes=mn(t.minutes),t.hours=mn(t.hours),t.months=mn(t.months),t.years=mn(t.years),this},Bn.add=function(t,e){return pn(this,t,e,1)},Bn.subtract=function(t,e){return pn(this,t,e,-1)},Bn.as=function(t){if(!this.isValid())return NaN;var e,n,i=this._milliseconds;if("month"===(t=F(t))||"year"===t)return e=this._days+i/864e5,n=this._months+bn(e),"month"===t?n:n/12;switch(e=this._days+Math.round(yn(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}},Bn.asMilliseconds=_n,Bn.asSeconds=kn,Bn.asMinutes=wn,Bn.asHours=Mn,Bn.asDays=Sn,Bn.asWeeks=Dn,Bn.asMonths=Cn,Bn.asYears=Pn,Bn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*M(this._months/12):NaN},Bn._bubble=function(){var t,e,n,i,a,r=this._milliseconds,o=this._days,s=this._months,l=this._data;return 0<=r&&0<=o&&0<=s||r<=0&&o<=0&&s<=0||(r+=864e5*vn(yn(s)+o),s=o=0),l.milliseconds=r%1e3,t=w(r/1e3),l.seconds=t%60,e=w(t/60),l.minutes=e%60,n=w(e/60),l.hours=n%24,s+=a=w(bn(o+=w(n/24))),o-=vn(yn(a)),i=w(s/12),s%=12,l.days=o,l.months=s,l.years=i,this},Bn.clone=function(){return Ee(this)},Bn.get=function(t){return t=F(t),this.isValid()?this[t+"s"]():NaN},Bn.milliseconds=On,Bn.seconds=In,Bn.minutes=An,Bn.hours=Fn,Bn.days=Rn,Bn.weeks=function(){return w(this.days()/7)},Bn.months=Ln,Bn.years=Yn,Bn.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e,n,i,a,r,o,s,l,u,d,h,c=this.localeData(),f=(n=!t,i=c,a=Ee(e=this).abs(),r=Wn(a.as("s")),o=Wn(a.as("m")),s=Wn(a.as("h")),l=Wn(a.as("d")),u=Wn(a.as("M")),d=Wn(a.as("y")),(h=r<=Nn.ss&&["s",r]||r<Nn.s&&["ss",r]||o<=1&&["m"]||o<Nn.m&&["mm",o]||s<=1&&["h"]||s<Nn.h&&["hh",s]||l<=1&&["d"]||l<Nn.d&&["dd",l]||u<=1&&["M"]||u<Nn.M&&["MM",u]||d<=1&&["y"]||["yy",d])[2]=n,h[3]=0<+e,h[4]=i,function(t,e,n,i,a){return a.relativeTime(e||1,!!n,t,i)}.apply(null,h));return t&&(f=c.pastFuture(+this,f)),c.postformat(f)},Bn.toISOString=Hn,Bn.toString=Hn,Bn.toJSON=Hn,Bn.locale=$e,Bn.localeData=Qe,Bn.toIsoString=n("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Hn),Bn.lang=Ke,B("X",0,0,"unix"),B("x",0,0,"valueOf"),lt("x",it),lt("X",/[+-]?\d+(\.\d{1,3})?/),ct("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),ct("x",function(t,e,n){n._d=new Date(M(t))}),c.version="2.22.2",t=Ce,c.fn=un,c.min=function(){return Oe("isBefore",[].slice.call(arguments,0))},c.max=function(){return Oe("isAfter",[].slice.call(arguments,0))},c.now=function(){return Date.now?Date.now():+new Date},c.utc=p,c.unix=function(t){return Ce(1e3*t)},c.months=function(t,e){return fn(t,e,"months")},c.isDate=h,c.locale=se,c.invalid=y,c.duration=Ee,c.isMoment=k,c.weekdays=function(t,e,n){return gn(t,e,n,"weekdays")},c.parseZone=function(){return Ce.apply(null,arguments).parseZone()},c.localeData=ue,c.isDuration=Fe,c.monthsShort=function(t,e){return fn(t,e,"monthsShort")},c.weekdaysMin=function(t,e,n){return gn(t,e,n,"weekdaysMin")},c.defineLocale=le,c.updateLocale=function(t,e){if(null!=e){var n,i,a=ne;null!=(i=oe(t))&&(a=i._config),(n=new O(e=T(a,e))).parentLocale=ie[t],ie[t]=n,se(t)}else null!=ie[t]&&(null!=ie[t].parentLocale?ie[t]=ie[t].parentLocale:null!=ie[t]&&delete ie[t]);return ie[t]},c.locales=function(){return i(ie)},c.weekdaysShort=function(t,e,n){return gn(t,e,n,"weekdaysShort")},c.normalizeUnits=F,c.relativeTimeRounding=function(t){return void 0===t?Wn:"function"==typeof t&&(Wn=t,!0)},c.relativeTimeThreshold=function(t,e){return void 0!==Nn[t]&&(void 0===e?Nn[t]:(Nn[t]=e,"s"===t&&(Nn.ss=e-1),!0))},c.calendarFormat=function(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},c.prototype=un,c.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},c},"object"==typeof t&&void 0!==jn?jn.exports=n():e.moment=n()},{}],7:[function(t,e,n){var i=t(30)();i.helpers=t(46),t(28)(i),i.Animation=t(22),i.animationService=t(23),i.defaults=t(26),i.Element=t(27),i.elements=t(41),i.Interaction=t(29),i.layouts=t(31),i.platform=t(49),i.plugins=t(32),i.Scale=t(33),i.scaleService=t(34),i.Ticks=t(35),i.Tooltip=t(36),t(24)(i),t(25)(i),t(56)(i),t(54)(i),t(55)(i),t(57)(i),t(58)(i),t(59)(i),t(15)(i),t(16)(i),t(17)(i),t(18)(i),t(19)(i),t(20)(i),t(21)(i),t(8)(i),t(9)(i),t(10)(i),t(11)(i),t(12)(i),t(13)(i),t(14)(i);var a=t(50);for(var r in a)a.hasOwnProperty(r)&&i.plugins.register(a[r]);i.platform.initialize(),e.exports=i,"undefined"!=typeof window&&(window.Chart=i),i.Legend=a.legend._element,i.Title=a.title._element,i.pluginService=i.plugins,i.PluginBase=i.Element.extend({}),i.canvasHelpers=i.helpers.canvas,i.layoutService=i.layouts},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,34:34,35:35,36:36,41:41,46:46,49:49,50:50,54:54,55:55,56:56,57:57,58:58,59:59,8:8,9:9}],8:[function(t,e,n){"use strict";e.exports=function(n){n.Bar=function(t,e){return e.type="bar",new n(t,e)}}},{}],9:[function(t,e,n){"use strict";e.exports=function(n){n.Bubble=function(t,e){return e.type="bubble",new n(t,e)}}},{}],10:[function(t,e,n){"use strict";e.exports=function(n){n.Doughnut=function(t,e){return e.type="doughnut",new n(t,e)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(n){n.Line=function(t,e){return e.type="line",new n(t,e)}}},{}],12:[function(t,e,n){"use strict";e.exports=function(n){n.PolarArea=function(t,e){return e.type="polarArea",new n(t,e)}}},{}],13:[function(t,e,n){"use strict";e.exports=function(n){n.Radar=function(t,e){return e.type="radar",new n(t,e)}}},{}],14:[function(t,e,n){"use strict";e.exports=function(n){n.Scatter=function(t,e){return e.type="scatter",new n(t,e)}}},{}],15:[function(t,e,n){"use strict";var i=t(26),a=t(41),S=t(46);i._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),i._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var n="";return 0<t.length&&(t[0].yLabel?n=t[0].yLabel:0<e.labels.length&&t[0].index<e.labels.length&&(n=e.labels[t[0].index])),n},label:function(t,e){return(e.datasets[t.datasetIndex].label||"")+": "+t.xLabel}},mode:"index",axis:"y"}}),e.exports=function(e){e.controllers.bar=e.DatasetController.extend({dataElementType:a.Rectangle,initialize:function(){var t;e.DatasetController.prototype.initialize.apply(this,arguments),(t=this.getMeta()).stack=this.getDataset().stack,t.bar=!0},update:function(t){var e,n,i=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,n=i.length;e<n;++e)this.updateElement(i[e],e,t)},updateElement:function(t,e,n){var i=this,a=i.chart,r=i.getMeta(),o=i.getDataset(),s=t.custom||{},l=a.options.elements.rectangle;t._xScale=i.getScaleForId(r.xAxisID),t._yScale=i.getScaleForId(r.yAxisID),t._datasetIndex=i.index,t._index=e,t._model={datasetLabel:o.label,label:a.data.labels[e],borderSkipped:s.borderSkipped?s.borderSkipped:l.borderSkipped,backgroundColor:s.backgroundColor?s.backgroundColor:S.valueAtIndexOrDefault(o.backgroundColor,e,l.backgroundColor),borderColor:s.borderColor?s.borderColor:S.valueAtIndexOrDefault(o.borderColor,e,l.borderColor),borderWidth:s.borderWidth?s.borderWidth:S.valueAtIndexOrDefault(o.borderWidth,e,l.borderWidth)},i.updateElementGeometry(t,e,n),t.pivot()},updateElementGeometry:function(t,e,n){var i=this,a=t._model,r=i.getValueScale(),o=r.getBasePixel(),s=r.isHorizontal(),l=i._ruler||i.getRuler(),u=i.calculateBarValuePixels(i.index,e),d=i.calculateBarIndexPixels(i.index,e,l);a.horizontal=s,a.base=n?o:u.base,a.x=s?n?o:u.head:d.center,a.y=s?d.center:n?o:u.head,a.height=s?d.size:void 0,a.width=s?void 0:d.size},getValueScaleId:function(){return this.getMeta().yAxisID},getIndexScaleId:function(){return this.getMeta().xAxisID},getValueScale:function(){return this.getScaleForId(this.getValueScaleId())},getIndexScale:function(){return this.getScaleForId(this.getIndexScaleId())},_getStacks:function(t){var e,n,i=this.chart,a=this.getIndexScale().options.stacked,r=void 0===t?i.data.datasets.length:t+1,o=[];for(e=0;e<r;++e)(n=i.getDatasetMeta(e)).bar&&i.isDatasetVisible(e)&&(!1===a||!0===a&&-1===o.indexOf(n.stack)||void 0===a&&(void 0===n.stack||-1===o.indexOf(n.stack)))&&o.push(n.stack);return o},getStackCount:function(){return this._getStacks().length},getStackIndex:function(t,e){var n=this._getStacks(t),i=void 0!==e?n.indexOf(e):-1;return-1===i?n.length-1:i},getRuler:function(){var t,e,n=this.getIndexScale(),i=this.getStackCount(),a=this.index,r=n.isHorizontal(),o=r?n.left:n.top,s=o+(r?n.width:n.height),l=[];for(t=0,e=this.getMeta().data.length;t<e;++t)l.push(n.getPixelForValue(null,t,a));return{min:S.isNullOrUndef(n.options.barThickness)?function(t,e){var n,i,a,r,o=t.isHorizontal()?t.width:t.height,s=t.getTicks();for(a=1,r=e.length;a<r;++a)o=Math.min(o,e[a]-e[a-1]);for(a=0,r=s.length;a<r;++a)i=t.getPixelForTick(a),o=0<a?Math.min(o,i-n):o,n=i;return o}(n,l):-1,pixels:l,start:o,end:s,stackCount:i,scale:n}},calculateBarValuePixels:function(t,e){var n,i,a,r,o,s,l=this.chart,u=this.getMeta(),d=this.getValueScale(),h=l.data.datasets,c=d.getRightValue(h[t].data[e]),f=d.options.stacked,g=u.stack,m=0;if(f||void 0===f&&void 0!==g)for(n=0;n<t;++n)(i=l.getDatasetMeta(n)).bar&&i.stack===g&&i.controller.getValueScaleId()===d.id&&l.isDatasetVisible(n)&&(a=d.getRightValue(h[n].data[e]),(c<0&&a<0||0<=c&&0<a)&&(m+=a));return r=d.getPixelForValue(m),{size:s=((o=d.getPixelForValue(m+c))-r)/2,base:r,head:o,center:o+s/2}},calculateBarIndexPixels:function(t,e,n){var i,a,r,o,s,l,u,d,h,c,f,g,m,p,v,b,y,x=n.scale.options,_="flex"===x.barThickness?(h=e,f=x,m=(c=n).pixels,p=m[h],v=0<h?m[h-1]:null,b=h<m.length-1?m[h+1]:null,y=f.categoryPercentage,null===v&&(v=p-(null===b?c.end-p:b-p)),null===b&&(b=p+p-v),g=p-(p-v)/2*y,{chunk:(b-v)/2*y/c.stackCount,ratio:f.barPercentage,start:g}):(i=e,a=n,l=(r=x).barThickness,u=a.stackCount,d=a.pixels[i],s=S.isNullOrUndef(l)?(o=a.min*r.categoryPercentage,r.barPercentage):(o=l*u,1),{chunk:o/u,ratio:s,start:d-o/2}),k=this.getStackIndex(t,this.getMeta().stack),w=_.start+_.chunk*k+_.chunk/2,M=Math.min(S.valueOrDefault(x.maxBarThickness,1/0),_.chunk*_.ratio);return{base:w-M/2,head:w+M/2,center:w,size:M}},draw:function(){var t=this.chart,e=this.getValueScale(),n=this.getMeta().data,i=this.getDataset(),a=n.length,r=0;for(S.canvas.clipArea(t.ctx,t.chartArea);r<a;++r)isNaN(e.getRightValue(i.data[r]))||n[r].draw();S.canvas.unclipArea(t.ctx)}}),e.controllers.horizontalBar=e.controllers.bar.extend({getValueScaleId:function(){return this.getMeta().xAxisID},getIndexScaleId:function(){return this.getMeta().yAxisID}})}},{26:26,41:41,46:46}],16:[function(t,e,n){"use strict";var i=t(26),a=t(41),g=t(46);i._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var n=e.datasets[t.datasetIndex].label||"",i=e.datasets[t.datasetIndex].data[t.index];return n+": ("+t.xLabel+", "+t.yLabel+", "+i.r+")"}}}}),e.exports=function(t){t.controllers.bubble=t.DatasetController.extend({dataElementType:a.Point,update:function(n){var i=this,t=i.getMeta().data;g.each(t,function(t,e){i.updateElement(t,e,n)})},updateElement:function(t,e,n){var i=this,a=i.getMeta(),r=t.custom||{},o=i.getScaleForId(a.xAxisID),s=i.getScaleForId(a.yAxisID),l=i._resolveElementOptions(t,e),u=i.getDataset().data[e],d=i.index,h=n?o.getPixelForDecimal(.5):o.getPixelForValue("object"==typeof u?u:NaN,e,d),c=n?s.getBasePixel():s.getPixelForValue(u,e,d);t._xScale=o,t._yScale=s,t._options=l,t._datasetIndex=d,t._index=e,t._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,rotation:l.rotation,radius:n?0:l.radius,skip:r.skip||isNaN(h)||isNaN(c),x:h,y:c},t.pivot()},setHoverStyle:function(t){var e=t._model,n=t._options;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=g.valueOrDefault(n.hoverBackgroundColor,g.getHoverColor(n.backgroundColor)),e.borderColor=g.valueOrDefault(n.hoverBorderColor,g.getHoverColor(n.borderColor)),e.borderWidth=g.valueOrDefault(n.hoverBorderWidth,n.borderWidth),e.radius=n.radius+n.hoverRadius},_resolveElementOptions:function(t,e){var n,i,a,r=this.chart,o=r.data.datasets[this.index],s=t.custom||{},l=r.options.elements.point,u=g.options.resolve,d=o.data[e],h={},c={chart:r,dataIndex:e,dataset:o,datasetIndex:this.index},f=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"];for(n=0,i=f.length;n<i;++n)h[a=f[n]]=u([s[a],o[a],l[a]],c,e);return h.radius=u([s.radius,d?d.r:void 0,o.radius,l.radius],c,e),h}})}},{26:26,41:41,46:46}],17:[function(t,e,n){"use strict";var i=t(26),a=t(41),O=t(46);i._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var r=0;r<i[0].data.length;++r)e.push('<li><span style="background-color:'+i[0].backgroundColor[r]+'"></span>'),a[r]&&e.push(a[r]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(l){var u=l.data;return u.labels.length&&u.datasets.length?u.labels.map(function(t,e){var n=l.getDatasetMeta(0),i=u.datasets[0],a=n.data[e],r=a&&a.custom||{},o=O.valueAtIndexOrDefault,s=l.options.elements.arc;return{text:t,fillStyle:r.backgroundColor?r.backgroundColor:o(i.backgroundColor,e,s.backgroundColor),strokeStyle:r.borderColor?r.borderColor:o(i.borderColor,e,s.borderColor),lineWidth:r.borderWidth?r.borderWidth:o(i.borderWidth,e,s.borderWidth),hidden:isNaN(i.data[e])||n.data[e].hidden,index:e}}):[]}},onClick:function(t,e){var n,i,a,r=e.index,o=this.chart;for(n=0,i=(o.data.datasets||[]).length;n<i;++n)(a=o.getDatasetMeta(n)).data[r]&&(a.data[r].hidden=!a.data[r].hidden);o.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var n=e.labels[t.index],i=": "+e.datasets[t.datasetIndex].data[t.index];return O.isArray(n)?(n=n.slice())[0]+=i:n+=i,n}}}}),i._set("pie",O.clone(i.doughnut)),i._set("pie",{cutoutPercentage:0}),e.exports=function(t){t.controllers.doughnut=t.controllers.pie=t.DatasetController.extend({dataElementType:a.Arc,linkScales:O.noop,getRingIndex:function(t){for(var e=0,n=0;n<t;++n)this.chart.isDatasetVisible(n)&&++e;return e},update:function(n){var i=this,t=i.chart,e=t.chartArea,a=t.options,r=a.elements.arc,o=e.right-e.left-r.borderWidth,s=e.bottom-e.top-r.borderWidth,l=Math.min(o,s),u={x:0,y:0},d=i.getMeta(),h=a.cutoutPercentage,c=a.circumference;if(c<2*Math.PI){var f=a.rotation%(2*Math.PI),g=(f+=2*Math.PI*(f>=Math.PI?-1:f<-Math.PI?1:0))+c,m=Math.cos(f),p=Math.sin(f),v=Math.cos(g),b=Math.sin(g),y=f<=0&&0<=g||f<=2*Math.PI&&2*Math.PI<=g,x=f<=.5*Math.PI&&.5*Math.PI<=g||f<=2.5*Math.PI&&2.5*Math.PI<=g,_=f<=-Math.PI&&-Math.PI<=g||f<=Math.PI&&Math.PI<=g,k=f<=.5*-Math.PI&&.5*-Math.PI<=g||f<=1.5*Math.PI&&1.5*Math.PI<=g,w=h/100,M=_?-1:Math.min(m*(m<0?1:w),v*(v<0?1:w)),S=k?-1:Math.min(p*(p<0?1:w),b*(b<0?1:w)),D=y?1:Math.max(m*(0<m?1:w),v*(0<v?1:w)),C=x?1:Math.max(p*(0<p?1:w),b*(0<b?1:w)),P=.5*(D-M),T=.5*(C-S);l=Math.min(o/P,s/T),u={x:-.5*(D+M),y:-.5*(C+S)}}t.borderWidth=i.getMaxBorderWidth(d.data),t.outerRadius=Math.max((l-t.borderWidth)/2,0),t.innerRadius=Math.max(h?t.outerRadius/100*h:0,0),t.radiusLength=(t.outerRadius-t.innerRadius)/t.getVisibleDatasetCount(),t.offsetX=u.x*t.outerRadius,t.offsetY=u.y*t.outerRadius,d.total=i.calculateTotal(),i.outerRadius=t.outerRadius-t.radiusLength*i.getRingIndex(i.index),i.innerRadius=Math.max(i.outerRadius-t.radiusLength,0),O.each(d.data,function(t,e){i.updateElement(t,e,n)})},updateElement:function(t,e,n){var i=this,a=i.chart,r=a.chartArea,o=a.options,s=o.animation,l=(r.left+r.right)/2,u=(r.top+r.bottom)/2,d=o.rotation,h=o.rotation,c=i.getDataset(),f=n&&s.animateRotate?0:t.hidden?0:i.calculateCircumference(c.data[e])*(o.circumference/(2*Math.PI)),g=n&&s.animateScale?0:i.innerRadius,m=n&&s.animateScale?0:i.outerRadius,p=O.valueAtIndexOrDefault;O.extend(t,{_datasetIndex:i.index,_index:e,_model:{x:l+a.offsetX,y:u+a.offsetY,startAngle:d,endAngle:h,circumference:f,outerRadius:m,innerRadius:g,label:p(c.label,e,a.data.labels[e])}});var v=t._model,b=t.custom||{},y=O.valueAtIndexOrDefault,x=this.chart.options.elements.arc;v.backgroundColor=b.backgroundColor?b.backgroundColor:y(c.backgroundColor,e,x.backgroundColor),v.borderColor=b.borderColor?b.borderColor:y(c.borderColor,e,x.borderColor),v.borderWidth=b.borderWidth?b.borderWidth:y(c.borderWidth,e,x.borderWidth),n&&s.animateRotate||(v.startAngle=0===e?o.rotation:i.getMeta().data[e-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),t.pivot()},calculateTotal:function(){var n,i=this.getDataset(),t=this.getMeta(),a=0;return O.each(t.data,function(t,e){n=i.data[e],isNaN(n)||t.hidden||(a+=Math.abs(n))}),a},calculateCircumference:function(t){var e=this.getMeta().total;return 0<e&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){for(var e,n,i=0,a=this.index,r=t.length,o=0;o<r;o++)i=(i=i<(e=t[o]._model?t[o]._model.borderWidth:0)?e:i)<(n=t[o]._chart?t[o]._chart.config.data.datasets[a].hoverBorderWidth:0)?n:i;return i}})}},{26:26,41:41,46:46}],18:[function(t,e,n){"use strict";var i=t(26),a=t(41),g=t(46);i._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),e.exports=function(t){function f(t,e){return g.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var e,n,i,a=this,r=a.getMeta(),o=r.dataset,s=r.data||[],l=a.chart.options,u=l.elements.line,d=a.getScaleForId(r.yAxisID),h=a.getDataset(),c=f(h,l);for(c&&(i=o.custom||{},void 0!==h.tension&&void 0===h.lineTension&&(h.lineTension=h.tension),o._scale=d,o._datasetIndex=a.index,o._children=s,o._model={spanGaps:h.spanGaps?h.spanGaps:l.spanGaps,tension:i.tension?i.tension:g.valueOrDefault(h.lineTension,u.tension),backgroundColor:i.backgroundColor?i.backgroundColor:h.backgroundColor||u.backgroundColor,borderWidth:i.borderWidth?i.borderWidth:h.borderWidth||u.borderWidth,borderColor:i.borderColor?i.borderColor:h.borderColor||u.borderColor,borderCapStyle:i.borderCapStyle?i.borderCapStyle:h.borderCapStyle||u.borderCapStyle,borderDash:i.borderDash?i.borderDash:h.borderDash||u.borderDash,borderDashOffset:i.borderDashOffset?i.borderDashOffset:h.borderDashOffset||u.borderDashOffset,borderJoinStyle:i.borderJoinStyle?i.borderJoinStyle:h.borderJoinStyle||u.borderJoinStyle,fill:i.fill?i.fill:void 0!==h.fill?h.fill:u.fill,steppedLine:i.steppedLine?i.steppedLine:g.valueOrDefault(h.steppedLine,u.stepped),cubicInterpolationMode:i.cubicInterpolationMode?i.cubicInterpolationMode:g.valueOrDefault(h.cubicInterpolationMode,u.cubicInterpolationMode)},o.pivot()),e=0,n=s.length;e<n;++e)a.updateElement(s[e],e,t);for(c&&0!==o._model.tension&&a.updateBezierControlPoints(),e=0,n=s.length;e<n;++e)s[e].pivot()},getPointBackgroundColor:function(t,e){var n=this.chart.options.elements.point.backgroundColor,i=this.getDataset(),a=t.custom||{};return a.backgroundColor?n=a.backgroundColor:i.pointBackgroundColor?n=g.valueAtIndexOrDefault(i.pointBackgroundColor,e,n):i.backgroundColor&&(n=i.backgroundColor),n},getPointBorderColor:function(t,e){var n=this.chart.options.elements.point.borderColor,i=this.getDataset(),a=t.custom||{};return a.borderColor?n=a.borderColor:i.pointBorderColor?n=g.valueAtIndexOrDefault(i.pointBorderColor,e,n):i.borderColor&&(n=i.borderColor),n},getPointBorderWidth:function(t,e){var n=this.chart.options.elements.point.borderWidth,i=this.getDataset(),a=t.custom||{};return isNaN(a.borderWidth)?!isNaN(i.pointBorderWidth)||g.isArray(i.pointBorderWidth)?n=g.valueAtIndexOrDefault(i.pointBorderWidth,e,n):isNaN(i.borderWidth)||(n=i.borderWidth):n=a.borderWidth,n},getPointRotation:function(t,e){var n=this.chart.options.elements.point.rotation,i=this.getDataset(),a=t.custom||{};return isNaN(a.rotation)?isNaN(i.pointRotation)&&!g.isArray(i.pointRotation)||(n=g.valueAtIndexOrDefault(i.pointRotation,e,n)):n=a.rotation,n},updateElement:function(t,e,n){var i,a,r=this,o=r.getMeta(),s=t.custom||{},l=r.getDataset(),u=r.index,d=l.data[e],h=r.getScaleForId(o.yAxisID),c=r.getScaleForId(o.xAxisID),f=r.chart.options.elements.point;void 0!==l.radius&&void 0===l.pointRadius&&(l.pointRadius=l.radius),void 0!==l.hitRadius&&void 0===l.pointHitRadius&&(l.pointHitRadius=l.hitRadius),i=c.getPixelForValue("object"==typeof d?d:NaN,e,u),a=n?h.getBasePixel():r.calculatePointY(d,e,u),t._xScale=c,t._yScale=h,t._datasetIndex=u,t._index=e,t._model={x:i,y:a,skip:s.skip||isNaN(i)||isNaN(a),radius:s.radius||g.valueAtIndexOrDefault(l.pointRadius,e,f.radius),pointStyle:s.pointStyle||g.valueAtIndexOrDefault(l.pointStyle,e,f.pointStyle),rotation:r.getPointRotation(t,e),backgroundColor:r.getPointBackgroundColor(t,e),borderColor:r.getPointBorderColor(t,e),borderWidth:r.getPointBorderWidth(t,e),tension:o.dataset._model?o.dataset._model.tension:0,steppedLine:!!o.dataset._model&&o.dataset._model.steppedLine,hitRadius:s.hitRadius||g.valueAtIndexOrDefault(l.pointHitRadius,e,f.hitRadius)}},calculatePointY:function(t,e,n){var i,a,r,o=this.chart,s=this.getMeta(),l=this.getScaleForId(s.yAxisID),u=0,d=0;if(l.options.stacked){for(i=0;i<n;i++)if(a=o.data.datasets[i],"line"===(r=o.getDatasetMeta(i)).type&&r.yAxisID===l.id&&o.isDatasetVisible(i)){var h=Number(l.getRightValue(a.data[e]));h<0?d+=h||0:u+=h||0}var c=Number(l.getRightValue(t));return c<0?l.getPixelForValue(d+c):l.getPixelForValue(u+c)}return l.getPixelForValue(t)},updateBezierControlPoints:function(){var t,e,n,i,a=this.getMeta(),r=this.chart.chartArea,o=a.data||[];function s(t,e,n){return Math.max(Math.min(t,n),e)}if(a.dataset._model.spanGaps&&(o=o.filter(function(t){return!t._model.skip})),"monotone"===a.dataset._model.cubicInterpolationMode)g.splineCurveMonotone(o);else for(t=0,e=o.length;t<e;++t)n=o[t]._model,i=g.splineCurve(g.previousItem(o,t)._model,n,g.nextItem(o,t)._model,a.dataset._model.tension),n.controlPointPreviousX=i.previous.x,n.controlPointPreviousY=i.previous.y,n.controlPointNextX=i.next.x,n.controlPointNextY=i.next.y;if(this.chart.options.elements.line.capBezierPoints)for(t=0,e=o.length;t<e;++t)(n=o[t]._model).controlPointPreviousX=s(n.controlPointPreviousX,r.left,r.right),n.controlPointPreviousY=s(n.controlPointPreviousY,r.top,r.bottom),n.controlPointNextX=s(n.controlPointNextX,r.left,r.right),n.controlPointNextY=s(n.controlPointNextY,r.top,r.bottom)},draw:function(){var t,e=this.chart,n=this.getMeta(),i=n.data||[],a=e.chartArea,r=i.length,o=0;for(f(this.getDataset(),e.options)&&(t=(n.dataset._model.borderWidth||0)/2,g.canvas.clipArea(e.ctx,{left:a.left,right:a.right,top:a.top-t,bottom:a.bottom+t}),n.dataset.draw(),g.canvas.unclipArea(e.ctx));o<r;++o)i[o].draw(a)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,i=t.custom||{},a=t._model;t.$previousStyle={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderWidth:a.borderWidth,radius:a.radius},a.backgroundColor=i.hoverBackgroundColor||g.valueAtIndexOrDefault(e.pointHoverBackgroundColor,n,g.getHoverColor(a.backgroundColor)),a.borderColor=i.hoverBorderColor||g.valueAtIndexOrDefault(e.pointHoverBorderColor,n,g.getHoverColor(a.borderColor)),a.borderWidth=i.hoverBorderWidth||g.valueAtIndexOrDefault(e.pointHoverBorderWidth,n,a.borderWidth),a.radius=i.hoverRadius||g.valueAtIndexOrDefault(e.pointHoverRadius,n,this.chart.options.elements.point.hoverRadius)}})}},{26:26,41:41,46:46}],19:[function(t,e,n){"use strict";var i=t(26),a=t(41),_=t(46);i._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var r=0;r<i[0].data.length;++r)e.push('<li><span style="background-color:'+i[0].backgroundColor[r]+'"></span>'),a[r]&&e.push(a[r]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(s){var l=s.data;return l.labels.length&&l.datasets.length?l.labels.map(function(t,e){var n=s.getDatasetMeta(0),i=l.datasets[0],a=n.data[e].custom||{},r=_.valueAtIndexOrDefault,o=s.options.elements.arc;return{text:t,fillStyle:a.backgroundColor?a.backgroundColor:r(i.backgroundColor,e,o.backgroundColor),strokeStyle:a.borderColor?a.borderColor:r(i.borderColor,e,o.borderColor),lineWidth:a.borderWidth?a.borderWidth:r(i.borderWidth,e,o.borderWidth),hidden:isNaN(i.data[e])||n.data[e].hidden,index:e}}):[]}},onClick:function(t,e){var n,i,a,r=e.index,o=this.chart;for(n=0,i=(o.data.datasets||[]).length;n<i;++n)(a=o.getDatasetMeta(n)).data[r].hidden=!a.data[r].hidden;o.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}}),e.exports=function(t){t.controllers.polarArea=t.DatasetController.extend({dataElementType:a.Arc,linkScales:_.noop,update:function(n){var t,e,i,a=this,r=a.getDataset(),o=a.getMeta(),s=a.chart.options.startAngle||0,l=a._starts=[],u=a._angles=[];for(a._updateRadius(),o.count=a.countVisibleElements(),t=0,e=r.data.length;t<e;t++)l[t]=s,i=a._computeAngle(t),s+=u[t]=i;_.each(o.data,function(t,e){a.updateElement(t,e,n)})},_updateRadius:function(){var t=this,e=t.chart,n=e.chartArea,i=e.options,a=i.elements.arc,r=Math.min(n.right-n.left,n.bottom-n.top);e.outerRadius=Math.max((r-a.borderWidth/2)/2,0),e.innerRadius=Math.max(i.cutoutPercentage?e.outerRadius/100*i.cutoutPercentage:1,0),e.radiusLength=(e.outerRadius-e.innerRadius)/e.getVisibleDatasetCount(),t.outerRadius=e.outerRadius-e.radiusLength*t.index,t.innerRadius=t.outerRadius-e.radiusLength},updateElement:function(t,e,n){var i=this,a=i.chart,r=i.getDataset(),o=a.options,s=o.animation,l=a.scale,u=a.data.labels,d=l.xCenter,h=l.yCenter,c=o.startAngle,f=t.hidden?0:l.getDistanceFromCenterForValue(r.data[e]),g=i._starts[e],m=g+(t.hidden?0:i._angles[e]),p=s.animateScale?0:l.getDistanceFromCenterForValue(r.data[e]);_.extend(t,{_datasetIndex:i.index,_index:e,_scale:l,_model:{x:d,y:h,innerRadius:0,outerRadius:n?p:f,startAngle:n&&s.animateRotate?c:g,endAngle:n&&s.animateRotate?c:m,label:_.valueAtIndexOrDefault(u,e,u[e])}});var v=this.chart.options.elements.arc,b=t.custom||{},y=_.valueAtIndexOrDefault,x=t._model;x.backgroundColor=b.backgroundColor?b.backgroundColor:y(r.backgroundColor,e,v.backgroundColor),x.borderColor=b.borderColor?b.borderColor:y(r.borderColor,e,v.borderColor),x.borderWidth=b.borderWidth?b.borderWidth:y(r.borderWidth,e,v.borderWidth),t.pivot()},countVisibleElements:function(){var n=this.getDataset(),t=this.getMeta(),i=0;return _.each(t.data,function(t,e){isNaN(n.data[e])||t.hidden||i++}),i},_computeAngle:function(t){var e=this,n=this.getMeta().count,i=e.getDataset(),a=e.getMeta();if(isNaN(i.data[t])||a.data[t].hidden)return 0;var r={chart:e.chart,dataIndex:t,dataset:i,datasetIndex:e.index};return _.options.resolve([e.chart.options.elements.arc.angle,2*Math.PI/n],r,t)}})}},{26:26,41:41,46:46}],20:[function(t,e,n){"use strict";var i=t(26),a=t(41),u=t(46);i._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:u.noop,update:function(n){var i=this,t=i.getMeta(),e=t.dataset,a=t.data,r=e.custom||{},o=i.getDataset(),s=i.chart.options.elements.line,l=i.chart.scale;void 0!==o.tension&&void 0===o.lineTension&&(o.lineTension=o.tension),u.extend(t.dataset,{_datasetIndex:i.index,_scale:l,_children:a,_loop:!0,_model:{tension:r.tension?r.tension:u.valueOrDefault(o.lineTension,s.tension),backgroundColor:r.backgroundColor?r.backgroundColor:o.backgroundColor||s.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:o.borderWidth||s.borderWidth,borderColor:r.borderColor?r.borderColor:o.borderColor||s.borderColor,fill:r.fill?r.fill:void 0!==o.fill?o.fill:s.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:o.borderCapStyle||s.borderCapStyle,borderDash:r.borderDash?r.borderDash:o.borderDash||s.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:o.borderDashOffset||s.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:o.borderJoinStyle||s.borderJoinStyle}}),t.dataset.pivot(),u.each(a,function(t,e){i.updateElement(t,e,n)},i),i.updateBezierControlPoints()},updateElement:function(t,e,n){var i=this,a=t.custom||{},r=i.getDataset(),o=i.chart.scale,s=i.chart.options.elements.point,l=o.getPointPositionForValue(e,r.data[e]);void 0!==r.radius&&void 0===r.pointRadius&&(r.pointRadius=r.radius),void 0!==r.hitRadius&&void 0===r.pointHitRadius&&(r.pointHitRadius=r.hitRadius),u.extend(t,{_datasetIndex:i.index,_index:e,_scale:o,_model:{x:n?o.xCenter:l.x,y:n?o.yCenter:l.y,tension:a.tension?a.tension:u.valueOrDefault(r.lineTension,i.chart.options.elements.line.tension),radius:a.radius?a.radius:u.valueAtIndexOrDefault(r.pointRadius,e,s.radius),backgroundColor:a.backgroundColor?a.backgroundColor:u.valueAtIndexOrDefault(r.pointBackgroundColor,e,s.backgroundColor),borderColor:a.borderColor?a.borderColor:u.valueAtIndexOrDefault(r.pointBorderColor,e,s.borderColor),borderWidth:a.borderWidth?a.borderWidth:u.valueAtIndexOrDefault(r.pointBorderWidth,e,s.borderWidth),pointStyle:a.pointStyle?a.pointStyle:u.valueAtIndexOrDefault(r.pointStyle,e,s.pointStyle),rotation:a.rotation?a.rotation:u.valueAtIndexOrDefault(r.pointRotation,e,s.rotation),hitRadius:a.hitRadius?a.hitRadius:u.valueAtIndexOrDefault(r.pointHitRadius,e,s.hitRadius)}}),t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var a=this.chart.chartArea,r=this.getMeta();u.each(r.data,function(t,e){var n=t._model,i=u.splineCurve(u.previousItem(r.data,e,!0)._model,n,u.nextItem(r.data,e,!0)._model,n.tension);n.controlPointPreviousX=Math.max(Math.min(i.previous.x,a.right),a.left),n.controlPointPreviousY=Math.max(Math.min(i.previous.y,a.bottom),a.top),n.controlPointNextX=Math.max(Math.min(i.next.x,a.right),a.left),n.controlPointNextY=Math.max(Math.min(i.next.y,a.bottom),a.top),t.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model;t.$previousStyle={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderWidth:a.borderWidth,radius:a.radius},a.radius=n.hoverRadius?n.hoverRadius:u.valueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),a.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:u.valueAtIndexOrDefault(e.pointHoverBackgroundColor,i,u.getHoverColor(a.backgroundColor)),a.borderColor=n.hoverBorderColor?n.hoverBorderColor:u.valueAtIndexOrDefault(e.pointHoverBorderColor,i,u.getHoverColor(a.borderColor)),a.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:u.valueAtIndexOrDefault(e.pointHoverBorderWidth,i,a.borderWidth)}})}},{26:26,41:41,46:46}],21:[function(t,e,n){"use strict";t(26)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),e.exports=function(t){t.controllers.scatter=t.controllers.line}},{26:26}],22:[function(t,e,n){"use strict";var i=t(27);n=e.exports=i.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null});Object.defineProperty(n.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(n.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}})},{27:27}],23:[function(t,e,n){"use strict";var i=t(26),r=t(46);i._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:r.noop,onComplete:r.noop}}),e.exports={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,n,i){var a,r,o=this.animations;for(e.chart=t,i||(t.animating=!0),a=0,r=o.length;a<r;++a)if(o[a].chart===t)return void(o[a]=e);o.push(e),1===o.length&&this.requestAnimationFrame()},cancelAnimation:function(e){var t=r.findIndex(this.animations,function(t){return t.chart===e});-1!==t&&(this.animations.splice(t,1),e.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=r.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){var t=this,e=Date.now(),n=0;1<t.dropFrames&&(n=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+n);var i=Date.now();t.dropFrames+=(i-e)/t.frameDuration,0<t.animations.length&&t.requestAnimationFrame()},advance:function(t){for(var e,n,i=this.animations,a=0;a<i.length;)n=(e=i[a]).chart,e.currentStep=(e.currentStep||0)+t,e.currentStep=Math.min(e.currentStep,e.numSteps),r.callback(e.render,[n,e],n),r.callback(e.onAnimationProgress,[e],n),e.currentStep>=e.numSteps?(r.callback(e.onAnimationComplete,[e],n),n.animating=!1,i.splice(a,1)):++a}}},{26:26,46:46}],24:[function(t,e,n){"use strict";var s=t(22),l=t(23),h=t(26),c=t(46),a=t(29),r=t(31),f=t(49),g=t(32),m=t(34),i=t(36);e.exports=function(u){function d(t){return"top"===t||"bottom"===t}u.types={},u.instances={},u.controllers={},c.extend(u.prototype,{construct:function(t,e){var n,i,a=this;(i=(n=(n=e)||{}).data=n.data||{}).datasets=i.datasets||[],i.labels=i.labels||[],n.options=c.configMerge(h.global,h[n.type],n.options||{}),e=n;var r=f.acquireContext(t,e),o=r&&r.canvas,s=o&&o.height,l=o&&o.width;a.id=c.uid(),a.ctx=r,a.canvas=o,a.config=e,a.width=l,a.height=s,a.aspectRatio=s?l/s:null,a.options=e.options,a._bufferedRender=!1,(a.chart=a).controller=a,u.instances[a.id]=a,Object.defineProperty(a,"data",{get:function(){return a.config.data},set:function(t){a.config.data=t}}),r&&o?(a.initialize(),a.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return g.notify(t,"beforeInit"),c.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),g.notify(t,"afterInit"),t},clear:function(){return c.canvas.clear(this),this},stop:function(){return l.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,a=n.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(c.getMaximumWidth(i))),o=Math.max(0,Math.floor(a?r/a:c.getMaximumHeight(i)));if((e.width!==r||e.height!==o)&&(i.width=e.width=r,i.height=e.height=o,i.style.width=r+"px",i.style.height=o+"px",c.retinaScale(e,n.devicePixelRatio),!t)){var s={width:r,height:o};g.notify(e,"resize",[s]),e.options.onResize&&e.options.onResize(e,s),e.stop(),e.update({duration:e.options.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;c.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),c.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var o=this,t=o.options,s=o.scales||{},e=[],l=Object.keys(s).reduce(function(t,e){return t[e]=!1,t},{});t.scales&&(e=e.concat((t.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(t.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),t.scale&&e.push({options:t.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),c.each(e,function(t){var e=t.options,n=e.id,i=c.valueOrDefault(e.type,t.dtype);d(e.position)!==d(t.dposition)&&(e.position=t.dposition),l[n]=!0;var a=null;if(n in s&&s[n].type===i)(a=s[n]).options=e,a.ctx=o.ctx,a.chart=o;else{var r=m.getScaleConstructor(i);if(!r)return;a=new r({id:n,type:i,options:e,ctx:o.ctx,chart:o}),s[a.id]=a}a.mergeTicksOptions(),t.isDefault&&(o.scale=a)}),c.each(l,function(t,e){t||delete s[e]}),o.scales=s,m.addScalesToLayout(this)},buildOrUpdateControllers:function(){var r=this,o=[],s=[];return c.each(r.data.datasets,function(t,e){var n=r.getDatasetMeta(e),i=t.type||r.config.type;if(n.type&&n.type!==i&&(r.destroyDatasetMeta(e),n=r.getDatasetMeta(e)),n.type=i,o.push(n.type),n.controller)n.controller.updateIndex(e),n.controller.linkScales();else{var a=u.controllers[n.type];if(void 0===a)throw new Error('"'+n.type+'" is not a chart type.');n.controller=new a(r,e),s.push(n.controller)}},r),s},resetElements:function(){var n=this;c.each(n.data.datasets,function(t,e){n.getDatasetMeta(e).controller.reset()},n)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e,n,i=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),n=(e=i).options,c.each(e.scales,function(t){r.removeBox(e,t)}),n=c.configMerge(u.defaults.global,u.defaults[e.config.type],n),e.options=e.config.options=n,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=n.tooltips,e.tooltip.initialize(),g._invalidate(i),!1!==g.notify(i,"beforeUpdate")){i.tooltip._data=i.data;var a=i.buildOrUpdateControllers();c.each(i.data.datasets,function(t,e){i.getDatasetMeta(e).controller.buildOrUpdateElements()},i),i.updateLayout(),i.options.animation&&i.options.animation.duration&&c.each(a,function(t){t.reset()}),i.updateDatasets(),i.tooltip.initialize(),i.lastActive=[],g.notify(i,"afterUpdate"),i._bufferedRender?i._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:i.render(t)}},updateLayout:function(){!1!==g.notify(this,"beforeLayout")&&(r.update(this,this.width,this.height),g.notify(this,"afterScaleUpdate"),g.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==g.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t<e;++t)this.updateDataset(t);g.notify(this,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this.getDatasetMeta(t),n={meta:e,index:t};!1!==g.notify(this,"beforeDatasetUpdate",[n])&&(e.controller.update(),g.notify(this,"afterDatasetUpdate",[n]))},render:function(t){var e=this;t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]});var n=t.duration,i=t.lazy;if(!1!==g.notify(e,"beforeRender")){var a=e.options.animation,r=function(t){g.notify(e,"afterRender"),c.callback(a&&a.onComplete,[t],e)};if(a&&(void 0!==n&&0!==n||void 0===n&&0!==a.duration)){var o=new s({numSteps:(n||a.duration)/16.66,easing:t.easing||a.easing,render:function(t,e){var n=c.easing.effects[e.easing],i=e.currentStep,a=i/e.numSteps;t.draw(n(a),a,i)},onAnimationProgress:a.onProgress,onAnimationComplete:r});l.addAnimation(e,o,n,i)}else e.draw(),r(new s({numSteps:0,chart:e}));return e}},draw:function(t){var e=this;e.clear(),c.isNullOrUndef(t)&&(t=1),e.transition(t),e.width<=0||e.height<=0||!1!==g.notify(e,"beforeDraw",[t])&&(c.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.scale&&e.scale.draw(),e.drawDatasets(t),e._drawTooltip(t),g.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=0,n=(this.data.datasets||[]).length;e<n;++e)this.isDatasetVisible(e)&&this.getDatasetMeta(e).controller.transition(t);this.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==g.notify(e,"beforeDatasetsDraw",[t])){for(var n=(e.data.datasets||[]).length-1;0<=n;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);g.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this.getDatasetMeta(t),i={meta:n,index:t,easingValue:e};!1!==g.notify(this,"beforeDatasetDraw",[i])&&(n.controller.draw(e),g.notify(this,"afterDatasetDraw",[i]))},_drawTooltip:function(t){var e=this.tooltip,n={tooltip:e,easingValue:t};!1!==g.notify(this,"beforeTooltipDraw",[n])&&(e.draw(),g.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(t){return a.modes.single(this,t)},getElementsAtEvent:function(t){return a.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return a.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var i=a.modes[e];return"function"==typeof i?i(this,t,n):[]},getDatasetAtEvent:function(t){return a.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var n=e._meta[this.id];return n||(n=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),n},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e<n;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,n=this.data.datasets[t],i=n._meta&&n._meta[e];i&&(i.controller.destroy(),delete n._meta[e])},destroy:function(){var t,e,n=this,i=n.canvas;for(n.stop(),t=0,e=n.data.datasets.length;t<e;++t)n.destroyDatasetMeta(t);i&&(n.unbindEvents(),c.canvas.clear(n),f.releaseContext(n.ctx),n.canvas=null,n.ctx=null),g.notify(n,"destroy"),delete u.instances[n.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var t=this;t.tooltip=new i({_chart:t,_chartInstance:t,_data:t.data,_options:t.options.tooltips},t)},bindEvents:function(){var e=this,n=e._listeners={},i=function(){e.eventHandler.apply(e,arguments)};c.each(e.options.events,function(t){f.addEventListener(e,t,i),n[t]=i}),e.options.responsive&&(i=function(){e.resize()},f.addEventListener(e,"resize",i),n.resize=i)},unbindEvents:function(){var n=this,t=n._listeners;t&&(delete n._listeners,c.each(t,function(t,e){f.removeEventListener(n,e,t)}))},updateHoverStyle:function(t,e,n){var i,a,r,o=n?"setHoverStyle":"removeHoverStyle";for(a=0,r=t.length;a<r;++a)(i=t[a])&&this.getDatasetMeta(i._datasetIndex).controller[o](i)},eventHandler:function(t){var e=this,n=e.tooltip;if(!1!==g.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var i=e.handleEvent(t);n&&(i=n._start?n.handleEvent(t):i|n.handleEvent(t)),g.notify(e,"afterEvent",[t]);var a=e._bufferedRequest;return a?e.render(a):i&&!e.animating&&(e.stop(),e.render({duration:e.options.hover.animationDuration,lazy:!0})),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e,n=this,i=n.options||{},a=i.hover;return n.lastActive=n.lastActive||[],"mouseout"===t.type?n.active=[]:n.active=n.getElementsAtEventForMode(t,a.mode,a),c.callback(i.onHover||i.hover.onHover,[t.native,n.active],n),"mouseup"!==t.type&&"click"!==t.type||i.onClick&&i.onClick.call(n,t.native,n.active),n.lastActive.length&&n.updateHoverStyle(n.lastActive,a.mode,!1),n.active.length&&a.mode&&n.updateHoverStyle(n.active,a.mode,!0),e=!c.arrayEquals(n.active,n.lastActive),n.lastActive=n.active,e}}),u.Controller=u}},{22:22,23:23,26:26,29:29,31:31,32:32,34:34,36:36,46:46,49:49}],25:[function(t,e,n){"use strict";var s=t(46);e.exports=function(t){var r=["push","pop","shift","splice","unshift"];function o(e,t){var n=e._chartjs;if(n){var i=n.listeners,a=i.indexOf(t);-1!==a&&i.splice(a,1),0<i.length||(r.forEach(function(t){delete e[t]}),delete e._chartjs)}}t.DatasetController=function(t,e){this.initialize(t,e)},s.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&o(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,n=this.getMeta(),i=this.getDataset().data||[],a=n.data;for(t=0,e=i.length;t<e;++t)a[t]=a[t]||this.createMetaData(t);n.dataset=n.dataset||this.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var a,t,e=this,n=e.getDataset(),i=n.data||(n.data=[]);e._data!==i&&(e._data&&o(e._data,e),t=e,(a=i)._chartjs?a._chartjs.listeners.push(t):(Object.defineProperty(a,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[t]}}),r.forEach(function(t){var n="onData"+t.charAt(0).toUpperCase()+t.slice(1),i=a[t];Object.defineProperty(a,t,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),t=i.apply(this,e);return s.each(a._chartjs.listeners,function(t){"function"==typeof t[n]&&t[n].apply(t,e)}),t}})})),e._data=i),e.resyncElements()},update:s.noop,transition:function(t){for(var e=this.getMeta(),n=e.data||[],i=n.length,a=0;a<i;++a)n[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],n=e.length,i=0;for(t.dataset&&t.dataset.draw();i<n;++i)e[i].draw()},removeHoverStyle:function(t){s.merge(t._model,t.$previousStyle||{}),delete t.$previousStyle},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,i=t.custom||{},a=s.valueAtIndexOrDefault,r=s.getHoverColor,o=t._model;t.$previousStyle={backgroundColor:o.backgroundColor,borderColor:o.borderColor,borderWidth:o.borderWidth},o.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:a(e.hoverBackgroundColor,n,r(o.backgroundColor)),o.borderColor=i.hoverBorderColor?i.hoverBorderColor:a(e.hoverBorderColor,n,r(o.borderColor)),o.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:a(e.hoverBorderWidth,n,o.borderWidth)},resyncElements:function(){var t=this.getMeta(),e=this.getDataset().data,n=t.data.length,i=e.length;i<n?t.data.splice(i,n-i):n<i&&this.insertElements(n,i-n)},insertElements:function(t,e){for(var n=0;n<e;++n)this.addElementAndReset(t+n)},onDataPush:function(){this.insertElements(this.getDataset().data.length-1,arguments.length)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),t.DatasetController.extend=s.inherits}},{46:46}],26:[function(t,e,n){"use strict";var i=t(46);e.exports={_set:function(t,e){return i.merge(this[t]||(this[t]={}),e)}}},{46:46}],27:[function(t,e,n){"use strict";var g=t(2),i=t(46);var a=function(t){i.extend(this,t),this.initialize.apply(this,arguments)};i.extend(a.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=i.clone(t._model)),t._start={},t},transition:function(t){var e=this,n=e._model,i=e._start,a=e._view;return n&&1!==t?(a||(a=e._view={}),i||(i=e._start={}),function(t,e,n,i){var a,r,o,s,l,u,d,h,c,f=Object.keys(n);for(a=0,r=f.length;a<r;++a)if(u=n[o=f[a]],e.hasOwnProperty(o)||(e[o]=u),(s=e[o])!==u&&"_"!==o[0]){if(t.hasOwnProperty(o)||(t[o]=s),(d=typeof u)==typeof(l=t[o]))if("string"===d){if((h=g(l)).valid&&(c=g(u)).valid){e[o]=c.mix(h,i).rgbString();continue}}else if("number"===d&&isFinite(l)&&isFinite(u)){e[o]=l+(u-l)*i;continue}e[o]=u}}(i,a,n,t)):(e._view=n,e._start=null),e},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return i.isNumber(this._model.x)&&i.isNumber(this._model.y)}}),a.extend=i.inherits,e.exports=a},{2:2,46:46}],28:[function(t,e,n){"use strict";var i=t(2),a=t(26),g=t(46),l=t(34);e.exports=function(){function d(t,e,n){var i;return"string"==typeof t?(i=parseInt(t,10),-1!==t.indexOf("%")&&(i=i/100*e.parentNode[n])):i=t,i}function h(t){return null!=t&&"none"!==t}function e(t,e,n){var i=document.defaultView,a=g._getParentNode(t),r=i.getComputedStyle(t)[e],o=i.getComputedStyle(a)[e],s=h(r),l=h(o),u=Number.POSITIVE_INFINITY;return s||l?Math.min(s?d(r,t,n):u,l?d(o,a,n):u):"none"}g.configMerge=function(){return g.merge(g.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(t,e,n,i){var a=e[t]||{},r=n[t];"scales"===t?e[t]=g.scaleMerge(a,r):"scale"===t?e[t]=g.merge(a,[l.getScaleDefaults(r.type),r]):g._merger(t,e,n,i)}})},g.scaleMerge=function(){return g.merge(g.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(t,e,n,i){if("xAxes"===t||"yAxes"===t){var a,r,o,s=n[t].length;for(e[t]||(e[t]=[]),a=0;a<s;++a)o=n[t][a],r=g.valueOrDefault(o.type,"xAxes"===t?"category":"linear"),a>=e[t].length&&e[t].push({}),!e[t][a].type||o.type&&o.type!==e[t][a].type?g.merge(e[t][a],[l.getScaleDefaults(r),o]):g.merge(e[t][a],o)}else g._merger(t,e,n,i)}})},g.where=function(t,e){if(g.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return g.each(t,function(t){e(t)&&n.push(t)}),n},g.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var i=0,a=t.length;i<a;++i)if(e.call(n,t[i],i,t))return i;return-1},g.findNextWhere=function(t,e,n){g.isNullOrUndef(n)&&(n=-1);for(var i=n+1;i<t.length;i++){var a=t[i];if(e(a))return a}},g.findPreviousWhere=function(t,e,n){g.isNullOrUndef(n)&&(n=t.length);for(var i=n-1;0<=i;i--){var a=t[i];if(e(a))return a}},g.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},g.almostEquals=function(t,e,n){return Math.abs(t-e)<n},g.almostWhole=function(t,e){var n=Math.round(t);return n-e<t&&t<n+e},g.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},g.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},g.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0===(t=+t)||isNaN(t)?t:0<t?1:-1},g.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,n=Math.round(e);return t===Math.pow(10,n)?n:e},g.toRadians=function(t){return t*(Math.PI/180)},g.toDegrees=function(t){return t*(180/Math.PI)},g.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),r=Math.atan2(i,n);return r<-.5*Math.PI&&(r+=2*Math.PI),{angle:r,distance:a}},g.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},g.aliasPixel=function(t){return t%2==0?0:.5},g.splineCurve=function(t,e,n,i){var a=t.skip?e:t,r=e,o=n.skip?e:n,s=Math.sqrt(Math.pow(r.x-a.x,2)+Math.pow(r.y-a.y,2)),l=Math.sqrt(Math.pow(o.x-r.x,2)+Math.pow(o.y-r.y,2)),u=s/(s+l),d=l/(s+l),h=i*(u=isNaN(u)?0:u),c=i*(d=isNaN(d)?0:d);return{previous:{x:r.x-h*(o.x-a.x),y:r.y-h*(o.y-a.y)},next:{x:r.x+c*(o.x-a.x),y:r.y+c*(o.y-a.y)}}},g.EPSILON=Number.EPSILON||1e-14,g.splineCurveMonotone=function(t){var e,n,i,a,r,o,s,l,u,d=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),h=d.length;for(e=0;e<h;++e)if(!(i=d[e]).model.skip){if(n=0<e?d[e-1]:null,(a=e<h-1?d[e+1]:null)&&!a.model.skip){var c=a.model.x-i.model.x;i.deltaK=0!==c?(a.model.y-i.model.y)/c:0}!n||n.model.skip?i.mK=i.deltaK:!a||a.model.skip?i.mK=n.deltaK:this.sign(n.deltaK)!==this.sign(i.deltaK)?i.mK=0:i.mK=(n.deltaK+i.deltaK)/2}for(e=0;e<h-1;++e)i=d[e],a=d[e+1],i.model.skip||a.model.skip||(g.almostEquals(i.deltaK,0,this.EPSILON)?i.mK=a.mK=0:(r=i.mK/i.deltaK,o=a.mK/i.deltaK,(l=Math.pow(r,2)+Math.pow(o,2))<=9||(s=3/Math.sqrt(l),i.mK=r*s*i.deltaK,a.mK=o*s*i.deltaK)));for(e=0;e<h;++e)(i=d[e]).model.skip||(n=0<e?d[e-1]:null,a=e<h-1?d[e+1]:null,n&&!n.model.skip&&(u=(i.model.x-n.model.x)/3,i.model.controlPointPreviousX=i.model.x-u,i.model.controlPointPreviousY=i.model.y-u*i.mK),a&&!a.model.skip&&(u=(a.model.x-i.model.x)/3,i.model.controlPointNextX=i.model.x+u,i.model.controlPointNextY=i.model.y+u*i.mK))},g.nextItem=function(t,e,n){return n?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},g.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},g.niceNum=function(t,e){var n=Math.floor(g.log10(t)),i=t/Math.pow(10,n);return(e?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},g.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},g.getRelativePosition=function(t,e){var n,i,a=t.originalEvent||t,r=t.target||t.srcElement,o=r.getBoundingClientRect(),s=a.touches;i=s&&0<s.length?(n=s[0].clientX,s[0].clientY):(n=a.clientX,a.clientY);var l=parseFloat(g.getStyle(r,"padding-left")),u=parseFloat(g.getStyle(r,"padding-top")),d=parseFloat(g.getStyle(r,"padding-right")),h=parseFloat(g.getStyle(r,"padding-bottom")),c=o.right-o.left-l-d,f=o.bottom-o.top-u-h;return{x:n=Math.round((n-o.left-l)/c*r.width/e.currentDevicePixelRatio),y:i=Math.round((i-o.top-u)/f*r.height/e.currentDevicePixelRatio)}},g.getConstraintWidth=function(t){return e(t,"max-width","clientWidth")},g.getConstraintHeight=function(t){return e(t,"max-height","clientHeight")},g._calculatePadding=function(t,e,n){return-1<(e=g.getStyle(t,e)).indexOf("%")?n/parseInt(e,10):parseInt(e,10)},g._getParentNode=function(t){var e=t.parentNode;return e&&e.host&&(e=e.host),e},g.getMaximumWidth=function(t){var e=g._getParentNode(t);if(!e)return t.clientWidth;var n=e.clientWidth,i=n-g._calculatePadding(e,"padding-left",n)-g._calculatePadding(e,"padding-right",n),a=g.getConstraintWidth(t);return isNaN(a)?i:Math.min(i,a)},g.getMaximumHeight=function(t){var e=g._getParentNode(t);if(!e)return t.clientHeight;var n=e.clientHeight,i=n-g._calculatePadding(e,"padding-top",n)-g._calculatePadding(e,"padding-bottom",n),a=g.getConstraintHeight(t);return isNaN(a)?i:Math.min(i,a)},g.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},g.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var i=t.canvas,a=t.height,r=t.width;i.height=a*n,i.width=r*n,t.ctx.scale(n,n),i.style.height||i.style.width||(i.style.height=a+"px",i.style.width=r+"px")}},g.fontString=function(t,e,n){return e+" "+t+"px "+n},g.longestText=function(e,t,n,i){var a=(i=i||{}).data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==t&&(a=i.data={},r=i.garbageCollect=[],i.font=t),e.font=t;var o=0;g.each(n,function(t){null!=t&&!0!==g.isArray(t)?o=g.measureText(e,a,r,o,t):g.isArray(t)&&g.each(t,function(t){null==t||g.isArray(t)||(o=g.measureText(e,a,r,o,t))})});var s=r.length/2;if(s>n.length){for(var l=0;l<s;l++)delete a[r[l]];r.splice(0,s)}return o},g.measureText=function(t,e,n,i,a){var r=e[a];return r||(r=e[a]=t.measureText(a).width,n.push(a)),i<r&&(i=r),i},g.numberOfLabelLines=function(t){var e=1;return g.each(t,function(t){g.isArray(t)&&t.length>e&&(e=t.length)}),e},g.color=i?function(t){return t instanceof CanvasGradient&&(t=a.global.defaultColor),i(t)}:function(t){return console.error("Color.js not found!"),t},g.getHoverColor=function(t){return t instanceof CanvasPattern?t:g.color(t).saturate(.5).darken(.1).rgbString()}}},{2:2,26:26,34:34,46:46}],29:[function(t,e,n){"use strict";var i=t(46);function s(t,e){return t.native?{x:t.x,y:t.y}:i.getRelativePosition(t,e)}function l(t,e){var n,i,a,r,o;for(i=0,r=t.data.datasets.length;i<r;++i)if(t.isDatasetVisible(i))for(a=0,o=(n=t.getDatasetMeta(i)).data.length;a<o;++a){var s=n.data[a];s._view.skip||e(s)}}function u(t,e){var n=[];return l(t,function(t){t.inRange(e.x,e.y)&&n.push(t)}),n}function d(t,i,a,r){var o=Number.POSITIVE_INFINITY,s=[];return l(t,function(t){if(!a||t.inRange(i.x,i.y)){var e=t.getCenterPoint(),n=r(i,e);n<o?(s=[t],o=n):n===o&&s.push(t)}}),s}function h(t){var a=-1!==t.indexOf("x"),r=-1!==t.indexOf("y");return function(t,e){var n=a?Math.abs(t.x-e.x):0,i=r?Math.abs(t.y-e.y):0;return Math.sqrt(Math.pow(n,2)+Math.pow(i,2))}}function a(i,t,e){var n=s(t,i);e.axis=e.axis||"x";var a=h(e.axis),r=e.intersect?u(i,n):d(i,n,!1,a),o=[];return r.length?(i.data.datasets.forEach(function(t,e){if(i.isDatasetVisible(e)){var n=i.getDatasetMeta(e).data[r[0]._index];n&&!n._view.skip&&o.push(n)}}),o):[]}e.exports={modes:{single:function(t,e){var n=s(e,t),i=[];return l(t,function(t){if(t.inRange(n.x,n.y))return i.push(t),i}),i.slice(0,1)},label:a,index:a,dataset:function(t,e,n){var i=s(e,t);n.axis=n.axis||"xy";var a=h(n.axis),r=n.intersect?u(t,i):d(t,i,!1,a);return 0<r.length&&(r=t.getDatasetMeta(r[0]._datasetIndex).data),r},"x-axis":function(t,e){return a(t,e,{intersect:!1})},point:function(t,e){return u(t,s(e,t))},nearest:function(t,e,n){var i=s(e,t);n.axis=n.axis||"xy";var a=h(n.axis),r=d(t,i,n.intersect,a);return 1<r.length&&r.sort(function(t,e){var n=t.getArea()-e.getArea();return 0===n&&(n=t._datasetIndex-e._datasetIndex),n}),r.slice(0,1)},x:function(t,e,n){var i=s(e,t),a=[],r=!1;return l(t,function(t){t.inXRange(i.x)&&a.push(t),t.inRange(i.x,i.y)&&(r=!0)}),n.intersect&&!r&&(a=[]),a},y:function(t,e,n){var i=s(e,t),a=[],r=!1;return l(t,function(t){t.inYRange(i.y)&&a.push(t),t.inRange(i.x,i.y)&&(r=!0)}),n.intersect&&!r&&(a=[]),a}}}},{46:46}],30:[function(t,e,n){"use strict";t(26)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t}},{26:26}],31:[function(t,e,n){"use strict";var N=t(46);function z(t,e){return N.where(t,function(t){return t.position===e})}function V(t,a){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,e){var n=a?e:t,i=a?t:e;return n.weight===i.weight?n._tmpIndex_-i._tmpIndex_:n.weight-i.weight}),t.forEach(function(t){delete t._tmpIndex_})}e.exports={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var i,a=["fullWidth","position","weight"],r=a.length,o=0;o<r;++o)i=a[o],n.hasOwnProperty(i)&&(e[i]=n[i])},update:function(e,n,t){if(e){var i=e.options.layout||{},a=N.options.toPadding(i.padding),r=a.left,o=a.right,s=a.top,l=a.bottom,u=z(e.boxes,"left"),d=z(e.boxes,"right"),h=z(e.boxes,"top"),c=z(e.boxes,"bottom"),f=z(e.boxes,"chartArea");V(u,!0),V(d,!1),V(h,!0),V(c,!1);var g=n-r-o,m=t-s-l,p=m/2,v=(n-g/2)/(u.length+d.length),b=(t-p)/(h.length+c.length),y=g,x=m,_=[];N.each(u.concat(d,h,c),function(t){var e,n=t.isHorizontal();n?(e=t.update(t.fullWidth?g:y,b),x-=e.height):(e=t.update(v,x),y-=e.width),_.push({horizontal:n,minSize:e,box:t})});var k=0,w=0,M=0,S=0;N.each(h.concat(c),function(t){if(t.getPadding){var e=t.getPadding();k=Math.max(k,e.left),w=Math.max(w,e.right)}}),N.each(u.concat(d),function(t){if(t.getPadding){var e=t.getPadding();M=Math.max(M,e.top),S=Math.max(S,e.bottom)}});var D=r,C=o,P=s,T=l;N.each(u.concat(d),Y),N.each(u,function(t){D+=t.width}),N.each(d,function(t){C+=t.width}),N.each(h.concat(c),Y),N.each(h,function(t){P+=t.height}),N.each(c,function(t){T+=t.height}),N.each(u.concat(d),function(e){var t=N.findNextWhere(_,function(t){return t.box===e}),n={left:0,right:0,top:P,bottom:T};t&&e.update(t.minSize.width,x,n)}),D=r,C=o,P=s,T=l,N.each(u,function(t){D+=t.width}),N.each(d,function(t){C+=t.width}),N.each(h,function(t){P+=t.height}),N.each(c,function(t){T+=t.height});var O=Math.max(k-D,0);D+=O,C+=Math.max(w-C,0);var I=Math.max(M-P,0);P+=I,T+=Math.max(S-T,0);var A=t-P-T,F=n-D-C;F===y&&A===x||(N.each(u,function(t){t.height=A}),N.each(d,function(t){t.height=A}),N.each(h,function(t){t.fullWidth||(t.width=F)}),N.each(c,function(t){t.fullWidth||(t.width=F)}),x=A,y=F);var R=r+O,L=s+I;N.each(u.concat(h),W),R+=y,L+=x,N.each(d,W),N.each(c,W),e.chartArea={left:D,top:P,right:D+y,bottom:P+x},N.each(f,function(t){t.left=e.chartArea.left,t.top=e.chartArea.top,t.right=e.chartArea.right,t.bottom=e.chartArea.bottom,t.update(y,x)})}function Y(e){var t=N.findNextWhere(_,function(t){return t.box===e});if(t)if(e.isHorizontal()){var n={left:Math.max(D,k),right:Math.max(C,w),top:0,bottom:0};e.update(e.fullWidth?g:y,m/2,n)}else e.update(t.minSize.width,x)}function W(t){t.isHorizontal()?(t.left=t.fullWidth?r:D,t.right=t.fullWidth?n-o:D+y,t.top=L,t.bottom=L+t.height,L=t.bottom):(t.left=R,t.right=R+t.width,t.top=P,t.bottom=P+x,R=t.right)}}}},{46:46}],32:[function(t,e,n){"use strict";var o=t(26),s=t(46);o._set("global",{plugins:{}}),e.exports={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}),this._cacheId++},unregister:function(t){var n=this._plugins;[].concat(t).forEach(function(t){var e=n.indexOf(t);-1!==e&&n.splice(e,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,n){var i,a,r,o,s,l=this.descriptors(t),u=l.length;for(i=0;i<u;++i)if("function"==typeof(s=(r=(a=l[i]).plugin)[e])&&((o=[t].concat(n||[])).push(a.options),!1===s.apply(r,o)))return!1;return!0},descriptors:function(t){var e=t.$plugins||(t.$plugins={});if(e.id===this._cacheId)return e.descriptors;var i=[],a=[],n=t&&t.config||{},r=n.options&&n.options.plugins||{};return this._plugins.concat(n.plugins||[]).forEach(function(t){if(-1===i.indexOf(t)){var e=t.id,n=r[e];!1!==n&&(!0===n&&(n=s.clone(o.global.plugins[e])),i.push(t),a.push({plugin:t,options:n||{}}))}}),e.descriptors=a,e.id=this._cacheId,a},_invalidate:function(t){delete t.$plugins}}},{26:26,46:46}],33:[function(t,e,n){"use strict";var x=t(26),i=t(27),B=t(46),a=t(35);function _(t){var e,n,i=[];for(e=0,n=t.length;e<n;++e)i.push(t[e].label);return i}function E(t,e,n){var i=t.getPixelForTick(e);return n&&(i-=0===e?(t.getPixelForTick(1)-i)/2:(i-t.getPixelForTick(e-1))/2),i}function k(t,e,n){return B.isArray(e)?B.longestText(t,n,e):t.measureText(e).width}function w(t){var e=B.valueOrDefault,n=x.global,i=e(t.fontSize,n.defaultFontSize),a=e(t.fontStyle,n.defaultFontStyle),r=e(t.fontFamily,n.defaultFontFamily);return{size:i,style:a,family:r,font:B.fontString(i,a,r)}}function M(t){return B.options.toLineHeight(B.valueOrDefault(t.lineHeight,1.2),B.valueOrDefault(t.fontSize,x.global.defaultFontSize))}x._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",lineHeight:1.2,padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:a.formatters.values,minor:{},major:{}}}),e.exports=i.extend({getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;for(var e in!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1}),t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){B.callback(this.options.beforeUpdate,[this])},update:function(t,e,n){var i,a,r,o,s,l,u=this;for(u.beforeUpdate(),u.maxWidth=t,u.maxHeight=e,u.margins=B.extend({left:0,right:0,top:0,bottom:0},n),u.longestTextCache=u.longestTextCache||{},u.beforeSetDimensions(),u.setDimensions(),u.afterSetDimensions(),u.beforeDataLimits(),u.determineDataLimits(),u.afterDataLimits(),u.beforeBuildTicks(),s=u.buildTicks()||[],u.afterBuildTicks(),u.beforeTickToLabelConversion(),r=u.convertTicksToLabels(s)||u.ticks,u.afterTickToLabelConversion(),i=0,a=(u.ticks=r).length;i<a;++i)o=r[i],(l=s[i])?l.label=o:s.push(l={label:o,major:!1});return u._ticks=s,u.beforeCalculateTickRotation(),u.calculateTickRotation(),u.afterCalculateTickRotation(),u.beforeFit(),u.fit(),u.afterFit(),u.afterUpdate(),u.minSize},afterUpdate:function(){B.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){B.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){B.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){B.callback(this.options.beforeDataLimits,[this])},determineDataLimits:B.noop,afterDataLimits:function(){B.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){B.callback(this.options.beforeBuildTicks,[this])},buildTicks:B.noop,afterBuildTicks:function(){B.callback(this.options.afterBuildTicks,[this])},beforeTickToLabelConversion:function(){B.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this.options.ticks;this.ticks=this.ticks.map(t.userCallback||t.callback,this)},afterTickToLabelConversion:function(){B.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){B.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,n=t.options.ticks,i=_(t._ticks),a=w(n);e.font=a.font;var r=n.minRotation||0;if(i.length&&t.options.display&&t.isHorizontal())for(var o,s=B.longestText(e,a.font,i,t.longestTextCache),l=s,u=t.getPixelForTick(1)-t.getPixelForTick(0)-6;u<l&&r<n.maxRotation;){var d=B.toRadians(r);if(o=Math.cos(d),Math.sin(d)*s>t.maxHeight){r--;break}r++,l=o*s}t.labelRotation=r},afterCalculateTickRotation:function(){B.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){B.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},n=_(t._ticks),i=t.options,a=i.ticks,r=i.scaleLabel,o=i.gridLines,s=i.display,l=t.isHorizontal(),u=w(a),d=i.gridLines.tickMarkLength;if(e.width=l?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:s&&o.drawTicks?d:0,e.height=l?s&&o.drawTicks?d:0:t.maxHeight,r.display&&s){var h=M(r)+B.options.toPadding(r.padding).height;l?e.height+=h:e.width+=h}if(a.display&&s){var c=B.longestText(t.ctx,u.font,n,t.longestTextCache),f=B.numberOfLabelLines(n),g=.5*u.size,m=t.options.ticks.padding;if(l){t.longestLabelWidth=c;var p=B.toRadians(t.labelRotation),v=Math.cos(p),b=Math.sin(p)*c+u.size*f+g*(f-1)+g;e.height=Math.min(t.maxHeight,e.height+b+m),t.ctx.font=u.font;var y=k(t.ctx,n[0],u.font),x=k(t.ctx,n[n.length-1],u.font);0!==t.labelRotation?(t.paddingLeft="bottom"===i.position?v*y+3:v*g+3,t.paddingRight="bottom"===i.position?v*g+3:v*x+3):(t.paddingLeft=y/2+3,t.paddingRight=x/2+3)}else a.mirror?c=0:c+=m+g,e.width=Math.min(t.maxWidth,e.width+c),t.paddingTop=u.size/2,t.paddingBottom=u.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){B.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(B.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:B.noop,getPixelForValue:B.noop,getValueForPixel:B.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(n?0:1),1),a=i*t+e.paddingLeft;n&&(a+=i/2);var r=e.left+Math.round(a);return r+=e.isFullWidth()?e.margins.left:0}var o=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(o/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,i=e.left+Math.round(n);return i+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:0<t&&0<e?t:0},_autoSkip:function(t){var e,n,i,a,r=this,o=r.isHorizontal(),s=r.options.ticks.minor,l=t.length,u=B.toRadians(r.labelRotation),d=Math.cos(u),h=r.longestLabelWidth*d,c=[];for(s.maxTicksLimit&&(a=s.maxTicksLimit),o&&(e=!1,(h+s.autoSkipPadding)*l>r.width-(r.paddingLeft+r.paddingRight)&&(e=1+Math.floor((h+s.autoSkipPadding)*l/(r.width-(r.paddingLeft+r.paddingRight)))),a&&a<l&&(e=Math.max(e,Math.floor(l/a)))),n=0;n<l;n++)i=t[n],(1<e&&0<n%e||n%e==0&&l<=n+e)&&n!==l-1&&delete i.label,c.push(i);return c},draw:function(S){var D=this,C=D.options;if(C.display){var o=D.ctx,P=x.global,T=C.ticks.minor,t=C.ticks.major||T,O=C.gridLines,e=C.scaleLabel,I=0!==D.labelRotation,A=D.isHorizontal(),F=T.autoSkip?D._autoSkip(D.getTicks()):D.getTicks(),s=B.valueOrDefault(T.fontColor,P.defaultFontColor),l=w(T),u=B.valueOrDefault(t.fontColor,P.defaultFontColor),d=w(t),R=O.drawTicks?O.tickMarkLength:0,n=B.valueOrDefault(e.fontColor,P.defaultFontColor),i=w(e),a=B.options.toPadding(e.padding),L=B.toRadians(D.labelRotation),Y=[],W=D.options.gridLines.lineWidth,N="right"===C.position?D.left:D.right-W-R,z="right"===C.position?D.left+R:D.right,V="bottom"===C.position?D.top+W:D.bottom-R-W,H="bottom"===C.position?D.top+W+R:D.bottom+W;if(B.each(F,function(t,e){if(!B.isNullOrUndef(t.label)){var n,i,a,r,o,s,l,u,d,h,c,f,g,m,p=t.label;r=e===D.zeroLineIndex&&C.offset===O.offsetGridLines?(n=O.zeroLineWidth,i=O.zeroLineColor,a=O.zeroLineBorderDash,O.zeroLineBorderDashOffset):(n=B.valueAtIndexOrDefault(O.lineWidth,e),i=B.valueAtIndexOrDefault(O.color,e),a=B.valueOrDefault(O.borderDash,P.borderDash),B.valueOrDefault(O.borderDashOffset,P.borderDashOffset));var v="middle",b="middle",y=T.padding;if(A){var x=R+y;m="bottom"===C.position?(b=I?"middle":"top",v=I?"right":"center",D.top+x):(b=I?"middle":"bottom",v=I?"left":"center",D.bottom-x);var _=E(D,e,O.offsetGridLines&&1<F.length);_<D.left&&(i="rgba(0,0,0,0)"),_+=B.aliasPixel(n),g=D.getPixelForTick(e)+T.labelOffset,o=l=d=c=_,s=V,u=H,h=S.top,f=S.bottom+W}else{var k,w="left"===C.position;k=T.mirror?(v=w?"left":"right",y):(v=w?"right":"left",R+y),g=w?D.right-k:D.left+k;var M=E(D,e,O.offsetGridLines&&1<F.length);M<D.top&&(i="rgba(0,0,0,0)"),M+=B.aliasPixel(n),m=D.getPixelForTick(e)+T.labelOffset,o=N,l=z,d=S.left,c=S.right+W,s=u=h=f=M}Y.push({tx1:o,ty1:s,tx2:l,ty2:u,x1:d,y1:h,x2:c,y2:f,labelX:g,labelY:m,glWidth:n,glColor:i,glBorderDash:a,glBorderDashOffset:r,rotation:-1*L,label:p,major:t.major,textBaseline:b,textAlign:v})}}),B.each(Y,function(t){if(O.display&&(o.save(),o.lineWidth=t.glWidth,o.strokeStyle=t.glColor,o.setLineDash&&(o.setLineDash(t.glBorderDash),o.lineDashOffset=t.glBorderDashOffset),o.beginPath(),O.drawTicks&&(o.moveTo(t.tx1,t.ty1),o.lineTo(t.tx2,t.ty2)),O.drawOnChartArea&&(o.moveTo(t.x1,t.y1),o.lineTo(t.x2,t.y2)),o.stroke(),o.restore()),T.display){o.save(),o.translate(t.labelX,t.labelY),o.rotate(t.rotation),o.font=t.major?d.font:l.font,o.fillStyle=t.major?u:s,o.textBaseline=t.textBaseline,o.textAlign=t.textAlign;var e=t.label;if(B.isArray(e))for(var n=e.length,i=1.5*l.size,a=D.isHorizontal()?0:-i*(n-1)/2,r=0;r<n;++r)o.fillText(""+e[r],0,a),a+=i;else o.fillText(e,0,0);o.restore()}}),e.display){var r,h,c=0,f=M(e)/2;if(A)r=D.left+(D.right-D.left)/2,h="bottom"===C.position?D.bottom-f-a.bottom:D.top+f+a.top;else{var g="left"===C.position;r=g?D.left+f+a.top:D.right-f-a.top,h=D.top+(D.bottom-D.top)/2,c=g?-.5*Math.PI:.5*Math.PI}o.save(),o.translate(r,h),o.rotate(c),o.textAlign="center",o.textBaseline="middle",o.fillStyle=n,o.font=i.font,o.fillText(e.labelString,0,0),o.restore()}if(O.drawBorder){o.lineWidth=B.valueAtIndexOrDefault(O.lineWidth,0),o.strokeStyle=B.valueAtIndexOrDefault(O.color,0);var m=D.left,p=D.right+W,v=D.top,b=D.bottom+W,y=B.aliasPixel(o.lineWidth);A?(v=b="top"===C.position?D.bottom:D.top,v+=y,b+=y):(m=p="left"===C.position?D.right:D.left,m+=y,p+=y),o.beginPath(),o.moveTo(m,v),o.lineTo(p,b),o.stroke()}}}})},{26:26,27:27,35:35,46:46}],34:[function(t,e,n){"use strict";var i=t(26),a=t(46),r=t(31);e.exports={constructors:{},defaults:{},registerScaleType:function(t,e,n){this.constructors[t]=e,this.defaults[t]=a.clone(n)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?a.merge({},[i.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=a.extend(this.defaults[t],e))},addScalesToLayout:function(e){a.each(e.scales,function(t){t.fullWidth=t.options.fullWidth,t.position=t.options.position,t.weight=t.options.weight,r.addBox(e,t)})}}},{26:26,31:31,46:46}],35:[function(t,e,n){"use strict";var l=t(46);e.exports={formatters:{values:function(t){return l.isArray(t)?t:""+t},linear:function(t,e,n){var i=3<n.length?n[2]-n[1]:n[1]-n[0];1<Math.abs(i)&&t!==Math.floor(t)&&(i=t-Math.floor(t));var a=l.log10(Math.abs(i)),r="";if(0!==t)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var o=l.log10(Math.abs(t));r=t.toExponential(Math.floor(o)-Math.floor(a))}else{var s=-1*Math.floor(a);s=Math.max(Math.min(s,20),0),r=t.toFixed(s)}else r="0";return r},logarithmic:function(t,e,n){var i=t/Math.pow(10,Math.floor(l.log10(t)));return 0===t?"0":1===i||2===i||5===i||0===e||e===n.length-1?t.toExponential():""}}}},{46:46}],36:[function(t,e,n){"use strict";var i=t(26),a=t(27),R=t(46);i._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:R.noop,title:function(t,e){var n="",i=e.labels,a=i?i.length:0;if(0<t.length){var r=t[0];r.xLabel?n=r.xLabel:0<a&&r.index<a&&(n=i[r.index])}return n},afterTitle:R.noop,beforeBody:R.noop,beforeLabel:R.noop,label:function(t,e){var n=e.datasets[t.datasetIndex].label||"";return n&&(n+=": "),n+=t.yLabel},labelColor:function(t,e){var n=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:n.borderColor,backgroundColor:n.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:R.noop,afterBody:R.noop,beforeFooter:R.noop,footer:R.noop,afterFooter:R.noop}}});var L={average:function(t){if(!t.length)return!1;var e,n,i=0,a=0,r=0;for(e=0,n=t.length;e<n;++e){var o=t[e];if(o&&o.hasValue()){var s=o.tooltipPosition();i+=s.x,a+=s.y,++r}}return{x:Math.round(i/r),y:Math.round(a/r)}},nearest:function(t,e){var n,i,a,r=e.x,o=e.y,s=Number.POSITIVE_INFINITY;for(n=0,i=t.length;n<i;++n){var l=t[n];if(l&&l.hasValue()){var u=l.getCenterPoint(),d=R.distanceBetweenPoints(e,u);d<s&&(s=d,a=l)}}if(a){var h=a.tooltipPosition();r=h.x,o=h.y}return{x:r,y:o}}};function c(t,e){var n=R.color(t);return n.alpha(e*n.alpha()).rgbaString()}function o(t,e){return e&&(R.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function s(t){return("string"==typeof t||t instanceof String)&&-1<t.indexOf("\n")?t.split("\n"):t}function Y(t){var e=i.global,n=R.valueOrDefault;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:n(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:n(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:n(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:n(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:n(t.titleFontStyle,e.defaultFontStyle),titleFontSize:n(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:n(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:n(t.footerFontStyle,e.defaultFontStyle),footerFontSize:n(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function r(t){return o([],s(t))}(e.exports=a.extend({initialize:function(){this._model=Y(this._options),this._lastActive=[]},getTitle:function(){var t=this._options.callbacks,e=t.beforeTitle.apply(this,arguments),n=t.title.apply(this,arguments),i=t.afterTitle.apply(this,arguments),a=[];return a=o(a=o(a=o(a,s(e)),s(n)),s(i))},getBeforeBody:function(){return r(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,n){var i=this,a=i._options.callbacks,r=[];return R.each(t,function(t){var e={before:[],lines:[],after:[]};o(e.before,s(a.beforeLabel.call(i,t,n))),o(e.lines,a.label.call(i,t,n)),o(e.after,s(a.afterLabel.call(i,t,n))),r.push(e)}),r},getAfterBody:function(){return r(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this._options.callbacks,e=t.beforeFooter.apply(this,arguments),n=t.footer.apply(this,arguments),i=t.afterFooter.apply(this,arguments),a=[];return a=o(a=o(a=o(a,s(e)),s(n)),s(i))},update:function(t){var e,n,i,a,r,o,s,l,u,d,h,c,f,g,m,p,v,b,y,x,_=this,k=_._options,w=_._model,M=_._model=Y(k),S=_._active,D=_._data,C={xAlign:w.xAlign,yAlign:w.yAlign},P={x:w.x,y:w.y},T={width:w.width,height:w.height},O={x:w.caretX,y:w.caretY};if(S.length){M.opacity=1;var I=[],A=[];O=L[k.position].call(_,S,_._eventPosition);var F=[];for(e=0,n=S.length;e<n;++e)F.push((p=S[e],b=v=void 0,v=p._xScale,b=p._yScale||p._scale,y=p._index,x=p._datasetIndex,{xLabel:v?v.getLabelForIndex(y,x):"",yLabel:b?b.getLabelForIndex(y,x):"",index:y,datasetIndex:x,x:p._model.x,y:p._model.y}));k.filter&&(F=F.filter(function(t){return k.filter(t,D)})),k.itemSort&&(F=F.sort(function(t,e){return k.itemSort(t,e,D)})),R.each(F,function(t){I.push(k.callbacks.labelColor.call(_,t,_._chart)),A.push(k.callbacks.labelTextColor.call(_,t,_._chart))}),M.title=_.getTitle(F,D),M.beforeBody=_.getBeforeBody(F,D),M.body=_.getBody(F,D),M.afterBody=_.getAfterBody(F,D),M.footer=_.getFooter(F,D),M.x=Math.round(O.x),M.y=Math.round(O.y),M.caretPadding=k.caretPadding,M.labelColors=I,M.labelTextColors=A,M.dataPoints=F,C=function(t,e){var n,i,a,r,o,s=t._model,l=t._chart,u=t._chart.chartArea,d="center",h="center";s.y<e.height?h="top":s.y>l.height-e.height&&(h="bottom");var c=(u.left+u.right)/2,f=(u.top+u.bottom)/2;i="center"===h?(n=function(t){return t<=c},function(t){return c<t}):(n=function(t){return t<=e.width/2},function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},r=function(t){return t-e.width-s.caretSize-s.caretPadding<0},o=function(t){return t<=f?"top":"bottom"},n(s.x)?(d="left",a(s.x)&&(d="center",h=o(s.y))):i(s.x)&&(d="right",r(s.x)&&(d="center",h=o(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:d,yAlign:g.yAlign?g.yAlign:h}}(this,T=function(t,e){var n=t._chart.ctx,i=2*e.yPadding,a=0,r=e.body,o=r.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);o+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,l=e.footer.length,u=e.titleFontSize,d=e.bodyFontSize,h=e.footerFontSize;i+=s*u,i+=s?(s-1)*e.titleSpacing:0,i+=s?e.titleMarginBottom:0,i+=o*d,i+=o?(o-1)*e.bodySpacing:0,i+=l?e.footerMarginTop:0,i+=l*h,i+=l?(l-1)*e.footerSpacing:0;var c=0,f=function(t){a=Math.max(a,n.measureText(t).width+c)};return n.font=R.fontString(u,e._titleFontStyle,e._titleFontFamily),R.each(e.title,f),n.font=R.fontString(d,e._bodyFontStyle,e._bodyFontFamily),R.each(e.beforeBody.concat(e.afterBody),f),c=e.displayColors?d+2:0,R.each(r,function(t){R.each(t.before,f),R.each(t.lines,f),R.each(t.after,f)}),c=0,n.font=R.fontString(h,e._footerFontStyle,e._footerFontFamily),R.each(e.footer,f),{width:a+=2*e.xPadding,height:i}}(this,M)),i=M,a=T,r=C,o=_._chart,s=i.x,l=i.y,u=i.caretSize,d=i.caretPadding,h=i.cornerRadius,c=r.xAlign,f=r.yAlign,g=u+d,m=h+d,"right"===c?s-=a.width:"center"===c&&((s-=a.width/2)+a.width>o.width&&(s=o.width-a.width),s<0&&(s=0)),"top"===f?l+=g:l-="bottom"===f?a.height+g:a.height/2,"center"===f?"left"===c?s+=g:"right"===c&&(s-=g):"left"===c?s-=m:"right"===c&&(s+=m),P={x:s,y:l}}else M.opacity=0;return M.xAlign=C.xAlign,M.yAlign=C.yAlign,M.x=P.x,M.y=P.y,M.width=T.width,M.height=T.height,M.caretX=O.x,M.caretY=O.y,_._model=M,t&&k.custom&&k.custom.call(_,M),_},drawCaret:function(t,e){var n=this._chart.ctx,i=this._view,a=this.getCaretPosition(t,e,i);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,n){var i,a,r,o,s,l,u=n.caretSize,d=n.cornerRadius,h=n.xAlign,c=n.yAlign,f=t.x,g=t.y,m=e.width,p=e.height;if("center"===c)s=g+p/2,l="left"===h?(a=(i=f)-u,r=i,o=s+u,s-u):(a=(i=f+m)+u,r=i,o=s-u,s+u);else if(r=(i="left"===h?(a=f+d+u)-u:"right"===h?(a=f+m-d-u)-u:(a=n.caretX)-u,a+u),"top"===c)s=(o=g)-u,l=o;else{s=(o=g+p)+u,l=o;var v=r;r=i,i=v}return{x1:i,x2:a,x3:r,y1:o,y2:s,y3:l}},drawTitle:function(t,e,n,i){var a=e.title;if(a.length){n.textAlign=e._titleAlign,n.textBaseline="top";var r,o,s=e.titleFontSize,l=e.titleSpacing;for(n.fillStyle=c(e.titleFontColor,i),n.font=R.fontString(s,e._titleFontStyle,e._titleFontFamily),r=0,o=a.length;r<o;++r)n.fillText(a[r],t.x,t.y),t.y+=s+l,r+1===a.length&&(t.y+=e.titleMarginBottom-l)}},drawBody:function(i,a,r,o){var s=a.bodyFontSize,e=a.bodySpacing,t=a.body;r.textAlign=a._bodyAlign,r.textBaseline="top",r.font=R.fontString(s,a._bodyFontStyle,a._bodyFontFamily);var n=0,l=function(t){r.fillText(t,i.x+n,i.y),i.y+=s+e};r.fillStyle=c(a.bodyFontColor,o),R.each(a.beforeBody,l);var u=a.displayColors;n=u?s+2:0,R.each(t,function(t,e){var n=c(a.labelTextColors[e],o);r.fillStyle=n,R.each(t.before,l),R.each(t.lines,function(t){u&&(r.fillStyle=c(a.legendColorBackground,o),r.fillRect(i.x,i.y,s,s),r.lineWidth=1,r.strokeStyle=c(a.labelColors[e].borderColor,o),r.strokeRect(i.x,i.y,s,s),r.fillStyle=c(a.labelColors[e].backgroundColor,o),r.fillRect(i.x+1,i.y+1,s-2,s-2),r.fillStyle=n),l(t)}),R.each(t.after,l)}),n=0,R.each(a.afterBody,l),i.y-=e},drawFooter:function(e,n,i,t){var a=n.footer;a.length&&(e.y+=n.footerMarginTop,i.textAlign=n._footerAlign,i.textBaseline="top",i.fillStyle=c(n.footerFontColor,t),i.font=R.fontString(n.footerFontSize,n._footerFontStyle,n._footerFontFamily),R.each(a,function(t){i.fillText(t,e.x,e.y),e.y+=n.footerFontSize+n.footerSpacing}))},drawBackground:function(t,e,n,i,a){n.fillStyle=c(e.backgroundColor,a),n.strokeStyle=c(e.borderColor,a),n.lineWidth=e.borderWidth;var r=e.xAlign,o=e.yAlign,s=t.x,l=t.y,u=i.width,d=i.height,h=e.cornerRadius;n.beginPath(),n.moveTo(s+h,l),"top"===o&&this.drawCaret(t,i),n.lineTo(s+u-h,l),n.quadraticCurveTo(s+u,l,s+u,l+h),"center"===o&&"right"===r&&this.drawCaret(t,i),n.lineTo(s+u,l+d-h),n.quadraticCurveTo(s+u,l+d,s+u-h,l+d),"bottom"===o&&this.drawCaret(t,i),n.lineTo(s+h,l+d),n.quadraticCurveTo(s,l+d,s,l+d-h),"center"===o&&"left"===r&&this.drawCaret(t,i),n.lineTo(s,l+h),n.quadraticCurveTo(s,l,s+h,l),n.closePath(),n.fill(),0<e.borderWidth&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,r=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&r&&(this.drawBackground(i,e,t,n,a),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,a),this.drawBody(i,e,t,a),this.drawFooter(i,e,t,a))}},handleEvent:function(t){var e,n=this,i=n._options;return n._lastActive=n._lastActive||[],"mouseout"===t.type?n._active=[]:n._active=n._chart.getElementsAtEventForMode(t,i.mode,i),(e=!R.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(i.enabled||i.custom)&&(n._eventPosition={x:t.x,y:t.y},n.update(!0),n.pivot())),e}})).positioners=L},{26:26,27:27,46:46}],37:[function(t,e,n){"use strict";var i=t(26),a=t(27),d=t(46);i._set("global",{elements:{arc:{backgroundColor:i.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),e.exports=a.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var n=this._view;if(n){for(var i=d.getAngleFromPoint(n,{x:t,y:e}),a=i.angle,r=i.distance,o=n.startAngle,s=n.endAngle;s<o;)s+=2*Math.PI;for(;s<a;)a-=2*Math.PI;for(;a<o;)a+=2*Math.PI;var l=o<=a&&a<=s,u=r>=n.innerRadius&&r<=n.outerRadius;return l&&u}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t=this._chart.ctx,e=this._view,n=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,n,i),t.arc(e.x,e.y,e.innerRadius,i,n,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},{26:26,27:27,46:46}],38:[function(t,e,n){"use strict";var i=t(26),a=t(27),d=t(46),h=i.global;i._set("global",{elements:{line:{tension:.4,backgroundColor:h.defaultColor,borderWidth:3,borderColor:h.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),e.exports=a.extend({draw:function(){var t,e,n,i,a=this._view,r=this._chart.ctx,o=a.spanGaps,s=this._children.slice(),l=h.elements.line,u=-1;for(this._loop&&s.length&&s.push(s[0]),r.save(),r.lineCap=a.borderCapStyle||l.borderCapStyle,r.setLineDash&&r.setLineDash(a.borderDash||l.borderDash),r.lineDashOffset=a.borderDashOffset||l.borderDashOffset,r.lineJoin=a.borderJoinStyle||l.borderJoinStyle,r.lineWidth=a.borderWidth||l.borderWidth,r.strokeStyle=a.borderColor||h.defaultColor,r.beginPath(),u=-1,t=0;t<s.length;++t)e=s[t],n=d.previousItem(s,t),i=e._view,0===t?i.skip||(r.moveTo(i.x,i.y),u=t):(n=-1===u?n:s[u],i.skip||(u!==t-1&&!o||-1===u?r.moveTo(i.x,i.y):d.canvas.lineTo(r,n._view,e._view),u=t));r.stroke(),r.restore()}})},{26:26,27:27,46:46}],39:[function(t,e,n){"use strict";var u=t(26),i=t(27),d=t(46),h=u.global.defaultColor;function a(t){var e=this._view;return!!e&&Math.abs(t-e.x)<e.radius+e.hitRadius}u._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:h,borderColor:h,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}}),e.exports=i.extend({inRange:function(t,e){var n=this._view;return!!n&&Math.pow(t-n.x,2)+Math.pow(e-n.y,2)<Math.pow(n.hitRadius+n.radius,2)},inLabelRange:a,inXRange:a,inYRange:function(t){var e=this._view;return!!e&&Math.abs(t-e.y)<e.radius+e.hitRadius},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,n=this._model,i=this._chart.ctx,a=e.pointStyle,r=e.rotation,o=e.radius,s=e.x,l=e.y;e.skip||(void 0===t||n.x>=t.left&&1.01*t.right>=n.x&&n.y>=t.top&&1.01*t.bottom>=n.y)&&(i.strokeStyle=e.borderColor||h,i.lineWidth=d.valueOrDefault(e.borderWidth,u.global.elements.point.borderWidth),i.fillStyle=e.backgroundColor||h,d.canvas.drawPoint(i,a,o,s,l,r))}})},{26:26,27:27,46:46}],40:[function(t,e,n){"use strict";var i=t(26),a=t(27);function l(t){return void 0!==t._view.width}function r(t){var e,n,i,a,r=t._view;if(l(t)){var o=r.width/2;e=r.x-o,n=r.x+o,i=Math.min(r.y,r.base),a=Math.max(r.y,r.base)}else{var s=r.height/2;e=Math.min(r.x,r.base),n=Math.max(r.x,r.base),i=r.y-s,a=r.y+s}return{left:e,top:i,right:n,bottom:a}}i._set("global",{elements:{rectangle:{backgroundColor:i.global.defaultColor,borderColor:i.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),e.exports=a.extend({draw:function(){var t,e,n,i,a,r,o,s=this._chart.ctx,l=this._view,u=l.borderWidth;if(o=l.horizontal?(t=l.base,e=l.x,n=l.y-l.height/2,i=l.y+l.height/2,a=t<e?1:-1,r=1,l.borderSkipped||"left"):(t=l.x-l.width/2,e=l.x+l.width/2,a=1,r=(n=l.y)<(i=l.base)?1:-1,l.borderSkipped||"bottom"),u){var d=Math.min(Math.abs(t-e),Math.abs(n-i)),h=(u=d<u?d:u)/2,c=t+("left"!==o?h*a:0),f=e+("right"!==o?-h*a:0),g=n+("top"!==o?h*r:0),m=i+("bottom"!==o?-h*r:0);c!==f&&(n=g,i=m),g!==m&&(t=c,e=f)}s.beginPath(),s.fillStyle=l.backgroundColor,s.strokeStyle=l.borderColor,s.lineWidth=u;var p=[[t,i],[t,n],[e,n],[e,i]],v=["bottom","left","top","right"].indexOf(o,0);function b(t){return p[(v+t)%4]}-1===v&&(v=0);var y=b(0);s.moveTo(y[0],y[1]);for(var x=1;x<4;x++)y=b(x),s.lineTo(y[0],y[1]);s.fill(),u&&s.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var n=!1;if(this._view){var i=r(this);n=t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom}return n},inLabelRange:function(t,e){if(!this._view)return!1;var n=r(this);return l(this)?t>=n.left&&t<=n.right:e>=n.top&&e<=n.bottom},inXRange:function(t){var e=r(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=r(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,n=this._view;return e=l(this)?(t=n.x,(n.y+n.base)/2):(t=(n.x+n.base)/2,n.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},{26:26,27:27}],41:[function(t,e,n){"use strict";e.exports={},e.exports.Arc=t(37),e.exports.Line=t(38),e.exports.Point=t(39),e.exports.Rectangle=t(40)},{37:37,38:38,39:39,40:40}],42:[function(t,e,n){"use strict";var i=t(43);n=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,a,r){if(r){var o=Math.min(r,a/2-1e-7,i/2-1e-7);t.moveTo(e+o,n),t.lineTo(e+i-o,n),t.arcTo(e+i,n,e+i,n+o,o),t.lineTo(e+i,n+a-o),t.arcTo(e+i,n+a,e+i-o,n+a,o),t.lineTo(e+o,n+a),t.arcTo(e,n+a,e,n+a-o,o),t.lineTo(e,n+o),t.arcTo(e,n,e+o,n,o),t.closePath(),t.moveTo(e,n)}else t.rect(e,n,i,a)},drawPoint:function(t,e,n,i,a,r){var o,s,l,u,d,h;if(r=r||0,!e||"object"!=typeof e||"[object HTMLImageElement]"!==(o=e.toString())&&"[object HTMLCanvasElement]"!==o){if(!(isNaN(n)||n<=0)){switch(t.save(),t.translate(i,a),t.rotate(r*Math.PI/180),t.beginPath(),e){default:t.arc(0,0,n,0,2*Math.PI),t.closePath();break;case"triangle":d=(s=3*n/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(-s/2,d/3),t.lineTo(s/2,d/3),t.lineTo(0,-2*d/3),t.closePath();break;case"rect":h=1/Math.SQRT2*n,t.rect(-h,-h,2*h,2*h);break;case"rectRounded":var c=n/Math.SQRT2,f=-c,g=-c,m=Math.SQRT2*n;this.roundedRect(t,f,g,m,m,.425*n);break;case"rectRot":h=1/Math.SQRT2*n,t.moveTo(-h,0),t.lineTo(0,h),t.lineTo(h,0),t.lineTo(0,-h),t.closePath();break;case"cross":t.moveTo(0,n),t.lineTo(0,-n),t.moveTo(-n,0),t.lineTo(n,0);break;case"crossRot":l=Math.cos(Math.PI/4)*n,u=Math.sin(Math.PI/4)*n,t.moveTo(-l,-u),t.lineTo(l,u),t.moveTo(-l,u),t.lineTo(l,-u);break;case"star":t.moveTo(0,n),t.lineTo(0,-n),t.moveTo(-n,0),t.lineTo(n,0),l=Math.cos(Math.PI/4)*n,u=Math.sin(Math.PI/4)*n,t.moveTo(-l,-u),t.lineTo(l,u),t.moveTo(-l,u),t.lineTo(l,-u);break;case"line":t.moveTo(-n,0),t.lineTo(n,0);break;case"dash":t.moveTo(0,0),t.lineTo(n,0)}t.fill(),t.stroke(),t.restore()}}else t.drawImage(e,i-e.width/2,a-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,n,i){if(n.steppedLine)return"after"===n.steppedLine&&!i||"after"!==n.steppedLine&&i?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y),void t.lineTo(n.x,n.y);n.tension?t.bezierCurveTo(i?e.controlPointPreviousX:e.controlPointNextX,i?e.controlPointPreviousY:e.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):t.lineTo(n.x,n.y)}};i.clear=n.clear,i.drawRoundedRectangle=function(t){t.beginPath(),n.roundedRect.apply(n,arguments)}},{43:43}],43:[function(t,e,n){"use strict";var i,d={noop:function(){},uid:(i=0,function(){return i++}),isNullOrUndef:function(t){return null==t},isArray:Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,n){return d.valueOrDefault(d.isArray(t)?t[e]:t,n)},callback:function(t,e,n){if(t&&"function"==typeof t.call)return t.apply(n,e)},each:function(t,e,n,i){var a,r,o;if(d.isArray(t))if(r=t.length,i)for(a=r-1;0<=a;a--)e.call(n,t[a],a);else for(a=0;a<r;a++)e.call(n,t[a],a);else if(d.isObject(t))for(r=(o=Object.keys(t)).length,a=0;a<r;a++)e.call(n,t[o[a]],o[a])},arrayEquals:function(t,e){var n,i,a,r;if(!t||!e||t.length!==e.length)return!1;for(n=0,i=t.length;n<i;++n)if(a=t[n],r=e[n],a instanceof Array&&r instanceof Array){if(!d.arrayEquals(a,r))return!1}else if(a!==r)return!1;return!0},clone:function(t){if(d.isArray(t))return t.map(d.clone);if(d.isObject(t)){for(var e={},n=Object.keys(t),i=n.length,a=0;a<i;++a)e[n[a]]=d.clone(t[n[a]]);return e}return t},_merger:function(t,e,n,i){var a=e[t],r=n[t];d.isObject(a)&&d.isObject(r)?d.merge(a,r,i):e[t]=d.clone(r)},_mergerIf:function(t,e,n){var i=e[t],a=n[t];d.isObject(i)&&d.isObject(a)?d.mergeIf(i,a):e.hasOwnProperty(t)||(e[t]=d.clone(a))},merge:function(t,e,n){var i,a,r,o,s,l=d.isArray(e)?e:[e],u=l.length;if(!d.isObject(t))return t;for(i=(n=n||{}).merger||d._merger,a=0;a<u;++a)if(e=l[a],d.isObject(e))for(s=0,o=(r=Object.keys(e)).length;s<o;++s)i(r[s],t,e,n);return t},mergeIf:function(t,e){return d.merge(t,e,{merger:d._mergerIf})},extend:function(n){for(var t=function(t,e){n[e]=t},e=1,i=arguments.length;e<i;++e)d.each(arguments[e],t);return n},inherits:function(t){var e=this,n=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},i=function(){this.constructor=n};return i.prototype=e.prototype,n.prototype=new i,n.extend=d.inherits,t&&d.extend(n.prototype,t),n.__super__=e.prototype,n}};(e.exports=d).callCallback=d.callback,d.indexOf=function(t,e,n){return Array.prototype.indexOf.call(t,e,n)},d.getValueOrDefault=d.valueOrDefault,d.getValueAtIndexOrDefault=d.valueAtIndexOrDefault},{}],44:[function(t,e,n){"use strict";var i=t(43),a={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return 1<=t?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),e=i<1?(i=1,n/4):n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),e=i<1?(i=1,n/4):n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),e=i<1?(i=1,n/4):n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){return t*t*(2.70158*t-1.70158)},easeOutBack:function(t){return(t-=1)*t*(2.70158*t+1.70158)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-a.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a},i.easingEffects=a},{43:43}],45:[function(t,e,n){"use strict";var o=t(43);e.exports={toLineHeight:function(t,e){var n=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*e;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,n,i,a;return o.isObject(t)?(e=+t.top||0,n=+t.right||0,i=+t.bottom||0,a=+t.left||0):e=n=i=a=+t||0,{top:e,right:n,bottom:i,left:a,height:e+i,width:a+n}},resolve:function(t,e,n){var i,a,r;for(i=0,a=t.length;i<a;++i)if(void 0!==(r=t[i])&&(void 0!==e&&"function"==typeof r&&(r=r(e)),void 0!==n&&o.isArray(r)&&(r=r[n]),void 0!==r))return r}}},{43:43}],46:[function(t,e,n){"use strict";e.exports=t(43),e.exports.easing=t(44),e.exports.canvas=t(42),e.exports.options=t(45)},{42:42,43:43,44:44,45:45}],47:[function(t,e,n){e.exports={acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}}},{}],48:[function(t,e,n){"use strict";var f=t(46),g="$chartjs",m="chartjs-",p=m+"render-monitor",v=m+"render-animation",b=["animationstart","webkitAnimationStart"],s={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function l(t,e){var n=f.getStyle(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?Number(i[1]):void 0}var i=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function y(t,e,n){t.addEventListener(e,n,i)}function o(t,e,n){t.removeEventListener(e,n,i)}function x(t,e,n,i,a){return{type:t,chart:e,native:a||null,x:void 0!==n?n:null,y:void 0!==i?i:null}}function a(e,t,n){var i,a,r,o,s,l,u,d,h=e[g]||(e[g]={}),c=h.resizer=function(t){var e=document.createElement("div"),n=m+"size-monitor",i="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";e.style.cssText=i,e.className=n,e.innerHTML='<div class="'+n+'-expand" style="'+i+'"><div style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div></div><div class="'+n+'-shrink" style="'+i+'"><div style="position:absolute;width:200%;height:200%;left:0; top:0"></div></div>';var a=e.childNodes[0],r=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,r.scrollLeft=1e6,r.scrollTop=1e6};var o=function(){e._reset(),t()};return y(a,"scroll",o.bind(a,"expand")),y(r,"scroll",o.bind(r,"shrink")),e}((r=!(i=function(){if(h.resizer)return t(x("resize",n))}),o=[],function(){o=Array.prototype.slice.call(arguments),a=a||this,r||(r=!0,f.requestAnimFrame.call(window,function(){r=!1,i.apply(a,o)}))}));l=function(){if(h.resizer){var t=e.parentNode;t&&t!==c.parentNode&&t.insertBefore(c,t.firstChild),c._reset()}},u=(s=e)[g]||(s[g]={}),d=u.renderProxy=function(t){t.animationName===v&&l()},f.each(b,function(t){y(s,t,d)}),u.reflow=!!s.offsetParent,s.classList.add(p)}function r(t){var e,n,i,a=t[g]||{},r=a.resizer;delete a.resizer,n=(e=t)[g]||{},(i=n.renderProxy)&&(f.each(b,function(t){o(e,t,i)}),delete n.renderProxy),e.classList.remove(p),r&&r.parentNode&&r.parentNode.removeChild(r)}e.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,initialize:function(){var t,e,n,i="from{opacity:0.99}to{opacity:1}";e="@-webkit-keyframes "+v+"{"+i+"}@keyframes "+v+"{"+i+"}."+p+"{-webkit-animation:"+v+" 0.001s;animation:"+v+" 0.001s;}",n=(t=this)._style||document.createElement("style"),t._style||(e="/* Chart.js */\n"+e,(t._style=n).setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(n)),n.appendChild(document.createTextNode(e))},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var n=t&&t.getContext&&t.getContext("2d");return n&&n.canvas===t?(function(t,e){var n=t.style,i=t.getAttribute("height"),a=t.getAttribute("width");if(t[g]={initial:{height:i,width:a,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===a||""===a){var r=l(t,"width");void 0!==r&&(t.width=r)}if(null===i||""===i)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var o=l(t,"height");void 0!==r&&(t.height=o)}}(t,e),n):null},releaseContext:function(t){var n=t.canvas;if(n[g]){var i=n[g].initial;["height","width"].forEach(function(t){var e=i[t];f.isNullOrUndef(e)?n.removeAttribute(t):n.setAttribute(t,e)}),f.each(i.style||{},function(t,e){n.style[e]=t}),n.width=n.width,delete n[g]}},addEventListener:function(r,t,o){var e=r.canvas;if("resize"!==t){var n=o[g]||(o[g]={});y(e,t,(n.proxies||(n.proxies={}))[r.id+"_"+t]=function(t){var e,n,i,a;o((n=r,i=s[(e=t).type]||e.type,a=f.getRelativePosition(e,n),x(i,n,a.x,a.y,e)))})}else a(e,o,r)},removeEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=((n[g]||{}).proxies||{})[t.id+"_"+e];a&&o(i,e,a)}else r(i)}},f.addEvent=y,f.removeEvent=o},{46:46}],49:[function(t,e,n){"use strict";var i=t(46),a=t(47),r=t(48),o=r._enabled?r:a;e.exports=i.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},o)},{46:46,47:47,48:48}],50:[function(t,e,n){"use strict";e.exports={},e.exports.filler=t(51),e.exports.legend=t(52),e.exports.title=t(53)},{51:51,52:52,53:53}],51:[function(t,e,n){"use strict";var u=t(26),c=t(41),d=t(46);u._set("global",{plugins:{filler:{propagate:!0}}});var f={dataset:function(t){var e=t.fill,n=t.chart,i=n.getDatasetMeta(e),a=i&&n.isDatasetVisible(e)&&i.dataset._children||[],r=a.length||0;return r?function(t,e){return e<r&&a[e]._view||null}:null},boundary:function(t){var e=t.boundary,n=e?e.x:null,i=e?e.y:null;return function(t){return{x:null===n?t.x:n,y:null===i?t.y:i}}}};function g(t,e,n){var i,a=t._model||{},r=a.fill;if(void 0===r&&(r=!!a.backgroundColor),!1===r||null===r)return!1;if(!0===r)return"origin";if(i=parseFloat(r,10),isFinite(i)&&Math.floor(i)===i)return"-"!==r[0]&&"+"!==r[0]||(i=e+i),!(i===e||i<0||n<=i)&&i;switch(r){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return r;default:return!1}}function m(t){var e,n=t.el._model||{},i=t.el._scale||{},a=t.fill,r=null;if(isFinite(a))return null;if("start"===a?r=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===a?r=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?r=n.scaleZero:i.getBasePosition?r=i.getBasePosition():i.getBasePixel&&(r=i.getBasePixel()),null!=r){if(void 0!==r.x&&void 0!==r.y)return r;if("number"==typeof r&&isFinite(r))return{x:(e=i.isHorizontal())?r:null,y:e?null:r}}return null}function p(t,e,n){var i,a=t[e].fill,r=[e];if(!n)return a;for(;!1!==a&&-1===r.indexOf(a);){if(!isFinite(a))return a;if(!(i=t[a]))return!1;if(i.visible)return a;r.push(a),a=i.fill}return!1}function y(t){return t&&!t.skip}function x(t,e,n,i,a){var r;if(i&&a){for(t.moveTo(e[0].x,e[0].y),r=1;r<i;++r)d.canvas.lineTo(t,e[r-1],e[r]);for(t.lineTo(n[a-1].x,n[a-1].y),r=a-1;0<r;--r)d.canvas.lineTo(t,n[r],n[r-1],!0)}}e.exports={id:"filler",afterDatasetsUpdate:function(t,e){var n,i,a,r,o,s,l,u=(t.data.datasets||[]).length,d=e.propagate,h=[];for(i=0;i<u;++i)r=null,(a=(n=t.getDatasetMeta(i)).dataset)&&a._model&&a instanceof c.Line&&(r={visible:t.isDatasetVisible(i),fill:g(a,i,u),chart:t,el:a}),n.$filler=r,h.push(r);for(i=0;i<u;++i)(r=h[i])&&(r.fill=p(h,i,d),r.boundary=m(r),r.mapper=(l=void 0,s=(o=r).fill,!(l="dataset")===s?null:(isFinite(s)||(l="boundary"),f[l](o))))},beforeDatasetDraw:function(t,e){var n=e.meta.$filler;if(n){var i=t.ctx,a=n.el,r=a._view,o=a._children||[],s=n.mapper,l=r.backgroundColor||u.global.defaultColor;s&&l&&o.length&&(d.canvas.clipArea(i,t.chartArea),function(t,e,n,i,a,r){var o,s,l,u,d,h,c,f=e.length,g=i.spanGaps,m=[],p=[],v=0,b=0;for(t.beginPath(),o=0,s=f+!!r;o<s;++o)d=n(u=e[l=o%f]._view,l,i),h=y(u),c=y(d),h&&c?(v=m.push(u),b=p.push(d)):v&&b&&(g?(h&&m.push(u),c&&p.push(d)):(x(t,m,p,v,b),v=b=0,m=[],p=[]));x(t,m,p,v,b),t.closePath(),t.fillStyle=a,t.fill()}(i,o,s,r,l,a._loop),d.canvas.unclipArea(i))}}}},{26:26,41:41,46:46}],52:[function(t,e,n){"use strict";var D=t(26),i=t(27),C=t(46),a=t(31),r=C.noop;function P(t,e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}D._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var n=e.datasetIndex,i=this.chart,a=i.getDatasetMeta(n);a.hidden=null===a.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(n){var t=n.data;return C.isArray(t.datasets)?t.datasets.map(function(t,e){return{text:t.label,fillStyle:C.isArray(t.backgroundColor)?t.backgroundColor[0]:t.backgroundColor,hidden:!n.isDatasetVisible(e),lineCap:t.borderCapStyle,lineDash:t.borderDash,lineDashOffset:t.borderDashOffset,lineJoin:t.borderJoinStyle,lineWidth:t.borderWidth,strokeStyle:t.borderColor,pointStyle:t.pointStyle,datasetIndex:e}},this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var n=0;n<t.data.datasets.length;n++)e.push('<li><span style="background-color:'+t.data.datasets[n].backgroundColor+'"></span>'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("</li>");return e.push("</ul>"),e.join("")}});var o=i.extend({initialize:function(t){C.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:r,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:r,beforeSetDimensions:r,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:r,beforeBuildLabels:r,buildLabels:function(){var e=this,n=e.options.labels||{},t=C.callback(n.generateLabels,[e.chart],e)||[];n.filter&&(t=t.filter(function(t){return n.filter(t,e.chart.data)})),e.options.reverse&&t.reverse(),e.legendItems=t},afterBuildLabels:r,beforeFit:r,fit:function(){var i=this,t=i.options,a=t.labels,e=t.display,r=i.ctx,n=D.global,o=C.valueOrDefault,s=o(a.fontSize,n.defaultFontSize),l=o(a.fontStyle,n.defaultFontStyle),u=o(a.fontFamily,n.defaultFontFamily),d=C.fontString(s,l,u),h=i.legendHitBoxes=[],c=i.minSize,f=i.isHorizontal();if(c.height=f?(c.width=i.maxWidth,e?10:0):(c.width=e?10:0,i.maxHeight),e)if(r.font=d,f){var g=i.lineWidths=[0],m=i.legendItems.length?s+a.padding:0;r.textAlign="left",r.textBaseline="top",C.each(i.legendItems,function(t,e){var n=P(a,s)+s/2+r.measureText(t.text).width;g[g.length-1]+n+a.padding>=i.width&&(m+=s+a.padding,g[g.length]=i.left),h[e]={left:0,top:0,width:n,height:s},g[g.length-1]+=n+a.padding}),c.height+=m}else{var p=a.padding,v=i.columnWidths=[],b=a.padding,y=0,x=0,_=s+p;C.each(i.legendItems,function(t,e){var n=P(a,s)+s/2+r.measureText(t.text).width;x+_>c.height&&(b+=y+a.padding,v.push(y),x=y=0),y=Math.max(y,n),x+=_,h[e]={left:0,top:0,width:n,height:s}}),b+=y,v.push(y),c.width+=b}i.width=c.width,i.height=c.height},afterFit:r,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var h=this,c=h.options,f=c.labels,g=D.global,m=g.elements.line,p=h.width,v=h.lineWidths;if(c.display){var b,y=h.ctx,x=C.valueOrDefault,t=x(f.fontColor,g.defaultFontColor),_=x(f.fontSize,g.defaultFontSize),e=x(f.fontStyle,g.defaultFontStyle),n=x(f.fontFamily,g.defaultFontFamily),i=C.fontString(_,e,n);y.textAlign="left",y.textBaseline="middle",y.lineWidth=.5,y.strokeStyle=t,y.fillStyle=t,y.font=i;var k=P(f,_),w=h.legendHitBoxes,M=h.isHorizontal();b=M?{x:h.left+(p-v[0])/2,y:h.top+f.padding,line:0}:{x:h.left+f.padding,y:h.top+f.padding,line:0};var S=_+f.padding;C.each(h.legendItems,function(t,e){var n,i,a,r,o,s=y.measureText(t.text).width,l=k+_/2+s,u=b.x,d=b.y;M?p<=u+l&&(d=b.y+=S,b.line++,u=b.x=h.left+(p-v[b.line])/2):d+S>h.bottom&&(u=b.x=u+h.columnWidths[b.line]+f.padding,d=b.y=h.top+f.padding,b.line++),function(t,e,n){if(!(isNaN(k)||k<=0)){y.save(),y.fillStyle=x(n.fillStyle,g.defaultColor),y.lineCap=x(n.lineCap,m.borderCapStyle),y.lineDashOffset=x(n.lineDashOffset,m.borderDashOffset),y.lineJoin=x(n.lineJoin,m.borderJoinStyle),y.lineWidth=x(n.lineWidth,m.borderWidth),y.strokeStyle=x(n.strokeStyle,g.defaultColor);var i=0===x(n.lineWidth,m.borderWidth);if(y.setLineDash&&y.setLineDash(x(n.lineDash,m.borderDash)),c.labels&&c.labels.usePointStyle){var a=_*Math.SQRT2/2,r=a/Math.SQRT2,o=t+r,s=e+r;C.canvas.drawPoint(y,n.pointStyle,a,o,s)}else i||y.strokeRect(t,e,k,_),y.fillRect(t,e,k,_);y.restore()}}(u,d,t),w[e].left=u,w[e].top=d,n=t,i=s,r=k+(a=_/2)+u,o=d+a,y.fillText(n.text,r,o),n.hidden&&(y.beginPath(),y.lineWidth=2,y.moveTo(r,o),y.lineTo(r+i,o),y.stroke()),M?b.x+=l+f.padding:b.y+=S})}},handleEvent:function(t){var e=this,n=e.options,i="mouseup"===t.type?"click":t.type,a=!1;if("mousemove"===i){if(!n.onHover)return}else{if("click"!==i)return;if(!n.onClick)return}var r=t.x,o=t.y;if(r>=e.left&&r<=e.right&&o>=e.top&&o<=e.bottom)for(var s=e.legendHitBoxes,l=0;l<s.length;++l){var u=s[l];if(r>=u.left&&r<=u.left+u.width&&o>=u.top&&o<=u.top+u.height){if("click"===i){n.onClick.call(e,t.native,e.legendItems[l]),a=!0;break}if("mousemove"===i){n.onHover.call(e,t.native,e.legendItems[l]),a=!0;break}}}return a}});function s(t,e){var n=new o({ctx:t.ctx,options:e,chart:t});a.configure(t,n,e),a.addBox(t,n),t.legend=n}e.exports={id:"legend",_element:o,beforeInit:function(t){var e=t.options.legend;e&&s(t,e)},beforeUpdate:function(t){var e=t.options.legend,n=t.legend;e?(C.mergeIf(e,D.global.legend),n?(a.configure(t,n,e),n.options=e):s(t,e)):n&&(a.removeBox(t,n),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}}},{26:26,27:27,31:31,46:46}],53:[function(t,e,n){"use strict";var _=t(26),i=t(27),k=t(46),a=t(31),r=k.noop;_._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});var o=i.extend({initialize:function(t){k.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:r,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:r,beforeSetDimensions:r,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:r,beforeBuildLabels:r,buildLabels:r,afterBuildLabels:r,beforeFit:r,fit:function(){var t=k.valueOrDefault,e=this.options,n=e.display,i=t(e.fontSize,_.global.defaultFontSize),a=this.minSize,r=k.isArray(e.text)?e.text.length:1,o=k.options.toLineHeight(e.lineHeight,i),s=n?r*o+2*e.padding:0;this.isHorizontal()?(a.width=this.maxWidth,a.height=s):(a.width=s,a.height=this.maxHeight),this.width=a.width,this.height=a.height},afterFit:r,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this.ctx,e=k.valueOrDefault,n=this.options,i=_.global;if(n.display){var a,r,o,s=e(n.fontSize,i.defaultFontSize),l=e(n.fontStyle,i.defaultFontStyle),u=e(n.fontFamily,i.defaultFontFamily),d=k.fontString(s,l,u),h=k.options.toLineHeight(n.lineHeight,s),c=h/2+n.padding,f=0,g=this.top,m=this.left,p=this.bottom,v=this.right;t.fillStyle=e(n.fontColor,i.defaultFontColor),t.font=d,this.isHorizontal()?(r=m+(v-m)/2,o=g+c,a=v-m):(r="left"===n.position?m+c:v-c,o=g+(p-g)/2,a=p-g,f=Math.PI*("left"===n.position?-.5:.5)),t.save(),t.translate(r,o),t.rotate(f),t.textAlign="center",t.textBaseline="middle";var b=n.text;if(k.isArray(b))for(var y=0,x=0;x<b.length;++x)t.fillText(b[x],0,y,a),y+=h;else t.fillText(b,0,0,a);t.restore()}}});function s(t,e){var n=new o({ctx:t.ctx,options:e,chart:t});a.configure(t,n,e),a.addBox(t,n),t.titleBlock=n}e.exports={id:"title",_element:o,beforeInit:function(t){var e=t.options.title;e&&s(t,e)},beforeUpdate:function(t){var e=t.options.title,n=t.titleBlock;e?(k.mergeIf(e,_.global.title),n?(a.configure(t,n,e),n.options=e):s(t,e)):n&&(a.removeBox(t,n),delete t.titleBlock)}}},{26:26,27:27,31:31,46:46}],54:[function(t,e,n){"use strict";var i=t(33),a=t(34);e.exports=function(){var t=i.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,n=e.getLabels();e.minIndex=0,e.maxIndex=n.length-1,void 0!==e.options.ticks.min&&(t=n.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=n.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=n[e.minIndex],e.max=n[e.maxIndex]},buildTicks:function(){var t=this.getLabels();this.ticks=0===this.minIndex&&this.maxIndex===t.length-1?t:t.slice(this.minIndex,this.maxIndex+1)},getLabelForIndex:function(t,e){var n=this.chart.data,i=this.isHorizontal();return n.yLabels&&!i?this.getRightValue(n.datasets[e].data[t]):this.ticks[t-this.minIndex]},getPixelForValue:function(t,e){var n,i=this,a=i.options.offset,r=Math.max(i.maxIndex+1-i.minIndex-(a?0:1),1);if(null!=t&&(n=i.isHorizontal()?t.x:t.y),void 0!==n||void 0!==t&&isNaN(e)){t=n||t;var o=i.getLabels().indexOf(t);e=-1!==o?o:e}if(i.isHorizontal()){var s=i.width/r,l=s*(e-i.minIndex);return a&&(l+=s/2),i.left+Math.round(l)}var u=i.height/r,d=u*(e-i.minIndex);return a&&(d+=u/2),i.top+Math.round(d)},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this.options.offset,n=Math.max(this._ticks.length-(e?0:1),1),i=this.isHorizontal(),a=(i?this.width:this.height)/n;return t-=i?this.left:this.top,e&&(t-=a/2),(t<=0?0:Math.round(t/a))+this.minIndex},getBasePixel:function(){return this.bottom}});a.registerScaleType("category",t,{position:"bottom"})}},{33:33,34:34}],55:[function(t,e,n){"use strict";var i=t(26),h=t(46),a=t(34),r=t(35);e.exports=function(t){var e={position:"left",ticks:{callback:r.formatters.linear}},n=t.LinearScaleBase.extend({determineDataLimits:function(){var o=this,s=o.options,l=o.chart,t=l.data.datasets,e=o.isHorizontal();function u(t){return e?t.xAxisID===o.id:t.yAxisID===o.id}o.min=null,o.max=null;var i=s.stacked;if(void 0===i&&h.each(t,function(t,e){if(!i){var n=l.getDatasetMeta(e);l.isDatasetVisible(e)&&u(n)&&void 0!==n.stack&&(i=!0)}}),s.stacked||i){var d={};h.each(t,function(t,e){var i=l.getDatasetMeta(e),n=[i.type,void 0===s.stacked&&void 0===i.stack?e:"",i.stack].join(".");void 0===d[n]&&(d[n]={positiveValues:[],negativeValues:[]});var a=d[n].positiveValues,r=d[n].negativeValues;l.isDatasetVisible(e)&&u(i)&&h.each(t.data,function(t,e){var n=+o.getRightValue(t);isNaN(n)||i.data[e].hidden||(a[e]=a[e]||0,r[e]=r[e]||0,s.relativePoints?a[e]=100:n<0?r[e]+=n:a[e]+=n)})}),h.each(d,function(t){var e=t.positiveValues.concat(t.negativeValues),n=h.min(e),i=h.max(e);o.min=null===o.min?n:Math.min(o.min,n),o.max=null===o.max?i:Math.max(o.max,i)})}else h.each(t,function(t,e){var i=l.getDatasetMeta(e);l.isDatasetVisible(e)&&u(i)&&h.each(t.data,function(t,e){var n=+o.getRightValue(t);isNaN(n)||i.data[e].hidden||(null===o.min?o.min=n:n<o.min&&(o.min=n),null===o.max?o.max=n:n>o.max&&(o.max=n))})});o.min=isFinite(o.min)&&!isNaN(o.min)?o.min:0,o.max=isFinite(o.max)&&!isNaN(o.max)?o.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this.options.ticks;if(this.isHorizontal())t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.width/50));else{var n=h.valueOrDefault(e.fontSize,i.global.defaultFontSize);t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.height/(2*n)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this.start,n=+this.getRightValue(t),i=this.end-e;return this.isHorizontal()?this.left+this.width/i*(n-e):this.bottom-this.height/i*(n-e)},getValueForPixel:function(t){var e=this.isHorizontal(),n=e?this.width:this.height,i=(e?t-this.left:this.bottom-t)/n;return this.start+(this.end-this.start)*i},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});a.registerScaleType("linear",n,e)}},{26:26,34:34,35:35,46:46}],56:[function(t,e,n){"use strict";var h=t(46),i=t(33);e.exports=function(t){var e=h.noop;t.LinearScaleBase=i.extend({getRightValue:function(t){return"string"==typeof t?+t:i.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=h.sign(t.min),i=h.sign(t.max);n<0&&i<0?t.max=0:0<n&&0<i&&(t.min=0)}var a=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),a!==r&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),i={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,precision:e.precision,stepSize:h.valueOrDefault(e.fixedStepSize,e.stepSize)},a=t.ticks=function(t,e){var n,i,a,r=[];if(t.stepSize&&0<t.stepSize)a=t.stepSize;else{var o=h.niceNum(e.max-e.min,!1);a=h.niceNum(o/(t.maxTicks-1),!0),void 0!==(i=t.precision)&&(n=Math.pow(10,i),a=Math.ceil(a*n)/n)}var s=Math.floor(e.min/a)*a,l=Math.ceil(e.max/a)*a;h.isNullOrUndef(t.min)||h.isNullOrUndef(t.max)||!t.stepSize||h.almostWhole((t.max-t.min)/t.stepSize,a/1e3)&&(s=t.min,l=t.max);var u=(l-s)/a;u=h.almostEquals(u,Math.round(u),a/1e3)?Math.round(u):Math.ceil(u),a<(i=1)&&(i=Math.pow(10,1-Math.floor(h.log10(a))),s=Math.round(s*i)/i,l=Math.round(l*i)/i),r.push(void 0!==t.min?t.min:s);for(var d=1;d<u;++d)r.push(Math.round((s+d*a)*i)/i);return r.push(void 0!==t.max?t.max:l),r}(i,t);t.handleDirectionalChanges(),t.max=h.max(a),t.min=h.min(a),e.reverse?(a.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){this.ticksAsNumbers=this.ticks.slice(),this.zeroLineIndex=this.ticks.indexOf(0),i.prototype.convertTicksToLabels.call(this)}})}},{33:33,46:46}],57:[function(t,e,n){"use strict";var c=t(46),i=t(33),a=t(34),r=t(35);e.exports=function(h){var t={position:"left",ticks:{callback:r.formatters.logarithmic}},e=i.extend({determineDataLimits:function(){var o=this,n=o.options,s=o.chart,t=s.data.datasets,e=o.isHorizontal();function l(t){return e?t.xAxisID===o.id:t.yAxisID===o.id}o.min=null,o.max=null,o.minNotZero=null;var i=n.stacked;if(void 0===i&&c.each(t,function(t,e){if(!i){var n=s.getDatasetMeta(e);s.isDatasetVisible(e)&&l(n)&&void 0!==n.stack&&(i=!0)}}),n.stacked||i){var u={};c.each(t,function(t,e){var a=s.getDatasetMeta(e),r=[a.type,void 0===n.stacked&&void 0===a.stack?e:"",a.stack].join(".");s.isDatasetVisible(e)&&l(a)&&(void 0===u[r]&&(u[r]=[]),c.each(t.data,function(t,e){var n=u[r],i=+o.getRightValue(t);isNaN(i)||a.data[e].hidden||i<0||(n[e]=n[e]||0,n[e]+=i)}))}),c.each(u,function(t){if(0<t.length){var e=c.min(t),n=c.max(t);o.min=null===o.min?e:Math.min(o.min,e),o.max=null===o.max?n:Math.max(o.max,n)}})}else c.each(t,function(t,e){var i=s.getDatasetMeta(e);s.isDatasetVisible(e)&&l(i)&&c.each(t.data,function(t,e){var n=+o.getRightValue(t);isNaN(n)||i.data[e].hidden||n<0||(null===o.min?o.min=n:n<o.min&&(o.min=n),null===o.max?o.max=n:n>o.max&&(o.max=n),0!==n&&(null===o.minNotZero||n<o.minNotZero)&&(o.minNotZero=n))})});this.handleTickRangeOptions()},handleTickRangeOptions:function(){var t=this,e=t.options.ticks,n=c.valueOrDefault;t.min=n(e.min,t.min),t.max=n(e.max,t.max),t.min===t.max&&(0!==t.min&&null!==t.min?(t.min=Math.pow(10,Math.floor(c.log10(t.min))-1),t.max=Math.pow(10,Math.floor(c.log10(t.max))+1)):(t.min=1,t.max=10)),null===t.min&&(t.min=Math.pow(10,Math.floor(c.log10(t.max))-1)),null===t.max&&(t.max=0!==t.min?Math.pow(10,Math.floor(c.log10(t.min))+1):10),null===t.minNotZero&&(0<t.min?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(c.log10(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,n=!t.isHorizontal(),i={min:e.min,max:e.max},a=t.ticks=function(t,e){var n,i,a=[],r=c.valueOrDefault,o=r(t.min,Math.pow(10,Math.floor(c.log10(e.min)))),s=Math.floor(c.log10(e.max)),l=Math.ceil(e.max/Math.pow(10,s));0===o?(n=Math.floor(c.log10(e.minNotZero)),i=Math.floor(e.minNotZero/Math.pow(10,n)),a.push(o),o=i*Math.pow(10,n)):(n=Math.floor(c.log10(o)),i=Math.floor(o/Math.pow(10,n)));for(var u=n<0?Math.pow(10,Math.abs(n)):1;a.push(o),10==++i&&(i=1,u=0<=++n?1:u),o=Math.round(i*Math.pow(10,n)*u)/u,n<s||n===s&&i<l;);var d=r(t.max,o);return a.push(d),a}(i,t);t.max=c.max(a),t.min=c.min(a),e.reverse?(n=!n,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),n&&a.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),i.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},_getFirstTickValue:function(t){var e=Math.floor(c.log10(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},getPixelForValue:function(t){var e,n,i,a,r,o=this,s=o.options.ticks.reverse,l=c.log10,u=o._getFirstTickValue(o.minNotZero),d=0;return t=+o.getRightValue(t),r=s?(i=o.end,a=o.start,-1):(i=o.start,a=o.end,1),n=o.isHorizontal()?(e=o.width,s?o.right:o.left):(e=o.height,r*=-1,s?o.top:o.bottom),t!==i&&(0===i&&(e-=d=c.getValueOrDefault(o.options.ticks.fontSize,h.defaults.global.defaultFontSize),i=u),0!==t&&(d+=e/(l(a)-l(i))*(l(t)-l(i))),n+=r*d),n},getValueForPixel:function(t){var e,n,i,a,r=this,o=r.options.ticks.reverse,s=c.log10,l=r._getFirstTickValue(r.minNotZero);if(i=o?(n=r.end,r.start):(n=r.start,r.end),(a=r.isHorizontal()?(e=r.width,o?r.right-t:t-r.left):(e=r.height,o?t-r.top:r.bottom-t))!==n){if(0===n){var u=c.getValueOrDefault(r.options.ticks.fontSize,h.defaults.global.defaultFontSize);a-=u,e-=u,n=l}a*=s(i)-s(n),a/=e,a=Math.pow(10,s(n)+a)}return a}});a.registerScaleType("logarithmic",e,t)}},{33:33,34:34,35:35,46:46}],58:[function(t,e,n){"use strict";var i=t(26),_=t(46),a=t(34),r=t(35);e.exports=function(t){var v=i.global,e={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:r.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function b(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function y(t){var e=t.options.pointLabels,n=_.valueOrDefault(e.fontSize,v.defaultFontSize),i=_.valueOrDefault(e.fontStyle,v.defaultFontStyle),a=_.valueOrDefault(e.fontFamily,v.defaultFontFamily);return{size:n,style:i,family:a,font:_.fontString(n,i,a)}}function p(t,e,n,i,a){return t===i||t===a?{start:e-n/2,end:e+n/2}:t<i||a<t?{start:e-n-5,end:e}:{start:e,end:e+n+5}}function x(t,e,n,i){if(_.isArray(e))for(var a=n.y,r=1.5*i,o=0;o<e.length;++o)t.fillText(e[o],n.x,a),a+=r;else t.fillText(e,n.x,n.y)}function s(t){return _.isNumber(t)?t:0}var n=t.LinearScaleBase.extend({setDimensions:function(){var t=this,e=t.options,n=e.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var i=_.min([t.height,t.width]),a=_.valueOrDefault(n.fontSize,v.defaultFontSize);t.drawingArea=e.display?i/2-(a/2+n.backdropPaddingY):i/2},determineDataLimits:function(){var a=this,n=a.chart,r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY;_.each(n.data.datasets,function(t,e){if(n.isDatasetVisible(e)){var i=n.getDatasetMeta(e);_.each(t.data,function(t,e){var n=+a.getRightValue(t);isNaN(n)||i.data[e].hidden||(r=Math.min(n,r),o=Math.max(n,o))})}}),a.min=r===Number.POSITIVE_INFINITY?0:r,a.max=o===Number.NEGATIVE_INFINITY?0:o,a.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,e=_.valueOrDefault(t.fontSize,v.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*e)))},convertTicksToLabels:function(){t.LinearScaleBase.prototype.convertTicksToLabels.call(this),this.pointLabels=this.chart.data.labels.map(this.options.pointLabels.callback,this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t,e;this.options.pointLabels.display?function(t){var e,n,i,a=y(t),r=Math.min(t.height/2,t.width/2),o={r:t.width,l:0,t:t.height,b:0},s={};t.ctx.font=a.font,t._pointLabelSizes=[];var l,u,d,h=b(t);for(e=0;e<h;e++){i=t.getPointPosition(e,r),l=t.ctx,u=a.size,d=t.pointLabels[e]||"",n=_.isArray(d)?{w:_.longestText(l,l.font,d),h:d.length*u+1.5*(d.length-1)*u}:{w:l.measureText(d).width,h:u},t._pointLabelSizes[e]=n;var c=t.getIndexAngle(e),f=_.toDegrees(c)%360,g=p(f,i.x,n.w,0,180),m=p(f,i.y,n.h,90,270);g.start<o.l&&(o.l=g.start,s.l=c),g.end>o.r&&(o.r=g.end,s.r=c),m.start<o.t&&(o.t=m.start,s.t=c),m.end>o.b&&(o.b=m.end,s.b=c)}t.setReductions(r,o,s)}(this):(t=this,e=Math.min(t.height/2,t.width/2),t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0))},setReductions:function(t,e,n){var i=e.l/Math.sin(n.l),a=Math.max(e.r-this.width,0)/Math.sin(n.r),r=-e.t/Math.cos(n.t),o=-Math.max(e.b-this.height,0)/Math.cos(n.b);i=s(i),a=s(a),r=s(r),o=s(o),this.drawingArea=Math.min(Math.round(t-(i+a)/2),Math.round(t-(r+o)/2)),this.setCenterPoint(i,a,r,o)},setCenterPoint:function(t,e,n,i){var a=this,r=a.width-e-a.drawingArea,o=t+a.drawingArea,s=n+a.drawingArea,l=a.height-i-a.drawingArea;a.xCenter=Math.round((o+r)/2+a.left),a.yCenter=Math.round((s+l)/2+a.top)},getIndexAngle:function(t){return t*(2*Math.PI/b(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){if(null===t)return 0;var e=this.drawingArea/(this.max-this.min);return this.options.ticks.reverse?(this.max-t)*e:(t-this.min)*e},getPointPosition:function(t,e){var n=this.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(n)*e)+this.xCenter,y:Math.round(Math.sin(n)*e)+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:0<t&&0<e?t:0)},draw:function(){var r=this,t=r.options,o=t.gridLines,s=t.ticks,l=_.valueOrDefault;if(t.display){var u=r.ctx,d=this.getIndexAngle(0),h=l(s.fontSize,v.defaultFontSize),e=l(s.fontStyle,v.defaultFontStyle),n=l(s.fontFamily,v.defaultFontFamily),c=_.fontString(h,e,n);_.each(r.ticks,function(t,e){if(0<e||s.reverse){var n=r.getDistanceFromCenterForValue(r.ticksAsNumbers[e]);if(o.display&&0!==e&&function(t,e,n,i){var a=t.ctx;if(a.strokeStyle=_.valueAtIndexOrDefault(e.color,i-1),a.lineWidth=_.valueAtIndexOrDefault(e.lineWidth,i-1),t.options.gridLines.circular)a.beginPath(),a.arc(t.xCenter,t.yCenter,n,0,2*Math.PI),a.closePath(),a.stroke();else{var r=b(t);if(0===r)return;a.beginPath();var o=t.getPointPosition(0,n);a.moveTo(o.x,o.y);for(var s=1;s<r;s++)o=t.getPointPosition(s,n),a.lineTo(o.x,o.y);a.closePath(),a.stroke()}}(r,o,n,e),s.display){var i=l(s.fontColor,v.defaultFontColor);if(u.font=c,u.save(),u.translate(r.xCenter,r.yCenter),u.rotate(d),s.showLabelBackdrop){var a=u.measureText(t).width;u.fillStyle=s.backdropColor,u.fillRect(-a/2-s.backdropPaddingX,-n-h/2-s.backdropPaddingY,a+2*s.backdropPaddingX,h+2*s.backdropPaddingY)}u.textAlign="center",u.textBaseline="middle",u.fillStyle=i,u.fillText(t,0,-n),u.restore()}}}),(t.angleLines.display||t.pointLabels.display)&&function(t){var e=t.ctx,n=t.options,i=n.angleLines,a=n.pointLabels;e.lineWidth=i.lineWidth,e.strokeStyle=i.color;var r,o,s,l,u=t.getDistanceFromCenterForValue(n.ticks.reverse?t.min:t.max),d=y(t);e.textBaseline="top";for(var h=b(t)-1;0<=h;h--){if(i.display){var c=t.getPointPosition(h,u);e.beginPath(),e.moveTo(t.xCenter,t.yCenter),e.lineTo(c.x,c.y),e.stroke(),e.closePath()}if(a.display){var f=t.getPointPosition(h,u+5),g=_.valueAtIndexOrDefault(a.fontColor,h,v.defaultFontColor);e.font=d.font,e.fillStyle=g;var m=t.getIndexAngle(h),p=_.toDegrees(m);e.textAlign=0===(l=p)||180===l?"center":l<180?"left":"right",r=p,o=t._pointLabelSizes[h],s=f,90===r||270===r?s.y-=o.h/2:(270<r||r<90)&&(s.y-=o.h),x(e,t.pointLabels[h]||"",f,d.size)}}}(r)}}});a.registerScaleType("radialLinear",n,e)}},{26:26,34:34,35:35,46:46}],59:[function(t,e,n){"use strict";var y=t(6);y="function"==typeof y?y:window.moment;var o=t(26),p=t(46),i=t(33),a=t(34),m=Number.MIN_SAFE_INTEGER||-9007199254740991,v=Number.MAX_SAFE_INTEGER||9007199254740991,x={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},_=Object.keys(x);function b(t,e){return t-e}function k(t){var e,n,i,a={},r=[];for(e=0,n=t.length;e<n;++e)a[i=t[e]]||(a[i]=!0,r.push(i));return r}function w(t,e,n,i){var a=function(t,e,n){for(var i,a,r,o=0,s=t.length-1;0<=o&&o<=s;){if(a=t[(i=o+s>>1)-1]||null,r=t[i],!a)return{lo:null,hi:r};if(r[e]<n)o=i+1;else{if(!(a[e]>n))return{lo:a,hi:r};s=i-1}}return{lo:r,hi:null}}(t,e,n),r=a.lo?a.hi?a.lo:t[t.length-2]:t[0],o=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=o[e]-r[e],l=s?(n-r[e])/s:0,u=(o[i]-r[i])*l;return r[i]+u}function M(t,e){var n=e.parser,i=e.parser||e.format;return"function"==typeof n?n(t):"string"==typeof t&&"string"==typeof i?y(t,i):(t instanceof y||(t=y(t)),t.isValid()?t:"function"==typeof i?i(t):t)}function S(t,e){if(p.isNullOrUndef(t))return null;var n=e.options.time,i=M(e.getRightValue(t),n);return i.isValid()?(n.round&&i.startOf(n.round),i.valueOf()):null}function D(t){for(var e=_.indexOf(t)+1,n=_.length;e<n;++e)if(x[_[e]].common)return _[e]}function C(t,e,n,i){var a,r=i.time,o=r.unit||function(t,e,n,i){var a,r,o,s=_.length;for(a=_.indexOf(t);a<s-1;++a)if(o=(r=x[_[a]]).steps?r.steps[r.steps.length-1]:v,r.common&&Math.ceil((n-e)/(o*r.size))<=i)return _[a];return _[s-1]}(r.minUnit,t,e,n),s=D(o),l=p.valueOrDefault(r.stepSize,r.unitStepSize),u="week"===o&&r.isoWeekday,d=i.ticks.major.enabled,h=x[o],c=y(t),f=y(e),g=[];for(l||(l=function(t,e,n,i){var a,r,o,s=e-t,l=x[n],u=l.size,d=l.steps;if(!d)return Math.ceil(s/(i*u));for(a=0,r=d.length;a<r&&(o=d[a],!(Math.ceil(s/(u*o))<=i));++a);return o}(t,e,o,n)),u&&(c=c.isoWeekday(u),f=f.isoWeekday(u)),c=c.startOf(u?"day":o),(f=f.startOf(u?"day":o))<e&&f.add(1,o),a=y(c),d&&s&&!u&&!r.round&&(a.startOf(s),a.add(~~((c-a)/(h.size*l))*l,o));a<f;a.add(l,o))g.push(+a);return g.push(+a),g}e.exports=function(){var t=i.extend({initialize:function(){if(!y)throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com");this.mergeTicksOptions(),i.prototype.initialize.call(this)},update:function(){var t=this.options;return t.time&&t.time.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),i.prototype.update.apply(this,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),i.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,n,i,a,r,o=this,s=o.chart,l=o.options.time,u=l.unit||"day",d=v,h=m,c=[],f=[],g=[];for(t=0,n=s.data.labels.length;t<n;++t)g.push(S(s.data.labels[t],o));for(t=0,n=(s.data.datasets||[]).length;t<n;++t)if(s.isDatasetVisible(t))if(a=s.data.datasets[t].data,p.isObject(a[0]))for(f[t]=[],e=0,i=a.length;e<i;++e)r=S(a[e],o),c.push(r),f[t][e]=r;else c.push.apply(c,g),f[t]=g.slice(0);else f[t]=[];g.length&&(g=k(g).sort(b),d=Math.min(d,g[0]),h=Math.max(h,g[g.length-1])),c.length&&(c=k(c).sort(b),d=Math.min(d,c[0]),h=Math.max(h,c[c.length-1])),d=S(l.min,o)||d,h=S(l.max,o)||h,d=d===v?+y().startOf(u):d,h=h===m?+y().endOf(u)+1:h,o.min=Math.min(d,h),o.max=Math.max(d+1,h),o._horizontal=o.isHorizontal(),o._table=[],o._timestamps={data:c,datasets:f,labels:g}},buildTicks:function(){var t,e,n,i,a,r,o,s,l,u,d,h,c=this,f=c.min,g=c.max,m=c.options,p=m.time,v=[],b=[];switch(m.ticks.source){case"data":v=c._timestamps.data;break;case"labels":v=c._timestamps.labels;break;case"auto":default:v=C(f,g,c.getLabelCapacity(f),m)}for("ticks"===m.bounds&&v.length&&(f=v[0],g=v[v.length-1]),f=S(p.min,c)||f,g=S(p.max,c)||g,t=0,e=v.length;t<e;++t)f<=(n=v[t])&&n<=g&&b.push(n);return c.min=f,c.max=g,c._unit=p.unit||function(t,e,n,i){var a,r,o=y.duration(y(i).diff(y(n)));for(a=_.length-1;a>=_.indexOf(e);a--)if(r=_[a],x[r].common&&o.as(r)>=t.length)return r;return _[e?_.indexOf(e):0]}(b,p.minUnit,c.min,c.max),c._majorUnit=D(c._unit),c._table=function(t,e,n,i){if("linear"===i||!t.length)return[{time:e,pos:0},{time:n,pos:1}];var a,r,o,s,l,u=[],d=[e];for(a=0,r=t.length;a<r;++a)e<(s=t[a])&&s<n&&d.push(s);for(d.push(n),a=0,r=d.length;a<r;++a)l=d[a+1],o=d[a-1],s=d[a],void 0!==o&&void 0!==l&&Math.round((l+o)/2)===s||u.push({time:s,pos:a/(r-1)});return u}(c._timestamps.data,f,g,m.distribution),c._offsets=(i=c._table,a=b,r=f,o=g,h=d=0,(s=m).offset&&a.length&&(s.time.min||(l=1<a.length?a[1]:o,u=a[0],d=(w(i,"time",l,"pos")-w(i,"time",u,"pos"))/2),s.time.max||(l=a[a.length-1],u=1<a.length?a[a.length-2]:r,h=(w(i,"time",l,"pos")-w(i,"time",u,"pos"))/2)),{left:d,right:h}),c._labelFormat=function(t,e){var n,i,a,r=t.length;for(n=0;n<r;n++){if(0!==(i=M(t[n],e)).millisecond())return"MMM D, YYYY h:mm:ss.SSS a";0===i.second()&&0===i.minute()&&0===i.hour()||(a=!0)}return a?"MMM D, YYYY h:mm:ss a":"MMM D, YYYY"}(c._timestamps.data,p),function(t,e){var n,i,a,r,o=[];for(n=0,i=t.length;n<i;++n)a=t[n],r=!!e&&a===+y(a).startOf(e),o.push({value:a,major:r});return o}(b,c._majorUnit)},getLabelForIndex:function(t,e){var n=this.chart.data,i=this.options.time,a=n.labels&&t<n.labels.length?n.labels[t]:"",r=n.datasets[e].data[t];return p.isObject(r)&&(a=this.getRightValue(r)),i.tooltipFormat?M(a,i).format(i.tooltipFormat):"string"==typeof a?a:M(a,i).format(this._labelFormat)},tickFormatFunction:function(t,e,n,i){var a=this.options,r=t.valueOf(),o=a.time.displayFormats,s=o[this._unit],l=this._majorUnit,u=o[l],d=t.clone().startOf(l).valueOf(),h=a.ticks.major,c=h.enabled&&l&&u&&r===d,f=t.format(i||(c?u:s)),g=c?h:a.ticks.minor,m=p.valueOrDefault(g.callback,g.userCallback);return m?m(f,e,n):f},convertTicksToLabels:function(t){var e,n,i=[];for(e=0,n=t.length;e<n;++e)i.push(this.tickFormatFunction(y(t[e].value),e,t));return i},getPixelForOffset:function(t){var e=this,n=e._horizontal?e.width:e.height,i=e._horizontal?e.left:e.top,a=w(e._table,"time",t,"pos");return i+n*(e._offsets.left+a)/(e._offsets.left+1+e._offsets.right)},getPixelForValue:function(t,e,n){var i=null;if(void 0!==e&&void 0!==n&&(i=this._timestamps.datasets[n][e]),null===i&&(i=S(t,this)),null!==i)return this.getPixelForOffset(i)},getPixelForTick:function(t){var e=this.getTicks();return 0<=t&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,n=e._horizontal?e.width:e.height,i=e._horizontal?e.left:e.top,a=(n?(t-i)/n:0)*(e._offsets.left+1+e._offsets.left)-e._offsets.right,r=w(e._table,"pos",a,"time");return y(r)},getLabelWidth:function(t){var e=this.options.ticks,n=this.ctx.measureText(t).width,i=p.toRadians(e.maxRotation),a=Math.cos(i),r=Math.sin(i);return n*a+p.valueOrDefault(e.fontSize,o.global.defaultFontSize)*r},getLabelCapacity:function(t){var e=this.options.time.displayFormats.millisecond,n=this.tickFormatFunction(y(t),0,[],e),i=this.getLabelWidth(n),a=this.isHorizontal()?this.width:this.height,r=Math.floor(a/i);return 0<r?r:1}});a.registerScaleType("time",t,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},{26:26,33:33,34:34,46:46,6:6}]},{},[7])(7)});
backend/components/dashboard/appointments/resources/js/Chart.min.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Chart.js
3
+ * http://chartjs.org/
4
+ * Version: 2.7.3
5
+ *
6
+ * Copyright 2018 Chart.js Contributors
7
+ * Released under the MIT license
8
+ * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md
9
+ */
10
+ !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Chart=t()}}(function(){return function o(r,s,l){function u(e,t){if(!s[e]){if(!r[e]){var i="function"==typeof require&&require;if(!t&&i)return i(e,!0);if(d)return d(e,!0);var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}var a=s[e]={exports:{}};r[e][0].call(a.exports,function(t){return u(r[e][1][t]||t)},a,a.exports,o,r,s,l)}return s[e].exports}for(var d="function"==typeof require&&require,t=0;t<l.length;t++)u(l[t]);return u}({1:[function(t,e,i){},{}],2:[function(t,e,i){var o=t(6);function n(t){if(t){var e=[0,0,0],i=1,n=t.match(/^#([a-fA-F0-9]{3})$/i);if(n){n=n[1];for(var a=0;a<e.length;a++)e[a]=parseInt(n[a]+n[a],16)}else if(n=t.match(/^#([a-fA-F0-9]{6})$/i)){n=n[1];for(a=0;a<e.length;a++)e[a]=parseInt(n.slice(2*a,2*a+2),16)}else if(n=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(a=0;a<e.length;a++)e[a]=parseInt(n[a+1]);i=parseFloat(n[4])}else if(n=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(a=0;a<e.length;a++)e[a]=Math.round(2.55*parseFloat(n[a+1]));i=parseFloat(n[4])}else if(n=t.match(/(\w+)/)){if("transparent"==n[1])return[0,0,0,0];if(!(e=o[n[1]]))return}for(a=0;a<e.length;a++)e[a]=d(e[a],0,255);return i=i||0==i?d(i,0,1):1,e[3]=i,e}}function a(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[d(parseInt(e[1]),0,360),d(parseFloat(e[2]),0,100),d(parseFloat(e[3]),0,100),d(isNaN(i)?1:i,0,1)]}}}function r(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[d(parseInt(e[1]),0,360),d(parseFloat(e[2]),0,100),d(parseFloat(e[3]),0,100),d(isNaN(i)?1:i,0,1)]}}}function s(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function l(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function u(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function d(t,e,i){return Math.min(Math.max(e,t),i)}function c(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}e.exports={getRgba:n,getHsla:a,getRgb:function(t){var e=n(t);return e&&e.slice(0,3)},getHsl:function(t){var e=a(t);return e&&e.slice(0,3)},getHwb:r,getAlpha:function(t){var e=n(t);{if(e)return e[3];if(e=a(t))return e[3];if(e=r(t))return e[3]}},hexString:function(t){return"#"+c(t[0])+c(t[1])+c(t[2])},rgbString:function(t,e){if(e<1||t[3]&&t[3]<1)return s(t,e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:s,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return l(t,e);var i=Math.round(t[0]/255*100),n=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+i+"%, "+n+"%, "+a+"%)"},percentaString:l,hslString:function(t,e){if(e<1||t[3]&&t[3]<1)return u(t,e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:u,hwbString:function(t,e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return h[t.slice(0,3)]}};var h={};for(var f in o)h[o[f]]=f},{6:6}],3:[function(t,e,i){var d=t(5),n=t(2),r=function(t){return t instanceof r?t:this instanceof r?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof t?(e=n.getRgba(t))?this.setValues("rgb",e):(e=n.getHsla(t))?this.setValues("hsl",e):(e=n.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new r(t);var e};r.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return n.hexString(this.values.rgb)},rgbString:function(){return n.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return n.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return n.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return n.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return n.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return n.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return n.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],i=0;i<t.length;i++){var n=t[i]/255;e[i]=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),i=t.luminosity();return i<e?(e+.05)/(i+.05):(i+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return 7.1<=e?"AAA":4.5<=e?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,i=(e[0]+t)%360;return e[0]=i<0?360+i:i,this.setValues("hsl",e),this},mix:function(t,e){var i=this,n=t,a=void 0===e?.5:e,o=2*a-1,r=i.alpha()-n.alpha(),s=((o*r==-1?o:(o+r)/(1+o*r))+1)/2,l=1-s;return this.rgb(s*i.red()+l*n.red(),s*i.green()+l*n.green(),s*i.blue()+l*n.blue()).alpha(i.alpha()*a+n.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,i=new r,n=this.values,a=i.values;for(var o in n)n.hasOwnProperty(o)&&(t=n[o],"[object Array]"===(e={}.toString.call(t))?a[o]=t.slice(0):"[object Number]"===e?a[o]=t:console.error("unexpected color value:",t));return i}},r.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},r.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},r.prototype.getValues=function(t){for(var e=this.values,i={},n=0;n<t.length;n++)i[t.charAt(n)]=e[t][n];return 1!==e.alpha&&(i.a=e.alpha),i},r.prototype.setValues=function(t,e){var i,n,a=this.values,o=this.spaces,r=this.maxes,s=1;if(this.valid=!0,"alpha"===t)s=e;else if(e.length)a[t]=e.slice(0,t.length),s=e[t.length];else if(void 0!==e[t.charAt(0)]){for(i=0;i<t.length;i++)a[t][i]=e[t.charAt(i)];s=e.a}else if(void 0!==e[o[t][0]]){var l=o[t];for(i=0;i<t.length;i++)a[t][i]=e[l[i]];s=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void 0===s?a.alpha:s)),"alpha"===t)return!1;for(i=0;i<t.length;i++)n=Math.max(0,Math.min(r[t][i],a[t][i])),a[t][i]=Math.round(n);for(var u in o)u!==t&&(a[u]=d[t][u](a[t]));return!0},r.prototype.setSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i),this)},r.prototype.setChannel=function(t,e,i){var n=this.values[t];return void 0===i?n[e]:(i===n[e]||(n[e]=i,this.setValues(t,n)),this)},"undefined"!=typeof window&&(window.Color=r),e.exports=r},{2:2,5:5}],4:[function(t,e,i){function a(t){var e,i,n=t[0]/255,a=t[1]/255,o=t[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),i=(r+s)/2,[e,100*(s==r?0:i<=.5?l/(s+r):l/(2-s-r)),100*i]}function n(t){var e,i,n=t[0],a=t[1],o=t[2],r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return i=0==s?0:l/s*1e3/10,s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),[e,i,s/255*1e3/10]}function o(t){var e=t[0],i=t[1],n=t[2];return[a(t)[0],100*(1/255*Math.min(e,Math.min(i,n))),100*(n=1-1/255*Math.max(e,Math.max(i,n)))]}function s(t){var e,i=t[0]/255,n=t[1]/255,a=t[2]/255;return[100*((1-i-(e=Math.min(1-i,1-n,1-a)))/(1-e)||0),100*((1-n-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]}function l(t){return S[JSON.stringify(t)]}function u(t){var e=t[0]/255,i=t[1]/255,n=t[2]/255;return[100*(.4124*(e=.04045<e?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(i=.04045<i?Math.pow((i+.055)/1.055,2.4):i/12.92)+.1805*(n=.04045<n?Math.pow((n+.055)/1.055,2.4):n/12.92)),100*(.2126*e+.7152*i+.0722*n),100*(.0193*e+.1192*i+.9505*n)]}function d(t){var e=u(t),i=e[0],n=e[1],a=e[2];return n/=100,a/=108.883,i=.008856<(i/=95.047)?Math.pow(i,1/3):7.787*i+16/116,[116*(n=.008856<n?Math.pow(n,1/3):7.787*n+16/116)-16,500*(i-n),200*(n-(a=.008856<a?Math.pow(a,1/3):7.787*a+16/116))]}function c(t){var e,i,n,a,o,r=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[o=255*l,o,o];e=2*l-(i=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var u=0;u<3;u++)(n=r+1/3*-(u-1))<0&&n++,1<n&&n--,o=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e,a[u]=255*o;return a}function h(t){var e=t[0]/60,i=t[1]/100,n=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*n*(1-i),s=255*n*(1-i*o),l=255*n*(1-i*(1-o));n*=255;switch(a){case 0:return[n,l,r];case 1:return[s,n,r];case 2:return[r,n,l];case 3:return[r,s,n];case 4:return[l,r,n];case 5:return[n,r,s]}}function f(t){var e,i,n,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,u=s+l;switch(1<u&&(s/=u,l/=u),n=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(n=1-n),a=s+n*((i=1-l)-s),e){default:case 6:case 0:r=i,g=a,b=s;break;case 1:r=a,g=i,b=s;break;case 2:r=s,g=i,b=a;break;case 3:r=s,g=a,b=i;break;case 4:r=a,g=s,b=i;break;case 5:r=i,g=s,b=a}return[255*r,255*g,255*b]}function p(t){var e=t[0]/100,i=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function m(t){var e,i,n,a=t[0]/100,o=t[1]/100,r=t[2]/100;return i=-.9689*a+1.8758*o+.0415*r,n=.0557*a+-.204*o+1.057*r,e=.0031308<(e=3.2406*a+-1.5372*o+-.4986*r)?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,i=.0031308<i?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,n=.0031308<n?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1))]}function v(t){var e=t[0],i=t[1],n=t[2];return i/=100,n/=108.883,e=.008856<(e/=95.047)?Math.pow(e,1/3):7.787*e+16/116,[116*(i=.008856<i?Math.pow(i,1/3):7.787*i+16/116)-16,500*(e-i),200*(i-(n=.008856<n?Math.pow(n,1/3):7.787*n+16/116))]}function x(t){var e,i,n,a,o=t[0],r=t[1],s=t[2];return a=o<=8?(i=100*o/903.3)/100*7.787+16/116:(i=100*Math.pow((o+16)/116,3),Math.pow(i/100,1/3)),[e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i,n=n/108.883<=.008859?n=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3)]}function y(t){var e,i=t[0],n=t[1],a=t[2];return(e=360*Math.atan2(a,n)/2/Math.PI)<0&&(e+=360),[i,Math.sqrt(n*n+a*a),e]}function k(t){return m(x(t))}function M(t){var e,i=t[0],n=t[1];return e=t[2]/360*2*Math.PI,[i,n*Math.cos(e),n*Math.sin(e)]}function w(t){return C[t]}e.exports={rgb2hsl:a,rgb2hsv:n,rgb2hwb:o,rgb2cmyk:s,rgb2keyword:l,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return y(d(t))},hsl2rgb:c,hsl2hsv:function(t){var e=t[0],i=t[1]/100,n=t[2]/100;return 0!==n?[e,100*(2*(i*=(n*=2)<=1?n:2-n)/(n+i)),100*((n+i)/2)]:[0,0,0]},hsl2hwb:function(t){return o(c(t))},hsl2cmyk:function(t){return s(c(t))},hsl2keyword:function(t){return l(c(t))},hsv2rgb:h,hsv2hsl:function(t){var e,i,n=t[0],a=t[1]/100,o=t[2]/100;return e=a*o,[n,100*(e=(e/=(i=(2-a)*o)<=1?i:2-i)||0),100*(i/=2)]},hsv2hwb:function(t){return o(h(t))},hsv2cmyk:function(t){return s(h(t))},hsv2keyword:function(t){return l(h(t))},hwb2rgb:f,hwb2hsl:function(t){return a(f(t))},hwb2hsv:function(t){return n(f(t))},hwb2cmyk:function(t){return s(f(t))},hwb2keyword:function(t){return l(f(t))},cmyk2rgb:p,cmyk2hsl:function(t){return a(p(t))},cmyk2hsv:function(t){return n(p(t))},cmyk2hwb:function(t){return o(p(t))},cmyk2keyword:function(t){return l(p(t))},keyword2rgb:w,keyword2hsl:function(t){return a(w(t))},keyword2hsv:function(t){return n(w(t))},keyword2hwb:function(t){return o(w(t))},keyword2cmyk:function(t){return s(w(t))},keyword2lab:function(t){return d(w(t))},keyword2xyz:function(t){return u(w(t))},xyz2rgb:m,xyz2lab:v,xyz2lch:function(t){return y(v(t))},lab2xyz:x,lab2rgb:k,lab2lch:y,lch2lab:M,lch2xyz:function(t){return x(M(t))},lch2rgb:function(t){return k(M(t))}};var C={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},S={};for(var _ in C)S[JSON.stringify(C[_])]=_},{}],5:[function(t,e,i){var a=t(4),o=function(){return new u};for(var n in a){o[n+"Raw"]=function(e){return function(t){return"number"==typeof t&&(t=Array.prototype.slice.call(arguments)),a[e](t)}}(n);var r=/(\w+)2(\w+)/.exec(n),s=r[1],l=r[2];(o[s]=o[s]||{})[l]=o[n]=function(n){return function(t){"number"==typeof t&&(t=Array.prototype.slice.call(arguments));var e=a[n](t);if("string"==typeof e||void 0===e)return e;for(var i=0;i<e.length;i++)e[i]=Math.round(e[i]);return e}}(n)}var u=function(){this.convs={}};u.prototype.routeSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i))},u.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},u.prototype.getValues=function(t){var e=this.convs[t];if(!e){var i=this.space,n=this.convs[i];e=o[i][t](n),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(e){u.prototype[e]=function(t){return this.routeSpace(e,arguments)}}),e.exports=o},{4:4}],6:[function(t,e,i){"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],7:[function(t,e,i){var n=t(30)();n.helpers=t(46),t(28)(n),n.Animation=t(22),n.animationService=t(23),n.defaults=t(26),n.Element=t(27),n.elements=t(41),n.Interaction=t(29),n.layouts=t(31),n.platform=t(49),n.plugins=t(32),n.Scale=t(33),n.scaleService=t(34),n.Ticks=t(35),n.Tooltip=t(36),t(24)(n),t(25)(n),t(56)(n),t(54)(n),t(55)(n),t(57)(n),t(58)(n),t(59)(n),t(15)(n),t(16)(n),t(17)(n),t(18)(n),t(19)(n),t(20)(n),t(21)(n),t(8)(n),t(9)(n),t(10)(n),t(11)(n),t(12)(n),t(13)(n),t(14)(n);var a=t(50);for(var o in a)a.hasOwnProperty(o)&&n.plugins.register(a[o]);n.platform.initialize(),e.exports=n,"undefined"!=typeof window&&(window.Chart=n),n.Legend=a.legend._element,n.Title=a.title._element,n.pluginService=n.plugins,n.PluginBase=n.Element.extend({}),n.canvasHelpers=n.helpers.canvas,n.layoutService=n.layouts},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,34:34,35:35,36:36,41:41,46:46,49:49,50:50,54:54,55:55,56:56,57:57,58:58,59:59,8:8,9:9}],8:[function(t,e,i){"use strict";e.exports=function(i){i.Bar=function(t,e){return e.type="bar",new i(t,e)}}},{}],9:[function(t,e,i){"use strict";e.exports=function(i){i.Bubble=function(t,e){return e.type="bubble",new i(t,e)}}},{}],10:[function(t,e,i){"use strict";e.exports=function(i){i.Doughnut=function(t,e){return e.type="doughnut",new i(t,e)}}},{}],11:[function(t,e,i){"use strict";e.exports=function(i){i.Line=function(t,e){return e.type="line",new i(t,e)}}},{}],12:[function(t,e,i){"use strict";e.exports=function(i){i.PolarArea=function(t,e){return e.type="polarArea",new i(t,e)}}},{}],13:[function(t,e,i){"use strict";e.exports=function(i){i.Radar=function(t,e){return e.type="radar",new i(t,e)}}},{}],14:[function(t,e,i){"use strict";e.exports=function(i){i.Scatter=function(t,e){return e.type="scatter",new i(t,e)}}},{}],15:[function(t,e,i){"use strict";var n=t(26),a=t(41),S=t(46);n._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),n._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var i="";return 0<t.length&&(t[0].yLabel?i=t[0].yLabel:0<e.labels.length&&t[0].index<e.labels.length&&(i=e.labels[t[0].index])),i},label:function(t,e){return(e.datasets[t.datasetIndex].label||"")+": "+t.xLabel}},mode:"index",axis:"y"}}),e.exports=function(e){e.controllers.bar=e.DatasetController.extend({dataElementType:a.Rectangle,initialize:function(){var t;e.DatasetController.prototype.initialize.apply(this,arguments),(t=this.getMeta()).stack=this.getDataset().stack,t.bar=!0},update:function(t){var e,i,n=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,i=n.length;e<i;++e)this.updateElement(n[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.chart,o=n.getMeta(),r=n.getDataset(),s=t.custom||{},l=a.options.elements.rectangle;t._xScale=n.getScaleForId(o.xAxisID),t._yScale=n.getScaleForId(o.yAxisID),t._datasetIndex=n.index,t._index=e,t._model={datasetLabel:r.label,label:a.data.labels[e],borderSkipped:s.borderSkipped?s.borderSkipped:l.borderSkipped,backgroundColor:s.backgroundColor?s.backgroundColor:S.valueAtIndexOrDefault(r.backgroundColor,e,l.backgroundColor),borderColor:s.borderColor?s.borderColor:S.valueAtIndexOrDefault(r.borderColor,e,l.borderColor),borderWidth:s.borderWidth?s.borderWidth:S.valueAtIndexOrDefault(r.borderWidth,e,l.borderWidth)},n.updateElementGeometry(t,e,i),t.pivot()},updateElementGeometry:function(t,e,i){var n=this,a=t._model,o=n.getValueScale(),r=o.getBasePixel(),s=o.isHorizontal(),l=n._ruler||n.getRuler(),u=n.calculateBarValuePixels(n.index,e),d=n.calculateBarIndexPixels(n.index,e,l);a.horizontal=s,a.base=i?r:u.base,a.x=s?i?r:u.head:d.center,a.y=s?d.center:i?r:u.head,a.height=s?d.size:void 0,a.width=s?void 0:d.size},getValueScaleId:function(){return this.getMeta().yAxisID},getIndexScaleId:function(){return this.getMeta().xAxisID},getValueScale:function(){return this.getScaleForId(this.getValueScaleId())},getIndexScale:function(){return this.getScaleForId(this.getIndexScaleId())},_getStacks:function(t){var e,i,n=this.chart,a=this.getIndexScale().options.stacked,o=void 0===t?n.data.datasets.length:t+1,r=[];for(e=0;e<o;++e)(i=n.getDatasetMeta(e)).bar&&n.isDatasetVisible(e)&&(!1===a||!0===a&&-1===r.indexOf(i.stack)||void 0===a&&(void 0===i.stack||-1===r.indexOf(i.stack)))&&r.push(i.stack);return r},getStackCount:function(){return this._getStacks().length},getStackIndex:function(t,e){var i=this._getStacks(t),n=void 0!==e?i.indexOf(e):-1;return-1===n?i.length-1:n},getRuler:function(){var t,e,i=this.getIndexScale(),n=this.getStackCount(),a=this.index,o=i.isHorizontal(),r=o?i.left:i.top,s=r+(o?i.width:i.height),l=[];for(t=0,e=this.getMeta().data.length;t<e;++t)l.push(i.getPixelForValue(null,t,a));return{min:S.isNullOrUndef(i.options.barThickness)?function(t,e){var i,n,a,o,r=t.isHorizontal()?t.width:t.height,s=t.getTicks();for(a=1,o=e.length;a<o;++a)r=Math.min(r,e[a]-e[a-1]);for(a=0,o=s.length;a<o;++a)n=t.getPixelForTick(a),r=0<a?Math.min(r,n-i):r,i=n;return r}(i,l):-1,pixels:l,start:r,end:s,stackCount:n,scale:i}},calculateBarValuePixels:function(t,e){var i,n,a,o,r,s,l=this.chart,u=this.getMeta(),d=this.getValueScale(),c=l.data.datasets,h=d.getRightValue(c[t].data[e]),f=d.options.stacked,g=u.stack,p=0;if(f||void 0===f&&void 0!==g)for(i=0;i<t;++i)(n=l.getDatasetMeta(i)).bar&&n.stack===g&&n.controller.getValueScaleId()===d.id&&l.isDatasetVisible(i)&&(a=d.getRightValue(c[i].data[e]),(h<0&&a<0||0<=h&&0<a)&&(p+=a));return o=d.getPixelForValue(p),{size:s=((r=d.getPixelForValue(p+h))-o)/2,base:o,head:r,center:r+s/2}},calculateBarIndexPixels:function(t,e,i){var n,a,o,r,s,l,u,d,c,h,f,g,p,m,v,b,x,y=i.scale.options,k="flex"===y.barThickness?(c=e,f=y,p=(h=i).pixels,m=p[c],v=0<c?p[c-1]:null,b=c<p.length-1?p[c+1]:null,x=f.categoryPercentage,null===v&&(v=m-(null===b?h.end-m:b-m)),null===b&&(b=m+m-v),g=m-(m-v)/2*x,{chunk:(b-v)/2*x/h.stackCount,ratio:f.barPercentage,start:g}):(n=e,a=i,l=(o=y).barThickness,u=a.stackCount,d=a.pixels[n],s=S.isNullOrUndef(l)?(r=a.min*o.categoryPercentage,o.barPercentage):(r=l*u,1),{chunk:r/u,ratio:s,start:d-r/2}),M=this.getStackIndex(t,this.getMeta().stack),w=k.start+k.chunk*M+k.chunk/2,C=Math.min(S.valueOrDefault(y.maxBarThickness,1/0),k.chunk*k.ratio);return{base:w-C/2,head:w+C/2,center:w,size:C}},draw:function(){var t=this.chart,e=this.getValueScale(),i=this.getMeta().data,n=this.getDataset(),a=i.length,o=0;for(S.canvas.clipArea(t.ctx,t.chartArea);o<a;++o)isNaN(e.getRightValue(n.data[o]))||i[o].draw();S.canvas.unclipArea(t.ctx)}}),e.controllers.horizontalBar=e.controllers.bar.extend({getValueScaleId:function(){return this.getMeta().xAxisID},getIndexScaleId:function(){return this.getMeta().yAxisID}})}},{26:26,41:41,46:46}],16:[function(t,e,i){"use strict";var n=t(26),a=t(41),g=t(46);n._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.datasets[t.datasetIndex].label||"",n=e.datasets[t.datasetIndex].data[t.index];return i+": ("+t.xLabel+", "+t.yLabel+", "+n.r+")"}}}}),e.exports=function(t){t.controllers.bubble=t.DatasetController.extend({dataElementType:a.Point,update:function(i){var n=this,t=n.getMeta().data;g.each(t,function(t,e){n.updateElement(t,e,i)})},updateElement:function(t,e,i){var n=this,a=n.getMeta(),o=t.custom||{},r=n.getScaleForId(a.xAxisID),s=n.getScaleForId(a.yAxisID),l=n._resolveElementOptions(t,e),u=n.getDataset().data[e],d=n.index,c=i?r.getPixelForDecimal(.5):r.getPixelForValue("object"==typeof u?u:NaN,e,d),h=i?s.getBasePixel():s.getPixelForValue(u,e,d);t._xScale=r,t._yScale=s,t._options=l,t._datasetIndex=d,t._index=e,t._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,rotation:l.rotation,radius:i?0:l.radius,skip:o.skip||isNaN(c)||isNaN(h),x:c,y:h},t.pivot()},setHoverStyle:function(t){var e=t._model,i=t._options;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=g.valueOrDefault(i.hoverBackgroundColor,g.getHoverColor(i.backgroundColor)),e.borderColor=g.valueOrDefault(i.hoverBorderColor,g.getHoverColor(i.borderColor)),e.borderWidth=g.valueOrDefault(i.hoverBorderWidth,i.borderWidth),e.radius=i.radius+i.hoverRadius},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,u=g.options.resolve,d=r.data[e],c={},h={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},f=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"];for(i=0,n=f.length;i<n;++i)c[a=f[i]]=u([s[a],r[a],l[a]],h,e);return c.radius=u([s.radius,d?d.r:void 0,r.radius,l.radius],h,e),c}})}},{26:26,41:41,46:46}],17:[function(t,e,i){"use strict";var n=t(26),a=t(41),A=t(46);n._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(l){var u=l.data;return u.labels.length&&u.datasets.length?u.labels.map(function(t,e){var i=l.getDatasetMeta(0),n=u.datasets[0],a=i.data[e],o=a&&a.custom||{},r=A.valueAtIndexOrDefault,s=l.options.elements.arc;return{text:t,fillStyle:o.backgroundColor?o.backgroundColor:r(n.backgroundColor,e,s.backgroundColor),strokeStyle:o.borderColor?o.borderColor:r(n.borderColor,e,s.borderColor),lineWidth:o.borderWidth?o.borderWidth:r(n.borderWidth,e,s.borderWidth),hidden:isNaN(n.data[e])||i.data[e].hidden,index:e}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o]&&(a.data[o].hidden=!a.data[o].hidden);r.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.labels[t.index],n=": "+e.datasets[t.datasetIndex].data[t.index];return A.isArray(i)?(i=i.slice())[0]+=n:i+=n,i}}}}),n._set("pie",A.clone(n.doughnut)),n._set("pie",{cutoutPercentage:0}),e.exports=function(t){t.controllers.doughnut=t.controllers.pie=t.DatasetController.extend({dataElementType:a.Arc,linkScales:A.noop,getRingIndex:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&++e;return e},update:function(i){var n=this,t=n.chart,e=t.chartArea,a=t.options,o=a.elements.arc,r=e.right-e.left-o.borderWidth,s=e.bottom-e.top-o.borderWidth,l=Math.min(r,s),u={x:0,y:0},d=n.getMeta(),c=a.cutoutPercentage,h=a.circumference;if(h<2*Math.PI){var f=a.rotation%(2*Math.PI),g=(f+=2*Math.PI*(f>=Math.PI?-1:f<-Math.PI?1:0))+h,p=Math.cos(f),m=Math.sin(f),v=Math.cos(g),b=Math.sin(g),x=f<=0&&0<=g||f<=2*Math.PI&&2*Math.PI<=g,y=f<=.5*Math.PI&&.5*Math.PI<=g||f<=2.5*Math.PI&&2.5*Math.PI<=g,k=f<=-Math.PI&&-Math.PI<=g||f<=Math.PI&&Math.PI<=g,M=f<=.5*-Math.PI&&.5*-Math.PI<=g||f<=1.5*Math.PI&&1.5*Math.PI<=g,w=c/100,C=k?-1:Math.min(p*(p<0?1:w),v*(v<0?1:w)),S=M?-1:Math.min(m*(m<0?1:w),b*(b<0?1:w)),_=x?1:Math.max(p*(0<p?1:w),v*(0<v?1:w)),D=y?1:Math.max(m*(0<m?1:w),b*(0<b?1:w)),P=.5*(_-C),I=.5*(D-S);l=Math.min(r/P,s/I),u={x:-.5*(_+C),y:-.5*(D+S)}}t.borderWidth=n.getMaxBorderWidth(d.data),t.outerRadius=Math.max((l-t.borderWidth)/2,0),t.innerRadius=Math.max(c?t.outerRadius/100*c:0,0),t.radiusLength=(t.outerRadius-t.innerRadius)/t.getVisibleDatasetCount(),t.offsetX=u.x*t.outerRadius,t.offsetY=u.y*t.outerRadius,d.total=n.calculateTotal(),n.outerRadius=t.outerRadius-t.radiusLength*n.getRingIndex(n.index),n.innerRadius=Math.max(n.outerRadius-t.radiusLength,0),A.each(d.data,function(t,e){n.updateElement(t,e,i)})},updateElement:function(t,e,i){var n=this,a=n.chart,o=a.chartArea,r=a.options,s=r.animation,l=(o.left+o.right)/2,u=(o.top+o.bottom)/2,d=r.rotation,c=r.rotation,h=n.getDataset(),f=i&&s.animateRotate?0:t.hidden?0:n.calculateCircumference(h.data[e])*(r.circumference/(2*Math.PI)),g=i&&s.animateScale?0:n.innerRadius,p=i&&s.animateScale?0:n.outerRadius,m=A.valueAtIndexOrDefault;A.extend(t,{_datasetIndex:n.index,_index:e,_model:{x:l+a.offsetX,y:u+a.offsetY,startAngle:d,endAngle:c,circumference:f,outerRadius:p,innerRadius:g,label:m(h.label,e,a.data.labels[e])}});var v=t._model,b=t.custom||{},x=A.valueAtIndexOrDefault,y=this.chart.options.elements.arc;v.backgroundColor=b.backgroundColor?b.backgroundColor:x(h.backgroundColor,e,y.backgroundColor),v.borderColor=b.borderColor?b.borderColor:x(h.borderColor,e,y.borderColor),v.borderWidth=b.borderWidth?b.borderWidth:x(h.borderWidth,e,y.borderWidth),i&&s.animateRotate||(v.startAngle=0===e?r.rotation:n.getMeta().data[e-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),t.pivot()},calculateTotal:function(){var i,n=this.getDataset(),t=this.getMeta(),a=0;return A.each(t.data,function(t,e){i=n.data[e],isNaN(i)||t.hidden||(a+=Math.abs(i))}),a},calculateCircumference:function(t){var e=this.getMeta().total;return 0<e&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){for(var e,i,n=0,a=this.index,o=t.length,r=0;r<o;r++)n=(n=n<(e=t[r]._model?t[r]._model.borderWidth:0)?e:n)<(i=t[r]._chart?t[r]._chart.config.data.datasets[a].hoverBorderWidth:0)?i:n;return n}})}},{26:26,41:41,46:46}],18:[function(t,e,i){"use strict";var n=t(26),a=t(41),g=t(46);n._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),e.exports=function(t){function f(t,e){return g.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var e,i,n,a=this,o=a.getMeta(),r=o.dataset,s=o.data||[],l=a.chart.options,u=l.elements.line,d=a.getScaleForId(o.yAxisID),c=a.getDataset(),h=f(c,l);for(h&&(n=r.custom||{},void 0!==c.tension&&void 0===c.lineTension&&(c.lineTension=c.tension),r._scale=d,r._datasetIndex=a.index,r._children=s,r._model={spanGaps:c.spanGaps?c.spanGaps:l.spanGaps,tension:n.tension?n.tension:g.valueOrDefault(c.lineTension,u.tension),backgroundColor:n.backgroundColor?n.backgroundColor:c.backgroundColor||u.backgroundColor,borderWidth:n.borderWidth?n.borderWidth:c.borderWidth||u.borderWidth,borderColor:n.borderColor?n.borderColor:c.borderColor||u.borderColor,borderCapStyle:n.borderCapStyle?n.borderCapStyle:c.borderCapStyle||u.borderCapStyle,borderDash:n.borderDash?n.borderDash:c.borderDash||u.borderDash,borderDashOffset:n.borderDashOffset?n.borderDashOffset:c.borderDashOffset||u.borderDashOffset,borderJoinStyle:n.borderJoinStyle?n.borderJoinStyle:c.borderJoinStyle||u.borderJoinStyle,fill:n.fill?n.fill:void 0!==c.fill?c.fill:u.fill,steppedLine:n.steppedLine?n.steppedLine:g.valueOrDefault(c.steppedLine,u.stepped),cubicInterpolationMode:n.cubicInterpolationMode?n.cubicInterpolationMode:g.valueOrDefault(c.cubicInterpolationMode,u.cubicInterpolationMode)},r.pivot()),e=0,i=s.length;e<i;++e)a.updateElement(s[e],e,t);for(h&&0!==r._model.tension&&a.updateBezierControlPoints(),e=0,i=s.length;e<i;++e)s[e].pivot()},getPointBackgroundColor:function(t,e){var i=this.chart.options.elements.point.backgroundColor,n=this.getDataset(),a=t.custom||{};return a.backgroundColor?i=a.backgroundColor:n.pointBackgroundColor?i=g.valueAtIndexOrDefault(n.pointBackgroundColor,e,i):n.backgroundColor&&(i=n.backgroundColor),i},getPointBorderColor:function(t,e){var i=this.chart.options.elements.point.borderColor,n=this.getDataset(),a=t.custom||{};return a.borderColor?i=a.borderColor:n.pointBorderColor?i=g.valueAtIndexOrDefault(n.pointBorderColor,e,i):n.borderColor&&(i=n.borderColor),i},getPointBorderWidth:function(t,e){var i=this.chart.options.elements.point.borderWidth,n=this.getDataset(),a=t.custom||{};return isNaN(a.borderWidth)?!isNaN(n.pointBorderWidth)||g.isArray(n.pointBorderWidth)?i=g.valueAtIndexOrDefault(n.pointBorderWidth,e,i):isNaN(n.borderWidth)||(i=n.borderWidth):i=a.borderWidth,i},getPointRotation:function(t,e){var i=this.chart.options.elements.point.rotation,n=this.getDataset(),a=t.custom||{};return isNaN(a.rotation)?isNaN(n.pointRotation)&&!g.isArray(n.pointRotation)||(i=g.valueAtIndexOrDefault(n.pointRotation,e,i)):i=a.rotation,i},updateElement:function(t,e,i){var n,a,o=this,r=o.getMeta(),s=t.custom||{},l=o.getDataset(),u=o.index,d=l.data[e],c=o.getScaleForId(r.yAxisID),h=o.getScaleForId(r.xAxisID),f=o.chart.options.elements.point;void 0!==l.radius&&void 0===l.pointRadius&&(l.pointRadius=l.radius),void 0!==l.hitRadius&&void 0===l.pointHitRadius&&(l.pointHitRadius=l.hitRadius),n=h.getPixelForValue("object"==typeof d?d:NaN,e,u),a=i?c.getBasePixel():o.calculatePointY(d,e,u),t._xScale=h,t._yScale=c,t._datasetIndex=u,t._index=e,t._model={x:n,y:a,skip:s.skip||isNaN(n)||isNaN(a),radius:s.radius||g.valueAtIndexOrDefault(l.pointRadius,e,f.radius),pointStyle:s.pointStyle||g.valueAtIndexOrDefault(l.pointStyle,e,f.pointStyle),rotation:o.getPointRotation(t,e),backgroundColor:o.getPointBackgroundColor(t,e),borderColor:o.getPointBorderColor(t,e),borderWidth:o.getPointBorderWidth(t,e),tension:r.dataset._model?r.dataset._model.tension:0,steppedLine:!!r.dataset._model&&r.dataset._model.steppedLine,hitRadius:s.hitRadius||g.valueAtIndexOrDefault(l.pointHitRadius,e,f.hitRadius)}},calculatePointY:function(t,e,i){var n,a,o,r=this.chart,s=this.getMeta(),l=this.getScaleForId(s.yAxisID),u=0,d=0;if(l.options.stacked){for(n=0;n<i;n++)if(a=r.data.datasets[n],"line"===(o=r.getDatasetMeta(n)).type&&o.yAxisID===l.id&&r.isDatasetVisible(n)){var c=Number(l.getRightValue(a.data[e]));c<0?d+=c||0:u+=c||0}var h=Number(l.getRightValue(t));return h<0?l.getPixelForValue(d+h):l.getPixelForValue(u+h)}return l.getPixelForValue(t)},updateBezierControlPoints:function(){var t,e,i,n,a=this.getMeta(),o=this.chart.chartArea,r=a.data||[];function s(t,e,i){return Math.max(Math.min(t,i),e)}if(a.dataset._model.spanGaps&&(r=r.filter(function(t){return!t._model.skip})),"monotone"===a.dataset._model.cubicInterpolationMode)g.splineCurveMonotone(r);else for(t=0,e=r.length;t<e;++t)i=r[t]._model,n=g.splineCurve(g.previousItem(r,t)._model,i,g.nextItem(r,t)._model,a.dataset._model.tension),i.controlPointPreviousX=n.previous.x,i.controlPointPreviousY=n.previous.y,i.controlPointNextX=n.next.x,i.controlPointNextY=n.next.y;if(this.chart.options.elements.line.capBezierPoints)for(t=0,e=r.length;t<e;++t)(i=r[t]._model).controlPointPreviousX=s(i.controlPointPreviousX,o.left,o.right),i.controlPointPreviousY=s(i.controlPointPreviousY,o.top,o.bottom),i.controlPointNextX=s(i.controlPointNextX,o.left,o.right),i.controlPointNextY=s(i.controlPointNextY,o.top,o.bottom)},draw:function(){var t,e=this.chart,i=this.getMeta(),n=i.data||[],a=e.chartArea,o=n.length,r=0;for(f(this.getDataset(),e.options)&&(t=(i.dataset._model.borderWidth||0)/2,g.canvas.clipArea(e.ctx,{left:a.left,right:a.right,top:a.top-t,bottom:a.bottom+t}),i.dataset.draw(),g.canvas.unclipArea(e.ctx));r<o;++r)n[r].draw(a)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},a=t._model;t.$previousStyle={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderWidth:a.borderWidth,radius:a.radius},a.backgroundColor=n.hoverBackgroundColor||g.valueAtIndexOrDefault(e.pointHoverBackgroundColor,i,g.getHoverColor(a.backgroundColor)),a.borderColor=n.hoverBorderColor||g.valueAtIndexOrDefault(e.pointHoverBorderColor,i,g.getHoverColor(a.borderColor)),a.borderWidth=n.hoverBorderWidth||g.valueAtIndexOrDefault(e.pointHoverBorderWidth,i,a.borderWidth),a.radius=n.hoverRadius||g.valueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius)}})}},{26:26,41:41,46:46}],19:[function(t,e,i){"use strict";var n=t(26),a=t(41),k=t(46);n._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(s){var l=s.data;return l.labels.length&&l.datasets.length?l.labels.map(function(t,e){var i=s.getDatasetMeta(0),n=l.datasets[0],a=i.data[e].custom||{},o=k.valueAtIndexOrDefault,r=s.options.elements.arc;return{text:t,fillStyle:a.backgroundColor?a.backgroundColor:o(n.backgroundColor,e,r.backgroundColor),strokeStyle:a.borderColor?a.borderColor:o(n.borderColor,e,r.borderColor),lineWidth:a.borderWidth?a.borderWidth:o(n.borderWidth,e,r.borderWidth),hidden:isNaN(n.data[e])||i.data[e].hidden,index:e}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o].hidden=!a.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}}),e.exports=function(t){t.controllers.polarArea=t.DatasetController.extend({dataElementType:a.Arc,linkScales:k.noop,update:function(i){var t,e,n,a=this,o=a.getDataset(),r=a.getMeta(),s=a.chart.options.startAngle||0,l=a._starts=[],u=a._angles=[];for(a._updateRadius(),r.count=a.countVisibleElements(),t=0,e=o.data.length;t<e;t++)l[t]=s,n=a._computeAngle(t),s+=u[t]=n;k.each(r.data,function(t,e){a.updateElement(t,e,i)})},_updateRadius:function(){var t=this,e=t.chart,i=e.chartArea,n=e.options,a=n.elements.arc,o=Math.min(i.right-i.left,i.bottom-i.top);e.outerRadius=Math.max((o-a.borderWidth/2)/2,0),e.innerRadius=Math.max(n.cutoutPercentage?e.outerRadius/100*n.cutoutPercentage:1,0),e.radiusLength=(e.outerRadius-e.innerRadius)/e.getVisibleDatasetCount(),t.outerRadius=e.outerRadius-e.radiusLength*t.index,t.innerRadius=t.outerRadius-e.radiusLength},updateElement:function(t,e,i){var n=this,a=n.chart,o=n.getDataset(),r=a.options,s=r.animation,l=a.scale,u=a.data.labels,d=l.xCenter,c=l.yCenter,h=r.startAngle,f=t.hidden?0:l.getDistanceFromCenterForValue(o.data[e]),g=n._starts[e],p=g+(t.hidden?0:n._angles[e]),m=s.animateScale?0:l.getDistanceFromCenterForValue(o.data[e]);k.extend(t,{_datasetIndex:n.index,_index:e,_scale:l,_model:{x:d,y:c,innerRadius:0,outerRadius:i?m:f,startAngle:i&&s.animateRotate?h:g,endAngle:i&&s.animateRotate?h:p,label:k.valueAtIndexOrDefault(u,e,u[e])}});var v=this.chart.options.elements.arc,b=t.custom||{},x=k.valueAtIndexOrDefault,y=t._model;y.backgroundColor=b.backgroundColor?b.backgroundColor:x(o.backgroundColor,e,v.backgroundColor),y.borderColor=b.borderColor?b.borderColor:x(o.borderColor,e,v.borderColor),y.borderWidth=b.borderWidth?b.borderWidth:x(o.borderWidth,e,v.borderWidth),t.pivot()},countVisibleElements:function(){var i=this.getDataset(),t=this.getMeta(),n=0;return k.each(t.data,function(t,e){isNaN(i.data[e])||t.hidden||n++}),n},_computeAngle:function(t){var e=this,i=this.getMeta().count,n=e.getDataset(),a=e.getMeta();if(isNaN(n.data[t])||a.data[t].hidden)return 0;var o={chart:e.chart,dataIndex:t,dataset:n,datasetIndex:e.index};return k.options.resolve([e.chart.options.elements.arc.angle,2*Math.PI/i],o,t)}})}},{26:26,41:41,46:46}],20:[function(t,e,i){"use strict";var n=t(26),a=t(41),u=t(46);n._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:u.noop,update:function(i){var n=this,t=n.getMeta(),e=t.dataset,a=t.data,o=e.custom||{},r=n.getDataset(),s=n.chart.options.elements.line,l=n.chart.scale;void 0!==r.tension&&void 0===r.lineTension&&(r.lineTension=r.tension),u.extend(t.dataset,{_datasetIndex:n.index,_scale:l,_children:a,_loop:!0,_model:{tension:o.tension?o.tension:u.valueOrDefault(r.lineTension,s.tension),backgroundColor:o.backgroundColor?o.backgroundColor:r.backgroundColor||s.backgroundColor,borderWidth:o.borderWidth?o.borderWidth:r.borderWidth||s.borderWidth,borderColor:o.borderColor?o.borderColor:r.borderColor||s.borderColor,fill:o.fill?o.fill:void 0!==r.fill?r.fill:s.fill,borderCapStyle:o.borderCapStyle?o.borderCapStyle:r.borderCapStyle||s.borderCapStyle,borderDash:o.borderDash?o.borderDash:r.borderDash||s.borderDash,borderDashOffset:o.borderDashOffset?o.borderDashOffset:r.borderDashOffset||s.borderDashOffset,borderJoinStyle:o.borderJoinStyle?o.borderJoinStyle:r.borderJoinStyle||s.borderJoinStyle}}),t.dataset.pivot(),u.each(a,function(t,e){n.updateElement(t,e,i)},n),n.updateBezierControlPoints()},updateElement:function(t,e,i){var n=this,a=t.custom||{},o=n.getDataset(),r=n.chart.scale,s=n.chart.options.elements.point,l=r.getPointPositionForValue(e,o.data[e]);void 0!==o.radius&&void 0===o.pointRadius&&(o.pointRadius=o.radius),void 0!==o.hitRadius&&void 0===o.pointHitRadius&&(o.pointHitRadius=o.hitRadius),u.extend(t,{_datasetIndex:n.index,_index:e,_scale:r,_model:{x:i?r.xCenter:l.x,y:i?r.yCenter:l.y,tension:a.tension?a.tension:u.valueOrDefault(o.lineTension,n.chart.options.elements.line.tension),radius:a.radius?a.radius:u.valueAtIndexOrDefault(o.pointRadius,e,s.radius),backgroundColor:a.backgroundColor?a.backgroundColor:u.valueAtIndexOrDefault(o.pointBackgroundColor,e,s.backgroundColor),borderColor:a.borderColor?a.borderColor:u.valueAtIndexOrDefault(o.pointBorderColor,e,s.borderColor),borderWidth:a.borderWidth?a.borderWidth:u.valueAtIndexOrDefault(o.pointBorderWidth,e,s.borderWidth),pointStyle:a.pointStyle?a.pointStyle:u.valueAtIndexOrDefault(o.pointStyle,e,s.pointStyle),rotation:a.rotation?a.rotation:u.valueAtIndexOrDefault(o.pointRotation,e,s.rotation),hitRadius:a.hitRadius?a.hitRadius:u.valueAtIndexOrDefault(o.pointHitRadius,e,s.hitRadius)}}),t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var a=this.chart.chartArea,o=this.getMeta();u.each(o.data,function(t,e){var i=t._model,n=u.splineCurve(u.previousItem(o.data,e,!0)._model,i,u.nextItem(o.data,e,!0)._model,i.tension);i.controlPointPreviousX=Math.max(Math.min(n.previous.x,a.right),a.left),i.controlPointPreviousY=Math.max(Math.min(n.previous.y,a.bottom),a.top),i.controlPointNextX=Math.max(Math.min(n.next.x,a.right),a.left),i.controlPointNextY=Math.max(Math.min(n.next.y,a.bottom),a.top),t.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,a=t._model;t.$previousStyle={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderWidth:a.borderWidth,radius:a.radius},a.radius=i.hoverRadius?i.hoverRadius:u.valueAtIndexOrDefault(e.pointHoverRadius,n,this.chart.options.elements.point.hoverRadius),a.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:u.valueAtIndexOrDefault(e.pointHoverBackgroundColor,n,u.getHoverColor(a.backgroundColor)),a.borderColor=i.hoverBorderColor?i.hoverBorderColor:u.valueAtIndexOrDefault(e.pointHoverBorderColor,n,u.getHoverColor(a.borderColor)),a.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:u.valueAtIndexOrDefault(e.pointHoverBorderWidth,n,a.borderWidth)}})}},{26:26,41:41,46:46}],21:[function(t,e,i){"use strict";t(26)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),e.exports=function(t){t.controllers.scatter=t.controllers.line}},{26:26}],22:[function(t,e,i){"use strict";var n=t(27);i=e.exports=n.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null});Object.defineProperty(i.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(i.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}})},{27:27}],23:[function(t,e,i){"use strict";var n=t(26),o=t(46);n._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:o.noop,onComplete:o.noop}}),e.exports={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,i,n){var a,o,r=this.animations;for(e.chart=t,n||(t.animating=!0),a=0,o=r.length;a<o;++a)if(r[a].chart===t)return void(r[a]=e);r.push(e),1===r.length&&this.requestAnimationFrame()},cancelAnimation:function(e){var t=o.findIndex(this.animations,function(t){return t.chart===e});-1!==t&&(this.animations.splice(t,1),e.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=o.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){var t=this,e=Date.now(),i=0;1<t.dropFrames&&(i=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+i);var n=Date.now();t.dropFrames+=(n-e)/t.frameDuration,0<t.animations.length&&t.requestAnimationFrame()},advance:function(t){for(var e,i,n=this.animations,a=0;a<n.length;)i=(e=n[a]).chart,e.currentStep=(e.currentStep||0)+t,e.currentStep=Math.min(e.currentStep,e.numSteps),o.callback(e.render,[i,e],i),o.callback(e.onAnimationProgress,[e],i),e.currentStep>=e.numSteps?(o.callback(e.onAnimationComplete,[e],i),i.animating=!1,n.splice(a,1)):++a}}},{26:26,46:46}],24:[function(t,e,i){"use strict";var s=t(22),l=t(23),c=t(26),h=t(46),a=t(29),o=t(31),f=t(49),g=t(32),p=t(34),n=t(36);e.exports=function(u){function d(t){return"top"===t||"bottom"===t}u.types={},u.instances={},u.controllers={},h.extend(u.prototype,{construct:function(t,e){var i,n,a=this;(n=(i=(i=e)||{}).data=i.data||{}).datasets=n.datasets||[],n.labels=n.labels||[],i.options=h.configMerge(c.global,c[i.type],i.options||{}),e=i;var o=f.acquireContext(t,e),r=o&&o.canvas,s=r&&r.height,l=r&&r.width;a.id=h.uid(),a.ctx=o,a.canvas=r,a.config=e,a.width=l,a.height=s,a.aspectRatio=s?l/s:null,a.options=e.options,a._bufferedRender=!1,(a.chart=a).controller=a,u.instances[a.id]=a,Object.defineProperty(a,"data",{get:function(){return a.config.data},set:function(t){a.config.data=t}}),o&&r?(a.initialize(),a.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return g.notify(t,"beforeInit"),h.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),g.notify(t,"afterInit"),t},clear:function(){return h.canvas.clear(this),this},stop:function(){return l.cancelAnimation(this),this},resize:function(t){var e=this,i=e.options,n=e.canvas,a=i.maintainAspectRatio&&e.aspectRatio||null,o=Math.max(0,Math.floor(h.getMaximumWidth(n))),r=Math.max(0,Math.floor(a?o/a:h.getMaximumHeight(n)));if((e.width!==o||e.height!==r)&&(n.width=e.width=o,n.height=e.height=r,n.style.width=o+"px",n.style.height=r+"px",h.retinaScale(e,i.devicePixelRatio),!t)){var s={width:o,height:r};g.notify(e,"resize",[s]),e.options.onResize&&e.options.onResize(e,s),e.stop(),e.update({duration:e.options.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},i=t.scale;h.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),h.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildOrUpdateScales:function(){var r=this,t=r.options,s=r.scales||{},e=[],l=Object.keys(s).reduce(function(t,e){return t[e]=!1,t},{});t.scales&&(e=e.concat((t.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(t.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),t.scale&&e.push({options:t.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),h.each(e,function(t){var e=t.options,i=e.id,n=h.valueOrDefault(e.type,t.dtype);d(e.position)!==d(t.dposition)&&(e.position=t.dposition),l[i]=!0;var a=null;if(i in s&&s[i].type===n)(a=s[i]).options=e,a.ctx=r.ctx,a.chart=r;else{var o=p.getScaleConstructor(n);if(!o)return;a=new o({id:i,type:n,options:e,ctx:r.ctx,chart:r}),s[a.id]=a}a.mergeTicksOptions(),t.isDefault&&(r.scale=a)}),h.each(l,function(t,e){t||delete s[e]}),r.scales=s,p.addScalesToLayout(this)},buildOrUpdateControllers:function(){var o=this,r=[],s=[];return h.each(o.data.datasets,function(t,e){var i=o.getDatasetMeta(e),n=t.type||o.config.type;if(i.type&&i.type!==n&&(o.destroyDatasetMeta(e),i=o.getDatasetMeta(e)),i.type=n,r.push(i.type),i.controller)i.controller.updateIndex(e),i.controller.linkScales();else{var a=u.controllers[i.type];if(void 0===a)throw new Error('"'+i.type+'" is not a chart type.');i.controller=new a(o,e),s.push(i.controller)}},o),s},resetElements:function(){var i=this;h.each(i.data.datasets,function(t,e){i.getDatasetMeta(e).controller.reset()},i)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e,i,n=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),i=(e=n).options,h.each(e.scales,function(t){o.removeBox(e,t)}),i=h.configMerge(u.defaults.global,u.defaults[e.config.type],i),e.options=e.config.options=i,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=i.tooltips,e.tooltip.initialize(),g._invalidate(n),!1!==g.notify(n,"beforeUpdate")){n.tooltip._data=n.data;var a=n.buildOrUpdateControllers();h.each(n.data.datasets,function(t,e){n.getDatasetMeta(e).controller.buildOrUpdateElements()},n),n.updateLayout(),n.options.animation&&n.options.animation.duration&&h.each(a,function(t){t.reset()}),n.updateDatasets(),n.tooltip.initialize(),n.lastActive=[],g.notify(n,"afterUpdate"),n._bufferedRender?n._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:n.render(t)}},updateLayout:function(){!1!==g.notify(this,"beforeLayout")&&(o.update(this,this.width,this.height),g.notify(this,"afterScaleUpdate"),g.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==g.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t<e;++t)this.updateDataset(t);g.notify(this,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this.getDatasetMeta(t),i={meta:e,index:t};!1!==g.notify(this,"beforeDatasetUpdate",[i])&&(e.controller.update(),g.notify(this,"afterDatasetUpdate",[i]))},render:function(t){var e=this;t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]});var i=t.duration,n=t.lazy;if(!1!==g.notify(e,"beforeRender")){var a=e.options.animation,o=function(t){g.notify(e,"afterRender"),h.callback(a&&a.onComplete,[t],e)};if(a&&(void 0!==i&&0!==i||void 0===i&&0!==a.duration)){var r=new s({numSteps:(i||a.duration)/16.66,easing:t.easing||a.easing,render:function(t,e){var i=h.easing.effects[e.easing],n=e.currentStep,a=n/e.numSteps;t.draw(i(a),a,n)},onAnimationProgress:a.onProgress,onAnimationComplete:o});l.addAnimation(e,r,i,n)}else e.draw(),o(new s({numSteps:0,chart:e}));return e}},draw:function(t){var e=this;e.clear(),h.isNullOrUndef(t)&&(t=1),e.transition(t),e.width<=0||e.height<=0||!1!==g.notify(e,"beforeDraw",[t])&&(h.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.scale&&e.scale.draw(),e.drawDatasets(t),e._drawTooltip(t),g.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=0,i=(this.data.datasets||[]).length;e<i;++e)this.isDatasetVisible(e)&&this.getDatasetMeta(e).controller.transition(t);this.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==g.notify(e,"beforeDatasetsDraw",[t])){for(var i=(e.data.datasets||[]).length-1;0<=i;--i)e.isDatasetVisible(i)&&e.drawDataset(i,t);g.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var i=this.getDatasetMeta(t),n={meta:i,index:t,easingValue:e};!1!==g.notify(this,"beforeDatasetDraw",[n])&&(i.controller.draw(e),g.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(t){var e=this.tooltip,i={tooltip:e,easingValue:t};!1!==g.notify(this,"beforeTooltipDraw",[i])&&(e.draw(),g.notify(this,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return a.modes.single(this,t)},getElementsAtEvent:function(t){return a.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return a.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,i){var n=a.modes[e];return"function"==typeof n?n(this,t,i):[]},getDatasetAtEvent:function(t){return a.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var i=e._meta[this.id];return i||(i=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,i=this.data.datasets.length;e<i;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,i=this.data.datasets[t],n=i._meta&&i._meta[e];n&&(n.controller.destroy(),delete i._meta[e])},destroy:function(){var t,e,i=this,n=i.canvas;for(i.stop(),t=0,e=i.data.datasets.length;t<e;++t)i.destroyDatasetMeta(t);n&&(i.unbindEvents(),h.canvas.clear(i),f.releaseContext(i.ctx),i.canvas=null,i.ctx=null),g.notify(i,"destroy"),delete u.instances[i.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var t=this;t.tooltip=new n({_chart:t,_chartInstance:t,_data:t.data,_options:t.options.tooltips},t)},bindEvents:function(){var e=this,i=e._listeners={},n=function(){e.eventHandler.apply(e,arguments)};h.each(e.options.events,function(t){f.addEventListener(e,t,n),i[t]=n}),e.options.responsive&&(n=function(){e.resize()},f.addEventListener(e,"resize",n),i.resize=n)},unbindEvents:function(){var i=this,t=i._listeners;t&&(delete i._listeners,h.each(t,function(t,e){f.removeEventListener(i,e,t)}))},updateHoverStyle:function(t,e,i){var n,a,o,r=i?"setHoverStyle":"removeHoverStyle";for(a=0,o=t.length;a<o;++a)(n=t[a])&&this.getDatasetMeta(n._datasetIndex).controller[r](n)},eventHandler:function(t){var e=this,i=e.tooltip;if(!1!==g.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var n=e.handleEvent(t);i&&(n=i._start?i.handleEvent(t):n|i.handleEvent(t)),g.notify(e,"afterEvent",[t]);var a=e._bufferedRequest;return a?e.render(a):n&&!e.animating&&(e.stop(),e.render({duration:e.options.hover.animationDuration,lazy:!0})),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e,i=this,n=i.options||{},a=n.hover;return i.lastActive=i.lastActive||[],"mouseout"===t.type?i.active=[]:i.active=i.getElementsAtEventForMode(t,a.mode,a),h.callback(n.onHover||n.hover.onHover,[t.native,i.active],i),"mouseup"!==t.type&&"click"!==t.type||n.onClick&&n.onClick.call(i,t.native,i.active),i.lastActive.length&&i.updateHoverStyle(i.lastActive,a.mode,!1),i.active.length&&a.mode&&i.updateHoverStyle(i.active,a.mode,!0),e=!h.arrayEquals(i.active,i.lastActive),i.lastActive=i.active,e}}),u.Controller=u}},{22:22,23:23,26:26,29:29,31:31,32:32,34:34,36:36,46:46,49:49}],25:[function(t,e,i){"use strict";var s=t(46);e.exports=function(t){var o=["push","pop","shift","splice","unshift"];function r(e,t){var i=e._chartjs;if(i){var n=i.listeners,a=n.indexOf(t);-1!==a&&n.splice(a,1),0<n.length||(o.forEach(function(t){delete e[t]}),delete e._chartjs)}}t.DatasetController=function(t,e){this.initialize(t,e)},s.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),i=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=i.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=i.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&r(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,i=this.getMeta(),n=this.getDataset().data||[],a=i.data;for(t=0,e=n.length;t<e;++t)a[t]=a[t]||this.createMetaData(t);i.dataset=i.dataset||this.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var a,t,e=this,i=e.getDataset(),n=i.data||(i.data=[]);e._data!==n&&(e._data&&r(e._data,e),t=e,(a=n)._chartjs?a._chartjs.listeners.push(t):(Object.defineProperty(a,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[t]}}),o.forEach(function(t){var i="onData"+t.charAt(0).toUpperCase()+t.slice(1),n=a[t];Object.defineProperty(a,t,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),t=n.apply(this,e);return s.each(a._chartjs.listeners,function(t){"function"==typeof t[i]&&t[i].apply(t,e)}),t}})})),e._data=n),e.resyncElements()},update:s.noop,transition:function(t){for(var e=this.getMeta(),i=e.data||[],n=i.length,a=0;a<n;++a)i[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],i=e.length,n=0;for(t.dataset&&t.dataset.draw();n<i;++n)e[n].draw()},removeHoverStyle:function(t){s.merge(t._model,t.$previousStyle||{}),delete t.$previousStyle},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},a=s.valueAtIndexOrDefault,o=s.getHoverColor,r=t._model;t.$previousStyle={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderWidth:r.borderWidth},r.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:a(e.hoverBackgroundColor,i,o(r.backgroundColor)),r.borderColor=n.hoverBorderColor?n.hoverBorderColor:a(e.hoverBorderColor,i,o(r.borderColor)),r.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:a(e.hoverBorderWidth,i,r.borderWidth)},resyncElements:function(){var t=this.getMeta(),e=this.getDataset().data,i=t.data.length,n=e.length;n<i?t.data.splice(n,i-n):i<n&&this.insertElements(i,n-i)},insertElements:function(t,e){for(var i=0;i<e;++i)this.addElementAndReset(t+i)},onDataPush:function(){this.insertElements(this.getDataset().data.length-1,arguments.length)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),t.DatasetController.extend=s.inherits}},{46:46}],26:[function(t,e,i){"use strict";var n=t(46);e.exports={_set:function(t,e){return n.merge(this[t]||(this[t]={}),e)}}},{46:46}],27:[function(t,e,i){"use strict";var g=t(3),n=t(46);var a=function(t){n.extend(this,t),this.initialize.apply(this,arguments)};n.extend(a.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=n.clone(t._model)),t._start={},t},transition:function(t){var e=this,i=e._model,n=e._start,a=e._view;return i&&1!==t?(a||(a=e._view={}),n||(n=e._start={}),function(t,e,i,n){var a,o,r,s,l,u,d,c,h,f=Object.keys(i);for(a=0,o=f.length;a<o;++a)if(u=i[r=f[a]],e.hasOwnProperty(r)||(e[r]=u),(s=e[r])!==u&&"_"!==r[0]){if(t.hasOwnProperty(r)||(t[r]=s),(d=typeof u)==typeof(l=t[r]))if("string"===d){if((c=g(l)).valid&&(h=g(u)).valid){e[r]=h.mix(c,n).rgbString();continue}}else if("number"===d&&isFinite(l)&&isFinite(u)){e[r]=l+(u-l)*n;continue}e[r]=u}}(n,a,i,t)):(e._view=i,e._start=null),e},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return n.isNumber(this._model.x)&&n.isNumber(this._model.y)}}),a.extend=n.inherits,e.exports=a},{3:3,46:46}],28:[function(t,e,i){"use strict";var n=t(3),a=t(26),g=t(46),l=t(34);e.exports=function(){function d(t,e,i){var n;return"string"==typeof t?(n=parseInt(t,10),-1!==t.indexOf("%")&&(n=n/100*e.parentNode[i])):n=t,n}function c(t){return null!=t&&"none"!==t}function e(t,e,i){var n=document.defaultView,a=g._getParentNode(t),o=n.getComputedStyle(t)[e],r=n.getComputedStyle(a)[e],s=c(o),l=c(r),u=Number.POSITIVE_INFINITY;return s||l?Math.min(s?d(o,t,i):u,l?d(r,a,i):u):"none"}g.configMerge=function(){return g.merge(g.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(t,e,i,n){var a=e[t]||{},o=i[t];"scales"===t?e[t]=g.scaleMerge(a,o):"scale"===t?e[t]=g.merge(a,[l.getScaleDefaults(o.type),o]):g._merger(t,e,i,n)}})},g.scaleMerge=function(){return g.merge(g.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(t,e,i,n){if("xAxes"===t||"yAxes"===t){var a,o,r,s=i[t].length;for(e[t]||(e[t]=[]),a=0;a<s;++a)r=i[t][a],o=g.valueOrDefault(r.type,"xAxes"===t?"category":"linear"),a>=e[t].length&&e[t].push({}),!e[t][a].type||r.type&&r.type!==e[t][a].type?g.merge(e[t][a],[l.getScaleDefaults(o),r]):g.merge(e[t][a],r)}else g._merger(t,e,i,n)}})},g.where=function(t,e){if(g.isArray(t)&&Array.prototype.filter)return t.filter(e);var i=[];return g.each(t,function(t){e(t)&&i.push(t)}),i},g.findIndex=Array.prototype.findIndex?function(t,e,i){return t.findIndex(e,i)}:function(t,e,i){i=void 0===i?t:i;for(var n=0,a=t.length;n<a;++n)if(e.call(i,t[n],n,t))return n;return-1},g.findNextWhere=function(t,e,i){g.isNullOrUndef(i)&&(i=-1);for(var n=i+1;n<t.length;n++){var a=t[n];if(e(a))return a}},g.findPreviousWhere=function(t,e,i){g.isNullOrUndef(i)&&(i=t.length);for(var n=i-1;0<=n;n--){var a=t[n];if(e(a))return a}},g.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},g.almostEquals=function(t,e,i){return Math.abs(t-e)<i},g.almostWhole=function(t,e){var i=Math.round(t);return i-e<t&&t<i+e},g.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},g.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},g.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0===(t=+t)||isNaN(t)?t:0<t?1:-1},g.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,i=Math.round(e);return t===Math.pow(10,i)?i:e},g.toRadians=function(t){return t*(Math.PI/180)},g.toDegrees=function(t){return t*(180/Math.PI)},g.getAngleFromPoint=function(t,e){var i=e.x-t.x,n=e.y-t.y,a=Math.sqrt(i*i+n*n),o=Math.atan2(n,i);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},g.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},g.aliasPixel=function(t){return t%2==0?0:.5},g.splineCurve=function(t,e,i,n){var a=t.skip?e:t,o=e,r=i.skip?e:i,s=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),l=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),u=s/(s+l),d=l/(s+l),c=n*(u=isNaN(u)?0:u),h=n*(d=isNaN(d)?0:d);return{previous:{x:o.x-c*(r.x-a.x),y:o.y-c*(r.y-a.y)},next:{x:o.x+h*(r.x-a.x),y:o.y+h*(r.y-a.y)}}},g.EPSILON=Number.EPSILON||1e-14,g.splineCurveMonotone=function(t){var e,i,n,a,o,r,s,l,u,d=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),c=d.length;for(e=0;e<c;++e)if(!(n=d[e]).model.skip){if(i=0<e?d[e-1]:null,(a=e<c-1?d[e+1]:null)&&!a.model.skip){var h=a.model.x-n.model.x;n.deltaK=0!==h?(a.model.y-n.model.y)/h:0}!i||i.model.skip?n.mK=n.deltaK:!a||a.model.skip?n.mK=i.deltaK:this.sign(i.deltaK)!==this.sign(n.deltaK)?n.mK=0:n.mK=(i.deltaK+n.deltaK)/2}for(e=0;e<c-1;++e)n=d[e],a=d[e+1],n.model.skip||a.model.skip||(g.almostEquals(n.deltaK,0,this.EPSILON)?n.mK=a.mK=0:(o=n.mK/n.deltaK,r=a.mK/n.deltaK,(l=Math.pow(o,2)+Math.pow(r,2))<=9||(s=3/Math.sqrt(l),n.mK=o*s*n.deltaK,a.mK=r*s*n.deltaK)));for(e=0;e<c;++e)(n=d[e]).model.skip||(i=0<e?d[e-1]:null,a=e<c-1?d[e+1]:null,i&&!i.model.skip&&(u=(n.model.x-i.model.x)/3,n.model.controlPointPreviousX=n.model.x-u,n.model.controlPointPreviousY=n.model.y-u*n.mK),a&&!a.model.skip&&(u=(a.model.x-n.model.x)/3,n.model.controlPointNextX=n.model.x+u,n.model.controlPointNextY=n.model.y+u*n.mK))},g.nextItem=function(t,e,i){return i?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},g.previousItem=function(t,e,i){return i?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},g.niceNum=function(t,e){var i=Math.floor(g.log10(t)),n=t/Math.pow(10,i);return(e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*Math.pow(10,i)},g.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},g.getRelativePosition=function(t,e){var i,n,a=t.originalEvent||t,o=t.target||t.srcElement,r=o.getBoundingClientRect(),s=a.touches;n=s&&0<s.length?(i=s[0].clientX,s[0].clientY):(i=a.clientX,a.clientY);var l=parseFloat(g.getStyle(o,"padding-left")),u=parseFloat(g.getStyle(o,"padding-top")),d=parseFloat(g.getStyle(o,"padding-right")),c=parseFloat(g.getStyle(o,"padding-bottom")),h=r.right-r.left-l-d,f=r.bottom-r.top-u-c;return{x:i=Math.round((i-r.left-l)/h*o.width/e.currentDevicePixelRatio),y:n=Math.round((n-r.top-u)/f*o.height/e.currentDevicePixelRatio)}},g.getConstraintWidth=function(t){return e(t,"max-width","clientWidth")},g.getConstraintHeight=function(t){return e(t,"max-height","clientHeight")},g._calculatePadding=function(t,e,i){return-1<(e=g.getStyle(t,e)).indexOf("%")?i/parseInt(e,10):parseInt(e,10)},g._getParentNode=function(t){var e=t.parentNode;return e&&e.host&&(e=e.host),e},g.getMaximumWidth=function(t){var e=g._getParentNode(t);if(!e)return t.clientWidth;var i=e.clientWidth,n=i-g._calculatePadding(e,"padding-left",i)-g._calculatePadding(e,"padding-right",i),a=g.getConstraintWidth(t);return isNaN(a)?n:Math.min(n,a)},g.getMaximumHeight=function(t){var e=g._getParentNode(t);if(!e)return t.clientHeight;var i=e.clientHeight,n=i-g._calculatePadding(e,"padding-top",i)-g._calculatePadding(e,"padding-bottom",i),a=g.getConstraintHeight(t);return isNaN(a)?n:Math.min(n,a)},g.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},g.retinaScale=function(t,e){var i=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==i){var n=t.canvas,a=t.height,o=t.width;n.height=a*i,n.width=o*i,t.ctx.scale(i,i),n.style.height||n.style.width||(n.style.height=a+"px",n.style.width=o+"px")}},g.fontString=function(t,e,i){return e+" "+t+"px "+i},g.longestText=function(e,t,i,n){var a=(n=n||{}).data=n.data||{},o=n.garbageCollect=n.garbageCollect||[];n.font!==t&&(a=n.data={},o=n.garbageCollect=[],n.font=t),e.font=t;var r=0;g.each(i,function(t){null!=t&&!0!==g.isArray(t)?r=g.measureText(e,a,o,r,t):g.isArray(t)&&g.each(t,function(t){null==t||g.isArray(t)||(r=g.measureText(e,a,o,r,t))})});var s=o.length/2;if(s>i.length){for(var l=0;l<s;l++)delete a[o[l]];o.splice(0,s)}return r},g.measureText=function(t,e,i,n,a){var o=e[a];return o||(o=e[a]=t.measureText(a).width,i.push(a)),n<o&&(n=o),n},g.numberOfLabelLines=function(t){var e=1;return g.each(t,function(t){g.isArray(t)&&t.length>e&&(e=t.length)}),e},g.color=n?function(t){return t instanceof CanvasGradient&&(t=a.global.defaultColor),n(t)}:function(t){return console.error("Color.js not found!"),t},g.getHoverColor=function(t){return t instanceof CanvasPattern?t:g.color(t).saturate(.5).darken(.1).rgbString()}}},{26:26,3:3,34:34,46:46}],29:[function(t,e,i){"use strict";var n=t(46);function s(t,e){return t.native?{x:t.x,y:t.y}:n.getRelativePosition(t,e)}function l(t,e){var i,n,a,o,r;for(n=0,o=t.data.datasets.length;n<o;++n)if(t.isDatasetVisible(n))for(a=0,r=(i=t.getDatasetMeta(n)).data.length;a<r;++a){var s=i.data[a];s._view.skip||e(s)}}function u(t,e){var i=[];return l(t,function(t){t.inRange(e.x,e.y)&&i.push(t)}),i}function d(t,n,a,o){var r=Number.POSITIVE_INFINITY,s=[];return l(t,function(t){if(!a||t.inRange(n.x,n.y)){var e=t.getCenterPoint(),i=o(n,e);i<r?(s=[t],r=i):i===r&&s.push(t)}}),s}function c(t){var a=-1!==t.indexOf("x"),o=-1!==t.indexOf("y");return function(t,e){var i=a?Math.abs(t.x-e.x):0,n=o?Math.abs(t.y-e.y):0;return Math.sqrt(Math.pow(i,2)+Math.pow(n,2))}}function a(n,t,e){var i=s(t,n);e.axis=e.axis||"x";var a=c(e.axis),o=e.intersect?u(n,i):d(n,i,!1,a),r=[];return o.length?(n.data.datasets.forEach(function(t,e){if(n.isDatasetVisible(e)){var i=n.getDatasetMeta(e).data[o[0]._index];i&&!i._view.skip&&r.push(i)}}),r):[]}e.exports={modes:{single:function(t,e){var i=s(e,t),n=[];return l(t,function(t){if(t.inRange(i.x,i.y))return n.push(t),n}),n.slice(0,1)},label:a,index:a,dataset:function(t,e,i){var n=s(e,t);i.axis=i.axis||"xy";var a=c(i.axis),o=i.intersect?u(t,n):d(t,n,!1,a);return 0<o.length&&(o=t.getDatasetMeta(o[0]._datasetIndex).data),o},"x-axis":function(t,e){return a(t,e,{intersect:!1})},point:function(t,e){return u(t,s(e,t))},nearest:function(t,e,i){var n=s(e,t);i.axis=i.axis||"xy";var a=c(i.axis),o=d(t,n,i.intersect,a);return 1<o.length&&o.sort(function(t,e){var i=t.getArea()-e.getArea();return 0===i&&(i=t._datasetIndex-e._datasetIndex),i}),o.slice(0,1)},x:function(t,e,i){var n=s(e,t),a=[],o=!1;return l(t,function(t){t.inXRange(n.x)&&a.push(t),t.inRange(n.x,n.y)&&(o=!0)}),i.intersect&&!o&&(a=[]),a},y:function(t,e,i){var n=s(e,t),a=[],o=!1;return l(t,function(t){t.inYRange(n.y)&&a.push(t),t.inRange(n.x,n.y)&&(o=!0)}),i.intersect&&!o&&(a=[]),a}}}},{46:46}],30:[function(t,e,i){"use strict";t(26)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t}},{26:26}],31:[function(t,e,i){"use strict";var B=t(46);function W(t,e){return B.where(t,function(t){return t.position===e})}function V(t,a){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,e){var i=a?e:t,n=a?t:e;return i.weight===n.weight?i._tmpIndex_-n._tmpIndex_:i.weight-n.weight}),t.forEach(function(t){delete t._tmpIndex_})}e.exports={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure:function(t,e,i){for(var n,a=["fullWidth","position","weight"],o=a.length,r=0;r<o;++r)n=a[r],i.hasOwnProperty(n)&&(e[n]=i[n])},update:function(e,i,t){if(e){var n=e.options.layout||{},a=B.options.toPadding(n.padding),o=a.left,r=a.right,s=a.top,l=a.bottom,u=W(e.boxes,"left"),d=W(e.boxes,"right"),c=W(e.boxes,"top"),h=W(e.boxes,"bottom"),f=W(e.boxes,"chartArea");V(u,!0),V(d,!1),V(c,!0),V(h,!1);var g=i-o-r,p=t-s-l,m=p/2,v=(i-g/2)/(u.length+d.length),b=(t-m)/(c.length+h.length),x=g,y=p,k=[];B.each(u.concat(d,c,h),function(t){var e,i=t.isHorizontal();i?(e=t.update(t.fullWidth?g:x,b),y-=e.height):(e=t.update(v,y),x-=e.width),k.push({horizontal:i,minSize:e,box:t})});var M=0,w=0,C=0,S=0;B.each(c.concat(h),function(t){if(t.getPadding){var e=t.getPadding();M=Math.max(M,e.left),w=Math.max(w,e.right)}}),B.each(u.concat(d),function(t){if(t.getPadding){var e=t.getPadding();C=Math.max(C,e.top),S=Math.max(S,e.bottom)}});var _=o,D=r,P=s,I=l;B.each(u.concat(d),z),B.each(u,function(t){_+=t.width}),B.each(d,function(t){D+=t.width}),B.each(c.concat(h),z),B.each(c,function(t){P+=t.height}),B.each(h,function(t){I+=t.height}),B.each(u.concat(d),function(e){var t=B.findNextWhere(k,function(t){return t.box===e}),i={left:0,right:0,top:P,bottom:I};t&&e.update(t.minSize.width,y,i)}),_=o,D=r,P=s,I=l,B.each(u,function(t){_+=t.width}),B.each(d,function(t){D+=t.width}),B.each(c,function(t){P+=t.height}),B.each(h,function(t){I+=t.height});var A=Math.max(M-_,0);_+=A,D+=Math.max(w-D,0);var T=Math.max(C-P,0);P+=T,I+=Math.max(S-I,0);var F=t-P-I,O=i-_-D;O===x&&F===y||(B.each(u,function(t){t.height=F}),B.each(d,function(t){t.height=F}),B.each(c,function(t){t.fullWidth||(t.width=O)}),B.each(h,function(t){t.fullWidth||(t.width=O)}),y=F,x=O);var R=o+A,L=s+T;B.each(u.concat(c),N),R+=x,L+=y,B.each(d,N),B.each(h,N),e.chartArea={left:_,top:P,right:_+x,bottom:P+y},B.each(f,function(t){t.left=e.chartArea.left,t.top=e.chartArea.top,t.right=e.chartArea.right,t.bottom=e.chartArea.bottom,t.update(x,y)})}function z(e){var t=B.findNextWhere(k,function(t){return t.box===e});if(t)if(e.isHorizontal()){var i={left:Math.max(_,M),right:Math.max(D,w),top:0,bottom:0};e.update(e.fullWidth?g:x,p/2,i)}else e.update(t.minSize.width,y)}function N(t){t.isHorizontal()?(t.left=t.fullWidth?o:_,t.right=t.fullWidth?i-r:_+x,t.top=L,t.bottom=L+t.height,L=t.bottom):(t.left=R,t.right=R+t.width,t.top=P,t.bottom=P+y,R=t.right)}}}},{46:46}],32:[function(t,e,i){"use strict";var r=t(26),s=t(46);r._set("global",{plugins:{}}),e.exports={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}),this._cacheId++},unregister:function(t){var i=this._plugins;[].concat(t).forEach(function(t){var e=i.indexOf(t);-1!==e&&i.splice(e,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,i){var n,a,o,r,s,l=this.descriptors(t),u=l.length;for(n=0;n<u;++n)if("function"==typeof(s=(o=(a=l[n]).plugin)[e])&&((r=[t].concat(i||[])).push(a.options),!1===s.apply(o,r)))return!1;return!0},descriptors:function(t){var e=t.$plugins||(t.$plugins={});if(e.id===this._cacheId)return e.descriptors;var n=[],a=[],i=t&&t.config||{},o=i.options&&i.options.plugins||{};return this._plugins.concat(i.plugins||[]).forEach(function(t){if(-1===n.indexOf(t)){var e=t.id,i=o[e];!1!==i&&(!0===i&&(i=s.clone(r.global.plugins[e])),n.push(t),a.push({plugin:t,options:i||{}}))}}),e.descriptors=a,e.id=this._cacheId,a},_invalidate:function(t){delete t.$plugins}}},{26:26,46:46}],33:[function(t,e,i){"use strict";var y=t(26),n=t(27),H=t(46),a=t(35);function k(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(t[e].label);return n}function j(t,e,i){var n=t.getPixelForTick(e);return i&&(n-=0===e?(t.getPixelForTick(1)-n)/2:(n-t.getPixelForTick(e-1))/2),n}function M(t,e,i){return H.isArray(e)?H.longestText(t,i,e):t.measureText(e).width}function w(t){var e=H.valueOrDefault,i=y.global,n=e(t.fontSize,i.defaultFontSize),a=e(t.fontStyle,i.defaultFontStyle),o=e(t.fontFamily,i.defaultFontFamily);return{size:n,style:a,family:o,font:H.fontString(n,a,o)}}function C(t){return H.options.toLineHeight(H.valueOrDefault(t.lineHeight,1.2),H.valueOrDefault(t.fontSize,y.global.defaultFontSize))}y._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",lineHeight:1.2,padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:a.formatters.values,minor:{},major:{}}}),e.exports=n.extend({getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;for(var e in!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1}),t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){H.callback(this.options.beforeUpdate,[this])},update:function(t,e,i){var n,a,o,r,s,l,u=this;for(u.beforeUpdate(),u.maxWidth=t,u.maxHeight=e,u.margins=H.extend({left:0,right:0,top:0,bottom:0},i),u.longestTextCache=u.longestTextCache||{},u.beforeSetDimensions(),u.setDimensions(),u.afterSetDimensions(),u.beforeDataLimits(),u.determineDataLimits(),u.afterDataLimits(),u.beforeBuildTicks(),s=u.buildTicks()||[],u.afterBuildTicks(),u.beforeTickToLabelConversion(),o=u.convertTicksToLabels(s)||u.ticks,u.afterTickToLabelConversion(),n=0,a=(u.ticks=o).length;n<a;++n)r=o[n],(l=s[n])?l.label=r:s.push(l={label:r,major:!1});return u._ticks=s,u.beforeCalculateTickRotation(),u.calculateTickRotation(),u.afterCalculateTickRotation(),u.beforeFit(),u.fit(),u.afterFit(),u.afterUpdate(),u.minSize},afterUpdate:function(){H.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){H.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){H.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){H.callback(this.options.beforeDataLimits,[this])},determineDataLimits:H.noop,afterDataLimits:function(){H.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){H.callback(this.options.beforeBuildTicks,[this])},buildTicks:H.noop,afterBuildTicks:function(){H.callback(this.options.afterBuildTicks,[this])},beforeTickToLabelConversion:function(){H.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this.options.ticks;this.ticks=this.ticks.map(t.userCallback||t.callback,this)},afterTickToLabelConversion:function(){H.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){H.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,i=t.options.ticks,n=k(t._ticks),a=w(i);e.font=a.font;var o=i.minRotation||0;if(n.length&&t.options.display&&t.isHorizontal())for(var r,s=H.longestText(e,a.font,n,t.longestTextCache),l=s,u=t.getPixelForTick(1)-t.getPixelForTick(0)-6;u<l&&o<i.maxRotation;){var d=H.toRadians(o);if(r=Math.cos(d),Math.sin(d)*s>t.maxHeight){o--;break}o++,l=r*s}t.labelRotation=o},afterCalculateTickRotation:function(){H.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){H.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},i=k(t._ticks),n=t.options,a=n.ticks,o=n.scaleLabel,r=n.gridLines,s=n.display,l=t.isHorizontal(),u=w(a),d=n.gridLines.tickMarkLength;if(e.width=l?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:s&&r.drawTicks?d:0,e.height=l?s&&r.drawTicks?d:0:t.maxHeight,o.display&&s){var c=C(o)+H.options.toPadding(o.padding).height;l?e.height+=c:e.width+=c}if(a.display&&s){var h=H.longestText(t.ctx,u.font,i,t.longestTextCache),f=H.numberOfLabelLines(i),g=.5*u.size,p=t.options.ticks.padding;if(l){t.longestLabelWidth=h;var m=H.toRadians(t.labelRotation),v=Math.cos(m),b=Math.sin(m)*h+u.size*f+g*(f-1)+g;e.height=Math.min(t.maxHeight,e.height+b+p),t.ctx.font=u.font;var x=M(t.ctx,i[0],u.font),y=M(t.ctx,i[i.length-1],u.font);0!==t.labelRotation?(t.paddingLeft="bottom"===n.position?v*x+3:v*g+3,t.paddingRight="bottom"===n.position?v*g+3:v*y+3):(t.paddingLeft=x/2+3,t.paddingRight=y/2+3)}else a.mirror?h=0:h+=p+g,e.width=Math.min(t.maxWidth,e.width+h),t.paddingTop=u.size/2,t.paddingBottom=u.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){H.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(H.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:H.noop,getPixelForValue:H.noop,getValueForPixel:H.noop,getPixelForTick:function(t){var e=this,i=e.options.offset;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(i?0:1),1),a=n*t+e.paddingLeft;i&&(a+=n/2);var o=e.left+Math.round(a);return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,n=e.left+Math.round(i);return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:0<t&&0<e?t:0},_autoSkip:function(t){var e,i,n,a,o=this,r=o.isHorizontal(),s=o.options.ticks.minor,l=t.length,u=H.toRadians(o.labelRotation),d=Math.cos(u),c=o.longestLabelWidth*d,h=[];for(s.maxTicksLimit&&(a=s.maxTicksLimit),r&&(e=!1,(c+s.autoSkipPadding)*l>o.width-(o.paddingLeft+o.paddingRight)&&(e=1+Math.floor((c+s.autoSkipPadding)*l/(o.width-(o.paddingLeft+o.paddingRight)))),a&&a<l&&(e=Math.max(e,Math.floor(l/a)))),i=0;i<l;i++)n=t[i],(1<e&&0<i%e||i%e==0&&l<=i+e)&&i!==l-1&&delete n.label,h.push(n);return h},draw:function(S){var _=this,D=_.options;if(D.display){var r=_.ctx,P=y.global,I=D.ticks.minor,t=D.ticks.major||I,A=D.gridLines,e=D.scaleLabel,T=0!==_.labelRotation,F=_.isHorizontal(),O=I.autoSkip?_._autoSkip(_.getTicks()):_.getTicks(),s=H.valueOrDefault(I.fontColor,P.defaultFontColor),l=w(I),u=H.valueOrDefault(t.fontColor,P.defaultFontColor),d=w(t),R=A.drawTicks?A.tickMarkLength:0,i=H.valueOrDefault(e.fontColor,P.defaultFontColor),n=w(e),a=H.options.toPadding(e.padding),L=H.toRadians(_.labelRotation),z=[],N=_.options.gridLines.lineWidth,B="right"===D.position?_.left:_.right-N-R,W="right"===D.position?_.left+R:_.right,V="bottom"===D.position?_.top+N:_.bottom-R-N,E="bottom"===D.position?_.top+N+R:_.bottom+N;if(H.each(O,function(t,e){if(!H.isNullOrUndef(t.label)){var i,n,a,o,r,s,l,u,d,c,h,f,g,p,m=t.label;o=e===_.zeroLineIndex&&D.offset===A.offsetGridLines?(i=A.zeroLineWidth,n=A.zeroLineColor,a=A.zeroLineBorderDash,A.zeroLineBorderDashOffset):(i=H.valueAtIndexOrDefault(A.lineWidth,e),n=H.valueAtIndexOrDefault(A.color,e),a=H.valueOrDefault(A.borderDash,P.borderDash),H.valueOrDefault(A.borderDashOffset,P.borderDashOffset));var v="middle",b="middle",x=I.padding;if(F){var y=R+x;p="bottom"===D.position?(b=T?"middle":"top",v=T?"right":"center",_.top+y):(b=T?"middle":"bottom",v=T?"left":"center",_.bottom-y);var k=j(_,e,A.offsetGridLines&&1<O.length);k<_.left&&(n="rgba(0,0,0,0)"),k+=H.aliasPixel(i),g=_.getPixelForTick(e)+I.labelOffset,r=l=d=h=k,s=V,u=E,c=S.top,f=S.bottom+N}else{var M,w="left"===D.position;M=I.mirror?(v=w?"left":"right",x):(v=w?"right":"left",R+x),g=w?_.right-M:_.left+M;var C=j(_,e,A.offsetGridLines&&1<O.length);C<_.top&&(n="rgba(0,0,0,0)"),C+=H.aliasPixel(i),p=_.getPixelForTick(e)+I.labelOffset,r=B,l=W,d=S.left,h=S.right+N,s=u=c=f=C}z.push({tx1:r,ty1:s,tx2:l,ty2:u,x1:d,y1:c,x2:h,y2:f,labelX:g,labelY:p,glWidth:i,glColor:n,glBorderDash:a,glBorderDashOffset:o,rotation:-1*L,label:m,major:t.major,textBaseline:b,textAlign:v})}}),H.each(z,function(t){if(A.display&&(r.save(),r.lineWidth=t.glWidth,r.strokeStyle=t.glColor,r.setLineDash&&(r.setLineDash(t.glBorderDash),r.lineDashOffset=t.glBorderDashOffset),r.beginPath(),A.drawTicks&&(r.moveTo(t.tx1,t.ty1),r.lineTo(t.tx2,t.ty2)),A.drawOnChartArea&&(r.moveTo(t.x1,t.y1),r.lineTo(t.x2,t.y2)),r.stroke(),r.restore()),I.display){r.save(),r.translate(t.labelX,t.labelY),r.rotate(t.rotation),r.font=t.major?d.font:l.font,r.fillStyle=t.major?u:s,r.textBaseline=t.textBaseline,r.textAlign=t.textAlign;var e=t.label;if(H.isArray(e))for(var i=e.length,n=1.5*l.size,a=_.isHorizontal()?0:-n*(i-1)/2,o=0;o<i;++o)r.fillText(""+e[o],0,a),a+=n;else r.fillText(e,0,0);r.restore()}}),e.display){var o,c,h=0,f=C(e)/2;if(F)o=_.left+(_.right-_.left)/2,c="bottom"===D.position?_.bottom-f-a.bottom:_.top+f+a.top;else{var g="left"===D.position;o=g?_.left+f+a.top:_.right-f-a.top,c=_.top+(_.bottom-_.top)/2,h=g?-.5*Math.PI:.5*Math.PI}r.save(),r.translate(o,c),r.rotate(h),r.textAlign="center",r.textBaseline="middle",r.fillStyle=i,r.font=n.font,r.fillText(e.labelString,0,0),r.restore()}if(A.drawBorder){r.lineWidth=H.valueAtIndexOrDefault(A.lineWidth,0),r.strokeStyle=H.valueAtIndexOrDefault(A.color,0);var p=_.left,m=_.right+N,v=_.top,b=_.bottom+N,x=H.aliasPixel(r.lineWidth);F?(v=b="top"===D.position?_.bottom:_.top,v+=x,b+=x):(p=m="left"===D.position?_.right:_.left,p+=x,m+=x),r.beginPath(),r.moveTo(p,v),r.lineTo(m,b),r.stroke()}}}})},{26:26,27:27,35:35,46:46}],34:[function(t,e,i){"use strict";var n=t(26),a=t(46),o=t(31);e.exports={constructors:{},defaults:{},registerScaleType:function(t,e,i){this.constructors[t]=e,this.defaults[t]=a.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?a.merge({},[n.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=a.extend(this.defaults[t],e))},addScalesToLayout:function(e){a.each(e.scales,function(t){t.fullWidth=t.options.fullWidth,t.position=t.options.position,t.weight=t.options.weight,o.addBox(e,t)})}}},{26:26,31:31,46:46}],35:[function(t,e,i){"use strict";var l=t(46);e.exports={formatters:{values:function(t){return l.isArray(t)?t:""+t},linear:function(t,e,i){var n=3<i.length?i[2]-i[1]:i[1]-i[0];1<Math.abs(n)&&t!==Math.floor(t)&&(n=t-Math.floor(t));var a=l.log10(Math.abs(n)),o="";if(0!==t)if(Math.max(Math.abs(i[0]),Math.abs(i[i.length-1]))<1e-4){var r=l.log10(Math.abs(t));o=t.toExponential(Math.floor(r)-Math.floor(a))}else{var s=-1*Math.floor(a);s=Math.max(Math.min(s,20),0),o=t.toFixed(s)}else o="0";return o},logarithmic:function(t,e,i){var n=t/Math.pow(10,Math.floor(l.log10(t)));return 0===t?"0":1===n||2===n||5===n||0===e||e===i.length-1?t.toExponential():""}}}},{46:46}],36:[function(t,e,i){"use strict";var n=t(26),a=t(27),R=t(46);n._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:R.noop,title:function(t,e){var i="",n=e.labels,a=n?n.length:0;if(0<t.length){var o=t[0];o.xLabel?i=o.xLabel:0<a&&o.index<a&&(i=n[o.index])}return i},afterTitle:R.noop,beforeBody:R.noop,beforeLabel:R.noop,label:function(t,e){var i=e.datasets[t.datasetIndex].label||"";return i&&(i+=": "),i+=t.yLabel},labelColor:function(t,e){var i=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:i.borderColor,backgroundColor:i.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:R.noop,afterBody:R.noop,beforeFooter:R.noop,footer:R.noop,afterFooter:R.noop}}});var L={average:function(t){if(!t.length)return!1;var e,i,n=0,a=0,o=0;for(e=0,i=t.length;e<i;++e){var r=t[e];if(r&&r.hasValue()){var s=r.tooltipPosition();n+=s.x,a+=s.y,++o}}return{x:Math.round(n/o),y:Math.round(a/o)}},nearest:function(t,e){var i,n,a,o=e.x,r=e.y,s=Number.POSITIVE_INFINITY;for(i=0,n=t.length;i<n;++i){var l=t[i];if(l&&l.hasValue()){var u=l.getCenterPoint(),d=R.distanceBetweenPoints(e,u);d<s&&(s=d,a=l)}}if(a){var c=a.tooltipPosition();o=c.x,r=c.y}return{x:o,y:r}}};function h(t,e){var i=R.color(t);return i.alpha(e*i.alpha()).rgbaString()}function r(t,e){return e&&(R.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function s(t){return("string"==typeof t||t instanceof String)&&-1<t.indexOf("\n")?t.split("\n"):t}function z(t){var e=n.global,i=R.valueOrDefault;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:i(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:i(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:i(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:i(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:i(t.titleFontStyle,e.defaultFontStyle),titleFontSize:i(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:i(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:i(t.footerFontStyle,e.defaultFontStyle),footerFontSize:i(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function o(t){return r([],s(t))}(e.exports=a.extend({initialize:function(){this._model=z(this._options),this._lastActive=[]},getTitle:function(){var t=this._options.callbacks,e=t.beforeTitle.apply(this,arguments),i=t.title.apply(this,arguments),n=t.afterTitle.apply(this,arguments),a=[];return a=r(a=r(a=r(a,s(e)),s(i)),s(n))},getBeforeBody:function(){return o(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,i){var n=this,a=n._options.callbacks,o=[];return R.each(t,function(t){var e={before:[],lines:[],after:[]};r(e.before,s(a.beforeLabel.call(n,t,i))),r(e.lines,a.label.call(n,t,i)),r(e.after,s(a.afterLabel.call(n,t,i))),o.push(e)}),o},getAfterBody:function(){return o(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this._options.callbacks,e=t.beforeFooter.apply(this,arguments),i=t.footer.apply(this,arguments),n=t.afterFooter.apply(this,arguments),a=[];return a=r(a=r(a=r(a,s(e)),s(i)),s(n))},update:function(t){var e,i,n,a,o,r,s,l,u,d,c,h,f,g,p,m,v,b,x,y,k=this,M=k._options,w=k._model,C=k._model=z(M),S=k._active,_=k._data,D={xAlign:w.xAlign,yAlign:w.yAlign},P={x:w.x,y:w.y},I={width:w.width,height:w.height},A={x:w.caretX,y:w.caretY};if(S.length){C.opacity=1;var T=[],F=[];A=L[M.position].call(k,S,k._eventPosition);var O=[];for(e=0,i=S.length;e<i;++e)O.push((m=S[e],b=v=void 0,v=m._xScale,b=m._yScale||m._scale,x=m._index,y=m._datasetIndex,{xLabel:v?v.getLabelForIndex(x,y):"",yLabel:b?b.getLabelForIndex(x,y):"",index:x,datasetIndex:y,x:m._model.x,y:m._model.y}));M.filter&&(O=O.filter(function(t){return M.filter(t,_)})),M.itemSort&&(O=O.sort(function(t,e){return M.itemSort(t,e,_)})),R.each(O,function(t){T.push(M.callbacks.labelColor.call(k,t,k._chart)),F.push(M.callbacks.labelTextColor.call(k,t,k._chart))}),C.title=k.getTitle(O,_),C.beforeBody=k.getBeforeBody(O,_),C.body=k.getBody(O,_),C.afterBody=k.getAfterBody(O,_),C.footer=k.getFooter(O,_),C.x=Math.round(A.x),C.y=Math.round(A.y),C.caretPadding=M.caretPadding,C.labelColors=T,C.labelTextColors=F,C.dataPoints=O,D=function(t,e){var i,n,a,o,r,s=t._model,l=t._chart,u=t._chart.chartArea,d="center",c="center";s.y<e.height?c="top":s.y>l.height-e.height&&(c="bottom");var h=(u.left+u.right)/2,f=(u.top+u.bottom)/2;n="center"===c?(i=function(t){return t<=h},function(t){return h<t}):(i=function(t){return t<=e.width/2},function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},o=function(t){return t-e.width-s.caretSize-s.caretPadding<0},r=function(t){return t<=f?"top":"bottom"},i(s.x)?(d="left",a(s.x)&&(d="center",c=r(s.y))):n(s.x)&&(d="right",o(s.x)&&(d="center",c=r(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:d,yAlign:g.yAlign?g.yAlign:c}}(this,I=function(t,e){var i=t._chart.ctx,n=2*e.yPadding,a=0,o=e.body,r=o.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);r+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,l=e.footer.length,u=e.titleFontSize,d=e.bodyFontSize,c=e.footerFontSize;n+=s*u,n+=s?(s-1)*e.titleSpacing:0,n+=s?e.titleMarginBottom:0,n+=r*d,n+=r?(r-1)*e.bodySpacing:0,n+=l?e.footerMarginTop:0,n+=l*c,n+=l?(l-1)*e.footerSpacing:0;var h=0,f=function(t){a=Math.max(a,i.measureText(t).width+h)};return i.font=R.fontString(u,e._titleFontStyle,e._titleFontFamily),R.each(e.title,f),i.font=R.fontString(d,e._bodyFontStyle,e._bodyFontFamily),R.each(e.beforeBody.concat(e.afterBody),f),h=e.displayColors?d+2:0,R.each(o,function(t){R.each(t.before,f),R.each(t.lines,f),R.each(t.after,f)}),h=0,i.font=R.fontString(c,e._footerFontStyle,e._footerFontFamily),R.each(e.footer,f),{width:a+=2*e.xPadding,height:n}}(this,C)),n=C,a=I,o=D,r=k._chart,s=n.x,l=n.y,u=n.caretSize,d=n.caretPadding,c=n.cornerRadius,h=o.xAlign,f=o.yAlign,g=u+d,p=c+d,"right"===h?s-=a.width:"center"===h&&((s-=a.width/2)+a.width>r.width&&(s=r.width-a.width),s<0&&(s=0)),"top"===f?l+=g:l-="bottom"===f?a.height+g:a.height/2,"center"===f?"left"===h?s+=g:"right"===h&&(s-=g):"left"===h?s-=p:"right"===h&&(s+=p),P={x:s,y:l}}else C.opacity=0;return C.xAlign=D.xAlign,C.yAlign=D.yAlign,C.x=P.x,C.y=P.y,C.width=I.width,C.height=I.height,C.caretX=A.x,C.caretY=A.y,k._model=C,t&&M.custom&&M.custom.call(k,C),k},drawCaret:function(t,e){var i=this._chart.ctx,n=this._view,a=this.getCaretPosition(t,e,n);i.lineTo(a.x1,a.y1),i.lineTo(a.x2,a.y2),i.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,i){var n,a,o,r,s,l,u=i.caretSize,d=i.cornerRadius,c=i.xAlign,h=i.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if("center"===h)s=g+m/2,l="left"===c?(a=(n=f)-u,o=n,r=s+u,s-u):(a=(n=f+p)+u,o=n,r=s-u,s+u);else if(o=(n="left"===c?(a=f+d+u)-u:"right"===c?(a=f+p-d-u)-u:(a=i.caretX)-u,a+u),"top"===h)s=(r=g)-u,l=r;else{s=(r=g+m)+u,l=r;var v=o;o=n,n=v}return{x1:n,x2:a,x3:o,y1:r,y2:s,y3:l}},drawTitle:function(t,e,i,n){var a=e.title;if(a.length){i.textAlign=e._titleAlign,i.textBaseline="top";var o,r,s=e.titleFontSize,l=e.titleSpacing;for(i.fillStyle=h(e.titleFontColor,n),i.font=R.fontString(s,e._titleFontStyle,e._titleFontFamily),o=0,r=a.length;o<r;++o)i.fillText(a[o],t.x,t.y),t.y+=s+l,o+1===a.length&&(t.y+=e.titleMarginBottom-l)}},drawBody:function(n,a,o,r){var s=a.bodyFontSize,e=a.bodySpacing,t=a.body;o.textAlign=a._bodyAlign,o.textBaseline="top",o.font=R.fontString(s,a._bodyFontStyle,a._bodyFontFamily);var i=0,l=function(t){o.fillText(t,n.x+i,n.y),n.y+=s+e};o.fillStyle=h(a.bodyFontColor,r),R.each(a.beforeBody,l);var u=a.displayColors;i=u?s+2:0,R.each(t,function(t,e){var i=h(a.labelTextColors[e],r);o.fillStyle=i,R.each(t.before,l),R.each(t.lines,function(t){u&&(o.fillStyle=h(a.legendColorBackground,r),o.fillRect(n.x,n.y,s,s),o.lineWidth=1,o.strokeStyle=h(a.labelColors[e].borderColor,r),o.strokeRect(n.x,n.y,s,s),o.fillStyle=h(a.labelColors[e].backgroundColor,r),o.fillRect(n.x+1,n.y+1,s-2,s-2),o.fillStyle=i),l(t)}),R.each(t.after,l)}),i=0,R.each(a.afterBody,l),n.y-=e},drawFooter:function(e,i,n,t){var a=i.footer;a.length&&(e.y+=i.footerMarginTop,n.textAlign=i._footerAlign,n.textBaseline="top",n.fillStyle=h(i.footerFontColor,t),n.font=R.fontString(i.footerFontSize,i._footerFontStyle,i._footerFontFamily),R.each(a,function(t){n.fillText(t,e.x,e.y),e.y+=i.footerFontSize+i.footerSpacing}))},drawBackground:function(t,e,i,n,a){i.fillStyle=h(e.backgroundColor,a),i.strokeStyle=h(e.borderColor,a),i.lineWidth=e.borderWidth;var o=e.xAlign,r=e.yAlign,s=t.x,l=t.y,u=n.width,d=n.height,c=e.cornerRadius;i.beginPath(),i.moveTo(s+c,l),"top"===r&&this.drawCaret(t,n),i.lineTo(s+u-c,l),i.quadraticCurveTo(s+u,l,s+u,l+c),"center"===r&&"right"===o&&this.drawCaret(t,n),i.lineTo(s+u,l+d-c),i.quadraticCurveTo(s+u,l+d,s+u-c,l+d),"bottom"===r&&this.drawCaret(t,n),i.lineTo(s+c,l+d),i.quadraticCurveTo(s,l+d,s,l+d-c),"center"===r&&"left"===o&&this.drawCaret(t,n),i.lineTo(s,l+c),i.quadraticCurveTo(s,l,s+c,l),i.closePath(),i.fill(),0<e.borderWidth&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var i={width:e.width,height:e.height},n={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(this.drawBackground(n,e,t,i,a),n.x+=e.xPadding,n.y+=e.yPadding,this.drawTitle(n,e,t,a),this.drawBody(n,e,t,a),this.drawFooter(n,e,t,a))}},handleEvent:function(t){var e,i=this,n=i._options;return i._lastActive=i._lastActive||[],"mouseout"===t.type?i._active=[]:i._active=i._chart.getElementsAtEventForMode(t,n.mode,n),(e=!R.arrayEquals(i._active,i._lastActive))&&(i._lastActive=i._active,(n.enabled||n.custom)&&(i._eventPosition={x:t.x,y:t.y},i.update(!0),i.pivot())),e}})).positioners=L},{26:26,27:27,46:46}],37:[function(t,e,i){"use strict";var n=t(26),a=t(27),d=t(46);n._set("global",{elements:{arc:{backgroundColor:n.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),e.exports=a.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var i=this._view;if(i){for(var n=d.getAngleFromPoint(i,{x:t,y:e}),a=n.angle,o=n.distance,r=i.startAngle,s=i.endAngle;s<r;)s+=2*Math.PI;for(;s<a;)a-=2*Math.PI;for(;a<r;)a+=2*Math.PI;var l=r<=a&&a<=s,u=o>=i.innerRadius&&o<=i.outerRadius;return l&&u}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,i=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,i=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},draw:function(){var t=this._chart.ctx,e=this._view,i=e.startAngle,n=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,i,n),t.arc(e.x,e.y,e.innerRadius,n,i,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},{26:26,27:27,46:46}],38:[function(t,e,i){"use strict";var n=t(26),a=t(27),d=t(46),c=n.global;n._set("global",{elements:{line:{tension:.4,backgroundColor:c.defaultColor,borderWidth:3,borderColor:c.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),e.exports=a.extend({draw:function(){var t,e,i,n,a=this._view,o=this._chart.ctx,r=a.spanGaps,s=this._children.slice(),l=c.elements.line,u=-1;for(this._loop&&s.length&&s.push(s[0]),o.save(),o.lineCap=a.borderCapStyle||l.borderCapStyle,o.setLineDash&&o.setLineDash(a.borderDash||l.borderDash),o.lineDashOffset=a.borderDashOffset||l.borderDashOffset,o.lineJoin=a.borderJoinStyle||l.borderJoinStyle,o.lineWidth=a.borderWidth||l.borderWidth,o.strokeStyle=a.borderColor||c.defaultColor,o.beginPath(),u=-1,t=0;t<s.length;++t)e=s[t],i=d.previousItem(s,t),n=e._view,0===t?n.skip||(o.moveTo(n.x,n.y),u=t):(i=-1===u?i:s[u],n.skip||(u!==t-1&&!r||-1===u?o.moveTo(n.x,n.y):d.canvas.lineTo(o,i._view,e._view),u=t));o.stroke(),o.restore()}})},{26:26,27:27,46:46}],39:[function(t,e,i){"use strict";var u=t(26),n=t(27),d=t(46),c=u.global.defaultColor;function a(t){var e=this._view;return!!e&&Math.abs(t-e.x)<e.radius+e.hitRadius}u._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:c,borderColor:c,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}}),e.exports=n.extend({inRange:function(t,e){var i=this._view;return!!i&&Math.pow(t-i.x,2)+Math.pow(e-i.y,2)<Math.pow(i.hitRadius+i.radius,2)},inLabelRange:a,inXRange:a,inYRange:function(t){var e=this._view;return!!e&&Math.abs(t-e.y)<e.radius+e.hitRadius},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,i=this._model,n=this._chart.ctx,a=e.pointStyle,o=e.rotation,r=e.radius,s=e.x,l=e.y;e.skip||(void 0===t||i.x>=t.left&&1.01*t.right>=i.x&&i.y>=t.top&&1.01*t.bottom>=i.y)&&(n.strokeStyle=e.borderColor||c,n.lineWidth=d.valueOrDefault(e.borderWidth,u.global.elements.point.borderWidth),n.fillStyle=e.backgroundColor||c,d.canvas.drawPoint(n,a,r,s,l,o))}})},{26:26,27:27,46:46}],40:[function(t,e,i){"use strict";var n=t(26),a=t(27);function l(t){return void 0!==t._view.width}function o(t){var e,i,n,a,o=t._view;if(l(t)){var r=o.width/2;e=o.x-r,i=o.x+r,n=Math.min(o.y,o.base),a=Math.max(o.y,o.base)}else{var s=o.height/2;e=Math.min(o.x,o.base),i=Math.max(o.x,o.base),n=o.y-s,a=o.y+s}return{left:e,top:n,right:i,bottom:a}}n._set("global",{elements:{rectangle:{backgroundColor:n.global.defaultColor,borderColor:n.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),e.exports=a.extend({draw:function(){var t,e,i,n,a,o,r,s=this._chart.ctx,l=this._view,u=l.borderWidth;if(r=l.horizontal?(t=l.base,e=l.x,i=l.y-l.height/2,n=l.y+l.height/2,a=t<e?1:-1,o=1,l.borderSkipped||"left"):(t=l.x-l.width/2,e=l.x+l.width/2,a=1,o=(i=l.y)<(n=l.base)?1:-1,l.borderSkipped||"bottom"),u){var d=Math.min(Math.abs(t-e),Math.abs(i-n)),c=(u=d<u?d:u)/2,h=t+("left"!==r?c*a:0),f=e+("right"!==r?-c*a:0),g=i+("top"!==r?c*o:0),p=n+("bottom"!==r?-c*o:0);h!==f&&(i=g,n=p),g!==p&&(t=h,e=f)}s.beginPath(),s.fillStyle=l.backgroundColor,s.strokeStyle=l.borderColor,s.lineWidth=u;var m=[[t,n],[t,i],[e,i],[e,n]],v=["bottom","left","top","right"].indexOf(r,0);function b(t){return m[(v+t)%4]}-1===v&&(v=0);var x=b(0);s.moveTo(x[0],x[1]);for(var y=1;y<4;y++)x=b(y),s.lineTo(x[0],x[1]);s.fill(),u&&s.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var i=!1;if(this._view){var n=o(this);i=t>=n.left&&t<=n.right&&e>=n.top&&e<=n.bottom}return i},inLabelRange:function(t,e){if(!this._view)return!1;var i=o(this);return l(this)?t>=i.left&&t<=i.right:e>=i.top&&e<=i.bottom},inXRange:function(t){var e=o(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=o(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,i=this._view;return e=l(this)?(t=i.x,(i.y+i.base)/2):(t=(i.x+i.base)/2,i.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},{26:26,27:27}],41:[function(t,e,i){"use strict";e.exports={},e.exports.Arc=t(37),e.exports.Line=t(38),e.exports.Point=t(39),e.exports.Rectangle=t(40)},{37:37,38:38,39:39,40:40}],42:[function(t,e,i){"use strict";var n=t(43);i=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,i,n,a,o){if(o){var r=Math.min(o,a/2-1e-7,n/2-1e-7);t.moveTo(e+r,i),t.lineTo(e+n-r,i),t.arcTo(e+n,i,e+n,i+r,r),t.lineTo(e+n,i+a-r),t.arcTo(e+n,i+a,e+n-r,i+a,r),t.lineTo(e+r,i+a),t.arcTo(e,i+a,e,i+a-r,r),t.lineTo(e,i+r),t.arcTo(e,i,e+r,i,r),t.closePath(),t.moveTo(e,i)}else t.rect(e,i,n,a)},drawPoint:function(t,e,i,n,a,o){var r,s,l,u,d,c;if(o=o||0,!e||"object"!=typeof e||"[object HTMLImageElement]"!==(r=e.toString())&&"[object HTMLCanvasElement]"!==r){if(!(isNaN(i)||i<=0)){switch(t.save(),t.translate(n,a),t.rotate(o*Math.PI/180),t.beginPath(),e){default:t.arc(0,0,i,0,2*Math.PI),t.closePath();break;case"triangle":d=(s=3*i/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(-s/2,d/3),t.lineTo(s/2,d/3),t.lineTo(0,-2*d/3),t.closePath();break;case"rect":c=1/Math.SQRT2*i,t.rect(-c,-c,2*c,2*c);break;case"rectRounded":var h=i/Math.SQRT2,f=-h,g=-h,p=Math.SQRT2*i;this.roundedRect(t,f,g,p,p,.425*i);break;case"rectRot":c=1/Math.SQRT2*i,t.moveTo(-c,0),t.lineTo(0,c),t.lineTo(c,0),t.lineTo(0,-c),t.closePath();break;case"cross":t.moveTo(0,i),t.lineTo(0,-i),t.moveTo(-i,0),t.lineTo(i,0);break;case"crossRot":l=Math.cos(Math.PI/4)*i,u=Math.sin(Math.PI/4)*i,t.moveTo(-l,-u),t.lineTo(l,u),t.moveTo(-l,u),t.lineTo(l,-u);break;case"star":t.moveTo(0,i),t.lineTo(0,-i),t.moveTo(-i,0),t.lineTo(i,0),l=Math.cos(Math.PI/4)*i,u=Math.sin(Math.PI/4)*i,t.moveTo(-l,-u),t.lineTo(l,u),t.moveTo(-l,u),t.lineTo(l,-u);break;case"line":t.moveTo(-i,0),t.lineTo(i,0);break;case"dash":t.moveTo(0,0),t.lineTo(i,0)}t.fill(),t.stroke(),t.restore()}}else t.drawImage(e,n-e.width/2,a-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,i,n){if(i.steppedLine)return"after"===i.steppedLine&&!n||"after"!==i.steppedLine&&n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y),void t.lineTo(i.x,i.y);i.tension?t.bezierCurveTo(n?e.controlPointPreviousX:e.controlPointNextX,n?e.controlPointPreviousY:e.controlPointNextY,n?i.controlPointNextX:i.controlPointPreviousX,n?i.controlPointNextY:i.controlPointPreviousY,i.x,i.y):t.lineTo(i.x,i.y)}};n.clear=i.clear,n.drawRoundedRectangle=function(t){t.beginPath(),i.roundedRect.apply(i,arguments)}},{43:43}],43:[function(t,e,i){"use strict";var n,d={noop:function(){},uid:(n=0,function(){return n++}),isNullOrUndef:function(t){return null==t},isArray:Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,i){return d.valueOrDefault(d.isArray(t)?t[e]:t,i)},callback:function(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)},each:function(t,e,i,n){var a,o,r;if(d.isArray(t))if(o=t.length,n)for(a=o-1;0<=a;a--)e.call(i,t[a],a);else for(a=0;a<o;a++)e.call(i,t[a],a);else if(d.isObject(t))for(o=(r=Object.keys(t)).length,a=0;a<o;a++)e.call(i,t[r[a]],r[a])},arrayEquals:function(t,e){var i,n,a,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,n=t.length;i<n;++i)if(a=t[i],o=e[i],a instanceof Array&&o instanceof Array){if(!d.arrayEquals(a,o))return!1}else if(a!==o)return!1;return!0},clone:function(t){if(d.isArray(t))return t.map(d.clone);if(d.isObject(t)){for(var e={},i=Object.keys(t),n=i.length,a=0;a<n;++a)e[i[a]]=d.clone(t[i[a]]);return e}return t},_merger:function(t,e,i,n){var a=e[t],o=i[t];d.isObject(a)&&d.isObject(o)?d.merge(a,o,n):e[t]=d.clone(o)},_mergerIf:function(t,e,i){var n=e[t],a=i[t];d.isObject(n)&&d.isObject(a)?d.mergeIf(n,a):e.hasOwnProperty(t)||(e[t]=d.clone(a))},merge:function(t,e,i){var n,a,o,r,s,l=d.isArray(e)?e:[e],u=l.length;if(!d.isObject(t))return t;for(n=(i=i||{}).merger||d._merger,a=0;a<u;++a)if(e=l[a],d.isObject(e))for(s=0,r=(o=Object.keys(e)).length;s<r;++s)n(o[s],t,e,i);return t},mergeIf:function(t,e){return d.merge(t,e,{merger:d._mergerIf})},extend:function(i){for(var t=function(t,e){i[e]=t},e=1,n=arguments.length;e<n;++e)d.each(arguments[e],t);return i},inherits:function(t){var e=this,i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},n=function(){this.constructor=i};return n.prototype=e.prototype,i.prototype=new n,i.extend=d.inherits,t&&d.extend(i.prototype,t),i.__super__=e.prototype,i}};(e.exports=d).callCallback=d.callback,d.indexOf=function(t,e,i){return Array.prototype.indexOf.call(t,e,i)},d.getValueOrDefault=d.valueOrDefault,d.getValueAtIndexOrDefault=d.valueAtIndexOrDefault},{}],44:[function(t,e,i){"use strict";var n=t(43),a={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return 1<=t?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),e=n<1?(n=1,i/4):i/(2*Math.PI)*Math.asin(1/n),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i))},easeOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),e=n<1?(n=1,i/4):i/(2*Math.PI)*Math.asin(1/n),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)},easeInOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:2==(t/=.5)?1:(i||(i=.45),e=n<1?(n=1,i/4):i/(2*Math.PI)*Math.asin(1/n),t<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},easeInBack:function(t){return t*t*(2.70158*t-1.70158)},easeOutBack:function(t){return(t-=1)*t*(2.70158*t+1.70158)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-a.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a},n.easingEffects=a},{43:43}],45:[function(t,e,i){"use strict";var r=t(43);e.exports={toLineHeight:function(t,e){var i=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,i,n,a;return r.isObject(t)?(e=+t.top||0,i=+t.right||0,n=+t.bottom||0,a=+t.left||0):e=i=n=a=+t||0,{top:e,right:i,bottom:n,left:a,height:e+n,width:a+i}},resolve:function(t,e,i){var n,a,o;for(n=0,a=t.length;n<a;++n)if(void 0!==(o=t[n])&&(void 0!==e&&"function"==typeof o&&(o=o(e)),void 0!==i&&r.isArray(o)&&(o=o[i]),void 0!==o))return o}}},{43:43}],46:[function(t,e,i){"use strict";e.exports=t(43),e.exports.easing=t(44),e.exports.canvas=t(42),e.exports.options=t(45)},{42:42,43:43,44:44,45:45}],47:[function(t,e,i){e.exports={acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}}},{}],48:[function(t,e,i){"use strict";var f=t(46),g="$chartjs",p="chartjs-",m=p+"render-monitor",v=p+"render-animation",b=["animationstart","webkitAnimationStart"],s={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function l(t,e){var i=f.getStyle(t,e),n=i&&i.match(/^(\d+)(\.\d+)?px$/);return n?Number(n[1]):void 0}var n=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function x(t,e,i){t.addEventListener(e,i,n)}function r(t,e,i){t.removeEventListener(e,i,n)}function y(t,e,i,n,a){return{type:t,chart:e,native:a||null,x:void 0!==i?i:null,y:void 0!==n?n:null}}function a(e,t,i){var n,a,o,r,s,l,u,d,c=e[g]||(e[g]={}),h=c.resizer=function(t){var e=document.createElement("div"),i=p+"size-monitor",n="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";e.style.cssText=n,e.className=i,e.innerHTML='<div class="'+i+'-expand" style="'+n+'"><div style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div></div><div class="'+i+'-shrink" style="'+n+'"><div style="position:absolute;width:200%;height:200%;left:0; top:0"></div></div>';var a=e.childNodes[0],o=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,o.scrollLeft=1e6,o.scrollTop=1e6};var r=function(){e._reset(),t()};return x(a,"scroll",r.bind(a,"expand")),x(o,"scroll",r.bind(o,"shrink")),e}((o=!(n=function(){if(c.resizer)return t(y("resize",i))}),r=[],function(){r=Array.prototype.slice.call(arguments),a=a||this,o||(o=!0,f.requestAnimFrame.call(window,function(){o=!1,n.apply(a,r)}))}));l=function(){if(c.resizer){var t=e.parentNode;t&&t!==h.parentNode&&t.insertBefore(h,t.firstChild),h._reset()}},u=(s=e)[g]||(s[g]={}),d=u.renderProxy=function(t){t.animationName===v&&l()},f.each(b,function(t){x(s,t,d)}),u.reflow=!!s.offsetParent,s.classList.add(m)}function o(t){var e,i,n,a=t[g]||{},o=a.resizer;delete a.resizer,i=(e=t)[g]||{},(n=i.renderProxy)&&(f.each(b,function(t){r(e,t,n)}),delete i.renderProxy),e.classList.remove(m),o&&o.parentNode&&o.parentNode.removeChild(o)}e.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,initialize:function(){var t,e,i,n="from{opacity:0.99}to{opacity:1}";e="@-webkit-keyframes "+v+"{"+n+"}@keyframes "+v+"{"+n+"}."+m+"{-webkit-animation:"+v+" 0.001s;animation:"+v+" 0.001s;}",i=(t=this)._style||document.createElement("style"),t._style||(e="/* Chart.js */\n"+e,(t._style=i).setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(i)),i.appendChild(document.createTextNode(e))},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){var i=t.style,n=t.getAttribute("height"),a=t.getAttribute("width");if(t[g]={initial:{height:n,width:a,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",null===a||""===a){var o=l(t,"width");void 0!==o&&(t.width=o)}if(null===n||""===n)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var r=l(t,"height");void 0!==o&&(t.height=r)}}(t,e),i):null},releaseContext:function(t){var i=t.canvas;if(i[g]){var n=i[g].initial;["height","width"].forEach(function(t){var e=n[t];f.isNullOrUndef(e)?i.removeAttribute(t):i.setAttribute(t,e)}),f.each(n.style||{},function(t,e){i.style[e]=t}),i.width=i.width,delete i[g]}},addEventListener:function(o,t,r){var e=o.canvas;if("resize"!==t){var i=r[g]||(r[g]={});x(e,t,(i.proxies||(i.proxies={}))[o.id+"_"+t]=function(t){var e,i,n,a;r((i=o,n=s[(e=t).type]||e.type,a=f.getRelativePosition(e,i),y(n,i,a.x,a.y,e)))})}else a(e,r,o)},removeEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=((i[g]||{}).proxies||{})[t.id+"_"+e];a&&r(n,e,a)}else o(n)}},f.addEvent=x,f.removeEvent=r},{46:46}],49:[function(t,e,i){"use strict";var n=t(46),a=t(47),o=t(48),r=o._enabled?o:a;e.exports=n.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},r)},{46:46,47:47,48:48}],50:[function(t,e,i){"use strict";e.exports={},e.exports.filler=t(51),e.exports.legend=t(52),e.exports.title=t(53)},{51:51,52:52,53:53}],51:[function(t,e,i){"use strict";var u=t(26),h=t(41),d=t(46);u._set("global",{plugins:{filler:{propagate:!0}}});var f={dataset:function(t){var e=t.fill,i=t.chart,n=i.getDatasetMeta(e),a=n&&i.isDatasetVisible(e)&&n.dataset._children||[],o=a.length||0;return o?function(t,e){return e<o&&a[e]._view||null}:null},boundary:function(t){var e=t.boundary,i=e?e.x:null,n=e?e.y:null;return function(t){return{x:null===i?t.x:i,y:null===n?t.y:n}}}};function g(t,e,i){var n,a=t._model||{},o=a.fill;if(void 0===o&&(o=!!a.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(n=parseFloat(o,10),isFinite(n)&&Math.floor(n)===n)return"-"!==o[0]&&"+"!==o[0]||(n=e+n),!(n===e||n<0||i<=n)&&n;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function p(t){var e,i=t.el._model||{},n=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if("start"===a?o=void 0===i.scaleBottom?n.bottom:i.scaleBottom:"end"===a?o=void 0===i.scaleTop?n.top:i.scaleTop:void 0!==i.scaleZero?o=i.scaleZero:n.getBasePosition?o=n.getBasePosition():n.getBasePixel&&(o=n.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if("number"==typeof o&&isFinite(o))return{x:(e=n.isHorizontal())?o:null,y:e?null:o}}return null}function m(t,e,i){var n,a=t[e].fill,o=[e];if(!i)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(n=t[a]))return!1;if(n.visible)return a;o.push(a),a=n.fill}return!1}function x(t){return t&&!t.skip}function y(t,e,i,n,a){var o;if(n&&a){for(t.moveTo(e[0].x,e[0].y),o=1;o<n;++o)d.canvas.lineTo(t,e[o-1],e[o]);for(t.lineTo(i[a-1].x,i[a-1].y),o=a-1;0<o;--o)d.canvas.lineTo(t,i[o],i[o-1],!0)}}e.exports={id:"filler",afterDatasetsUpdate:function(t,e){var i,n,a,o,r,s,l,u=(t.data.datasets||[]).length,d=e.propagate,c=[];for(n=0;n<u;++n)o=null,(a=(i=t.getDatasetMeta(n)).dataset)&&a._model&&a instanceof h.Line&&(o={visible:t.isDatasetVisible(n),fill:g(a,n,u),chart:t,el:a}),i.$filler=o,c.push(o);for(n=0;n<u;++n)(o=c[n])&&(o.fill=m(c,n,d),o.boundary=p(o),o.mapper=(l=void 0,s=(r=o).fill,!(l="dataset")===s?null:(isFinite(s)||(l="boundary"),f[l](r))))},beforeDatasetDraw:function(t,e){var i=e.meta.$filler;if(i){var n=t.ctx,a=i.el,o=a._view,r=a._children||[],s=i.mapper,l=o.backgroundColor||u.global.defaultColor;s&&l&&r.length&&(d.canvas.clipArea(n,t.chartArea),function(t,e,i,n,a,o){var r,s,l,u,d,c,h,f=e.length,g=n.spanGaps,p=[],m=[],v=0,b=0;for(t.beginPath(),r=0,s=f+!!o;r<s;++r)d=i(u=e[l=r%f]._view,l,n),c=x(u),h=x(d),c&&h?(v=p.push(u),b=m.push(d)):v&&b&&(g?(c&&p.push(u),h&&m.push(d)):(y(t,p,m,v,b),v=b=0,p=[],m=[]));y(t,p,m,v,b),t.closePath(),t.fillStyle=a,t.fill()}(n,r,s,o,l,a._loop),d.canvas.unclipArea(n))}}}},{26:26,41:41,46:46}],52:[function(t,e,i){"use strict";var _=t(26),n=t(27),D=t(46),a=t(31),o=D.noop;function P(t,e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}_._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var i=e.datasetIndex,n=this.chart,a=n.getDatasetMeta(i);a.hidden=null===a.hidden?!n.data.datasets[i].hidden:null,n.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(i){var t=i.data;return D.isArray(t.datasets)?t.datasets.map(function(t,e){return{text:t.label,fillStyle:D.isArray(t.backgroundColor)?t.backgroundColor[0]:t.backgroundColor,hidden:!i.isDatasetVisible(e),lineCap:t.borderCapStyle,lineDash:t.borderDash,lineDashOffset:t.borderDashOffset,lineJoin:t.borderJoinStyle,lineWidth:t.borderWidth,strokeStyle:t.borderColor,pointStyle:t.pointStyle,datasetIndex:e}},this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var i=0;i<t.data.datasets.length;i++)e.push('<li><span style="background-color:'+t.data.datasets[i].backgroundColor+'"></span>'),t.data.datasets[i].label&&e.push(t.data.datasets[i].label),e.push("</li>");return e.push("</ul>"),e.join("")}});var r=n.extend({initialize:function(t){D.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:o,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:o,beforeSetDimensions:o,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:o,beforeBuildLabels:o,buildLabels:function(){var e=this,i=e.options.labels||{},t=D.callback(i.generateLabels,[e.chart],e)||[];i.filter&&(t=t.filter(function(t){return i.filter(t,e.chart.data)})),e.options.reverse&&t.reverse(),e.legendItems=t},afterBuildLabels:o,beforeFit:o,fit:function(){var n=this,t=n.options,a=t.labels,e=t.display,o=n.ctx,i=_.global,r=D.valueOrDefault,s=r(a.fontSize,i.defaultFontSize),l=r(a.fontStyle,i.defaultFontStyle),u=r(a.fontFamily,i.defaultFontFamily),d=D.fontString(s,l,u),c=n.legendHitBoxes=[],h=n.minSize,f=n.isHorizontal();if(h.height=f?(h.width=n.maxWidth,e?10:0):(h.width=e?10:0,n.maxHeight),e)if(o.font=d,f){var g=n.lineWidths=[0],p=n.legendItems.length?s+a.padding:0;o.textAlign="left",o.textBaseline="top",D.each(n.legendItems,function(t,e){var i=P(a,s)+s/2+o.measureText(t.text).width;g[g.length-1]+i+a.padding>=n.width&&(p+=s+a.padding,g[g.length]=n.left),c[e]={left:0,top:0,width:i,height:s},g[g.length-1]+=i+a.padding}),h.height+=p}else{var m=a.padding,v=n.columnWidths=[],b=a.padding,x=0,y=0,k=s+m;D.each(n.legendItems,function(t,e){var i=P(a,s)+s/2+o.measureText(t.text).width;y+k>h.height&&(b+=x+a.padding,v.push(x),y=x=0),x=Math.max(x,i),y+=k,c[e]={left:0,top:0,width:i,height:s}}),b+=x,v.push(x),h.width+=b}n.width=h.width,n.height=h.height},afterFit:o,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var c=this,h=c.options,f=h.labels,g=_.global,p=g.elements.line,m=c.width,v=c.lineWidths;if(h.display){var b,x=c.ctx,y=D.valueOrDefault,t=y(f.fontColor,g.defaultFontColor),k=y(f.fontSize,g.defaultFontSize),e=y(f.fontStyle,g.defaultFontStyle),i=y(f.fontFamily,g.defaultFontFamily),n=D.fontString(k,e,i);x.textAlign="left",x.textBaseline="middle",x.lineWidth=.5,x.strokeStyle=t,x.fillStyle=t,x.font=n;var M=P(f,k),w=c.legendHitBoxes,C=c.isHorizontal();b=C?{x:c.left+(m-v[0])/2,y:c.top+f.padding,line:0}:{x:c.left+f.padding,y:c.top+f.padding,line:0};var S=k+f.padding;D.each(c.legendItems,function(t,e){var i,n,a,o,r,s=x.measureText(t.text).width,l=M+k/2+s,u=b.x,d=b.y;C?m<=u+l&&(d=b.y+=S,b.line++,u=b.x=c.left+(m-v[b.line])/2):d+S>c.bottom&&(u=b.x=u+c.columnWidths[b.line]+f.padding,d=b.y=c.top+f.padding,b.line++),function(t,e,i){if(!(isNaN(M)||M<=0)){x.save(),x.fillStyle=y(i.fillStyle,g.defaultColor),x.lineCap=y(i.lineCap,p.borderCapStyle),x.lineDashOffset=y(i.lineDashOffset,p.borderDashOffset),x.lineJoin=y(i.lineJoin,p.borderJoinStyle),x.lineWidth=y(i.lineWidth,p.borderWidth),x.strokeStyle=y(i.strokeStyle,g.defaultColor);var n=0===y(i.lineWidth,p.borderWidth);if(x.setLineDash&&x.setLineDash(y(i.lineDash,p.borderDash)),h.labels&&h.labels.usePointStyle){var a=k*Math.SQRT2/2,o=a/Math.SQRT2,r=t+o,s=e+o;D.canvas.drawPoint(x,i.pointStyle,a,r,s)}else n||x.strokeRect(t,e,M,k),x.fillRect(t,e,M,k);x.restore()}}(u,d,t),w[e].left=u,w[e].top=d,i=t,n=s,o=M+(a=k/2)+u,r=d+a,x.fillText(i.text,o,r),i.hidden&&(x.beginPath(),x.lineWidth=2,x.moveTo(o,r),x.lineTo(o+n,r),x.stroke()),C?b.x+=l+f.padding:b.y+=S})}},handleEvent:function(t){var e=this,i=e.options,n="mouseup"===t.type?"click":t.type,a=!1;if("mousemove"===n){if(!i.onHover)return}else{if("click"!==n)return;if(!i.onClick)return}var o=t.x,r=t.y;if(o>=e.left&&o<=e.right&&r>=e.top&&r<=e.bottom)for(var s=e.legendHitBoxes,l=0;l<s.length;++l){var u=s[l];if(o>=u.left&&o<=u.left+u.width&&r>=u.top&&r<=u.top+u.height){if("click"===n){i.onClick.call(e,t.native,e.legendItems[l]),a=!0;break}if("mousemove"===n){i.onHover.call(e,t.native,e.legendItems[l]),a=!0;break}}}return a}});function s(t,e){var i=new r({ctx:t.ctx,options:e,chart:t});a.configure(t,i,e),a.addBox(t,i),t.legend=i}e.exports={id:"legend",_element:r,beforeInit:function(t){var e=t.options.legend;e&&s(t,e)},beforeUpdate:function(t){var e=t.options.legend,i=t.legend;e?(D.mergeIf(e,_.global.legend),i?(a.configure(t,i,e),i.options=e):s(t,e)):i&&(a.removeBox(t,i),delete t.legend)},afterEvent:function(t,e){var i=t.legend;i&&i.handleEvent(e)}}},{26:26,27:27,31:31,46:46}],53:[function(t,e,i){"use strict";var M=t(26),n=t(27),w=t(46),a=t(31),o=w.noop;M._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});var r=n.extend({initialize:function(t){w.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:o,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:o,beforeSetDimensions:o,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:o,beforeBuildLabels:o,buildLabels:o,afterBuildLabels:o,beforeFit:o,fit:function(){var t=this,e=w.valueOrDefault,i=t.options,n=i.display,a=e(i.fontSize,M.global.defaultFontSize),o=t.minSize,r=w.isArray(i.text)?i.text.length:1,s=w.options.toLineHeight(i.lineHeight,a),l=n?r*s+2*i.padding:0;t.isHorizontal()?(o.width=t.maxWidth,o.height=l):(o.width=l,o.height=t.maxHeight),t.width=o.width,t.height=o.height},afterFit:o,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,i=w.valueOrDefault,n=t.options,a=M.global;if(n.display){var o,r,s,l=i(n.fontSize,a.defaultFontSize),u=i(n.fontStyle,a.defaultFontStyle),d=i(n.fontFamily,a.defaultFontFamily),c=w.fontString(l,u,d),h=w.options.toLineHeight(n.lineHeight,l),f=h/2+n.padding,g=0,p=t.top,m=t.left,v=t.bottom,b=t.right;e.fillStyle=i(n.fontColor,a.defaultFontColor),e.font=c,t.isHorizontal()?(r=m+(b-m)/2,s=p+f,o=b-m):(r="left"===n.position?m+f:b-f,s=p+(v-p)/2,o=v-p,g=Math.PI*("left"===n.position?-.5:.5)),e.save(),e.translate(r,s),e.rotate(g),e.textAlign="center",e.textBaseline="middle";var x=n.text;if(w.isArray(x))for(var y=0,k=0;k<x.length;++k)e.fillText(x[k],0,y,o),y+=h;else e.fillText(x,0,0,o);e.restore()}}});function s(t,e){var i=new r({ctx:t.ctx,options:e,chart:t});a.configure(t,i,e),a.addBox(t,i),t.titleBlock=i}e.exports={id:"title",_element:r,beforeInit:function(t){var e=t.options.title;e&&s(t,e)},beforeUpdate:function(t){var e=t.options.title,i=t.titleBlock;e?(w.mergeIf(e,M.global.title),i?(a.configure(t,i,e),i.options=e):s(t,e)):i&&(a.removeBox(t,i),delete t.titleBlock)}}},{26:26,27:27,31:31,46:46}],54:[function(t,e,i){"use strict";var n=t(33),a=t(34);e.exports=function(){var t=n.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,i=e.getLabels();e.minIndex=0,e.maxIndex=i.length-1,void 0!==e.options.ticks.min&&(t=i.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=i.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=i[e.minIndex],e.max=i[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var i=this,n=i.chart.data,a=i.isHorizontal();return n.yLabels&&!a?i.getRightValue(n.datasets[e].data[t]):i.ticks[t-i.minIndex]},getPixelForValue:function(t,e){var i,n=this,a=n.options.offset,o=Math.max(n.maxIndex+1-n.minIndex-(a?0:1),1);if(null!=t&&(i=n.isHorizontal()?t.x:t.y),void 0!==i||void 0!==t&&isNaN(e)){t=i||t;var r=n.getLabels().indexOf(t);e=-1!==r?r:e}if(n.isHorizontal()){var s=n.width/o,l=s*(e-n.minIndex);return a&&(l+=s/2),n.left+Math.round(l)}var u=n.height/o,d=u*(e-n.minIndex);return a&&(d+=u/2),n.top+Math.round(d)},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,i=e.options.offset,n=Math.max(e._ticks.length-(i?0:1),1),a=e.isHorizontal(),o=(a?e.width:e.height)/n;return t-=a?e.left:e.top,i&&(t-=o/2),(t<=0?0:Math.round(t/o))+e.minIndex},getBasePixel:function(){return this.bottom}});a.registerScaleType("category",t,{position:"bottom"})}},{33:33,34:34}],55:[function(t,e,i){"use strict";var n=t(26),c=t(46),a=t(34),o=t(35);e.exports=function(t){var e={position:"left",ticks:{callback:o.formatters.linear}},i=t.LinearScaleBase.extend({determineDataLimits:function(){var r=this,s=r.options,l=r.chart,t=l.data.datasets,e=r.isHorizontal();function u(t){return e?t.xAxisID===r.id:t.yAxisID===r.id}r.min=null,r.max=null;var n=s.stacked;if(void 0===n&&c.each(t,function(t,e){if(!n){var i=l.getDatasetMeta(e);l.isDatasetVisible(e)&&u(i)&&void 0!==i.stack&&(n=!0)}}),s.stacked||n){var d={};c.each(t,function(t,e){var n=l.getDatasetMeta(e),i=[n.type,void 0===s.stacked&&void 0===n.stack?e:"",n.stack].join(".");void 0===d[i]&&(d[i]={positiveValues:[],negativeValues:[]});var a=d[i].positiveValues,o=d[i].negativeValues;l.isDatasetVisible(e)&&u(n)&&c.each(t.data,function(t,e){var i=+r.getRightValue(t);isNaN(i)||n.data[e].hidden||(a[e]=a[e]||0,o[e]=o[e]||0,s.relativePoints?a[e]=100:i<0?o[e]+=i:a[e]+=i)})}),c.each(d,function(t){var e=t.positiveValues.concat(t.negativeValues),i=c.min(e),n=c.max(e);r.min=null===r.min?i:Math.min(r.min,i),r.max=null===r.max?n:Math.max(r.max,n)})}else c.each(t,function(t,e){var n=l.getDatasetMeta(e);l.isDatasetVisible(e)&&u(n)&&c.each(t.data,function(t,e){var i=+r.getRightValue(t);isNaN(i)||n.data[e].hidden||(null===r.min?r.min=i:i<r.min&&(r.min=i),null===r.max?r.max=i:i>r.max&&(r.max=i))})});r.min=isFinite(r.min)&&!isNaN(r.min)?r.min:0,r.max=isFinite(r.max)&&!isNaN(r.max)?r.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this.options.ticks;if(this.isHorizontal())t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.width/50));else{var i=c.valueOrDefault(e.fontSize,n.global.defaultFontSize);t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.height/(2*i)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,i=e.start,n=+e.getRightValue(t),a=e.end-i;return e.isHorizontal()?e.left+e.width/a*(n-i):e.bottom-e.height/a*(n-i)},getValueForPixel:function(t){var e=this,i=e.isHorizontal(),n=i?e.width:e.height,a=(i?t-e.left:e.bottom-t)/n;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});a.registerScaleType("linear",i,e)}},{26:26,34:34,35:35,46:46}],56:[function(t,e,i){"use strict";var c=t(46),n=t(33);e.exports=function(t){var e=c.noop;t.LinearScaleBase=n.extend({getRightValue:function(t){return"string"==typeof t?+t:n.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var i=c.sign(t.min),n=c.sign(t.max);i<0&&n<0?t.max=0:0<i&&0<n&&(t.min=0)}var a=void 0!==e.min||void 0!==e.suggestedMin,o=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),a!==o&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,i=t.getTickLimit(),n={maxTicks:i=Math.max(2,i),min:e.min,max:e.max,precision:e.precision,stepSize:c.valueOrDefault(e.fixedStepSize,e.stepSize)},a=t.ticks=function(t,e){var i,n,a,o=[];if(t.stepSize&&0<t.stepSize)a=t.stepSize;else{var r=c.niceNum(e.max-e.min,!1);a=c.niceNum(r/(t.maxTicks-1),!0),void 0!==(n=t.precision)&&(i=Math.pow(10,n),a=Math.ceil(a*i)/i)}var s=Math.floor(e.min/a)*a,l=Math.ceil(e.max/a)*a;c.isNullOrUndef(t.min)||c.isNullOrUndef(t.max)||!t.stepSize||c.almostWhole((t.max-t.min)/t.stepSize,a/1e3)&&(s=t.min,l=t.max);var u=(l-s)/a;u=c.almostEquals(u,Math.round(u),a/1e3)?Math.round(u):Math.ceil(u),a<(n=1)&&(n=Math.pow(10,1-Math.floor(c.log10(a))),s=Math.round(s*n)/n,l=Math.round(l*n)/n),o.push(void 0!==t.min?t.min:s);for(var d=1;d<u;++d)o.push(Math.round((s+d*a)*n)/n);return o.push(void 0!==t.max?t.max:l),o}(n,t);t.handleDirectionalChanges(),t.max=c.max(a),t.min=c.min(a),e.reverse?(a.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var t=this;t.ticksAsNumbers=t.ticks.slice(),t.zeroLineIndex=t.ticks.indexOf(0),n.prototype.convertTicksToLabels.call(t)}})}},{33:33,46:46}],57:[function(t,e,i){"use strict";var h=t(46),n=t(33),a=t(34),o=t(35);e.exports=function(c){var t={position:"left",ticks:{callback:o.formatters.logarithmic}},e=n.extend({determineDataLimits:function(){var r=this,i=r.options,s=r.chart,t=s.data.datasets,e=r.isHorizontal();function l(t){return e?t.xAxisID===r.id:t.yAxisID===r.id}r.min=null,r.max=null,r.minNotZero=null;var n=i.stacked;if(void 0===n&&h.each(t,function(t,e){if(!n){var i=s.getDatasetMeta(e);s.isDatasetVisible(e)&&l(i)&&void 0!==i.stack&&(n=!0)}}),i.stacked||n){var u={};h.each(t,function(t,e){var a=s.getDatasetMeta(e),o=[a.type,void 0===i.stacked&&void 0===a.stack?e:"",a.stack].join(".");s.isDatasetVisible(e)&&l(a)&&(void 0===u[o]&&(u[o]=[]),h.each(t.data,function(t,e){var i=u[o],n=+r.getRightValue(t);isNaN(n)||a.data[e].hidden||n<0||(i[e]=i[e]||0,i[e]+=n)}))}),h.each(u,function(t){if(0<t.length){var e=h.min(t),i=h.max(t);r.min=null===r.min?e:Math.min(r.min,e),r.max=null===r.max?i:Math.max(r.max,i)}})}else h.each(t,function(t,e){var n=s.getDatasetMeta(e);s.isDatasetVisible(e)&&l(n)&&h.each(t.data,function(t,e){var i=+r.getRightValue(t);isNaN(i)||n.data[e].hidden||i<0||(null===r.min?r.min=i:i<r.min&&(r.min=i),null===r.max?r.max=i:i>r.max&&(r.max=i),0!==i&&(null===r.minNotZero||i<r.minNotZero)&&(r.minNotZero=i))})});this.handleTickRangeOptions()},handleTickRangeOptions:function(){var t=this,e=t.options.ticks,i=h.valueOrDefault;t.min=i(e.min,t.min),t.max=i(e.max,t.max),t.min===t.max&&(0!==t.min&&null!==t.min?(t.min=Math.pow(10,Math.floor(h.log10(t.min))-1),t.max=Math.pow(10,Math.floor(h.log10(t.max))+1)):(t.min=1,t.max=10)),null===t.min&&(t.min=Math.pow(10,Math.floor(h.log10(t.max))-1)),null===t.max&&(t.max=0!==t.min?Math.pow(10,Math.floor(h.log10(t.min))+1):10),null===t.minNotZero&&(0<t.min?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(h.log10(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,i=!t.isHorizontal(),n={min:e.min,max:e.max},a=t.ticks=function(t,e){var i,n,a=[],o=h.valueOrDefault,r=o(t.min,Math.pow(10,Math.floor(h.log10(e.min)))),s=Math.floor(h.log10(e.max)),l=Math.ceil(e.max/Math.pow(10,s));0===r?(i=Math.floor(h.log10(e.minNotZero)),n=Math.floor(e.minNotZero/Math.pow(10,i)),a.push(r),r=n*Math.pow(10,i)):(i=Math.floor(h.log10(r)),n=Math.floor(r/Math.pow(10,i)));for(var u=i<0?Math.pow(10,Math.abs(i)):1;a.push(r),10==++n&&(n=1,u=0<=++i?1:u),r=Math.round(n*Math.pow(10,i)*u)/u,i<s||i===s&&n<l;);var d=o(t.max,r);return a.push(d),a}(n,t);t.max=h.max(a),t.min=h.min(a),e.reverse?(i=!i,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),i&&a.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),n.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},_getFirstTickValue:function(t){var e=Math.floor(h.log10(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},getPixelForValue:function(t){var e,i,n,a,o,r=this,s=r.options.ticks.reverse,l=h.log10,u=r._getFirstTickValue(r.minNotZero),d=0;return t=+r.getRightValue(t),o=s?(n=r.end,a=r.start,-1):(n=r.start,a=r.end,1),i=r.isHorizontal()?(e=r.width,s?r.right:r.left):(e=r.height,o*=-1,s?r.top:r.bottom),t!==n&&(0===n&&(e-=d=h.getValueOrDefault(r.options.ticks.fontSize,c.defaults.global.defaultFontSize),n=u),0!==t&&(d+=e/(l(a)-l(n))*(l(t)-l(n))),i+=o*d),i},getValueForPixel:function(t){var e,i,n,a,o=this,r=o.options.ticks.reverse,s=h.log10,l=o._getFirstTickValue(o.minNotZero);if(n=r?(i=o.end,o.start):(i=o.start,o.end),(a=o.isHorizontal()?(e=o.width,r?o.right-t:t-o.left):(e=o.height,r?t-o.top:o.bottom-t))!==i){if(0===i){var u=h.getValueOrDefault(o.options.ticks.fontSize,c.defaults.global.defaultFontSize);a-=u,e-=u,i=l}a*=s(n)-s(i),a/=e,a=Math.pow(10,s(i)+a)}return a}});a.registerScaleType("logarithmic",e,t)}},{33:33,34:34,35:35,46:46}],58:[function(t,e,i){"use strict";var n=t(26),k=t(46),a=t(34),o=t(35);e.exports=function(e){var v=n.global,t={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:o.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function b(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function x(t){var e=t.options.pointLabels,i=k.valueOrDefault(e.fontSize,v.defaultFontSize),n=k.valueOrDefault(e.fontStyle,v.defaultFontStyle),a=k.valueOrDefault(e.fontFamily,v.defaultFontFamily);return{size:i,style:n,family:a,font:k.fontString(i,n,a)}}function m(t,e,i,n,a){return t===n||t===a?{start:e-i/2,end:e+i/2}:t<n||a<t?{start:e-i-5,end:e}:{start:e,end:e+i+5}}function y(t,e,i,n){if(k.isArray(e))for(var a=i.y,o=1.5*n,r=0;r<e.length;++r)t.fillText(e[r],i.x,a),a+=o;else t.fillText(e,i.x,i.y)}function s(t){return k.isNumber(t)?t:0}var i=e.LinearScaleBase.extend({setDimensions:function(){var t=this,e=t.options,i=e.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var n=k.min([t.height,t.width]),a=k.valueOrDefault(i.fontSize,v.defaultFontSize);t.drawingArea=e.display?n/2-(a/2+i.backdropPaddingY):n/2},determineDataLimits:function(){var a=this,i=a.chart,o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;k.each(i.data.datasets,function(t,e){if(i.isDatasetVisible(e)){var n=i.getDatasetMeta(e);k.each(t.data,function(t,e){var i=+a.getRightValue(t);isNaN(i)||n.data[e].hidden||(o=Math.min(i,o),r=Math.max(i,r))})}}),a.min=o===Number.POSITIVE_INFINITY?0:o,a.max=r===Number.NEGATIVE_INFINITY?0:r,a.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,e=k.valueOrDefault(t.fontSize,v.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*e)))},convertTicksToLabels:function(){var t=this;e.LinearScaleBase.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map(t.options.pointLabels.callback,t)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t,e;this.options.pointLabels.display?function(t){var e,i,n,a=x(t),o=Math.min(t.height/2,t.width/2),r={r:t.width,l:0,t:t.height,b:0},s={};t.ctx.font=a.font,t._pointLabelSizes=[];var l,u,d,c=b(t);for(e=0;e<c;e++){n=t.getPointPosition(e,o),l=t.ctx,u=a.size,d=t.pointLabels[e]||"",i=k.isArray(d)?{w:k.longestText(l,l.font,d),h:d.length*u+1.5*(d.length-1)*u}:{w:l.measureText(d).width,h:u},t._pointLabelSizes[e]=i;var h=t.getIndexAngle(e),f=k.toDegrees(h)%360,g=m(f,n.x,i.w,0,180),p=m(f,n.y,i.h,90,270);g.start<r.l&&(r.l=g.start,s.l=h),g.end>r.r&&(r.r=g.end,s.r=h),p.start<r.t&&(r.t=p.start,s.t=h),p.end>r.b&&(r.b=p.end,s.b=h)}t.setReductions(o,r,s)}(this):(t=this,e=Math.min(t.height/2,t.width/2),t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0))},setReductions:function(t,e,i){var n=e.l/Math.sin(i.l),a=Math.max(e.r-this.width,0)/Math.sin(i.r),o=-e.t/Math.cos(i.t),r=-Math.max(e.b-this.height,0)/Math.cos(i.b);n=s(n),a=s(a),o=s(o),r=s(r),this.drawingArea=Math.min(Math.round(t-(n+a)/2),Math.round(t-(o+r)/2)),this.setCenterPoint(n,a,o,r)},setCenterPoint:function(t,e,i,n){var a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,s=i+a.drawingArea,l=a.height-n-a.drawingArea;a.xCenter=Math.round((r+o)/2+a.left),a.yCenter=Math.round((s+l)/2+a.top)},getIndexAngle:function(t){return t*(2*Math.PI/b(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var i=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*i:(t-e.min)*i},getPointPosition:function(t,e){var i=this.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(i)*e)+this.xCenter,y:Math.round(Math.sin(i)*e)+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:0<t&&0<e?t:0)},draw:function(){var o=this,t=o.options,r=t.gridLines,s=t.ticks,l=k.valueOrDefault;if(t.display){var u=o.ctx,d=this.getIndexAngle(0),c=l(s.fontSize,v.defaultFontSize),e=l(s.fontStyle,v.defaultFontStyle),i=l(s.fontFamily,v.defaultFontFamily),h=k.fontString(c,e,i);k.each(o.ticks,function(t,e){if(0<e||s.reverse){var i=o.getDistanceFromCenterForValue(o.ticksAsNumbers[e]);if(r.display&&0!==e&&function(t,e,i,n){var a=t.ctx;if(a.strokeStyle=k.valueAtIndexOrDefault(e.color,n-1),a.lineWidth=k.valueAtIndexOrDefault(e.lineWidth,n-1),t.options.gridLines.circular)a.beginPath(),a.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),a.closePath(),a.stroke();else{var o=b(t);if(0===o)return;a.beginPath();var r=t.getPointPosition(0,i);a.moveTo(r.x,r.y);for(var s=1;s<o;s++)r=t.getPointPosition(s,i),a.lineTo(r.x,r.y);a.closePath(),a.stroke()}}(o,r,i,e),s.display){var n=l(s.fontColor,v.defaultFontColor);if(u.font=h,u.save(),u.translate(o.xCenter,o.yCenter),u.rotate(d),s.showLabelBackdrop){var a=u.measureText(t).width;u.fillStyle=s.backdropColor,u.fillRect(-a/2-s.backdropPaddingX,-i-c/2-s.backdropPaddingY,a+2*s.backdropPaddingX,c+2*s.backdropPaddingY)}u.textAlign="center",u.textBaseline="middle",u.fillStyle=n,u.fillText(t,0,-i),u.restore()}}}),(t.angleLines.display||t.pointLabels.display)&&function(t){var e=t.ctx,i=t.options,n=i.angleLines,a=i.pointLabels;e.lineWidth=n.lineWidth,e.strokeStyle=n.color;var o,r,s,l,u=t.getDistanceFromCenterForValue(i.ticks.reverse?t.min:t.max),d=x(t);e.textBaseline="top";for(var c=b(t)-1;0<=c;c--){if(n.display){var h=t.getPointPosition(c,u);e.beginPath(),e.moveTo(t.xCenter,t.yCenter),e.lineTo(h.x,h.y),e.stroke(),e.closePath()}if(a.display){var f=t.getPointPosition(c,u+5),g=k.valueAtIndexOrDefault(a.fontColor,c,v.defaultFontColor);e.font=d.font,e.fillStyle=g;var p=t.getIndexAngle(c),m=k.toDegrees(p);e.textAlign=0===(l=m)||180===l?"center":l<180?"left":"right",o=m,r=t._pointLabelSizes[c],s=f,90===o||270===o?s.y-=r.h/2:(270<o||o<90)&&(s.y-=r.h),y(e,t.pointLabels[c]||"",f,d.size)}}}(o)}}});a.registerScaleType("radialLinear",i,t)}},{26:26,34:34,35:35,46:46}],59:[function(t,e,i){"use strict";var x=t(1);x="function"==typeof x?x:window.moment;var r=t(26),m=t(46),n=t(33),a=t(34),p=Number.MIN_SAFE_INTEGER||-9007199254740991,v=Number.MAX_SAFE_INTEGER||9007199254740991,y={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},k=Object.keys(y);function b(t,e){return t-e}function M(t){var e,i,n,a={},o=[];for(e=0,i=t.length;e<i;++e)a[n=t[e]]||(a[n]=!0,o.push(n));return o}function w(t,e,i,n){var a=function(t,e,i){for(var n,a,o,r=0,s=t.length-1;0<=r&&r<=s;){if(a=t[(n=r+s>>1)-1]||null,o=t[n],!a)return{lo:null,hi:o};if(o[e]<i)r=n+1;else{if(!(a[e]>i))return{lo:a,hi:o};s=n-1}}return{lo:o,hi:null}}(t,e,i),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],r=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=r[e]-o[e],l=s?(i-o[e])/s:0,u=(r[n]-o[n])*l;return o[n]+u}function C(t,e){var i=e.parser,n=e.parser||e.format;return"function"==typeof i?i(t):"string"==typeof t&&"string"==typeof n?x(t,n):(t instanceof x||(t=x(t)),t.isValid()?t:"function"==typeof n?n(t):t)}function S(t,e){if(m.isNullOrUndef(t))return null;var i=e.options.time,n=C(e.getRightValue(t),i);return n.isValid()?(i.round&&n.startOf(i.round),n.valueOf()):null}function _(t){for(var e=k.indexOf(t)+1,i=k.length;e<i;++e)if(y[k[e]].common)return k[e]}function D(t,e,i,n){var a,o=n.time,r=o.unit||function(t,e,i,n){var a,o,r,s=k.length;for(a=k.indexOf(t);a<s-1;++a)if(r=(o=y[k[a]]).steps?o.steps[o.steps.length-1]:v,o.common&&Math.ceil((i-e)/(r*o.size))<=n)return k[a];return k[s-1]}(o.minUnit,t,e,i),s=_(r),l=m.valueOrDefault(o.stepSize,o.unitStepSize),u="week"===r&&o.isoWeekday,d=n.ticks.major.enabled,c=y[r],h=x(t),f=x(e),g=[];for(l||(l=function(t,e,i,n){var a,o,r,s=e-t,l=y[i],u=l.size,d=l.steps;if(!d)return Math.ceil(s/(n*u));for(a=0,o=d.length;a<o&&(r=d[a],!(Math.ceil(s/(u*r))<=n));++a);return r}(t,e,r,i)),u&&(h=h.isoWeekday(u),f=f.isoWeekday(u)),h=h.startOf(u?"day":r),(f=f.startOf(u?"day":r))<e&&f.add(1,r),a=x(h),d&&s&&!u&&!o.round&&(a.startOf(s),a.add(~~((h-a)/(c.size*l))*l,r));a<f;a.add(l,r))g.push(+a);return g.push(+a),g}e.exports=function(){var t=n.extend({initialize:function(){if(!x)throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com");this.mergeTicksOptions(),n.prototype.initialize.call(this)},update:function(){var t=this.options;return t.time&&t.time.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),n.prototype.update.apply(this,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),n.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,i,n,a,o,r=this,s=r.chart,l=r.options.time,u=l.unit||"day",d=v,c=p,h=[],f=[],g=[];for(t=0,i=s.data.labels.length;t<i;++t)g.push(S(s.data.labels[t],r));for(t=0,i=(s.data.datasets||[]).length;t<i;++t)if(s.isDatasetVisible(t))if(a=s.data.datasets[t].data,m.isObject(a[0]))for(f[t]=[],e=0,n=a.length;e<n;++e)o=S(a[e],r),h.push(o),f[t][e]=o;else h.push.apply(h,g),f[t]=g.slice(0);else f[t]=[];g.length&&(g=M(g).sort(b),d=Math.min(d,g[0]),c=Math.max(c,g[g.length-1])),h.length&&(h=M(h).sort(b),d=Math.min(d,h[0]),c=Math.max(c,h[h.length-1])),d=S(l.min,r)||d,c=S(l.max,r)||c,d=d===v?+x().startOf(u):d,c=c===p?+x().endOf(u)+1:c,r.min=Math.min(d,c),r.max=Math.max(d+1,c),r._horizontal=r.isHorizontal(),r._table=[],r._timestamps={data:h,datasets:f,labels:g}},buildTicks:function(){var t,e,i,n,a,o,r,s,l,u,d,c,h=this,f=h.min,g=h.max,p=h.options,m=p.time,v=[],b=[];switch(p.ticks.source){case"data":v=h._timestamps.data;break;case"labels":v=h._timestamps.labels;break;case"auto":default:v=D(f,g,h.getLabelCapacity(f),p)}for("ticks"===p.bounds&&v.length&&(f=v[0],g=v[v.length-1]),f=S(m.min,h)||f,g=S(m.max,h)||g,t=0,e=v.length;t<e;++t)f<=(i=v[t])&&i<=g&&b.push(i);return h.min=f,h.max=g,h._unit=m.unit||function(t,e,i,n){var a,o,r=x.duration(x(n).diff(x(i)));for(a=k.length-1;a>=k.indexOf(e);a--)if(o=k[a],y[o].common&&r.as(o)>=t.length)return o;return k[e?k.indexOf(e):0]}(b,m.minUnit,h.min,h.max),h._majorUnit=_(h._unit),h._table=function(t,e,i,n){if("linear"===n||!t.length)return[{time:e,pos:0},{time:i,pos:1}];var a,o,r,s,l,u=[],d=[e];for(a=0,o=t.length;a<o;++a)e<(s=t[a])&&s<i&&d.push(s);for(d.push(i),a=0,o=d.length;a<o;++a)l=d[a+1],r=d[a-1],s=d[a],void 0!==r&&void 0!==l&&Math.round((l+r)/2)===s||u.push({time:s,pos:a/(o-1)});return u}(h._timestamps.data,f,g,p.distribution),h._offsets=(n=h._table,a=b,o=f,r=g,c=d=0,(s=p).offset&&a.length&&(s.time.min||(l=1<a.length?a[1]:r,u=a[0],d=(w(n,"time",l,"pos")-w(n,"time",u,"pos"))/2),s.time.max||(l=a[a.length-1],u=1<a.length?a[a.length-2]:o,c=(w(n,"time",l,"pos")-w(n,"time",u,"pos"))/2)),{left:d,right:c}),h._labelFormat=function(t,e){var i,n,a,o=t.length;for(i=0;i<o;i++){if(0!==(n=C(t[i],e)).millisecond())return"MMM D, YYYY h:mm:ss.SSS a";0===n.second()&&0===n.minute()&&0===n.hour()||(a=!0)}return a?"MMM D, YYYY h:mm:ss a":"MMM D, YYYY"}(h._timestamps.data,m),function(t,e){var i,n,a,o,r=[];for(i=0,n=t.length;i<n;++i)a=t[i],o=!!e&&a===+x(a).startOf(e),r.push({value:a,major:o});return r}(b,h._majorUnit)},getLabelForIndex:function(t,e){var i=this.chart.data,n=this.options.time,a=i.labels&&t<i.labels.length?i.labels[t]:"",o=i.datasets[e].data[t];return m.isObject(o)&&(a=this.getRightValue(o)),n.tooltipFormat?C(a,n).format(n.tooltipFormat):"string"==typeof a?a:C(a,n).format(this._labelFormat)},tickFormatFunction:function(t,e,i,n){var a=this.options,o=t.valueOf(),r=a.time.displayFormats,s=r[this._unit],l=this._majorUnit,u=r[l],d=t.clone().startOf(l).valueOf(),c=a.ticks.major,h=c.enabled&&l&&u&&o===d,f=t.format(n||(h?u:s)),g=h?c:a.ticks.minor,p=m.valueOrDefault(g.callback,g.userCallback);return p?p(f,e,i):f},convertTicksToLabels:function(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(this.tickFormatFunction(x(t[e].value),e,t));return n},getPixelForOffset:function(t){var e=this,i=e._horizontal?e.width:e.height,n=e._horizontal?e.left:e.top,a=w(e._table,"time",t,"pos");return n+i*(e._offsets.left+a)/(e._offsets.left+1+e._offsets.right)},getPixelForValue:function(t,e,i){var n=null;if(void 0!==e&&void 0!==i&&(n=this._timestamps.datasets[i][e]),null===n&&(n=S(t,this)),null!==n)return this.getPixelForOffset(n)},getPixelForTick:function(t){var e=this.getTicks();return 0<=t&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,i=e._horizontal?e.width:e.height,n=e._horizontal?e.left:e.top,a=(i?(t-n)/i:0)*(e._offsets.left+1+e._offsets.left)-e._offsets.right,o=w(e._table,"pos",a,"time");return x(o)},getLabelWidth:function(t){var e=this.options.ticks,i=this.ctx.measureText(t).width,n=m.toRadians(e.maxRotation),a=Math.cos(n),o=Math.sin(n);return i*a+m.valueOrDefault(e.fontSize,r.global.defaultFontSize)*o},getLabelCapacity:function(t){var e=this.options.time.displayFormats.millisecond,i=this.tickFormatFunction(x(t),0,[],e),n=this.getLabelWidth(i),a=this.isHorizontal()?this.width:this.height,o=Math.floor(a/n);return 0<o?o:1}});a.registerScaleType("time",t,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},{1:1,26:26,33:33,34:34,46:46}]},{},[7])(7)});
backend/components/dashboard/appointments/resources/js/appointments-dashboard.js ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function ($) {
2
+ 'use strict';
3
+
4
+ var $container = $('.bookly-js-dashboard-appointments'),
5
+ $dateFilter = $('select#bookly-filter-date', $container),
6
+ totals = {
7
+ $approved: $('.bookly-js-approved', $container),
8
+ $pending : $('.bookly-js-pending', $container),
9
+ $total : $('.bookly-js-total', $container),
10
+ $revenue : $('.bookly-js-revenue', $container),
11
+ },
12
+ href = {
13
+ $approved: $('.bookly-js-href-approved', $container),
14
+ $pending : $('.bookly-js-href-pending', $container),
15
+ $total : $('.bookly-js-href-total', $container),
16
+ $revenue : $('.bookly-js-href-revenue', $container),
17
+ },
18
+ revenue = {
19
+ label: BooklyAppointmentsWidgetL10n.revenue,
20
+ borderColor: 'rgb(255, 99, 132)',
21
+ backgroundColor: 'rgba(255, 99, 132, 0.5)',
22
+ fill: true,
23
+ data: [],
24
+ yAxisID: 'y-axis-1',
25
+ },
26
+ total = {
27
+ label: BooklyAppointmentsWidgetL10n.appointments,
28
+ borderColor: 'rgb(201, 203, 207)',
29
+ backgroundColor: 'rgba(201, 203, 207, 0.5)',
30
+ fill: true,
31
+ data: [],
32
+ yAxisID: 'y-axis-2'
33
+ };
34
+
35
+ var chart = Chart.Line(document.getElementById('canvas').getContext('2d'), {
36
+ data: {
37
+ labels: [],
38
+ datasets: [revenue, total]
39
+ },
40
+ options: {
41
+ responsive: true,
42
+ hoverMode : 'index',
43
+ stacked : false,
44
+ title : {
45
+ display: false,
46
+ },
47
+ elements: {
48
+ line: {
49
+ tension: 0.01
50
+ }
51
+ },
52
+ scales: {
53
+ yAxes: [{
54
+ type: 'linear',
55
+ display: true,
56
+ position: 'left',
57
+ id: 'y-axis-1',
58
+ scaleLabel: {
59
+ labelString: BooklyAppointmentsWidgetL10n.revenue + ' ('+ BooklyAppointmentsWidgetL10n.currency +')',
60
+ display: true,
61
+ }
62
+ }, {
63
+ type: 'linear',
64
+ display: true,
65
+ position: 'right',
66
+ id: 'y-axis-2',
67
+ scaleLabel: {
68
+ labelString: BooklyAppointmentsWidgetL10n.appointments,
69
+ display: true,
70
+ }
71
+ }],
72
+ },
73
+ legend: {
74
+ position: 'bottom',
75
+ },
76
+ }
77
+ });
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',
85
+ data : {
86
+ action : 'bookly_get_appointments_data_for_dashboard',
87
+ csrf_token: BooklyAppointmentsWidgetL10n.csrfToken,
88
+ range : data
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) {
96
+ revenue.data.push(item.revenue);
97
+ total.data.push(item.total);
98
+ });
99
+ totals.$revenue.html(response.data.totals.revenue);
100
+ totals.$approved.html(response.data.totals.approved);
101
+ totals.$pending.html(response.data.totals.pending);
102
+ totals.$total.html(response.data.totals.total);
103
+
104
+ href.$revenue.attr('href', response.data.filters.revenue);
105
+ href.$approved.attr('href',response.data.filters.approved);
106
+ href.$pending.attr('href', response.data.filters.pending);
107
+ href.$total.attr('href', response.data.filters.total);
108
+
109
+ chart.data.labels = response.data.labels;
110
+ chart.update();
111
+ }
112
+ });
113
+ }
114
+ );
115
+ $dateFilter.on('change', function () {
116
+ $(document.body).trigger('bookly.dateRange.changed', [$dateFilter.val()]);
117
+ }).trigger('change');
118
+ });
backend/components/dashboard/appointments/templates/block.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
+ <div class="bookly-js-dashboard-appointments">
3
+ <div class="row bookly-padding-bottom-lg">
4
+ <div class="col-sm-6 col-md-3">
5
+ <div class="row">
6
+ <div class="col-xs-4 text-right">
7
+ <i class="far fa-calendar-check fa-w-14 fa-5x text-muted"></i>
8
+ </div>
9
+ <div class="col-xs-8">
10
+ <div style="font-size: 40px" class="bookly-js-approved">&nbsp;</div>
11
+ <span style="font-size: 20px"><a href="#" class="bookly-js-href-approved"><?php esc_html_e( 'Approved appointments', 'bookly' ) ?></a></span>
12
+ </div>
13
+ </div>
14
+ </div>
15
+ <div class="col-sm-6 col-md-3">
16
+ <div class="row">
17
+ <div class="col-xs-4 text-right">
18
+ <i class="fas fa-hourglass-half fa-w-14 fa-5x text-muted"></i>
19
+ </div>
20
+ <div class="col-xs-8">
21
+ <div style="font-size: 40px" class="bookly-js-pending">&nbsp;</div>
22
+ <span style="font-size: 20px"><a href="#" class="bookly-js-href-pending"><?php esc_html_e( 'Pending appointments', 'bookly' ) ?></a></span>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ <div class="col-sm-6 col-md-3">
27
+ <div class="row">
28
+ <div class="col-xs-4 text-right">
29
+ <i class="far fa-calendar fa-w-14 fa-5x text-muted"></i>
30
+ </div>
31
+ <div class="col-xs-8">
32
+ <div style="font-size: 40px" class="bookly-js-total">&nbsp;</div>
33
+ <span style="font-size: 20px"><a href="#" class="bookly-js-href-total"><?php esc_html_e( 'Total appointments', 'bookly' ) ?></a></span>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ <div class="col-sm-6 col-md-3">
38
+ <div class="row">
39
+ <div class="col-xs-4 text-right">
40
+ <i class="far fa-money-bill-alt fa-w-14 fa-5x text-muted"></i>
41
+ </div>
42
+ <div class="col-xs-8">
43
+ <div style="font-size: 40px" class="bookly-js-revenue">&nbsp;</div>
44
+ <span style="font-size: 20px"><a href="#" class="bookly-js-href-revenue"><?php esc_html_e( 'Revenue', 'bookly' ) ?></a></span>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ <div class="panel panel-default bookly-margin-top-md">
50
+ <div class="panel-body">
51
+ <div>
52
+ <canvas id="canvas" style="width:100%;height: 500px"></canvas>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </div>
backend/components/dashboard/appointments/templates/widget.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
+ <div class="bookly-js-dashboard-appointments">
3
+ <div style="text-align: right">
4
+ <span>
5
+ <?php esc_html_e( 'Period', 'bookly' ) ?>
6
+ </span>
7
+ <span>
8
+ <select id="bookly-filter-date">
9
+ <option value="<?php echo date( 'Y-m-d', strtotime( '-7 days' ) ) ?> - <?php echo date( 'Y-m-d' ) ?>"><?php esc_html_e( 'Last 7 days', 'bookly' ) ?></option>
10
+ <option value="<?php echo date( 'Y-m-d', strtotime( '-30 days' ) ) ?> - <?php echo date( 'Y-m-d' ) ?>"><?php esc_html_e( 'Last 30 days', 'bookly' ) ?></option>
11
+ <option value="<?php echo date( 'Y-m-d', strtotime( 'first day of this month' ) ) ?> - <?php echo date( 'Y-m-d', strtotime( 'last day of this month' ) ) ?>"><?php esc_html_e( 'This month', 'bookly' ) ?></option>
12
+ <option value="<?php echo date( 'Y-m-d', strtotime( 'first day of previous month' ) ) ?> - <?php echo date( 'Y-m-d', strtotime( 'last day of previous month' ) ) ?>"><?php esc_html_e( 'Last month', 'bookly' ) ?></option>
13
+ </select>
14
+ </span>
15
+ </div>
16
+ <table style="width: 100%">
17
+ <tr>
18
+ <td><?php esc_html_e( 'Approved appointments', 'bookly' ) ?></td>
19
+ <td style="text-align: right"><a href="#" class="bookly-js-approved bookly-js-href-approved"></a></td>
20
+ </tr>
21
+ <tr>
22
+ <td><?php esc_html_e( 'Pending appointments', 'bookly' ) ?></td>
23
+ <td style="text-align: right"><a href="#" class="bookly-js-pending bookly-js-href-pending"></a></td>
24
+ </tr>
25
+ <tr>
26
+ <td><?php esc_html_e( 'Total appointments', 'bookly' ) ?></td>
27
+ <td style="text-align: right"><a href="#" class="bookly-js-total bookly-js-href-total"></a></td>
28
+ </tr>
29
+ <tr>
30
+ <td><?php esc_html_e( 'Revenue', 'bookly' ) ?></td>
31
+ <td style="text-align: right"><a href="#" class="bookly-js-revenue bookly-js-href-revenue"></a></td>
32
+ </tr>
33
+ </table>
34
+ <hr>
35
+ <canvas id="canvas" style="width:100%;height: 200px"></canvas>
36
+ </div>
backend/components/dialogs/notifications/Dialog.php CHANGED
@@ -32,7 +32,6 @@ class Dialog extends SmsDialog
32
  wp_localize_script( 'bookly-notification-dialog.js', 'BooklyNotificationDialogL10n', array(
33
  'csrfToken' => BooklyLib\Utils\Common::getCsrfToken(),
34
  'recurringActive' => (int) BooklyLib\Config::recurringAppointmentsActive(),
35
- 'gateway' => 'email',
36
  'defaultNotification' => self::getDefaultNotification(),
37
  'title' => array(
38
  'container' => __( 'Email', 'bookly' ),
32
  wp_localize_script( 'bookly-notification-dialog.js', 'BooklyNotificationDialogL10n', array(
33
  'csrfToken' => BooklyLib\Utils\Common::getCsrfToken(),
34
  'recurringActive' => (int) BooklyLib\Config::recurringAppointmentsActive(),
 
35
  'defaultNotification' => self::getDefaultNotification(),
36
  'title' => array(
37
  'container' => __( 'Email', 'bookly' ),
backend/components/dialogs/notifications/templates/_editor.php CHANGED
@@ -3,7 +3,7 @@
3
  <div class="col-md-12">
4
  <div class="form-group">
5
  <label><?php esc_html_e( 'Body', 'bookly' ) ?></label>
6
- <?php wp_editor( '', 'bookly-js-tinymce-message', array(
7
  'textarea_name' => 'notification[message]',
8
  'media_buttons' => false,
9
  'editor_height' => 250,
3
  <div class="col-md-12">
4
  <div class="form-group">
5
  <label><?php esc_html_e( 'Body', 'bookly' ) ?></label>
6
+ <?php wp_editor( '', 'bookly-js-message', array(
7
  'textarea_name' => 'notification[message]',
8
  'media_buttons' => false,
9
  'editor_height' => 250,
backend/components/dialogs/notifications/templates/_subject.php CHANGED
@@ -4,6 +4,7 @@
4
  <div class="form-group">
5
  <label for="notification_subject"><?php esc_attr_e( 'Subject', 'bookly' ) ?></label>
6
  <input type="text" class="form-control" id="notification_subject" name="notification[subject]" value=""/>
 
7
  </div>
8
  </div>
9
  </div>
4
  <div class="form-group">
5
  <label for="notification_subject"><?php esc_attr_e( 'Subject', 'bookly' ) ?></label>
6
  <input type="text" class="form-control" id="notification_subject" name="notification[subject]" value=""/>
7
+ <input type="hidden" name="notification[gateway]" value="email"/>
8
  </div>
9
  </div>
10
  </div>
backend/components/dialogs/service/categories/Dialog.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Service\Categories;
3
+
4
+ use Bookly\Lib;
5
+ use Bookly\Backend\Modules\Services\Proxy;
6
+
7
+ /**
8
+ * Class Dialog
9
+ * @package Bookly\Backend\Components\Dialogs\Service\Categories
10
+ */
11
+ class Dialog extends Lib\Base\Component
12
+ {
13
+ /**
14
+ * Render create service dialog.
15
+ */
16
+ public static function render()
17
+ {
18
+ self::enqueueStyles( array(
19
+ 'frontend' => array( 'css/ladda.min.css', ),
20
+ 'backend' => array( 'css/fontawesome-all.min.css', 'css/select2.min.css' ),
21
+ ) );
22
+
23
+ self::enqueueScripts( array(
24
+ 'frontend' => array(
25
+ 'js/spin.min.js' => array( 'jquery', ),
26
+ 'js/ladda.min.js' => array( 'jquery', ),
27
+ ),
28
+ 'backend' => array(
29
+ 'js/select2.full.min.js' => array( 'jquery' ),
30
+ ),
31
+ 'module' => array( 'js/service-categories-dialog.js' => array( 'jquery', ) ),
32
+ ) );
33
+
34
+ wp_localize_script( 'bookly-service-categories-dialog.js', 'BooklyServiceCreateDialogL10n', array(
35
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
36
+ ) );
37
+
38
+ self::renderTemplate( 'dialog' );
39
+ }
40
+ }
backend/components/dialogs/service/categories/resources/js/service-categories-dialog.js ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function ($) {
2
+ 'use strict';
3
+
4
+ var $dialog = $('#bookly-service-categories-modal'),
5
+ $categories = $('#bookly-services-categories', $dialog),
6
+ $template = $('#bookly-new-category-template'),
7
+ $newCategory = $('#bookly-js-new-category', $dialog),
8
+ $servicesList = $('#services-list'),
9
+ $save = $('#bookly-save', $dialog),
10
+ new_category_id
11
+ ;
12
+ // Add category
13
+ $newCategory.on('click', function () {
14
+ $categories.append(
15
+ $template.clone().show().html()
16
+ .replace(/{{id}}/g, 'new' + ++new_category_id)
17
+ .replace(/{{name}}/g, '')
18
+ );
19
+ $categories.find('.form-group:last input[name="category_name"]').focus();
20
+ });
21
+ // Remove category
22
+ $categories.on('click', '.bookly-js-delete-category', function (e) {
23
+ e.preventDefault();
24
+ $(this).closest('li.form-group').remove();
25
+ });
26
+ // Save categories
27
+ $save.on('click', function (e) {
28
+ e.preventDefault();
29
+ var ladda = Ladda.create(this),
30
+ categories = [];
31
+ ladda.start();
32
+ $categories.find('li').each(function (position, category) {
33
+ categories.push({id: $(category).find('[name="category_id"]').val(), name: $(category).find('[name="category_name"]').val()});
34
+ });
35
+ $.post(
36
+ ajaxurl,
37
+ {
38
+ action : 'bookly_update_service_categories',
39
+ categories: categories,
40
+ csrf_token: BooklyL10n.csrfToken
41
+ },
42
+ function (response) {
43
+ if (response.success) {
44
+ BooklyL10n.categories = response.data;
45
+ $servicesList.DataTable().ajax.reload();
46
+ $dialog.modal('hide');
47
+ }
48
+ ladda.stop();
49
+ });
50
+ });
51
+
52
+ $dialog.off().on('show.bs.modal', function () {
53
+ new_category_id = 0;
54
+ // Show categories list
55
+ $categories.html('');
56
+ BooklyL10n.categories.forEach(function (category) {
57
+ $categories.append(
58
+ $template.clone().show().html()
59
+ .replace(/{{id}}/g, category.id)
60
+ .replace(/{{name}}/g, category.name)
61
+ );
62
+ });
63
+ });
64
+
65
+ $categories.sortable({
66
+ axis : 'y',
67
+ handle: '.bookly-js-draghandle',
68
+ });
69
+ });
backend/components/dialogs/service/categories/templates/dialog.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components\Controls\Buttons;
3
+ use Bookly\Backend\Components\Controls;
4
+ use Bookly\Lib;
5
+ ?>
6
+ <form id="bookly-service-categories-modal" class="modal fade" tabindex=-1 role="dialog">
7
+ <div class="modal-dialog">
8
+ <div class="modal-content">
9
+ <div class="modal-header">
10
+ <button type="button" class="close" data-dismiss="modal"><span>×</span></button>
11
+ <div class="modal-title h2"><?php esc_html_e( 'Categories', 'bookly' ) ?></div>
12
+ </div>
13
+ <div class="modal-body">
14
+ <div class="form-inline bookly-margin-bottom-lg text-right">
15
+ <div class="form-group">
16
+ <?php Controls\Buttons::renderAdd( 'bookly-js-new-category', 'btn-success', esc_html__( 'Add category', 'bookly' ) ) ?>
17
+ </div>
18
+ </div>
19
+ <ul id="bookly-services-categories"></ul>
20
+ </div>
21
+ <div class="modal-footer">
22
+ <?php Buttons::renderSubmit() ?>
23
+ <?php Buttons::renderCustom( null, 'btn-lg btn-default', esc_html__( 'Close', 'bookly' ), array( 'data-dismiss' => 'modal' ) ) ?>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ </form>
28
+ <div class="collapse" id="bookly-new-category-template">
29
+ <li class="form-group">
30
+ <div class="row" style="line-height: 34px;">
31
+ <input type="hidden" name="category_id" value="{{id}}"/>
32
+ <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>
33
+ <div class="col-xs-10"><input type="text" class="form-control" name="category_name" value="{{name}}"/></div>
34
+ <div class="col-xs-1"><a href="#"><i class="fa fa-fw fa-trash fa-lg text-danger bookly-js-delete-category" title="<?php esc_attr_e( 'Delete', 'bookly' ) ?>"></i></a></div>
35
+ </div>
36
+ </li>
37
+ </div>
backend/components/dialogs/service/create/Dialog.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Service\Create;
3
+
4
+ use Bookly\Lib;
5
+ use Bookly\Backend\Modules\Services\Proxy;
6
+
7
+ /**
8
+ * Class Dialog
9
+ * @package Bookly\Backend\Components\Dialogs\Service\Create
10
+ */
11
+ class Dialog extends Lib\Base\Component
12
+ {
13
+ /**
14
+ * Render create service dialog.
15
+ */
16
+ public static function render()
17
+ {
18
+ self::enqueueStyles( array(
19
+ 'frontend' => array( 'css/ladda.min.css', ),
20
+ 'backend' => array( 'css/fontawesome-all.min.css', 'css/select2.min.css' ),
21
+ ) );
22
+
23
+ self::enqueueScripts( array(
24
+ 'frontend' => array(
25
+ 'js/spin.min.js' => array( 'jquery', ),
26
+ 'js/ladda.min.js' => array( 'jquery', ),
27
+ ),
28
+ 'backend' => array(
29
+ 'js/select2.full.min.js' => array( 'jquery' ),
30
+ ),
31
+ 'module' => array( 'js/service-create-dialog.js' => array( 'jquery', ) ),
32
+ ) );
33
+
34
+ $type_icons = Proxy\Shared::prepareServiceIcons( array( Lib\Entities\Service::TYPE_SIMPLE => 'fa-calendar-day' ) );
35
+
36
+ wp_localize_script( 'bookly-service-create-dialog.js', 'BooklyServiceCreateDialogL10n', array(
37
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
38
+ ) );
39
+
40
+ self::renderTemplate( 'dialog', compact( 'type_icons' ) );
41
+ }
42
+ }
backend/components/dialogs/service/create/resources/js/service-create-dialog.js ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function ($) {
2
+ 'use strict';
3
+
4
+ var $modal = $('#bookly-create-service-modal'),
5
+ $serviceTitle = $('#bookly-new-service-title', $modal),
6
+ $serviceType = $('#bookly-new-service-type', $modal),
7
+ $saveBtn = $('.bookly-js-save', $modal),
8
+ $servicesList = $('#services-list')
9
+ ;
10
+
11
+ function format(option) {
12
+ return option.id && option.element.dataset.icon ? '<i class="fa fa-fw ' + option.element.dataset.icon + '"></i> ' + option.text : option.text;
13
+ }
14
+
15
+
16
+ $serviceType.select2({
17
+ minimumResultsForSearch: -1,
18
+ width : '100%',
19
+ theme : 'bootstrap',
20
+ allowClear : false,
21
+ templateResult : format,
22
+ templateSelection : format,
23
+ escapeMarkup : function (m) {
24
+ return m;
25
+ }
26
+ });
27
+ $modal.on('shown.bs.modal', function () {
28
+ $serviceTitle.focus();
29
+ });
30
+ $saveBtn.on('click', function (e) {
31
+ e.preventDefault();
32
+ var ladda = Ladda.create(this),
33
+ data = $modal.serializeArray();
34
+ ladda.start();
35
+ $.post(ajaxurl, data, function (response) {
36
+ if (response.success) {
37
+ $servicesList.DataTable().ajax.reload();
38
+ $serviceTitle.val('');
39
+ $serviceType.val('simple').trigger('change');
40
+ $modal.modal('hide');
41
+ } else {
42
+ booklyAlert({error: [response.data.message]});
43
+ }
44
+ ladda.stop();
45
+ });
46
+ });
47
+ });
backend/components/dialogs/service/create/templates/dialog.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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\Modules\Services\Proxy;
5
+ use Bookly\Lib;
6
+ ?>
7
+ <form id="bookly-create-service-modal" class="modal fade" tabindex=-1 role="dialog">
8
+ <div class="modal-dialog">
9
+ <div class="modal-content">
10
+ <div class="modal-header">
11
+ <button type="button" class="close" data-dismiss="modal"><span>×</span></button>
12
+ <div class="modal-title h2"><?php esc_html_e( 'Create service', 'bookly' ) ?></div>
13
+ </div>
14
+ <div class="modal-body">
15
+ <div class="form-group bookly-margin-bottom-md">
16
+ <div class="form-field form-required">
17
+ <label for="bookly-new-service-title"><?php _e( 'Title', 'bookly' ) ?></label>
18
+ <input class="form-control bookly-js-new-service-title" id="bookly-new-service-title" name="title" type="text">
19
+ </div>
20
+ </div>
21
+ <?php if ( count( $service_types = Proxy\Shared::prepareServiceTypes( array( Lib\Entities\Service::TYPE_SIMPLE => ucfirst( Lib\Entities\Service::TYPE_SIMPLE ) ) ) ) > 1 ) : ?>
22
+ <div class="form-group bookly-margin-bottom-md">
23
+ <div class="form-field form-required">
24
+ <label for="bookly-new-service-type"><?php _e( 'Type', 'bookly' ) ?></label>
25
+ <select class="form-control bookly-js-new-service-type" id="bookly-new-service-type" name="type">
26
+ <?php foreach ( $service_types as $type => $title ): ?>
27
+ <option data-icon="<?php echo esc_attr( $type_icons[ $type ] ) ?>" value="<?php echo $type ?>"><?php echo $title ?></option>
28
+ <?php endforeach ?>
29
+ </select>
30
+ </div>
31
+ </div>
32
+ <?php endif ?>
33
+ </div>
34
+ <div class="modal-footer">
35
+ <input type="hidden" name="action" value="bookly_create_service"/>
36
+ <?php Inputs::renderCsrf() ?>
37
+ <?php Buttons::renderSubmit( null, 'bookly-js-save', esc_html__( 'Create service', 'bookly' ) ) ?>
38
+ <?php Buttons::renderCustom( null, 'btn-lg btn-default', esc_html__( 'Close', 'bookly' ), array( 'data-dismiss' => 'modal' ) ) ?>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </form>
backend/components/dialogs/service/edit/Dialog.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Components\Dialogs\Service\Edit;
3
+
4
+ use Bookly\Lib;
5
+ use Bookly\Backend\Modules\Services\Page;
6
+
7
+ /**
8
+ * Class Dialog
9
+ * @package Bookly\Backend\Components\Dialogs\Service\Edit
10
+ */
11
+ class Dialog extends Lib\Base\Component
12
+ {
13
+ /**
14
+ * Render create service dialog.
15
+ */
16
+ public static function render()
17
+ {
18
+ self::enqueueStyles( array(
19
+ 'frontend' => array( 'css/ladda.min.css', ),
20
+ 'backend' => array( 'css/fontawesome-all.min.css', 'css/select2.min.css' ),
21
+ ) );
22
+
23
+ self::enqueueScripts( array(
24
+ 'frontend' => array(
25
+ 'js/spin.min.js' => array( 'jquery', ),
26
+ 'js/ladda.min.js' => array( 'jquery', ),
27
+ ),
28
+ 'backend' => array(
29
+ 'js/select2.full.min.js' => array( 'jquery' ),
30
+ ),
31
+ 'module' => array( 'js/service-edit-dialog.js' => array( 'jquery', ) ),
32
+ ) );
33
+
34
+ $staff = array();
35
+ foreach ( Page::getStaffDropDownData() as $category ) {
36
+ foreach ( $category['items'] as $employee ) {
37
+ $staff[ $employee['id'] ] = $employee['full_name'];
38
+ }
39
+ }
40
+
41
+ wp_localize_script( 'bookly-service-edit-dialog.js', 'BooklyServiceEditDialogL10n', array(
42
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
43
+ 'staff' => $staff,
44
+ ) );
45
+
46
+ self::renderTemplate( 'dialog' );
47
+ }
48
+ }
backend/components/dialogs/service/edit/resources/js/service-edit-dialog.js ADDED
@@ -0,0 +1,278 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function ($) {
2
+ 'use strict';
3
+ var $servicesList = $('#services-list'),
4
+ $serviceDialog = $('#bookly-edit-service-modal'),
5
+ $containers = $('.bookly-js-service-containers .tab-pane > div'),
6
+ $serviceLoading = $('.bookly-js-service-containers > .bookly-loading', $serviceDialog),
7
+ $serviceTabs = $('.bookly-js-service-tabs', $serviceDialog),
8
+ $wrapContainer = $('.bookly-js-service-containers', $serviceDialog),
9
+ $generalContainer = $('#bookly-services-general-container', $serviceDialog),
10
+ $advancedContainer = $('#bookly-services-advanced-container', $serviceDialog),
11
+ $timeContainer = $('#bookly-services-time-container', $serviceDialog),
12
+ $extrasContainer = $('#bookly-services-extras-container', $serviceDialog),
13
+ $specialDaysContainer = $('#bookly-services-special-days-container', $serviceDialog),
14
+ $scheduleContainer = $('#bookly-services-schedule-container', $serviceDialog),
15
+ $additionalContainer = $('#bookly-service-additional-html', $serviceDialog),
16
+ $saveButton = $('#bookly-save', $serviceDialog),
17
+ updateStaffChoice = null,
18
+ $updateStaffModal = $('#bookly-update-service-settings'),
19
+ $serviceType = $('[name="type"]', $serviceDialog),
20
+ $serviceId = $('[name="id"]', $serviceDialog),
21
+ $serviceError = $('.bookly-js-service-error', $serviceDialog)
22
+ ;
23
+
24
+ $servicesList.on('click', '[data-action="edit"]', function () {
25
+ let data = $servicesList.DataTable().row($(this).closest('td')).data();
26
+ $containers.html('');
27
+ $serviceTabs.hide();
28
+ $serviceLoading.show();
29
+ $serviceDialog.modal('show');
30
+ $.ajax({
31
+ url : ajaxurl,
32
+ type : 'POST',
33
+ data : {
34
+ action : 'bookly_get_service_data',
35
+ csrf_token: BooklyServiceEditDialogL10n.csrfToken,
36
+ id : data.id
37
+ },
38
+ dataType: 'json',
39
+ success : function (response) {
40
+ $generalContainer.html(response.data.general_html);
41
+ $advancedContainer.html(response.data.advanced_html);
42
+ $timeContainer.html(response.data.time_html);
43
+ $extrasContainer.html(response.data.extras_html);
44
+ $specialDaysContainer.html(response.data.special_days_html);
45
+ $scheduleContainer.html(response.data.schedule_html);
46
+ $additionalContainer.html(response.data.additional_html);
47
+ $serviceId.val(data.id);
48
+ $serviceType.val(response.data.type);
49
+
50
+ /**
51
+ * Init general tab
52
+ */
53
+ var $panel = $generalContainer,
54
+ $colorPicker = $panel.find('.bookly-js-color-picker'),
55
+ $visibility = $panel.find('input[name="visibility"]'),
56
+ $providers = $panel.find('.bookly-js-providers'),
57
+ $staffPreference = $panel.find('[name=staff_preference]'),
58
+ $prefStaffOrder = $panel.find('.bookly-js-preferred-staff-order'),
59
+ $prefStaffList = $panel.find('.bookly-js-preferred-staff-list'),
60
+ $prefPeriod = $panel.find('.bookly-js-preferred-period'),
61
+ staff_data = {}
62
+ ;
63
+ // Color picker.
64
+ initColorPicker($colorPicker);
65
+ // Visibility.
66
+ $visibility.off().on('change', function () {
67
+ $panel.find('.bookly-js-groups-list').toggle($panel.find('input[name="visibility"]:checked').val() === 'group');
68
+ });
69
+ // Providers.
70
+ $providers.booklyDropdown();
71
+ // Providers preference.
72
+ $.each(response.data.staff, function (index, category) {
73
+ $.each(category.items, function (index, staff) {
74
+ staff_data[staff.id] = staff.full_name;
75
+ });
76
+ });
77
+ $staffPreference.on('change', function () {
78
+ if (this.value === 'order' && $prefStaffList.html() === '') {
79
+ var $staffIds = $staffPreference.data('default'),
80
+ $draggable = $('<div class="bookly-flex-cell"><i class="bookly-js-handle bookly-margin-right-sm bookly-icon bookly-icon-draghandle bookly-cursor-move"></i><input type="hidden" name="positions[]" /></div>');
81
+ $draggable.find('i').attr('title', BooklyL10n.reorder);
82
+ $staffIds.forEach(function (staffId) {
83
+ $prefStaffList.append($draggable.clone().find('input').val(staffId).end().append(staff_data[staffId]));
84
+ });
85
+ Object.keys(BooklyServiceEditDialogL10n.staff).forEach(function (staffId) {
86
+ staffId = parseInt(staffId);
87
+ if ($staffIds.indexOf(staffId) === -1) {
88
+ $prefStaffList.append($draggable.clone().find('input').val(staffId).end().append(staff_data[staffId]));
89
+ }
90
+ });
91
+ }
92
+ $prefStaffOrder.toggle(this.value === 'order');
93
+ $prefPeriod.toggle(this.value === 'least_occupied_for_period' || this.value === 'most_occupied_for_period');
94
+ }).trigger('change');
95
+ // Preferred providers order.
96
+ $prefStaffList.sortable({
97
+ axis : 'y',
98
+ handle: '.bookly-js-handle',
99
+ update: function () {
100
+ var positions = [];
101
+ $prefStaffList.find('input').each(function () {
102
+ positions.push(this.value);
103
+ });
104
+ $.ajax({
105
+ type: 'POST',
106
+ url : ajaxurl,
107
+ data: {
108
+ action : 'bookly_pro_update_service_staff_preference_orders',
109
+ service_id: $panel.data('service-id'),
110
+ positions : positions,
111
+ csrf_token: BooklyServiceEditDialogL10n.csrfToken
112
+ }
113
+ });
114
+ }
115
+ });
116
+
117
+ /**
118
+ * Init advanced tab
119
+ */
120
+ $('.bookly-js-frequencies').booklyDropdown();
121
+
122
+ $advancedContainer.off().on('change', '[name="recurrence_enabled"]', function () {
123
+ $advancedContainer.find('.bookly-js-frequencies').closest('.form-group').toggle(this.value != '0');
124
+ checkRepeatError($advancedContainer);
125
+ }).on('change', '.bookly-js-frequencies input[type="checkbox"]', function () {
126
+ checkRepeatError($advancedContainer);
127
+ }).on('change', '[name=limit_period]', function () {
128
+ $advancedContainer.find('[name=appointments_limit]').closest('.form-group').toggle(this.value !== 'off');
129
+ }).on('keyup change', '.bookly-js-capacity', function () {
130
+ checkCapacityError($advancedContainer);
131
+ });
132
+
133
+ /**
134
+ * Init time tab
135
+ */
136
+ var $duration = $('.bookly-js-duration', $timeContainer),
137
+ $unitsBlock = $('.bookly-js-units-block', $timeContainer),
138
+ $unitDuration = $('.bookly-js-unit-duration', $timeContainer)
139
+ ;
140
+ // Duration (and unit duration).
141
+ $duration.off().on('change', function () {
142
+ if (this.value === 'custom') {
143
+ $serviceDialog.find('.bookly-js-price-label').hide();
144
+ $serviceDialog.find('.bookly-js-unit-price-label').show();
145
+ $unitsBlock.show();
146
+ } else {
147
+ $serviceDialog.find('.bookly-js-price-label').show();
148
+ $serviceDialog.find('.bookly-js-unit-price-label').hide();
149
+ $unitDuration.val(this.value);
150
+ $unitsBlock.hide();
151
+ }
152
+ }).trigger('change');
153
+ $duration.add($unitDuration).on('change', function () {
154
+ $serviceDialog.find('.bookly-js-start-time-info').toggle(this.value >= 86400);
155
+ });
156
+
157
+ /**
158
+ * Init other settings.
159
+ */
160
+ $('.bookly-js-simple-dropdown', $serviceDialog).booklyDropdown();
161
+
162
+ // Fields that are repeated at staff level.
163
+ $serviceDialog.find('.bookly-js-question').each(function () {
164
+ $(this).data('last_value', this.value);
165
+ });
166
+
167
+ $serviceDialog.find('.bookly-js-service').hide();
168
+ $serviceDialog.find('.bookly-js-service-' + response.data.type).css('display', '');
169
+
170
+ // Switch to 'General' tab if active is not visible
171
+ if ($('.bookly-js-service-tabs li.active').css('display') == 'none') {
172
+ $('#bookly-services-general-tab').click();
173
+ }
174
+
175
+ $(document.body).trigger('service.initForm', [$wrapContainer, data.id]);
176
+
177
+ $serviceTabs.show();
178
+ $serviceLoading.hide();
179
+
180
+ /**
181
+ * Save service
182
+ */
183
+ $saveButton.off().on('click', function (e) {
184
+ e.preventDefault();
185
+ var showModal = false;
186
+ if (updateStaffChoice === null) {
187
+ $serviceDialog.find('.bookly-js-question').each(function () {
188
+ if ($(this).data('last_value') !== this.value && ($(this).attr('name') != 'price' || $serviceType.val() == 'simple' || $serviceType.val() == 'package')) {
189
+ showModal = true;
190
+ }
191
+ });
192
+ }
193
+ if (showModal) {
194
+ $updateStaffModal.data('panel', $panel).modal('show');
195
+ } else {
196
+ submitServiceFrom($serviceDialog, updateStaffChoice);
197
+ }
198
+ });
199
+
200
+ /**
201
+ * Update staff services modal
202
+ */
203
+ $updateStaffModal.off().on('click', '.bookly-yes', function () {
204
+ $updateStaffModal.modal('hide');
205
+ if ($('#bookly-remember-my-choice').prop('checked')) {
206
+ updateStaffChoice = true;
207
+ }
208
+ submitServiceFrom($serviceDialog, 1);
209
+ }).on('click', '.bookly-no', function () {
210
+ if ($('#bookly-remember-my-choice').prop('checked')) {
211
+ updateStaffChoice = false;
212
+ }
213
+ submitServiceFrom($serviceDialog, 0);
214
+ });
215
+
216
+ /**
217
+ * Local functions
218
+ */
219
+ function initColorPicker($jquery_collection) {
220
+ $jquery_collection.each(function () {
221
+ $(this).data('last-color', $(this).val());
222
+ });
223
+ $jquery_collection.wpColorPicker({
224
+ width: 200
225
+ });
226
+ }
227
+
228
+ function checkRepeatError($panel) {
229
+ if ($panel.find('[name="recurrence_enabled"]').val() == 1 && $panel.find('[name="recurrence_frequencies[]"]:checked').length == 0) {
230
+ $panel.find('[name="recurrence_enabled"]').closest('.form-group').addClass('has-error');
231
+ $panel.find('.bookly-js-frequencies').closest('.form-group').find('button.dropdown-toggle').addClass('btn-danger').removeClass('btn-default');
232
+ $serviceError.find('.bookly-js-recurrence-error').remove();
233
+ $serviceError.append('<div class="bookly-js-recurrence-error bookly-js-error">' + BooklyL10n.recurrence_error + '</div>');
234
+ } else {
235
+ $panel.find('[name="recurrence_enabled"]').closest('.form-group').removeClass('has-error');
236
+ $panel.find('.bookly-js-frequencies').closest('.form-group').find('button.dropdown-toggle').removeClass('btn-danger').addClass('btn-default');
237
+ $serviceError.find('.bookly-js-recurrence-error').remove();
238
+ }
239
+ $saveButton.prop('disabled', $serviceError.find('.bookly-js-error').length > 0);
240
+ }
241
+
242
+ function checkCapacityError($panel) {
243
+ if (parseInt($panel.find('[name="capacity_min"]').val()) > parseInt($panel.find('[name="capacity_max"]').val())) {
244
+ $serviceError.find('.bookly-js-capacity-error').remove();
245
+ $serviceError.append('<div class="bookly-js-capacity-error bookly-js-error">' + BooklyL10n.capacity_error + '</div>');
246
+ $panel.find('[name="capacity_min"]').closest('.form-group').addClass('has-error');
247
+ } else {
248
+ $serviceError.find('.bookly-js-capacity-error').remove();
249
+ $panel.find('[name="capacity_min"]').closest('.form-group').removeClass('has-error');
250
+ }
251
+ $saveButton.prop('disabled', $serviceError.find('.bookly-js-error').length > 0);
252
+ }
253
+
254
+ function submitServiceFrom($panel, update_staff) {
255
+ $panel.find('input[name=update_staff]').val(update_staff ? 1 : 0);
256
+ $panel.find('input[name=package_service_changed]').val($panel.find('[name=package_service]').data('last_value') != $panel.find('[name=package_service]').val() ? 1 : 0);
257
+ var ladda = rangeTools.ladda($panel.find('#bookly-save').get(0)),
258
+ data = $panel.find('form').serializeArray();
259
+ $(document.body).trigger( 'service.submitForm', [ $panel, data ] );
260
+ $.post(ajaxurl, data, function (response) {
261
+ if (response.success) {
262
+ booklyAlert(response.data.alert);
263
+ if (response.data.new_extras_list) {
264
+ ExtrasL10n.list = response.data.new_extras_list
265
+ }
266
+ $servicesList.DataTable().ajax.reload();
267
+ $serviceDialog.modal('hide');
268
+ } else {
269
+ booklyAlert({error: [response.data.message]});
270
+ }
271
+ }, 'json').always(function() {
272
+ ladda.stop();
273
+ });
274
+ }
275
+ }
276
+ });
277
+ });
278
+ });
backend/components/dialogs/service/edit/templates/dialog.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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\Modules\Services\Proxy;
5
+ use Bookly\Lib;
6
+
7
+ ?>
8
+ <div id="bookly-edit-service-modal" class="modal fade" tabindex=-1 role="dialog">
9
+ <div class="modal-dialog modal-lg">
10
+ <div class="modal-content">
11
+ <form>
12
+ <div class="modal-header">
13
+ <button type="button" class="close" data-dismiss="modal"><span>×</span></button>
14
+ <div class="modal-title h2"><?php esc_html_e( 'Edit service', 'bookly' ) ?></div>
15
+ </div>
16
+ <div class="modal-body">
17
+ <ul class="nav nav-tabs nav-justified bookly-nav-justified bookly-js-service-tabs">
18
+ <li class="active">
19
+ <a id="bookly-services-general-tab" href="#bookly-services-general" data-toggle="tab">
20
+ <i class="fa fa-cog fa-fw"></i>
21
+ <span class="bookly-nav-tabs-title"><?php _e( 'General', 'bookly' ) ?></span>
22
+ </a>
23
+ </li>
24
+ <li class="bookly-js-service bookly-js-service-simple">
25
+ <a id="bookly-services-time-tab" href="#bookly-services-time" data-toggle="tab">
26
+ <i class="fa fa-clock fa-fw"></i>
27
+ <span class="bookly-nav-tabs-title"><?php _e( 'Time', 'bookly' ) ?></span>
28
+ </a>
29
+ </li>
30
+ <?php if ( Lib\Config::proActive() ) : ?>
31
+ <li class="bookly-js-service bookly-js-service-simple bookly-js-service-collaborative bookly-js-service-compound">
32
+ <a id="bookly-services-advanced-tab" href="#bookly-services-advanced" data-toggle="tab">
33
+ <i class="fa fa-cogs fa-fw"></i>
34
+ <span class="bookly-nav-tabs-title"><?php _e( 'Advanced', 'bookly' ) ?></span>
35
+ </a>
36
+ </li>
37
+ <?php endif ?>
38
+ <?php Proxy\ServiceExtras::renderTab() ?>
39
+ <?php Proxy\ServiceSchedule::renderTab() ?>
40
+ <?php if ( Lib\Config::serviceScheduleActive() ) : ?>
41
+ <?php Proxy\ServiceSpecialDays::renderTab() ?>
42
+ <?php endif ?>
43
+ </ul>
44
+ <div class="bookly-js-service-containers tab-content">
45
+ <div style="display: none;" class="bookly-loading"></div>
46
+
47
+ <div class="tab-pane active" id="bookly-services-general">
48
+ <div id="bookly-services-general-container"></div>
49
+ </div>
50
+ <div class="tab-pane" id="bookly-services-advanced">
51
+ <div id="bookly-services-advanced-container"></div>
52
+ </div>
53
+ <div class="tab-pane" id="bookly-services-time">
54
+ <div id="bookly-services-time-container"></div>
55
+ </div>
56
+ <div class="tab-pane" id="bookly-services-extras">
57
+ <div id="bookly-services-extras-container"></div>
58
+ </div>
59
+ <div class="tab-pane" id="bookly-services-schedule">
60
+ <div id="bookly-services-schedule-container"></div>
61
+ </div>
62
+ <div class="tab-pane" id="bookly-services-special-days">
63
+ <div id="bookly-services-special-days-container"></div>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ <div class="modal-footer">
68
+ <span class="bookly-js-service-error text-danger pull-left text-left"></span>
69
+ <input type="hidden" name="action" value="bookly_update_service"/>
70
+ <input type="hidden" name="id"/>
71
+ <input type="hidden" name="type"/>
72
+ <input type="hidden" name="update_staff" value="0"/>
73
+ <?php Inputs::renderCsrf() ?>
74
+ <?php Buttons::renderSubmit() ?>
75
+ <?php Buttons::renderCustom( null, 'btn-lg btn-default', esc_html__( 'Close', 'bookly' ), array( 'data-dismiss' => 'modal' ) ) ?>
76
+ </div>
77
+ </form>
78
+ </div>
79
+ </div>
80
+ <div class="collapse" id="bookly-service-additional-html"></div>
81
+ </div>
backend/components/dialogs/sms/Dialog.php CHANGED
@@ -15,7 +15,6 @@ class Dialog extends BooklyLib\Base\Component
15
  */
16
  public static function render()
17
  {
18
- add_filter( 'wp_default_editor', function() { return 'tinymce'; } );
19
  self::enqueueStyles( array(
20
  'frontend' => array( 'css/ladda.min.css', ),
21
  'backend' => array( 'css/fontawesome-all.min.css', 'css/select2.min.css' ),
@@ -35,7 +34,6 @@ class Dialog extends BooklyLib\Base\Component
35
  wp_localize_script( 'bookly-notification-dialog.js', 'BooklyNotificationDialogL10n', array(
36
  'csrfToken' => BooklyLib\Utils\Common::getCsrfToken(),
37
  'recurringActive' => (int) BooklyLib\Config::recurringAppointmentsActive(),
38
- 'gateway' => 'sms',
39
  'defaultNotification' => self::getDefaultNotification(),
40
  'title' => array(
41
  'container' => __( 'Sms', 'bookly' ),
15
  */
16
  public static function render()
17
  {
 
18
  self::enqueueStyles( array(
19
  'frontend' => array( 'css/ladda.min.css', ),
20
  'backend' => array( 'css/fontawesome-all.min.css', 'css/select2.min.css' ),
34
  wp_localize_script( 'bookly-notification-dialog.js', 'BooklyNotificationDialogL10n', array(
35
  'csrfToken' => BooklyLib\Utils\Common::getCsrfToken(),
36
  'recurringActive' => (int) BooklyLib\Config::recurringAppointmentsActive(),
 
37
  'defaultNotification' => self::getDefaultNotification(),
38
  'title' => array(
39
  'container' => __( 'Sms', 'bookly' ),
backend/components/dialogs/sms/resources/js/notification-dialog.js CHANGED
@@ -7,9 +7,9 @@ jQuery(function ($) {
7
  statuses : $('.bookly-js-statuses-container', $modalNotification),
8
  services : $('.bookly-js-services-container', $modalNotification),
9
  recipient: $('.bookly-js-recipient-container', $modalNotification),
10
- message : $('#bookly-js-message-container', $modalNotification),
11
- attach : $('.bookly-js-attach-container', $modalNotification),
12
- codes : $('.bookly-js-codes-container', $modalNotification)
13
  },
14
  $offsets = $('.bookly-js-offset', containers.settings),
15
  $notificationType = $('select[name=\'notification[type]\']', containers.settings),
@@ -20,9 +20,27 @@ jQuery(function ($) {
20
  $helpType = $('.bookly-js-help-block', containers.settings),
21
  $codes = $('table.bookly-codes', $modalNotification),
22
  $status = $("select[name='notification[settings][status]']", containers.settings),
23
- $defaultStatuses
 
 
24
  ;
25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  function format(option) {
27
  return option.id && option.element.dataset.icon ? '<i class="fa fa-fw ' + option.element.dataset.icon + '"></i> ' + option.text : option.text;
28
  }
@@ -31,7 +49,7 @@ jQuery(function ($) {
31
  .on('show.bs.modal.first', function () {
32
  $notificationType.trigger('change');
33
  $modalNotification.unbind('show.bs.modal.first');
34
- if (BooklyNotificationDialogL10n.gateway == 'email') {
35
  tinymce.init(tinyMCEPreInit);
36
  }
37
  containers.message.siblings('a[data-toggle=collapse]').html(BooklyNotificationDialogL10n.title.container);
@@ -149,10 +167,7 @@ jQuery(function ($) {
149
  ladda = Ladda.create(this);
150
  ladda.start();
151
  data.push({name: 'action', value: 'bookly_save_notification'});
152
- data.push({name: 'notification[gateway]', value: BooklyNotificationDialogL10n.gateway});
153
- if (BooklyNotificationDialogL10n.gateway == 'email') {
154
- data.push({name: 'notification[message]', value: tinyMCE.activeEditor.getContent({format: 'raw'})});
155
- }
156
 
157
  $.ajax({
158
  url : ajaxurl,
@@ -238,11 +253,8 @@ jQuery(function ($) {
238
  $("input[name='notification[attach_ics]']", containers.message).prop('checked', data.attach_ics == '1');
239
  $("input[name='notification[attach_invoice]']", containers.message).prop('checked', data.attach_invoice == '1');
240
 
241
- if (BooklyNotificationDialogL10n.gateway == 'email') {
242
- tinymce.activeEditor.setContent(data.message);
243
- } else {
244
- $("textarea[name='notification[message]']", containers.message).val(data.message);
245
- }
246
  if (data.hasOwnProperty('id')) {
247
  $('.modal-title', $modalNotification).html(BooklyNotificationDialogL10n.title.edit);
248
  containers.settings.collapse('hide');
7
  statuses : $('.bookly-js-statuses-container', $modalNotification),
8
  services : $('.bookly-js-services-container', $modalNotification),
9
  recipient: $('.bookly-js-recipient-container', $modalNotification),
10
+ message : $('#bookly-js-message-container', $modalNotification),
11
+ attach : $('.bookly-js-attach-container', $modalNotification),
12
+ codes : $('.bookly-js-codes-container', $modalNotification)
13
  },
14
  $offsets = $('.bookly-js-offset', containers.settings),
15
  $notificationType = $('select[name=\'notification[type]\']', containers.settings),
20
  $helpType = $('.bookly-js-help-block', containers.settings),
21
  $codes = $('table.bookly-codes', $modalNotification),
22
  $status = $("select[name='notification[settings][status]']", containers.settings),
23
+ $defaultStatuses,
24
+ useTinyMCE = typeof(tinyMCE) !== 'undefined',
25
+ $textarea = $('#bookly-js-message', containers.message)
26
  ;
27
 
28
+ function getNotificationText() {
29
+ if (useTinyMCE) {
30
+ return tinyMCE.activeEditor.getContent({format: 'raw'});
31
+ } else {
32
+ return $textarea.val();
33
+ }
34
+ }
35
+
36
+ function setNotificationText(text) {
37
+ if (useTinyMCE) {
38
+ tinyMCE.activeEditor.setContent(text);
39
+ } else {
40
+ return $textarea.val(text);
41
+ }
42
+ }
43
+
44
  function format(option) {
45
  return option.id && option.element.dataset.icon ? '<i class="fa fa-fw ' + option.element.dataset.icon + '"></i> ' + option.text : option.text;
46
  }
49
  .on('show.bs.modal.first', function () {
50
  $notificationType.trigger('change');
51
  $modalNotification.unbind('show.bs.modal.first');
52
+ if (useTinyMCE) {
53
  tinymce.init(tinyMCEPreInit);
54
  }
55
  containers.message.siblings('a[data-toggle=collapse]').html(BooklyNotificationDialogL10n.title.container);
167
  ladda = Ladda.create(this);
168
  ladda.start();
169
  data.push({name: 'action', value: 'bookly_save_notification'});
170
+ data.push({name: 'notification[message]', value: getNotificationText()});
 
 
 
171
 
172
  $.ajax({
173
  url : ajaxurl,
253
  $("input[name='notification[attach_ics]']", containers.message).prop('checked', data.attach_ics == '1');
254
  $("input[name='notification[attach_invoice]']", containers.message).prop('checked', data.attach_invoice == '1');
255
 
256
+ setNotificationText(data.message);
257
+
 
 
 
258
  if (data.hasOwnProperty('id')) {
259
  $('.modal-title', $modalNotification).html(BooklyNotificationDialogL10n.title.edit);
260
  containers.settings.collapse('hide');
backend/components/dialogs/sms/templates/_editor.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
  <div class="row">
3
  <div class="col-md-12">
4
- <div class="form-group"><label for="notification_message"><?php esc_html_e( 'Body', 'bookly' ) ?></label>
5
- <textarea class="form-control" name="notification[message]" rows="8" id="notification_message"></textarea>
6
  </div>
7
  </div>
8
  </div>
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
  <div class="row">
3
  <div class="col-md-12">
4
+ <div class="form-group"><label for="bookly-js-message"><?php esc_html_e( 'Body', 'bookly' ) ?></label>
5
+ <textarea class="form-control" name="notification[message]" rows="8" id="bookly-js-message"></textarea>
6
  </div>
7
  </div>
8
  </div>
backend/components/dialogs/sms/templates/_subject.php CHANGED
@@ -1,2 +1,3 @@
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
  <input type="hidden" name="notification[subject]" value=""/>
 
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
  <input type="hidden" name="notification[subject]" value=""/>
3
+ <input type="hidden" name="notification[gateway]" value="sms"/>
backend/components/gutenberg/bookly_form/resources/js/booking-form-block.js CHANGED
@@ -432,9 +432,9 @@
432
  value: attributes.service,
433
  help : el(components.PanelRow,
434
  {},
435
- el('label', {htmlFor: 'bookly-js-hide-category'}, BooklyFormL10n.hide),
436
  el(components.FormToggle, {
437
- id: 'bookly-js-hide-category',
438
  checked: attributes.hide_services,
439
  onChange: function () {
440
  return props.setAttributes({hide_services: !props.attributes.hide_services});
@@ -451,6 +451,7 @@
451
 
452
  // Validate selected values.
453
  if (service_id != '') {
 
454
  if (staff_id != '' && !staff[staff_id].services.hasOwnProperty(service_id)) {
455
  staff_id = '';
456
  }
432
  value: attributes.service,
433
  help : el(components.PanelRow,
434
  {},
435
+ el('label', {htmlFor: 'bookly-js-hide-services'}, BooklyFormL10n.hide),
436
  el(components.FormToggle, {
437
+ id: 'bookly-js-hide-services',
438
  checked: attributes.hide_services,
439
  onChange: function () {
440
  return props.setAttributes({hide_services: !props.attributes.hide_services});
451
 
452
  // Validate selected values.
453
  if (service_id != '') {
454
+
455
  if (staff_id != '' && !staff[staff_id].services.hasOwnProperty(service_id)) {
456
  staff_id = '';
457
  }
backend/components/settings/templates/price_correction.php CHANGED
@@ -12,13 +12,11 @@ use Bookly\Lib\Entities\Payment;
12
  <?php else: ?>
13
  <p class="help-block"><?php esc_html_e( 'This setting affects the cost of the booking according to the payment gateway used. Specify a percentage or fixed amount. Use minus ("-") sign for decrease/discount.', 'bookly' ) ?></p>
14
  <?php endif ?>
15
- <div class="form-group">
16
- <div class="row">
17
- <div class="col-md-6">
18
- <?php Settings\Inputs::renderNumber( 'bookly_' . $gateway . '_increase', __( 'Increase/Discount (%)', 'bookly' ), '', -100, 'any', 100 ) ?>
19
- </div>
20
- <div class="col-md-6">
21
- <?php Settings\Inputs::renderNumber( 'bookly_' . $gateway . '_addition', __( 'Addition/Deduction', 'bookly' ), '', null, 'any' ) ?>
22
- </div>
23
  </div>
24
- </div>
 
 
 
12
  <?php else: ?>
13
  <p class="help-block"><?php esc_html_e( 'This setting affects the cost of the booking according to the payment gateway used. Specify a percentage or fixed amount. Use minus ("-") sign for decrease/discount.', 'bookly' ) ?></p>
14
  <?php endif ?>
15
+ <div class="row">
16
+ <div class="col-md-6">
17
+ <?php Settings\Inputs::renderNumber( 'bookly_' . $gateway . '_increase', __( 'Increase/Discount (%)', 'bookly' ), '', -100, 'any', 100 ) ?>
 
 
 
 
 
18
  </div>
19
+ <div class="col-md-6">
20
+ <?php Settings\Inputs::renderNumber( 'bookly_' . $gateway . '_addition', __( 'Addition/Deduction', 'bookly' ), '', null, 'any' ) ?>
21
+ </div>
22
+ </div>
backend/components/tiny_mce/Tools.php CHANGED
@@ -48,10 +48,29 @@ class Tools extends Lib\Base\Component
48
  Proxy\Shared::renderMediaButtons( $version );
49
  }
50
 
51
- public static function renderPopup()
52
  {
53
  $casest = Lib\Config::getCaSeSt();
54
- self::renderTemplate( 'bookly_form', compact( 'casest' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
 
56
  Proxy\Shared::renderPopup();
57
  }
48
  Proxy\Shared::renderMediaButtons( $version );
49
  }
50
 
51
+ public static function enqueueAssets()
52
  {
53
  $casest = Lib\Config::getCaSeSt();
54
+
55
+ self::enqueueScripts( array(
56
+ 'module' => array( 'js/bookly-form-settings.js' => array( 'jquery' ), ),
57
+ ) );
58
+
59
+ wp_localize_script( 'bookly-bookly-form-settings.js', 'BooklyFormShortCodeL10n', array(
60
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
61
+ 'locationCustom' => (int) Lib\Proxy\Locations::servicesPerLocationAllowed(),
62
+ 'locations' => $casest['locations'],
63
+ 'categories' => $casest['categories'],
64
+ 'services' => $casest['services'],
65
+ 'staff' => $casest['staff'],
66
+ 'title' => __( 'Insert Appointment Booking Form', 'bookly' ),
67
+ ) );
68
+ }
69
+
70
+ public static function renderPopup()
71
+ {
72
+ self::enqueueAssets();
73
+ self::renderTemplate( 'bookly_popup' );
74
 
75
  Proxy\Shared::renderPopup();
76
  }
backend/components/tiny_mce/resources/js/bookly-form-settings.js ADDED
@@ -0,0 +1,335 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function ($) {
2
+ var $form = $('#bookly-short-code-form'),
3
+ $select_location = $('#bookly-select-location', $form),
4
+ $select_category = $('#bookly-select-category', $form),
5
+ $select_service = $('#bookly-select-service', $form),
6
+ $select_employee = $('#bookly-select-employee', $form),
7
+ $hide_locations = $('#bookly-hide-locations', $form),
8
+ $hide_categories = $('#bookly-hide-categories', $form),
9
+ $hide_services = $('#bookly-hide-services', $form),
10
+ $hide_staff = $('#bookly-hide-employee', $form),
11
+ $hide_service_duration = $('#bookly-hide-service-duration', $form),
12
+ $hide_number_of_persons = $('#bookly-hide-number-of-persons', $form),
13
+ $hide_quantity = $('#bookly-hide-quantity', $form),
14
+ $hide_date = $('#bookly-hide-date', $form),
15
+ $hide_week_days = $('#bookly-hide-week-days', $form),
16
+ $hide_time_range = $('#bookly-hide-time-range', $form),
17
+ $add_button = $('#add-bookly-form'),
18
+ $insert = $('button.bookly-js-insert-shortcode', $form)
19
+ ;
20
+
21
+ $add_button.on('click', function () {
22
+ window.parent.tb_show(BooklyFormShortCodeL10n.title, this.href);
23
+ window.setTimeout(function () {
24
+ $('#TB_window').css({
25
+ 'overflow-x': 'auto',
26
+ 'overflow-y': 'hidden'
27
+ });
28
+ }, 100);
29
+ });
30
+
31
+ // insert data into select
32
+ function setSelect($select, data, value) {
33
+ // reset select
34
+ $('option:not([value=""])', $select).remove();
35
+ // and fill the new data
36
+ var docFragment = document.createDocumentFragment();
37
+
38
+ function valuesToArray(obj) {
39
+ return Object.keys(obj).map(function (key) {
40
+ return obj[key];
41
+ });
42
+ }
43
+
44
+ function compare(a, b) {
45
+ if (parseInt(a.pos) < parseInt(b.pos))
46
+ return -1;
47
+ if (parseInt(a.pos) > parseInt(b.pos))
48
+ return 1;
49
+ return 0;
50
+ }
51
+
52
+ // sort select by position
53
+ data = valuesToArray(data).sort(compare);
54
+
55
+ $.each(data, function (key, object) {
56
+ var option = document.createElement('option');
57
+ option.value = object.id;
58
+ option.text = object.name;
59
+ docFragment.appendChild(option);
60
+ });
61
+ $select.append(docFragment);
62
+ // set default value of select
63
+ $select.val(value);
64
+ }
65
+
66
+ function setSelects(location_id, category_id, service_id, staff_id) {
67
+ var _location_id = (BooklyFormShortCodeL10n.locationCustom && location_id) ? location_id : 0
68
+ var _staff = {}, _services = {}, _categories = {}, _nop = {}, _max_capacity = null, _min_capacity = null;
69
+ $.each(BooklyFormShortCodeL10n.staff, function (id, staff_member) {
70
+ if (!location_id || BooklyFormShortCodeL10n.locations[location_id].staff.hasOwnProperty(id)) {
71
+ if (!service_id) {
72
+ if (!category_id) {
73
+ _staff[id] = staff_member;
74
+ } else {
75
+ $.each(staff_member.services, function (s_id) {
76
+ if (BooklyFormShortCodeL10n.services[s_id].category_id == category_id) {
77
+ _staff[id] = staff_member;
78
+ return false;
79
+ }
80
+ });
81
+ }
82
+ } else if (staff_member.services.hasOwnProperty(service_id)) {
83
+ // var _location_id = staff_member.services[service_id].locations.hasOwnProperty(location_id) ? location_id : 0;
84
+ if (staff_member.services[service_id].locations.hasOwnProperty(_location_id)) {
85
+ if (staff_member.services[service_id].locations[_location_id].price != null) {
86
+ _min_capacity = _min_capacity ? Math.min(_min_capacity, staff_member.services[service_id].locations[_location_id].min_capacity) : staff_member.services[service_id].locations[_location_id].min_capacity;
87
+ _max_capacity = _max_capacity ? Math.max(_max_capacity, staff_member.services[service_id].locations[_location_id].max_capacity) : staff_member.services[service_id].locations[_location_id].max_capacity;
88
+ _staff[id] = {
89
+ id: id,
90
+ name: staff_member.name + ' (' + staff_member.services[service_id].locations[_location_id].price + ')',
91
+ pos: staff_member.pos
92
+ };
93
+ } else {
94
+ _staff[id] = {
95
+ id: id,
96
+ name: staff_member.name,
97
+ pos: staff_member.pos
98
+ };
99
+ }
100
+ }
101
+ }
102
+ }
103
+ });
104
+ if (!location_id) {
105
+ _categories = BooklyFormShortCodeL10n.categories;
106
+ $.each(BooklyFormShortCodeL10n.services, function (id, service) {
107
+ if (!category_id || service.category_id == category_id) {
108
+ if (!staff_id || BooklyFormShortCodeL10n.staff[staff_id].services.hasOwnProperty(id)) {
109
+ _services[id] = service;
110
+ }
111
+ }
112
+ });
113
+ } else {
114
+ var category_ids = [],
115
+ service_ids = [];
116
+ $.each(BooklyFormShortCodeL10n.staff, function (st_id) {
117
+ $.each(BooklyFormShortCodeL10n.staff[st_id].services, function (s_id) {
118
+ if (BooklyFormShortCodeL10n.staff[st_id].services[s_id].locations.hasOwnProperty(_location_id)) {
119
+ category_ids.push(BooklyFormShortCodeL10n.services[s_id].category_id);
120
+ service_ids.push(s_id);
121
+ }
122
+ });
123
+ });
124
+ $.each(BooklyFormShortCodeL10n.categories, function (id, category) {
125
+ if ($.inArray(parseInt(id), category_ids) > -1) {
126
+ _categories[id] = category;
127
+ }
128
+ });
129
+ $.each(BooklyFormShortCodeL10n.services, function (id, service) {
130
+ if ($.inArray(id, service_ids) > -1) {
131
+ if (!category_id || service.category_id == category_id) {
132
+ if (!staff_id || BooklyFormShortCodeL10n.staff[staff_id].services.hasOwnProperty(id)) {
133
+ _services[id] = service;
134
+ }
135
+ }
136
+ }
137
+ });
138
+ }
139
+
140
+ setSelect($select_category, _categories, category_id);
141
+ setSelect($select_service, _services, service_id);
142
+ setSelect($select_employee, _staff, staff_id);
143
+ }
144
+
145
+ // Location select change
146
+ $select_location.on('change', function () {
147
+ var location_id = this.value,
148
+ category_id = $select_category.val(),
149
+ service_id = $select_service.val(),
150
+ staff_id = $select_employee.val()
151
+ ;
152
+
153
+ // Validate selected values.
154
+ if (location_id != '') {
155
+ if (staff_id != '' && !BooklyFormShortCodeL10n.locations[location_id].staff.hasOwnProperty(staff_id)) {
156
+ staff_id = '';
157
+ }
158
+ if (service_id != '') {
159
+ var valid = false;
160
+ $.each(BooklyFormShortCodeL10n.locations[location_id].staff, function (id) {
161
+ if (BooklyFormShortCodeL10n.staff[id].services.hasOwnProperty(service_id)) {
162
+ valid = true;
163
+ return false;
164
+ }
165
+ });
166
+ if (!valid) {
167
+ service_id = '';
168
+ }
169
+ }
170
+ if (category_id != '') {
171
+ var valid = false;
172
+ $.each(BooklyFormShortCodeL10n.locations[location_id].staff, function (id) {
173
+ $.each(BooklyFormShortCodeL10n.staff[id].services, function (s_id) {
174
+ if (BooklyFormShortCodeL10n.services[s_id].category_id == category_id) {
175
+ valid = true;
176
+ return false;
177
+ }
178
+ });
179
+ if (valid) {
180
+ return false;
181
+ }
182
+ });
183
+ if (!valid) {
184
+ category_id = '';
185
+ }
186
+ }
187
+ }
188
+ setSelects(location_id, category_id, service_id, staff_id);
189
+ });
190
+
191
+ // Category select change
192
+ $select_category.on('change', function () {
193
+ var location_id = $select_location.val(),
194
+ category_id = this.value,
195
+ service_id = $select_service.val(),
196
+ staff_id = $select_employee.val()
197
+ ;
198
+
199
+ // Validate selected values.
200
+ if (category_id != '') {
201
+ if (service_id != '') {
202
+ if (BooklyFormShortCodeL10n.services[service_id].category_id != category_id) {
203
+ service_id = '';
204
+ }
205
+ }
206
+ if (staff_id != '') {
207
+ var valid = false;
208
+ $.each(BooklyFormShortCodeL10n.staff[staff_id].services, function (id) {
209
+ if (BooklyFormShortCodeL10n.services[id].category_id == category_id) {
210
+ valid = true;
211
+ return false;
212
+ }
213
+ });
214
+ if (!valid) {
215
+ staff_id = '';
216
+ }
217
+ }
218
+ }
219
+ setSelects(location_id, category_id, service_id, staff_id);
220
+ });
221
+
222
+ // Service select change
223
+ $select_service.on('change', function () {
224
+ var location_id = $select_location.val(),
225
+ category_id = '',
226
+ service_id = this.value,
227
+ staff_id = $select_employee.val()
228
+ ;
229
+
230
+ // Validate selected values.
231
+ if (service_id != '') {
232
+ if (staff_id != '' && !BooklyFormShortCodeL10n.staff[staff_id].services.hasOwnProperty(service_id)) {
233
+ staff_id = '';
234
+ }
235
+ }
236
+ setSelects(location_id, category_id, service_id, staff_id);
237
+ if (service_id) {
238
+ $select_category.val(BooklyFormShortCodeL10n.services[service_id].category_id);
239
+ }
240
+ });
241
+
242
+ window.getBooklyShortCode = function() {
243
+ var shortCode = '[bookly-form',
244
+ hide = [];
245
+ if ($select_location.val()) {
246
+ shortCode += ' location_id="' + $select_location.val() + '"';
247
+ }
248
+ if ($select_category.val()) {
249
+ shortCode += ' category_id="' + $select_category.val() + '"';
250
+ }
251
+ if ($hide_locations.is(':checked')) {
252
+ hide.push('locations');
253
+ }
254
+ if ($hide_categories.is(':checked')) {
255
+ hide.push('categories');
256
+ }
257
+ if ($select_service.val()) {
258
+ shortCode += ' service_id="' + $select_service.val() + '"';
259
+ }
260
+ if ($hide_services.is(':checked')) {
261
+ hide.push('services');
262
+ }
263
+ if ($hide_service_duration.is(':checked')) {
264
+ hide.push('service_duration');
265
+ }
266
+ if ($select_employee.val()) {
267
+ shortCode += ' staff_member_id="' + $select_employee.val() + '"';
268
+ }
269
+ if ($hide_number_of_persons.is(':not(:checked)')) {
270
+ shortCode += ' show_number_of_persons="1"';
271
+ }
272
+ if ($hide_quantity.is(':checked')) {
273
+ hide.push('quantity');
274
+ }
275
+ if ($hide_staff.is(':checked')) {
276
+ hide.push('staff_members');
277
+ }
278
+ if ($hide_date.is(':checked')) {
279
+ hide.push('date')
280
+ }
281
+ if ($hide_week_days.is(':checked')) {
282
+ hide.push('week_days')
283
+ }
284
+ if ($hide_time_range.is(':checked')) {
285
+ hide.push('time_range');
286
+ }
287
+ if (hide.length > 0) {
288
+ shortCode += ' hide="' + hide.join() + '"';
289
+ }
290
+ shortCode += ']';
291
+
292
+ return shortCode;
293
+ };
294
+
295
+ // Staff select change
296
+ $select_employee.on('change', function () {
297
+ var location_id = $select_location.val(),
298
+ category_id = $select_category.val(),
299
+ service_id = $select_service.val(),
300
+ staff_id = this.value
301
+ ;
302
+
303
+ setSelects(location_id, category_id, service_id, staff_id);
304
+ });
305
+
306
+ // Set up draft selects.
307
+ setSelect($select_location, BooklyFormShortCodeL10n.locations);
308
+ setSelect($select_category, BooklyFormShortCodeL10n.categories);
309
+ setSelect($select_service, BooklyFormShortCodeL10n.services);
310
+ setSelect($select_employee, BooklyFormShortCodeL10n.staff);
311
+
312
+ $insert
313
+ .on('click', function (e) {
314
+ e.preventDefault();
315
+
316
+ window.send_to_editor(window.getBooklyShortCode());
317
+
318
+ $select_location.val('');
319
+ $select_category.val('');
320
+ $select_service.val('');
321
+ $select_employee.val('');
322
+ $hide_locations.prop('checked', false);
323
+ $hide_categories.prop('checked', false);
324
+ $hide_services.prop('checked', false);
325
+ $hide_service_duration.prop('checked', false);
326
+ $hide_staff.prop('checked', false);
327
+ $hide_date.prop('checked', false);
328
+ $hide_week_days.prop('checked', false);
329
+ $hide_time_range.prop('checked', false);
330
+ $hide_number_of_persons.prop('checked', true);
331
+
332
+ window.parent.tb_remove();
333
+ return false;
334
+ });
335
+ });
backend/components/tiny_mce/templates/bookly_form.php CHANGED
@@ -2,424 +2,93 @@
2
  use Bookly\Backend\Components\TinyMce\Proxy;
3
  ?>
4
 
5
- <div id="bookly-tinymce-popup" style="display: none">
6
- <form id="bookly-shortcode-form">
7
- <table>
8
- <?php Proxy\Shared::renderBooklyFormHead() ?>
9
- <tr>
10
- <td>
11
- <label for="bookly-select-category"><?php esc_html_e( 'Default value for category select', 'bookly' ) ?></label>
12
- </td>
13
- <td>
14
- <select id="bookly-select-category">
15
- <option value=""><?php esc_html_e( 'Select category', 'bookly' ) ?></option>
16
- </select>
17
- <div><label><input type="checkbox" id="bookly-hide-categories" /><?php esc_html_e( 'Hide this field', 'bookly' ) ?></label></div>
18
- </td>
19
- </tr>
20
- <tr>
21
- <td>
22
- <label for="bookly-select-service"><?php esc_html_e( 'Default value for service select', 'bookly' ) ?></label>
23
- </td>
24
- <td>
25
- <select id="bookly-select-service">
26
- <option value=""><?php esc_html_e( 'Select service', 'bookly' ) ?></option>
27
- </select>
28
- <div><label><input type="checkbox" id="bookly-hide-services" /><?php esc_html_e( 'Hide this field', 'bookly' ) ?></label></div>
29
- <i><?php esc_html_e( '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', 'bookly' ) ?></i>
30
- </td>
31
- </tr>
32
- <tr>
33
- <td>
34
- <label for="bookly-select-employee"><?php esc_html_e( 'Default value for employee select', 'bookly' ) ?></label>
35
- </td>
36
- <td>
37
- <select class="bookly-select-mobile" id="bookly-select-employee">
38
- <option value=""><?php esc_html_e( 'Any', 'bookly' ) ?></option>
39
- </select>
40
- <div><label><input type="checkbox" id="bookly-hide-employee" /><?php esc_html_e( 'Hide this field', 'bookly' ) ?></label></div>
41
- </td>
42
- </tr>
43
- <?php Proxy\Shared::renderBooklyFormFields() ?>
44
- <tr>
45
- <td>
46
- <label for="bookly-hide-date"><?php esc_html_e( 'Date', 'bookly' ) ?></label>
47
- </td>
48
- <td>
49
- <label><input type="checkbox" id="bookly-hide-date" /><?php esc_html_e( 'Hide this block', 'bookly' ) ?></label>
50
- </td>
51
- </tr>
52
- <tr>
53
- <td>
54
- <label for="bookly-hide-week-days"><?php esc_html_e( 'Week days', 'bookly' ) ?></label>
55
- </td>
56
- <td>
57
- <label><input type="checkbox" id="bookly-hide-week-days" /><?php esc_html_e( 'Hide this block', 'bookly' ) ?></label>
58
- </td>
59
- </tr>
60
- <tr>
61
- <td>
62
- <label for="bookly-hide-time-range"><?php esc_html_e( 'Time range', 'bookly' ) ?></label>
63
- </td>
64
- <td>
65
- <label><input type="checkbox" id="bookly-hide-time-range" /><?php esc_html_e( 'Hide this block', 'bookly' ) ?></label>
66
- </td>
67
- </tr>
68
- <tr>
69
- <td></td>
70
- <td>
71
- <button class="button button-primary bookly-js-insert-shortcode" type="button"><?php esc_html_e( 'Insert', 'bookly' ) ?></button>
72
- </td>
73
- </tr>
74
- </table>
75
- </form>
76
- </div>
77
- <style type="text/css">
78
- #bookly-shortcode-form { margin-top: 15px; }
79
- #bookly-shortcode-form table { width: 100%; }
80
- #bookly-shortcode-form table td select { width: 100%; margin-bottom: 5px; }
81
- .bookly-media-icon {
82
- display: inline-block;
83
- width: 16px;
84
- height: 16px;
85
- vertical-align: text-top;
86
- margin: 0 2px;
87
- background: url("<?php echo plugins_url( 'resources/images/calendar.png', __DIR__ ) ?>") 0 0 no-repeat;
88
- }
89
- #TB_overlay { z-index: 100001 !important; }
90
- #TB_window { z-index: 100002 !important; }
91
- </style>
92
- <script type="text/javascript">
93
- jQuery(function ($) {
94
- var $form = $('#bookly-shortcode-form'),
95
- $select_location = $('#bookly-select-location',$form),
96
- $select_category = $('#bookly-select-category',$form),
97
- $select_service = $('#bookly-select-service',$form),
98
- $select_employee = $('#bookly-select-employee',$form),
99
- $hide_locations = $('#bookly-hide-locations',$form),
100
- $hide_categories = $('#bookly-hide-categories',$form),
101
- $hide_services = $('#bookly-hide-services',$form),
102
- $hide_staff = $('#bookly-hide-employee',$form),
103
- $hide_service_duration = $('#bookly-hide-service-duration',$form),
104
- $hide_number_of_persons = $('#bookly-hide-number-of-persons',$form),
105
- $hide_quantity = $('#bookly-hide-quantity',$form),
106
- $hide_date = $('#bookly-hide-date',$form),
107
- $hide_week_days = $('#bookly-hide-week-days',$form),
108
- $hide_time_range = $('#bookly-hide-time-range',$form),
109
- $add_button = $('#add-bookly-form'),
110
- $insert = $('button.bookly-js-insert-shortcode', $form),
111
- location_custom = <?php echo (int) Bookly\Lib\Proxy\Locations::servicesPerLocationAllowed() ?>,
112
- locations = <?php echo json_encode( $casest['locations'] ) ?>,
113
- categories = <?php echo json_encode( $casest['categories'] ) ?>,
114
- services = <?php echo json_encode( $casest['services'] ) ?>,
115
- staff = <?php echo json_encode( $casest['staff'] ) ?>
116
- ;
117
-
118
- $add_button.on('click', function () {
119
- window.parent.tb_show(<?php echo json_encode( __( 'Insert Appointment Booking Form', 'bookly' ) ) ?>, this.href);
120
- window.setTimeout(function(){
121
- $('#TB_window').css({
122
- 'overflow-x': 'auto',
123
- 'overflow-y': 'hidden'
124
- });
125
- },100);
126
- });
127
- // insert data into select
128
- function setSelect($select, data, value) {
129
- // reset select
130
- $('option:not([value=""])', $select).remove();
131
- // and fill the new data
132
- var docFragment = document.createDocumentFragment();
133
-
134
- function valuesToArray(obj) {
135
- return Object.keys(obj).map(function (key) { return obj[key]; });
136
- }
137
-
138
- function compare(a, b) {
139
- if (parseInt(a.pos) < parseInt(b.pos))
140
- return -1;
141
- if (parseInt(a.pos) > parseInt(b.pos))
142
- return 1;
143
- return 0;
144
- }
145
-
146
- // sort select by position
147
- data = valuesToArray(data).sort(compare);
148
-
149
- $.each(data, function(key, object) {
150
- var option = document.createElement('option');
151
- option.value = object.id;
152
- option.text = object.name;
153
- docFragment.appendChild(option);
154
- });
155
- $select.append(docFragment);
156
- // set default value of select
157
- $select.val(value);
158
- }
159
-
160
- function setSelects(location_id, category_id, service_id, staff_id) {
161
- var _location_id = (location_custom && location_id) ? location_id : 0
162
- var _staff = {}, _services = {}, _categories = {}, _nop = {}, _max_capacity = null, _min_capacity = null;
163
- $.each(staff, function(id, staff_member) {
164
- if (!location_id || locations[location_id].staff.hasOwnProperty(id)) {
165
- if (!service_id) {
166
- if (!category_id) {
167
- _staff[id] = staff_member;
168
- } else {
169
- $.each(staff_member.services, function(s_id) {
170
- if (services[s_id].category_id == category_id) {
171
- _staff[id] = staff_member;
172
- return false;
173
- }
174
- });
175
- }
176
- } else if (staff_member.services.hasOwnProperty(service_id)) {
177
- // var _location_id = staff_member.services[service_id].locations.hasOwnProperty(location_id) ? location_id : 0;
178
- if (staff_member.services[service_id].locations.hasOwnProperty(_location_id)) {
179
- if ( staff_member.services[service_id].locations[_location_id].price != null) {
180
- _min_capacity = _min_capacity ? Math.min(_min_capacity, staff_member.services[service_id].locations[_location_id].min_capacity) : staff_member.services[service_id].locations[_location_id].min_capacity;
181
- _max_capacity = _max_capacity ? Math.max(_max_capacity, staff_member.services[service_id].locations[_location_id].max_capacity) : staff_member.services[service_id].locations[_location_id].max_capacity;
182
- _staff[id] = {
183
- id : id,
184
- name : staff_member.name + ' (' + staff_member.services[service_id].locations[_location_id].price + ')',
185
- pos : staff_member.pos
186
- };
187
- } else {
188
- _staff[id] = {
189
- id : id,
190
- name : staff_member.name,
191
- pos : staff_member.pos
192
- };
193
- }
194
- }
195
- }
196
- }
197
- });
198
- if (!location_id) {
199
- _categories = categories;
200
- $.each(services, function(id, service) {
201
- if (!category_id || service.category_id == category_id) {
202
- if (!staff_id || staff[staff_id].services.hasOwnProperty(id)) {
203
- _services[id] = service;
204
- }
205
- }
206
- });
207
- } else {
208
- var category_ids = [],
209
- service_ids = [];
210
- $.each(staff, function (st_id) {
211
- $.each(staff[st_id].services, function (s_id) {
212
- if (staff[st_id].services[s_id].locations.hasOwnProperty(_location_id)) {
213
- category_ids.push(services[s_id].category_id);
214
- service_ids.push(s_id);
215
- }
216
- });
217
- });
218
- $.each(categories, function(id, category) {
219
- if ($.inArray(parseInt(id), category_ids) > -1) {
220
- _categories[id] = category;
221
- }
222
- });
223
- $.each(services, function(id, service) {
224
- if ($.inArray(id, service_ids) > -1) {
225
- if (!category_id || service.category_id == category_id) {
226
- if (!staff_id || staff[staff_id].services.hasOwnProperty(id)) {
227
- _services[id] = service;
228
- }
229
- }
230
- }
231
- });
232
- }
233
-
234
- setSelect($select_category, _categories, category_id);
235
- setSelect($select_service, _services, service_id);
236
- setSelect($select_employee, _staff, staff_id);
237
- }
238
-
239
- // Location select change
240
- $select_location.on('change', function () {
241
- var location_id = this.value,
242
- category_id = $select_category.val(),
243
- service_id = $select_service.val(),
244
- staff_id = $select_employee.val()
245
- ;
246
-
247
- // Validate selected values.
248
- if (location_id != '') {
249
- if (staff_id != '' && !locations[location_id].staff.hasOwnProperty(staff_id)) {
250
- staff_id = '';
251
- }
252
- if (service_id != '') {
253
- var valid = false;
254
- $.each(locations[location_id].staff, function(id) {
255
- if (staff[id].services.hasOwnProperty(service_id)) {
256
- valid = true;
257
- return false;
258
- }
259
- });
260
- if (!valid) {
261
- service_id = '';
262
- }
263
- }
264
- if (category_id != '') {
265
- var valid = false;
266
- $.each(locations[location_id].staff, function(id) {
267
- $.each(staff[id].services, function(s_id) {
268
- if (services[s_id].category_id == category_id) {
269
- valid = true;
270
- return false;
271
- }
272
- });
273
- if (valid) {
274
- return false;
275
- }
276
- });
277
- if (!valid) {
278
- category_id = '';
279
- }
280
- }
281
- }
282
- setSelects(location_id, category_id, service_id, staff_id);
283
- });
284
-
285
- // Category select change
286
- $select_category.on('change', function () {
287
- var location_id = $select_location.val(),
288
- category_id = this.value,
289
- service_id = $select_service.val(),
290
- staff_id = $select_employee.val()
291
- ;
292
-
293
- // Validate selected values.
294
- if (category_id != '') {
295
- if (service_id != '') {
296
- if (services[service_id].category_id != category_id) {
297
- service_id = '';
298
- }
299
- }
300
- if (staff_id != '') {
301
- var valid = false;
302
- $.each(staff[staff_id].services, function(id) {
303
- if (services[id].category_id == category_id) {
304
- valid = true;
305
- return false;
306
- }
307
- });
308
- if (!valid) {
309
- staff_id = '';
310
- }
311
- }
312
- }
313
- setSelects(location_id, category_id, service_id, staff_id);
314
- });
315
-
316
- // Service select change
317
- $select_service.on('change', function () {
318
- var location_id = $select_location.val(),
319
- category_id = '',
320
- service_id = this.value,
321
- staff_id = $select_employee.val()
322
- ;
323
-
324
- // Validate selected values.
325
- if (service_id != '') {
326
- if (staff_id != '' && !staff[staff_id].services.hasOwnProperty(service_id)) {
327
- staff_id = '';
328
- }
329
- }
330
- setSelects(location_id, category_id, service_id, staff_id);
331
- if (service_id) {
332
- $select_category.val(services[service_id].category_id);
333
- }
334
- });
335
-
336
- // Staff select change
337
- $select_employee.on('change', function() {
338
- var location_id = $select_location.val(),
339
- category_id = $select_category.val(),
340
- service_id = $select_service.val(),
341
- staff_id = this.value
342
- ;
343
-
344
- setSelects(location_id, category_id, service_id, staff_id);
345
- });
346
-
347
- // Set up draft selects.
348
- setSelect($select_location, locations);
349
- setSelect($select_category, categories);
350
- setSelect($select_service, services);
351
- setSelect($select_employee, staff);
352
-
353
- $insert.on('click', function (e) {
354
- e.preventDefault();
355
-
356
- var insert = '[bookly-form';
357
- var hide = [];
358
- if ($select_location.val()) {
359
- insert += ' location_id="' + $select_location.val() + '"';
360
- }
361
- if ($select_category.val()) {
362
- insert += ' category_id="' + $select_category.val() + '"';
363
- }
364
- if ($hide_locations.is(':checked')) {
365
- hide.push('locations');
366
- }
367
- if ($hide_categories.is(':checked')) {
368
- hide.push('categories');
369
- }
370
- if ($select_service.val()) {
371
- insert += ' service_id="' + $select_service.val() + '"';
372
- }
373
- if ($hide_services.is(':checked')) {
374
- hide.push('services');
375
- }
376
- if ($hide_service_duration.is(':checked')) {
377
- hide.push('service_duration');
378
- }
379
- if ($select_employee.val()) {
380
- insert += ' staff_member_id="' + $select_employee.val() + '"';
381
- }
382
- if ($hide_number_of_persons.is(':not(:checked)')) {
383
- insert += ' show_number_of_persons="1"';
384
- }
385
- if ($hide_quantity.is(':checked')) {
386
- hide.push('quantity');
387
- }
388
- if ($hide_staff.is(':checked')) {
389
- hide.push('staff_members');
390
- }
391
- if ($hide_date.is(':checked')) {
392
- hide.push('date')
393
- }
394
- if ($hide_week_days.is(':checked')) {
395
- hide.push('week_days')
396
- }
397
- if ($hide_time_range.is(':checked')) {
398
- hide.push('time_range');
399
- }
400
- if (hide.length > 0) {
401
- insert += ' hide="' + hide.join() + '"';
402
- }
403
- insert += ']';
404
-
405
- window.send_to_editor(insert);
406
-
407
- $select_location.val('');
408
- $select_category.val('');
409
- $select_service.val('');
410
- $select_employee.val('');
411
- $hide_locations.prop('checked', false);
412
- $hide_categories.prop('checked', false);
413
- $hide_services.prop('checked', false);
414
- $hide_service_duration.prop('checked', false);
415
- $hide_staff.prop('checked', false);
416
- $hide_date.prop('checked', false);
417
- $hide_week_days.prop('checked', false);
418
- $hide_time_range.prop('checked', false);
419
- $hide_number_of_persons.prop('checked', true);
420
-
421
- window.parent.tb_remove();
422
- return false;
423
- });
424
- });
425
- </script>
2
  use Bookly\Backend\Components\TinyMce\Proxy;
3
  ?>
4
 
5
+ <?php Proxy\Shared::renderBooklyFormHead() ?>
6
+ <tr>
7
+ <td>
8
+ <label for="bookly-select-category"><?php esc_html_e( 'Default value for category select', 'bookly' ) ?></label>
9
+ </td>
10
+ <td>
11
+ <select id="bookly-select-category" class="form-control">
12
+ <option value=""><?php esc_html_e( 'Select category', 'bookly' ) ?></option>
13
+ </select>
14
+ <div class="checkbox">
15
+ <label>
16
+ <input type="checkbox" id="bookly-hide-categories">
17
+ <?php esc_html_e( 'Hide this field', 'bookly' ) ?>
18
+ </label>
19
+ </div>
20
+ </td>
21
+ </tr>
22
+ <tr>
23
+ <td>
24
+ <label for="bookly-select-service"><?php esc_html_e( 'Default value for service select', 'bookly' ) ?></label>
25
+ </td>
26
+ <td>
27
+ <select id="bookly-select-service" class="form-control">
28
+ <option value=""><?php esc_html_e( 'Select service', 'bookly' ) ?></option>
29
+ </select>
30
+ <div class="checkbox">
31
+ <label>
32
+ <input type="checkbox" id="bookly-hide-services">
33
+ <?php esc_html_e( 'Hide this field', 'bookly' ) ?>
34
+ </label>
35
+ </div>
36
+ <i><?php esc_html_e( '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', 'bookly' ) ?></i>
37
+ </td>
38
+ </tr>
39
+ <tr>
40
+ <td>
41
+ <label for="bookly-select-employee"><?php esc_html_e( 'Default value for employee select', 'bookly' ) ?></label>
42
+ </td>
43
+ <td>
44
+ <select class="form-control" id="bookly-select-employee">
45
+ <option value=""><?php esc_html_e( 'Any', 'bookly' ) ?></option>
46
+ </select>
47
+ <div class="checkbox">
48
+ <label>
49
+ <input type="checkbox" id="bookly-hide-employee">
50
+ <?php esc_html_e( 'Hide this field', 'bookly' ) ?>
51
+ </label>
52
+ </div>
53
+ </td>
54
+ </tr>
55
+ <?php Proxy\Shared::renderBooklyFormFields() ?>
56
+ <tr>
57
+ <td>
58
+ <label for="bookly-hide-date"><?php esc_html_e( 'Date', 'bookly' ) ?></label>
59
+ </td>
60
+ <td>
61
+ <div class="checkbox">
62
+ <label>
63
+ <input type="checkbox" id="bookly-hide-date">
64
+ <?php esc_html_e( 'Hide this field', 'bookly' ) ?>
65
+ </label>
66
+ </div>
67
+ </td>
68
+ </tr>
69
+ <tr>
70
+ <td>
71
+ <label for="bookly-hide-week-days"><?php esc_html_e( 'Week days', 'bookly' ) ?></label>
72
+ </td>
73
+ <td>
74
+ <div class="checkbox">
75
+ <label>
76
+ <input type="checkbox" id="bookly-hide-week-days">
77
+ <?php esc_html_e( 'Hide this field', 'bookly' ) ?>
78
+ </label>
79
+ </div>
80
+ </td>
81
+ </tr>
82
+ <tr>
83
+ <td>
84
+ <label for="bookly-hide-time-range"><?php esc_html_e( 'Time range', 'bookly' ) ?></label>
85
+ </td>
86
+ <td>
87
+ <div class="checkbox">
88
+ <label>
89
+ <input type="checkbox" id="bookly-hide-time-range">
90
+ <?php esc_html_e( 'Hide this field', 'bookly' ) ?>
91
+ </label>
92
+ </div>
93
+ </td>
94
+ </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
backend/components/tiny_mce/templates/bookly_popup.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
+ <div id="bookly-tinymce-popup" style="display: none">
3
+ <form id="bookly-short-code-form">
4
+ <table>
5
+ <?php static::renderTemplate( 'bookly_form' ) ?>
6
+ <tr>
7
+ <td></td>
8
+ <td>
9
+ <button class="button button-primary bookly-js-insert-shortcode" type="button"><?php esc_html_e( 'Insert', 'bookly' ) ?></button>
10
+ </td>
11
+ </tr>
12
+ </table>
13
+ </form>
14
+ </div>
15
+ <style type="text/css">
16
+ #bookly-short-code-form { margin-top: 15px; }
17
+ #bookly-short-code-form table { width: 100%; }
18
+ #bookly-short-code-form table td select { width: 100%; margin-bottom: 5px; }
19
+ .bookly-media-icon {
20
+ display: inline-block;
21
+ width: 16px;
22
+ height: 16px;
23
+ vertical-align: text-top;
24
+ margin: 0 2px;
25
+ background: url("<?php echo plugins_url( 'resources/images/calendar.png', __DIR__ ) ?>") 0 0 no-repeat;
26
+ }
27
+ #TB_overlay { z-index: 100001 !important; }
28
+ #TB_window { z-index: 100002 !important; }
29
+ </style>
backend/modules/appearance/Ajax.php CHANGED
@@ -97,8 +97,6 @@ class Ajax extends Lib\Base\Ajax
97
  'bookly_app_service_duration_with_price',
98
  'bookly_cst_first_last_name',
99
  'bookly_app_show_email_confirm',
100
- // Options.
101
- 'bookly_multiply_appointments_quantity_max',
102
  ) ) );
103
 
104
  // Allow add-ons to add their options.
97
  'bookly_app_service_duration_with_price',
98
  'bookly_cst_first_last_name',
99
  'bookly_app_show_email_confirm',
 
 
100
  ) ) );
101
 
102
  // Allow add-ons to add their options.
backend/modules/appearance/proxy/CustomDuration.php CHANGED
@@ -8,7 +8,6 @@ use Bookly\Lib;
8
  * @package Bookly\Backend\Modules\Frontend\Proxy
9
  *
10
  * @method static void renderServiceDuration() render a select with service durations
11
- * @method static void renderShowCustomDuration() Render "Show custom duration" checkbox on Service step settings.
12
  */
13
  abstract class CustomDuration extends Lib\Base\Proxy
14
  {
8
  * @package Bookly\Backend\Modules\Frontend\Proxy
9
  *
10
  * @method static void renderServiceDuration() render a select with service durations
 
11
  */
12
  abstract class CustomDuration extends Lib\Base\Proxy
13
  {
backend/modules/appearance/proxy/Locations.php CHANGED
@@ -8,7 +8,6 @@ use Bookly\Lib;
8
  * @package Bookly\Backend\Modules\Appearance\Proxy
9
  *
10
  * @method static void renderLocation() Render location select in Service step.
11
- * @method static void renderShowLocation() Render "Show location" checkbox on Service step settings.
12
  */
13
  abstract class Locations extends Lib\Base\Proxy
14
  {
8
  * @package Bookly\Backend\Modules\Appearance\Proxy
9
  *
10
  * @method static void renderLocation() Render location select in Service step.
 
11
  */
12
  abstract class Locations extends Lib\Base\Proxy
13
  {
backend/modules/appearance/proxy/MultiplyAppointments.php CHANGED
@@ -8,7 +8,6 @@ use Bookly\Lib;
8
  * @package Bookly\Backend\Modules\Appearance\Proxy
9
  *
10
  * @method static void renderQuantity() Render Multiply (quantity) control in Service step.
11
- * @method static void renderShowQuantity() Render "Show quantity" checkbox on Service step settings.
12
  */
13
  abstract class MultiplyAppointments extends Lib\Base\Proxy
14
  {
8
  * @package Bookly\Backend\Modules\Appearance\Proxy
9
  *
10
  * @method static void renderQuantity() Render Multiply (quantity) control in Service step.
 
11
  */
12
  abstract class MultiplyAppointments extends Lib\Base\Proxy
13
  {
backend/modules/appearance/resources/js/appearance.js CHANGED
@@ -16,10 +16,6 @@ jQuery(function($) {
16
  $required_location = $('#bookly-required-location'),
17
  $show_ratings = $('#bookly-show-ratings'),
18
  $show_chain_appointments = $('#bookly-show-chain-appointments'),
19
- $show_location = $('#bookly-show-location'),
20
- $show_custom_duration = $('#bookly-show-custom-duration'),
21
- $show_nop = $('#bookly-show-nop'),
22
- $show_quantity = $('#bookly-show-quantity'),
23
  $service_select = $('.bookly-js-select-service'),
24
  $staff_select = $('.bookly-js-select-employee'),
25
  $duration_select = $('.bookly-js-select-duration'),
@@ -273,51 +269,6 @@ jQuery(function($) {
273
  $('.bookly-js-chain-appointments').toggle( this.checked );
274
  });
275
 
276
- // Show location
277
- $show_location.on('change', function () {
278
- $('.bookly-js-location').toggle( this.checked );
279
- if (!this.disabled) {
280
- if (this.checked) {
281
- $required_location.closest('[data-toggle="popover"]').popover('destroy');
282
- $required_location.prop('disabled', false);
283
- } else {
284
- $required_location.closest('[data-toggle="popover"]').popover();
285
- $required_location.prop('checked', false).prop('disabled', true).trigger('change');
286
- }
287
- }
288
- }).trigger('change');
289
-
290
- // Show custom duration
291
- $show_custom_duration.on('change', function () {
292
- $('.bookly-js-custom-duration').toggle( this.checked );
293
- if (this.checked) {
294
- $service_duration_with_price.closest('[data-toggle="popover"]').popover('destroy');
295
- $service_duration_with_price.prop('disabled', false);
296
- } else {
297
- $service_duration_with_price.closest('[data-toggle="popover"]').popover();
298
- $service_duration_with_price.prop('checked', false).prop('disabled', true).trigger('change');
299
- }
300
- }).trigger('change');
301
-
302
- // Show number of persons
303
- $show_nop.on('change', function () {
304
- $('.bookly-js-nop').toggle( this.checked );
305
- }).trigger('change');
306
-
307
- // Show quantity
308
- $show_quantity.on('change', function () {
309
- $('.bookly-js-quantity').toggle( this.checked );
310
- });
311
-
312
- // Set max quantity
313
- $('.bookly_multiply_appointments_quantity_max').on('save', function (e, params) {
314
- var $options = '';
315
- for (var x = 1; x <= params.newValue['bookly_multiply_appointments_quantity_max']; x++) {
316
- $options += "<option>" + x + "</option>";
317
- }
318
- $('.bookly-js-select-quantity').html($options);
319
- });
320
-
321
  // Show duration next to service name.
322
  $service_name_with_duration.on('change', function () {
323
  var service = $service_select.val();
@@ -815,11 +766,7 @@ jQuery(function($) {
815
  'bookly_files_enabled' : Number($show_files.prop('checked')),
816
  'bookly_waiting_list_enabled' : Number($show_waiting_list.prop('checked')),
817
  'bookly_google_maps_address_enabled' : Number($show_google_maps.prop('checked')),
818
- 'bookly_service_extras_show_in_cart' : Number($show_cart_extras.prop('checked')),
819
- 'bookly_locations_enabled' : Number($show_location.prop('checked')),
820
- 'bookly_custom_duration_enabled' : Number($show_custom_duration.prop('checked')),
821
- 'bookly_group_booking_enabled' : Number($show_nop.prop('checked')),
822
- 'bookly_multiply_appointments_enabled' : Number($show_quantity.prop('checked'))
823
  }
824
  };
825
  // Add data from editable elements.
16
  $required_location = $('#bookly-required-location'),
17
  $show_ratings = $('#bookly-show-ratings'),
18
  $show_chain_appointments = $('#bookly-show-chain-appointments'),
 
 
 
 
19
  $service_select = $('.bookly-js-select-service'),
20
  $staff_select = $('.bookly-js-select-employee'),
21
  $duration_select = $('.bookly-js-select-duration'),
269
  $('.bookly-js-chain-appointments').toggle( this.checked );
270
  });
271
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
272
  // Show duration next to service name.
273
  $service_name_with_duration.on('change', function () {
274
  var service = $service_select.val();
766
  'bookly_files_enabled' : Number($show_files.prop('checked')),
767
  'bookly_waiting_list_enabled' : Number($show_waiting_list.prop('checked')),
768
  'bookly_google_maps_address_enabled' : Number($show_google_maps.prop('checked')),
769
+ 'bookly_service_extras_show_in_cart' : Number($show_cart_extras.prop('checked'))
 
 
 
 
770
  }
771
  };
772
  // Add data from editable elements.
backend/modules/appearance/templates/index.php CHANGED
@@ -235,12 +235,12 @@ use Bookly\Backend\Modules\Appearance\Proxy;
235
  <?php // Render unique data per step
236
  switch ( $step ) :
237
  case 1: include '_1_service.php'; break;
238
- case 2: Proxy\ServiceExtras::renderStep( $self::renderTemplate( '_progress_tracker', compact( 'step', 'editable' ), false ) );
239
  break;
240
  case 3: include '_3_time.php'; break;
241
- case 4: Proxy\RecurringAppointments::renderStep( $self::renderTemplate( '_progress_tracker', compact( 'step', 'editable' ), false ) );
242
  break;
243
- case 5: Proxy\Cart::renderStep( $self::renderTemplate( '_progress_tracker', compact( 'step', 'editable' ), false ) );
244
  break;
245
  case 6: include '_6_details.php'; break;
246
  case 7: include '_7_payment.php'; break;
235
  <?php // Render unique data per step
236
  switch ( $step ) :
237
  case 1: include '_1_service.php'; break;
238
+ case 2: Proxy\ServiceExtras::renderStep( $self::renderTemplate( '_progress_tracker', compact( 'step' ), false ) );
239
  break;
240
  case 3: include '_3_time.php'; break;
241
+ case 4: Proxy\RecurringAppointments::renderStep( $self::renderTemplate( '_progress_tracker', compact( 'step' ), false ) );
242
  break;
243
+ case 5: Proxy\Cart::renderStep( $self::renderTemplate( '_progress_tracker', compact( 'step' ), false ) );
244
  break;
245
  case 6: include '_6_details.php'; break;
246
  case 7: include '_7_payment.php'; break;
backend/modules/appointments/Page.php CHANGED
@@ -54,6 +54,7 @@ class Page extends Lib\Base\Component
54
  wp_localize_script( 'bookly-appointments.js', 'BooklyL10n', array(
55
  'csrf_token' => Lib\Utils\Common::getCsrfToken(),
56
  'any_time' => __( 'Any time', 'bookly' ),
 
57
  'tomorrow' => __( 'Tomorrow', 'bookly' ),
58
  'today' => __( 'Today', 'bookly' ),
59
  'yesterday' => __( 'Yesterday', 'bookly' ),
54
  wp_localize_script( 'bookly-appointments.js', 'BooklyL10n', array(
55
  'csrf_token' => Lib\Utils\Common::getCsrfToken(),
56
  'any_time' => __( 'Any time', 'bookly' ),
57
+ 'createdAtAnyTime' => __( 'Created at any time', 'bookly' ),
58
  'tomorrow' => __( 'Tomorrow', 'bookly' ),
59
  'today' => __( 'Today', 'bookly' ),
60
  'yesterday' => __( 'Yesterday', 'bookly' ),
backend/modules/appointments/resources/js/appointments.js CHANGED
@@ -4,7 +4,7 @@ jQuery(function($) {
4
  $appointmentsList = $('#bookly-appointments-list'),
5
  $checkAllButton = $('#bookly-check-all'),
6
  $idFilter = $('#bookly-filter-id'),
7
- $dateFilter = $('#bookly-filter-date'),
8
  $creationDateFilter = $('#bookly-filter-creation-date'),
9
  $staffFilter = $('#bookly-filter-staff'),
10
  $customerFilter = $('#bookly-filter-customer'),
@@ -17,7 +17,18 @@ jQuery(function($) {
17
  $exportButton = $('#bookly-export'),
18
  $deleteButton = $('#bookly-delete'),
19
  isMobile = false,
20
- urlParts = document.URL.split('#')
 
 
 
 
 
 
 
 
 
 
 
21
  ;
22
 
23
  try {
@@ -33,18 +44,30 @@ jQuery(function($) {
33
  if (urlParts.length > 1) {
34
  urlParts[1].split('&').forEach(function (part) {
35
  var params = part.split('=');
36
- if (params[0] == 'range') {
37
- var format = 'YYYY-MM-DD',
38
- start = moment(params['1'].substring(0, 10)),
39
- end = moment(params['1'].substring(11));
40
- $dateFilter
41
- .data('date', start.format(format) + ' - ' + end.format(format))
42
- .find('span')
43
- .html(start.format(BooklyL10n.mjsDateFormat) + ' - ' + end.format(BooklyL10n.mjsDateFormat));
 
 
 
 
 
44
  } else if (params[0] == 'tasks') {
45
- $dateFilter
46
  .data('date', 'null').find('span')
47
  .html(BooklyL10n.tasks.title);
 
 
 
 
 
 
 
48
  } else {
49
  $('#bookly-filter-' + params[0]).val(params[1]);
50
  }
@@ -187,7 +210,7 @@ jQuery(function($) {
187
  return $.extend({action: 'bookly_get_appointments', csrf_token : BooklyL10n.csrf_token}, {
188
  filter: {
189
  id : $idFilter.val(),
190
- date : $dateFilter.data('date'),
191
  created_date: $creationDateFilter.data('date'),
192
  staff : $staffFilter.val(),
193
  customer : $customerFilter.val(),
@@ -369,12 +392,12 @@ jQuery(function($) {
369
  pickerRanges1[BooklyL10n.tasks.title] = [moment(), moment().add(1, 'days')];
370
  }
371
 
372
- $dateFilter.daterangepicker(
373
  {
374
- parentEl: $dateFilter.parent(),
375
- startDate: moment().startOf('month'),
376
- endDate: moment().endOf('month'),
377
- ranges: pickerRanges1,
378
  autoUpdateInput: false,
379
  locale: {
380
  applyLabel : BooklyL10n.apply,
@@ -391,21 +414,20 @@ jQuery(function($) {
391
  function(start, end, label) {
392
  switch (label) {
393
  case BooklyL10n.tasks.title:
394
- $dateFilter
395
  .data('date', 'null')
396
  .find('span')
397
  .html(BooklyL10n.tasks.title);
398
  break;
399
  case BooklyL10n.any_time:
400
- $dateFilter
401
  .data('date', 'any')
402
  .find('span')
403
  .html(BooklyL10n.any_time);
404
  break;
405
  default:
406
- var format = 'YYYY-MM-DD';
407
- $dateFilter
408
- .data('date', start.format(format) + ' - ' + end.format(format))
409
  .find('span')
410
  .html(start.format(BooklyL10n.mjsDateFormat) + ' - ' + end.format(BooklyL10n.mjsDateFormat));
411
  }
@@ -414,9 +436,9 @@ jQuery(function($) {
414
 
415
  $creationDateFilter.daterangepicker(
416
  {
417
- parentEl: $creationDateFilter.parent(),
418
- startDate: moment(),
419
- endDate: moment().add(100, 'years'),
420
  ranges: pickerRanges2,
421
  autoUpdateInput: false,
422
  locale: {
@@ -443,12 +465,11 @@ jQuery(function($) {
443
  $creationDateFilter
444
  .data('date', 'any')
445
  .find('span')
446
- .html(BooklyL10n.any_time);
447
  break;
448
  default:
449
- var format = 'YYYY-MM-DD';
450
  $creationDateFilter
451
- .data('date', start.format(format) + ' - ' + end.format(format))
452
  .find('span')
453
  .html(start.format(BooklyL10n.mjsDateFormat) + ' - ' + end.format(BooklyL10n.mjsDateFormat));
454
  }
@@ -473,7 +494,7 @@ jQuery(function($) {
473
  });
474
 
475
  $idFilter.on('keyup', function () { dt.ajax.reload(); });
476
- $dateFilter.on('apply.daterangepicker', function () { dt.ajax.reload(); });
477
  $creationDateFilter.on('apply.daterangepicker', function () { dt.ajax.reload(); });
478
  $staffFilter.on('change', function () { dt.ajax.reload(); });
479
  $customerFilter.on('change', function () { dt.ajax.reload(); });
4
  $appointmentsList = $('#bookly-appointments-list'),
5
  $checkAllButton = $('#bookly-check-all'),
6
  $idFilter = $('#bookly-filter-id'),
7
+ $appointmentDateFilter = $('#bookly-filter-date'),
8
  $creationDateFilter = $('#bookly-filter-creation-date'),
9
  $staffFilter = $('#bookly-filter-staff'),
10
  $customerFilter = $('#bookly-filter-customer'),
17
  $exportButton = $('#bookly-export'),
18
  $deleteButton = $('#bookly-delete'),
19
  isMobile = false,
20
+ urlParts = document.URL.split('#'),
21
+ pickers = {
22
+ dateFormat: 'YYYY-MM-DD',
23
+ appointmentDate: {
24
+ startDate: moment().startOf('month'),
25
+ endDate : moment().endOf('month'),
26
+ },
27
+ creationDate: {
28
+ startDate: moment(),
29
+ endDate : moment().add(100, 'years'),
30
+ },
31
+ }
32
  ;
33
 
34
  try {
44
  if (urlParts.length > 1) {
45
  urlParts[1].split('&').forEach(function (part) {
46
  var params = part.split('=');
47
+ if (params[0] == 'appointment-date') {
48
+ if (params['1'] == 'any') {
49
+ $appointmentDateFilter
50
+ .data('date', 'any').find('span')
51
+ .html(BooklyL10n.any_time);
52
+ } else {
53
+ pickers.appointmentDate.startDate = moment(params['1'].substring(0, 10));
54
+ pickers.appointmentDate.endDate = moment(params['1'].substring(11));
55
+ $appointmentDateFilter
56
+ .data('date', pickers.appointmentDate.startDate.format(pickers.dateFormat) + ' - ' + pickers.appointmentDate.endDate.format(pickers.dateFormat))
57
+ .find('span')
58
+ .html(pickers.appointmentDate.startDate.format(BooklyL10n.mjsDateFormat) + ' - ' + pickers.appointmentDate.endDate.format(BooklyL10n.mjsDateFormat));
59
+ }
60
  } else if (params[0] == 'tasks') {
61
+ $appointmentDateFilter
62
  .data('date', 'null').find('span')
63
  .html(BooklyL10n.tasks.title);
64
+ } else if (params[0] == 'created-date') {
65
+ pickers.creationDate.startDate = moment(params['1'].substring(0, 10));
66
+ pickers.creationDate.endDate = moment(params['1'].substring(11));
67
+ $creationDateFilter
68
+ .data('date', pickers.creationDate.startDate.format(pickers.dateFormat) + ' - ' + pickers.creationDate.endDate.format(pickers.dateFormat))
69
+ .find('span')
70
+ .html(pickers.creationDate.startDate.format(BooklyL10n.mjsDateFormat) + ' - ' + pickers.creationDate.endDate.format(BooklyL10n.mjsDateFormat));
71
  } else {
72
  $('#bookly-filter-' + params[0]).val(params[1]);
73
  }
210
  return $.extend({action: 'bookly_get_appointments', csrf_token : BooklyL10n.csrf_token}, {
211
  filter: {
212
  id : $idFilter.val(),
213
+ date : $appointmentDateFilter.data('date'),
214
  created_date: $creationDateFilter.data('date'),
215
  staff : $staffFilter.val(),
216
  customer : $customerFilter.val(),
392
  pickerRanges1[BooklyL10n.tasks.title] = [moment(), moment().add(1, 'days')];
393
  }
394
 
395
+ $appointmentDateFilter.daterangepicker(
396
  {
397
+ parentEl : $appointmentDateFilter.parent(),
398
+ startDate: pickers.appointmentDate.startDate,
399
+ endDate : pickers.appointmentDate.endDate,
400
+ ranges : pickerRanges1,
401
  autoUpdateInput: false,
402
  locale: {
403
  applyLabel : BooklyL10n.apply,
414
  function(start, end, label) {
415
  switch (label) {
416
  case BooklyL10n.tasks.title:
417
+ $appointmentDateFilter
418
  .data('date', 'null')
419
  .find('span')
420
  .html(BooklyL10n.tasks.title);
421
  break;
422
  case BooklyL10n.any_time:
423
+ $appointmentDateFilter
424
  .data('date', 'any')
425
  .find('span')
426
  .html(BooklyL10n.any_time);
427
  break;
428
  default:
429
+ $appointmentDateFilter
430
+ .data('date', start.format(pickers.dateFormat) + ' - ' + end.format(pickers.dateFormat))
 
431
  .find('span')
432
  .html(start.format(BooklyL10n.mjsDateFormat) + ' - ' + end.format(BooklyL10n.mjsDateFormat));
433
  }
436
 
437
  $creationDateFilter.daterangepicker(
438
  {
439
+ parentEl : $creationDateFilter.parent(),
440
+ startDate: pickers.creationDate.startDate,
441
+ endDate : pickers.creationDate.endDate,
442
  ranges: pickerRanges2,
443
  autoUpdateInput: false,
444
  locale: {
465
  $creationDateFilter
466
  .data('date', 'any')
467
  .find('span')
468
+ .html(BooklyL10n.createdAtAnyTime);
469
  break;
470
  default:
 
471
  $creationDateFilter
472
+ .data('date', start.format(pickers.dateFormat) + ' - ' + end.format(pickers.dateFormat))
473
  .find('span')
474
  .html(start.format(BooklyL10n.mjsDateFormat) + ' - ' + end.format(BooklyL10n.mjsDateFormat));
475
  }
494
  });
495
 
496
  $idFilter.on('keyup', function () { dt.ajax.reload(); });
497
+ $appointmentDateFilter.on('apply.daterangepicker', function () { dt.ajax.reload(); });
498
  $creationDateFilter.on('apply.daterangepicker', function () { dt.ajax.reload(); });
499
  $staffFilter.on('change', function () { dt.ajax.reload(); });
500
  $customerFilter.on('change', function () { dt.ajax.reload(); });
backend/modules/dashboard/Page.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Modules\Dashboard;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Page
8
+ * @package Bookly\Backend\Modules\Dashboard
9
+ */
10
+ class Page extends Lib\Base\Component
11
+ {
12
+ /**
13
+ * Render page.
14
+ */
15
+ public static function render()
16
+ {
17
+ /** @var \WP_Locale $wp_locale */
18
+ global $wp_locale;
19
+
20
+ self::enqueueStyles( array(
21
+ 'backend' => array(
22
+ 'bootstrap/css/bootstrap-theme.min.css',
23
+ 'css/daterangepicker.css',
24
+ ),
25
+ ) );
26
+
27
+ self::enqueueScripts( array(
28
+ 'backend' => array(
29
+ 'bootstrap/js/bootstrap.min.js' => array( 'jquery' ),
30
+ 'js/alert.js' => array( 'jquery' ),
31
+ 'js/moment.min.js',
32
+ 'js/daterangepicker.js' => array( 'jquery' ),
33
+ ),
34
+ 'module' => array(
35
+ 'js/dashboard.js' => array( 'jquery', 'bookly-appointments-dashboard.js' ),
36
+ ),
37
+ ) );
38
+ wp_localize_script( 'bookly-dashboard.js', 'BooklyL10n', array(
39
+ 'csrfToken' => Lib\Utils\Common::getCsrfToken(),
40
+ 'datePicker' => array(
41
+ 'last_7' => __( 'Last 7 days', 'bookly' ),
42
+ 'last_30' => __( 'Last 30 days', 'bookly' ),
43
+ 'thisMonth' => __( 'This month', 'bookly' ),
44
+ 'lastMonth' => __( 'Last month', 'bookly' ),
45
+ 'customRange' => __( 'Custom range', 'bookly' ),
46
+ 'apply' => __( 'Apply', 'bookly' ),
47
+ 'cancel' => __( 'Cancel', 'bookly' ),
48
+ 'to' => __( 'To', 'bookly' ),
49
+ 'from' => __( 'From', 'bookly' ),
50
+ 'mjsDateFormat' => Lib\Utils\DateTime::convertFormat( 'date', Lib\Utils\DateTime::FORMAT_MOMENT_JS ),
51
+ 'startOfWeek' => (int) get_option( 'start_of_week' ),
52
+ ),
53
+ 'calendar' => array(
54
+ 'longMonths' => array_values( $wp_locale->month ),
55
+ 'shortMonths' => array_values( $wp_locale->month_abbrev ),
56
+ 'longDays' => array_values( $wp_locale->weekday ),
57
+ 'shortDays' => array_values( $wp_locale->weekday_abbrev ),
58
+ ),
59
+ ) );
60
+
61
+ self::renderTemplate( 'index' );
62
+ }
63
+ }
backend/modules/dashboard/proxy/Pro.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Modules\Dashboard\Proxy;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class Pro
8
+ * @package Bookly\Backend\Modules\Dashboard\Proxy
9
+ *
10
+ * @method static void renderAnalytics() Render analytics section.
11
+ */
12
+ abstract class Pro extends Lib\Base\Proxy
13
+ {
14
+
15
+ }
backend/modules/dashboard/resources/js/dashboard.js ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function ($) {
2
+ let $dateFilter = $('#bookly-filter-date'),
3
+ pickerRanges = [];
4
+
5
+ /**
6
+ * Init date range pickers.
7
+ */
8
+ moment.locale('en', {
9
+ months : BooklyL10n.calendar.longMonths,
10
+ monthsShort : BooklyL10n.calendar.shortMonths,
11
+ weekdays : BooklyL10n.calendar.longDays,
12
+ weekdaysShort: BooklyL10n.calendar.shortDays,
13
+ weekdaysMin : BooklyL10n.calendar.shortDays
14
+ });
15
+
16
+ pickerRanges[BooklyL10n.datePicker.last_7] = [moment().subtract(7, 'days'), moment()];
17
+ pickerRanges[BooklyL10n.datePicker.last_30] = [moment().subtract(30, 'days'), moment()];
18
+ pickerRanges[BooklyL10n.datePicker.thisMonth] = [moment().startOf('month'), moment().endOf('month')];
19
+ pickerRanges[BooklyL10n.datePicker.lastMonth] = [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')];
20
+
21
+ $dateFilter.daterangepicker({
22
+ parentEl : $dateFilter.parent(),
23
+ startDate: moment().subtract(7, 'days'),
24
+ endDate : moment(),
25
+ ranges : pickerRanges,
26
+ autoUpdateInput: false,
27
+ locale: {
28
+ applyLabel : BooklyL10n.datePicker.apply,
29
+ cancelLabel: BooklyL10n.datePicker.cancel,
30
+ fromLabel : BooklyL10n.datePicker.from,
31
+ toLabel : BooklyL10n.datePicker.to,
32
+ customRangeLabel: BooklyL10n.datePicker.customRange,
33
+ daysOfWeek : BooklyL10n.calendar.shortDays,
34
+ monthNames : BooklyL10n.calendar.longMonths,
35
+ firstDay : parseInt(BooklyL10n.datePicker.startOfWeek),
36
+ format : BooklyL10n.datePicker.mjsDateFormat
37
+ }
38
+ },
39
+ function(start, end, label) {
40
+ switch (label) {
41
+ default:
42
+ var format = 'YYYY-MM-DD';
43
+ $dateFilter
44
+ .data('date', start.format(format) + ' - ' + end.format(format))
45
+ .find('span')
46
+ .html(start.format(BooklyL10n.datePicker.mjsDateFormat) + ' - ' + end.format(BooklyL10n.datePicker.mjsDateFormat));
47
+ }
48
+ } );
49
+
50
+ $dateFilter.on('apply.daterangepicker', function () {
51
+ $(document.body).trigger('bookly.dateRange.changed', [$dateFilter.data('date')]);
52
+ }).trigger('apply.daterangepicker');
53
+ });
backend/modules/dashboard/templates/index.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Components;
3
+ use Bookly\Backend\Components\Dashboard;
4
+ use Bookly\Backend\Modules\Dashboard\Proxy;
5
+ use Bookly\Lib\Utils\Common;
6
+ use Bookly\Lib\Utils\DateTime;
7
+ ?>
8
+ <div id="bookly-tbs" class="wrap">
9
+ <div class="bookly-tbs-body">
10
+ <div class="page-header text-right">
11
+ <div class="bookly-page-title">
12
+ <?php esc_html_e( 'Dashboard', 'bookly' ) ?>
13
+ </div>
14
+ <?php if ( Common::isCurrentUserSupervisor() ) : ?>
15
+ <?php Components\Support\Buttons::render( $self::pageSlug() ) ?>
16
+ <?php endif ?>
17
+ </div>
18
+ <div class="row">
19
+ <div class="col-md-3 col-sm-6">
20
+ <div class="bookly-margin-bottom-lg bookly-relative">
21
+ <button type="button" class="btn btn-block btn-default" id="bookly-filter-date" data-date="<?php echo date( 'Y-m-d', strtotime( '-7 days' ) ) ?> - <?php echo date( 'Y-m-d' ) ?>">
22
+ <i class="dashicons dashicons-calendar-alt"></i>
23
+ <span>
24
+ <?php echo DateTime::formatDate( '-7 days' ) ?> - <?php echo DateTime::formatDate( 'today' ) ?>
25
+ </span>
26
+ </button>
27
+ </div>
28
+ </div>
29
+ <div class="col-md-9 col-sm-6">
30
+ <div class="h5">
31
+ <?php esc_html_e( 'See the number of appointments and total revenue for the selected period', 'bookly' ) ?>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ <div class="panel panel-default bookly-main">
36
+ <div class="panel-body">
37
+ <?php Dashboard\Appointments\Widget::renderChart() ?>
38
+ <?php Proxy\Pro::renderAnalytics() ?>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </div>
backend/modules/notifications/templates/index.php CHANGED
@@ -44,7 +44,7 @@ use Bookly\Lib\Config;
44
 
45
  <div class="form-inline bookly-margin-bottom-lg text-right">
46
  <?php Inputs::renderCsrf() ?>
47
- <?php Buttons::renderCustom( 'bookly-js-delete-notifications', 'btn-danger', esc_html__( 'Delete...', 'bookly' ) ) ?>
48
 
49
  <div class="pull-left">
50
  <button type="button" class="btn btn-default" id="bookly-js-test-email-notifications">
44
 
45
  <div class="form-inline bookly-margin-bottom-lg text-right">
46
  <?php Inputs::renderCsrf() ?>
47
+ <?php Buttons::renderDelete( 'bookly-js-delete-notifications' ) ?>
48
 
49
  <div class="pull-left">
50
  <button type="button" class="btn btn-default" id="bookly-js-test-email-notifications">
backend/modules/payments/Ajax.php CHANGED
@@ -22,8 +22,6 @@ class Ajax extends Lib\Base\Ajax
22
  */
23
  public static function getPayments()
24
  {
25
- $columns = self::parameter( 'columns' );
26
- $order = self::parameter( 'order' );
27
  $filter = self::parameter( 'filter' );
28
 
29
  $query = Lib\Entities\Payment::query( 'p' )
@@ -65,11 +63,6 @@ class Ajax extends Lib\Base\Ajax
65
  $query->where( 'ca.customer_id', $filter['customer'] );
66
  }
67
 
68
- foreach ( $order as $sort_by ) {
69
- $query->sortBy( $columns[ $sort_by['column'] ]['data'] )
70
- ->order( $sort_by['dir'] == 'desc' ? Lib\Query::ORDER_DESCENDING : Lib\Query::ORDER_ASCENDING );
71
- }
72
-
73
  $payments = $query->fetchArray();
74
 
75
  $data = array();
@@ -87,14 +80,16 @@ class Ajax extends Lib\Base\Ajax
87
 
88
  $data[] = array(
89
  'id' => $payment['id'],
90
- 'created' => Lib\Utils\DateTime::formatDateTime( $payment['created'] ),
 
91
  'type' => Lib\Entities\Payment::typeToString( $payment['type'] ),
92
  'customer' => $payment['customer'] ?: $details['customer'],
93
  'provider' => ( $payment['provider'] ?: $details['items'][0]['staff_name'] ) . $multiple,
94
  'service' => ( $payment['service'] ?: $details['items'][0]['service_name'] ) . $multiple,
95
- 'start_date' => ( $payment['start_date']
 
96
  ? Lib\Utils\DateTime::formatDateTime( $payment['start_date'] )
97
- : ( $details['items'][0]['appointment_date'] ? Lib\Utils\DateTime::formatDateTime( $details['items'][0]['appointment_date'] ) . $multiple : __( 'N/A', 'bookly' ) . $multiple ) ),
98
  'paid' => $paid_title,
99
  'status' => Lib\Entities\Payment::statusToString( $payment['status'] ),
100
  );
22
  */
23
  public static function getPayments()
24
  {
 
 
25
  $filter = self::parameter( 'filter' );
26
 
27
  $query = Lib\Entities\Payment::query( 'p' )
63
  $query->where( 'ca.customer_id', $filter['customer'] );
64
  }
65
 
 
 
 
 
 
66
  $payments = $query->fetchArray();
67
 
68
  $data = array();
80
 
81
  $data[] = array(
82
  'id' => $payment['id'],
83
+ 'created' => $payment['created'],
84
+ 'created_format' => Lib\Utils\DateTime::formatDateTime( $payment['created'] ),
85
  'type' => Lib\Entities\Payment::typeToString( $payment['type'] ),
86
  'customer' => $payment['customer'] ?: $details['customer'],
87
  'provider' => ( $payment['provider'] ?: $details['items'][0]['staff_name'] ) . $multiple,
88
  'service' => ( $payment['service'] ?: $details['items'][0]['service_name'] ) . $multiple,
89
+ 'start_date' => $payment['start_date'] ?: $details['items'][0]['appointment_date'] ?: __( 'N/A', 'bookly' ),
90
+ 'start_date_format' => $payment['start_date']
91
  ? Lib\Utils\DateTime::formatDateTime( $payment['start_date'] )
92
+ : ( $details['items'][0]['appointment_date'] ? Lib\Utils\DateTime::formatDateTime( $details['items'][0]['appointment_date'] ) . $multiple : __( 'N/A', 'bookly' ) . $multiple ),
93
  'paid' => $paid_title,
94
  'status' => Lib\Entities\Payment::statusToString( $payment['status'] ),
95
  );
backend/modules/payments/resources/js/payments.js CHANGED
@@ -4,7 +4,7 @@ jQuery(function($) {
4
  $payments_list = $('#bookly-payments-list'),
5
  $check_all_button = $('#bookly-check-all'),
6
  $id_filter = $('#bookly-filter-id'),
7
- $date_filter = $('#bookly-filter-date'),
8
  $type_filter = $('#bookly-filter-type'),
9
  $customer_filter = $('#bookly-filter-customer'),
10
  $staff_filter = $('#bookly-filter-staff'),
@@ -12,8 +12,32 @@ jQuery(function($) {
12
  $status_filter = $('#bookly-filter-status'),
13
  $payment_total = $('#bookly-payment-total'),
14
  $delete_button = $('#bookly-delete'),
15
- $download_invoice = $('#bookly-download-invoices')
16
- ;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  $('.bookly-js-select')
18
  .val(null)
19
  .on('select2:unselecting', function(e) {
@@ -33,12 +57,24 @@ jQuery(function($) {
33
  */
34
  var columns = [
35
  { data: 'id', responsivePriority: 9 },
36
- { data: 'created', responsivePriority: 8 },
 
 
 
 
 
 
37
  { data: 'type', responsivePriority: 7 },
38
  { data: 'customer', render: $.fn.dataTable.render.text(), responsivePriority: 6 },
39
  { data: 'provider', responsivePriority: 4 },
40
  { data: 'service', responsivePriority: 3 },
41
- { data: 'start_date', responsivePriority: 2 },
 
 
 
 
 
 
42
  { data: 'paid', responsivePriority: 1 },
43
  { data: 'status', responsivePriority: 3 },
44
  {
@@ -73,7 +109,7 @@ jQuery(function($) {
73
  searching: false,
74
  processing: true,
75
  responsive: true,
76
- serverSide: true,
77
  ajax: {
78
  url: ajaxurl,
79
  type: 'POST',
@@ -83,7 +119,7 @@ jQuery(function($) {
83
  csrf_token: BooklyL10n.csrf_token,
84
  filter: {
85
  id : $id_filter.val(),
86
- created : $date_filter.data('date'),
87
  type : $type_filter.val(),
88
  customer: $customer_filter.val(),
89
  staff : $staff_filter.val(),
@@ -138,10 +174,11 @@ jQuery(function($) {
138
  picker_ranges[BooklyL10n.this_month] = [moment().startOf('month'), moment().endOf('month')];
139
  picker_ranges[BooklyL10n.last_month] = [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')];
140
 
141
- $date_filter.daterangepicker(
142
  {
143
- parentEl: $date_filter.parent(),
144
- startDate: moment().subtract(30, 'days'), // by default selected is "Last 30 days"
 
145
  ranges: picker_ranges,
146
  locale: {
147
  applyLabel: BooklyL10n.apply,
@@ -156,16 +193,15 @@ jQuery(function($) {
156
  }
157
  },
158
  function(start, end) {
159
- var format = 'YYYY-MM-DD';
160
- $date_filter
161
- .data('date', start.format(format) + ' - ' + end.format(format))
162
  .find('span')
163
  .html(start.format(BooklyL10n.mjsDateFormat) + ' - ' + end.format(BooklyL10n.mjsDateFormat));
164
  }
165
  );
166
 
167
  $id_filter.on('keyup', function () { dt.ajax.reload(); });
168
- $date_filter.on('apply.daterangepicker', function () { dt.ajax.reload(); });
169
  $type_filter.on('change', function () { dt.ajax.reload(); });
170
  $customer_filter.on('change', function () { dt.ajax.reload(); });
171
  $staff_filter.on('change', function () { dt.ajax.reload(); });
4
  $payments_list = $('#bookly-payments-list'),
5
  $check_all_button = $('#bookly-check-all'),
6
  $id_filter = $('#bookly-filter-id'),
7
+ $creationDateFilter = $('#bookly-filter-date'),
8
  $type_filter = $('#bookly-filter-type'),
9
  $customer_filter = $('#bookly-filter-customer'),
10
  $staff_filter = $('#bookly-filter-staff'),
12
  $status_filter = $('#bookly-filter-status'),
13
  $payment_total = $('#bookly-payment-total'),
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: {
20
+ startDate: moment().subtract(30, 'days'),
21
+ endDate : moment(),
22
+ },
23
+ };
24
+
25
+ if (urlParts.length > 1) {
26
+ urlParts[1].split('&').forEach(function (part) {
27
+ var params = part.split('=');
28
+ if (params[0] == 'created-date') {
29
+ pickers.creationDate.startDate = moment(params['1'].substring(0, 10));
30
+ pickers.creationDate.endDate = moment(params['1'].substring(11));
31
+ $creationDateFilter
32
+ .data('date', pickers.creationDate.startDate.format(pickers.dateFormat) + ' - ' + pickers.creationDate.endDate.format(pickers.dateFormat))
33
+ .find('span')
34
+ .html(pickers.creationDate.startDate.format(BooklyL10n.mjsDateFormat) + ' - ' + pickers.creationDate.endDate.format(BooklyL10n.mjsDateFormat));
35
+ } else {
36
+ $('#bookly-filter-' + params[0]).val(params[1]);
37
+ }
38
+ });
39
+ }
40
+
41
  $('.bookly-js-select')
42
  .val(null)
43
  .on('select2:unselecting', function(e) {
57
  */
58
  var columns = [
59
  { data: 'id', responsivePriority: 9 },
60
+ {
61
+ data: 'created',
62
+ responsivePriority: 8,
63
+ render: function ( data, type, row, meta ) {
64
+ return row.created_format;
65
+ }
66
+ },
67
  { data: 'type', responsivePriority: 7 },
68
  { data: 'customer', render: $.fn.dataTable.render.text(), responsivePriority: 6 },
69
  { data: 'provider', responsivePriority: 4 },
70
  { data: 'service', responsivePriority: 3 },
71
+ {
72
+ data: 'start_date',
73
+ responsivePriority: 2,
74
+ render: function ( data, type, row, meta ) {
75
+ return row.start_date_format;
76
+ }
77
+ },
78
  { data: 'paid', responsivePriority: 1 },
79
  { data: 'status', responsivePriority: 3 },
80
  {
109
  searching: false,
110
  processing: true,
111
  responsive: true,
112
+ serverSide: false,
113
  ajax: {
114
  url: ajaxurl,
115
  type: 'POST',
119
  csrf_token: BooklyL10n.csrf_token,
120
  filter: {
121
  id : $id_filter.val(),
122
+ created : $creationDateFilter.data('date'),
123
  type : $type_filter.val(),
124
  customer: $customer_filter.val(),
125
  staff : $staff_filter.val(),
174
  picker_ranges[BooklyL10n.this_month] = [moment().startOf('month'), moment().endOf('month')];
175
  picker_ranges[BooklyL10n.last_month] = [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')];
176
 
177
+ $creationDateFilter.daterangepicker(
178
  {
179
+ parentEl: $creationDateFilter.parent(),
180
+ startDate: pickers.creationDate.startDate,
181
+ endDate : pickers.creationDate.endDate,
182
  ranges: picker_ranges,
183
  locale: {
184
  applyLabel: BooklyL10n.apply,
193
  }
194
  },
195
  function(start, end) {
196
+ $creationDateFilter
197
+ .data('date', start.format(pickers.dateFormat) + ' - ' + end.format(pickers.dateFormat))
 
198
  .find('span')
199
  .html(start.format(BooklyL10n.mjsDateFormat) + ' - ' + end.format(BooklyL10n.mjsDateFormat));
200
  }
201
  );
202
 
203
  $id_filter.on('keyup', function () { dt.ajax.reload(); });
204
+ $creationDateFilter.on('apply.daterangepicker', function () { dt.ajax.reload(); });
205
  $type_filter.on('change', function () { dt.ajax.reload(); });
206
  $customer_filter.on('change', function () { dt.ajax.reload(); });
207
  $staff_filter.on('change', function () { dt.ajax.reload(); });
backend/modules/services/Ajax.php CHANGED
@@ -4,6 +4,7 @@ namespace Bookly\Backend\Modules\Services;
4
  use Bookly\Backend\Components\Notices\Limitation;
5
  use Bookly\Backend\Modules\Appointments;
6
  use Bookly\Lib;
 
7
 
8
  /**
9
  * Class Ajax
@@ -12,51 +13,37 @@ use Bookly\Lib;
12
  class Ajax extends Page
13
  {
14
  /**
15
- * Get category services
16
  */
17
- public static function getCategoryServices()
18
  {
19
- wp_send_json_success( self::renderTemplate( '_list', self::_getTemplateData(), false ) );
20
- }
 
21
 
22
- /**
23
- * Add category.
24
- */
25
- public static function addCategory()
26
- {
27
- $html = '';
28
- if ( ! empty ( $_POST ) && self::csrfTokenValid() ) {
29
- $form = new Forms\Category();
30
- $form->bind( self::postParameters() );
31
- if ( $category = $form->save() ) {
32
- $html = self::renderTemplate( '_category_item', array( 'category' => $category->getFields() ), false );
33
- }
34
- }
35
- wp_send_json_success( compact( 'html' ) );
36
- }
37
-
38
- /**
39
- * Update category.
40
- */
41
- public static function updateCategory()
42
- {
43
- $form = new Forms\Category();
44
- $form->bind( self::postParameters() );
45
- $form->save();
46
- }
47
 
48
- /**
49
- * Update category position.
50
- */
51
- public static function updateCategoryPosition()
52
- {
53
- $category_sorts = self::parameter( 'position' );
54
- foreach ( $category_sorts as $position => $category_id ) {
55
- $category_sort = new Lib\Entities\Category();
56
- $category_sort->load( $category_id );
57
- $category_sort->setPosition( $position );
58
- $category_sort->save();
 
 
 
 
 
 
 
59
  }
 
 
60
  }
61
 
62
  /**
@@ -64,29 +51,21 @@ class Ajax extends Page
64
  */
65
  public static function updateServicesPosition()
66
  {
67
- $services_sorts = self::parameter( 'position' );
68
  foreach ( $services_sorts as $position => $service_id ) {
69
  $services_sort = new Lib\Entities\Service();
70
  $services_sort->load( $service_id );
71
  $services_sort->setPosition( $position );
72
  $services_sort->save();
73
  }
74
- }
75
 
76
- /**
77
- * Delete category.
78
- */
79
- public static function deleteCategory()
80
- {
81
- $category = new Lib\Entities\Category();
82
- $category->setId( self::parameter( 'id', 0 ) );
83
- $category->delete();
84
  }
85
 
86
  /**
87
  * Add service.
88
  */
89
- public static function addService()
90
  {
91
  ! Lib\Config::proActive() &&
92
  get_option( 'bookly_updated_from_legacy_version' ) != 'lite' &&
@@ -97,11 +76,78 @@ class Ajax extends Page
97
  $form->bind( self::postParameters() );
98
  $form->getObject()->setDuration( Lib\Config::getTimeSlotLength() );
99
  $service = $form->save();
100
- $data = self::_getTemplateData( $service->getCategoryId() );
101
 
102
  Proxy\Shared::serviceCreated( $service, self::postParameters() );
103
 
104
- wp_send_json_success( array( 'html' => self::renderTemplate( '_list', $data, false ), 'service_id' => $service->getId() ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
  }
106
 
107
  /**
@@ -135,7 +181,7 @@ class Ajax extends Page
135
  if ( $appointment ) {
136
  $last_month = date_create( $appointment['start_date'] )->modify( 'last day of' )->format( 'Y-m-d' );
137
  $action = 'show_modal';
138
- $filter_url = sprintf( '%s#service=%d&range=%s-%s',
139
  Lib\Utils\Common::escAdminUrl( Appointments\Page::pageSlug() ),
140
  $appointment['service_id'],
141
  date_create( current_time( 'mysql' ) )->format( 'Y-m-d' ),
@@ -185,7 +231,7 @@ class Ajax extends Page
185
  if ( self::parameter( 'update_staff', false ) ) {
186
  Lib\Entities\StaffService::query()
187
  ->update()
188
- ->set( 'price', self::parameter( 'price' ) )
189
  ->set( 'capacity_min', $service->getCapacityMin() )
190
  ->set( 'capacity_max', $service->getCapacityMax() )
191
  ->where( 'service_id', self::parameter( 'id' ) )
@@ -193,7 +239,7 @@ class Ajax extends Page
193
  }
194
  // Create records for newly linked staff.
195
  $existing_staff_ids = array();
196
- $res = Lib\Entities\StaffService::query()
197
  ->select( 'staff_id' )
198
  ->where( 'service_id', $service->getId() )
199
  ->fetchArray();
@@ -217,11 +263,36 @@ class Ajax extends Page
217
  // Update services in addons.
218
  $alert = Proxy\Shared::updateService( array( 'success' => array( __( 'Settings saved.', 'bookly' ) ) ), $service, self::postParameters() );
219
 
220
- $price = Lib\Utils\Price::format( $service->getPrice() );
221
- $nice_duration = Lib\Utils\DateTime::secondsToInterval( $service->getDuration() );
222
- $title = $service->getTitle();
223
- $colors = array_fill( 0, 3, $service->getColor() );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
 
225
- wp_send_json_success( Proxy\Shared::prepareUpdateServiceResponse( compact( 'title', 'price', 'colors', 'nice_duration', 'alert' ), $service, self::postParameters() ) );
226
  }
227
  }
4
  use Bookly\Backend\Components\Notices\Limitation;
5
  use Bookly\Backend\Modules\Appointments;
6
  use Bookly\Lib;
7
+ use Bookly\Lib\Utils\DateTime;
8
 
9
  /**
10
  * Class Ajax
13
  class Ajax extends Page
14
  {
15
  /**
16
+ * Get services data for data tables
17
  */
18
+ public static function getServices()
19
  {
20
+ $query = Lib\Entities\Service::query( 's' )
21
+ ->whereIn( 's.type', array_keys( Proxy\Shared::prepareServiceTypes( array( Lib\Entities\Service::TYPE_SIMPLE => Lib\Entities\Service::TYPE_SIMPLE ) ) ) )
22
+ ->sortBy( 'position' );
23
 
24
+ $type_icons = Proxy\Shared::prepareServiceIcons( array( Lib\Entities\Service::TYPE_SIMPLE => 'fa-calendar-day' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
+ $data = array();
27
+ /** @var Lib\Entities\Service $service */
28
+ foreach ( $query->find() as $service ) {
29
+ $sub_services_count = count( $service->getSubServices() );
30
+ $data[] = array(
31
+ 'id' => $service->getId(),
32
+ 'title' => $service->getTitle(),
33
+ 'position' => sprintf( '%05d-%05d', $service->getPosition(), $service->getId() ),
34
+ 'category' => $service->getCategoryId(),
35
+ 'colors' => Proxy\Shared::prepareServiceColors( array_fill( 0, 3, $service->getColor() ), $service->getId(), $service->getType() ),
36
+ 'type' => ucfirst( $service->getType() ),
37
+ 'type_icon' => $type_icons[ $service->getType() ],
38
+ 'price' => Lib\Utils\Price::format( $service->getPrice() ),
39
+ 'duration' => in_array( $service->getType(), array(
40
+ Lib\Entities\Service::TYPE_COLLABORATIVE,
41
+ Lib\Entities\Service::TYPE_COMPOUND,
42
+ ) ) ? sprintf( _n( '%d service', '%d services', $sub_services_count, 'bookly' ), $sub_services_count ) : Lib\Utils\DateTime::secondsToInterval( $service->getDuration() ),
43
+ );
44
  }
45
+
46
+ wp_send_json_success( $data );
47
  }
48
 
49
  /**
51
  */
52
  public static function updateServicesPosition()
53
  {
54
+ $services_sorts = self::parameter( 'positions' );
55
  foreach ( $services_sorts as $position => $service_id ) {
56
  $services_sort = new Lib\Entities\Service();
57
  $services_sort->load( $service_id );
58
  $services_sort->setPosition( $position );
59
  $services_sort->save();
60
  }
 
61
 
62
+ wp_send_json_success();
 
 
 
 
 
 
 
63
  }
64
 
65
  /**
66
  * Add service.
67
  */
68
+ public static function createService()
69
  {
70
  ! Lib\Config::proActive() &&
71
  get_option( 'bookly_updated_from_legacy_version' ) != 'lite' &&
76
  $form->bind( self::postParameters() );
77
  $form->getObject()->setDuration( Lib\Config::getTimeSlotLength() );
78
  $service = $form->save();
 
79
 
80
  Proxy\Shared::serviceCreated( $service, self::postParameters() );
81
 
82
+ $sub_services_count = array_sum( array_map( function ( $sub_service ) {
83
+ return (int) ( $sub_service->getType() == Lib\Entities\SubService::TYPE_SERVICE );
84
+ }, $service->getSubServices() ) );
85
+
86
+ wp_send_json_success( array(
87
+ 'id' => $service->getId(),
88
+ 'type' => $service->getType(),
89
+ 'title' => $service->getTitle(),
90
+ 'category' => $service->getCategoryId(),
91
+ 'colors' => Proxy\Shared::prepareServiceColors( array_fill( 0, 3, $service->getColor() ), $service->getId(), $service->getType() ),
92
+ 'duration' => in_array( $service->getType(), array(
93
+ Lib\Entities\Service::TYPE_COLLABORATIVE,
94
+ Lib\Entities\Service::TYPE_COMPOUND,
95
+ ) ) ? sprintf( _n( '%d service', '%d services', $sub_services_count, 'bookly' ), $sub_services_count ) : Lib\Utils\DateTime::secondsToInterval( $service->getDuration() ),
96
+ ) );
97
+ }
98
+
99
+ /**
100
+ * Edit Service
101
+ */
102
+ public static function getServiceData()
103
+ {
104
+ $service_id = self::parameter( 'id' );
105
+ $service_collection_data = Lib\Entities\Service::query( 's' )
106
+ ->select( 's.*, COUNT(staff.id) AS total_staff, GROUP_CONCAT(DISTINCT staff.id) AS staff_ids' )
107
+ ->leftJoin( 'StaffService', 'ss', 'ss.service_id = s.id' )
108
+ ->leftJoin( 'Staff', 'staff', 'staff.id = ss.staff_id' )
109
+ ->whereIn( 's.type', array_keys( Proxy\Shared::prepareServiceTypes( array( Lib\Entities\Service::TYPE_SIMPLE => Lib\Entities\Service::TYPE_SIMPLE ) ) ) )
110
+ ->groupBy( 's.id' )
111
+ ->fetchArray();
112
+ $service_collection = array();
113
+ foreach ( $service_collection_data as $current_service ) {
114
+ if ( $current_service['id'] == $service_id ) {
115
+ $service = $current_service;
116
+ }
117
+ $service_collection[ $current_service['id'] ] = $current_service;
118
+ }
119
+ $service['sub_services'] = Lib\Entities\SubService::query()
120
+ ->where( 'service_id', $service['id'] )
121
+ ->sortBy( 'position' )
122
+ ->fetchArray();
123
+ $service['sub_services_count'] = array_sum( array_map( function ( $sub_service ) {
124
+ return (int) ( $sub_service['type'] == Lib\Entities\SubService::TYPE_SERVICE );
125
+ }, $service['sub_services'] ) );
126
+ $service['colors'] = Proxy\Shared::prepareServiceColors( array_fill( 0, 3, $service['color'] ), $service['id'], $service['type'] );
127
+
128
+ $staff_dropdown_data = self::getStaffDropDownData();
129
+
130
+ $categories_collection = Lib\Entities\Category::query()->sortBy( 'position' )->fetchArray();
131
+ $service_types = Proxy\Shared::prepareServiceTypes( array( Lib\Entities\Service::TYPE_SIMPLE => __( 'Simple', 'bookly' ) ) );
132
+ $result = array(
133
+ 'general_html' => self::renderTemplate( 'general', compact( 'service', 'service_types', 'service_collection', 'staff_dropdown_data', 'categories_collection' ), false ),
134
+ 'advanced_html' => self::renderTemplate( 'advanced', compact( 'service', 'service_types', 'service_collection', 'staff_dropdown_data', 'categories_collection' ), false ),
135
+ 'time_html' => self::renderTemplate( 'time', compact( 'service', 'service_types', 'service_collection', 'staff_dropdown_data', 'categories_collection' ), false ),
136
+ 'extras_html' => Proxy\ServiceExtras::getTabHtml( $service_id ),
137
+ 'schedule_html' => Proxy\ServiceSchedule::getTabHtml( $service_id ),
138
+ 'special_days_html' => Proxy\ServiceSpecialDays::getTabHtml( $service_id ),
139
+ 'additional_html' => Proxy\Shared::prepareAfterServiceList( '', $service_collection ),
140
+ 'title' => $service['title'],
141
+ 'type' => $service['type'],
142
+ 'price' => Lib\Utils\Price::format( $service['price'] ),
143
+ 'duration' => in_array( $service['type'], array(
144
+ Lib\Entities\Service::TYPE_COLLABORATIVE,
145
+ Lib\Entities\Service::TYPE_COMPOUND,
146
+ ) ) ? sprintf( _n( '%d service', '%d services', $service['sub_services_count'], 'bookly' ), $service['sub_services_count'] ) : Lib\Utils\DateTime::secondsToInterval( $service['duration'] ),
147
+ 'staff' => $staff_dropdown_data,
148
+ );
149
+
150
+ wp_send_json_success( Proxy\Shared::prepareGetService( $result, $service ) );
151
  }
152
 
153
  /**
181
  if ( $appointment ) {
182
  $last_month = date_create( $appointment['start_date'] )->modify( 'last day of' )->format( 'Y-m-d' );
183
  $action = 'show_modal';
184
+ $filter_url = sprintf( '%s#service=%d&appointment-date=%s-%s',
185
  Lib\Utils\Common::escAdminUrl( Appointments\Page::pageSlug() ),
186
  $appointment['service_id'],
187
  date_create( current_time( 'mysql' ) )->format( 'Y-m-d' ),
231
  if ( self::parameter( 'update_staff', false ) ) {
232
  Lib\Entities\StaffService::query()
233
  ->update()
234
+ ->set( 'price', self::parameter( 'price' ) )
235
  ->set( 'capacity_min', $service->getCapacityMin() )
236
  ->set( 'capacity_max', $service->getCapacityMax() )
237
  ->where( 'service_id', self::parameter( 'id' ) )
239
  }
240
  // Create records for newly linked staff.
241
  $existing_staff_ids = array();
242
+ $res = Lib\Entities\StaffService::query()
243
  ->select( 'staff_id' )
244
  ->where( 'service_id', $service->getId() )
245
  ->fetchArray();
263
  // Update services in addons.
264
  $alert = Proxy\Shared::updateService( array( 'success' => array( __( 'Settings saved.', 'bookly' ) ) ), $service, self::postParameters() );
265
 
266
+ wp_send_json_success( Proxy\Shared::prepareUpdateServiceResponse( array(), $service, self::postParameters() ) );
267
+ }
268
+
269
+ /**
270
+ * Update service categories
271
+ */
272
+ public static function updateServiceCategories()
273
+ {
274
+ $categories = self::parameter( 'categories', array() );
275
+ $existing_categories = array();
276
+ foreach ( $categories as $category ) {
277
+ if ( strpos( $category['id'], 'new' ) === false ) {
278
+ $existing_categories[] = $category['id'];
279
+ }
280
+ }
281
+ // Delete categories
282
+ Lib\Entities\Category::query( 'c' )->delete()->whereNotIn( 'c.id', $existing_categories )->execute();
283
+ foreach ( $categories as $position => $category_data ) {
284
+ if ( strpos( $category_data['id'], 'new' ) === false ) {
285
+ $category = Lib\Entities\Category::find( $category_data['id'] );
286
+ } else {
287
+ $category = new Lib\Entities\Category();
288
+ }
289
+ $category
290
+ ->setPosition( $position )
291
+ ->setName( $category_data['name'] )
292
+ ->save();
293
+
294
+ }
295
 
296
+ wp_send_json_success( Lib\Entities\Category::query()->sortBy( 'position' )->fetchArray() );
297
  }
298
  }
backend/modules/services/Page.php CHANGED
@@ -26,69 +26,59 @@ class Page extends Lib\Base\Ajax
26
  'wp' => array( 'wp-color-picker' ),
27
  'backend' => array(
28
  'bootstrap/js/bootstrap.min.js' => array( 'jquery' ),
29
- 'js/help.js' => array( 'jquery' ),
30
- 'js/alert.js' => array( 'jquery' ),
31
- 'js/dropdown.js' => array( 'jquery' ),
32
- 'js/range_tools.js' => array( 'jquery' ),
33
  ),
34
- 'module' => array( 'js/service.js' => array( 'jquery-ui-sortable', 'bookly-dropdown.js' ) ),
35
  'frontend' => array(
36
  'js/spin.min.js' => array( 'jquery' ),
37
  'js/ladda.min.js' => array( 'bookly-spin.min.js', 'jquery' ),
38
- )
39
  ) );
40
 
41
- $data = self::_getTemplateData();
42
  $staff = array();
43
- foreach ( $data['staff_dropdown_data'] as $category ) {
44
  foreach ( $category['items'] as $employee ) {
45
  $staff[ $employee['id'] ] = $employee['full_name'];
46
  }
47
  }
48
 
49
- wp_localize_script( 'bookly-service.js', 'BooklyL10n', array(
50
- 'csrf_token' => Lib\Utils\Common::getCsrfToken(),
51
- 'capacity_error' => __( 'Min capacity should not be greater than max capacity.', 'bookly' ),
52
- 'recurrence_error' => __( 'You must select at least one repeat option for recurring services.', 'bookly' ),
53
- 'are_you_sure' => __( 'Are you sure?', 'bookly' ),
54
- 'service_special_day' => Lib\Config::specialDaysActive(),
55
- 'reorder' => esc_attr__( 'Reorder', 'bookly' ),
56
- 'staff' => $staff,
 
 
 
57
  ) );
58
 
59
  // Allow add-ons to enqueue their assets.
60
  Proxy\Shared::enqueueAssetsForServices();
61
 
62
- self::renderTemplate( 'index', $data );
63
- }
64
-
65
- /**
66
- * Array for rendering service list.
67
- *
68
- * @param int $category_id
69
- * @return array
70
- */
71
- protected static function _getTemplateData( $category_id = 0 )
72
- {
73
- if ( ! $category_id ) {
74
- $category_id = self::parameter( 'category_id', 0 );
75
  }
 
 
76
 
77
- return array(
78
- 'service_collection' => self::_getServiceCollection( $category_id ),
79
- 'staff_dropdown_data' => self::_getStaffDropDownData(),
80
- 'category_collection' => self::_getCategoryCollection(),
81
- );
82
- }
83
-
84
- /**
85
- * Get category collection.
86
- *
87
- * @return array
88
- */
89
- protected static function _getCategoryCollection()
90
- {
91
- return Lib\Entities\Category::query()->sortBy( 'position' )->fetchArray();
92
  }
93
 
94
  /**
@@ -96,7 +86,7 @@ class Page extends Lib\Base\Ajax
96
  *
97
  * @return array
98
  */
99
- protected static function _getStaffDropDownData()
100
  {
101
  if ( Lib\Config::proActive() ) {
102
  return Lib\Proxy\Pro::getStaffDataForDropDown();
@@ -105,49 +95,14 @@ class Page extends Lib\Base\Ajax
105
  ->select( 'id, full_name' )
106
  ->whereNot( 'visibility', 'archive' )
107
  ->sortBy( 'position' )
108
- ->fetchArray()
109
- ;
110
 
111
  return array(
112
  0 => array(
113
  'name' => '',
114
- 'items' => $items
115
- )
116
  );
117
  }
118
  }
119
-
120
- /**
121
- * Get service collection.
122
- *
123
- * @param int $id
124
- * @return array
125
- */
126
- protected static function _getServiceCollection( $id = 0 )
127
- {
128
- $result = Lib\Entities\Service::query( 's' )
129
- ->select( 's.*, COUNT(staff.id) AS total_staff, GROUP_CONCAT(DISTINCT staff.id) AS staff_ids' )
130
- ->leftJoin( 'StaffService', 'ss', 'ss.service_id = s.id' )
131
- ->leftJoin( 'Staff', 'staff', 'staff.id = ss.staff_id' )
132
- ->whereRaw( 's.category_id = %d OR !%d', array( $id, $id ) )
133
- ->whereIn( 's.type', Proxy\Shared::availableTypes( array( Lib\Entities\Service::TYPE_SIMPLE ) ) )
134
- ->groupBy( 's.id' )
135
- ->indexBy( 'id' )
136
- ->sortBy( 's.position' )
137
- ->fetchArray();
138
-
139
- foreach ( $result as &$service ) {
140
- $service['sub_services'] = Lib\Entities\SubService::query()
141
- ->where( 'service_id', $service['id'] )
142
- ->sortBy( 'position' )
143
- ->fetchArray()
144
- ;
145
- $service['sub_services_count'] = array_sum( array_map( function ( $sub_service ) {
146
- return (int) ( $sub_service['type'] == Lib\Entities\SubService::TYPE_SERVICE );
147
- }, $service['sub_services'] ) );
148
- $service['colors'] = Proxy\Shared::prepareServiceColors( array_fill( 0, 3, $service['color'] ), $service['id'], $service['type'] );
149
- }
150
-
151
- return $result;
152
- }
153
  }
26
  'wp' => array( 'wp-color-picker' ),
27
  'backend' => array(
28
  'bootstrap/js/bootstrap.min.js' => array( 'jquery' ),
29
+ 'js/datatables.min.js' => array( 'jquery' ),
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(
36
  'js/spin.min.js' => array( 'jquery' ),
37
  'js/ladda.min.js' => array( 'bookly-spin.min.js', 'jquery' ),
38
+ ),
39
  ) );
40
 
 
41
  $staff = array();
42
+ foreach ( self::getStaffDropDownData() as $category ) {
43
  foreach ( $category['items'] as $employee ) {
44
  $staff[ $employee['id'] ] = $employee['full_name'];
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();
74
+ $service['sub_services_count'] = array_sum( array_map( function ( $sub_service ) {
75
+ return (int) ( $sub_service['type'] == Lib\Entities\SubService::TYPE_SERVICE );
76
+ }, $service['sub_services'] ) );
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
  }
83
 
84
  /**
86
  *
87
  * @return array
88
  */
89
+ public static function getStaffDropDownData()
90
  {
91
  if ( Lib\Config::proActive() ) {
92
  return Lib\Proxy\Pro::getStaffDataForDropDown();
95
  ->select( 'id, full_name' )
96
  ->whereNot( 'visibility', 'archive' )
97
  ->sortBy( 'position' )
98
+ ->fetchArray();
 
99
 
100
  return array(
101
  0 => array(
102
  'name' => '',
103
+ 'items' => $items,
104
+ ),
105
  );
106
  }
107
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  }
backend/modules/services/proxy/RecurringAppointments.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Modules\Services\Proxy;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class RecurringAppointments
8
+ * @package Bookly\Backend\Modules\Services\Proxy
9
+ *
10
+ * @method static void renderSubForm( array $service ) Render repeat sub form.
11
+ */
12
+ abstract class RecurringAppointments extends Lib\Base\Proxy
13
+ {
14
+
15
+ }
backend/modules/services/proxy/ServiceExtras.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Modules\Services\Proxy;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class ServiceExtras
8
+ * @package Bookly\Backend\Modules\Services\Proxy
9
+ *
10
+ * @method static string getTabHtml( int $service_id ) Render extras tab html.
11
+ * @method static void renderTab() Render extras tab.
12
+ */
13
+ abstract class ServiceExtras extends Lib\Base\Proxy
14
+ {
15
+
16
+ }
backend/modules/services/proxy/ServiceSchedule.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Modules\Services\Proxy;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class ServiceSchedule
8
+ * @package Bookly\Backend\Modules\Services\Proxy
9
+ *
10
+ * @method static string getTabHtml( int $service_id ) Render service schedule html.
11
+ * @method static void renderTab() Render service schedule tab.
12
+ */
13
+ abstract class ServiceSchedule extends Lib\Base\Proxy
14
+ {
15
+
16
+ }
backend/modules/services/proxy/ServiceSpecialDays.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Bookly\Backend\Modules\Services\Proxy;
3
+
4
+ use Bookly\Lib;
5
+
6
+ /**
7
+ * Class ServiceSpecialDays
8
+ * @package Bookly\Backend\Modules\Services\Proxy
9
+ *
10
+ * @method static string getTabHtml( int $service_id ) Render special days html.
11
+ * @method static void renderTab() Render special days tab.
12
+ */
13
+ abstract class ServiceSpecialDays extends Lib\Base\Proxy
14
+ {
15
+
16
+ }
backend/modules/services/proxy/Shared.php CHANGED
@@ -7,14 +7,13 @@ use Bookly\Lib;
7
  * Class Shared
8
  * @package Bookly\Backend\Modules\Services\Proxy
9
  *
10
- * @method static array availableTypes( array $types ) Get service types for active add-ons.
11
  * @method static void enqueueAssetsForServices() Enqueue assets for page Services.
12
  * @method static array prepareServiceColors( array $colors, int $service_id, int $service_type ) Prepare colors for service.
 
 
13
  * @method static array prepareUpdateService( array $data ) Prepare update service settings in add-ons.
14
  * @method static array prepareUpdateServiceResponse( array $response, Lib\Entities\Service $service, array $_post ) Prepare response for updated service.
15
- * @method static void renderAfterServiceList( array $service_collection ) Render content after services forms.
16
- * @method static void renderServiceForm( array $service ) Render content in service form.
17
- * @method static void renderServiceFormHead( array $service ) Render top content in service form.
18
  * @method static array serviceCreated( Lib\Entities\Service $service, array $_post ) Service created.
19
  * @method static void serviceDeleted( int $service_id ) Service deleted.
20
  * @method static array updateService( array $alert, Lib\Entities\Service $service, array $_post ) Update service settings in add-ons.
7
  * Class Shared
8
  * @package Bookly\Backend\Modules\Services\Proxy
9
  *
 
10
  * @method static void enqueueAssetsForServices() Enqueue assets for page Services.
11
  * @method static array prepareServiceColors( array $colors, int $service_id, int $service_type ) Prepare colors for service.
12
+ * @method static array prepareServiceIcons( array $icons ) Prepare service icons.
13
+ * @method static array prepareServiceTypes( array $types ) Prepare service types.
14
  * @method static array prepareUpdateService( array $data ) Prepare update service settings in add-ons.
15
  * @method static array prepareUpdateServiceResponse( array $response, Lib\Entities\Service $service, array $_post ) Prepare response for updated service.
16
+ * @method static string prepareAfterServiceList( string $html, array $service_collection ) Render content after services forms.
 
 
17
  * @method static array serviceCreated( Lib\Entities\Service $service, array $_post ) Service created.
18
  * @method static void serviceDeleted( int $service_id ) Service deleted.
19
  * @method static array updateService( array $alert, Lib\Entities\Service $service, array $_post ) Update service settings in add-ons.
backend/modules/services/resources/js/service.js DELETED
@@ -1,584 +0,0 @@
1
- jQuery(function($) {
2
- // Remember user choice in the modal dialog.
3
- var updateStaffChoice = null,
4
- $no_result = $('#bookly-services-wrapper .no-result'),
5
- $new_category_popover = $('#bookly-new-category'),
6
- $new_category_form = $('#new-category-form'),
7
- $new_category_name = $('#bookly-category-name'),
8
- $update_service_modal = $('#bookly-update-service-settings'),
9
- $delete_cascade_modal = $('.bookly-js-delete-cascade-confirm')
10
- ;
11
-
12
- $new_category_popover.popover({
13
- html: true,
14
- placement: 'bottom',
15
- template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>',
16
- content: $new_category_form.show().detach(),
17
- trigger: 'manual'
18
- }).on('click', function () {
19
- $(this).popover('toggle');
20
- }).on('shown.bs.popover', function () {
21
- // focus input
22
- $new_category_name.focus();
23
- }).on('hidden.bs.popover', function () {
24
- //clear input
25
- $new_category_name.val('');
26
- });
27
-
28
- // Save new category.
29
- $new_category_form.on('submit', function() {
30
- var data = $(this).serialize();
31
-
32
- $.post(ajaxurl, data, function(response) {
33
- $('#bookly-category-item-list').append(response.data.html);
34
- var $new_category = $('.bookly-category-item:last');
35
- // add created category to services
36
- $('select[name="category_id"]').append('<option value="' + $new_category.data('category-id') + '">' + $new_category.find('input').val() + '</option>');
37
- $new_category_popover.popover('hide');
38
- });
39
- return false;
40
- });
41
-
42
- // Cancel button.
43
- $new_category_form.on('click', 'button[type="button"]', function (e) {
44
- $new_category_popover.popover('hide');
45
- });
46
-
47
- // Save category.
48
- function saveCategory() {
49
- var $this = $(this),
50
- $item = $this.closest('.bookly-category-item'),
51
- field = $this.attr('name'),
52
- value = $this.val(),
53
- id = $item.data('category-id'),
54
- data = { action: 'bookly_update_category', id: id, csrf_token : BooklyL10n.csrf_token };
55
- data[field] = value;
56
- $.post(ajaxurl, data, function(response) {
57
- // Hide input field.
58
- $item.find('input').hide();
59
- $item.find('.displayed-value').show();
60
- // Show modified category name.
61
- $item.find('.displayed-value').text(value);
62
- // update edited category's name for services
63
- $('select[name="category_id"] option[value="' + id + '"]').text(value);
64
- });
65
- }
66
-
67
- // Categories list delegated events.
68
- $('#bookly-categories-list')
69
-
70
- // On category item click.
71
- .on('click', '.bookly-category-item', function(e) {
72
- if ($(e.target).is('.bookly-js-handle')) return;
73
- $('#bookly-js-services-list').html('<div class="bookly-loading"></div>');
74
- var $clicked = $(this);
75
-
76
- $.get(ajaxurl, {action:'bookly_get_category_services', category_id: $clicked.data('category-id'), csrf_token : BooklyL10n.csrf_token}, function(response) {
77
- if ( response.success ) {
78
- $('.bookly-category-item').not($clicked).removeClass('active');
79
- $clicked.addClass('active');
80
- $('.bookly-category-title').text($clicked.text());
81
- refreshList(response.data);
82
- }
83
- });
84
- })
85
-
86
- // On edit category click.
87
- .on('click', '.bookly-js-edit', function(e) {
88
- // Keep category item click from being executed.
89
- e.stopPropagation();
90
- // Prevent navigating to '#'.
91
- e.preventDefault();
92
- var $this = $(this).closest('.bookly-category-item');
93
- $this.find('.displayed-value').hide();
94
- $this.find('input').show().focus();
95
- })
96
-
97
- // On blur save changes.
98
- .on('blur', 'input', saveCategory)
99
-
100
- // On press Enter save changes.
101
- .on('keypress', 'input', function (e) {
102
- var code = e.keyCode || e.which;
103
- if (code == 13) {
104
- saveCategory.apply(this);
105
- }
106
- })
107
-
108
- // On delete category click.
109
- .on('click', '.bookly-js-delete', function(e) {
110
- // Keep category item click from being executed.
111
- e.stopPropagation();
112
- // Prevent navigating to '#'.
113
- e.preventDefault();
114
- // Ask user if he is sure.
115
- if (confirm(BooklyL10n.are_you_sure)) {
116
- var $item = $(this).closest('.bookly-category-item');
117
- var data = { action: 'bookly_delete_category', id: $item.data('category-id'), csrf_token : BooklyL10n.csrf_token };
118
- $.post(ajaxurl, data, function(response) {
119
- // Remove category item from Services
120
- $('select[name="category_id"] option[value="' + $item.data('category-id') + '"]').remove();
121
- // Remove category item from DOM.
122
- $item.remove();
123
- if ($item.is('.active')) {
124
- $('.bookly-js-all-services').click();
125
- }
126
- });
127
- }
128
- })
129
-
130
- .on('click', 'input', function(e) {
131
- e.stopPropagation();
132
- });
133
-
134
- // Services list delegated events.
135
- $('#bookly-services-wrapper')
136
- // On click on 'Add Service' button.
137
- .on('click', '.add-service', function(e) {
138
- e.preventDefault();
139
- var ladda = rangeTools.ladda(this);
140
- var selected_category_id = $('#bookly-categories-list .active').data('category-id'),
141
- data = { action: 'bookly_add_service', csrf_token : BooklyL10n.csrf_token };
142
- if (selected_category_id) {
143
- data['category_id'] = selected_category_id;
144
- }
145
- $.post(ajaxurl, data, function(response) {
146
- if(response.success) {
147
- refreshList(response.data.html, response.data.service_id);
148
- } else {
149
- booklyAlert({error: [response.data.message]});
150
- }
151
- ladda.stop();
152
- });
153
- })
154
- // On click on 'Delete' button.
155
- .on('click', '#bookly-delete', function(e) {
156
- e.preventDefault();
157
- var data = {
158
- action: 'bookly_remove_services',
159
- csrf_token: BooklyL10n.csrf_token
160
- },
161
- services = [],
162
- $panels = [],
163
- $for_delete = $('.service-checker:checked'),
164
- button = this;
165
-
166
- var delete_services = function (ajaxurl, data) {
167
- var ladda = rangeTools.ladda(button);
168
- $for_delete.each(function(){
169
- var panel = $(this).parents('.bookly-js-collapse');
170
- $panels.push(panel);
171
- services.push(this.value);
172
- if (panel.find('.bookly-js-service-type input[name="type"]:checked').val() == 'simple') {
173
- $('#services_list .panel.bookly-js-collapse').each(function () {
174
- if ($(this).find('.bookly-js-service-type input[name="type"]:checked').val() == 'package' && $(this).find('.bookly-js-package-sub-service option:selected').val() == panel.data('service-id')) {
175
- $panels.push($(this));
176
- }
177
- });
178
- }
179
- });
180
- data['service_ids[]'] = services;
181
-
182
- $.post(ajaxurl, data, function (response) {
183
- if (!response.success) {
184
- switch (response.data.action) {
185
- case 'show_modal':
186
- $delete_cascade_modal
187
- .modal('show');
188
- $('.bookly-js-delete', $delete_cascade_modal).off().on('click', function () {
189
- delete_services(ajaxurl, $.extend(data, {force_delete: true}));
190
- $delete_cascade_modal.modal('hide');
191
- });
192
- $('.bookly-js-edit', $delete_cascade_modal).off().on('click', function () {
193
- rangeTools.ladda(this);
194
- window.location.href = response.data.filter_url;
195
- });
196
- break;
197
- case 'confirm':
198
- if (confirm(BooklyL10n.are_you_sure)) {
199
- delete_services(ajaxurl, $.extend(data, {force_delete: true}));
200
- }
201
- break;
202
- }
203
- } else {
204
- $.each($panels.reverse(), function (index) {
205
- $(this).delay(500 * index).fadeOut(200, function () {
206
- $(this).remove();
207
- });
208
- });
209
- $(document.body).trigger( 'service.deleted', [ services ] );
210
- }
211
- ladda.stop();
212
- });
213
- };
214
-
215
- delete_services(ajaxurl, data);
216
- })
217
-
218
- // On service expand.
219
- .on('show.bs.collapse', '.bookly-js-collapse', function () {
220
- if ($(this).data('bookly-inited')) {
221
- return;
222
- }
223
- var $panel = $(this),
224
- $types = $panel.find('.bookly-js-service-type input:radio'), // simple, compound, package, etc.
225
- $colorPicker = $panel.find('.bookly-js-color-picker'),
226
- $visibility = $panel.find('.bookly-js-visibility'),
227
- $capacity = $panel.find('.bookly-js-capacity'), // min and max
228
- $duration = $panel.find('.bookly-js-duration'),
229
- $unitsBlock = $panel.find('.bookly-js-units-block'),
230
- $unitDuration = $panel.find('.bookly-js-unit-duration'),
231
- $providers = $panel.find('.bookly-js-providers'),
232
- $staffPreference = $panel.find('[name=staff_preference]'),
233
- $limitPeriod = $panel.find('[name=limit_period]'),
234
- $prefStaffOrder = $panel.find('.bookly-js-preferred-staff-order'),
235
- $prefStaffList = $panel.find('.bookly-js-preferred-staff-list'),
236
- $prefPeriod = $panel.find('.bookly-js-preferred-period'),
237
- $simpleDropdowns = $panel.find('.bookly-js-simple-dropdown'),
238
- $repeat = $panel.find('[name="recurrence_enabled"]'),
239
- $btnSave = $panel.find('.ajax-service-send'),
240
- $btnReset = $panel.find('.js-reset')
241
- ;
242
- // Color picker.
243
- initColorPicker($colorPicker);
244
- // Visibility.
245
- $visibility.on('change', function () {
246
- $panel.find('.bookly-js-groups-list').toggle(this.value === 'group');
247
- });
248
- $limitPeriod.on('change', function () {
249
- $('[name=appointments_limit]', $panel).toggle(this.value !== 'off');
250
- }).trigger('change');
251
- // Capacity (min and max).
252
- $capacity.on('keyup change', function () {
253
- checkCapacityError($panel);
254
- });
255
- // Duration (and unit duration).
256
- $duration.on('change', function () {
257
- if (this.value === 'custom') {
258
- $panel.find('.bookly-js-price-label').hide();
259
- $panel.find('.bookly-js-unit-price-label').show();
260
- $unitsBlock.show();
261
- } else {
262
- $panel.find('.bookly-js-price-label').show();
263
- $panel.find('.bookly-js-unit-price-label').hide();
264
- $unitDuration.val(this.value);
265
- $unitsBlock.hide();
266
- }
267
- });
268
- $duration.add($unitDuration).on('change', function () {
269
- $panel.find('[name=start_time_info]').closest('.form-group').toggle(this.value >= 86400);
270
- }).trigger('change');
271
- // Providers.
272
- $providers.booklyDropdown({
273
- onChange: function (values, selected, all) {
274
- var serviceId = $panel.data('service-id'),
275
- serviceType = $types.filter(':checked').val()
276
- ;
277
- if (serviceType === 'simple' && !selected) {
278
- $('#services_list .panel.bookly-js-collapse').each(function () {
279
- var $anotherPanel = $(this);
280
- if (
281
- $anotherPanel.find('.bookly-js-service-type input:radio:checked').val() === 'package' &&
282
- $anotherPanel.find('.bookly-js-package-sub-service option:selected').val() == serviceId
283
- ) {
284
- if (all) {
285
- $anotherPanel.find('.bookly-js-providers').booklyDropdown('deselectAll');
286
- } else {
287
- $anotherPanel.find('.bookly-js-providers').booklyDropdown('deselect', values);
288
- }
289
- }
290
- });
291
- } else if (serviceType === 'package' && selected) {
292
- var subServiceId = $panel.find('.bookly-js-package-sub-service option:selected').val();
293
- $('#services_list .panel.bookly-js-collapse').each(function () {
294
- var $anotherPanel = $(this);
295
- if (
296
- $anotherPanel.find('.bookly-js-service-type input:radio:checked').val() === 'simple' &&
297
- $anotherPanel.data('service-id') == subServiceId
298
- ) {
299
- if (all) {
300
- $anotherPanel.find('.bookly-js-providers').booklyDropdown('selectAll');
301
- } else {
302
- $anotherPanel.find('.bookly-js-providers').booklyDropdown('select', values);
303
- }
304
- }
305
- });
306
- }
307
- }
308
- });
309
- $repeat.on('change', function() {
310
- checkRepeatError($panel);
311
- });
312
- $panel.on('change', '.bookly-js-frequencies input[type="checkbox"]', function () {
313
- checkRepeatError($panel);
314
- });
315
- // Providers preference.
316
- $staffPreference.on('change', function () {
317
- /** @see Service::PREFERRED_ORDER */
318
- if (this.value === 'order' && $prefStaffList.html() === '') {
319
- var $staffIds = $staffPreference.data('default'),
320
- $draggable = $('<div class="bookly-flex-cell"><i class="bookly-js-handle bookly-margin-right-sm bookly-icon bookly-icon-draghandle bookly-cursor-move"></i><input type="hidden" name="positions[]" /></div>');
321
- $draggable.find('i').attr('title', BooklyL10n.reorder);
322
- $staffIds.forEach(function (staffId) {
323
- $prefStaffList.append($draggable.clone().find('input').val(staffId).end().append(BooklyL10n.staff[staffId]));
324
- });
325
- Object.keys(BooklyL10n.staff).forEach(function (staffId) {
326
- staffId = parseInt(staffId);
327
- if ($staffIds.indexOf(staffId) === -1) {
328
- $prefStaffList.append($draggable.clone().find('input').val(staffId).end().append(BooklyL10n.staff[staffId]));
329
- }
330
- });
331
- }
332
- $prefStaffOrder.toggle(this.value === 'order');
333
- $prefPeriod.toggle(this.value === 'least_occupied_for_period' || this.value === 'most_occupied_for_period');
334
- }).trigger('change');
335
- // Preferred providers order.
336
- $prefStaffList.sortable({
337
- axis : 'y',
338
- handle : '.bookly-js-handle',
339
- update : function() {
340
- var positions = [];
341
- $prefStaffList.find('input').each(function () {
342
- positions.push(this.value);
343
- });
344
- $.ajax({
345
- type : 'POST',
346
- url : ajaxurl,
347
- data : {
348
- action: 'bookly_pro_update_service_staff_preference_orders',
349
- service_id: $panel.data('service-id'),
350
- positions: positions,
351
- csrf_token: BooklyL10n.csrf_token
352
- }
353
- });
354
- }
355
- });
356
- // Save button.
357
- $btnSave.on('click', function (e) {
358
- e.preventDefault();
359
- var showModal = false;
360
- if (updateStaffChoice === null) {
361
- $panel.find('.bookly-js-question').each(function () {
362
- if ($(this).data('last_value') !== this.value) {
363
- showModal = true;
364
- }
365
- });
366
- }
367
- if (showModal) {
368
- $update_service_modal.data('panel', $panel).modal('show');
369
- } else {
370
- submitServiceFrom($panel, updateStaffChoice);
371
- }
372
- });
373
- // Reset button.
374
- $btnReset.on('click', function () {
375
- var $this = $(this),
376
- $form = $this.closest('form');
377
-
378
- $form.trigger('reset');
379
- $colorPicker.val($colorPicker.data('last-color')).trigger('change');
380
- $visibility.trigger('change');
381
- $duration.trigger('change');
382
- checkCapacityError($panel);
383
- checkRepeatError($panel);
384
- $prefStaffList.html('');
385
- $staffPreference.trigger('change');
386
- $panel.find('.parent-range-start').trigger('change');
387
- $panel.find('input[name=type]:checked').trigger('change');
388
-
389
- setTimeout(function () {
390
- $providers.booklyDropdown('reset');
391
- $simpleDropdowns.booklyDropdown('reset');
392
- $(document.body).trigger('service.resetForm', [$panel]);
393
- }, 0);
394
- });
395
- // Fields that are repeated at staff level.
396
- $panel.find('.bookly-js-question').each(function () {
397
- $(this).data('last_value', this.value);
398
- });
399
- // Service types.
400
- if ($types.size() > 1) {
401
- $panel.find('.bookly-js-service-type').show();
402
- $types.on( 'change', function () {
403
- $panel.find('.bookly-js-service').hide();
404
- $panel.find('.bookly-js-service-' + this.value).css('display', '');
405
- // Toggle class for inline or vertical displaying color circles
406
- $('.bookly-js-service-color', $panel).toggleClass('bookly-vertical-colors', this.value === 'collaborative');
407
- });
408
- $types.filter(':checked').trigger('change');
409
- }
410
- // Other drop-downs.
411
- $simpleDropdowns.booklyDropdown();
412
-
413
- $(document.body).trigger( 'service.initForm', [$panel] );
414
-
415
- $panel.data('bookly-inited', 1);
416
- });
417
-
418
- // Modal window events.
419
- $update_service_modal
420
- .on('click', '.bookly-yes', function() {
421
- $update_service_modal.modal('hide');
422
- if ( $('#bookly-remember-my-choice').prop('checked') ) {
423
- updateStaffChoice = true;
424
- }
425
- submitServiceFrom($update_service_modal.data('panel'), true);
426
- })
427
- .on('click', '.bookly-no', function() {
428
- if ( $('#bookly-remember-my-choice').prop('checked') ) {
429
- updateStaffChoice = false;
430
- }
431
- submitServiceFrom($update_service_modal.data('panel'), false);
432
- })
433
- ;
434
-
435
- function refreshList(response,service_id) {
436
- var $list = $('#bookly-js-services-list');
437
- $list.html(response);
438
- if (response.indexOf('panel') >= 0) {
439
- $no_result.hide();
440
- $list.booklyHelp();
441
- } else {
442
- $no_result.show();
443
- }
444
- if (service_id) {
445
- $('#service_' + service_id).collapse('show');
446
- $('#service_' + service_id).find('input[name=title]').focus();
447
- }
448
- makeSortable();
449
- }
450
-
451
- function initColorPicker($jquery_collection) {
452
- $jquery_collection.each(function(){
453
- $(this).data('last-color', $(this).val());
454
- });
455
- $jquery_collection.wpColorPicker({
456
- width: 200
457
- });
458
- }
459
-
460
- function submitServiceFrom($panel, update_staff) {
461
- $panel.find('input[name=update_staff]').val(update_staff ? 1 : 0);
462
- $panel.find('input[name=package_service_changed]').val($panel.find('[name=package_service]').data('last_value') != $panel.find('[name=package_service]').val() ? 1 : 0);
463
- var ladda = rangeTools.ladda($panel.find('button.ajax-service-send[type=submit]').get(0)),
464
- data = $panel.find('form').serializeArray();
465
- $(document.body).trigger( 'service.submitForm', [ $panel, data ] );
466
- $.post(ajaxurl, data, function (response) {
467
- if (response.success) {
468
- var $price = $panel.find('[name=price]'),
469
- $capacity_min = $panel.find('[name=capacity_min]'),
470
- $capacity_max = $panel.find('[name=capacity_max]'),
471
- $package_service = $panel.find('[name=package_service]');
472
- $panel.find('.bookly-js-service-color span:nth-child(1)').css('background-color', response.data.colors[0] == '-1' ? 'grey' : response.data.colors[0]);
473
- $panel.find('.bookly-js-service-color span:nth-child(2)').css('background-color', response.data.colors[1] == '-1' ? 'grey' : response.data.colors[1]);
474
- $panel.find('.bookly-js-service-color span:nth-child(3)').css('background-color', response.data.colors[2] == '-1' ? 'grey' : response.data.colors[2]);
475
- $panel.find('.bookly-js-service-title').html(response.data.title);
476
- $panel.find('.bookly-js-service-duration').html(response.data.nice_duration);
477
- $panel.find('.bookly-js-service-price').html(response.data.price);
478
- $price.data('last_value', $price.val());
479
- $capacity_min.data('last_value', $capacity_min.val());
480
- $capacity_max.data('last_value', $capacity_max.val());
481
- $package_service.data('last_value', $package_service.val());
482
- booklyAlert(response.data.alert);
483
- if (response.data.new_extras_list) {
484
- ExtrasL10n.list = response.data.new_extras_list
485
- }
486
- $.each(response.data.new_extras_ids, function (front_id, real_id) {
487
- var $li = $('li.extra.new[data-extra-id="' + front_id + '"]', $panel);
488
- $('[name^="extras"]', $li).each(function () {
489
- $(this).attr('name', $(this).attr('name').replace('[' + front_id + ']', '[' + real_id + ']'));
490
- });
491
- $('[id*="_extras_"]', $li).each(function () {
492
- $(this).attr('id', $(this).attr('id').replace(front_id, real_id));
493
- });
494
- $('label[for*="_extras_"]', $li).each(function () {
495
- $(this).attr('for', $(this).attr('for').replace(front_id, real_id));
496
- });
497
- $li.data('extra-id', real_id).removeClass('new');
498
- $li.append('<input type="hidden" value="' + real_id + '" name="extras[' + real_id + '][id]">');
499
- });
500
- } else {
501
- booklyAlert({error: [response.data.message]});
502
- }
503
- }, 'json').always(function() {
504
- ladda.stop();
505
- });
506
- }
507
-
508
- function checkCapacityError($panel) {
509
- if (parseInt($panel.find('[name="capacity_min"]').val()) > parseInt($panel.find('[name="capacity_max"]').val())) {
510
- $panel.find('form .bookly-js-services-error').html(BooklyL10n.capacity_error);
511
- $panel.find('[name="capacity_min"]').closest('.form-group').addClass('has-error');
512
- $panel.find('form .ajax-service-send').prop('disabled', true);
513
- } else {
514
- $panel.find('form .bookly-js-services-error').html('');
515
- $panel.find('[name="capacity_min"]').closest('.form-group').removeClass('has-error');
516
- $panel.find('form .ajax-service-send').prop('disabled', false);
517
- }
518
- }
519
-
520
- function checkRepeatError($panel) {
521
- if ($panel.find('[name="recurrence_enabled"]').val() == 1 && $panel.find('[name="recurrence_frequencies[]"]:checked').length == 0) {
522
- $panel.find('[name="recurrence_enabled"]').closest('.form-group').addClass('has-error');
523
- $panel.find('.bookly-js-frequencies').closest('.form-group').find('button.dropdown-toggle').addClass('btn-danger').removeClass('btn-default');
524
- $panel.find('form .bookly-js-recurrence-error').html(BooklyL10n.recurrence_error);
525
- $panel.find('.ajax-service-send').prop('disabled', true);
526
- } else {
527
- $panel.find('[name="recurrence_enabled"]').closest('.form-group').removeClass('has-error');
528
- $panel.find('.bookly-js-frequencies').closest('.form-group').find('button.dropdown-toggle').removeClass('btn-danger').addClass('btn-default');
529
- $panel.find('form .bookly-js-recurrence-error').html('');
530
- $panel.find('.ajax-service-send').prop('disabled', false);
531
- }
532
- }
533
-
534
- var $category = $('#bookly-category-item-list');
535
- $category.sortable({
536
- axis : 'y',
537
- handle : '.bookly-js-handle',
538
- update : function( event, ui ) {
539
- var data = [];
540
- $category.children('li').each(function() {
541
- var $this = $(this);
542
- var position = $this.data('category-id');
543
- data.push(position);
544
- });
545
- $.ajax({
546
- type : 'POST',
547
- url : ajaxurl,
548
- data : { action: 'bookly_update_category_position', position: data, csrf_token : BooklyL10n.csrf_token }
549
- });
550
- }
551
- });
552
-
553
- function makeSortable() {
554
- if ($('.bookly-js-all-services').hasClass('active')) {
555
- var $services = $('#services_list'),
556
- fixHelper = function(e, ui) {
557
- ui.children().each(function() {
558
- $(this).width($(this).width());
559
- });
560
- return ui;
561
- };
562
- $services.sortable({
563
- helper : fixHelper,
564
- axis : 'y',
565
- handle : '.bookly-js-handle',
566
- update : function( event, ui ) {
567
- var data = [];
568
- $services.children('div').each(function() {
569
- data.push($(this).data('service-id'));
570
- });
571
- $.ajax({
572
- type : 'POST',
573
- url : ajaxurl,
574
- data : { action: 'bookly_update_services_position', position: data, csrf_token : BooklyL10n.csrf_token }
575
- });
576
- }
577
- });
578
- } else {
579
- $('#services_list .bookly-js-handle').hide();
580
- }
581
- }
582
-
583
- makeSortable();
584
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
backend/modules/services/resources/js/services-list.js ADDED
@@ -0,0 +1,211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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'>>" +
101
+ "<'row'<'col-sm-12'tr>>" +
102
+ "<'row pull-left'<'col-sm-12 bookly-margin-top-lg'p>>",
103
+ language : {
104
+ zeroRecords: BooklyL10n.zeroRecords,
105
+ processing : BooklyL10n.processing
106
+ }
107
+ }).on('row-reordered', function (e, diff, edit) {
108
+ var positions = [];
109
+ function sortByPosition(a, b){
110
+ return ((a.position < b.position) ? -1 : ((a.position > b.position) ? 1 : 0));
111
+ }
112
+ dt.data().each(function (service) {
113
+ positions.push({position: service.position, id: service.id});
114
+ });
115
+ $.ajax({
116
+ url : ajaxurl,
117
+ type : 'POST',
118
+ data: {
119
+ 'action' : 'bookly_update_services_position',
120
+ 'csrf_token' : BooklyL10n.csrfToken,
121
+ 'positions[]': $.map(positions.sort(sortByPosition), function (value) {
122
+ return value.id;
123
+ })
124
+ },
125
+ dataType: 'json',
126
+ success : function (response) {
127
+
128
+ }
129
+ });
130
+ });
131
+
132
+ /**
133
+ * On filters change.
134
+ */
135
+ $filter
136
+ .on('keyup', function () {
137
+ dt.search(this.value).draw();
138
+ })
139
+ .on('keydown', function (e) {
140
+ if (e.keyCode == 13) {
141
+ e.preventDefault();
142
+ return false;
143
+ }
144
+ })
145
+ ;
146
+
147
+ /**
148
+ * Select all appointments.
149
+ */
150
+ $checkAllButton.on('change', function () {
151
+ $servicesList.find('tbody input:checkbox').prop('checked', this.checked);
152
+ });
153
+
154
+ /**
155
+ * On appointment select.
156
+ */
157
+ $servicesList.on('change', 'tbody input:checkbox', function () {
158
+ $checkAllButton.prop('checked', $servicesList.find('tbody input:not(:checked)').length == 0);
159
+ });
160
+
161
+ $deleteButton.on('click', function (e) {
162
+ e.preventDefault();
163
+ var data = {
164
+ action : 'bookly_remove_services',
165
+ csrf_token: BooklyL10n.csrfToken,
166
+ },
167
+ services = [],
168
+ button = this;
169
+
170
+ var delete_services = function (ajaxurl, data) {
171
+ var ladda = rangeTools.ladda(button),
172
+ service_ids = [],
173
+ $checkboxes = $servicesList.find('tbody input:checked');
174
+
175
+ $checkboxes.each(function () {
176
+ service_ids.push(dt.row($(this).closest('td')).data().id);
177
+ });
178
+ data['service_ids[]'] = service_ids;
179
+
180
+ $.post(ajaxurl, data, function (response) {
181
+ if (!response.success) {
182
+ switch (response.data.action) {
183
+ case 'show_modal':
184
+ $deleteModal
185
+ .modal('show');
186
+ $('.bookly-js-delete', $deleteModal).off().on('click', function () {
187
+ delete_services(ajaxurl, $.extend(data, {force_delete: true}));
188
+ $deleteModal.modal('hide');
189
+ });
190
+ $('.bookly-js-edit', $deleteModal).off().on('click', function () {
191
+ rangeTools.ladda(this);
192
+ window.location.href = response.data.filter_url;
193
+ });
194
+ break;
195
+ case 'confirm':
196
+ if (confirm(BooklyL10n.are_you_sure)) {
197
+ delete_services(ajaxurl, $.extend(data, {force_delete: true}));
198
+ }
199
+ break;
200
+ }
201
+ } else {
202
+ $(document.body).trigger('service.deleted', [services]);
203
+ dt.rows($checkboxes.closest('td')).remove().draw();
204
+ }
205
+ ladda.stop();
206
+ });
207
+ };
208
+
209
+ delete_services(ajaxurl, data);
210
+ });
211
+ });
backend/modules/services/templates/_category_item.php DELETED
@@ -1,18 +0,0 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
- <li class="bookly-nav-item bookly-category-item" data-category-id="<?php echo $category['id'] ?>">
3
- <div class="bookly-flexbox">
4
- <div class="bookly-flex-cell bookly-vertical-middle" style="width: 1%">
5
- <i class="bookly-js-handle bookly-icon bookly-icon-draghandle bookly-margin-right-sm bookly-cursor-move" title="<?php esc_attr_e( 'Reorder', 'bookly' ) ?>"></i>
6
- </div>
7
- <div class="bookly-flex-cell bookly-vertical-middle">
8
- <span class="displayed-value"><?php echo esc_html( $category['name'] ) ?></span>
9
- <input class="form-control input-lg" type="text" name="name" value="<?php echo esc_attr( $category['name'] ) ?>" style="display: none"/>
10
- </div>
11
- <div class="bookly-flex-cell bookly-vertical-middle" style="width: 1%">
12
- <a href="#" class="glyphicon glyphicon-edit bookly-margin-horizontal-xs bookly-js-edit" title="<?php esc_attr_e( 'Edit', 'bookly' ) ?>"></a>
13
- </div>
14
- <div class="bookly-flex-cell bookly-vertical-middle" style="width: 1%">
15
- <a href="#" class="glyphicon glyphicon-trash text-danger bookly-js-delete" title="<?php esc_attr_e( 'Delete', 'bookly' ) ?>"></a>
16
- </div>
17
- </div>
18
- </li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
backend/modules/services/templates/_list.php DELETED
@@ -1,262 +0,0 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
- use Bookly\Backend\Components\Controls\Buttons;
3
- use Bookly\Backend\Components\Controls\Inputs;
4
- use Bookly\Backend\Modules\Services\Proxy;
5
- use Bookly\Lib\Utils\Common;
6
- use Bookly\Lib\Utils\DateTime;
7
- use Bookly\Lib\Utils\Price;
8
- use Bookly\Lib\Entities\Service;
9
- ?>
10
- <?php if ( ! empty ( $service_collection ) ) : ?>
11
- <div class="panel-group" id="services_list" role="tablist" aria-multiselectable="true">
12
- <?php foreach ( $service_collection as $service ) :
13
- $service_id = $service['id'];
14
- $assigned_staff_ids = $service['staff_ids'] ? explode( ',', $service['staff_ids'] ) : array();
15
- ?>
16
- <div class="panel panel-default bookly-js-collapse bookly-collapse" data-service-id="<?php echo $service_id ?>">
17
- <div class="panel-heading" role="tab" id="s_<?php echo $service_id ?>">
18
- <div class="row">
19
- <div class="col-sm-8 col-xs-10">
20
- <div class="bookly-flexbox">
21
- <div class="bookly-flex-cell bookly-vertical-middle" style="width: 1%">
22
- <i class="bookly-js-handle bookly-icon bookly-icon-draghandle bookly-margin-right-sm bookly-cursor-move"
23
- title="<?php esc_attr_e( 'Reorder', 'bookly' ) ?>"></i>
24
- </div>
25
- <div class="bookly-flex-cell bookly-vertical-middle bookly-js-service-color<?php echo ( $service['type'] == 'collaborative' ? ' bookly-vertical-colors' : '' ) ?>" style="width: 55px; padding-left: 25px;">
26
- <span class="bookly-service-color bookly-margin-right-sm bookly-js-service bookly-js-service-simple bookly-js-service-collaborative bookly-js-service-compound bookly-js-service-package"
27
- style="background-color: <?php echo esc_attr( $service['colors'][0] == '-1' ? 'grey' : $service['colors'][0] ) ?>">&nbsp;</span>
28
- <span class="bookly-service-color bookly-margin-right-sm bookly-js-service bookly-js-service-collaborative bookly-js-service-compound bookly-js-service-package"
29
- style="background-color: <?php echo esc_attr( $service['colors'][1] == '-1' ? 'grey' : $service['colors'][1] ) ?>; <?php if ( $service['type'] == Service::TYPE_SIMPLE ) : ?>display: none;<?php endif ?>">&nbsp;</span>
30
- <span class="bookly-service-color bookly-margin-right-sm bookly-js-service bookly-js-service-package"
31
- style="background-color: <?php echo esc_attr( $service['colors'][2] == '-1' ? 'grey' : $service['colors'][2] ) ?>; <?php if ( $service['type'] != Service::TYPE_PACKAGE ) : ?>display: none;<?php endif ?>">&nbsp;</span>
32
- </div>
33
- <div class="bookly-flex-cell bookly-vertical-middle">
34
- <a role="button" class="panel-title collapsed bookly-js-service-title" data-toggle="collapse"
35
- data-parent="#services_list" href="#service_<?php echo $service_id ?>"
36
- aria-expanded="false" aria-controls="service_<?php echo $service_id ?>">
37
- <?php echo esc_html( $service['title'] ) ?>
38
- </a>
39
- </div>
40
- </div>
41
- </div>
42
- <div class="col-sm-4 col-xs-2">
43
- <div class="bookly-flexbox">
44
- <div class="bookly-flex-cell bookly-vertical-middle hidden-xs" style="width: 60%">
45
- <span class="bookly-js-service-duration">
46
- <?php
47
- switch ( $service['type'] ) {
48
- case Service::TYPE_SIMPLE:
49
- case Service::TYPE_PACKAGE:
50
- echo DateTime::secondsToInterval( $service['duration'] ); break;
51
- case Service::TYPE_COLLABORATIVE:
52
- case Service::TYPE_COMPOUND:
53
- echo sprintf( _n( '%d service', '%d services', $service['sub_services_count'], 'bookly' ), $service['sub_services_count'] ); break;
54
- }
55
- ?>
56
- </span>
57
- </div>
58
- <div class="bookly-flex-cell bookly-vertical-middle hidden-xs" style="width: 30%">
59
- <span class="bookly-js-service-price">
60
- <?php echo Price::format( $service['price'] ) ?>
61
- </span>
62
- </div>
63
- <div class="bookly-flex-cell bookly-vertical-middle text-right" style="width: 10%">
64
- <div class="checkbox bookly-margin-remove">
65
- <label><input type="checkbox" class="service-checker" value="<?php echo $service_id ?>"/></label>
66
- </div>
67
- </div>
68
- </div>
69
- </div>
70
- </div>
71
- </div>
72
-
73
- <div id="service_<?php echo $service_id ?>" class="panel-collapse collapse" role="tabpanel" style="height: 0">
74
- <div class="panel-body">
75
- <form method="post">
76
- <div class="form-inline bookly-margin-bottom-lg bookly-js-service-type collapse">
77
- <div class="form-group">
78
- <div class="radio">
79
- <label class="bookly-margin-right-md">
80
- <input type="radio" name="type" value="simple" data-panel-class="panel-default" <?php echo checked( $service['type'] == Service::TYPE_SIMPLE ) ?>><?php esc_html_e( 'Simple', 'bookly' ) ?>
81
- </label>
82
- </div>
83
- </div>
84
- <?php Proxy\Shared::renderServiceFormHead( $service ) ?>
85
- </div>
86
- <div class="row">
87
- <div class="col-md-9 col-sm-6 bookly-js-service bookly-js-service-simple bookly-js-service-collaborative bookly-js-service-compound bookly-js-service-package">
88
- <div class="form-group">
89
- <label for="title_<?php echo $service_id ?>"><?php esc_html_e( 'Title', 'bookly' ) ?></label>
90
- <input name="title" value="<?php echo esc_attr( $service['title'] ) ?>" id="title_<?php echo $service_id ?>" class="form-control" type="text">
91
- </div>
92
- </div>
93
- <div class="col-md-3 col-sm-6 bookly-js-service bookly-js-service-simple">
94
- <div class="form-group">
95
- <label><?php esc_html_e( 'Color', 'bookly' ) ?></label>
96
- <div class="bookly-color-picker-wrapper">
97
- <input name="color" value="<?php echo esc_attr( $service['color'] ) ?>" class="bookly-js-color-picker" data-last-color="<?php echo esc_attr( $service['color'] ) ?>" type="text" />
98
- </div>
99
- </div>
100
- </div>
101
- </div>
102
- <?php Proxy\Packages::renderSubForm( $service, $service_collection ) ?>
103
- <div class="row">
104
- <?php Proxy\Pro::renderVisibility( $service ) ?>
105
- <div class="col-sm-4 bookly-js-service bookly-js-service-simple bookly-js-service-collaborative bookly-js-service-compound bookly-js-service-package">
106
- <div class="form-group">
107
- <label for="price_<?php echo $service_id ?>" class="bookly-js-price-label"><?php esc_html_e( 'Price', 'bookly' ) ?></label>
108
- <?php Proxy\CustomDuration::renderServicePriceLabel( $service_id ) ?>
109
- <input id="price_<?php echo $service_id ?>" class="form-control bookly-js-question" type="number" min="0" step="1" name="price" value="<?php echo esc_attr( $service['price'] ) ?>" />
110
- </div>
111
- </div>
112
- <?php Proxy\DepositPayments::renderDeposit( $service ) ?>
113
- </div>
114
-
115
- <?php Proxy\CustomerGroups::renderSubForm( $service ) ?>
116
-
117
- <?php Proxy\GroupBooking::renderSubForm( $service ) ?>
118
-
119
- <?php Proxy\Tasks::renderSubForm( $service ) ?>
120
-
121
- <?php Proxy\Taxes::renderSubForm( $service ) ?>
122
-
123
- <div class="bookly-js-service bookly-js-service-simple">
124
- <div class="row">
125
- <div class="col-sm-4 bookly-js-service bookly-js-service-simple">
126
- <div class="form-group">
127
- <label for="duration_<?php echo $service_id ?>">
128
- <?php esc_html_e( 'Duration', 'bookly' ) ?>
129
- </label>
130
- <?php Proxy\CustomDuration::renderServiceDurationHelp() ?>
131
- <?php
132
- $options = Common::getDurationSelectOptions( $service['duration'] );
133
- $options = Proxy\CustomDuration::prepareServiceDurationOptions( $options, $service );
134
- ?>
135
- <select id="duration_<?php echo $service_id ?>" class="bookly-js-duration form-control" name="duration">
136
- <?php foreach ( $options as $option ): ?>
137
- <option value="<?php echo $option['value'] ?>" <?php echo $option['selected'] ?>><?php echo $option['label'] ?></option>
138
- <?php endforeach ?>
139
- </select>
140
- </div>
141
- </div>
142
-
143
- <?php Proxy\Pro::renderPadding( $service ) ?>
144
- </div>
145
- <?php Proxy\CustomDuration::renderServiceDurationFields( $service ); ?>
146
- <div class="row">
147
- <div class="col-sm-4 bookly-js-service bookly-js-service-simple">
148
- <div class="form-group">
149
- <label for="slot_length_<?php echo $service_id ?>">
150
- <?php esc_html_e( 'Time slot length', 'bookly' ) ?>
151
- </label>
152
- <p class="help-block"><?php esc_html_e( 'The time interval which is used as a step when building all time slots for the service at the Time step. The setting overrides global settings in Settings → General. Use Default to apply global settings.', 'bookly' ) ?></p>
153
- <select id="slot_length_<?php echo $service_id ?>" class="form-control" name="slot_length">
154
- <option value="<?php echo Service::SLOT_LENGTH_DEFAULT ?>"<?php selected( $service['slot_length'], Service::SLOT_LENGTH_DEFAULT ) ?>><?php esc_html_e( 'Default', 'bookly' ) ?></option>
155
- <option value="<?php echo Service::SLOT_LENGTH_AS_SERVICE_DURATION ?>"<?php selected( $service['slot_length'], Service::SLOT_LENGTH_AS_SERVICE_DURATION ) ?>><?php esc_html_e( 'Slot length as service duration', 'bookly' ) ?></option>
156
- <?php foreach ( array( 300, 600, 720, 900, 1200, 1800, 2700, 3600, 5400, 7200, 10800, 14400, 21600 ) as $duration ): ?>
157
- <option value="<?php echo $duration ?>"<?php selected( $service['slot_length'], $duration ) ?>><?php echo esc_html( DateTime::secondsToInterval( $duration ) ) ?></option>
158
- <?php endforeach ?>
159
- </select>
160
- </div>
161
- </div>
162
- </div>
163
- </div>
164
- <div class="bookly-js-service bookly-js-service-simple">
165
- <div class="row">
166
- <div class="col-sm-8 bookly-js-service bookly-js-service-simple">
167
- <div class="form-group">
168
- <label for="start_time_info_<?php echo $service_id ?>"><?php esc_html_e( 'Start and end times of the appointment', 'bookly' ) ?></label>
169
- <p class="help-block"><?php esc_html_e( 'Allows to set the start and end times for an appointment for services with the duration of 1 day or longer. This time will be displayed in notifications to customers, backend calendar and codes for booking form.', 'bookly' ) ?></p>
170
- <div class="row">
171
- <div class="col-xs-6">
172
- <input id="start_time_info_<?php echo $service_id ?>" class="form-control" type="text" name="start_time_info" value="<?php echo esc_attr( $service['start_time_info'] ) ?>" />
173
- </div>
174
- <div class="col-xs-6">
175
- <input class="form-control" type="text" name="end_time_info" value="<?php echo esc_attr( $service['end_time_info'] ) ?>" />
176
- </div>
177
- </div>
178
- </div>
179
- </div>
180
- </div>
181
- </div>
182
- <div class="bookly-js-service bookly-js-service-simple">
183
- <div class="row">
184
- <?php Proxy\Pro::renderStaffPreference( $service ) ?>
185
- </div>
186
- </div>
187
-
188
- <div class="row">
189
- <div class="col-sm-6 bookly-js-service bookly-js-service-simple bookly-js-service-collaborative bookly-js-service-compound">
190
- <div class="form-group">
191
- <label for="category_<?php echo $service_id ?>"><?php esc_html_e( 'Category', 'bookly' ) ?></label>
192
- <select id="category_<?php echo $service_id ?>" class="form-control" name="category_id"><option value="0"><?php esc_html_e( 'Uncategorized', 'bookly' ) ?></option>
193
- <?php foreach ( $category_collection as $category ) : ?>
194
- <option value="<?php echo $category['id'] ?>" <?php selected( $category['id'], $service['category_id'] ) ?>><?php echo esc_html( $category['name'] ) ?></option>
195
- <?php endforeach ?>
196
- </select>
197
- </div>
198
- </div>
199
- <div class="col-sm-6 bookly-js-service bookly-js-service-simple bookly-js-service-package">
200
- <div class="form-group">
201
- <label><?php esc_html_e( 'Providers', 'bookly' ) ?></label><br/>
202
- <ul class="bookly-js-providers"
203
- data-txt-select-all="<?php esc_attr_e( 'All staff', 'bookly' ) ?>"
204
- data-txt-all-selected="<?php esc_attr_e( 'All staff', 'bookly' ) ?>"
205
- data-txt-nothing-selected="<?php esc_attr_e( 'No staff selected', 'bookly' ) ?>"
206
- >
207
- <?php foreach ( $staff_dropdown_data as $category_id => $category ) : ?>
208
- <li<?php if ( ! $category_id ) : ?> data-flatten-if-single<?php endif ?>><?php echo esc_html( $category['name'] ) ?>
209
- <ul>
210
- <?php foreach ( $category['items'] as $staff ) : ?>
211
- <li
212
- data-input-name="staff_ids[]"
213
- data-value="<?php echo $staff['id'] ?>"
214
- data-selected="<?php echo (int) in_array( $staff['id'], $assigned_staff_ids ) ?>"
215
- >
216
- <?php echo esc_html( $staff['full_name'] ) ?>
217
- </li>
218
- <?php endforeach ?>
219
- </ul>
220
- </li>
221
- <?php endforeach ?>
222
- </ul>
223
- </div>
224
- </div>
225
- </div>
226
- <?php Proxy\Pro::renderLimitAppointmentsPerCustomer( $service ) ?>
227
- <div class="form-group bookly-js-service bookly-js-service-simple bookly-js-service-collaborative bookly-js-service-compound bookly-js-service-package">
228
- <label for="info_<?php echo $service_id ?>">
229
- <?php esc_html_e( 'Info', 'bookly' ) ?>
230
- </label>
231
- <p class="help-block">
232
- <?php printf( __( 'This text can be inserted into notifications with %s code.', 'bookly' ), '{service_info}' ) ?>
233
- </p>
234
- <textarea class="form-control" id="info_<?php echo $service_id ?>" name="info" rows="3" type="text"><?php echo esc_textarea( $service['info'] ) ?></textarea>
235
- </div>
236
-
237
- <?php Proxy\CollaborativeServices::renderSubForm( $service, $service_collection ) ?>
238
-
239
- <?php Proxy\CompoundServices::renderSubForm( $service, $service_collection ) ?>
240
-
241
- <?php Proxy\Shared::renderServiceForm( $service ) ?>
242
-
243
- <div class="panel-footer">
244
- <input type="hidden" name="action" value="bookly_update_service" />
245
- <input type="hidden" name="id" value="<?php echo esc_html( $service_id ) ?>" />
246
- <input type="hidden" name="update_staff" value="0" />
247
- <span class="bookly-js-services-error text-danger"></span>
248
- <span class="bookly-js-recurrence-error text-danger"></span>
249
- <?php Inputs::renderCsrf() ?>
250
- <?php Buttons::renderSubmit( null, 'ajax-service-send' ) ?>
251
- <?php Buttons::renderReset( null, 'js-reset' ) ?>
252
- </div>
253
- </form>
254
- </div>
255
- </div>
256
- </div>
257
- <?php endforeach ?>
258
- </div>
259
- <?php endif ?>
260
- <div style="display: none">
261
- <?php Proxy\Shared::renderAfterServiceList( $service_collection ) ?>
262
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
backend/modules/services/templates/advanced.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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\Modules\Services\Proxy;
5
+ use Bookly\Lib\Entities\Service;
6
+
7
+ ?>
8
+ <div class="form-group bookly-js-service-advanced-container">
9
+ <?php if ( $service['type'] == Service::TYPE_SIMPLE ) : ?>
10
+ <?php Proxy\GroupBooking::renderSubForm( $service ) ?>
11
+ <?php endif ?>
12
+ <?php Proxy\Pro::renderLimitAppointmentsPerCustomer( $service ) ?>
13
+ <?php Proxy\Taxes::renderSubForm( $service ) ?>
14
+ <?php Proxy\RecurringAppointments::renderSubForm( $service ) ?>
15
+ </div>
backend/modules/services/templates/general.php ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Backend\Modules\Services\Proxy;
3
+ use Bookly\Lib\Entities\Service;
4
+
5
+ $service_id = $service['id'];
6
+ $assigned_staff_ids = $service['staff_ids'] ? explode( ',', $service['staff_ids'] ) : array();
7
+ ?>
8
+ <div class="form-group bookly-js-service-general-container">
9
+ <div class="form-group">
10
+ <label for="bookly-service-title"><?php esc_html_e( 'Title', 'bookly' ) ?></label>
11
+ <input name="title" value="<?php echo esc_attr( $service['title'] ) ?>" id="bookly-service-title" class="form-control" type="text">
12
+ </div>
13
+ <?php if ( $service['type'] != Service::TYPE_PACKAGE ) : ?>
14
+ <div class="form-group">
15
+ <label for="bookly-service-category"><?php esc_html_e( 'Category', 'bookly' ) ?></label>
16
+ <select id="bookly-service-category" class="form-control" name="category_id">
17
+ <option value="0"><?php esc_html_e( 'Uncategorized', 'bookly' ) ?></option>
18
+ <?php foreach ( $categories_collection as $category ) : ?>
19
+ <option value="<?php echo $category['id'] ?>" <?php selected( $category['id'], $service['category_id'] ) ?>><?php echo esc_html( $category['name'] ) ?></option>
20
+ <?php endforeach ?>
21
+ </select>
22
+ </div>
23
+ <?php endif ?>
24
+ <?php if ( $service['type'] == Service::TYPE_SIMPLE ) : ?>
25
+ <div class="form-group">
26
+ <label><?php esc_html_e( 'Color', 'bookly' ) ?></label>
27
+ <div class="bookly-color-picker-wrapper">
28
+ <input name="color" value="<?php echo esc_attr( $service['color'] ) ?>" class="bookly-js-color-picker" data-last-color="<?php echo esc_attr( $service['color'] ) ?>" type="text"/>
29
+ </div>
30
+ </div>
31
+ <?php endif ?>
32
+ <?php Proxy\Pro::renderVisibility( $service ) ?>
33
+ <?php Proxy\CustomerGroups::renderSubForm( $service ) ?>
34
+ <?php if ( $service['type'] == Service::TYPE_COLLABORATIVE ) : ?>
35
+ <?php Proxy\CollaborativeServices::renderSubForm( $service, $service_collection ) ?>
36
+ <?php endif ?>
37
+ <?php if ( $service['type'] == Service::TYPE_COMPOUND ) : ?>
38
+ <?php Proxy\CompoundServices::renderSubForm( $service, $service_collection ) ?>
39
+ <?php endif ?>
40
+ <div class="form-group">
41
+ <label for="bookly_service_price" class="bookly-js-price-label"><?php esc_html_e( 'Price', 'bookly' ) ?></label>
42
+ <?php Proxy\CustomDuration::renderServicePriceLabel( $service_id ) ?>
43
+ <input id="bookly_service_price" class="form-control bookly-js-question" type="number" min="0" step="1" name="price" value="<?php echo esc_attr( $service['price'] ) ?>"/>
44
+ </div>
45
+ <?php if ( $service['type'] == Service::TYPE_COMPOUND || $service['type'] == Service::TYPE_COLLABORATIVE ) : ?>
46
+ <?php Proxy\DepositPayments::renderDeposit( $service ) ?>
47
+ <?php endif ?>
48
+ <?php if ( $service['type'] == Service::TYPE_PACKAGE ) : ?>
49
+ <?php Proxy\Packages::renderSubForm( $service, $service_collection ) ?>
50
+ <?php endif ?>
51
+ <?php if ( $service['type'] == Service::TYPE_SIMPLE || $service['type'] == Service::TYPE_PACKAGE ) : ?>
52
+ <div id="bookly-js-service-providers" class="bookly-margin-top-lg">
53
+ <div class="form-group">
54
+ <label><?php esc_html_e( 'Providers', 'bookly' ) ?></label><br/>
55
+ <ul class="bookly-js-providers"
56
+ data-container-class="bookly-dropdown-block"
57
+ data-txt-select-all="<?php esc_attr_e( 'All staff', 'bookly' ) ?>"
58
+ data-txt-all-selected="<?php esc_attr_e( 'All staff', 'bookly' ) ?>"
59
+ data-txt-nothing-selected="<?php esc_attr_e( 'No staff selected', 'bookly' ) ?>"
60
+ >
61
+ <?php foreach ( $staff_dropdown_data as $category_id => $category ) : ?>
62
+ <li<?php if ( ! $category_id ) : ?> data-flatten-if-single<?php endif ?>><?php echo esc_html( $category['name'] ) ?>
63
+ <ul>
64
+ <?php foreach ( $category['items'] as $staff ) : ?>
65
+ <li
66
+ data-input-name="staff_ids[]"
67
+ data-value="<?php echo $staff['id'] ?>"
68
+ data-selected="<?php echo (int) in_array( $staff['id'], $assigned_staff_ids ) ?>"
69
+ >
70
+ <?php echo esc_html( $staff['full_name'] ) ?>
71
+ </li>
72
+ <?php endforeach ?>
73
+ </ul>
74
+ </li>
75
+ <?php endforeach ?>
76
+ </ul>
77
+ </div>
78
+ <?php if ( $service['type'] == Service::TYPE_SIMPLE ) : ?>
79
+ <?php Proxy\Pro::renderStaffPreference( $service ) ?>
80
+ <?php endif ?>
81
+ </div>
82
+ <?php endif ?>
83
+ <div class="form-group">
84
+ <label for="bookly-service-info">
85
+ <?php esc_html_e( 'Info', 'bookly' ) ?>
86
+ </label>
87
+ <p class="help-block">
88
+ <?php printf( __( 'This text can be inserted into notifications with %s code.', 'bookly' ), '{service_info}' ) ?>
89
+ </p>
90
+ <textarea class="form-control" id="bookly-service-info" name="info" rows="3" type="text"><?php echo esc_textarea( $service['info'] ) ?></textarea>
91
+ </div>
92
+ </div>
backend/modules/services/templates/index.php CHANGED
@@ -1,86 +1,65 @@
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
  ?>
7
  <div id="bookly-tbs" class="wrap">
8
  <div class="bookly-tbs-body">
9
  <div class="page-header text-right clearfix">
10
  <div class="bookly-page-title">
11
- <?php _e( 'Services', 'bookly' ) ?>
12
  </div>
13
  <?php Support\Buttons::render( $self::pageSlug() ) ?>
14
  </div>
15
- <div class="row">
16
- <div id="bookly-sidebar" class="col-sm-4">
17
- <div id="bookly-categories-list" class="bookly-nav">
18
- <div class="bookly-nav-item active bookly-category-item bookly-js-all-services">
19
- <div class="bookly-padding-vertical-xs"><?php _e( 'All Services', 'bookly' ) ?></div>
20
- </div>
21
- <ul id="bookly-category-item-list">
22
- <?php foreach ( $category_collection as $category ) $self::renderTemplate( '_category_item', compact( 'category' ) ) ?>
23
- </ul>
24
- </div>
25
-
26
- <div class="form-group">
27
- <button id="bookly-new-category" type="button"
28
- class="btn btn-xlg btn-block btn-success-outline">
29
- <i class="dashicons dashicons-plus-alt"></i>
30
- <?php _e( 'New Category', 'bookly' ) ?>
31
- </button>
32
- </div>
33
-
34
- <form method="post" id="new-category-form" style="display: none">
35
- <div class="form-group bookly-margin-bottom-md">
36
- <div class="form-field form-required">
37
- <label for="bookly-category-name"><?php _e( 'Name', 'bookly' ) ?></label>
38
- <input class="form-control" id="bookly-category-name" type="text" name="name" />
39
- <input type="hidden" name="action" value="bookly_add_category" />
40
- <?php Inputs::renderCsrf() ?>
41
  </div>
42
  </div>
43
-
44
- <hr />
45
- <div class="text-right">
46
- <button type="submit" class="btn btn-success">
47
- <?php _e( 'Save', 'bookly' ) ?>
48
- </button>
49
- <button type="button" class="btn btn-default">
50
- <?php _e( 'Cancel', 'bookly' ) ?>
51
- </button>
52
- </div>
53
- </form>
54
- </div>
55
-
56
- <div id="bookly-services-wrapper" class="col-sm-8">
57
- <div class="panel panel-default bookly-main">
58
- <div class="panel-body">
59
- <h4 class="bookly-block-head">
60
- <span class="bookly-category-title"><?php _e( 'All Services', 'bookly' ) ?></span>
61
- <button type="button" class="add-service ladda-button pull-right btn btn-success" data-spinner-size="40" data-style="zoom-in">
62
- <span class="ladda-label"><i class="glyphicon glyphicon-plus"></i> <?php _e( 'Add Service', 'bookly' ) ?></span>
63
- </button>
64
- </h4>
65
-
66
- <p class="bookly-margin-top-xlg no-result" <?php if ( ! empty ( $service_collection ) ) : ?>style="display: none;"<?php endif ?>>
67
- <?php _e( 'No services found. Please add services.', 'bookly' ) ?>
68
- </p>
69
-
70
- <div class="bookly-margin-top-xlg" id="bookly-js-services-list">
71
- <?php include '_list.php' ?>
72
  </div>
73
- <div class="text-right">
74
- <?php Buttons::renderDelete() ?>
75
  </div>
76
  </div>
77
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  </div>
79
  </div>
80
  </div>
81
-
 
 
 
82
  <div id="bookly-update-service-settings" class="modal fade" tabindex=-1 role="dialog">
83
- <div class="modal-dialog">
84
  <div class="modal-content">
85
  <div class="modal-header">
86
  <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
@@ -104,5 +83,4 @@ use Bookly\Backend\Components\Support;
104
  </div>
105
  </div>
106
  </div>
107
- <?php Dialogs\Common\CascadeDelete::render() ?>
108
  </div>
1
  <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ 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
+ use Bookly\Lib;
7
  ?>
8
  <div id="bookly-tbs" class="wrap">
9
  <div class="bookly-tbs-body">
10
  <div class="page-header text-right clearfix">
11
  <div class="bookly-page-title">
12
+ <?php esc_html_e( 'Services', 'bookly' ) ?>
13
  </div>
14
  <?php Support\Buttons::render( $self::pageSlug() ) ?>
15
  </div>
16
+ <div class="panel panel-default bookly-main">
17
+ <div class="panel-body">
18
+ <div class="row">
19
+ <div class="col-md-4">
20
+ <div class="form-group">
21
+ <input class="form-control" type="text" id="bookly-filter" placeholder="<?php esc_attr_e( 'Quick search services', 'bookly' ) ?>" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  </div>
23
  </div>
24
+ <div class="col-md-8 form-inline bookly-margin-bottom-lg text-right">
25
+ <div class="form-group">
26
+ <?php Controls\Buttons::renderCustom( 'bookly-js-categories', 'btn-default', esc_html__( 'Categories...', 'bookly' ), array( 'data-toggle' => 'modal', 'data-target'=> '#bookly-service-categories-modal' ) ) ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  </div>
28
+ <div class="form-group">
29
+ <?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' ) ) ?>
30
  </div>
31
  </div>
32
  </div>
33
+ <table id="services-list" class="table table-striped" style="width: 100%">
34
+ <thead>
35
+ <tr>
36
+ <th style="display: none;"></th>
37
+ <th width="24"></th>
38
+ <?php if ( Proxy\Shared::prepareServiceTypes( array() ) ) : ?>
39
+ <th width="24"></th>
40
+ <?php endif ?>
41
+ <th width="24"></th>
42
+ <th><?php esc_html_e( 'Title', 'bookly' ) ?></th>
43
+ <th><?php esc_html_e( 'Category', 'bookly' ) ?></th>
44
+ <th><?php esc_html_e( 'Duration', 'bookly' ) ?></th>
45
+ <th><?php esc_html_e( 'Price', 'bookly' ) ?></th>
46
+ <th width="75"></th>
47
+ <th width="16"><input type="checkbox" class="bookly-js-check-all"/></th>
48
+ </tr>
49
+ </thead>
50
+ </table>
51
+ <div class="text-right bookly-margin-top-lg">
52
+ <?php Controls\Buttons::renderDelete() ?>
53
+ </div>
54
  </div>
55
  </div>
56
  </div>
57
+ <?php Dialogs\Common\CascadeDelete::render() ?>
58
+ <?php Dialogs\Service\Create\Dialog::render() ?>
59
+ <?php Dialogs\Service\Edit\Dialog::render() ?>
60
+ <?php Dialogs\Service\Categories\Dialog::render() ?>
61
  <div id="bookly-update-service-settings" class="modal fade" tabindex=-1 role="dialog">
62
+ <div class="modal-dialog modal-lg">
63
  <div class="modal-content">
64
  <div class="modal-header">
65
  <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
83
  </div>
84
  </div>
85
  </div>
 
86
  </div>
backend/modules/services/templates/time.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+ use Bookly\Lib\Utils\Common;
3
+ use Bookly\Lib\Utils\DateTime;
4
+ use Bookly\Lib\Entities\Service;
5
+ use Bookly\Backend\Components\Controls\Buttons;
6
+ use Bookly\Backend\Components\Controls\Inputs;
7
+ use Bookly\Backend\Modules\Services\Proxy;
8
+ ?>
9
+ <div class=" bookly-js-service-time-container">
10
+ <div class="form-group">
11
+ <label for="bookly-service-duration">
12
+ <?php esc_html_e( 'Duration', 'bookly' ) ?>
13
+ </label>
14
+ <?php Proxy\CustomDuration::renderServiceDurationHelp() ?>
15
+ <?php
16
+ $options = Common::getDurationSelectOptions( $service['duration'] );
17
+ $options = Proxy\CustomDuration::prepareServiceDurationOptions( $options, $service );
18
+ ?>
19
+ <select id="bookly-service-duration" class="bookly-js-duration form-control" name="duration">
20
+ <?php foreach ( $options as $option ): ?>
21
+ <option value="<?php echo $option['value'] ?>" <?php echo $option['selected'] ?>><?php echo $option['label'] ?></option>
22
+ <?php endforeach ?>
23
+ </select>
24
+ </div>
25
+ <?php Proxy\CustomDuration::renderServiceDurationFields( $service ); ?>
26
+ <div class="bookly-js-start-time-info"<?php if ( $service['duration'] < DAY_IN_SECONDS ) : ?> style="display:none;"<?php endif ?>>
27
+ <div class="form-group bookly-js-service bookly-js-service-simple">
28
+ <label for="bookly-service-start-time-info"><?php esc_html_e( 'Start and end times of the appointment', 'bookly' ) ?></label>
29
+ <p class="help-block"><?php esc_html_e( 'Allows to set the start and end times for an appointment for services with the duration of 1 day or longer. This time will be displayed in notifications to customers, backend calendar and codes for booking form.', 'bookly' ) ?></p>
30
+ <div class="row">
31
+ <div class="col-xs-6">
32
+ <input id="bookly-service-start-time-info" class="form-control" type="text" name="start_time_info" value="<?php echo esc_attr( $service['start_time_info'] ) ?>"/>
33
+ </div>
34
+ <div class="col-xs-6">
35
+ <input class="form-control" type="text" name="end_time_info" value="<?php echo esc_attr( $service['end_time_info'] ) ?>"/>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ <div class="form-group bookly-js-service bookly-js-service-simple">
41
+ <label for="bookly-service-slot-length">
42
+ <?php esc_html_e( 'Time slot length', 'bookly' ) ?>
43
+ </label>
44
+ <p class="help-block"><?php esc_html_e( 'The time interval which is used as a step when building all time slots for the service at the Time step. The setting overrides global settings in Settings → General. Use Default to apply global settings.', 'bookly' ) ?></p>
45
+ <select id="bookly-service-slot-length" class="form-control" name="slot_length">
46
+ <option value="<?php echo Service::SLOT_LENGTH_DEFAULT ?>"<?php selected( $service['slot_length'], Service::SLOT_LENGTH_DEFAULT ) ?>><?php esc_html_e( 'Default', 'bookly' ) ?></option>
47
+ <option value="<?php echo Service::SLOT_LENGTH_AS_SERVICE_DURATION ?>"<?php selected( $service['slot_length'], Service::SLOT_LENGTH_AS_SERVICE_DURATION ) ?>><?php esc_html_e( 'Slot length as service duration', 'bookly' ) ?></option>
48
+ <?php foreach ( array( 300, 600, 720, 900, 1200, 1800, 2700, 3600, 5400, 7200, 10800, 14400, 21600 ) as $duration ): ?>
49
+ <option value="<?php echo $duration ?>"<?php selected( $service['slot_length'], $duration ) ?>><?php echo esc_html( DateTime::secondsToInterval( $duration ) ) ?></option>
50
+ <?php endforeach ?>
51
+ </select>
52
+ </div>
53
+ <?php Proxy\Pro::renderPadding( $service ) ?>
54
+ <?php Proxy\Tasks::renderSubForm( $service ) ?>
55
+ </div>
backend/modules/staff/Ajax.php CHANGED
@@ -376,7 +376,7 @@ class Ajax extends Lib\Base\Ajax
376
  if ( $appointment['start_date'] ) {
377
  $last_month = date_create( $appointment['start_date'] )->modify( 'last day of' )->format( 'Y-m-d' );
378
  $action = 'show_modal';
379
- $filter_url = sprintf( '%s#staff=%d&range=%s-%s',
380
  Lib\Utils\Common::escAdminUrl( \Bookly\Backend\Modules\Appointments\Ajax::pageSlug() ),
381
  $staff_id,
382
  date_create( current_time( 'mysql' ) )->format( 'Y-m-d' ),
376
  if ( $appointment['start_date'] ) {
377
  $last_month = date_create( $appointment['start_date'] )->modify( 'last day of' )->format( 'Y-m-d' );
378
  $action = 'show_modal';
379
+ $filter_url = sprintf( '%s#staff=%d&appointment-date=%s-%s',
380
  Lib\Utils\Common::escAdminUrl( \Bookly\Backend\Modules\Appointments\Ajax::pageSlug() ),
381
  $staff_id,
382
  date_create( current_time( 'mysql' ) )->format( 'Y-m-d' ),
backend/modules/staff/forms/StaffServices.php CHANGED
@@ -40,6 +40,7 @@ class StaffServices extends Lib\Base\Form
40
  $this->uncategorized_services = Lib\Entities\Service::query( 's' )
41
  ->where( 's.category_id', null )
42
  ->whereIn( 's.type', array( Lib\Entities\Service::TYPE_SIMPLE, Lib\Entities\Service::TYPE_PACKAGE ) )
 
43
  ->find();
44
 
45
  $staff_services = Lib\Entities\StaffService::query( 'ss' )
40
  $this->uncategorized_services = Lib\Entities\Service::query( 's' )
41
  ->where( 's.category_id', null )
42
  ->whereIn( 's.type', array( Lib\Entities\Service::TYPE_SIMPLE, Lib\Entities\Service::TYPE_PACKAGE ) )
43
+ ->sortBy( 's.position' )
44
  ->find();
45
 
46
  $staff_services = Lib\Entities\StaffService::query( 'ss' )
backend/modules/staff/templates/services.php CHANGED
@@ -9,7 +9,7 @@ use Bookly\Lib\Utils\Common;
9
  <div>
10
  <?php if ( $form->getCategories() || $form->getUncategorizedServices() ) : ?>
11
  <form>
12
- <?php Proxy\Locations::renderLocationSwitcher( $staff_id, $location_id ) ?>
13
  <?php if ( $form->getUncategorizedServices() ) : ?>
14
  <div class="panel panel-default bookly-panel-unborder">
15
  <div class="panel-heading">
9
  <div>
10
  <?php if ( $form->getCategories() || $form->getUncategorizedServices() ) : ?>
11
  <form>
12
+ <?php Proxy\Locations::renderLocationSwitcher( $staff_id, $location_id, 'custom_services' ) ?>
13
  <?php if ( $form->getUncategorizedServices() ) : ?>
14
  <div class="panel panel-default bookly-panel-unborder">
15
  <div class="panel-heading">
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;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 .selectedDay{color:#fff;background:#08c}#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 .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 .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 .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}#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 .button{margin-left:6px}#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}#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-info{background-position:-230px 0}#bookly-tbs .bookly-icon.bookly-icon-checklist{background-position:-255px 0}#bookly-tbs .bookly-icon.bookly-icon-schedule{background-position:-280px 0}#bookly-tbs .bookly-icon.bookly-icon-special-days{background-position:-230px -90px}#bookly-tbs .bookly-icon.bookly-icon-daysoff{background-position:-305px 0}#bookly-tbs .bookly-icon.bookly-icon-info-alt{background-position:-230px -60px}#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-nav-justified .active .bookly-icon-info{background-position:-230px -30px}#bookly-tbs .bookly-nav-justified .active .bookly-icon-checklist{background-position:-255px -30px}#bookly-tbs .bookly-nav-justified .active .bookly-icon-schedule{background-position:-280px -30px}#bookly-tbs .bookly-nav-justified .active .bookly-icon-special-days{background-position:-230px -120px}#bookly-tbs .bookly-nav-justified .active .bookly-icon-daysoff{background-position:-305px -30px}#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-staff-categories{max-height:680px;margin-bottom:20px;overflow-y:auto}#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 .bookly-glyphicon{top:2px;left:3px;width:20px;height:19px}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:12px*2;margin-left:-12px}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option{padding-left:12px*3;margin-left:-12px*2}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{padding-left:12px*4;margin-left:-12px*3}.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{padding-left:12px*5;margin-left:-12px*4}.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:12px*6;margin-left:-12px*5}.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:-5px/2;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 12px/2;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:35px - 2;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:6px/2;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 10px + 5px*3 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 10px/2;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:32px - 2;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 16px + 6px*3 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:-6px/2;margin-left:-6px;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 16px/2;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:46px - 2;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:12px + 5px*3}.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:12px/2;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 .bookly-notifications .select2-results>.select2-results__options{max-height:400px}.select2-container--bootstrap .bookly-notifications .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 .bookly-notifications .select2-results>.select2-results__options .select2-results__option i{margin-right:5px}.select2-container--bootstrap .bookly-notifications .select2-results>.select2-results__options .select2-results__group{font-size:16px;color:#000}
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;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-screen